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

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

bug#16804: 24.3.50; [PATCH] fix with-silent-modifications


From: Leo Liu
Subject: bug#16804: 24.3.50; [PATCH] fix with-silent-modifications
Date: Thu, 20 Feb 2014 13:57:59 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (OS X 10.9.1)

On 2014-02-20 12:57 +0800, Stefan Monnier wrote:
> That doesn't change anything to the fact that calling something like
> sit-for from within a with-silent-modifications is a problem, regardless
> of buffer-file-name.  E.g. it will cause the process filter not to mark
> the new text for highlighting, so it can screw up *compilation*.

I see. Could you help document the delicacy of
with-silent-modifications, or people will not correctly use it?

>>> Again, a backtrace would be much more useful.
>> There is no backtrace.
>
> Of course there is.  I know there is no error signaled, but you can
> still get a backtrace by calling (backtrace), or (debug).

I see and sorry I misunderstood.

Since input-pending-p is changed in 24.4 not to run timers by default,
the backtrace is obtained in 24.3 and as expected:

  ......
  timer-event-handler([t 0 0 200000 t #[...] nil idle 0])
  input-pending-p()
  js2-parse-statement()
  js2-parse-function-body([cl-struct-js2-function-node 108 3537 1 nil nil nil 
((once . [cl-struct-js2-symbol 121 "once" [cl-struct-js2-name-node 39 0 4 nil 
[cl-struct-js2-var-init-node 121 4 106 nil [cl-struct-js2-var-decl-node 121 0 
110 nil [cl-struct-js2-expr-stmt-node 132 120 111 nil [cl-struct-js2-block-node 
128 3571 1 nil nil ...] #6] (#5) 121] #4 [cl-struct-js2-call-node 38 7 99 nil 
#5 [cl-struct-js2-prop-get-node 33 0 6 nil #6 3703 [cl-struct-js2-name-node 39 
0 1 nil #7 "_" nil] [cl-struct-js2-name-node 39 2 4 nil #7 "once" nil]] 
([cl-struct-js2-function-node 108 7 91 nil #6 nil nil #0 nil nil nil nil 0 nil 
nil 0 FUNCTION FUNCTION_EXPRESSION nil nil nil [cl-struct-js2-block-node 128 11 
80 nil #8 ...] 8 9 t t nil nil]) 6 98]] "once" nil]]) (self . 
[cl-struct-js2-symbol 121 "self" [cl-struct-js2-name-node 39 0 4 nil 
[cl-struct-js2-var-init-node 121 4 11 nil [cl-struct-js2-var-decl-node 121 0 15 
nil [cl-struct-js2-expr-stmt-node 132 97 16 nil [cl-struct-js2-block-node 128 
3571 1 nil nil ...] #6] (#5) 121] #4 [cl-struct-js2-keyword-node 43 7 4 nil 
#5]] "self" nil]]) (context . [cl-struct-js2-symbol 86 "context" 
[cl-struct-js2-name-node 39 25 7 nil #0 "context" nil]]) (callback . 
[cl-struct-js2-symbol 86 "callback" [cl-struct-js2-name-node 39 15 8 nil #0 
"callback" nil]]) (name . [cl-struct-js2-symbol 86 "name" 
[cl-struct-js2-name-node 39 9 4 nil #0 "name" nil]])) nil nil nil nil nil 0 nil 
nil 0 FUNCTION FUNCTION_EXPRESSION nil ([cl-struct-js2-name-node 39 9 4 nil #0 
"name" nil] [cl-struct-js2-name-node 39 15 8 nil #0 "callback" nil] 
[cl-struct-js2-name-node 39 25 7 nil #0 "context" nil]) nil nil 8 32 t nil nil 
nil])
  js2-parse-function(FUNCTION_EXPRESSION 3537 nil nil)
  js2-parse-function-expr()
  js2-parse-primary-expr()
  js2-parse-member-expr(t)
  js2-parse-unary-expr()
  js2-parse-mul-expr()
  js2-parse-add-expr()
  js2-parse-shift-expr()
  js2-parse-rel-expr()
  js2-parse-eq-expr()
  js2-parse-bit-and-expr()
  ......

nxml has both input-pending-p and sit-for, see
rng-validate-while-idle-continue-p in rng-valid.el

>         Stefan

Is there something better than let-binding buffer-file-name and
buffer-file-truename?

Leo





reply via email to

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