Subject: 26.0.50; `describe-text-properties' hangs with 100% cpu usage when property is a char-table

From: Peter Wang <[email-masked]>
Date: Sat, 10 Dec 2016 21:59:32 +0800

I came across the problem when I was using `C-u C-x =' on a SLIME
presentation. After some debugging, I found out the cause of the
problem. Here is it:

In a slime REPL buffer, when the evaluation result is rendered, SLIME
adds text properties using `slime-add-presentation-properties'. One
of the text properties is a syntax-table `slime-presentation-syntax-table'.

`C-u C-x =' calls `(describe-char (point))', which in turn calls
`describe-text-properties', which hangs with 100% cpu usage.

I think a possible fix could be done in `describe-property-list', adding
a case in cond to handle the type of syntax-table, something like:

diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 6c7983a177..926103f35e 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -90,6 +90,7 @@ describe-property-list
       'type 'help-face 'help-args (list value)))
             ((widgetp value)
      (describe-text-widget value))
+            ((syntax-table-p value) (insert "#<syntax table>"))
     (t
      (describe-text-sexp value))))
     (insert "\n")))