From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.help Subject: Re: usability issue Supersedes: Date: 16 Jan 2003 12:02:59 +0100 Organization: T-Online Sender: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: References: <87bs2tyk4x.fsf@wesley.springies.com> <3E268554.2030409@deviantart.com> <3E268D27.5060801@deviantart.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1042715134 30260 80.91.224.249 (16 Jan 2003 11:05:34 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 16 Jan 2003 11:05:34 +0000 (UTC) Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18Z7q0-0007rr-00 for ; Thu, 16 Jan 2003 12:05:32 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18Z7q0-0002d3-06 for gnu-help-gnu-emacs@m.gmane.org; Thu, 16 Jan 2003 06:05:32 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!logbridge.uoregon.edu!newsfeed.stueberl.de!newsfeed01.sul.t-online.de!newsmm00.sul.t-online.com!t-online.de!news.t-online.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 74 Original-X-Trace: news.t-online.com 1042714979 00 32112 HAUHEwNXT2AV+S 030116 11:02:59 Original-X-Complaints-To: abuse@t-online.com X-Sender: 520018396234-0001@t-dialin.net X-Face: 2FEFf>]>q>2iw=B6,xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN;i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 Original-Xref: shelby.stanford.edu gnu.emacs.help:109016 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:5544 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:5544 Andrew Brehaut writes: > David Kastrup wrote: > > Andrew writes: > > > >>John Paul Wallington wrote: > >> > >>>Andrew 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