>>>>> Arash Esbati <ar...@gnu.org> writes: >> 2. "KEY-VAL-ALIST can be a symbol or a function call ..." >> It seems that "function call" is a bit ambiguous to me. How about >> "KEY-VAL-ALIST can be a variable or a function ..."?
> I wanted to express that something like this would not work: > (TeX-add-style-hook > "foo" > (lambda () > (TeX-add-symbols > '("bar" (TeX-arg-key-val function-returning-key-val))))) > If you think your suggestion is more clear, I'm happy to adjust the > docstring. Ah, sorry. I didn't understand your code well enough. >> 1. Maybe >> (symbol-value key-val-alist) >> is more appropriate than >> (eval key-val-alist t) >> for its directness. > I'm not sure if we get into trouble if a globally defvar'ed key-val list > is let-bound and changed in a function call using `TeX-read-key-val'. > WDYT? I haven't checked the occurrence of this within AUCTeX, though. Do you mean something like this? ---------------------------------------------------------------------- (defvar foo 1) (defun bar (var) (symbol-value var)) (defun xyz () (let ((foo foo)) (setq foo (1+ foo)) (bar 'foo))) (xyz) ; => 2 foo ; => 1 ---------------------------------------------------------------------- As Tassilo pointed out, my understanding is that: - Once a variable is marked as special by defvar, its binding is always dynamic scoped even with `let'. - Thus `symbol-value' returns its temporal value bound by `let' for such variable. I think the result of the above example supports this view. Regards, Ikumi Keita