unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
@ 2011-05-11 20:54 Drew Adams
  2011-05-12  3:05 ` Stefan Monnier
  0 siblings, 1 reply; 8+ messages in thread
From: Drew Adams @ 2011-05-11 20:54 UTC (permalink / raw)
  To: 8657

`(next|previous)-single-char-property-change' behaves differently in a
couple of ways from `(next|previous)-single-property-change', besides
the difference of overlay vs text properties.
 
In particular, IIUC, the return value can never be nil.
Yet I see code such as this:
 
gnus-summary-show-thread:
(or (next-single-char-property-change end 'invisible) (point-max))
 
comint-next-prompt:
(setq pos (next-single-char-property-change pos 'field))
(cond (or (null pos)...
 
Isn't this incorrect?

In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
 of 2011-05-10 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.5) --no-opt --cflags
-Ic:/build/include'
 






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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2011-05-11 20:54 bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Drew Adams
@ 2011-05-12  3:05 ` Stefan Monnier
  2011-05-12  4:44   ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2011-05-12  3:05 UTC (permalink / raw)
  To: Drew Adams; +Cc: 8657

> In particular, IIUC, the return value can never be nil.
> Yet I see code such as this:
 
> gnus-summary-show-thread:
> (or (next-single-char-property-change end 'invisible) (point-max))
 
> comint-next-prompt:
> (setq pos (next-single-char-property-change pos 'field))
> (cond (or (null pos)...
 
> Isn't this incorrect?

The behavior might have changed at some point in time, explaining the
above code.


        Stefan





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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2011-05-12  3:05 ` Stefan Monnier
@ 2011-05-12  4:44   ` Eli Zaretskii
  2011-05-12 13:44     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change'incorrectly Drew Adams
  2012-02-06 14:00     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Chong Yidong
  0 siblings, 2 replies; 8+ messages in thread
From: Eli Zaretskii @ 2011-05-12  4:44 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 8657

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Thu, 12 May 2011 00:05:46 -0300
> Cc: 8657@debbugs.gnu.org
> 
> > In particular, IIUC, the return value can never be nil.
> > Yet I see code such as this:
>  
> > gnus-summary-show-thread:
> > (or (next-single-char-property-change end 'invisible) (point-max))
>  
> > comint-next-prompt:
> > (setq pos (next-single-char-property-change pos 'field))
> > (cond (or (null pos)...
>  
> > Isn't this incorrect?
> 
> The behavior might have changed at some point in time, explaining the
> above code.

Or maybe the author was confusing next-single-char-property-change
with next-single-property-change.

In any case, those tests are redundant, because
next-single-char-property-change already returns point-max when it
finds no change in properties.





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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change'incorrectly
  2011-05-12  4:44   ` Eli Zaretskii
@ 2011-05-12 13:44     ` Drew Adams
  2012-02-06 14:00     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Chong Yidong
  1 sibling, 0 replies; 8+ messages in thread
From: Drew Adams @ 2011-05-12 13:44 UTC (permalink / raw)
  To: 'Eli Zaretskii', 'Stefan Monnier'; +Cc: 8657

> Or maybe the author was confusing next-single-char-property-change
> with next-single-property-change.
> 
> In any case, those tests are redundant, because
> next-single-char-property-change already returns point-max when it
> finds no change in properties.

Yes, what Eli says is what I was suggesting; that's my guess too.






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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2011-05-12  4:44   ` Eli Zaretskii
  2011-05-12 13:44     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change'incorrectly Drew Adams
@ 2012-02-06 14:00     ` Chong Yidong
  2012-02-06 22:56       ` Katsumi Yamaoka
  1 sibling, 1 reply; 8+ messages in thread
From: Chong Yidong @ 2012-02-06 14:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 8657

Eli Zaretskii <eliz@gnu.org> writes:

>> The behavior might have changed at some point in time, explaining the
>> above code.
>
> Or maybe the author was confusing next-single-char-property-change
> with next-single-property-change.
>
> In any case, those tests are redundant, because
> next-single-char-property-change already returns point-max when it
> finds no change in properties.

I went ahead and fixed them accordingly.





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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2012-02-06 14:00     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Chong Yidong
@ 2012-02-06 22:56       ` Katsumi Yamaoka
  2012-02-07  5:57         ` Chong Yidong
  0 siblings, 1 reply; 8+ messages in thread
From: Katsumi Yamaoka @ 2012-02-06 22:56 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 8657

Chong Yidong wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
>>> The behavior might have changed at some point in time, explaining the
>>> above code.
>>
>> Or maybe the author was confusing next-single-char-property-change
>> with next-single-property-change.
>>
>> In any case, those tests are redundant, because
>> next-single-char-property-change already returns point-max when it
>> finds no change in properties.

> I went ahead and fixed them accordingly.

But in XEmacs next-single-char-property-change will return nil
if no property change is found.  So I've modified the gnus-sum.el
code into:

  (if (featurep 'xemacs)
      (or (next-single-char-property-change end 'invisible)
          (point-max))
    (next-single-char-property-change end 'invisible))





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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2012-02-06 22:56       ` Katsumi Yamaoka
@ 2012-02-07  5:57         ` Chong Yidong
  2012-02-07  6:34           ` Katsumi Yamaoka
  0 siblings, 1 reply; 8+ messages in thread
From: Chong Yidong @ 2012-02-07  5:57 UTC (permalink / raw)
  To: Katsumi Yamaoka; +Cc: 8657

Katsumi Yamaoka <yamaoka@jpl.org> writes:

> But in XEmacs next-single-char-property-change will return nil
> if no property change is found.

Ah OK, thanks for checking.

> So I've modified the gnus-sum.el code into:
>
>   (if (featurep 'xemacs)
>       (or (next-single-char-property-change end 'invisible)
>           (point-max))
>     (next-single-char-property-change end 'invisible))

I suggest just restoring the old code, and adding a comment about why
the `or' is there.





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

* bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly
  2012-02-07  5:57         ` Chong Yidong
@ 2012-02-07  6:34           ` Katsumi Yamaoka
  0 siblings, 0 replies; 8+ messages in thread
From: Katsumi Yamaoka @ 2012-02-07  6:34 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 8657

Chong Yidong wrote:
> Katsumi Yamaoka <yamaoka@jpl.org> writes:

>> But in XEmacs next-single-char-property-change will return nil
>> if no property change is found.

> Ah OK, thanks for checking.

>> So I've modified the gnus-sum.el code into:
>>
>>   (if (featurep 'xemacs)
>>       (or (next-single-char-property-change end 'invisible)
>>           (point-max))
>>     (next-single-char-property-change end 'invisible))

> I suggest just restoring the old code, and adding a comment about why
> the `or' is there.

Ok.  Done.





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

end of thread, other threads:[~2012-02-07  6:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-11 20:54 bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Drew Adams
2011-05-12  3:05 ` Stefan Monnier
2011-05-12  4:44   ` Eli Zaretskii
2011-05-12 13:44     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change'incorrectly Drew Adams
2012-02-06 14:00     ` bug#8657: 24.0.50; Emacs code that seems to use `*-single-char-property-change' incorrectly Chong Yidong
2012-02-06 22:56       ` Katsumi Yamaoka
2012-02-07  5:57         ` Chong Yidong
2012-02-07  6:34           ` Katsumi Yamaoka

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