unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: David Kastrup <dak@gnu.org>
Subject: Re: usability issue
Date: 16 Jan 2003 12:02:59 +0100	[thread overview]
Message-ID: <x5bs2hgxwc.fsf@lola.goethe.zz> (raw)
In-Reply-To: 3E268D27.5060801@deviantart.com

Andrew Brehaut <gr1dl0ck@deviantart.com> writes:

> David Kastrup wrote:
> > Andrew <gr1dl0ck@deviantart.com> writes:
> > 
> >>John Paul Wallington wrote:
> >>
> >>>Andrew <andrew@uberwald.discnet> wrote:
> >>>
> >>>
> >>>>i just don't know how to find if I'm at the beginning of a line. Is
> >>>>there a function; or does it need to be written specially?
> >>>
> >>>See `bolp'.
> >>>
> >>
> >>for the sack of politness; heres my version of the functions (only
> >>line and buffer sorry) feel free to do whatever.
> >>
> >>(defun beginning-of-line-or-buffer ()
> >>   "Sends point to the beginning of the current line, or, if already there,
> >>    the beginning of the buffer"
> >>   (interactive)
> >>   (if (bolp)
> >>       (goto-char (point-min))
> >>     (beginning-of-line)
> >>     ))
> >>
> >>(defun end-of-line-or-buffer ()
> >>   "Sends point to the beginning of the current line, or, if already there,
> >>    the beginning of the buffer"
> >>   (interactive)
> >>   (if (eolp)
> >>       (goto-char (point-max))
> >>     (end-of-line)
> >>     ))
> > I think at least the far jumps should place a mark so that C-x C-x
> > will get you back.  So you would want to use beginning-of-buffer
> > instead of (goto-char (point-min)) and the corresponding for the end.
> > 
> 
> Thanks for that; the info pages were kinda missleading (perhaps only
> for a beginner though).

And one last refinement: beginning-of-buffer is able to take a prefix
argument with several different meanings.  While beginning-of-line
can also take such an argument, it is more or less a safe bet that
you would rarely do so in interactive use, and you still could with a
combination of cursor-up with argument and the Pos1 key, anyhow.

So if we get a prefix-argument, we may assume
a) the beginning-of-buffer functionality is wanted
b) it is wanted with the given argument.

So you would want to make something like

(defun beginning-of-line-or-buffer (&optional arg)
   "Send point to beginning of line or buffer.
If point is not yet at the beginning of the current line, it is
placed there.  If already there, it is sent to the beginning of
the buffer using `beginning-of-buffer'.  If a prefix argument ARG
is given, it is passed to `beginning-of-buffer' which gets then
called regardless of whether point is at the beginning of a line."
   (interactive "P")
   (if (or arg (bolp))
       (beginning-of-buffer arg)
     (beginning-of-line)))

Notice that I also changed the incorrect documentation string.  You
can check those sort of strings by using
M-x checkdoc RET

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

  reply	other threads:[~2003-01-16 11:02 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-06 21:59 usability issue Tuomo Takkula
2003-01-06 22:17 ` David Kastrup
2003-01-06 22:52   ` Alan Shutko
2003-01-07  0:37     ` Miles Bader
2003-01-08 12:42     ` Ehud Karni
     [not found]     ` <mailman.58.1042029785.21513.help-gnu-emacs@gnu.org>
2003-01-11 12:40       ` Kai Großjohann
2003-01-11 13:28         ` David Kastrup
2003-01-16  6:25           ` Andrew
2003-01-16  6:41             ` John Paul Wallington
2003-01-16 10:11               ` Andrew
2003-01-16 10:23                 ` David Kastrup
2003-01-16 10:44                   ` Andrew Brehaut
2003-01-16 11:02                     ` David Kastrup [this message]
2003-01-16 11:24                       ` Andrew Brehaut
2003-01-16 10:50                 ` John Paul Wallington
2003-01-16 11:34                   ` Colin Marquardt
2003-01-07 20:00   ` Tuomo Takkula
2003-01-06 22:43 ` Henrik Enberg
2003-01-07  1:02 ` Bruce Ingalls

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=x5bs2hgxwc.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).