emacs-devel
[Top][All Lists]
Advanced

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

Re: [Unicode-2] `C-h f' error (was Re: `read' always returns multibyte s


From: Kenichi Handa
Subject: Re: [Unicode-2] `C-h f' error (was Re: `read' always returns multibyte symbol)
Date: Wed, 14 Nov 2007 22:01:59 +0900
User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/23.0.60 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

In article <address@hidden>, Katsumi Yamaoka <address@hidden> writes:

>>>>>> Kenichi Handa <address@hidden> wrote:
> > I've just installed a fix.

> Thanks.

> Isn't it a side effect of this change?  The `C-h f' command causes
> the following error, though it can be solved by reloading "help".

> Debugger entered--Lisp error: (setting-constant :validate)
>   function-called-at-point()
>   [...]
>   call-interactively(describe-function)

I can't reproduce that bug.  Perhaps because I did "make
bootstrap".  How about you?

> It seems that the `with-syntax-table' macro, that
> `function-called-at-point' uses, was not expanded properly when
> dumping Emacs:

> (disassemble 'function-called-at-point)
> 0     constant  syntax-table
> 1     call      0
> 2     current-buffer 
> 3     varbind   :validate
> 4     varbind   setup-function
> 5     constant  (<byte code>...)
>    0     save-current-buffer 
>    1     varref    :validate
>    2     set-buffer 

I got this in *Disassemble* buffer.

byte code for function-called-at-point:
  doc:  Return a function around point or else called by the list containing 
point. ...
  args: nil
0       constant  syntax-table
1       call      0
2       current-buffer 
3       varbind   required-features
4       varbind   standard-display-european-internal
5       constant  (<byte code>...)
   0       save-current-buffer 
   1       varref    required-features
   2       set-buffer 
   3       discard   
   4       constant  set-syntax-table
   5       varref    standard-display-european-internal
   6       call      1
   7       discard   
   8       unbind    1
   9       constant  set-syntax-table
   10      return    

6       unwind-protect 
7       constant  set-syntax-table
8       varref    emacs-lisp-mode-syntax-table
9       call      1
10      discard   
11      constant  nil
12      constant  <byte code>
   0       save-excursion 
   1       constant  zerop
   2       constant  skip-syntax-backward
   3       constant  "_w"
   4       call      1
   5       call      1
   6       goto-if-nil 1
   9       following-char 
   10      char-syntax 
   11      constant  119
   12      eq        
   13      goto-if-not-nil 1
   16      following-char 
   17      char-syntax 
   18      constant  95
   19      eq        
   20      goto-if-not-nil 1
   23      constant  forward-sexp
   24      constant  -1
   25      call      1
   26      discard   
   27:1    constant  "'"
   28      constant  nil
   29      skip-chars-forward 
   30      discard   
   31      constant  read
   32      current-buffer 
   33      call      1
   34      dup       
   35      varbind   obj
   36      symbolp   
   37      goto-if-nil-else-pop 2
   40      constant  fboundp
   41      varref    obj
   42      call      1
   43      goto-if-nil-else-pop 2
   46      varref    obj
   47:2    unbind    2
   48      return    

13      constant  ((error))
14      condition-case 
15      goto-if-not-nil-else-pop 1
18      constant  nil
19      constant  <byte code>
   0       save-excursion 
   1       save-restriction 
   2       point-min 
   3       point     
   4       constant  1000
   5       diff      
   6       max       
   7       point-max 
   8       narrow-to-region 
   9       discard   
   10      constant  backward-up-list
   11      constant  1
   12      call      1
   13      discard   
   14      constant  1
   15      forward-char 
   16      discard   
   17      constant  looking-at
   18      constant  "[         ]"
   19      call      1
   20      goto-if-nil 1
   23      constant  error
   24      constant  "Probably not a Lisp function call"
   25      call      1
   26      discard   
   27:1    constant  read
   28      current-buffer 
   29      call      1
   30      dup       
   31      varbind   obj
   32      symbolp   
   33      goto-if-nil-else-pop 2
   36      constant  fboundp
   37      varref    obj
   38      call      1
   39      goto-if-nil-else-pop 2
   42      varref    obj
   43:2    unbind    3
   44      return    

20      constant  ((error))
21      condition-case 
22:1    unbind    3
23      goto-if-not-nil-else-pop 6
26      constant  find-tag-default
27      call      0
28      dup       
29      varbind   str
30      goto-if-nil-else-pop 2
33      constant  intern-soft
34      varref    str
35      call      1
36:2    dup       
37      varbind   sym
38      goto-if-nil 3
41      constant  fboundp
42      varref    sym
43      call      1
44      goto-if-nil 3
47      varref    sym
48      goto      5
51:3    constant  match-data
52      call      0
53      varbind   save-match-data-internal
54      constant  (<byte code>...)
   0       constant  set-match-data
   1       varref    save-match-data-internal
   2       constant  evaporate
   3       call      2
   4       return    

55      unwind-protect 
56      varref    str
57      goto-if-nil-else-pop 4
60      constant  string-match
61      constant  "\\`\\W*\\(.*?\\)\\W*\\'"
62      varref    str
63      call      2
64      goto-if-nil-else-pop 4
67      constant  intern-soft
68      constant  match-string
69      constant  1
70      varref    str
71      call      2
72      call      1
73      varset    sym
74      constant  fboundp
75      varref    sym
76      call      1
77      goto-if-nil-else-pop 4
80      varref    sym
81:4    unbind    2
82:5    unbind    2
83:6    return    

---
Kenichi Handa
address@hidden




reply via email to

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