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.
next prev 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.