On Wed, May 10 2006, Ken Manheimer wrote: > On 5/10/06, Reiner Steib <[EMAIL PROTECTED]> wrote: >> ;;;###autoload >> (put 'allout-numbered-bullet 'safe-local-variable >> (lambda (x) (or (not x) (stringp x)))) >> >> ... instead of... >> >> ;;;###autoload(put 'allout-numbered-bullet 'safe-local-variable (lambda (x) >> (or (not x) (stringp x)))) >> >> ... (and similar for other many other variables) in `allout.el'. > > i haven't seen some of this conversation (i looked in the archive, and > these messages aren't there yet), and i'm not clear whether something > is being requested here.
[ The archives on gmane.org are updated as soon as the message arrives from the list: http://news.gmane.org/gmane.emacs.devel http://news.gmane.org/gmane.emacs.pretest.bugs ] > i deliberately chose to use the form that defines the variables in the > file's bytecode, as well as in loaddefs, because i want to be able to > use the most recent version of allout in versions of emacs that are > not built with allout (eg, the old emacs version i'm running on my > zaurus). i would like to be able to use the same source code in such > cases. (i imagine other people might be in the same situation.) AFAICS, Emacs 21 doesn't care about the safe-local-variable properties in the first place, so you there no need for backward compatibility here. (I don't think we should try to be backward compatible with older CVS versions.) > i don't want to make allout objectionable for distribution with emacs, > and am willing to conform to the conventions, if necessary. is having > the definitions exist only in loaddefs being asked, or will it be > enough to have the active definitions in allout as well, but quote the > lambda expressions so they're not byte-compiled (and so don't clutter > the help)? For Emacs 22, Richard recommended not to execute it again when the file is loaded, i.e. use... ;;;###autoload(put '... 'safe-local-variable ...) See <http://thread.gmane.org/gmane.emacs.devel/52972/focus=53151>. On Wed, May 10 2006, Ken Manheimer wrote: > On 5/10/06, Reiner Steib <[EMAIL PROTECTED]> wrote: >> On Wed, May 10 2006, Stefan Monnier wrote: >> >> [ (lambda (x) (or (not x) (stringp x))) ] >> > Actually, we should use string-or-null-p here. >> >> ACK. And (member x (quote (t nil))) should be booleanp. > > i can make those changes. (booleanp must be rather new addition - > it's not in my CVS emacs built a week and a half ago.) Stefan installed it on 2006-04-29. >> But there are also expressions in `allout.el' where no predefined >> predicate exists (AFAICS): >> >> allout-use-mode-specific-leader (lambda (x) (or (member x '(t nil)) (stringp x))) I'd rewrite this as... (lambda (x) (or (booleanp x) (stringp x))) >> allout-reindent-bodies (lambda (x) (member x '(nil t text force))) >> allout-layout (lambda (x) (or (numberp x) (listp x) (integerp x) (member x '(: * + -)))) > is it necessary to have a predefined predicate in all cases, or will > quoting the lambda be sufficient? i could define functions to be used > as predicates, and have them autoloaded, but i see no particular gain > there. I don't think it would be useful to define functions for these predicates. If you put them inside the autoload comment, you don't need to quote them. (Of course this is only _my_ opinion; maybe you should wait for other comments before working on it.) For completeness, here is a list of all safe-local-variable lambda expressions in `loaddefs.el': (lambda (x) (member x (quote (nil t text force)))); allout-reindent-bodies ==> no need for a defun, but use autoload comment. (lambda (x) (member x (quote (t nil)))); allout-old-style-prefixes (lambda (x) (member x (quote (t nil)))); allout-show-bodies (lambda (x) (member x (quote (t nil)))); allout-stylish-prefixes (lambda (x) (member x (quote (t nil)))); allout-use-hanging-indents ==> booleanp (lambda (x) (memq x '(nil t exclusive))); ispell-check-comments ==> no need for a defun (lambda (x) (or (member x (quote (t nil))) (stringp x))); allout-use-mode-specific-leader ==> no need for a defun, but use autoload comment. (lambda (x) (or (not x) (stringp x))); allout-file-xref-bullet (lambda (x) (or (not x) (stringp x))); allout-numbered-bullet ==> string-or-null-p (lambda (x) (or (numberp x) (listp x) (integerp x) (member x (quote (: * + -))))); allout-layout ==> no need for a defun, but use autoload comment. (lambda (x) (or (stringp x) (symbolp x))); reftex-fref-is-default (lambda (x) (or (stringp x) (symbolp x))); reftex-vref-is-default ==> no need for a defun; If we'd have more of this, we could add `string-or-symbol-p'. > (please cc me in followups in this thread...) [ Done. You may lookup the sub-thread here: http://thread.gmane.org/gmane.emacs.pretest.bugs/11847/focus=11953 ] Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ _______________________________________________ emacs-pretest-bug mailing list [email protected] http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
