bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors w


From: Chong Yidong
Subject: bug#4737: 23.1.50; C-j in *scratch* after a hash table constant errors with void-function
Date: Sat, 17 Oct 2009 23:43:46 -0400

> In *scratch*:
>
> (progn
>   (setq print-length nil)
>   (make-hash-table))
> => #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data 
> ())
>
> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data
>  ())
> =>
> Debugger entered--Lisp error: (void-function hash-table)
>   (hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data nil)
>   eval((hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data 
> nil))
>   eval-last-sexp-1(t)
>   eval-last-sexp(t)
>   eval-print-last-sexp()
>   call-interactively(eval-print-last-sexp nil nil)

> However, this succeeds:

> (car (list
>       #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 
> data ())))
> => #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data 
> ())

> XEmacs handles the problem in #'forward-sexp

I think it's safer to handle it in preceding-sexp.  Could you test the
patch below?


*** emacs/lisp/emacs-lisp/lisp-mode.el.~1.247.~ 2009-09-27 18:51:01.000000000 
-0400
--- emacs/lisp/emacs-lisp/lisp-mode.el  2009-10-17 23:41:53.000000000 -0400
***************
*** 673,678 ****
--- 673,682 ----
          (when (eq (preceding-char) ??)
            (forward-char -1)))
  
+       ;; Skip over hash table read syntax
+       (when (looking-back "#s")
+         (forward-char -2))
+ 
        ;; Skip over `#N='s.
        (when (eq (preceding-char) ?=)
          (let (labeled-p)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]