Article View: gnu.emacs.vm.bug
Article #452Re: face customization lost after restart
From: newsspam5REMOVETHIS
Date: Tue, 31 Jul 2007 21:31
Date: Tue, 31 Jul 2007 21:31
221 lines
10405 bytes
10405 bytes
--=-=-=
Tim X <timx@nospam.dev.null> writes:
[...]
> This seems to have fixed the setting of face colours from the customize section
> of .emacs. However, I do get the following warning in a *comp8ile-log* buffer
> when I run VM with the 'Enable faces in the summary buffer' option of
> vm-enable-addons.
>
> Warning: reference to free variable `m'
I know about that. It is bound during runtime ... you know lisp
has this funny scoping ...
> This warning does not occur if the summary faces option is not enabled.
>
> I did notice some 'curious' points with respect to VM and customize and I have
> some suggestions. I'm willing to try and implement some of these. In fact, I
> wold have done it, except I need to install bazaar, but my Debian repository is
> reporting there are too many users right now, so I can't download the package.
You could also download BZR from http://bazaar-vcs.org/ and run
it from the unpacked source tree ... this is what I do. ;-)
I also merge patches, but I will not set up a CVS repo with
commit access, may one which mirrors the BZR tree ...
> 1. I think we should break the customize stuff up further. The current main vm
> group has too much in it and it is a bit slow to create the customize buffer as
> a result (plus a little overwhelming). I think it would be good to break things
> up into specific customize groups that are children of the main VM customize
> group (i.e. pop, imap, mime, digest, etc).
Indeed it is a mess.
> 2. There is a bit of inconsistency based on when you run customize-group. If
> you run it prior to having run VM, you only get a much smaller subset of
> customize options (with no apparent rationale).
Indeed they are missing for GNU Emacs, they were not configured
to load from beside vm.el and vm-vars.el, but as I have now seen
cus-dep.el also exists fro GNU Emacs, but I am not sure if I am
using it correctly, i.e. how it should be done for GNU Emacs
... please see the attached patch ...
> This can be a problem is you need to customize one of the items
> which is not in the group prior to running VM. For example, I
> was having problems with a message that contained a large mime
> attachment. I wanted to change the default base64 decoder to
> use the perl modules as I've had issues with the one provided
> with VM (load goes through the roof and system becomes
> unresponsive). However, the items for this setting are not in
> the customize group until after you have run VM at least once -
> giving a sort of chicken and egg problem (which I resolved by
> putting the values I wanted in my .vm file). While slightly
> contrived example, I think you should be able to see the
> possible issues. I suspect its something to do with how files
> are required and possibly autoloads etc. However, I think all
> vm customizable options should appear when you do a customize
> group on VM, regardless of whether you have already run VM or
> not.
>
> 3. There are some custom definitions which don't look quite right. In
> particular
> - Inconsistency when customizing summary buffer faces. For some, you get
> the familiar face customize object that allows you to tick the options you
> want etc (i.e vm-summary-outgoing-face) while others give you a bare lisp
> expression that you have to edit 'by hand' (i.e. vm-summary-deleted-face).
Yes the face variables are kind of inconsistent, most VM faces stemming
from Kyle are no faces, but just the variable containing the name
of the face to use ... I did not change them as it would break
compatibility, but I also do not like it as it is ;-)
> - Some custom definitions don't look quite
> correct. vm-keep-crashboxes).
> This custom definition is a toggle, but if its not nil, you are supposed to
> set it to a directory to keep crash boxes in. As a toggle, you don't get
> that ability - its either nil or t. Likewise, vm-spool-files will only let
> you specify strings - you can't do the list of lists option. As the lists
> of lists option offers grater functionality, I think it should be the way
> this custom definition is done (unless you can do both - not that familiar
> with custom, so I don't know about that).
It goes like this ... if you find more of them please let me
known ;-) You can use eval-last-sexp on the defcustom to test it
after modifying it ...
=== modified file 'lisp/vm-vars.el'
--- lisp/vm-vars.el 2007-07-18 00:25:14 +0000
+++ lisp/vm-vars.el 2007-07-31 21:21:38 +0000
@@ -85,7 +85,8 @@
A nil value means VM should just delete crash boxes after it
has copied out the mail."
:group 'vm
- :type 'boolean)
+ :type '(choice directory
+ (const :tag "No not keep crash boxes" nil)))
(defcustom vm-index-file-suffix nil
"*Suffix used to construct VM index file names.
@@ -268,8 +269,12 @@
variables are defined and no particular value for `vm-spool-files'
has been specified."
:group 'vm
- :type '(choice (repeat string)
- (repeat (list string string string))))
+ :type '(choice (repeat :tag "List of spool files"
+ (file :tag "Spoolfile"))
+ (repeat :tag "List of (inbox spoolfile crashbox) elements"
+ (list (file :tag "Inbox")
+ (file :tag "Spoolfile")
+ (file :tag "Crashbox")))))
> I've noticed a couple of other little things, but they are likely something to
> do with my setup - at leat I want to eliminate that possibility before raising
> them.
>
> A lot of this is really just 'nit picking' and should not be taken as
> detracting from the excellent work you have been doing to keep VM alive and
> enhance its functionality.
I primarily focus on fixing 8.0.x now as I will be away on a
longer trip from end of August to end of October and thus will
be offline during that time ...
> As mentioned, I will try to look at some of these and see if I
> can make some patches you can apply to the dev branch. My elisp
> isn't great, but I should be able to fix some of this stuff (or
> at least make it consistent.
Please do so. Defcustom can be learned by example, just take a
look at other definitions ... ;-)
> One thing I was wondering about is if you are keeping track of or have any
> mechanism for communicating what people are working on. I don't want to either
> be treading on others toes or simply duplicating effort of others. Maybe you
> are tracking bugs/work somehow and could make that available to others to
> see/update/add to?
Currently no one beside me is working on VM, from time to time
other have worked 6 helped on specific features like pcrisis,
pgg, imap ...
I keep a TODO file in the source tree which can be browsed at
http://codebrowse.launchpad.net/~hack-robf/viewmail/trunk/files
Launchpad also has a bugtracker, but most of the time I do not
use it and you have to register first in order to use it, which
is kind of a show stopper while it should keep spammers away ...
Bye
Robert.
--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=vm-custom-fix.patch
=== modified file 'lisp/Makefile.in'
--- lisp/Makefile.in 2007-07-23 19:28:20 +0000
+++ lisp/Makefile.in 2007-07-31 21:01:39 +0000
@@ -59,7 +59,7 @@
# to list of object files
ifeq (@EMACS_FLAVOR@,emacs)
-OBJECTS = vm-autoloads.elc
+OBJECTS = vm-autoloads.elc vm-cus-load.elc
else
OBJECTS = auto-autoloads.elc custom-load.elc
endif
@@ -125,11 +125,14 @@
(build_dir="`pwd`"; cd "@srcdir@"; \
"$(EMACS_PROG)" $(FLAGS) -l autoload \
-f vm-built-autoloads "@abs_builddir@/$@" "`pwd`")
- echo "(custom-add-load 'vm 'vm-vars)" >> $@
+ echo "(custom-add-load 'vm-cus-load)" >> $@
echo "(setq vm-configure-datadir \"${datadir}\")" >> $@
echo "(setq vm-configure-pixmapdir \"${pixmapdir}\")" >> $@
echo "(provide 'vm-autoloads)" >> $@
+vm-cus-load.el: $(SRCS:%=@srcdir@/%)
+ "$(EMACS_PROG)" $(FLAGS) -f vm-custom-make-dependencies .
+
##############################################################################
# XEmacs#s auto-autoloads and custom-load file
auto-autoloads.el: $(SOURCES:%=@srcdir@/%)
@@ -152,7 +155,7 @@
custom-load.el: $(SRCS:%=@srcdir@/%)
- "$(EMACS_PROG)" $(FLAGS) -l cus-dep -f Custom-make-dependencies .
+ "$(EMACS_PROG)" $(FLAGS) -f vm-custom-make-dependencies .
##############################################################################
install-pkg: all vm-revno.elc
=== modified file 'lisp/vm-build.el'
--- lisp/vm-build.el 2007-07-17 22:56:18 +0000
+++ lisp/vm-build.el 2007-07-31 20:59:13 +0000
@@ -45,7 +45,15 @@
(require 'vm-macro)
(require 'vm-vars)
(require 'sendmail))
-
+
+(defun vm-custom-make-dependencies ()
+ (if (load-library "cus-dep")
+ (if (functionp 'Custom-make-dependencies)
+ (Custom-make-dependencies)
+ (let ((generated-custom-dependencies-file "vm-cus-load.el"))
+ (custom-make-dependencies)))
+ (error "Failed to load 'cus-dep'")))
+
(defun vm-built-autoloads (&optional autoloads-file source-dir)
(let ((autoloads-file (or autoloads-file
(vm-fix-cygwin-path (car command-line-args-left))))
--=-=-=--
Technical Details
Message-ID:
<853az4s1jd.fsf@robf.de>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!newsfeed.stueberl.de!news.space.net!news.m-online.net!not-for-mailReferences:
<87ir8kllyr.fsf@lion.rapttech.com.au> <853azm7cci.fsf@robf.de> <87hco211ml.fsf@lion.rapttech.com.au> <85abtt5uc0.fsf@robf.de> <87odhvbpte.fsf@lion.rapttech.com.au>Show Full Headers
Complete Article Headers
X-Google-Thread: f6829,f65f80f583a5288e X-Google-Attributes: gidf6829,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!newsfeed.stueberl.de!news.space.net!news.m-online.net!not-for-mail From: newsspam5REMOVETHIS@robf.de Newsgroups: gnu.emacs.vm.bug Subject: Re: face customization lost after restart Date: Tue, 31 Jul 2007 23:31:34 +0200 Organization: (posted via) M-net Telekommunikations GmbH Lines: 221 Message-ID: <853az4s1jd.fsf@robf.de> References: <87ir8kllyr.fsf@lion.rapttech.com.au> <853azm7cci.fsf@robf.de> <87hco211ml.fsf@lion.rapttech.com.au> <85abtt5uc0.fsf@robf.de> <87odhvbpte.fsf@lion.rapttech.com.au> NNTP-Posting-Host: ppp-82-135-77-84.dynamic.mnet-online.de Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: svr7.m-online.net 1185917496 20817 82.135.77.84 (31 Jul 2007 21:31:36 GMT) X-Complaints-To: abuse@m-online.net NNTP-Posting-Date: Tue, 31 Jul 2007 21:31:36 +0000 (UTC) User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.19 (linux) Cancel-Lock: sha1:gZrdBJT6TXZg8fgxN7RvfTf+DLY=