I'm unclear on the recommended way to change Lisp code from using defvar for user options to using defcustom. I guess I'm also unclear on just how defcustom and Customize work. I couldn't find an explanation of this in Info for Emacs or Emacs Lisp.
Initial setup - library foo.el has this: (defvar foovar nil) (defun foo-fn () foovar) Initial setup - user has this in .emacs: (defvar foovar t) (load-library "foo") (foo-fn) When .emacs is loaded, (foo-fn) is executed, foovar is `t', so (foo-fn) returns `t'. Second setup - library foo.el has this: (defcustom foovar nil) (defun foo-fn () foovar) Second setup - user has this in .emacs, after customizing foovar to `t' with Customize: (load-library "foo") (foo-fn) ... (custom-set-variables '(foovar t)...) When .emacs is loaded, (foo-fn) is executed, foovar is (has default value) `nil', so (foo-fn) returns `nil'. That is, because (custom-set-variables...) is executed after (foo-fn), it has no effect during foo-fn's execution. What am I missing/confusing here? What is the proper way for library foo.el to move from using defvar to using defcustom? Also, what difference does it make, if any, whether a defcustom is executed at the top level or a lower level of a file. Thanks. - Drew _______________________________________________ Help-gnu-emacs mailing list Help-gnu-emacs@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-emacs