all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: "Andreas Röhler" <andreas.roehler@online.de>
Cc: Andreas Schwab <schwab@linux-m68k.org>,
	Emacs developers <emacs-devel@gnu.org>
Subject: Re: forward-paragraph return value
Date: Tue, 24 Aug 2010 21:06:36 +0900	[thread overview]
Message-ID: <87sk245i5v.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <4C738D6D.5040805@online.de>

Andreas Röhler writes:
 > Am 24.08.2010 10:27, schrieb Stephen J. Turnbull:
 > > Andreas Röhler writes:
 > >
 > >   >  Then people may write functions taking already the return
 > >   >  value.
 > > Sure.  But will they?  Show us examples of existing functions
 > > (preferably already in Emacs) that would benefit from this
 > > change.
 > >    
 > 
 > Didn't I point to?
 > 
 > If a look in forward-paragraph doesn't speak to you,

Of course that doesn't speak to me; that's the function you propose to
change.

 > maybe have a look into
 > 
 > bounds-of-thing-at-point .

`forward-paragraph' is a command.  `bounds-of-thing-at-point' is not.
There's a big difference.

 > Forms like
 >          (let
 >            (beg
 >              (progn
 >               (funcall
 >                (or (get thing 'beginning-op)
 >                                (lambda () (forward-thing thing -1))))
 >               (point))))

I doubt that form appears anywhere in Emacs.  The style is nauseating,
not to mention that `progn' is a very unusual choice for a variable
you are let-binding. ;-)  Please give *real* examples, or if you're
going to simplify real code to make your point, say that's what you're
doing.  And do it correctly, even for a fragment like this.

 > Thats bug-sourcing BTW, as it returns point in any case, even if
 > move failed.  Why not make implementation of return value from
 > 
 > search-forward
 > 
 > canonical instead, returning the position if succesful, nil
 > otherwise.

Er, because otherwise `search-forward' does not return nil, but rather
signals an error?  You need to specify additional arguments to get it
to return nil.  There's a reason for this interface, related to the
fact that `search-forward' is a command, as is `forward-paragraph'.

 > The gain will be for newly written code.  For writers first, who
 > must not learn function by function the return value.

A common convention might be a good idea.  It's a better idea for
non-commands than it is for commands, though.

 > In the example above we could write
 > 
 > (let
 >      (beg
 >       (funcall
 >        (or (get thing 'beginning-op)
 >            (lambda () (forward-thing thing -1))))))
 > 
 > Its clean and much more reliable, as beg will be nil, if nothing
 > was found.

Maybe.  But in fact, this is a (broken) copy of (part of) the
implementation of `bounds-of-thing-at-point'.  At least in XEmacs,
that function has *much* bigger problems than the return value of
forward-thing.  Also, since the return value of `forward-thing' is
undocumented (and probably rather unreliable), you could change that,
or define an internal function for the use of functions defun'ed in
thingatpt.el.

The issue with forward-paragraph is quite different, because it is
documented and it is a command.



  parent reply	other threads:[~2010-08-24 12:06 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-23 18:25 forward-paragraph return value Andreas Röhler
2010-08-23 20:59 ` Andreas Schwab
2010-08-24  5:43   ` Andreas Röhler
2010-08-24  8:27     ` Stephen J. Turnbull
2010-08-24  9:14       ` Andreas Röhler
2010-08-24 11:30         ` Davis Herring
2010-08-24 16:57           ` Andreas Röhler
2010-08-24 12:06         ` Stephen J. Turnbull [this message]
2010-08-24 17:10           ` Andreas Röhler

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

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

  git send-email \
    --in-reply-to=87sk245i5v.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=andreas.roehler@online.de \
    --cc=emacs-devel@gnu.org \
    --cc=schwab@linux-m68k.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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.