* Customize Rogue @ 2003-03-06 8:39 Per Abrahamsen 2003-03-06 9:39 ` Juanma Barranquero 2003-03-07 19:40 ` Richard Stallman 0 siblings, 2 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-06 8:39 UTC (permalink / raw) I wrote this function as a transition tool from "setq" to customize, it list all "rogue" variables, that is, variables that have been declared by defcustom but changed outside customize. OK to add to to cus-edit.el? Ideally, the only "rogue" variables would be those the user have set in .emacs himself, unfortunately there are a number of rogue variables even in a fresh Emacs. These are all potential problems. For some it is just a question of initialization, menu-bar-mode was an example of that. Others are changed later from Lisp code, those should probably not be declared with defcustom, as changed from Lisp will conflict with changed made by the user. ;;;###autoload (defun customize-rogue () "Customize all user variable modified outside customize." (interactive) (let ((found nil)) (mapatoms (lambda (symbol) (let ((cval (or (get symbol 'customized-value) (get symbol 'saved-value) (get symbol 'standard-value)))) (when (and cval ;Declared with defcustom. (default-boundp symbol) ;Has a value. (not (equal (eval (car cval)) ;; Which does not match customize. (default-value symbol)))) (push (list symbol 'custom-variable) found))))) (if (not found) (error "No rogue user options") (custom-buffer-create (custom-sort-items found t nil) "*Customize Rogue*")))) ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 8:39 Customize Rogue Per Abrahamsen @ 2003-03-06 9:39 ` Juanma Barranquero 2003-03-06 15:15 ` Per Abrahamsen 2003-03-07 19:40 ` Richard Stallman 2003-03-07 19:40 ` Richard Stallman 1 sibling, 2 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-06 9:39 UTC (permalink / raw) On Thu, 06 Mar 2003 09:39:18 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > I wrote this function as a transition tool from "setq" to customize, Transition? > it list all "rogue" variables, that is, variables that have been > declared by defcustom but changed outside customize. I'd much prefer a customize-set-value lookalike which would set the value of the variable, and trick the customize machinery into believing I did the right thing, *without* having to load cus-edit. I certainly don't want to use Customize and I don't consider customize something I should "transition" too... I'm not attacking customize, I'm sure it's wonderful for a lot of people, and beginners most of all. I just don't like having to use a form to set what I could do with a line or two on my .emacs. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 9:39 ` Juanma Barranquero @ 2003-03-06 15:15 ` Per Abrahamsen 2003-03-06 15:45 ` Juanma Barranquero [not found] ` <rjfzpzeh87.fsf@zuse.dina.kvl.dk> 2003-03-07 19:40 ` Richard Stallman 1 sibling, 2 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-06 15:15 UTC (permalink / raw) Juanma Barranquero <lektu@terra.es> writes: > On Thu, 06 Mar 2003 09:39:18 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > > I certainly don't want to use Customize and I don't consider customize > something I should "transition" too... I don't think you should do so either, but some people want to do so for whatever reason, and the command is useful for them. > I'd much prefer a customize-set-value lookalike which would set the > value of the variable, and trick the customize machinery into believing > I did the right thing, *without* having to load cus-edit. What do you hope to accomplish by tricking customize? ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 15:15 ` Per Abrahamsen @ 2003-03-06 15:45 ` Juanma Barranquero 2003-03-07 8:03 ` Per Abrahamsen [not found] ` <rjfzpzeh87.fsf@zuse.dina.kvl.dk> 1 sibling, 1 reply; 55+ messages in thread From: Juanma Barranquero @ 2003-03-06 15:45 UTC (permalink / raw) Cc: emacs-devel On Thu, 06 Mar 2003 16:15:07 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > I don't think you should do so either, but some people want to do so > for whatever reason, and the command is useful for them. Yes, sure. I reacted to the word "transition"**, but of course I'm not opposing customize-rogue in any way. **And the reason I reacted is that I hate finding those variables whose docstrings say "Don't set this directly, use customize". > What do you hope to accomplish by tricking customize? Two things: 1.- Not getting the "modified outside of customize" messages that I get the odd time I use it. If the value is right, I don't see the point of knowing i.e. if I set custom-file to ".emacs.custom" via setq or through M-x customize-variable; the message makes me wonder if anything's wrong... 2.- Using the customized initialization/setting/getting/whatever code for those variables that have special needs. I'd like to do (custom-setq variable value) ; or whatever and get customize to check the value against the type spec, etc. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 15:45 ` Juanma Barranquero @ 2003-03-07 8:03 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-07 8:03 UTC (permalink / raw) Cc: emacs-custom Juanma Barranquero <lektu@terra.es> writes: > I reacted to the word "transition"**, Does the word have any special positive or negative connotations? > 1.- Not getting the "modified outside of customize" messages that I get > the odd time I use it. They are there for a reason. > If the value is right, I don't see the point of > knowing i.e. if I set custom-file to ".emacs.custom" via setq or through > M-x customize-variable; the message makes me wonder if anything's wrong... Which is good, because if you have set it with setq and you try to save it with customize, the customize save will be overwritten by the setq. custom-file probably should not have been declared with defcustom, as it make no sense to change it throug customize. > 2.- Using the customized initialization/setting/getting/whatever code > for those variables that have special needs. I'd like to do > > (custom-setq variable value) ; or whatever > > and get customize to check the value against the type spec, etc. customize-set-value only make type-checks when used interactively, when used from Lisp is works just like setq. customize-set-variable will tell customize the variable has been set interactively, and call any speciel ":set" functions. The first property means it should never be called from ".emacs", but the second could be generally useful. Maybe we should have a function that does the second (obey :set) without doing the first. I'm not a Common Lisp programmer, but I suspect it would be natural to use setf for that purpose. This way we could do things like (setf menu-bar-mode nil) and it would just work. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <rjfzpzeh87.fsf@zuse.dina.kvl.dk>]
[parent not found: <200303100251.UAA13345@eel.dms.auburn.edu>]
[parent not found: <rjsmtvuxd0.fsf@zuse.dina.kvl.dk>]
* Re: Customize Rogue [not found] ` <rjsmtvuxd0.fsf@zuse.dina.kvl.dk> @ 2003-03-10 15:18 ` Kim F. Storm 2003-03-10 14:41 ` Kai Großjohann 2003-03-10 14:42 ` Luc Teirlinck 0 siblings, 2 replies; 55+ messages in thread From: Kim F. Storm @ 2003-03-10 15:18 UTC (permalink / raw) Cc: emacs-devel Per Abrahamsen <abraham@dina.kvl.dk> writes: > Luc Teirlinck <teirllm@dms.auburn.edu> writes: > > > Would that be a lot more difficult than say: > > > > (defun set-activate (variable value) > > "Sets variable to value. If there is a set-function, calls it." > > (custom-load-symbol variable) > > (funcall (or (get variable 'custom-set) 'set-default) variable value)) > > > > To be used like: > > > > (set-activate 'tool-bar-mode t) > > I think that would be an excellent addition to custom.el. > And I think it was exactly what was asked for -- except for the name. I like custom-set (or custom-setq) better, as is emphasizes that this does indeed work just as if the variable was set interactively through customize (as the doc string of some variables say is required). -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 15:18 ` Kim F. Storm @ 2003-03-10 14:41 ` Kai Großjohann 2003-03-10 14:42 ` Luc Teirlinck 1 sibling, 0 replies; 55+ messages in thread From: Kai Großjohann @ 2003-03-10 14:41 UTC (permalink / raw) storm@cua.dk (Kim F. Storm) writes: > I like custom-set (or custom-setq) better, as is emphasizes that > this does indeed work just as if the variable was set interactively > through customize (as the doc string of some variables say is > required). I like custom-setq, too. -- A preposition is not a good thing to end a sentence with. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 15:18 ` Kim F. Storm 2003-03-10 14:41 ` Kai Großjohann @ 2003-03-10 14:42 ` Luc Teirlinck 1 sibling, 0 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-10 14:42 UTC (permalink / raw) Cc: emacs-devel Kim Storm wrote: And I think it was exactly what was asked for -- except for the name. I like custom-set (or custom-setq) better, as is emphasizes that this does indeed work just as if the variable was set interactively through customize (as the doc string of some variables say is required). There is one difference. All side effects will be the same, but, as the function is written, customize will consider the option as being "changed outside the customize buffer". Hence "custom-" in the name might be misleading. The following documentation string follows Emacs' conventions better than the original: (defun set-activate (variable value) "Set VARIABLE to VALUE. If there is a set-function, call it." (custom-load-symbol variable) (funcall (or (get variable 'custom-set) 'set-default) variable value)) Maybe some further lines could be added to make clear that this is a valid alternative to using a customization buffer and that customize will consider an option set in this way to be changed outside the customize buffer. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 9:39 ` Juanma Barranquero 2003-03-06 15:15 ` Per Abrahamsen @ 2003-03-07 19:40 ` Richard Stallman 2003-03-08 13:43 ` Juanma Barranquero 1 sibling, 1 reply; 55+ messages in thread From: Richard Stallman @ 2003-03-07 19:40 UTC (permalink / raw) Cc: emacs-devel I'd much prefer a customize-set-value lookalike which would set the value of the variable, and trick the customize machinery into believing I did the right thing, *without* having to load cus-edit. If it can do the job without loading cus-edit, I guess that is an advantage. It is not the most important thing though. Perhaps some of the Custom commands might want to ask the user whether to do this. If we can choose the right situations to do that, it would mean users don't have to remember a command name for it, which would be a big advantage. I certainly don't want to use Customize and I don't consider customize something I should "transition" too... If you don't want to use Customize, I guess you would have no wish to redo your variable settings using Customize. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-07 19:40 ` Richard Stallman @ 2003-03-08 13:43 ` Juanma Barranquero 2003-03-09 17:16 ` Luc Teirlinck 0 siblings, 1 reply; 55+ messages in thread From: Juanma Barranquero @ 2003-03-08 13:43 UTC (permalink / raw) Cc: emacs-devel On Fri, 07 Mar 2003 14:40:57 -0500, Richard Stallman <rms@gnu.org> wrote: > If you don't want to use Customize, I guess you would have no wish > to redo your variable settings using Customize. That I don't want to use Customize does not mean I'm not forced to use it sometimes, or go 'round it. For example, I have in my .emacs the following: (put 'inhibit-startup-echo-area-message 'saved-value t) (setq inhibit-startup-echo-area-message (user-login-name)) Yes, I'm misusing `inhibit-startup-echo-area-message'. But I *know* what I'm doing, and I use the exact same .emacs on several machines. That's exactly what I want to do. I've had to take a look into startup.el to know how to subvert the check; in my view, I shouldn't have to. I should just have to do (custom-setq inhibit-startup-echo-area-message (user-login-name)) and be done with it. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-08 13:43 ` Juanma Barranquero @ 2003-03-09 17:16 ` Luc Teirlinck 2003-03-09 18:03 ` Juanma Barranquero 0 siblings, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 17:16 UTC (permalink / raw) Cc: emacs-devel Juanma Barranquero wrote: That I don't want to use Customize does not mean I'm not forced to use it sometimes, or go 'round it. For example, I have in my .emacs the following: (put 'inhibit-startup-echo-area-message 'saved-value t) (setq inhibit-startup-echo-area-message (user-login-name)) Yes, I'm misusing `inhibit-startup-echo-area-message'. But I *know* what I'm doing, and I use the exact same .emacs on several machines. That's exactly what I want to do. I've had to take a look into startup.el to know how to subvert the check; in my view, I shouldn't have to. I should just have to do (custom-setq inhibit-startup-echo-area-message (user-login-name)) and be done with it. It seems to me that in the above example you are not at all trying to get around roadblocks put in your way by customize, quite to the contrary, you are taking advantage of the way customize is implemented in startup.el to get around what you really want to get around, namely the intentional disabling of code like: (setq inhibit-startup-echo-area-message (user-login-name)) Customize itself does not let you get around that: it requires a string constant. The reason to disable (setq inhibit-startup-echo-area-message (user-login-name)) is out of fear that somebody else might blindly copy your .emacs. (custom-setq inhibit-startup-echo-area-message (user-login-name)) would not get around that problem. Of course, you may be confident that nobody is going to blindly copy your .emacs. But there are plenty of ways that you can achieve what you want to achieve. For instance, it would seem that: (defun startup-echo-area-message ()) in .emacs would work, as would plenty of other (maybe better) stuff. Anyway, this is a completely separate issue, unrelated to customize. I am not necessarily saying that you do not have a point, only that if you do, your example seems badly chosen. (Unless I am completely misunderstanding it.) Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 17:16 ` Luc Teirlinck @ 2003-03-09 18:03 ` Juanma Barranquero 2003-03-09 18:25 ` Luc Teirlinck ` (3 more replies) 0 siblings, 4 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-09 18:03 UTC (permalink / raw) Cc: emacs-devel On Sun, 9 Mar 2003 11:16:08 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > It seems to me that in the above example you are not at all trying to > get around roadblocks put in your way by customize No. I'm trying to get around the fact that I have to go through the customize interface (or fake it) to get the effect of customization. And what I want is to get them without going through the interface. > The reason to disable > > (setq inhibit-startup-echo-area-message (user-login-name)) > > is out of fear that somebody else might blindly copy your .emacs. I know that. > (custom-setq inhibit-startup-echo-area-message (user-login-name)) > > would not get around that problem. Wouldn't? The custom-setq I'm talking about would have the *exact* semantics of doing M-x customize-variable MY-VAR, setting the value to VALUE and then chosing "Save for Future Sessions"... So it would, by definition. > Of course, you may be confident that nobody is going to blindly copy > your .emacs. Really, the fact that I've chosen inhibit-startup-echo-area-message for the example is irrelevant. > I am not necessarily saying that you do not have a point, only that if > you do, your example seems badly chosen. (Unless I am completely > misunderstanding it.) The first one that crossed my mind. But what about those variables whose docstring says "Setting this variable directly will have no effect, you have to use customize"...? I want to have the option of setting the variable directly and getting the customization effect. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:03 ` Juanma Barranquero @ 2003-03-09 18:25 ` Luc Teirlinck 2003-03-09 18:49 ` Juanma Barranquero 2003-03-09 18:40 ` Luc Teirlinck ` (2 subsequent siblings) 3 siblings, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 18:25 UTC (permalink / raw) Cc: emacs-devel Juanma Barranquero wrote: No. I'm trying to get around the fact that I have to go through the customize interface (or fake it) to get the effect of customization. Let me first make sure that I understand your problem: Your login name is, say, lektu on one machine, barranj on another. You want to use one .emacs for both, hence you can not do (setq inhibit-startup-echo-area-message "lektu") nor: (setq inhibit-startup-echo-area-message "barranj") Or at least not just one of them. What I suggested before: (defun startup-echo-area-message ()) now seems stupid. The solution to the problem I describe would be to put both lines above in .emacs. It works and people could blindly copy your .emacs, no problem, at least not in as far as inhibit-startup-echo-area-message is concerned. But is the above your real problem? Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:25 ` Luc Teirlinck @ 2003-03-09 18:49 ` Juanma Barranquero 2003-03-09 20:02 ` Robert J. Chassell ` (2 more replies) 0 siblings, 3 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-09 18:49 UTC (permalink / raw) Cc: emacs-devel On Sun, 9 Mar 2003 12:25:06 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > Your login name is, say, lektu on one machine, barranj on another. Yes. > The solution to the problem I describe would be to put both lines > above in .emacs. Yes, that's an aswer, because startup looks for a precise text in .emacs; setting the 'saved-value property, as I do, is another one. > But is the above your real problem? No. Please *forget* inhibit-startup-echo-area-message. Is *irrelevant* to the discussion. The "problem" is that I *don't* like the customization interface, but some modules want to force the user to set variables through the interface. I don't want to do that. I want to set them directly. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:49 ` Juanma Barranquero @ 2003-03-09 20:02 ` Robert J. Chassell 2003-03-10 14:24 ` Per Abrahamsen 2003-03-11 19:07 ` Stefan Monnier 2 siblings, 0 replies; 55+ messages in thread From: Robert J. Chassell @ 2003-03-09 20:02 UTC (permalink / raw) The "problem" is that I *don't* like the customization interface, but some modules want to force the user to set variables through the interface. Said a different way: Emacs has been a `virtual lisp machine', but the customization interface prevents it being one. In the past, you could evaluate any Emacs Lisp expression; but in some circumstances, the customization interface does not permit this. -- Robert J. Chassell Rattlesnake Enterprises http://www.rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.teak.cc bob@rattlesnake.com ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:49 ` Juanma Barranquero 2003-03-09 20:02 ` Robert J. Chassell @ 2003-03-10 14:24 ` Per Abrahamsen 2003-03-11 19:07 ` Stefan Monnier 2 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-10 14:24 UTC (permalink / raw) Cc: 0 Juanma Barranquero <lektu@terra.es> writes: > The "problem" is that I *don't* like the customization interface, but > some modules want to force the user to set variables through the > interface. I don't want to do that. I want to set them directly. If any module force the user to go through Customize, that is simply a bug in that module. Rather than implementing workarounds, the module should be fixed. Note that most cases where people notice this is for minor modes, which used to work like this (defvar foo-bar-mode nil) ;; Internal state variable, do not touch (defun foo-bar-mode (flag) ...) ;; Command to turn foo bar mode on or off. and now work like this (defcustom foo-bar-mode nil "State of foo bar mode, only change this through customize." ...) (defun foo-bar-mode (flag) ...) ;; Command to turn foo bar mode on or off. because Customize requires a variable to work. This means an internal variable have become visible but only for customize users. It does not mean foo bar mode suddenly only can be set through customize, but the Lisp interface is now as always a function, not a variable. The doc-string just makes people jump to the conclusion that no Lisp interface is available. With Luc's set-activate function, there will be to Lisp interfaces with identical semantics. But it will help people who us customize to search for options, but not to set them, so I think it is very useful. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:49 ` Juanma Barranquero 2003-03-09 20:02 ` Robert J. Chassell 2003-03-10 14:24 ` Per Abrahamsen @ 2003-03-11 19:07 ` Stefan Monnier 2003-03-11 20:41 ` Juanma Barranquero ` (2 more replies) 2 siblings, 3 replies; 55+ messages in thread From: Stefan Monnier @ 2003-03-11 19:07 UTC (permalink / raw) Cc: emacs-devel > The "problem" is that I *don't* like the customization interface, but > some modules want to force the user to set variables through the > interface. I don't want to do that. I want to set them directly. I think clearly, the problem is in the way those modules use customize. Most uses of :set are for things like minor-mode (where using define-minor-mode has the advantage of providing a standard way to deal with it), the others should be replaced. I.e. we could provide set-activate, but I think we should instead encourage people to avoid :set or at least use very simple :set expressions and document the lisp-way to do things in the docstring (as is done by define-minor-mode and as was done before custom). Stefan PS: How about we add `write-watchers' to variables ? These would be hooks that get called when a specific variable is `setq'd. It'd have "zero performance impact" if we put it in the "setq-ing a read-only variable" error handling path. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-11 19:07 ` Stefan Monnier @ 2003-03-11 20:41 ` Juanma Barranquero 2003-03-12 1:26 ` Luc Teirlinck 2003-03-12 20:59 ` Richard Stallman 2 siblings, 0 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-11 20:41 UTC (permalink / raw) Cc: emacs-devel On Tue, 11 Mar 2003 14:07:40 -0500, "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> wrote: > I think clearly, the problem is in the way those modules > use customize. I agree, but... > [...] I think we should > instead encourage people to avoid :set or at least use very > simple :set expressions [...] ...I think that's difficult to enforce. > PS: How about we add `write-watchers' to variables ? These would be > hooks that get called when a specific variable is `setq'd. IIRC, hooks to be called when a variable is called where proposed several times and rejected by Richard on the grounds that setting a variable should be clearly different from calling a subroutine. I wonder where does defcustom's :set enters the picture... :) /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-11 19:07 ` Stefan Monnier 2003-03-11 20:41 ` Juanma Barranquero @ 2003-03-12 1:26 ` Luc Teirlinck 2003-03-12 12:07 ` Kai Großjohann 2003-03-12 18:38 ` Stefan Monnier 2003-03-12 20:59 ` Richard Stallman 2 siblings, 2 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-12 1:26 UTC (permalink / raw) Cc: emacs-devel Stefan Monnier wrote: Most uses of :set are for things like minor-mode (where using define-minor-mode has the advantage of providing a standard way to deal with it), the others should be replaced. Since every Lisp symbol can at the same time be a variable and a function, it would have been nice if every variable my_favorite_symbol with a :set function, would have an associated function my_favorite_symbol and if that function behaved in exactly the same way as minor mode functions for variables of boolean type and if, for non-boolean type variables, (my_favorite_symbol value) would be equivalent with setting the variable my_favorite_symbol to VALUE through customize: :set #'funcall But I guess it is much too late to enforce anything like this, even if it were deemed desirable. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 1:26 ` Luc Teirlinck @ 2003-03-12 12:07 ` Kai Großjohann 2003-03-12 18:38 ` Stefan Monnier 1 sibling, 0 replies; 55+ messages in thread From: Kai Großjohann @ 2003-03-12 12:07 UTC (permalink / raw) Luc Teirlinck <teirllm@dms.auburn.edu> writes: > But I guess it is much too late to enforce anything like this, even if > it were deemed desirable. It could be stated as a desirable goal, and then slowly all uses of Customize could be changed in that direction. It seems that the Emacs Lisp way is to have coding conventions rather than enforecements, and that seemed to have worked well so far. So why should it fail in this case? -- A preposition is not a good thing to end a sentence with. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 1:26 ` Luc Teirlinck 2003-03-12 12:07 ` Kai Großjohann @ 2003-03-12 18:38 ` Stefan Monnier 2003-03-13 0:27 ` Luc Teirlinck 2003-03-13 7:48 ` Richard Stallman 1 sibling, 2 replies; 55+ messages in thread From: Stefan Monnier @ 2003-03-12 18:38 UTC (permalink / raw) Cc: monnier+gnu/emacs > Most uses of :set are for things like minor-mode (where using > define-minor-mode has the advantage of providing a standard way > to deal with it), the others should be replaced. > > Since every Lisp symbol can at the same time be a variable and a > function, it would have been nice if every variable my_favorite_symbol > with a :set function, would have an associated function > my_favorite_symbol and if that function behaved in exactly the same > way as minor mode functions for variables of boolean type and if, for > non-boolean type variables, (my_favorite_symbol value) would be > equivalent with setting the variable my_favorite_symbol to VALUE > through customize: > > :set #'funcall > > But I guess it is much too late to enforce anything like this, even if > it were deemed desirable. Hey, now, there's a great idea. We could add some code in defcustom so that it complains when the value of :set is not a symbol (which would ensure that whatever the :setter is, it can always be called easily from elisp). Stefan ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 18:38 ` Stefan Monnier @ 2003-03-13 0:27 ` Luc Teirlinck 2003-03-13 7:48 ` Richard Stallman 1 sibling, 0 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-13 0:27 UTC (permalink / raw) Cc: monnier+gnu/emacs Stefan Monnier wrote: We could add some code in defcustom so that it complains when the value of :set is not a symbol (which would ensure that whatever the :setter is, it can always be called easily from elisp). What would you do with minor-mode type variables for which define-minor-mode currently produces: :set (lambda (symbol value) (funcall symbol (or value 0))) to replace a value of nil of the variable by 0? Name that lambda function for internal use by defcustom? Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 18:38 ` Stefan Monnier 2003-03-13 0:27 ` Luc Teirlinck @ 2003-03-13 7:48 ` Richard Stallman 1 sibling, 0 replies; 55+ messages in thread From: Richard Stallman @ 2003-03-13 7:48 UTC (permalink / raw) Cc: monnier+gnu/emacs We could add some code in defcustom so that it complains when the value of :set is not a symbol (which would ensure that whatever the :setter is, it can always be called easily from elisp). I think there are many simple :set lambdas that are ok and need not be changed. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-11 19:07 ` Stefan Monnier 2003-03-11 20:41 ` Juanma Barranquero 2003-03-12 1:26 ` Luc Teirlinck @ 2003-03-12 20:59 ` Richard Stallman 2 siblings, 0 replies; 55+ messages in thread From: Richard Stallman @ 2003-03-12 20:59 UTC (permalink / raw) Cc: emacs-devel PS: How about we add `write-watchers' to variables ? These would be hooks that get called when a specific variable is `setq'd. It'd have "zero performance impact" if we put it in the "setq-ing a read-only variable" error handling path. I don't like the idea of changing the semantics of Lisp variables in this way. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:03 ` Juanma Barranquero 2003-03-09 18:25 ` Luc Teirlinck @ 2003-03-09 18:40 ` Luc Teirlinck 2003-03-09 19:00 ` Juanma Barranquero 2003-03-09 18:50 ` Luc Teirlinck 2003-03-10 14:43 ` Customize Rogue Per Abrahamsen 3 siblings, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 18:40 UTC (permalink / raw) Cc: emacs-devel Juanma Barranquero wrote: I know that. > (custom-setq inhibit-startup-echo-area-message (user-login-name)) > > would not get around that problem. Wouldn't? The custom-setq I'm talking about would have the *exact* semantics of doing M-x customize-variable MY-VAR, setting the value to VALUE and then chosing "Save for Future Sessions"... So it would, by definition. If I copy that line literally from your .emacs, then what is going to prevent that line from having exactly the same effect in my .emacs than it has in yours? The VALUE you are going to enter through customize would be "lektu" or whatever, so that value would really have no effect in my .emacs, where "teirllm" would be required. > I am not necessarily saying that you do not have a point, only that if > you do, your example seems badly chosen. (Unless I am completely > misunderstanding it.) The first one that crossed my mind. But what about those variables whose docstring says "Setting this variable directly will have no effect, you have to use customize"...? I want to have the option of setting the variable directly and getting the customization effect. I actually agree with the above. But what does this have to do with `inhibit-startup-echo-area-message'? It definitely is not one of those variables. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:40 ` Luc Teirlinck @ 2003-03-09 19:00 ` Juanma Barranquero 2003-03-09 19:37 ` Luc Teirlinck 0 siblings, 1 reply; 55+ messages in thread From: Juanma Barranquero @ 2003-03-09 19:00 UTC (permalink / raw) Cc: emacs-devel On Sun, 9 Mar 2003 12:40:04 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > If I copy that line literally from your .emacs, then what is going to > prevent that line from having exactly the same effect in my .emacs > than it has in yours? The VALUE you are going to enter through > customize would be "lektu" or whatever, so that value would really > have no effect in my .emacs, where "teirllm" would be required. When I say that (custom-setq VARIABLE VALUE) should have the same semantics that going through the customization interface, I'm not saying that VALUE is a constant, or non-evaluated. (custom-setq my-var (user-full-name)) would evaluate `user-full-name', pass the value (let's say it is "jbarran") to custom-seq, and then it would do the *same* thing that if I did M-x customize-variable my-var and typed "jbarran" and then selected "Save for Future Sessions". But if the same code is executed in another environment, custom-setq would be called with another arguments. > I actually agree with the above. But what does this have to do with > `inhibit-startup-echo-area-message'? It definitely is not one of > those variables. Luc, forgive me if I'm starting to get a bit fed up with this, but I think I've been saying for about four messages now that it's *not* particularly related to inhibit-startup-echo-area-message. That variable must be set through customization: > Setting this variable takes effect > only if you do it with the customization buffer > or if your `.emacs' file contains a line of this form: > (setq inhibit-startup-echo-area-message "YOUR-USER-NAME") so I chose it as an example. That's all. Please assume I said "current-language-environment" instead. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 19:00 ` Juanma Barranquero @ 2003-03-09 19:37 ` Luc Teirlinck 2003-03-09 20:03 ` Juanma Barranquero 0 siblings, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 19:37 UTC (permalink / raw) Cc: emacs-devel Juanma Barranquero wrote: Luc, forgive me if I'm starting to get a bit fed up with this, but I think I've been saying for about four messages now that it's *not* particularly related to inhibit-startup-echo-area-message. Sorry about that. I somehow am a slow typist and was still reacting to your old messages when I should have been forgetting about them and concentrating on your latest ones. Also there is a delay between receiving mail and the `Mail' appearing in the mode line. Some of our messages seem to have crossed each other "in transit". Also, there seems to be some problem with customize completely bypassing safeguards put into .emacs. Either both .emacs and customize need those safeguards or neither does. This does not seem to be consistent. The fact that this was not the problem you are interested in, but instead was one you completely inadvertently "bumped into", does not mean that it is not a problem. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 19:37 ` Luc Teirlinck @ 2003-03-09 20:03 ` Juanma Barranquero 0 siblings, 0 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-09 20:03 UTC (permalink / raw) Cc: emacs-devel On Sun, 9 Mar 2003 13:37:45 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > The fact that this was not the problem you are > interested in, but instead was one you completely inadvertently > "bumped into", does not mean that it is not a problem. Glad to help :) /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:03 ` Juanma Barranquero 2003-03-09 18:25 ` Luc Teirlinck 2003-03-09 18:40 ` Luc Teirlinck @ 2003-03-09 18:50 ` Luc Teirlinck 2003-03-09 19:05 ` Juanma Barranquero 2003-03-09 20:28 ` Customize and inhibit-startup-echo-area-message Luc Teirlinck 2003-03-10 14:43 ` Customize Rogue Per Abrahamsen 3 siblings, 2 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 18:50 UTC (permalink / raw) Cc: emacs-devel Juanma Barranquero wrote: No. I'm trying to get around the fact that I have to go through the customize interface (or fake it) to get the effect of customization. And what I want is to get them without going through the interface. Now I understand. You can enter (user-login-name) in customize and it will fool the entire machinery. That seems to me to be a bug in customize. (Unless I am misunderstanding something) That bug is, however completely unrelated to the problems with customize you are describing. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:50 ` Luc Teirlinck @ 2003-03-09 19:05 ` Juanma Barranquero 2003-03-09 20:28 ` Customize and inhibit-startup-echo-area-message Luc Teirlinck 1 sibling, 0 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-09 19:05 UTC (permalink / raw) Cc: emacs-devel On Sun, 9 Mar 2003 12:50:28 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > Now I understand. You can enter (user-login-name) in customize and it > will fool the entire machinery. That seems to me to be a bug in > customize. I hadn't even thought of that, but if it works, I'd call it a feature. But still... >(Unless I am misunderstanding something) ...Yes, you're mistunderstanding me. My problem is *not* related to what can or cannot be done through the forms-like interface of customize, because I very emphatically *don't* want to use it. My "problem" is that if setting a variable through the interface causes side effects, I want to be able to get those very same side effects through a simple asignment in my .emacs. Not for `inhibit-startup-echo-area-message'. For *every* customizable option. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Customize and inhibit-startup-echo-area-message 2003-03-09 18:50 ` Luc Teirlinck 2003-03-09 19:05 ` Juanma Barranquero @ 2003-03-09 20:28 ` Luc Teirlinck 1 sibling, 0 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-09 20:28 UTC (permalink / raw) Cc: lektu >From my previous message: Now I understand. You can enter (user-login-name) in customize and it will fool the entire machinery. That seems to me to be a bug in customize. To begin with, I fully understand that this as nothing to do with the problem Juanma is discussing. I am discussing a specific problem with inhibit-startup-echo-area-message. The statement I made above is wrong. If you enter (user-login-name) through customize, then inhibit-startup-echo-area-message gets set to the unevaluated string "(user-login-message)" which has no effect whatsoever. The only ways to get an equivalent of (setq inhibit-startup-echo-area-message (user-login-name)) executed through the customize machinery that I know of are to use it indirectly, either the way Juanma did or by adding manually the line: '(inhibit-startup-echo-area-message (user-login-name)) to one's custom-set-variables form in .emacs. Since both ways seem rather deliberate, I would not consider them bugs, even though they would yield problems in case of completely thoughtless copying. I do not know whether Juanma actually bumped into a less deliberate way to use customize to get a (setq inhibit-startup-echo-area-message (user-login-name)) equivalent. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-09 18:03 ` Juanma Barranquero ` (2 preceding siblings ...) 2003-03-09 18:50 ` Luc Teirlinck @ 2003-03-10 14:43 ` Per Abrahamsen 2003-03-10 14:59 ` Andreas Schwab ` (2 more replies) 3 siblings, 3 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-10 14:43 UTC (permalink / raw) Cc: emacs-custom Juanma Barranquero <lektu@terra.es> writes: > The custom-setq I'm talking about would have the *exact* semantics > of doing M-x customize-variable MY-VAR, setting the value to VALUE > and then chosing "Save for Future Sessions"... That would be an a very bad idea, the *only* example where that would is when you want to bypass code that *deliberately* make it hard to use setq, and I'd be very surprised if that is the case for any other variable than 'inhibit-startup-echo-area-message'. That variable is difficult to modify non-interactively for political reasons, RMS want every user to see the message at least once, so he made it hard for a system administrator to deactivate it for all users. Luc's set-activate should cover all the variables that are *accidentally* made hard (or non-intuitive) to set from outside customize. > Really, the fact that I've chosen inhibit-startup-echo-area-message for > the example is irrelevant. Not if it is the only variable in Emacs for which your example makes sense. > The first one that crossed my mind. But what about those variables whose > docstring says "Setting this variable directly will have no effect, you > have to use customize"...? I want to have the option of setting the > variable directly and getting the customization effect. There is always, modulo bugs, a specific function you need to call instead. However, set-activate will relieve you of the problem of finding it (fixing the doc-string to mention the function would also be a good idea). It will also make it much easier to transition *from* customize to Lisp, in fact you will be able to automate it entirely. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 14:43 ` Customize Rogue Per Abrahamsen @ 2003-03-10 14:59 ` Andreas Schwab 2003-03-12 12:50 ` Per Abrahamsen 2003-03-10 15:04 ` Kai Großjohann [not found] ` <20030310163108.44F9.LEKTU@terra.es> 2 siblings, 1 reply; 55+ messages in thread From: Andreas Schwab @ 2003-03-10 14:59 UTC (permalink / raw) Per Abrahamsen <abraham@dina.kvl.dk> writes: |> Juanma Barranquero <lektu@terra.es> writes: |> |> > Really, the fact that I've chosen inhibit-startup-echo-area-message for |> > the example is irrelevant. |> |> Not if it is the only variable in Emacs for which your example makes |> sense. See utf-fragment-on-decoding for an extreme example. It has a huge and complicated :set function, and no way to do the same thing outside customize. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 14:59 ` Andreas Schwab @ 2003-03-12 12:50 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-12 12:50 UTC (permalink / raw) Cc: emacs-custom Andreas Schwab <schwab@suse.de> writes: > See utf-fragment-on-decoding for an extreme example. It has a huge and > complicated :set function, and no way to do the same thing outside > customize. And how does that rely on the 'saved-value' property? Luc's 'set-activate' function obeys the 'custom-set' property which is what :set specifes. The example I answered manually set the 'saved-value' property which is what customize uses to remind itself to save the value in .emacs. Emacs check the 'saved-value' property specifically for inhibit-startup-echo-area-message to ensure that the variable was changed by the user, not by a system administrator. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 14:43 ` Customize Rogue Per Abrahamsen 2003-03-10 14:59 ` Andreas Schwab @ 2003-03-10 15:04 ` Kai Großjohann 2003-03-12 13:06 ` Per Abrahamsen [not found] ` <20030310163108.44F9.LEKTU@terra.es> 2 siblings, 1 reply; 55+ messages in thread From: Kai Großjohann @ 2003-03-10 15:04 UTC (permalink / raw) Cc: emacs-custom Per Abrahamsen <abraham@dina.kvl.dk> writes: > There is always, modulo bugs, a specific function you need to call > instead. However, set-activate will relieve you of the problem of > finding it (fixing the doc-string to mention the function would also > be a good idea). It will also make it much easier to transition > *from* customize to Lisp, in fact you will be able to automate it > entirely. Maybe Customize could be changed to maintain a list of set-activate statements instead of the current custom-set-variables thingy. Then people could just copy and paste set-activate statements... -- A preposition is not a good thing to end a sentence with. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-10 15:04 ` Kai Großjohann @ 2003-03-12 13:06 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-12 13:06 UTC (permalink / raw) Cc: emacs-custom kai.grossjohann@uni-duisburg.de (Kai Großjohann) writes: > Maybe Customize could be changed to maintain a list of set-activate > statements instead of the current custom-set-variables thingy. Then > people could just copy and paste set-activate statements... Not with the semantics Luc has, it doesn't do everything custom-set-variables does. Splitting custom-set-variables into many seperate forms would be a good idea though, since it would make it easier to share customizations. I.e. "put this into your .emacs at top level" instead of "merge this into your own custom-set-variables form, or create one if you don't have it". It would make the "save customizations" function somewhat more complex though. Of course, it would also encourage people even more to put the statements other places than the top-level of custom-file, which would be dsirable but hard if not impossible to support in the "save customizations" function I believe it was a mistake to save the customizations as Lisp, people have expectations of what they can do with Lisp code that is impossible to fullfil from a simple form based interface. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <20030310163108.44F9.LEKTU@terra.es>]
* Re: Customize Rogue [not found] ` <20030310163108.44F9.LEKTU@terra.es> @ 2003-03-12 13:23 ` Per Abrahamsen 2003-03-12 15:00 ` Juanma Barranquero 2003-03-12 23:30 ` David Masterson [not found] ` <200303110016.SAA14021@eel.dms.auburn.edu> [not found] ` <E18sYEe-0004sQ-00@fencepost.gnu.org> 2 siblings, 2 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-12 13:23 UTC (permalink / raw) Cc: emacs-custom Juanma Barranquero <lektu@terra.es> writes: > In that light, getting a message that says "Value changed > outside of customize buffer" You only get that message if you actually use the Customize form based interface. If you use the Customize form based interface, the message is useful. If you don't use it, the message is not useful, but you will not see it either. > all to do with the fact that I want the "right" to make customize > believe that I did M-x customize, even if I didn't. You have that "right" (since you already have code in your .emacs that do exactly that), but Emacs should have not contain extra code to support functions that are never useful to any people, but does things only people who do not know what they are doing believe is a good idea. Remember that you have only been able to name a *single* variable where setting custom-saved manually from .emacs is useful in any sense, and that variable has been *deliberately* made hard to set from .emacs. Emacs should provide functions because they are useful, and not for any other reasons, including philosophical reasons. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 13:23 ` Per Abrahamsen @ 2003-03-12 15:00 ` Juanma Barranquero [not found] ` <rju1e77b8v.fsf@zuse.dina.kvl.dk> 2003-03-12 23:30 ` David Masterson 1 sibling, 1 reply; 55+ messages in thread From: Juanma Barranquero @ 2003-03-12 15:00 UTC (permalink / raw) On Wed, 12 Mar 2003 14:23:19 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > Remember that you have only been able to name a *single* variable > where setting custom-saved manually from .emacs is useful in any > sense No, you're wrong. Every variable I set in my .emacs and gets a message through customize is one where silencing the message would be useful. That you don't consider it so does not make it less true for me. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <rju1e77b8v.fsf@zuse.dina.kvl.dk>]
* Re: Customize Rogue [not found] ` <rju1e77b8v.fsf@zuse.dina.kvl.dk> @ 2003-03-13 14:03 ` Juanma Barranquero 0 siblings, 0 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-13 14:03 UTC (permalink / raw) Cc: Per Abrahamsen On Thu, 13 Mar 2003 12:32:32 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > It is not possible to argue rationally about purely subjective > matters. User interface issues are mostly subjective matters (notice I said "mostly"). You seem to believe otherwise. /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 13:23 ` Per Abrahamsen 2003-03-12 15:00 ` Juanma Barranquero @ 2003-03-12 23:30 ` David Masterson [not found] ` <rj1y1b8q46.fsf@zuse.dina.kvl.dk> 1 sibling, 1 reply; 55+ messages in thread From: David Masterson @ 2003-03-12 23:30 UTC (permalink / raw) Cc: emacs-custom >>>>> Per Abrahamsen writes: > Juanma Barranquero <lektu@terra.es> writes: >> In that light, getting a message that says "Value changed outside >> of customize buffer" > You only get that message if you actually use the Customize form > based interface. If you use the Customize form based interface, the > message is useful. If you don't use it, the message is not useful, > but you will not see it either. One potential you might be missing is that other Emacs "packages" could "dump" a "customization" for a user. That is, during the installation of a package, the package may create a (set of) custom calls that fit the package to the environment of the user. Later, if the user chooses to (re-)customize his Emacs, would he be "confused" by the message? (too many quotes :-\ ) > Emacs should provide functions because they are useful, and not for > any other reasons, including philosophical reasons. If a function causes confusion in it's results, it will be avoided regardless of its usefulness. -- David Masterson David DOT Masterson AT synopsys DOT com Sr. R&D Engineer Synopsys, Inc. Software Engineering Sunnyvale, CA ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <rj1y1b8q46.fsf@zuse.dina.kvl.dk>]
[parent not found: <uptov2g78.fsf@synopsys.com>]
[parent not found: <rjr89b0vxt.fsf@zuse.dina.kvl.dk>]
* Re: Customize Rogue [not found] ` <rjr89b0vxt.fsf@zuse.dina.kvl.dk> @ 2003-03-14 0:25 ` David Masterson 2003-03-14 4:21 ` Luc Teirlinck 2003-03-15 0:28 ` John Wiegley 2 siblings, 0 replies; 55+ messages in thread From: David Masterson @ 2003-03-14 0:25 UTC (permalink / raw) Cc: emacs-custom >>>>> Per Abrahamsen writes: > David Masterson <David.Masterson@synopsys.com> writes: >> John Wiegley has a tool called initsplit.el on his web-site for >> breaking customizations into multiple files. >> However, you've got a good point that I can't think how customize >> would be able to find and set the customizations once they've been >> "split" into multiple locations -- regardless whether the split was >> done in customize fashion (a la initsplit.el) or via setq like >> things (a la set-activate). > Uh, does initsplit.el use multiple custom-set-variables? That is > guarenteed to cause problems whenever the user tries to modify the > variables. If so, it *really* should use setq (or a set-activate > woralike) instead. Yes, it does appear that initsplit.el uses multiple, package specific, custom-files which (I suspect) the package is expected to load as needed. For instance, he splits his Gnus customizations out into his gnus-init-file. BTW, initsplit.el plus a couple of examples of its use are at: http://www.gci-net.com/users/j/johnw/emacs.html -- David Masterson David DOT Masterson AT synopsys DOT com Sr. R&D Engineer Synopsys, Inc. Software Engineering Sunnyvale, CA ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue [not found] ` <rjr89b0vxt.fsf@zuse.dina.kvl.dk> 2003-03-14 0:25 ` David Masterson @ 2003-03-14 4:21 ` Luc Teirlinck [not found] ` <uadfx6b0c.fsf@synopsys.com> 2003-03-15 0:28 ` John Wiegley 2 siblings, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-14 4:21 UTC (permalink / raw) Cc: emacs-devel Per Abrahamsen wrote: Uh, does initsplit.el use multiple custom-set-variables? That is guarenteed to cause problems whenever the user tries to modify the variables. If so, it *really* should use setq (or a set-activate woralike) instead. Maybe the existence if initsplit.el is an argument for including set-activate in Emacs, to make it easier to write such tools. It is hard for automated tools to read doctrings to find the proper Lisp function to set the variable. Even if the current custom-set-variables and custom-set-faces forms would be replaced by a series of custom-setq calls (which would be a big plus for people who like to combine use of Custom with Lisp based customizations) there still would, as is apparent from David's messages, be a legitimate need to perform customizations that are outside of Custom's control (and hence could not be done using custom-setq). If done by hand, it is sufficient if a Lisp alternative is available and mentioned in the documentation string, although it would help if the alternative was a function with the same name as the variable (as is the case for minor modes), to avoid having to remember two different names for exactly the same functionality and to eliminate the need for a C-h v. I do not know whether it would be possible to standardize such a naming convention sufficiently to make it safe for automated use. If not, then I believe that there is indeed a need for set-activate. It is possible to abuse that function. But the documentation string could make clear what it is intended to be used for and what not. In particular, the documentation string would clearly state that it is definitely not meant to set parameters from Lisp code, but instead for customizations that are outside Custom's control, mainly in automated use. It is a very small function, it is not exactly going to "bloat" custom.el. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <uadfx6b0c.fsf@synopsys.com>]
[parent not found: <200303142312.RAA17322@eel.dms.auburn.edu>]
[parent not found: <15986.27208.152000.911108@gargle.gargle.HOWL>]
[parent not found: <200303150002.SAA17358@eel.dms.auburn.edu>]
* Re: Customize Rogue [not found] ` <200303150002.SAA17358@eel.dms.auburn.edu> @ 2003-03-15 0:22 ` David Masterson 2003-03-15 10:33 ` John Wiegley 0 siblings, 1 reply; 55+ messages in thread From: David Masterson @ 2003-03-15 0:22 UTC (permalink / raw) Cc: emacs-devel >>>>> Luc Teirlinck writes: > I downloaded initsplit.el. I did not really read through the code. > But does initsplit-customizations-alist not tell initsplit.el where > everything is supposed to be? If the user tries to fool the > automated tool, the automated tool looses, no doubt about that. Now > initsplit somehow has to tell this to Custom through advice, hooks, > whatever. I am not interested in personally writing such a tool, > but it does not seem theoretically impossible. Whether it is easy > is another matter. I just took a look at it again (it's been awhile). The alist does tell initsplit where everything is supposed to be (based upon regexps against the defcustom variables). There is also a write-file-hook that checks to see if the file that is being written is a custom-file or user-init-file and, if so, runs it through initsplit. The comment says (I think) that, if you run Custom after initsplit, the new customizations (which could include updates to old ones) will again be put into the custom-file, but, because of the write-file-hook, initsplit will put it back where it belongs according to the alist. The only issue is that you have load all the split custom-files in your .emacs to ensure that all the customizations are known to Custom. John apparently uses this to split out Gnus and Viper customizations, but I guess you could apply it to VM, Rmail, JDE, and so on. Hmmm, maybe I ought to look at using this again... ;-) What was the issue that Per mentioned about multiple calls to custom-set-variables again? -- David Masterson David DOT Masterson AT synopsys DOT com Sr. R&D Engineer Synopsys, Inc. Software Engineering Sunnyvale, CA ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-15 0:22 ` David Masterson @ 2003-03-15 10:33 ` John Wiegley 0 siblings, 0 replies; 55+ messages in thread From: John Wiegley @ 2003-03-15 10:33 UTC (permalink / raw) David Masterson <David.Masterson@synopsys.COM> writes: > The only issue is that you have load all the split custom-files in > your .emacs to ensure that all the customizations are known to > Custom. Actually, you do not. Say you split your settings into .emacs, file A and file B. If only .emacs has been loaded, then the customizations in file A haven't been loaded, *so they won't be written out when you save your customizations*. They will be "out of the loop". If you do load them, then when you save the customizations, it will split them back out to whatever files were loaded. It is a very straightforward concept, but turns out to work very well. In three years of usage, I have not found any complications. > What was the motivation for writing initsplit.el? Was there more > to it than just "to be tidy"? Nope, just tidyness. I love things to be beautiful. John ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue [not found] ` <rjr89b0vxt.fsf@zuse.dina.kvl.dk> 2003-03-14 0:25 ` David Masterson 2003-03-14 4:21 ` Luc Teirlinck @ 2003-03-15 0:28 ` John Wiegley 2003-03-15 1:04 ` David Masterson 2 siblings, 1 reply; 55+ messages in thread From: John Wiegley @ 2003-03-15 0:28 UTC (permalink / raw) Per Abrahamsen <abraham@dina.kvl.dk> writes: > David Masterson <David.Masterson@synopsys.com> writes: > >> John Wiegley has a tool called initsplit.el on his web-site for >> breaking customizations into multiple files. > > Fine, but the user should not then try to change these values > permanently through the Customize interface, as this will have no > effect. Therefore the 'saved-value' attribute *not* be set for > these values, which was what I stated in the message you replied > to. There seems to be confusion about what initsplit.el does. It is in fact possible to use M-x customize after things have been split by initsplit.el. What it does is let Emacs write all of the customizations to a single custom-set-variables form in .emacs, then it walks through that form, stripping out everything it thinks should go elsewhere, inserting the relevant forms into those elsewhere's along the way. So that I still use M-x customize to customize gnus, even though I have all of my gnus/mail/supercite/mailcrypt, etc., customizations being saved in .gnus.el. Add the auto-byte-compilation feature of initsplit.el, and I've yet to run into problems. John ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-15 0:28 ` John Wiegley @ 2003-03-15 1:04 ` David Masterson 0 siblings, 0 replies; 55+ messages in thread From: David Masterson @ 2003-03-15 1:04 UTC (permalink / raw) >>>>> John Wiegley writes: > So that I still use M-x customize to customize gnus, even though I > have all of my gnus/mail/supercite/mailcrypt, etc., customizations > being saved in .gnus.el. Add the auto-byte-compilation feature of > initsplit.el, and I've yet to run into problems. What was the motivation for writing initsplit.el? Was there more to it than just "to be tidy"? -- David Masterson David DOT Masterson AT synopsys DOT com Sr. R&D Engineer Synopsys, Inc. Software Engineering Sunnyvale, CA ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <200303110016.SAA14021@eel.dms.auburn.edu>]
[parent not found: <20030311012051.6EDF.LEKTU@terra.es>]
* Re: Customize Rogue [not found] ` <20030311012051.6EDF.LEKTU@terra.es> @ 2003-03-12 14:19 ` Per Abrahamsen 2003-03-12 14:58 ` Juanma Barranquero 2003-03-13 0:13 ` Luc Teirlinck 0 siblings, 2 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-12 14:19 UTC (permalink / raw) Cc: emacs-custom Juanma Barranquero <lektu@terra.es> writes: > On Mon, 10 Mar 2003 18:16:22 -0600 (CST), Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > >> As opposed to what? > > To a disjoint way to interact with Emacs, of course. As it is now, when > some things can only be set through customize, or are better set through > it. To me, customize is trying to do way too much (vide the docstring of > `defcustom') :) Yes, which is why the ":set" functionality probably shouldn't be considered part of customize proper, and a "set-activate" function that obeyed it without setting the 'customized-value' or 'saved-value' property would be a a good thing for philosophical reasons (and yes, I believe there are practical reasons as well). >> It is a complete mystery to me how you can see all kinds of ominous >> hidden meanings in a straightforward statement like: >> >> "State: this option has been changed outside the customize buffer." Well, internally it call the variable "rogue", which *does* imply a moral judgement. If I had known people would be this touchy, I would have used another term. > I suppose I have a hidden, ominous streak... Yes. It is very frustrating to have my code not judged by its functionality, but by supposedly hidden meanings and inferred philosophical implications. I'd much rather have it judged by 1) Is it useful to some people? 2) Is it harmful to people who does not use it? and even 3) Does it use loaded words to describe its function? >> This is supposed to tell you the current customization status. If you >> changed it outside the customize buffer, then why would you want it to >> give you false information? That is what it is: information, not a >> moral judgment. > > Well. What is this information for? What am I learning from it? It means that if you edit the form and push the save button, there is a chance that it will not have the value you just saved next time you start Emacs. Do you think this is useful for the target audience for the form based interface? Do you think this will harm people who never see the message because they never use the form based interface. > I'm getting redundant info, unless it means Believe it or not, there are people out there who is not you, and whose needs differs from you. Some of the information you see that is redundant to you is intended for those people who are not you. I.e. people who might actually press "save" in a Customize buffer. > understand for customize to be so arrogant if I used a vulgar setq, but > if I did take the effort to use custom-setq, for *sure* I'd like > customize to get the message: "No, I didn't, so close your mouth and > don't ever mention it again, thanks". So you want customize to lie to you? You (or some other Lisp package you may not be aware of) *did* set it outside customize, so all the potential problems with saving the variable will *still* occur. In any case, I believe it is always useful to distinguish between variables that have been saved with the customize form based interface, and thus make sense to edit from the customize form based interface, and variables that have been set outside the customize form based interface, and which is thus (often) does not make sense to save from the customize form based interface. The information should be there. It is true that it is useful for people who use the customize form based interface to browse information only, but that interface *is* an editor, not a browser. Writing an alternative browser interface would be more useful than complaining that the edit interface provides information that is useful for people who want to edit. In fact, a browser-only interface could be far more lightweight than the editor, especially if it present values as Lisp expressions. It could also present the information more compactly. > Because I'm fooling it into believing I used it *only* in those cases > where I don't have the option not to use it (at least, easily). Which is exactly *one* variable made *deliberately* hard to set. > And I don't buy the argument that those cases are bugs that should be > fixed by providing a convenience function. The very existance of :set, > :get, :initialize, etc. in the defcustom syntax means that people out > there will use it as they see fit. All of these cases are handled by Luc's set-activate. However, they are still bugs because we have decided they are bugs. Providing 'set-activate' is a convenient workaround for the bugs, which may mean the bugs will take longer to get fixed. I personally believe the advantages of 'set-activate' outweigh the disadvantages though. > I know. I haven't said "set-activate" wouldn't be useful (but I agree > with people who prefer a name like custom-set(q?) or equivalent). I'm > saying that it should do more. If it did more, it wouldn't be useful to *any* people (including you). > Yes, to avoid the "State: " line. You will still get a "State: " line, the content will just make it impossible to distinguish the variable with those that are safe to set from customize. I.e. all that happens is that you lose information. > Why? Because I don't believe there are situations where a user, that > willingly used "set-activate", needs that information. You are mistaken. It is quite possible for a user to forget that he added a set-activate in his .emacs. It is also possible for the user to not know that a Lisp package he loaded used set-activate on the option in question. I don't believe this, I know this, because I have done both accidentally with setq, and there is nothing magical about the name 'set-activate' that will prevent me or others from doing it with that function. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 14:19 ` Per Abrahamsen @ 2003-03-12 14:58 ` Juanma Barranquero 2003-03-13 0:13 ` Luc Teirlinck 1 sibling, 0 replies; 55+ messages in thread From: Juanma Barranquero @ 2003-03-12 14:58 UTC (permalink / raw) Cc: Per Abrahamsen On Wed, 12 Mar 2003 15:19:22 +0100, Per Abrahamsen <abraham@dina.kvl.dk> wrote: > Yes, which is why the ":set" functionality probably shouldn't be > considered part of customize proper, and a "set-activate" function > that obeyed it without setting the 'customized-value' or 'saved-value' > property would be a a good thing for philosophical reasons (and yes, I > believe there are practical reasons as well). I'm not entirely sure how to view :set functionality, if not a customize thing. AFAICS, it is something used from defcustom for customize reasons. > Well, internally it call the variable "rogue", which *does* imply a > moral judgement. If I had known people would be this touchy, I would > have used another term. I can accept that I'm touchy, but I don't think I've been wrt the use of words in customize. I think I've complained about exactly *one* message, and on the grounds that I consider it redundant. Well, to be honest, I complained too about the wording of "transition tool". But that was no code, just a message describing a new command. > Yes. It is very frustrating to have my code not judged by its > functionality, but by supposedly hidden meanings and inferred > philosophical implications. I don't ever remember judging your code. I complained about a thing that I don't like. I've also said that I don't like customize, *but* I've also said that I understand pretty well that it is useful and liked by many people. > 1) Is it useful to some people? Sure. > 2) Is it harmful to people who does not use it? Some things are "harmful" to me if forced to use customize. Of course is not your fault that people :set's things that cannot be easily invoked through a lisp function. But it is a consequence of customize nonetheless. > It means that if you edit the form and push the save button, there is > a chance that it will not have the value you just saved next time you > start Emacs. > > Do you think this is useful for the target audience for the form based > interface? Yes. The target audience would *not* use custom-setq. I would. > Believe it or not, there are people out there who is not you, I fail to see how did I imply otherwise. It is very difficult to discuss what *I* do find wrong in customize without using 1st person pronouns. Sorry if English limitations (or my lack of skills) is disturbing you. > Some of the information you see that is > redundant to you is intended for those people who are not you. Yes. That's why I've suggested that should be a way for them to get it, and for me not to get it. And you're insisting that I should because they should. > So you want customize to lie to you? You (or some other Lisp package > you may not be aware of) *did* set it outside customize, so all the > potential problems with saving the variable will *still* occur. If I do custom-setq, I'm setting it "outside the customization buffer", but *most certainly not* "outside of customize", so what I really want is customize to stop lying to me. > Which is exactly *one* variable made *deliberately* hard to set. No. And sorry, but I'm not going to repeat the arguments. > All of these cases are handled by Luc's set-activate. Sure. But I'd still get the message in M-x customize. > However, they are still bugs because we have decided they are bugs. > Providing 'set-activate' is a convenient workaround for the bugs, > which may mean the bugs will take longer to get fixed. There's, to this point, nothing in the documentation to suggest that using :set for complex things not available through a function interface is a bug, or wrong, or discouraged. > If it did more, it wouldn't be useful to *any* people (including you). Excuse me if I disagree. > You will still get a "State: " line, the content will just make it > impossible to distinguish the variable with those that are safe to set > from customize. I.e. all that happens is that you lose information. Only if they aren't safe to use from customize. They shouldn't. A custom-setq'd variable should be saved as a custom-setq. When I edit the value, I'm *seeing* what it is. If I "lose" it is because I'm actively modifying it. > You are mistaken. It is quite possible for a user to forget that he > added a set-activate in his .emacs. And so what? If he changes it, what's wrong with it? /L/e/k/t/u ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-12 14:19 ` Per Abrahamsen 2003-03-12 14:58 ` Juanma Barranquero @ 2003-03-13 0:13 ` Luc Teirlinck [not found] ` <rj8yvj8qfb.fsf@zuse.dina.kvl.dk> 1 sibling, 1 reply; 55+ messages in thread From: Luc Teirlinck @ 2003-03-13 0:13 UTC (permalink / raw) Cc: emacs-devel Per Abrahamsen wrote: All of these cases are handled by Luc's set-activate. However, they are still bugs because we have decided they are bugs. Providing 'set-activate' is a convenient workaround for the bugs, which may mean the bugs will take longer to get fixed. I believe the latter is the reason why Richard (and others) are not terribly enthusiastic about set-activate, even in renamed form. (Assuming I understood correctly.) I personally believe the advantages of 'set-activate' outweigh the disadvantages though. Maybe these advantages can be achieved in other ways. I made a proposal to suggest that the function used by :set should normally not only be named, but actually use the same symbol as the variable. In other words, normally the :set function would be either set-default, funcall or a slight variation on funcall for variables of boolean type, which would behave exactly like minor modes. After sending that message, I saw that you were not on the CC list, but I assume that you read emacs-devel. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <rj8yvj8qfb.fsf@zuse.dina.kvl.dk>]
[parent not found: <200303131444.IAA16109@eel.dms.auburn.edu>]
* Re: Customize Rogue [not found] ` <200303131444.IAA16109@eel.dms.auburn.edu> @ 2003-03-13 22:01 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-13 22:01 UTC (permalink / raw) Cc: emacs-custom Luc Teirlinck <teirllm@dms.auburn.edu> writes: > I am not sure you understand what I meant though, I didn't. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <200303131534.JAA16193@eel.dms.auburn.edu>]
* Re: Customize Rogue [not found] ` <200303131534.JAA16193@eel.dms.auburn.edu> @ 2003-03-14 5:59 ` Richard Stallman 0 siblings, 0 replies; 55+ messages in thread From: Richard Stallman @ 2003-03-14 5:59 UTC (permalink / raw) Cc: emacs-devel What I propose is that, if somebody writes a defcustom for a variable `foo' with a :set function, then, unless there already is an obvious well-known Lisp alternative, in which case there is no problem, the author of the defcustom should provide a function `foo' such that (foo value) is equivalent with setting foo to VALUE using defcustom. This naming convention would be a bad one. A name that fits well for the variable would be wrong for the function. I don't think that is reasonable, the function signature expected by :set is slightly different from the the function signature that would be most natural from Lisp. That is true also. In fact (decustom foo-bar-mode nil "Foo bar minor mode. Must be set with (foo-bar-mode VALUE) or through Customize." :type 'boolean :set (lambda (symbol value) (foo-bar-mode value))) is a good example of a simple lambda that is reasonable to use in a :set. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <E18sYEe-0004sQ-00@fencepost.gnu.org>]
[parent not found: <20030311021233.6EE2.LEKTU@terra.es>]
[parent not found: <m33cluos3o.fsf@cicero.benny.turtle-trading.net>]
[parent not found: <200303111543.JAA14383@eel.dms.auburn.edu>]
[parent not found: <m3fzpt7usm.fsf@cicero.benny.turtle-trading.net>]
[parent not found: <200303111629.KAA14566@eel.dms.auburn.edu>]
* Re: Customize Rogue [not found] ` <200303111629.KAA14566@eel.dms.auburn.edu> @ 2003-03-12 14:26 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-12 14:26 UTC (permalink / raw) Cc: emacs-custom Luc Teirlinck <teirllm@dms.auburn.edu> writes: > I believe that this is a good idea and would eliminate the need for > set-activate, custom-setq or whatever. It would still be a useful tool for transition from the Customize form based interface to Lisp, as you would not have to look up every docstring in order to find what, if any, function you need to call to get the desired effect. Of course, for it to be useful for anything (apart from fooling 'inhibit-startup-echo-area-message'), it must *not* set 'custom-saved'. ^ permalink raw reply [flat|nested] 55+ messages in thread
[parent not found: <E18t07p-0003C4-00@fencepost.gnu.org>]
* Re: Customize Rogue [not found] ` <E18t07p-0003C4-00@fencepost.gnu.org> @ 2003-03-12 22:34 ` Luc Teirlinck 0 siblings, 0 replies; 55+ messages in thread From: Luc Teirlinck @ 2003-03-12 22:34 UTC (permalink / raw) Cc: emacs-devel Richard Stallman wrote: I can see one possible purpose for a function that would be called custom-setq: a way to set a customizable variable and tell Custom to regard it as "set by Custom" rather than as "set outside of Custom". Telling Custom that a variable was "set by Custom" by setting 'custom-saved will make Custom and its users believe that the variable is under Custom's control and that changing the variable using Custom will work. That is OK if the variable was set in such a way that this is really true, as can currently be achieved by manually editing `custom-set-variables' or `custom-set-faces' (which will automatically also set 'custom-saved). As long as Custom sets its variables through these two forms, setting 'custom-saved manually for variables set in some other way will produce bugs and create severe problems for users who either always or sometimes use Custom to set variables (as opposed to as a mere browser). It might be nice if Custom wrote out a series of custom-setq calls into .emacs, one per variabl, rather than writing a single sexp that sets all the variables. That would indeed change the situation. In this situation a user-set custom-setq would indeed be indistinguishable from a Custom set one and hence would and should set 'custom-saved. This is not the current situation however. It seems to me that changing this situation can not be done in a simple function with a few lines of code. To me it seems to require a careful rewrite of Custom. Per touched on this possibility in another message. Per is way more qualified than me to judge the feasibility of actually doing this. Sincerely, Luc. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-06 8:39 Customize Rogue Per Abrahamsen 2003-03-06 9:39 ` Juanma Barranquero @ 2003-03-07 19:40 ` Richard Stallman 2003-03-10 14:51 ` Per Abrahamsen 1 sibling, 1 reply; 55+ messages in thread From: Richard Stallman @ 2003-03-07 19:40 UTC (permalink / raw) Cc: emacs-devel It seems like a good idea to me. ^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: Customize Rogue 2003-03-07 19:40 ` Richard Stallman @ 2003-03-10 14:51 ` Per Abrahamsen 0 siblings, 0 replies; 55+ messages in thread From: Per Abrahamsen @ 2003-03-10 14:51 UTC (permalink / raw) Richard Stallman <rms@gnu.org> writes: > It seems like a good idea to me. I have committed it. ^ permalink raw reply [flat|nested] 55+ messages in thread
end of thread, other threads:[~2003-03-15 10:33 UTC | newest] Thread overview: 55+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-03-06 8:39 Customize Rogue Per Abrahamsen 2003-03-06 9:39 ` Juanma Barranquero 2003-03-06 15:15 ` Per Abrahamsen 2003-03-06 15:45 ` Juanma Barranquero 2003-03-07 8:03 ` Per Abrahamsen [not found] ` <rjfzpzeh87.fsf@zuse.dina.kvl.dk> [not found] ` <200303100251.UAA13345@eel.dms.auburn.edu> [not found] ` <rjsmtvuxd0.fsf@zuse.dina.kvl.dk> 2003-03-10 15:18 ` Kim F. Storm 2003-03-10 14:41 ` Kai Großjohann 2003-03-10 14:42 ` Luc Teirlinck 2003-03-07 19:40 ` Richard Stallman 2003-03-08 13:43 ` Juanma Barranquero 2003-03-09 17:16 ` Luc Teirlinck 2003-03-09 18:03 ` Juanma Barranquero 2003-03-09 18:25 ` Luc Teirlinck 2003-03-09 18:49 ` Juanma Barranquero 2003-03-09 20:02 ` Robert J. Chassell 2003-03-10 14:24 ` Per Abrahamsen 2003-03-11 19:07 ` Stefan Monnier 2003-03-11 20:41 ` Juanma Barranquero 2003-03-12 1:26 ` Luc Teirlinck 2003-03-12 12:07 ` Kai Großjohann 2003-03-12 18:38 ` Stefan Monnier 2003-03-13 0:27 ` Luc Teirlinck 2003-03-13 7:48 ` Richard Stallman 2003-03-12 20:59 ` Richard Stallman 2003-03-09 18:40 ` Luc Teirlinck 2003-03-09 19:00 ` Juanma Barranquero 2003-03-09 19:37 ` Luc Teirlinck 2003-03-09 20:03 ` Juanma Barranquero 2003-03-09 18:50 ` Luc Teirlinck 2003-03-09 19:05 ` Juanma Barranquero 2003-03-09 20:28 ` Customize and inhibit-startup-echo-area-message Luc Teirlinck 2003-03-10 14:43 ` Customize Rogue Per Abrahamsen 2003-03-10 14:59 ` Andreas Schwab 2003-03-12 12:50 ` Per Abrahamsen 2003-03-10 15:04 ` Kai Großjohann 2003-03-12 13:06 ` Per Abrahamsen [not found] ` <20030310163108.44F9.LEKTU@terra.es> 2003-03-12 13:23 ` Per Abrahamsen 2003-03-12 15:00 ` Juanma Barranquero [not found] ` <rju1e77b8v.fsf@zuse.dina.kvl.dk> 2003-03-13 14:03 ` Juanma Barranquero 2003-03-12 23:30 ` David Masterson [not found] ` <rj1y1b8q46.fsf@zuse.dina.kvl.dk> [not found] ` <uptov2g78.fsf@synopsys.com> [not found] ` <rjr89b0vxt.fsf@zuse.dina.kvl.dk> 2003-03-14 0:25 ` David Masterson 2003-03-14 4:21 ` Luc Teirlinck [not found] ` <uadfx6b0c.fsf@synopsys.com> [not found] ` <200303142312.RAA17322@eel.dms.auburn.edu> [not found] ` <15986.27208.152000.911108@gargle.gargle.HOWL> [not found] ` <200303150002.SAA17358@eel.dms.auburn.edu> 2003-03-15 0:22 ` David Masterson 2003-03-15 10:33 ` John Wiegley 2003-03-15 0:28 ` John Wiegley 2003-03-15 1:04 ` David Masterson [not found] ` <200303110016.SAA14021@eel.dms.auburn.edu> [not found] ` <20030311012051.6EDF.LEKTU@terra.es> 2003-03-12 14:19 ` Per Abrahamsen 2003-03-12 14:58 ` Juanma Barranquero 2003-03-13 0:13 ` Luc Teirlinck [not found] ` <rj8yvj8qfb.fsf@zuse.dina.kvl.dk> [not found] ` <200303131444.IAA16109@eel.dms.auburn.edu> 2003-03-13 22:01 ` Per Abrahamsen [not found] ` <200303131534.JAA16193@eel.dms.auburn.edu> 2003-03-14 5:59 ` Richard Stallman [not found] ` <E18sYEe-0004sQ-00@fencepost.gnu.org> [not found] ` <20030311021233.6EE2.LEKTU@terra.es> [not found] ` <m33cluos3o.fsf@cicero.benny.turtle-trading.net> [not found] ` <200303111543.JAA14383@eel.dms.auburn.edu> [not found] ` <m3fzpt7usm.fsf@cicero.benny.turtle-trading.net> [not found] ` <200303111629.KAA14566@eel.dms.auburn.edu> 2003-03-12 14:26 ` Per Abrahamsen [not found] ` <E18t07p-0003C4-00@fencepost.gnu.org> 2003-03-12 22:34 ` Luc Teirlinck 2003-03-07 19:40 ` Richard Stallman 2003-03-10 14:51 ` Per Abrahamsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).