unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#10507: 24.0.92; Doc of `search-forward' (and backward)
@ 2012-01-14 22:37 Drew Adams
  2012-01-16 14:10 ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2012-01-14 22:37 UTC (permalink / raw)
  To: 10507

Both the doc in the Elisp manual and the doc string seem to be
incorrect, and this has apparently been the case for a very long time
(at least as far back as Emacs 20).
 
(search-forward "e" nil nil -1) searches BACKWARD for "e".
 
But the doc says that it searches FORWARD.
 
Furthermore, the doc says explicitly that the 4th arg MUST BE POSITIVE.
That is no only NOT the case, it is even the case that the Emacs lisp
code uses a negative value as the 4th arg.  See, e.g., `zap-to-char'.

In GNU Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) of 2012-01-05 on MARVIN
 Windowing system distributor `Microsoft Corp.', version 5.1.2600
 configured using `configure --with-gcc (4.6) --no-opt --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include --ldflags
 -LD:/devel/emacs/libs/gnutls-3.0.9/lib'
 






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10507: 24.0.92; Doc of `search-forward' (and backward)
  2012-01-14 22:37 bug#10507: 24.0.92; Doc of `search-forward' (and backward) Drew Adams
@ 2012-01-16 14:10 ` Stefan Monnier
  2012-01-16 14:51   ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2012-01-16 14:10 UTC (permalink / raw)
  To: Drew Adams; +Cc: 10507

> Furthermore, the doc says explicitly that the 4th arg MUST BE POSITIVE.
> That is no only NOT the case, it is even the case that the Emacs lisp
> code uses a negative value as the 4th arg.  See, e.g., `zap-to-char'.

"MUST BE POSITIVE" doesn't mean that a negative argument will
be rejected.  So the doc is perfectly allowed to say "MUST BE POSITIVE"
even if the code handles negative values (it just means that negative
values are "NOT SUPPORTED").  And if some core code uses negative
values, that's a naughty breach of abstraction, but that's about it.

So I see no bug here.  If you want a change, please say which and why.


        Stefan





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10507: 24.0.92; Doc of `search-forward' (and backward)
  2012-01-16 14:10 ` Stefan Monnier
@ 2012-01-16 14:51   ` Drew Adams
  2012-01-16 15:21     ` Stefan Monnier
  2012-01-26 15:48     ` Chong Yidong
  0 siblings, 2 replies; 5+ messages in thread
From: Drew Adams @ 2012-01-16 14:51 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 10507

> > Furthermore, the doc says explicitly that the 4th arg MUST 
> > BE POSITIVE.  That is no only NOT the case, it is even the
> > case that the Emacs lisp code uses a negative value as the
> > 4th arg.  See, e.g., `zap-to-char'.
> 
> "MUST BE POSITIVE" doesn't mean that a negative argument will
> be rejected.  So the doc is perfectly allowed to say "MUST BE 
> POSITIVE" even if the code handles negative values (it just
> means that negative values are "NOT SUPPORTED").  And if some
> core code uses negative values, that's a naughty breach of
> abstraction, but that's about it.

Words, even words like "must", can always be somewhat ambiguous.  But "must"
generally implies some sort of enforcement or negative consequences if not
respected.

"Should" is typically used when something is recommended but not prohibited or
enforced.  And if you say nothing at all about positive/non-positive then, as
you are wont to say, "all bets are off" - no statement about support, the user
knows nothing.

I think that most readers would expect in this case ("must") that an error is
raised if the arg is not positive - or at least that the function becomes a
no-op.

Compare the doc for `/': "The arguments must be numbers or markers."

> So I see no bug here.  If you want a change, please say which and why.

A negative arg is supported by the code; it is used by Emacs source code; and it
is useful.  Knowing about it will mean simpler code by users.  Please document
(and support) it.  Thx.






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10507: 24.0.92; Doc of `search-forward' (and backward)
  2012-01-16 14:51   ` Drew Adams
@ 2012-01-16 15:21     ` Stefan Monnier
  2012-01-26 15:48     ` Chong Yidong
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2012-01-16 15:21 UTC (permalink / raw)
  To: Drew Adams; +Cc: 10507

>> > Furthermore, the doc says explicitly that the 4th arg MUST 
>> > BE POSITIVE.  That is no only NOT the case, it is even the
>> > case that the Emacs lisp code uses a negative value as the
>> > 4th arg.  See, e.g., `zap-to-char'.
>> 
>> "MUST BE POSITIVE" doesn't mean that a negative argument will
>> be rejected.  So the doc is perfectly allowed to say "MUST BE 
>> POSITIVE" even if the code handles negative values (it just
>> means that negative values are "NOT SUPPORTED").  And if some
>> core code uses negative values, that's a naughty breach of
>> abstraction, but that's about it.

> Words, even words like "must", can always be somewhat ambiguous.  But "must"
> generally implies some sort of enforcement or negative consequences if not
> respected.

"MUST" here means it's prohibited to send a negative value.
That doesn't mean that if you do you'll get caught, nor how you'll get caught.

>> So I see no bug here.  If you want a change, please say which and why.
> A negative arg is supported by the code; it is used by Emacs source
> code; and it is useful.  Knowing about it will mean simpler code by
> users.  Please document (and support) it.  Thx.

That is a much better bug-report, thank you.


        Stefan





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#10507: 24.0.92; Doc of `search-forward' (and backward)
  2012-01-16 14:51   ` Drew Adams
  2012-01-16 15:21     ` Stefan Monnier
@ 2012-01-26 15:48     ` Chong Yidong
  1 sibling, 0 replies; 5+ messages in thread
From: Chong Yidong @ 2012-01-26 15:48 UTC (permalink / raw)
  To: Drew Adams; +Cc: 10507

"Drew Adams" <drew.adams@oracle.com> writes:

> A negative arg is supported by the code; it is used by Emacs source
> code; and it is useful.  Knowing about it will mean simpler code by
> users.  Please document (and support) it.  Thx.

Fixed, thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-01-26 15:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-14 22:37 bug#10507: 24.0.92; Doc of `search-forward' (and backward) Drew Adams
2012-01-16 14:10 ` Stefan Monnier
2012-01-16 14:51   ` Drew Adams
2012-01-16 15:21     ` Stefan Monnier
2012-01-26 15:48     ` Chong Yidong

Code repositories for project(s) associated with this public inbox

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

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).