unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?")
@ 2016-03-09  5:54 Alan Mackenzie
  2019-07-29 13:09 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Alan Mackenzie @ 2016-03-09  5:54 UTC (permalink / raw)
  To: 22957

Hello, Emacs.

In the master branch:
  emacs -Q
.
In the *scratch* buffer, with point at any character, do:

  M-: (put-text-property (point) (1+ (point)) 'asdf '(string . ?\"))

.  Without moving point,

  C-u C-x =

.  There appears in the *Help* buffer the following:

  There are text properties here:
    asdf                 string (widget)Top
    face                 font-lock-comment-face
    fontified            t

.  The entry for "asdf" is garbage.  It should show the actual value of
the text property just set, not "string (widget)Top".  The same thing
happens in Emacs 24.5 (and presumably the emacs-25 branch).

#########################################################################

Initial investigation:

The symbol 'string has a 'widget-type property.  Without validating the
structure (or lack thereof) of the assumed widget value,
`describe-property-list' attempts to enter the "widget browser" rather
than printing the full value of the 'asdf text property.

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?")
  2016-03-09  5:54 bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?") Alan Mackenzie
@ 2019-07-29 13:09 ` Lars Ingebrigtsen
  2019-07-30  9:45   ` Alan Mackenzie
  0 siblings, 1 reply; 4+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-29 13:09 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 22957

Alan Mackenzie <acm@muc.de> writes:

> Hello, Emacs.
>
> In the master branch:
>   emacs -Q
> .
> In the *scratch* buffer, with point at any character, do:
>
>   M-: (put-text-property (point) (1+ (point)) 'asdf '(string . ?\"))
>
> .  Without moving point,
>
>   C-u C-x =
>
> .  There appears in the *Help* buffer the following:
>
>   There are text properties here:
>     asdf                 string (widget)Top
>     face                 font-lock-comment-face
>     fontified            t
>
> .  The entry for "asdf" is garbage.  It should show the actual value of
> the text property just set, not "string (widget)Top".  The same thing
> happens in Emacs 24.5 (and presumably the emacs-25 branch).

Indeed.

> Initial investigation:
>
> The symbol 'string has a 'widget-type property.  Without validating the
> structure (or lack thereof) of the assumed widget value,
> `describe-property-list' attempts to enter the "widget browser" rather
> than printing the full value of the 'asdf text property.

`describe-property-list' is a very general-sounding function, and
doesn't mention anything about widgets, so having it do widget stuff is
rather surprising.

The only callers to this function are from descr-text and as far as I
can tell, none of them are widget-ey.  Looking at the commit log, it
looks like there was a bunch of widget stuff in here before, but it's
been removed.  Perhaps this was just forgotten?

The following trivial patch fixes the problem.  Any opinions?

diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 8be2b94458..ba53aeb385 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -88,8 +88,6 @@ describe-property-list
 	     (insert-text-button
 	      (format "%S" value)
 	      'type 'help-face 'help-args (list value)))
-            ((widgetp value)
-	     (describe-text-widget value))
 	    (t
 	     (describe-text-sexp value))))
     (insert "\n")))


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?")
  2019-07-29 13:09 ` Lars Ingebrigtsen
@ 2019-07-30  9:45   ` Alan Mackenzie
  2019-07-30 10:10     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Alan Mackenzie @ 2019-07-30  9:45 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 22957

Hello, Lars.

On Mon, Jul 29, 2019 at 15:09:10 +0200, Lars Ingebrigtsen wrote:
> Alan Mackenzie <acm@muc.de> writes:

> > Hello, Emacs.

> > In the master branch:
> >   emacs -Q
> > .
> > In the *scratch* buffer, with point at any character, do:

> >   M-: (put-text-property (point) (1+ (point)) 'asdf '(string . ?\"))

> > .  Without moving point,

> >   C-u C-x =

> > .  There appears in the *Help* buffer the following:

> >   There are text properties here:
> >     asdf                 string (widget)Top
> >     face                 font-lock-comment-face
> >     fontified            t

> > .  The entry for "asdf" is garbage.  It should show the actual value of
> > the text property just set, not "string (widget)Top".  The same thing
> > happens in Emacs 24.5 (and presumably the emacs-25 branch).

> Indeed.

> > Initial investigation:

> > The symbol 'string has a 'widget-type property.  Without validating the
> > structure (or lack thereof) of the assumed widget value,
> > `describe-property-list' attempts to enter the "widget browser" rather
> > than printing the full value of the 'asdf text property.

> `describe-property-list' is a very general-sounding function, and
> doesn't mention anything about widgets, so having it do widget stuff is
> rather surprising.

> The only callers to this function are from descr-text and as far as I
> can tell, none of them are widget-ey.  Looking at the commit log, it
> looks like there was a bunch of widget stuff in here before, but it's
> been removed.  Perhaps this was just forgotten?

> The following trivial patch fixes the problem.  Any opinions?

It does indeed fix the problem.  I haven't tracked down anything in the
commit log, but I can believe there's no widget stuff left to drive that
cond arm.  And even if there were, it would only be a corner case (like
the original bug scenario was).

I feel only a slight unease at removing that cond arm, which would no
doubt dissipate if I took more time to look at it again.

So, I would agree with you: apply the patch and close the bug.  :-)

> diff --git a/lisp/descr-text.el b/lisp/descr-text.el
> index 8be2b94458..ba53aeb385 100644
> --- a/lisp/descr-text.el
> +++ b/lisp/descr-text.el
> @@ -88,8 +88,6 @@ describe-property-list
>  	     (insert-text-button
>  	      (format "%S" value)
>  	      'type 'help-face 'help-args (list value)))
> -            ((widgetp value)
> -	     (describe-text-widget value))
>  	    (t
>  	     (describe-text-sexp value))))
>      (insert "\n")))


> -- 
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?")
  2019-07-30  9:45   ` Alan Mackenzie
@ 2019-07-30 10:10     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2019-07-30 10:10 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 22957

Alan Mackenzie <acm@muc.de> writes:

> So, I would agree with you: apply the patch and close the bug.  :-)

OK; done.  I tried following the logic of the code in descr-text, and I
think it's the right fix.  There may be code paths I've overlooked,
though, but I guess we'll find out later.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2019-07-30 10:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-09  5:54 bug#22957: C-u C-x = prints garbage for a text property with value '(string . ?") Alan Mackenzie
2019-07-29 13:09 ` Lars Ingebrigtsen
2019-07-30  9:45   ` Alan Mackenzie
2019-07-30 10:10     ` Lars Ingebrigtsen

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