Mercurial > hg > xemacs-beta
changeset 40:7e54bd776075 r19-15b103
Import from CVS: tag r19-15b103
line wrap: on
line diff
--- a/CHANGES-beta Mon Aug 13 08:54:02 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 08:54:25 2007 +0200 @@ -1,4 +1,15 @@ -*- indented-text -*- +to 19.15 beta103 +-- VM-6.21 +-- tm-7.106 +-- Garbage Collection patches courtesy of David Moore +-- time.el update +-- cc-mode.el-4.387 +-- EFS integration/bug fix patches courtesy of Michael Sperber +-- safe char-before added +-- minor build tweaks +-- miscellaneous bug fixes + to 19.15 beta102 -- preceding-char, following-char are obsolete and broken, do not use them -- miscellaneous bug fixes
--- a/Makefile.in Mon Aug 13 08:54:02 2007 +0200 +++ b/Makefile.in Mon Aug 13 08:54:25 2007 +0200 @@ -213,7 +213,7 @@ # Build XEmacs and recompile out-of-date and missing .elc files along # the way. all-elc: src/paths.h src/Emacs.ad.h lib-src lwlib dump-elcs src - sh ${srcdir}/lib-src/update-elc.sh + MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-elc.sh # Sub-target for all-elc. dump-elcs: FRC.dump-elcs @@ -221,7 +221,7 @@ CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' autoloads: src - sh ${srcdir}/lib-src/update-autoloads.sh + MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-autoloads.sh # We force the rebuilding of src/paths.h because the user might give # different values for the various directories. Since we use
--- a/etc/time/0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/0.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/1.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/1.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CA1E1C", +"` s ledbg c None", +"a s ledfg c #CA1E1C", /* pixels */ "`````````", "`````````",
--- a/etc/time/2.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/2.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"a c #CB1D1C", -"` s None c None", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/3.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/3.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1D1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/4.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/4.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CA1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "`````````",
--- a/etc/time/5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/5.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1D1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/6.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/6.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/7.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/7.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/8.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/8.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/9.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/9.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CB1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "````aaaaa",
--- a/etc/time/am.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/am.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "4 13 2 1", /* colors */ -"` s None c None", -"a c #CA1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "````", "``aa",
--- a/etc/time/dp.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/dp.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "9 13 2 1", /* colors */ -"` s None c None", -"a c #CA1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "`````````", "`````````",
--- a/etc/time/l-0.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-0.0.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,21 +1,22 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 1 1", +"10 13 2 1", /* colors */ -" s None c None", +"` s None c None", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" " +"``````....", +"``````....", +"`````.....", +"`````.....", +"````......", +"````......", +"```.......", +"```.......", +"``........", +"``........", +"`.........", +"`.........", +".........." };
--- a/etc/time/l-0.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-0.5.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,22 +1,23 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 2 1", +"10 13 3 1", /* colors */ -" s None c None", -"a c #2AD244", +"` s None c None", +"a c #0AB224", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" aaaaaaaaa", -" " +"``````....", +"``````....", +"`````.....", +"`````.....", +"````......", +"````......", +"```.......", +"```.......", +"``........", +"``........", +"`.........", +"`aaaaaaaaa", +".........." };
--- a/etc/time/l-1.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-1.0.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,22 +1,23 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 2 1", +"10 13 3 1", /* colors */ -" s None c None", -"a c #2AD244", +"` s None c None", +"a c #0AB224", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" aaaaaaaa", -" ", -" aaaaaaaaa", -" " +"``````....", +"``````....", +"`````.....", +"`````.....", +"````......", +"````......", +"```.......", +"```.......", +"``........", +"``aaaaaaaa", +"`.........", +"`aaaaaaaaa", +".........." };
--- a/etc/time/l-1.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-1.5.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,23 +1,24 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 3 1", +"10 13 4 1", /* colors */ -" s None c None", +"` s None c None", "a c #2AD244", "b c #DEE614", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" bbbbbbb", -" ", -" aaaaaaaa", -" ", -" aaaaaaaaa", -" " +"``````....", +"``````....", +"`````.....", +"`````.....", +"````......", +"````......", +"```.......", +"```bbbbbbb", +"``........", +"``aaaaaaaa", +"`.........", +"`aaaaaaaaa", +".........." };
--- a/etc/time/l-2.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-2.0.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,23 +1,24 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 3 1", +"10 13 4 1", /* colors */ -" s None c None", -"a c #2AD244", +"` s None c None", +"a c #0AB224", "b c #DEE614", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" ", -" ", -" bbbbbb", -" ", -" bbbbbbb", -" ", -" aaaaaaaa", -" ", -" aaaaaaaaa", -" " +"``````....", +"``````....", +"`````.....", +"`````.....", +"````......", +"````bbbbbb", +"```.......", +"```bbbbbbb", +"``........", +"``aaaaaaaa", +"`.........", +"`aaaaaaaaa", +".........." };
--- a/etc/time/l-2.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-2.5.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,24 +1,25 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 4 1", +"10 13 5 1", /* colors */ -" s None c None", +"a s None c None", "` c #FE0204", -"b c #2AD244", +"b c #0AB224", "c c #DEE614", +". s pad-color c #606060", /* pixels */ -" ", -" ", -" ", -" `````", -" ", -" cccccc", -" ", -" ccccccc", -" ", -" bbbbbbbb", -" ", -" bbbbbbbbb", -" " +"aaaaaa....", +"aaaaaa....", +"aaaaa.....", +"aaaaa`````", +"aaaa......", +"aaaacccccc", +"aaa.......", +"aaaccccccc", +"aa........", +"aabbbbbbbb", +"a.........", +"abbbbbbbbb", +".........." };
--- a/etc/time/l-3.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/l-3.0.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -1,24 +1,25 @@ /* XPM */ static char *noname[] = { /* width height ncolors chars_per_pixel */ -"10 13 4 1", +"10 13 5 1", /* colors */ -" s None c None", +"a s None c None", "` c #FE0204", -"b c #2AD244", +"b c #0AB224", "c c #DEE614", +". s pad-color c #606060", /* pixels */ -" ", -" ````", -" ", -" `````", -" ", -" cccccc", -" ", -" ccccccc", -" ", -" bbbbbbbb", -" ", -" bbbbbbbbb", -" " +"aaaaaa....", +"aaaaaa````", +"aaaaa.....", +"aaaaa`````", +"aaaa......", +"aaaacccccc", +"aaa.......", +"aaaccccccc", +"aa........", +"aabbbbbbbb", +"a.........", +"abbbbbbbbb", +".........." };
--- a/etc/time/l-jtl-0.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 2 1", -/* colors */ -"` s None c None", -". c #606060", -/* pixels */ -"``````````", -"``````....", -"`````.....", -"`````.....", -"````......", -"````......", -"```.......", -"```.......", -"``........", -"``........", -"`.........", -"`.........", -".........." -};
--- a/etc/time/l-jtl-0.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 3 1", -/* colors */ -"` s None c None", -"a c #0AB224", -". c #606060", -/* pixels */ -"``````````", -"``````....", -"`````.....", -"`````.....", -"````......", -"````......", -"```.......", -"```.......", -"``........", -"``........", -"`.........", -"`aaaaaaaaa", -".........." -};
--- a/etc/time/l-jtl-1.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 3 1", -/* colors */ -"` s None c None", -"a c #0AB224", -". c #606060", -/* pixels */ -"``````````", -"``````....", -"`````.....", -"`````.....", -"````......", -"````......", -"```.......", -"```.......", -"``........", -"``aaaaaaaa", -"`.........", -"`aaaaaaaaa", -".........." -};
--- a/etc/time/l-jtl-1.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 4 1", -/* colors */ -"` s None c None", -"a c #2AD244", -"b c #DEE614", -". c #606060", -/* pixels */ -"``````````", -"``````....", -"`````.....", -"`````.....", -"````......", -"````......", -"```.......", -"```bbbbbbb", -"``........", -"``aaaaaaaa", -"`.........", -"`aaaaaaaaa", -".........." -};
--- a/etc/time/l-jtl-2.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 4 1", -/* colors */ -"` s None c None", -"a c #0AB224", -"b c #DEE614", -". c #606060", -/* pixels */ -"``````````", -"``````....", -"`````.....", -"`````.....", -"````......", -"````bbbbbb", -"```.......", -"```bbbbbbb", -"``........", -"``aaaaaaaa", -"`.........", -"`aaaaaaaaa", -".........." -};
--- a/etc/time/l-jtl-2.5.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 5 1", -/* colors */ -"a s None c None", -"` c #FE0204", -"b c #0AB224", -"c c #DEE614", -". c #606060", -/* pixels */ -"aaaaaaaaaa", -"aaaaaa....", -"aaaaa.....", -"aaaaa`````", -"aaaa......", -"aaaacccccc", -"aaa.......", -"aaaccccccc", -"aa........", -"aabbbbbbbb", -"a.........", -"abbbbbbbbb", -".........." -};
--- a/etc/time/l-jtl-3.0.xpm Mon Aug 13 08:54:02 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* XPM */ -static char *noname[] = { -/* width height ncolors chars_per_pixel */ -"10 13 5 1", -/* colors */ -"a s None c None", -"` c #FE0204", -"b c #0AB224", -"c c #DEE614", -". c #606060", -/* pixels */ -"aaaaaaaaaa", -"aaaaaa````", -"aaaaa.....", -"aaaaa`````", -"aaaa......", -"aaaacccccc", -"aaa.......", -"aaaccccccc", -"aa........", -"aabbbbbbbb", -"a.........", -"abbbbbbbbb", -".........." -};
--- a/etc/time/pm.xpm Mon Aug 13 08:54:02 2007 +0200 +++ b/etc/time/pm.xpm Mon Aug 13 08:54:25 2007 +0200 @@ -3,8 +3,8 @@ /* width height ncolors chars_per_pixel */ "4 13 2 1", /* colors */ -"` s None c None", -"a c #CA1E1C", +"` c None s ledbg", +"a c #CA1E1C s ledfg", /* pixels */ "````", "````",
--- a/lib-src/emacsserver.c Mon Aug 13 08:54:02 2007 +0200 +++ b/lib-src/emacsserver.c Mon Aug 13 08:54:25 2007 +0200 @@ -61,13 +61,18 @@ #include <sys/types.h> #include <sys/file.h> -#include <sys/socket.h> #include <sys/signal.h> #include <sys/stat.h> /* Needed for chmod, at least on Linux */ #include <sys/un.h> #include <stdio.h> #include <errno.h> #include "../src/sysproc.h" /* Needed for select */ +#ifndef SOCK_STREAM +/* this is normally included by src/sysproc.h. might be safe to omit + * it entirely. lousy ultrix's sys/socket.h chokes if it's included + * twice, so we can't include unconditionally. */ +#include <sys/socket.h> +#endif void main ()
--- a/lisp/bytecomp/disass.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/bytecomp/disass.el Mon Aug 13 08:54:25 2007 +0200 @@ -266,3 +266,7 @@ ) (insert "\n"))))) nil) + +(provide 'disass) + +;;; disass.el ends here
--- a/lisp/efs/Makefile Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/Makefile Mon Aug 13 08:54:25 2007 +0200 @@ -2,7 +2,7 @@ # # File: Makefile # Release: $efs release: 1.15 $ -# Version: $Revision: 1.3 $ +# Version: $Revision: 1.4 $ # RCS: # Description: Makefile for byte-compiling efs and dired. # Author: Andy Norman, HPLabs, Bristol, UK. @@ -84,10 +84,18 @@ COREOBJS = efs-defun.elc efs-ovwrt.elc efs-fnh.elc efs-cu.elc efs-netrc.elc \ efs.elc efs-dired.elc efs-report.elc \ efs-cp-p.elc +CORESRC = efs-defun.el efs-ovwrt.el efs-fnh.el efs-cu.el efs-netrc.el \ + efs.el efs-dired.el efs-report.el \ + efs-cp-p.el \ + efs-dump.el DOBJS = default-dir.elc dired.elc dired-mob.elc dired-oas.elc \ dired-rgxp.elc dired-shell.elc dired-vir.elc dired-xy.elc \ dired-grep.elc dired-uu.elc \ dired-cmpr.elc dired-diff.elc dired-help.elc dired-sex.elc +DSRC = default-dir.el dired.el dired-mob.el dired-oas.el \ + dired-rgxp.el dired-shell.el dired-vir.el dired-xy.el \ + dired-grep.el dired-uu.el \ + dired-cmpr.el dired-diff.el dired-help.el dired-sex.el EFSOBJS = $(COREOBJS) efs-auto.elc \ efs-cms.elc efs-cms-knet.elc efs-dos-distinct.elc efs-nos-ve.elc \ efs-gwp.elc efs-kerberos.elc efs-hell.elc efs-ka9q.elc \ @@ -95,10 +103,21 @@ efs-pc.elc efs-ti-explorer.elc efs-ti-twenex.elc \ efs-tops-20.elc efs-dl.elc efs-guardian.elc efs-coke.elc \ efs-vms.elc efs-vos.elc efs-plan9.elc efs-ms-unix.elc +EFSSRC = $(CORESRC) efs-auto.el \ + efs-cms.el efs-cms-knet.el efs-dos-distinct.el efs-nos-ve.el \ + efs-gwp.el efs-kerberos.el efs-hell.el efs-ka9q.el \ + efs-mpe.el efs-mts.el efs-mvs.el efs-netware.el \ + efs-pc.el efs-ti-explorer.el efs-ti-twenex.el \ + efs-tops-20.el efs-dl.el efs-guardian.el efs-coke.el \ + efs-vms.el efs-vos.el efs-plan9.el efs-ms-unix.el VMOBJS = efs-vm.elc +VMSRC = efs-vm.el GEOBJS = dired-fsf.elc dired-mule.elc efs-dired-mule.elc \ passwd.elc diff.elc auto-save.elc +GESRC = dired-fsf.el dired-mule.el efs-dired-mule.el \ + passwd.el diff.el auto-save.el XEOBJS = dired-faces.elc dired-xemacs.elc +XESRC = dired-faces.el dired-xemacs.el OBJS = $(DOBJS) $(EFSOBJS) $(VMOBJS) $(GEOBJS) $(XEOBJS) \ efs-18.elc efs-19.elc efs-19.23.elc \ efs-l19.11.elc efs-x19.15.elc \ @@ -195,6 +214,8 @@ # backward compatibility files fn-handler.elc: fn-handler.el emacs-19.elc: emacs-19.el +# auto-save package +auto-save.elc: auto-save.el # Core targets core: $(COREOBJS) @@ -229,6 +250,7 @@ efs: $(EFSOBJS) dired: $(DOBJS) all: $(OBJS) +info: efs.info # Making for a specific emacs version 18: emacs-19.elc fn-handler.elc efs dired efs-18.elc dired-mule.elc \ @@ -247,6 +269,20 @@ @echo "Installing in $(LISPDIR)..." @ls -C `ls *.el 2>&1 | grep -v "fixup"` 2> /dev/null cp `ls *.el | grep -v "fixup"` $(LISPDIR) +install_xemacs: + @echo "Installing source in $(LISPDIR)..." + cp $(EFSSRC) $(DSRC) $(XESRC) efs-x19.15.el $(LISPDIR) + cp Makefile README fixup.el $(LISPDIR) +diff_xemacs: + for f in $(EFSSRC) $(DSRC) $(XESRC) efs-x19.15.el \ + Makefile README fixup.el; do \ + if [ -e $(LISPDIR)/$$f ]; \ + then\ + diff -c $(LISPDIR)/$$f $$f; \ + else \ + diff -c /dev/null $$f; \ + fi \ + done install_all: install_src install clean: rm -f $(OBJS)
--- a/lisp/efs/default-dir.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/default-dir.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: default-dir.el ;; RCS: -;; Version: $Revision: 1.2 $ +;; Version: $Revision: 1.5 $ ;; Description: Defines the function default-directory, for fancy handling ;; of the initial contents in the minibuffer when reading ;; file names. @@ -35,6 +35,10 @@ ((>= (string-to-int (substring emacs-version 0 2)) 19) 'fsf-19) (t 'fsf-18))) +(defconst default-dir-find-file-takes-coding-system + (and (eq default-dir-emacs-variant 'xemacs) + (>= (string-to-int (substring emacs-version 0 2)) 20))) + ;;;###autoload (defvar default-directory-function nil "A function to call to compute the default-directory for the current buffer. @@ -58,86 +62,157 @@ ;;; Overloads -(if (or (featurep 'mule) - (boundp 'MULE)) - (progn - - (defun default-dir-find-file (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Find file: " (default-directory))) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file file coding-system)) +(cond + ((or (featurep 'mule) + (boundp 'MULE)) + + (defun default-dir-find-file (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file: " (default-directory))) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file file coding-system)) + + (defun default-dir-find-file-other-window (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file in other window: " (default-directory))) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file-other-window file coding-system)) - (defun default-dir-find-file-other-window (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Find file in other window: " (default-directory))) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file-other-window file coding-system)) + (defun default-dir-find-file-read-only (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file read-only: " (default-directory) nil t)) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file-read-only file coding-system)) - (defun default-dir-find-file-read-only (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Find file read-only: " (default-directory) nil t)) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file-read-only file coding-system)) + (if (fboundp 'find-file-read-only-other-window) + (progn + (defun default-dir-find-file-read-only-other-window + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name + "Find file read-only in other window: " + (default-directory) nil t)) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file-read-only-other-window file + coding-system)))) - (if (fboundp 'find-file-read-only-other-window) - (progn - (defun default-dir-find-file-read-only-other-window - (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name - "Find file read-only in other window: " - (default-directory) nil t)) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file-read-only-other-window file - coding-system)))) + (if (fboundp 'find-file-other-frame) + (progn + (defun default-dir-find-file-other-frame + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file in other frame: " + (default-directory))) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file-other-frame file + coding-system)))) + + (if (fboundp 'find-file-read-only-other-frame) + (progn + (defun default-dir-find-file-read-only-other-frame + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file read-only in other frame: " + (default-directory) nil t)) + (and current-prefix-arg + (read-coding-system "Coding-system: ")))) + (default-dir-real-find-file-read-only-other-frame file + coding-system))))) - (if (fboundp 'find-file-other-frame) - (progn - (defun default-dir-find-file-other-frame - (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Find file in other frame: " - (default-directory))) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file-other-frame file - coding-system)))) + (default-dir-find-file-takes-coding-system + ;; This lossage is due to the fact that XEmacs 20.x without mule + ;; still accepts an optional argument for find-file related + ;; functions. Things like advice.el insist on passing nil for + ;; optional arguments, and the interaction screws things up. + ;; Therefore these functions accept an optional dummy coding-system + ;; argument. + + (defun default-dir-find-file (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file: " (default-directory))))) + (default-dir-real-find-file file)) + + (defun default-dir-find-file-other-window (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file in other window: " (default-directory))))) + (default-dir-real-find-file-other-window file)) + + (defun default-dir-find-file-read-only (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file read-only: " (default-directory) nil t)))) + (default-dir-real-find-file-read-only file)) - (if (fboundp 'find-file-read-only-other-frame) - (progn - (defun default-dir-find-file-read-only-other-frame - (file &optional coding-system) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Find file read-only in other frame: " - (default-directory) nil t)) - (and current-prefix-arg - (read-coding-system "Coding-system: ")))) - (default-dir-real-find-file-read-only-other-frame file - coding-system))))) + (if (fboundp 'find-file-read-only-other-window) + (progn + (defun default-dir-find-file-read-only-other-window + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name + "Find file read-only in other window: " + (default-directory) nil t)))) + (default-dir-real-find-file-read-only-other-window file)))) + (if (fboundp 'find-file-other-frame) + (progn + (defun default-dir-find-file-other-frame + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file in other frame: " + (default-directory))))) + (default-dir-real-find-file-other-frame file)))) + + (if (fboundp 'find-file-read-only-other-frame) + (progn + (defun default-dir-find-file-read-only-other-frame + (file &optional coding-system) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Find file read-only in other frame: " + (default-directory) nil t)))) + (default-dir-real-find-file-read-only-other-frame file))))) + + (t + (defun default-dir-find-file (file) "Documented as original" (interactive @@ -194,7 +269,9 @@ (expand-file-name (read-file-name "Find file read-only in other frame: " (default-directory) nil t)))) - (default-dir-real-find-file-read-only-other-frame file))))) + (default-dir-real-find-file-read-only-other-frame file)))))) + + (efs-overwrite-fn "default-dir" 'find-file 'default-dir-find-file) (efs-overwrite-fn "default-dir" 'find-file-other-window @@ -282,23 +359,15 @@ (efs-overwrite-fn "default-dir" 'shell-command 'default-dir-shell-command) -;; Is advice about? -(if (featurep 'advice) - (defadvice cd (before default-dir-cd activate compile) - (interactive - (list - (expand-file-name - (read-file-name "Change default directory: " (default-directory)))))) - - (defun default-dir-cd (dir) - "Documented as original" - (interactive - (list - (expand-file-name - (read-file-name "Change default directory: " (default-directory))))) - (default-dir-real-cd dir)) +(defun default-dir-cd (dir) + "Documented as original" + (interactive + (list + (expand-file-name + (read-file-name "Change default directory: " (default-directory))))) + (default-dir-real-cd dir)) - (efs-overwrite-fn "default-dir" 'cd 'default-dir-cd)) +(efs-overwrite-fn "default-dir" 'cd 'default-dir-cd) (defun default-dir-set-visited-file-name (filename) "Documented as original"
--- a/lisp/efs/dired-cmpr.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-cmpr.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-cmpr.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Commands for compressing marked files. ;;
--- a/lisp/efs/dired-diff.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-diff.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: dired-diff.el ;; RCS: -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; Description: Support for diff and related commands. ;; Author: Sandy Rutherford <sandy@ibm550.sissa.it> ;; Created: Fri Jun 24 08:50:20 1994 by sandy on ibm550
--- a/lisp/efs/dired-faces.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-faces.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-faces.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 1.2 $ ;; RCS: ;; Description: rudimentary face customization support for dired ;; Author: Mike Sperber <sperber@informatik.uni-tuebingen.de> @@ -68,12 +68,6 @@ "Face used for interactive permissions." :group 'dired) -(defface dired-face-deleted '((((class color)) - (:foreground "yellow3")) - (t (:reverse t))) - "Face used to indicate deleted files." - :group 'dired) - (defface dired-face-socket '((((class color)) (:foreground "magenta")) (t (:bold nil)))
--- a/lisp/efs/dired-grep.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-grep.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: dired-grep.el ;; RCS: -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; Description: Support for running grep on marked files in a dired buffer. ;; Author: Sandy Rutherford <sandy@ibm550.sissa.it> ;; Created: Tue Jul 13 22:59:37 1993 by sandy on ibm550
--- a/lisp/efs/dired-help.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-help.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-help.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Obtaining help for dired ;; Modified: Sun Nov 20 21:10:47 1994 by sandy on gandalf
--- a/lisp/efs/dired-mob.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-mob.el Mon Aug 13 08:54:25 2007 +0200 @@ -2,7 +2,7 @@ ;; ;; File: dired-mob.el ;; RCS: -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; Description: Commands for marking files from another buffer. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- a/lisp/efs/dired-oas.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-oas.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-oas.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: dired odds and sods. Dired functions not usually needed. ;; This file is not a reference to the Organization of
--- a/lisp/efs/dired-rgxp.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-rgxp.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-rgxp.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Commands for running commands on files whose names ;; match a regular expression.
--- a/lisp/efs/dired-sex.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-sex.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-sex.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Marking files according to sexpressions. Sorry. ;; Created: Wed Sep 14 01:30:43 1994 by sandy on ibm550
--- a/lisp/efs/dired-shell.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-shell.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-shell.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Commands for running shell commands on marked files. ;; @@ -15,21 +15,28 @@ ;;; Variables (defvar dired-postscript-print-command - (concat - (if (boundp 'lpr-command) - lpr-command - (if (memq system-type - '(usg-unix-v hpux silicon-graphics-unix)) - "lp" - "lpr")) - (if (and (boundp 'lpr-switches) lpr-switches) - (concat " " - (mapconcat 'identity lpr-switches " ") - " ") - " ")) - "Command to print a postscript file.") + (condition-case nil + (progn + (require 'ps-print) + (concat ps-lpr-command + " " + (ps-flatten-list (mapcar 'ps-eval-switch ps-lpr-switches)))) + (error + (concat + (if (boundp 'lpr-command) + lpr-command + (if (memq system-type + '(usg-unix-v hpux silicon-graphics-unix)) + "lp" + "lpr")) + (if (and (boundp 'lpr-switches) lpr-switches) + (concat " " + (mapconcat 'identity lpr-switches " ") + " ") + " ")))) + "Command to print a postscript file.") -(defvar dired-text-print-command (concat dired-postscript-print-command " -p") +(defvar dired-text-print-command (concat dired-postscript-print-command "-p ") "Command to print a text file.") (defvar dired-print-program-alist
--- a/lisp/efs/dired-uu.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-uu.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-uu.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Commands for uuencoding/uudecoding marked files. ;; Author: Sandy Rutherford <sandy@math.ubc.ca>
--- a/lisp/efs/dired-vir.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-vir.el Mon Aug 13 08:54:25 2007 +0200 @@ -2,7 +2,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-vir.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Virtual dired mode for browsing ls -lR listings. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
--- a/lisp/efs/dired-xemacs.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-xemacs.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-xemacs.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: dired functions for XEmacs ;; Author: Mike Sperber <sperber@informatik.uni-tuebingen.de> @@ -274,7 +274,7 @@ "Installs the Dired menu at the menubar." (if (null dired-help-menu) (dired-setup-menus)) - (if current-menubar + (if (and (featurep 'menubar) current-menubar) (progn (let ((buffer-menubar (copy-sequence current-menubar))) (delete (assoc "Edit" buffer-menubar) buffer-menubar)
--- a/lisp/efs/dired-xy.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired-xy.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,7 +1,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; File: dired-xy.el -;; Dired Version: $Revision: 1.1 $ +;; Dired Version: $Revision: 7.9 $ ;; RCS: ;; Description: Commands for reading mail from dired. ;;
--- a/lisp/efs/dired.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/dired.el Mon Aug 13 08:54:25 2007 +0200 @@ -92,9 +92,24 @@ ((< ver 18) (error "dired does not work with emacs version %s" emacs-version)))) -;; Load default-dir last, because we want its interactive specs. -(require 'default-dir) - +;; We duplicate default-dir stuff to avoid its overwrites unless +;; they are explicitly requested. + +(defvar default-directory-function nil + "A function to call to compute the default-directory for the current buffer. +If this is nil, the function default-directory will return the value of the +variable default-directory. +Buffer local.") +(make-variable-buffer-local 'default-directory-function) + +(defun default-directory () + " Returns the default-directory for the current buffer. +Will use the variable default-directory-function if it non-nil." + (if default-directory-function + (funcall default-directory-function) + (if (string-match "Lucid" emacs-version) + (abbreviate-file-name default-directory t) + (abbreviate-file-name default-directory)))) ;;;;---------------------------------------------------------------- ;;;; Customizable variables @@ -143,7 +158,7 @@ For example: - \(setq dired-compresssion-method-alist + \(setq dired-compression-method-alist \(cons '\(frobnicate \".frob\" \(\"frob\"\) \(\"frob\" \"-d\"\) \"-f\"\) dired-compression-method-alist\)\) => \(\(frobnicate \".frob\" \(\"frob\"\) \(\"frob\" \"-d\"\)\) @@ -207,7 +222,7 @@ ;;;###autoload (defvar dired-chown-program (if (memq system-type '(hpux dgux usg-unix-v)) "chown" "/etc/chown") - "*Name of chown command (usully `chown' or `/etc/chown').") + "*Name of chown command (usually `chown' or `/etc/chown').") ;;;###autoload (defvar dired-gnutar-program nil @@ -3776,7 +3791,7 @@ Optional CHAR indicates a marker character to use." (let (buffer-read-only) (if (memq (or char dired-marker-char) '(?\ ?\n ?\r)) - (error "Invalid marker charcter %c" dired-marker-char)) + (error "Invalid marker character %c" dired-marker-char)) (or char (setq char dired-marker-char)) (dired-repeat-over-lines arg
--- a/lisp/efs/efs-auto.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-auto.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-auto.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.7 $ ;; RCS: ;; Description: Simple way of autoloading efs ;; Author: Andy Norman, Dawn @@ -17,7 +17,7 @@ ;;; (it's copylefted) and warrranty (there isn't one) information. ;;; Provides a way of autoloading efs. To use this, just put -;;; (require 'efs-auto in your .emacs file. +;;; (require 'efs-auto) in your .emacs file. ;;; ;;; The Bad News: ;;; @@ -37,7 +37,7 @@ (defconst efs-auto-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.7 $" 11 -2))) ;;; Interactive functions that should be accessible from here.
--- a/lisp/efs/efs-cms.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-cms.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-cms.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.9 $ ;; RCS: ;; Description: CMS support for efs ;; Author: Sandy Rutherford <sandy@ibm550.sissa.it> @@ -22,7 +22,7 @@ (defconst efs-cms-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.9 $" 11 -2))) ;;;; ------------------------------------------------------------ ;;;; CMS support
--- a/lisp/efs/efs-cu.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-cu.el Mon Aug 13 08:54:25 2007 +0200 @@ -26,7 +26,7 @@ ;;;; Use configuration variables. ;;;; ------------------------------------------------------------ -(defvar efs-default-user nil +(defvar efs-default-user "anonymous" "*User name to use when none is specied in a pathname. If a string, than this string is used as the default user name. @@ -86,6 +86,7 @@ (substring efs-path-user-at-host-format 3) "Format to return `host:' strings for completion in root directory.") +;;;###autoload (defvar efs-path-root-regexp "^/[^/:]+:" "Regexp to match the `/user@host:' root of an efs full path.") @@ -619,12 +620,12 @@ (defun efs-code-string (string) ;; Encode a string, using `efs-passwd-seed'. This is nil-potent, ;; meaning applying it twice decodes. - (if (and (fboundp 'int-char) (fboundp 'char-int)) + (if (and (fboundp 'int-to-char) (fboundp 'char-to-int)) (mapconcat (function (lambda (c) (char-to-string - (int-char (logxor (efs-get-passwd-seed) (char-int c)))))) + (int-to-char (logxor (efs-get-passwd-seed) (char-to-int c)))))) string "") (mapconcat (function
--- a/lisp/efs/efs-dl.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-dl.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-dl.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.3 $ ;; RCS: ;; Description: Unix descriptive listing support for efs ;; Author: Sandy Rutherford <sandy@tsmi19.sissa.it> @@ -21,7 +21,7 @@ (defconst efs-dl-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.3 $" 11 -2))) ;;;----------------------------------------------------------------- ;;; Unix descriptive listing (dl) support for efs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/efs/efs-dump.el Mon Aug 13 08:54:25 2007 +0200 @@ -0,0 +1,18 @@ +;; -*-Emacs-Lisp-*- +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; File: efs-dump.el +;; Release: $efs release: 1.15 $ +;; Version: $Revision: 1.1 $ +;; RCS: +;; Description: Install a bare-bones EFS hook into file-name-handler-alist +;; for dumping +;; Author: Mike Sperber <sperber@informatik.uni-tuebingen.de> +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;;###autoload +(setq file-name-handler-alist + (cons + (cons efs-path-root-regexp 'efs-file-handler-function) + file-name-handler-alist))
--- a/lisp/efs/efs-guardian.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-guardian.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-guardian.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.7 $ ;; RCS: ;; Description: Guardian support for efs ;; Author: Sandy Rutherford <sandy@math.ubc.ca> @@ -22,7 +22,7 @@ (defconst efs-guardian-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.7 $" 11 -2))) (provide 'efs-guardian) (require 'efs)
--- a/lisp/efs/efs-ka9q.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-ka9q.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-ka9q.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.2 $ ;; RCS: ;; Description: KA9Q support for efs ;; Author: Sandy Rutherford <sandy@tsmi19.sissa.it> @@ -23,7 +23,7 @@ (defconst efs-ka9q-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.2 $" 11 -2))) ;;;----------------------------------------------------------------- ;;; KA9Q support for efs
--- a/lisp/efs/efs-mpe.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-mpe.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-mpe.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.8 $ ;; RCS: ;; Description: MPE (HP3000) support for efs. ;; Author: (Corny de Souza) cdesouza@hpbbn.bbn.hp.com @@ -125,7 +125,7 @@ (defconst efs-mpe-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.8 $" 11 -2))) ;;; Support for build parameters
--- a/lisp/efs/efs-mvs.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-mvs.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-mvs.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.4 $ ;; RCS: ;; Description: MVS support for efs ;; Author: Sandy Rutherford <sandy@math.ubc.ca, sandy@itp.ethz.ch> @@ -26,7 +26,7 @@ (defconst efs-mvs-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.4 $" 11 -2))) ;; What's the MVS character set for valid partitioned data sets? ;; I'll guess [-A-Z0-9_$+]
--- a/lisp/efs/efs-netrc.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-netrc.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,12 +3,11 @@ ;; ;; File: efs-netrc.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.2 $ ;; RCS: ;; Description: Parses ~/.netrc file, and does completion in /. ;; Author: Sandy Rutherford <sandy@ibm550.sissa.it> ;; Created: Fri Jan 28 19:32:47 1994 by sandy on ibm550 -;; Modified: Sun Nov 27 18:38:50 1994 by sandy on gandalf ;; Language: Emacs-Lisp ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -33,7 +32,7 @@ (defconst efs-netrc-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.2 $" 11 -2))) ;; Make the byte compiler happy. (defvar dired-directory) @@ -58,6 +57,7 @@ ;;;; Host / User / Account mapping support. ;;;; ------------------------------------------------------------ +;;;###autoload (defun efs-set-passwd (host user passwd) "For a given HOST and USER, set or change the associated PASSWORD." (interactive (list (read-string "Host: ") @@ -370,6 +370,7 @@ (list nil) res)))) +;;;###autoload (defun efs-root-file-name-all-completions (file dir) ;; Generates all completions in the root directory. (let ((file-name-handler-alist (efs-file-name-handler-alist-sans-fn @@ -378,6 +379,7 @@ (file-name-all-completions file dir)))) +;;;###autoload (defun efs-root-file-name-completion (file dir) ;; Calculates completions in the root directory to include remote hosts. (let ((file-name-handler-alist (efs-file-name-handler-alist-sans-fn
--- a/lisp/efs/efs-netware.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-netware.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-netware.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.5 $ ;; RCS: ;; Description: efs support for the Novell Netware FTP server ;; Author: Sandy Rutherford <sandy@math.ubc.ca> @@ -24,7 +24,7 @@ (defconst efs-netware-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.5 $" 11 -2))) ;;; Basic efs support
--- a/lisp/efs/efs-nos-ve.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-nos-ve.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-nos-ve.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.2 $ ;; RCS: ;; Description: efs support for NOS/VE ;; Authors: Sandy Rutherford <sandy@ibm550.sissa,it> @@ -26,7 +26,7 @@ (defconst efs-nos-ve-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.2 $" 11 -2))) ;;;;--------------------------------------------------------------- ;;;; NOS/VE support for efs
--- a/lisp/efs/efs-ovwrt.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-ovwrt.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,11 +3,10 @@ ;; ;; File: efs-ovwrt.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.2 $ ;; RCS: ;; Description: Utilities for overwriting functions with new definitions. ;; Author: Andy Norman <ange@hplb.hpl.hp.com> -;; Modified: Sun Nov 27 18:40:20 1994 by sandy on gandalf ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -20,7 +19,7 @@ (defconst efs-ovwrt-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.2 $" 11 -2))) (defvar efs-overwrite-fmt "Note: This function has been modified to work with %s.") @@ -66,9 +65,12 @@ ;; later after some other code has been loaded on top of our stuff. (or (fboundp saved) - (progn + (let ((advised-p (and (featurep 'advice) + (ad-is-advised fun)))) + (if advised-p (ad-deactivate fun)) (fset saved (symbol-function fun)) - (fset fun new))) + (fset fun new) + (if advised-p (ad-activate fun)))) ;; Rewrite the doc string on the new function. This should ;; be done every time the file is loaded (or a function is redefined),
--- a/lisp/efs/efs-pc.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-pc.el Mon Aug 13 08:54:25 2007 +0200 @@ -260,7 +260,7 @@ ;; Neither DOS nor OS/2 allows us to end the name of a directory ;; with an "\". ;; Adding *.* to the end also allows us to distinguish plain files from - ;; directries. All DOS servers seem to understand this except + ;; directories. All DOS servers seem to understand this except ;; Frontier Technologies' super-tcp server. ((string-match "/$" dir-path) (concat (efs-fix-pc-path dir-path) "*.*"))
--- a/lisp/efs/efs-report.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-report.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,12 +3,11 @@ ;; ;; File: efs-report.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.9 $ ;; RCS: ;; Description: Function to report efs bugs in a usable way. ;; Author: Andy Norman, Dawn ;; Created: Tue May 18 08:34:45 1993 -;; Modified: Sun Nov 27 18:41:45 1994 by sandy on gandalf ;; Language: Emacs-Lisp ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -23,7 +22,7 @@ (defconst efs-report-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.9 $" 11 -2))) (defconst efs-report-salutations ["Dear bug team:" @@ -163,6 +162,7 @@ ?\n ?\ ) (insert subj))))) +;;;###autoload (defun efs-report-bug (&optional default-host default-user blurb no-confirm) "Submit a bug report for efs." (interactive)
--- a/lisp/efs/efs-vms.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-vms.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,7 +3,7 @@ ;; ;; File: efs-vms.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.13 $ ;; RCS: ;; Description: VMS support for efs ;; Authors: Andy Norman, Joe Wells, Sandy Rutherford <sandy@itp.ethz.ch> @@ -20,7 +20,7 @@ (defconst efs-vms-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.13 $" 11 -2))) ;;;; ------------------------------------------------------------ ;;;; VMS support.
--- a/lisp/efs/efs-x19.15.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs-x19.15.el Mon Aug 13 08:54:25 2007 +0200 @@ -3,24 +3,22 @@ ;; ;; File: efs-x19.15.el ;; Release: $efs release: 1.15 $ -;; Version: $Revision: 1.1 $ +;; Version: $Revision: 1.2 $ ;; RCS: ;; Description: efs support for XEmacs, versions 19.15, and later. ;; Author: Sandy Rutherford <sandy@ibm550.sissa.it> ;; Created: Tue Aug 2 17:40:32 1994 by sandy on ibm550 -;; Modified: by Mike Sperber ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (provide 'efs-x19\.15) (require 'efs-cu) -(require 'default-dir) (require 'efs-ovwrt) (defconst efs-x19\.15-version (concat (substring "$efs release: 1.15 $" 14 -2) "/" - (substring "$Revision: 1.1 $" 11 -2))) + (substring "$Revision: 1.2 $" 11 -2))) ;;; Functions requiring special defs. for these XEmacs versions.
--- a/lisp/efs/efs.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/efs/efs.el Mon Aug 13 08:54:25 2007 +0200 @@ -73,12 +73,8 @@ ;;; Documentation: ;;; -------------------------------------------------------------- ;;; -;;; Currently efs does not have a tex info file, and what you are -;;; reading represents the only efs documentation. Please report any -;;; errors or omissions in this documentation to the "bugs" address -;;; below. Eventually, a tex info file should be written. If you have -;;; any problems with efs, please read this section *before* -;;; submitting a bug report. +;;; If you have any problems with efs, please read this section +;;; *before* submitting a bug report. ;;; Installation: ;;; @@ -309,7 +305,7 @@ ;;; Gateways: ;;; -;;; Sometimes it is neccessary for the FTP process to be run on a different +;;; Sometimes it is necessary for the FTP process to be run on a different ;;; machine than the machine running GNU Emacs. This can happen when the ;;; local machine has restrictions on what hosts it can access. ;;; @@ -4161,6 +4157,7 @@ ;;;; pretty much scrap metal.) ;;;; --------------------------------------------------------------------- +;;;###autoload (defun efs-nslookup-host (host) "Attempt to resolve the given HOSTNAME using nslookup if possible." (interactive "sHost: ") @@ -10730,6 +10727,7 @@ ;;;; File name handlers ;;;; ------------------------------------------------------------ +;;;###autoload (defun efs-file-handler-function (operation &rest args) "Function to call special file handlers for remote files." (let ((handler (get operation 'efs)))
--- a/lisp/mel/mel-u.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/mel/mel-u.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,58 +1,57 @@ -;;; ;;; mel-u.el: uuencode encoder/decoder for GNU Emacs -;;; -;;; Copyright (C) 1995 Free Software Foundation, Inc. -;;; Copyright (C) 1995,1996 MORIOKA Tomohiko -;;; -;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> -;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> -;;; Created: 1995/10/25 -;;; Version: -;;; $Id: mel-u.el,v 1.3 1996/12/29 00:14:57 steve Exp $ -;;; Keywords: uuencode -;;; -;;; This file is part of MEL (MIME Encoding Library). -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with This program. If not, write to the Free Software -;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -;;; + +;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. + +;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> +;; Created: 1995/10/25 +;; Version: $Id: mel-u.el,v 1.4 1997/03/22 05:29:07 steve Exp $ +;; Keywords: uuencode + +;; This file is part of MEL (MIME Encoding Library). + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + ;;; Code: (require 'emu) +(require 'mel) ;;; @ variables ;;; -(defvar mime/tmp-dir (or (getenv "TM_TMP_DIR") "/tmp/")) - (defvar uuencode-external-encoder '("uuencode" "-") "*list of uuencode encoder program name and its arguments.") (defvar uuencode-external-decoder - (list "sh" "-c" (format "(cd %s; uudecode)" mime/tmp-dir)) + (list "sh" "-c" (format "(cd %s; uudecode)" mime-temp-directory)) "*list of uuencode decoder program name and its arguments.") ;;; @ uuencode encoder/decoder for region ;;; -(defun uuencode-external-encode-region (beg end) +(defun uuencode-external-encode-region (start end) + "Encode current region by unofficial uuencode format. +This function uses external uuencode encoder which is specified by +variable `uuencode-external-encoder'." (interactive "*r") (save-excursion (as-binary-process (apply (function call-process-region) - beg end (car uuencode-external-encoder) + start end (car uuencode-external-encoder) t t nil (cdr uuencode-external-encoder)) ) ;; for OS/2 @@ -63,13 +62,16 @@ ) )) -(defun uuencode-external-decode-region (beg end) +(defun uuencode-external-decode-region (start end) + "Decode current region by unofficial uuencode format. +This function uses external uuencode decoder which is specified by +variable `uuencode-external-decoder'." (interactive "*r") (save-excursion (let ((filename (save-excursion (save-restriction - (narrow-to-region beg end) - (goto-char beg) + (narrow-to-region start end) + (goto-char start) (if (re-search-forward "^begin [0-9]+ " nil t) (if (looking-at ".+$") (buffer-substring (match-beginning 0) @@ -78,17 +80,10 @@ (if filename (as-binary-process (apply (function call-process-region) - beg end (car uuencode-external-decoder) + start end (car uuencode-external-decoder) t nil nil (cdr uuencode-external-decoder)) - (setq filename (expand-file-name filename mime/tmp-dir)) - (let ((file-coding-system-for-read *noconv*) ; for Mule - kanji-fileio-code ; for NEmacs - (emx-binary-mode t) ; for OS/2 - jka-compr-compression-info-list ; for jka-compr - jam-zcat-filename-list ; for jam-zcat - require-final-newline) - (insert-file-contents filename) - ) + (setq filename (expand-file-name filename mime-temp-directory)) + (as-binary-input-file (insert-file-contents filename)) (delete-file filename) )) ))) @@ -101,6 +96,9 @@ ;;; (defun uuencode-insert-encoded-file (filename) + "Insert file encoded by unofficial uuencode format. +This function uses external uuencode encoder which is specified by +variable `uuencode-external-encoder'." (interactive (list (read-file-name "Insert encoded file: "))) (call-process (car uuencode-external-encoder) filename t nil (file-name-nondirectory filename))
--- a/lisp/mel/mel.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/mel/mel.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,11 +1,11 @@ ;;; mel.el : a MIME encoding/decoding library -;; Copyright (C) 1995,1996 Free Software Foundation, Inc. +;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; modified by Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> ;; Created: 1995/6/25 -;; Version: $Id: mel.el,v 1.3 1996/12/29 00:14:58 steve Exp $ +;; Version: $Id: mel.el,v 1.4 1997/03/22 05:29:07 steve Exp $ ;; Keywords: MIME, Base64, Quoted-Printable, uuencode, gzip64 ;; This file is part of MEL (MIME Encoding Library). @@ -27,13 +27,26 @@ ;;; Code: +;;; @ variable +;;; + +(defvar mime-temp-directory (or (getenv "MIME_TMP_DIR") + (getenv "TM_TMP_DIR") + "/tmp/") + "*Directory for temporary files.") + + ;;; @ region ;;; -(autoload 'base64-encode-region "mel-b" nil t) -(autoload 'quoted-printable-encode-region "mel-q" nil t) -(autoload 'uuencode-encode-region "mel-u" nil t) -(autoload 'gzip64-encode-region "mel-g" nil t) +(autoload 'base64-encode-region + "mel-b" "Encode current region by base64." t) +(autoload 'quoted-printable-encode-region + "mel-q" "Encode current region by Quoted-Printable." t) +(autoload 'uuencode-encode-region + "mel-u" "Encode current region by unofficial uuencode format." t) +(autoload 'gzip64-encode-region + "mel-g" "Encode current region by unofficial x-gzip64 format." t) (defvar mime-encoding-method-alist '(("base64" . base64-encode-region) @@ -47,13 +60,17 @@ "Alist of encoding vs. corresponding method to encode region. Each element looks like (STRING . FUNCTION) or (STRING . nil). STRING is content-transfer-encoding. -FUNCTION is region encoder and nil means not to encode. [mel.el]") +FUNCTION is region encoder and nil means not to encode.") -(autoload 'base64-decode-region "mel-b" nil t) -(autoload 'quoted-printable-decode-region "mel-q" nil t) -(autoload 'uuencode-decode-region "mel-u" nil t) -(autoload 'gzip64-decode-region "mel-g" nil t) +(autoload 'base64-decode-region + "mel-b" "Decode current region by base64." t) +(autoload 'quoted-printable-decode-region + "mel-q" "Decode current region by Quoted-Printable." t) +(autoload 'uuencode-decode-region + "mel-u" "Decode current region by unofficial uuencode format." t) +(autoload 'gzip64-decode-region + "mel-g" "Decode current region by unofficial x-gzip64 format." t) (defvar mime-decoding-method-alist '(("base64" . base64-decode-region) @@ -65,11 +82,11 @@ "Alist of encoding vs. corresponding method to decode region. Each element looks like (STRING . FUNCTION). STRING is content-transfer-encoding. -FUNCTION is region decoder. [mel.el]") +FUNCTION is region decoder.") -(defun mime-encode-region (beg end encoding) - "Encode region BEG to END of current buffer using ENCODING. [mel.el]" +(defun mime-encode-region (start end encoding) + "Encode region START to END of current buffer using ENCODING." (interactive (list (region-beginning) (region-end) (completing-read "encoding: " @@ -78,11 +95,11 @@ ) (let ((f (cdr (assoc encoding mime-encoding-method-alist)))) (if f - (funcall f beg end) + (funcall f start end) ))) -(defun mime-decode-region (beg end encoding) - "Decode region BEG to END of current buffer using ENCODING. [mel.el]" +(defun mime-decode-region (start end encoding) + "Decode region START to END of current buffer using ENCODING." (interactive (list (region-beginning) (region-end) (completing-read "encoding: " @@ -91,17 +108,21 @@ ) (let ((f (cdr (assoc encoding mime-decoding-method-alist)))) (if f - (funcall f beg end) + (funcall f start end) ))) ;;; @ file ;;; -(autoload 'base64-insert-encoded-file "mel-b" nil t) -(autoload 'quoted-printable-insert-encoded-file "mel-q" nil t) -(autoload 'uuencode-insert-encoded-file "mel-u" nil t) -(autoload 'gzip64-insert-encoded-file "mel-g" nil t) +(autoload 'base64-insert-encoded-file + "mel-b" "Insert file encoded by base64." t) +(autoload 'quoted-printable-insert-encoded-file + "mel-q" "Insert file encoded by quoted-printable." t) +(autoload 'uuencode-insert-encoded-file + "mel-u" "Insert file encoded by unofficial uuencode format." t) +(autoload 'gzip64-insert-encoded-file + "mel-g" "Insert file encoded by unofficial gzip64 format." t) (defvar mime-file-encoding-method-alist '(("base64" . base64-insert-encoded-file) @@ -115,11 +136,10 @@ "Alist of encoding vs. corresponding method to insert encoded file. Each element looks like (STRING . FUNCTION). STRING is content-transfer-encoding. -FUNCTION is function to insert encoded file. [mel.el]") - +FUNCTION is function to insert encoded file.") (defun mime-insert-encoded-file (filename encoding) - "Encode region BEG to END of current buffer using ENCODING. [mel.el]" + "Insert file FILENAME encoded by ENCODING format." (interactive (list (read-file-name "Insert encoded file: ") (completing-read "encoding: "
--- a/lisp/modes/cc-mode.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/modes/cc-mode.el Mon Aug 13 08:54:25 2007 +0200 @@ -6,8 +6,8 @@ ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Created: a long, long, time ago. adapted from the original c-mode.el -;; Version: 4.381 -;; Last Modified: 1997/03/18 16:43:13 +;; Version: 4.387 +;; Last Modified: 1997/03/21 20:25:33 ;; Keywords: c languages oop ;; NOTE: Read the commentary below for the right way to submit bug reports! @@ -32,18 +32,19 @@ ;;; Commentary: -;; This package provides modes in GNU Emacs for editing C, C++, -;; Objective-C, and Java code. It is intended to be a replacement for -;; c-mode.el (a.k.a. BOCM -- Boring Old C-Mode), c++-mode.el, -;; cplus-md.el, and cplus-md1.el, all of which are in some way -;; ancestors of this file. A number of important improvements have -;; been made, briefly: complete K&R C, ANSI C, `ARM' C++, Objective-C, -;; and Java support with consistent indentation across all modes, more -;; intuitive indentation controlling variables, compatibility across -;; all known Emacsen, nice new features, and tons of bug fixes. This -;; package is called "CC Mode" to distinguish it from its ancestors, -;; but there is no cc-mode command. Usage and programming details are -;; contained in an accompanying texinfo manual. +;; This package provides GNU Emacs major modes for editing C, C++, +;; Objective-C, and Java code. As of the latest Emacs and XEmacs +;; releases, it is the default package for editing these languages. +;; This package is called "CC Mode", and should be spelled exactly +;; this way. It supports K&R and ANSI C, ANSI C++, Objective-C, and +;; Java, with a consistent indentation model across all modes. This +;; indentation model is intuitive and very flexible, so that almost +;; any desired style of indentation can be supported. Installation, +;; usage, and programming details are contained in an accompanying +;; texinfo manual. + +;; CC Mode's immediate ancestors were, c++-mode.el, cplus-md.el, and +;; cplus-md1.el.. ;; NOTE: This mode does not perform font-locking (a.k.a syntactic ;; coloring, keyword highlighting, etc.) for any of the supported @@ -68,22 +69,6 @@ ;; BYTE-COMPILER WARNINGS (you'd be surprised at how many people don't ;; follow this advice :-). -;; As of this writing (24-Feb-1997), CC Mode comes with the latest -;; Emacs and XEmacs distributions (19.34 and 19.14 respectively), but -;; is no longer pre-loaded by default. To use the latest version of -;; CC Mode, you need only make sure that this copy of cc-mode.el is -;; found first on your load-path. - -;; If your Emacs is pre-loaded with any version of cc-mode.el, -;; c-mode.el, or c++-mode.el, you will need to consult the -;; cc-mode.texinfo manual for details on upgrading your Emacs. - -;; There are four major mode entry points provided by this package, -;; one for editing C++ code, one for editing C code (both K&R and -;; ANSI), one for editing Objective-C code, and one for editing Java -;; code. The commands are M-x c-mode, M-x c++-mode, M-x objc-mode, -;; and M-x java-mode. - ;; Many, many thanks go out to all the folks on the beta test list. ;; Without their patience, testing, insight, code contributions, and ;; encouragement CC Mode would be a far inferior package. @@ -421,8 +406,14 @@ (defvar c-electric-pound-behavior nil "*List of behaviors for electric pound insertion. Only currently supported behavior is `alignleft'.") + (defvar c-label-minimum-indentation 1 - "*Minimum indentation for labels and case tags in `gnu' style.") + "*Minimum indentation for lines inside of top-level constructs. +This variable typically only affects code using the `gnu' style, which +mandates a minimum of one space in front of every line inside +top-level constructs. Specifically, the function +`c-gnu-impose-minimum' on your `c-special-indent-hook' is what +enforces this.") (defvar c-progress-interval 5 "*Interval used to update progress status during long re-indentation. @@ -1239,10 +1230,14 @@ (defconst c-C++-friend-key "friend[ \t]+\\|template[ \t]*<.+>[ \t]*friend[ \t]+" "Regexp describing friend declarations in C++ classes.") -(defconst c-C++-comment-start-regexp "/[/*]" - "Dual comment value for `c-comment-start-regexp'.") -(defconst c-C-comment-start-regexp "/\\*" - "Single comment style value for `c-comment-start-regexp'.") + +;; comment starter definitions for various languages. the language +;; modes will set c-comment-start-regexp to this value. +(defconst c-C++-comment-start-regexp "/[/*]") +(defconst c-C-comment-start-regexp "/[*]") +;; We need to match all 3 Java style comments +;; 1) Traditional C block; 2) javadoc /** ...; 3) C++ style +(defconst c-Java-comment-start-regexp "/\\(/\\|[*][*]?\\)") (defconst c-ObjC-method-key (concat @@ -1453,7 +1448,7 @@ comment-end "" comment-multi-line nil c-conditional-key c-Java-conditional-key - c-comment-start-regexp c-C++-comment-start-regexp + c-comment-start-regexp c-Java-comment-start-regexp c-class-key c-Java-class-key c-method-key c-Java-method-key c-double-slash-is-comments-p t @@ -1597,6 +1592,11 @@ ;; macros must be defined before first use +(defmacro c-add-syntax (symbol &optional relpos) + ;; a simple macro to append the syntax in symbol to the syntax list. + ;; try to increase performance by using this macro + (` (setq syntax (cons (cons (, symbol) (, relpos)) syntax)))) + (defmacro c-point (position) ;; Returns the value of point at certain commonly referenced POSITIONs. ;; POSITION can be one of the following symbols: @@ -2611,7 +2611,9 @@ (goto-char comment-start-place) (search-backward "/*")) (if (and (not c-hanging-comment-starter-p) - (looking-at "/\\*[ \t]*$")) + (looking-at + (concat c-comment-start-regexp + "[ \t]*$"))) (forward-line 1)) ;; Protect text before the comment ;; start by excluding it. Add @@ -3857,11 +3859,6 @@ ;; defuns for calculating the syntactic state and indenting a single ;; line of C/C++/ObjC code -(defmacro c-add-syntax (symbol &optional relpos) - ;; a simple macro to append the syntax in symbol to the syntax list. - ;; try to increase performance by using this macro - (` (setq syntax (cons (cons (, symbol) (, relpos)) syntax)))) - (defun c-most-enclosing-brace (state) ;; return the bufpos of the most enclosing brace that hasn't been ;; narrowed out by any enclosing class, or nil if none was found @@ -4937,8 +4934,9 @@ ;; we now have to figure out where this comment begins. (goto-char here) (back-to-indentation) - (if (re-search-forward "[*]+/" (c-point 'eol) t) - (forward-comment -1) + (if (looking-at "[*]+/") + (progn (goto-char (match-end 0)) + (forward-comment -1)) (goto-char (cdr langelem)) (back-to-indentation)))) (- (current-column) cs-curcol)) @@ -5205,7 +5203,7 @@ ;; defuns for submitting bug reports -(defconst c-version "4.381" +(defconst c-version "4.387" "CC Mode version number.") (defconst c-mode-help-address "bug-gnu-emacs@prep.ai.mit.edu, cc-mode-help@python.org" @@ -5226,7 +5224,10 @@ (interactive) ;; load in reporter (let ((reporter-prompt-for-summary-p t) - (reporter-dont-compact-list '(c-offsets-alist))) + (reporter-dont-compact-list '(c-offsets-alist)) + (style c-indentation-style) + (hook c-special-indent-hook) + (c-features c-emacs-features)) (and (if (y-or-n-p "Do you want to submit a report on CC Mode? ") t (message "") nil) @@ -5253,6 +5254,7 @@ 'c-hanging-colons-alist 'c-hanging-comment-starter-p 'c-hanging-comment-ender-p + 'c-indent-comments-syntactically-p 'c-tab-always-indent 'c-recognize-knr-p 'c-label-minimum-indentation @@ -5265,15 +5267,15 @@ (function (lambda () (insert - "Buffer Style: " c-indentation-style "\n\n" - (if c-special-indent-hook + "Buffer Style: " style "\n\n" + (if hook (concat "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" "c-special-indent-hook is set to '" - (format "%s" c-special-indent-hook) + (format "%s" hook) ".\nPerhaps this is your problem?\n" "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n") "\n") - (format "c-emacs-features: %s\n" c-emacs-features) + (format "c-emacs-features: %s\n" c-features) ))) nil "Dear Barry,"
--- a/lisp/mu/mu-cite.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/mu/mu-cite.el Mon Aug 13 08:54:25 2007 +0200 @@ -6,7 +6,7 @@ ;; MINOURA Makoto <minoura@netlaputa.or.jp> ;; Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> ;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> -;; Version: $Revision: 1.6 $ +;; Version: $Revision: 1.7 $ ;; Keywords: mail, news, citation ;; This file is part of MU (Message Utilities). @@ -54,7 +54,7 @@ ;;; (defconst mu-cite/RCS-ID - "$Id: mu-cite.el,v 1.6 1997/03/16 05:55:24 steve Exp $") + "$Id: mu-cite.el,v 1.7 1997/03/22 05:29:11 steve Exp $") (defconst mu-cite/version (get-version-string mu-cite/RCS-ID)) @@ -95,21 +95,8 @@ ;;; @ field ;;; -(defvar mu-cite/get-field-value-method-alist - (list (cons 'mh-letter-mode - (function - (lambda (name) - (if (and (stringp mh-sent-from-folder) - (numberp mh-sent-from-msg)) - (save-excursion - (set-buffer mh-sent-from-folder) - (set-buffer mh-show-buffer) - (and (boundp 'mime::preview/article-buffer) - (bufferp mime::preview/article-buffer) - (set-buffer mime::preview/article-buffer)) - (std11-field-body name) - )) - ))))) +(defvar mu-cite/get-field-value-method-alist nil + "Alist major-mode vs. function to get field-body of header.") (defun mu-cite/get-field-value (name) (or (std11-field-body name)
--- a/lisp/packages/time.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/packages/time.el Mon Aug 13 08:54:25 2007 +0200 @@ -38,6 +38,9 @@ ;;; the old mechanism for specifying what is to be displayed. ;;; The starting variable to look at is `display-time-form-list' +;;; Thanks to Mike Scheidler for the idea to make the time led's fore- and +;;; background color customizable + ;;; Code: (require 'itimer) @@ -141,6 +144,11 @@ (start-itimer "display-time" 'display-time-function display-time-interval display-time-interval)) +(defun display-time-stop () + (interactive) + (delete-itimer "display-time") + (setq display-time-string nil)) + (defcustom display-time-show-icons-maybe t "Use icons for time, load and mail status if possible and not specified different explicitely" @@ -163,11 +171,37 @@ :group 'display-time :type 'string) -(defcustom display-time-display-pad t - "Wether the load indicator is displayed with a trapezoidal \"pad\" -in the background" +(defcustom display-time-display-pad "grey35" + "How the load indicator's trapezoidal \"pad\" is to be displayed. +This can be 'transparent or a string describing the color it should have" + :group 'display-time + :type '(choice :tag "Value" + (const transparent) + (string :tag "Color"))) + +(defcustom display-time-display-time-foreground "firebrick" + "How the time LEDs foreground is to be displayed. +This can be 'modeline (foreground color of the Modeline) +or a string describing the color it should have" :group 'display-time - :type 'boolean) + :type '(choice :tag "Value" + (const modline) + (string :tag "Color"))) + +(defcustom display-time-display-time-background 'transparent + "How the time LEDs background is to be displayed. +This can be 'transparent or a string describing the color it should have" + :group 'display-time + :type '(choice :tag "Value" + (const transparent) + (string :tag "Color"))) + + +(defvar display-time-display-pad-old nil) + +(defvar display-time-display-time-fg-old nil) + +(defvar display-time-display-time-bg-old nil) (defcustom display-time-load-list (list 0.2 0.5 0.8 1.1 1.8 2.6) @@ -175,108 +209,149 @@ which correspond to the six different icons to be displayed as a load indicator" :group 'display-time - :type '(list (number :tag "Threshold 1 load") - (number :tag "Threshold 2 load") - (number :tag "Threshold 3 load") - (number :tag "Threshold 4 load") - (number :tag "Threshold 5 load") - (number :tag "Threshold 6 load"))) + :type '(list (number :tag "Threshold 1") + (number :tag "Threshold 2") + (number :tag "Threshold 3") + (number :tag "Threshold 4") + (number :tag "Threshold 5") + (number :tag "Threshold 6"))) (defun display-time-string-to-char-list (str) (mapcar (function identity) str)) -(if (featurep 'xpm) +(defun display-time-generate-load-glyphs (&optional force) + (let* ((pad-color (if (symbolp display-time-display-pad) + (list "pad-color" '(face-background 'modeline)) + (list "pad-color" display-time-display-pad))) + (xpm-color-symbols (append (list pad-color) xpm-color-symbols))) + (if (and (featurep 'xpm) + (or force (not (equal display-time-display-pad + display-time-display-pad-old)))) + (progn + (setq display-time-load-0.0-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-0.0.xpm")))) + (setq display-time-load-0.5-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-0.5.xpm")))) + (setq display-time-load-1.0-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-1.0.xpm")))) + (setq display-time-load-1.5-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-1.5.xpm")))) + (setq display-time-load-2.0-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-2.0.xpm")))) + (setq display-time-load-2.5-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-2.5.xpm")))) + (setq display-time-load-3.0-glyph + (cons (make-extent nil nil) + (make-glyph + (concat display-time-icons-dir "l-3.0.xpm")))) + (setq display-time-display-pad-old display-time-display-pad) + )))) + + +(defun display-time-generate-time-glyphs (&optional force) + (let* ((ledbg (if (symbolp display-time-display-time-background) + (list "ledbg" '(face-background 'modeline)) + (list "ledbg" display-time-display-time-background))) + (ledfg (if (symbolp display-time-display-time-foreground) + (list "ledfg" '(face-foreground 'modeline)) + (list "ledfg" display-time-display-time-foreground))) + (xpm-color-symbols (append (list ledbg) + (list ledfg) xpm-color-symbols))) + (if (and (featurep 'xpm) + (or force (not (equal display-time-display-time-background + display-time-display-time-bg-old)) + (not (equal display-time-display-time-foreground + display-time-display-time-fg-old)))) + (progn + (setq display-time-1-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "1.xpm")))) + (setq display-time-2-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "2.xpm")))) + (setq display-time-3-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "3.xpm")))) + (setq display-time-4-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "4.xpm")))) + (setq display-time-5-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "5.xpm")))) + (setq display-time-6-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "6.xpm")))) + (setq display-time-7-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "7.xpm")))) + (setq display-time-8-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "8.xpm")))) + (setq display-time-9-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "9.xpm")))) + (setq display-time-0-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "0.xpm")))) + (setq display-time-:-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "dp.xpm")))) + (setq display-time-am-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "am.xpm")))) + (setq display-time-pm-glyph + (cons (make-extent nil nil) + (make-glyph (concat display-time-icons-dir "pm.xpm")))) + (setq display-time-display-time-fg-old + display-time-display-time-foreground + display-time-display-time-bg-old + display-time-display-time-background) + )))) + + (if (featurep 'xpm) (progn (defvar display-time-mail-sign (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "letter.xpm")))) + (make-glyph (concat display-time-icons-dir "letter.xpm")))) (defvar display-time-no-mail-sign (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "no-letter.xpm")))) - (defvar display-time-1-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "1.xpm")))) - (defvar display-time-2-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "2.xpm")))) - (defvar display-time-3-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "3.xpm")))) - (defvar display-time-4-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "4.xpm")))) - (defvar display-time-5-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "5.xpm")))) - (defvar display-time-6-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "6.xpm")))) - (defvar display-time-7-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "7.xpm")))) - (defvar display-time-8-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "8.xpm")))) - (defvar display-time-9-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "9.xpm")))) - (defvar display-time-0-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "0.xpm")))) - (defvar display-time-:-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "dp.xpm")))) - (defvar display-time-load-0.0-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-0.0.xpm")))) - (defvar display-time-load-0.5-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-0.5.xpm")))) - (defvar display-time-load-1.0-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-1.0.xpm")))) - (defvar display-time-load-1.5-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-1.5.xpm")))) - (defvar display-time-load-2.0-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-2.0.xpm")))) - (defvar display-time-load-2.5-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-2.5.xpm")))) - (defvar display-time-load-3.0-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-3.0.xpm")))) - (defvar display-time-load-0.0-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-0.0.xpm")))) - (defvar display-time-load-0.5-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-0.5.xpm")))) - (defvar display-time-load-1.0-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-1.0.xpm")))) - (defvar display-time-load-1.5-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-1.5.xpm")))) - (defvar display-time-load-2.0-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-2.0.xpm")))) - (defvar display-time-load-2.5-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-2.5.xpm")))) - (defvar display-time-load-3.0-jtl-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "l-jtl-3.0.xpm")))) - (defvar display-time-am-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "am.xpm")))) - (defvar display-time-pm-glyph - (cons (make-extent nil nil) - (make-glyph (concat display-time-icons-dir "pm.xpm")))) + (make-glyph (concat display-time-icons-dir "no-letter.xpm")))) + (defvar display-time-1-glyph nil) + (defvar display-time-2-glyph nil) + (defvar display-time-3-glyph nil) + (defvar display-time-4-glyph nil) + (defvar display-time-5-glyph nil) + (defvar display-time-6-glyph nil) + (defvar display-time-7-glyph nil) + (defvar display-time-8-glyph nil) + (defvar display-time-9-glyph nil) + (defvar display-time-0-glyph nil) + (defvar display-time-:-glyph nil) + (defvar display-time-am-glyph nil) + (defvar display-time-pm-glyph nil) + (defvar display-time-load-0.0-glyph nil) + (defvar display-time-load-0.5-glyph nil) + (defvar display-time-load-1.0-glyph nil) + (defvar display-time-load-1.5-glyph nil) + (defvar display-time-load-2.0-glyph nil) + (defvar display-time-load-2.5-glyph nil) + (defvar display-time-load-3.0-glyph nil) + (display-time-generate-time-glyphs 'force) + (display-time-generate-load-glyphs 'force) )) - (defun display-time-can-do-graphical-display (&optional textual) (and display-time-show-icons-maybe (not textual) @@ -289,6 +364,7 @@ (let ((list (display-time-string-to-char-list time-string)) elem tmp) (if (not (display-time-can-do-graphical-display textual)) time-string + (display-time-generate-time-glyphs) (while (setq elem (pop list)) (push (eval (intern-soft (concat "display-time-" (char-to-string elem) @@ -308,11 +384,11 @@ result elem) (if (not (display-time-can-do-graphical-display textual)) load-string + (display-time-generate-load-glyphs) (while (>= load-number (cdr (setq elem (pop alist)))) (setq result (eval (intern-soft (concat "display-time-load-" (number-to-string (car elem)) - (if display-time-display-pad "-jtl") "-glyph"))))) result))) @@ -410,7 +486,7 @@ mail-text: The same as above, but will not use a glyph" :group 'display-time - :type '(repeat (choice :tag "Toggle Symbol/String" + :type '(repeat (choice :tag "Symbol/String" (const :tag "Date" date) (const :tag "Time" time) (const :tag "Time (text)" time-text)
--- a/lisp/prim/auto-autoloads.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/prim/auto-autoloads.el Mon Aug 13 08:54:25 2007 +0200 @@ -1204,7 +1204,7 @@ For example: - (setq dired-compresssion-method-alist + (setq dired-compression-method-alist (cons '(frobnicate \".frob\" (\"frob\") (\"frob\" \"-d\") \"-f\") dired-compression-method-alist)) => ((frobnicate \".frob\" (\"frob\") (\"frob\" \"-d\")) @@ -1221,7 +1221,7 @@ Can contain even `F', `b', `i' and `s'.") (defvar dired-chown-program (if (memq system-type '(hpux dgux usg-unix-v)) "chown" "/etc/chown") "\ -*Name of chown command (usully `chown' or `/etc/chown').") +*Name of chown command (usually `chown' or `/etc/chown').") (defvar dired-gnutar-program nil "\ *If non-nil, name of the GNU tar executable (e.g. \"tar\" or \"gnutar\"). @@ -1362,6 +1362,47 @@ ;;;*** +;;;### (autoloads nil "efs-cu" "efs/efs-cu.el") + +(defvar efs-path-root-regexp "^/[^/:]+:" "\ +Regexp to match the `/user@host:' root of an efs full path.") + +;;;*** + +;;;### (autoloads nil "efs-dump" "efs/efs-dump.el") + +(setq file-name-handler-alist (cons (cons efs-path-root-regexp 'efs-file-handler-function) file-name-handler-alist)) + +;;;*** + +;;;### (autoloads (efs-root-file-name-completion efs-root-file-name-all-completions efs-set-passwd) "efs-netrc" "efs/efs-netrc.el") + +(autoload 'efs-set-passwd "efs-netrc" "\ +For a given HOST and USER, set or change the associated PASSWORD." t nil) + +(autoload 'efs-root-file-name-all-completions "efs-netrc" nil nil nil) + +(autoload 'efs-root-file-name-completion "efs-netrc" nil nil nil) + +;;;*** + +;;;### (autoloads (efs-report-bug) "efs-report" "efs/efs-report.el") + +(autoload 'efs-report-bug "efs-report" "\ +Submit a bug report for efs." t nil) + +;;;*** + +;;;### (autoloads (efs-file-handler-function efs-nslookup-host) "efs" "efs/efs.el") + +(autoload 'efs-nslookup-host "efs" "\ +Attempt to resolve the given HOSTNAME using nslookup if possible." t nil) + +(autoload 'efs-file-handler-function "efs" "\ +Function to call special file handlers for remote files." nil nil) + +;;;*** + ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "electric/ebuff-menu.el") (autoload 'electric-buffer-list "ebuff-menu" "\ @@ -3678,7 +3719,7 @@ ;;;### (autoloads (ksh-mode) "ksh-mode" "modes/ksh-mode.el") (autoload 'ksh-mode "ksh-mode" "\ -ksh-mode $Revision: 1.16 $ - Major mode for editing (Bourne, Korn or Bourne again) +ksh-mode $Revision: 1.17 $ - Major mode for editing (Bourne, Korn or Bourne again) shell scripts. Special key bindings and commands: \\{ksh-mode-map} @@ -4953,7 +4994,7 @@ (autoload 'vhdl-mode "vhdl-mode" "\ Major mode for editing VHDL code. -vhdl-mode $Revision: 1.16 $ +vhdl-mode $Revision: 1.17 $ To submit a problem report, enter `\\[vhdl-submit-bug-report]' from a vhdl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the
--- a/lisp/prim/custom-load.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/prim/custom-load.el Mon Aug 13 08:54:25 2007 +0200 @@ -97,7 +97,7 @@ (put 'message-insertion 'custom-loads '("message")) (put 'wp 'custom-loads '("cus-edit")) (put 'message-faces 'custom-loads '("message")) -(put 'w3 'custom-loads '("w3-cus")) +(put 'w3 'custom-loads '("w3-cus" "w3-script")) (put 'gnus-score-files 'custom-loads '("gnus-score")) (put 'gnus-summary-marks 'custom-loads '("gnus-sum")) (put 'picons 'custom-loads '("gnus-picon")) @@ -107,3 +107,4 @@ (put 'message-buffers 'custom-loads '("message")) (put 'editing 'custom-loads '("cus-edit")) (put 'gnus-article-mime 'custom-loads '("gnus-art" "gnus-sum")) +(put 'w3-scripting 'custom-loads '("w3-script"))
--- a/lisp/tm/tm-edit.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/tm/tm-edit.el Mon Aug 13 08:54:25 2007 +0200 @@ -6,7 +6,7 @@ ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Created: 1994/08/21 renamed from mime.el -;; Version: $Revision: 1.6 $ +;; Version: $Revision: 1.7 $ ;; Keywords: mail, news, MIME, multimedia, multilingual ;; This file is part of tm (Tools for MIME). @@ -120,7 +120,7 @@ ;;; (defconst mime-editor/RCS-ID - "$Id: tm-edit.el,v 1.6 1997/02/16 01:29:32 steve Exp $") + "$Id: tm-edit.el,v 1.7 1997/03/22 05:29:22 steve Exp $") (defconst mime-editor/version (get-version-string mime-editor/RCS-ID)) @@ -1760,16 +1760,17 @@ (tag (buffer-substring beg end)) ) (delete-region beg end) - (setq contype (mime-editor/get-contype tag)) - (setq encoding (mime-editor/get-encoding tag)) - (insert (concat prefix "--" boundary "\n")) - (save-restriction - (narrow-to-region (point)(point)) - (insert "Content-Type: " contype "\n") - (if encoding - (insert "Content-Transfer-Encoding: " encoding "\n")) - (mime/encode-message-header) - ) + (let ((contype (mime-editor/get-contype tag)) + (encoding (mime-editor/get-encoding tag)) + ) + (insert (concat prefix "--" boundary "\n")) + (save-restriction + (narrow-to-region (point)(point)) + (insert "Content-Type: " contype "\n") + (if encoding + (insert "Content-Transfer-Encoding: " encoding "\n")) + (mime/encode-message-header) + )) t))) (defun mime-editor/translate-region (beg end &optional boundary multipart)
--- a/lisp/tm/tm-file.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/tm/tm-file.el Mon Aug 13 08:54:25 2007 +0200 @@ -1,10 +1,10 @@ ;;; tm-file.el --- tm-view internal method for file extraction -;; Copyright (C) 1995,1996 Free Software Foundation, Inc. +;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; modified by Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp> -;; Version: $Id: tm-file.el,v 1.3 1996/12/29 00:15:13 steve Exp $ +;; Version: $Id: tm-file.el,v 1.4 1997/03/22 05:29:23 steve Exp $ ;; Keywords: mail, news, MIME, multimedia, file, extract ;; This file is part of tm (Tools for MIME). @@ -60,17 +60,7 @@ (save-excursion (set-buffer tmp-buf) (mime-decode-region (point-min)(point-max) encoding) - (let ((coding-system-for-write 'no-conversion) - (mc-flag nil) ; for Mule - (file-coding-system - (if (featurep 'mule) *noconv*)) - kanji-flag ; for NEmacs - (emx-binary-mode t) ; for OS/2 - jka-compr-compression-info-list ; for jka-compr - jam-zcat-filename-list ; for jam-zcat - require-final-newline) - (write-file filename) - ) + (as-binary-output-file (write-file filename)) (kill-buffer tmp-buf) )))
--- a/lisp/tm/tm-play.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/tm/tm-play.el Mon Aug 13 08:54:25 2007 +0200 @@ -4,7 +4,7 @@ ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Created: 1995/9/26 (separated from tm-view.el) -;; Version: $Id: tm-play.el,v 1.6 1997/03/16 05:55:43 steve Exp $ +;; Version: $Id: tm-play.el,v 1.7 1997/03/22 05:29:24 steve Exp $ ;; Keywords: mail, news, MIME, multimedia ;; This file is part of tm (Tools for MIME). @@ -273,7 +273,17 @@ (cons t (mime-charset-to-coding-system default-mime-charset)) )) -(cond (running-mule-merged-emacs +(cond ((boundp 'MULE) ; for MULE 2.3 or older + (defun mime-article::write-region (start end file) + (let ((file-coding-system + (cdr + (or (assq major-mode mime-article/coding-system-alist) + (assq t mime-article/coding-system-alist) + )))) + (write-region start end file) + )) + ) + ((featurep 'mule) ; for Emacs/mule and XEmacs/mule (defun mime-article::write-region (start end file) (let ((coding-system-for-write (cdr @@ -283,18 +293,7 @@ (write-region start end file) )) ) - ((or (boundp 'MULE) - running-xemacs-with-mule) - (defun mime-article::write-region (start end file) - (let ((file-coding-system - (cdr - (or (assq major-mode mime-article/coding-system-alist) - (assq t mime-article/coding-system-alist) - )))) - (write-region start end file) - )) - ) - ((boundp 'NEMACS) + ((boundp 'NEMACS) ; for NEmacs (defun mime-article::write-region (start end file) (let ((kanji-fileio-code (cdr @@ -304,7 +303,7 @@ (write-region start end file) )) ) - (t + (t ; for Emacs 19 or older and XEmacs without mule (defalias 'mime-article::write-region 'write-region) ))
--- a/lisp/tm/tm-vm.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/tm/tm-vm.el Mon Aug 13 08:54:25 2007 +0200 @@ -9,7 +9,7 @@ ;; Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch> ;; Created: 1994/10/29 -;; Version: $Revision: 1.5 $ +;; Version: $Revision: 1.6 $ ;; Keywords: mail, MIME, multimedia, multilingual, encoded-word ;; This file is part of tm (Tools for MIME). @@ -46,7 +46,7 @@ (require 'vm-summary) (require 'vm-menu) (require 'vm-toolbar) - +(require 'vm-mime) ;;; @ Variables @@ -103,7 +103,7 @@ ;;; @@ System/Information variables (defconst tm-vm/RCS-ID - "$Id: tm-vm.el,v 1.5 1997/02/16 01:29:35 steve Exp $") + "$Id: tm-vm.el,v 1.6 1997/03/22 05:29:25 steve Exp $") (defconst tm-vm/version (get-version-string tm-vm/RCS-ID)) ; Ensure vm-menu-mail-menu gets properly defined *before* tm-vm/vm-emulation-map @@ -286,8 +286,8 @@ (define-key vm-mode-map "\et" 'tm-vm/toggle-preview-mode) ; Disable VM 6 built-in MIME handling -(setq vm-display-using-mime nil) -(setq vm-send-using-mime nil) +(setq vm-display-using-mime nil + vm-send-using-mime nil) ;;; @ MIME encoded-words @@ -298,30 +298,18 @@ (or tm-vm/use-tm-patch (progn -;;; -(defvar tm-vm/chop-full-name-function 'tm-vm/default-chop-full-name) -(setq vm-chop-full-name-function tm-vm/chop-full-name-function) +(defadvice vm-compile-format (around tm activate) + "MIME decoding support through TM added." + (let ((vm-display-using-mime t)) + ad-do-it)) -(defun tm-vm/default-chop-full-name (address) - (let* ((ret (vm-default-chop-full-name address)) - (full-name (car ret)) - ) - (if (stringp full-name) - (cons (mime-eword/decode-string full-name) - (cdr ret)) - ret))) +(defadvice vm-tokenized-summary-insert (around tm activate) + "MIME decoding support through TM added." + (let ((vm-display-using-mime t)) + ad-do-it)) -(defadvice vm-su-subject (after tm activate) - "MIME decoding support through TM added." - (setq ad-return-value (mime-eword/decode-string ad-return-value))) - -(defadvice vm-su-full-name (after tm activate) - "MIME decoding support through TM added." - (setq ad-return-value (mime-eword/decode-string ad-return-value))) - -(defadvice vm-su-to-names (after tm activate) - "MIME decoding support through TM added." - (setq ad-return-value (mime-eword/decode-string ad-return-value))) +(fset 'vm-decode-mime-encoded-words-in-string 'mime-eword/decode-string) +(fset 'vm-reencode-mime-encoded-words-in-string 'mime-eword/encode-string) )) @@ -398,6 +386,12 @@ ;;; @ MIME Viewer +(setq mime-viewer/code-converter-alist + (append + (list (cons 'vm-mode 'mime-charset/decode-buffer) + (cons 'vm-virtual-mode 'mime-charset/decode-buffer)) + mime-viewer/code-converter-alist)) + ;;; @@ MIME-Preview buffer management (defvar tm-vm/system-state nil) @@ -743,11 +737,9 @@ 'vm-virtual-mode (function tm-vm/following-method)) - (set-alist 'mime-viewer/quitting-method-alist 'vm-mode 'tm-vm/quit-view-message) - (set-alist 'mime-viewer/quitting-method-alist 'vm-virtual-mode 'tm-vm/quit-view-message) @@ -1204,7 +1196,9 @@ )))) (defadvice vm-forward-message (around tm-aware activate) - "Extended to support rfc1521 multipart digests and to work properly in MIME-Preview buffers." + "Extended to support rfc1521 digests (roughly equivalent to what +VM does when vm-forwarding-digest-type is 'mime but using message/rfc822 +when appropriate." (if (not (equal vm-forwarding-digest-type "rfc1521")) ad-do-it (if mime::preview/article-buffer
--- a/lisp/tm/tmh-comp.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/tm/tmh-comp.el Mon Aug 13 08:54:25 2007 +0200 @@ -6,7 +6,7 @@ ;; OKABE Yasuo <okabe@kudpc.kyoto-u.ac.jp> ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp> ;; Created: 1996/2/29 (separated from tm-mh-e.el) -;; Version: $Id: tmh-comp.el,v 1.4 1997/02/02 05:06:21 steve Exp $ +;; Version: $Id: tmh-comp.el,v 1.5 1997/03/22 05:29:25 steve Exp $ ;; Keywords: mail, MH, MIME, multimedia, encoded-word, multilingual ;; This file is part of tm (Tools for MIME). @@ -225,12 +225,9 @@ (if (get-buffer name) (throw 'tag (pop-to-buffer name)) ) - (let ((file-coding-system-for-read *noconv*) - (filename - (mh-msg-filename msg mh-draft-folder) - )) + (let ((filename (mh-msg-filename msg mh-draft-folder))) (set-buffer (get-buffer-create name)) - (insert-file-contents filename) + (as-binary-input-file (insert-file-contents filename)) (setq buffer-file-name filename) (setq code-conversion t) ) @@ -241,9 +238,9 @@ name)) (t (prog1 - (let ((file-coding-system-for-read *noconv*)) - (mh-read-draft "clean-up" (mh-msg-filename msg) nil) - ) + (as-binary-input-file + (mh-read-draft "clean-up" (mh-msg-filename msg) nil) + ) (setq code-conversion t) )))) ) @@ -518,6 +515,31 @@ 'mh-insert-letter 'tm-mh-e/insert-letter mh-letter-mode-map) +;;; @ for mu-cite +;;; + +(call-after-loaded + 'mu-cite + (function + (lambda () + (set-alist 'mu-cite/get-field-value-method-alist + 'mh-letter-mode + (function + (lambda (name) + (if (and (stringp mh-sent-from-folder) + (numberp mh-sent-from-msg)) + (save-excursion + (set-buffer mh-sent-from-folder) + (set-buffer mh-show-buffer) + (and (boundp 'mime::preview/article-buffer) + (bufferp mime::preview/article-buffer) + (set-buffer mime::preview/article-buffer)) + (std11-field-body name) + )) + ))) + ))) + + ;;; @ end ;;;
--- a/lisp/version.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/version.el Mon Aug 13 08:54:25 2007 +0200 @@ -26,7 +26,7 @@ (defconst emacs-version "19.15" "\ Version numbers of this version of Emacs.") -(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta102)"))) +(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta103)"))) (defconst emacs-major-version (progn (or (string-match "^[0-9]+" emacs-version)
--- a/lisp/vm/vm-autoload.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/vm/vm-autoload.el Mon Aug 13 08:54:25 2007 +0200 @@ -2192,7 +2192,7 @@ (autoload (quote vm-mode) "vm-startup" "Major mode for reading mail. -This is VM 6.20. +This is VM 6.21. Commands: h - summarize folder contents
--- a/lisp/vm/vm-folder.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/vm/vm-folder.el Mon Aug 13 08:54:25 2007 +0200 @@ -2414,6 +2414,7 @@ (condition-case () (progn (delete-file buffer-file-name) + (clear-visited-file-modtime) (message "%s removed" buffer-file-name)) ;; no can do, oh well. (error nil)))
--- a/lisp/vm/vm-mime.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/vm/vm-mime.el Mon Aug 13 08:54:25 2007 +0200 @@ -384,7 +384,9 @@ (cond ((= char ?\n) (vm-insert-char char 1 nil work-buffer) (setq cols 0)) - ((and (= char 32) (not (= ?\n (char-after (1+ inputpos))))) + ((and (= char 32) + (not (= (1+ inputpos) end)) + (not (= ?\n (char-after (1+ inputpos))))) (vm-insert-char char 1 nil work-buffer) (vm-increment cols)) ((or (< char 33) (> char 126) (= char 61) @@ -2575,7 +2577,10 @@ (delete-char 1))) ((stringp object) (let ((overridding-file-coding-system 'no-conversion)) - (insert-file-contents-literally object)))) + (insert-before-markers " ") + (forward-char -1) + (insert-file-contents-literally object) + (delete-char 1)))) ;; gather information about the object from the extent. (if (setq already-mimed (vm-extent-property e 'vm-mime-encoded)) (setq layout (vm-mime-parse-entity
--- a/lisp/vm/vm-startup.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/vm/vm-startup.el Mon Aug 13 08:54:25 2007 +0200 @@ -275,7 +275,7 @@ (defun vm-mode (&optional read-only) "Major mode for reading mail. -This is VM 6.20. +This is VM 6.21. Commands: h - summarize folder contents
--- a/lisp/vm/vm-version.el Mon Aug 13 08:54:02 2007 +0200 +++ b/lisp/vm/vm-version.el Mon Aug 13 08:54:25 2007 +0200 @@ -2,7 +2,7 @@ (provide 'vm-version) -(defconst vm-version "6.20" +(defconst vm-version "6.21" "Version number of VM.") (defun vm-version ()
--- a/src/buffer.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/buffer.c Mon Aug 13 08:54:25 2007 +0200 @@ -980,6 +980,8 @@ { int count = specpdl_depth (); /* lock_file() and unlock_file() currently use current_buffer */ + /* #### - dmoore, what if lock_file or unlock_file kill + the current buffer? */ record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); set_buffer_internal (buf); if (!already && !NILP (flag)) @@ -1300,14 +1302,14 @@ to kill the buffer. This must be done after the questions since anything can happen within yes-or-no-p. */ + /* Might have been deleted during the last question above */ + if (!BUFFER_LIVE_P (b)) + return Qnil; + /* Don't kill the minibuffer now current. */ if (EQ (buf, XWINDOW (minibuf_window)->buffer)) return Qnil; - /* Might have been deleted during the last question above */ - if (!BUFFER_LIVE_P (b)) - return Qnil; - /* When we kill a base buffer, kill all its indirect buffers. We do it at this stage so nothing terrible happens if they ask questions or their hooks get errors. */ @@ -1336,8 +1338,23 @@ /* Now there is no question: we can kill the buffer. */ #ifdef CLASH_DETECTION - /* Unlock this buffer's file, if it is locked. */ + /* Unlock this buffer's file, if it is locked. unlock_buffer + can both GC and kill the current buffer, and wreak general + havok by running lisp code. */ + GCPRO1 (buf); unlock_buffer (b); + UNGCPRO; + b = XBUFFER (buf); + + if (!BUFFER_LIVE_P (b)) + return Qnil; + + if (b == current_buffer) + { + Fset_buffer (Fother_buffer (buf, Qnil, Qnil)); + if (b == current_buffer) + return Qnil; + } #endif /* CLASH_DETECTION */ {
--- a/src/device-x.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/device-x.c Mon Aug 13 08:54:25 2007 +0200 @@ -99,8 +99,8 @@ /* helper functions */ /************************************************************************/ -struct device * -get_device_from_display (Display *dpy) +static struct device * +get_device_from_display_1 (Display *dpy) { Lisp_Object devcons, concons; @@ -111,11 +111,25 @@ return d; } - /* Only devices we are actually managing should ever be used as an - argument to this function. */ - abort (); + return 0; +} + +struct device * +get_device_from_display (Display *dpy) +{ + struct device *d = get_device_from_display_1 (dpy); - return 0; /* suppress compiler warning */ + if (!d) { + /* This isn't one of our displays. Let's crash? */ + stderr_out + ("\n%s: Fatal X Condition. Asked about display we don't own: \"%s\"\n", + (STRINGP (Vinvocation_name) ? + (char *) XSTRING_DATA (Vinvocation_name) : "xemacs"), + DisplayString (dpy) ? DisplayString (dpy) : "???"); + abort(); + } + + return d; } struct device * @@ -578,8 +592,12 @@ { /* This function can GC */ Lisp_Object dev; - struct device *d = get_device_from_display (disp); - XSETDEVICE (dev, d); + struct device *d = get_device_from_display_1 (disp); + + if (d) + XSETDEVICE (dev, d); + else + dev = Qnil; if (NILP (find_nonminibuffer_frame_not_on_device (dev))) { @@ -607,7 +625,8 @@ QLength (disp)); } - enqueue_magic_eval_event (io_error_delete_device, dev); + if (d) + enqueue_magic_eval_event (io_error_delete_device, dev); return 0; }
--- a/src/editfns.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/editfns.c Mon Aug 13 08:54:25 2007 +0200 @@ -631,20 +631,42 @@ return Qnil; } -DEFUN ("char-after", Fchar_after, 1, 2, 0, /* +DEFUN ("char-after", Fchar_after, 0, 2, 0, /* Return character in BUFFER at position POS. POS is an integer or a buffer pointer. If POS is out of range, the value is nil. If BUFFER is nil, the current buffer is assumed. +if POS is nil, the value of point is assumed. */ (pos, buffer)) { struct buffer *b = decode_buffer (buffer, 1); - Bufpos n = get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD); + Bufpos n = (NILP (pos) ? BUF_PT (b) : + get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD)); if (n < 0 || n == BUF_ZV (b)) return Qnil; - return (make_char (BUF_FETCH_CHAR (b, n))); + return make_char (BUF_FETCH_CHAR (b, n)); +} + +DEFUN ("char-before", Fchar_before, 0, 2, 0, /* +Return character in BUFFER before position POS. +POS is an integer or a buffer pointer. +If POS is out of range, the value is nil. +If BUFFER is nil, the current buffer is assumed. +if POS is nil, the value of point is assumed. +*/ + (pos, buffer)) +{ + struct buffer *b = decode_buffer (buffer, 1); + Bufpos n = ((NILP (pos) ? BUF_PT (b) : + get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD))); + + n--; + + if (n < BUF_BEGV (b)) + return Qnil; + return make_char (BUF_FETCH_CHAR (b, n)); } @@ -2086,6 +2108,7 @@ DEFSUBR (Ffollowing_char); DEFSUBR (Fpreceding_char); DEFSUBR (Fchar_after); + DEFSUBR (Fchar_before); DEFSUBR (Finsert); DEFSUBR (Finsert_string); DEFSUBR (Finsert_before_markers);
--- a/src/fileio.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/fileio.c Mon Aug 13 08:54:25 2007 +0200 @@ -112,6 +112,11 @@ DOESNT_RETURN report_file_error (CONST char *string, Lisp_Object data) { + /* #### dmoore - This uses current_buffer, better make sure no one + has GC'd the current buffer. File handlers are giving me a headache + maybe I'll just always protect current_buffer around all of those + calls. */ + /* mrb: #### Needs to be fixed at a lower level; errstring needs to be MULEized. The following at least prevents a crash... */ Lisp_Object errstring = build_ext_string (strerror (errno), FORMAT_BINARY); @@ -375,6 +380,16 @@ } static Lisp_Object +call2_check_string_or_nil (Lisp_Object fn, Lisp_Object arg0, Lisp_Object arg1) +{ + /* This function can GC */ + Lisp_Object result = call2 (fn, arg0, arg1); + if (!NILP (result)) + CHECK_STRING (result); + return (result); +} + +static Lisp_Object call3_check_string (Lisp_Object fn, Lisp_Object arg0, Lisp_Object arg1, Lisp_Object arg2) { @@ -405,14 +420,8 @@ call the corresponding file handler. */ handler = Ffind_file_name_handler (file, Qfile_name_directory); if (!NILP (handler)) - { - Lisp_Object retval = call2 (handler, Qfile_name_directory, - file); - - if (!NILP (retval)) - CHECK_STRING (retval); - return retval; - } + return (call2_check_string_or_nil (handler, Qfile_name_directory, + file)); #ifdef FILE_SYSTEM_CASE file = FILE_SYSTEM_CASE (file); @@ -880,6 +889,7 @@ Bufbyte *tmp, *defdir; #endif /* DOS_NT */ Lisp_Object handler; + struct gcpro gcpro1; CHECK_STRING (name); @@ -908,7 +918,11 @@ if (!NILP (defalt)) { + struct gcpro gcpro1; + + GCPRO1 (defalt); /* might be current_buffer->directory */ handler = Ffind_file_name_handler (defalt, Qexpand_file_name); + UNGCPRO; if (!NILP (handler)) return call3 (handler, Qexpand_file_name, name, defalt); } @@ -931,7 +945,7 @@ { struct gcpro gcpro1; - GCPRO1 (name); + GCPRO1 (defalt); /* may be current_buffer->directory */ defalt = Fexpand_file_name (defalt, Qnil); UNGCPRO; } @@ -944,6 +958,8 @@ name = FILE_SYSTEM_CASE (name); #endif + /* #### dmoore - this is ugly, clean this up. Looks like nm + pointing into name should be safe during all of this, though. */ nm = XSTRING_DATA (name); #ifdef MSDOS @@ -1388,9 +1404,7 @@ CHECK_STRING (filename); - GCPRO1 (filename); expanded_name = Fexpand_file_name (filename, defalt); - UNGCPRO; if (!STRINGP (expanded_name)) return Qnil; @@ -1525,14 +1539,8 @@ call the corresponding file handler. */ handler = Ffind_file_name_handler (string, Qsubstitute_in_file_name); if (!NILP (handler)) - { - Lisp_Object retval = call2 (handler, Qsubstitute_in_file_name, - string); - - if (!NILP (retval)) - CHECK_STRING (retval); - return retval; - } + return (call2_check_string_or_nil (handler, Qsubstitute_in_file_name, + string)); nm = XSTRING_DATA (string); #ifdef MSDOS @@ -1981,18 +1989,16 @@ /* This function can GC */ char dir [MAXPATHLEN]; Lisp_Object handler; - struct gcpro gcpro1; - GCPRO1 (dirname); CHECK_STRING (dirname); dirname = Fexpand_file_name (dirname, Qnil); + GCPRO1 (dirname); handler = Ffind_file_name_handler (dirname, Qmake_directory_internal); UNGCPRO; if (!NILP (handler)) - return (call2 (handler, Qmake_directory_internal, - dirname)); + return (call2 (handler, Qmake_directory_internal, dirname)); if (XSTRING_LENGTH (dirname) > (sizeof (dir) - 1)) { @@ -2028,10 +2034,11 @@ Lisp_Object handler; struct gcpro gcpro1; + CHECK_STRING (dirname); + GCPRO1 (dirname); - CHECK_STRING (dirname); - dirname = - Fdirectory_file_name (Fexpand_file_name (dirname, Qnil)); + dirname = Fexpand_file_name (dirname, Qnil); + dirname = Fdirectory_file_name (dirname); handler = Ffind_file_name_handler (dirname, Qdelete_directory); UNGCPRO; @@ -2054,10 +2061,10 @@ Lisp_Object handler; struct gcpro gcpro1; - GCPRO1 (filename); CHECK_STRING (filename); filename = Fexpand_file_name (filename, Qnil); + GCPRO1 (filename); handler = Ffind_file_name_handler (filename, Qdelete_file); UNGCPRO; if (!NILP (handler)) @@ -2547,10 +2554,16 @@ ? Qt : Qnil); + GCPRO1 (abspath); dir = Ffile_name_directory (abspath); + UNGCPRO; #if defined (VMS) || defined (MSDOS) if (!NILP (dir)) - dir = Fdirectory_file_name (dir); + { + GCPRO1(dir); + dir = Fdirectory_file_name (dir); + UNGCPRO; + } #endif /* VMS or MSDOS */ return (check_writable (!NILP (dir) ? (char *) XSTRING_DATA (dir) : "") @@ -2622,7 +2635,7 @@ Lisp_Object handler; struct gcpro gcpro1; - GCPRO1 (filename); + GCPRO1 (current_buffer->directory); abspath = expand_and_dir_to_file (filename, current_buffer->directory); UNGCPRO; @@ -2661,6 +2674,8 @@ return call2 (handler, Qfile_accessible_directory_p, filename); + /* #### dmoore - this gcpro on filename should be unneccesary since + the caller should ahve already protected it. */ GCPRO1 (filename); if (NILP (Ffile_directory_p (filename))) { @@ -2678,15 +2693,20 @@ */ (filename)) { - REGISTER Lisp_Object abspath; + Lisp_Object abspath; struct stat st; Lisp_Object handler; - + struct gcpro gcpro1; + + GCPRO1 (current_buffer->directory); abspath = expand_and_dir_to_file (filename, current_buffer->directory); + UNGCPRO; /* If the file name has special constructs in it, call the corresponding file handler. */ + GCPRO1 (abspath); handler = Ffind_file_name_handler (abspath, Qfile_regular_p); + UNGCPRO; if (!NILP (handler)) return call2 (handler, Qfile_regular_p, abspath); @@ -2706,7 +2726,7 @@ Lisp_Object handler; struct gcpro gcpro1; - GCPRO1 (filename); + GCPRO1 (current_buffer->directory); abspath = expand_and_dir_to_file (filename, current_buffer->directory); UNGCPRO; @@ -2738,9 +2758,9 @@ /* This function can GC */ Lisp_Object abspath; Lisp_Object handler; - struct gcpro gcpro1, gcpro2; + struct gcpro gcpro1; - GCPRO2 (filename, mode); + GCPRO1 (current_buffer->directory); abspath = Fexpand_file_name (filename, current_buffer->directory); CHECK_INT (mode); UNGCPRO; @@ -2815,22 +2835,20 @@ struct stat st; int mtime1; Lisp_Object handler; - struct gcpro gcpro1, gcpro2; + struct gcpro gcpro1, gcpro2, gcpro3; CHECK_STRING (file1); CHECK_STRING (file2); abspath1 = Qnil; - GCPRO2 (abspath1, file2); - abspath1 = expand_and_dir_to_file (file1, - current_buffer->directory); - abspath2 = expand_and_dir_to_file (file2, - current_buffer->directory); - UNGCPRO; + abspath2 = Qnil; + + GCPRO3 (abspath1, abspath2, current_buffer->directory); + abspath1 = expand_and_dir_to_file (file1, current_buffer->directory); + abspath2 = expand_and_dir_to_file (file2, current_buffer->directory); /* If the file name has special constructs in it, call the corresponding file handler. */ - GCPRO2 (abspath1, abspath2); handler = Ffind_file_name_handler (abspath1, Qfile_newer_than_file_p); if (NILP (handler)) handler = Ffind_file_name_handler (abspath2, Qfile_newer_than_file_p); @@ -2885,12 +2903,13 @@ int saverrno = 0; Charcount inserted = 0; int speccount; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; Lisp_Object handler = Qnil, val; int total; Bufbyte read_buf[READ_BUF_SIZE]; int mc_count; struct buffer *buf = current_buffer; + Lisp_Object curbuf; int not_regular = 0; if (buf->base_buffer && ! NILP (visit)) @@ -2901,7 +2920,12 @@ val = Qnil; - GCPRO4 (filename, val, visit, handler); + /* #### dmoore - should probably check in various places to see if + curbuf was killed and if so signal an error? */ + + XSETBUFFER (curbuf, buf); + + GCPRO5 (filename, val, visit, handler, curbuf); mc_count = (NILP (replace)) ? begin_multiple_change (buf, BUF_PT (buf), BUF_PT (buf)) : @@ -3341,6 +3365,12 @@ struct buffer *given_buffer; Bufpos start1, end1; + /* #### dmoore - if Fexpand_file_name or handlers kill the buffer, + we should signal an error rather than blissfully continuing + along. ARGH, this function is going to lose lose lose. We need + to protect the current_buffer from being destroyed, but the + multiple return points make this a pain in the butt. */ + #ifdef DOS_NT int buffer_file_type = NILP (current_buffer->buffer_file_type) ? O_TEXT : O_BINARY; @@ -3355,6 +3385,7 @@ { Lisp_Object handler; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; + GCPRO5 (start, filename, visit, visit_file, lockname); if (visiting_other) @@ -3394,8 +3425,11 @@ #ifdef CLASH_DETECTION if (!auto_saving) { - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - GCPRO4 (start, filename, visit_file, lockname); + Lisp_Object curbuf; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; + + XSETBUFFER (curbuf, current_buffer); + GCPRO5 (start, filename, visit_file, lockname, curbuf); lock_file (lockname); UNGCPRO; } @@ -4018,11 +4052,10 @@ Lisp_Object filename; struct stat st; Lisp_Object handler; - struct gcpro gcpro1, gcpro2; + struct gcpro gcpro1, gcpro2, gcpro3; - GCPRO2 (filename, time_list); - filename = Fexpand_file_name (current_buffer->filename, - Qnil); + GCPRO3 (filename, time_list, current_buffer->filename); + filename = Fexpand_file_name (current_buffer->filename, Qnil); /* If the file name has special constructs in it, call the corresponding file handler. */ @@ -4074,16 +4107,16 @@ if (!set_time_to_use) { Lisp_Object filename = Qnil; - struct gcpro gcpro1, gcpro2; - GCPRO2 (buf, filename); + struct gcpro gcpro1; + GCPRO1 (filename); + /* #### dmoore - do we need to protect XBUFFER (buf)->filename? + What if a ^(*&^&*^*& handler renames a buffer? I think I'm + getting a headache now. */ if (STRINGP (XBUFFER (buf)->filename)) - filename = Fexpand_file_name (XBUFFER (buf)->filename, - Qnil); + filename = Fexpand_file_name (XBUFFER (buf)->filename, Qnil); else filename = Qnil; - - UNGCPRO; if (!NILP (filename) && !NILP (Ffile_exists_p (filename))) { @@ -4091,7 +4124,6 @@ /* If the file name has special constructs in it, call the corresponding file handler. */ - GCPRO1 (filename); handler = Ffind_file_name_handler (filename, Qset_buffer_modtime); UNGCPRO; if (!NILP (handler)) @@ -4106,11 +4138,14 @@ } } else - time_to_use = time ((time_t *) 0); + { + UNGCPRO; + time_to_use = time ((time_t *) 0); + } } XBUFFER (buf)->modtime = time_to_use; - + return Qnil; }
--- a/src/filelock.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/filelock.c Mon Aug 13 08:54:25 2007 +0200 @@ -196,7 +196,11 @@ void lock_file (Lisp_Object fn) { - /* This function can GC */ + /* This function can GC. */ + /* dmoore - and can destroy current_buffer and all sorts of other + mean nasty things with pointy teeth. If you call this make sure + you protect things right. */ + REGISTER Lisp_Object attack, orig_fn; REGISTER char *lfname; struct gcpro gcpro1, gcpro2; @@ -335,6 +339,11 @@ void unlock_file (Lisp_Object fn) { + /* This function can GC. */ + /* dmoore - and can destroy current_buffer and all sorts of other + mean nasty things with pointy teeth. If you call this make sure + you protect things right. */ + REGISTER char *lfname; if (NILP (Vlock_directory) || NILP (Vsuperlock_file)) return; CHECK_STRING (fn); @@ -391,9 +400,13 @@ void unlock_all_files (void) { - REGISTER Lisp_Object tail; + /* This function can GC. */ + + Lisp_Object tail; REGISTER struct buffer *b; + struct gcpro gcpro1; + GCPRO1 (tail); for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCDR (tail)) { @@ -402,6 +415,7 @@ BUF_SAVE_MODIFF (b) < BUF_MODIFF (b)) unlock_file (b->file_truename); } + UNGCPRO; } @@ -413,6 +427,10 @@ (fn)) { /* This function can GC */ + /* dmoore - and can destroy current_buffer and all sorts of other + mean nasty things with pointy teeth. If you call this make sure + you protect things right. */ + if (NILP (fn)) fn = current_buffer->file_truename; CHECK_STRING (fn); @@ -428,6 +446,11 @@ */ ()) { + /* This function can GC */ + /* dmoore - and can destroy current_buffer and all sorts of other + mean nasty things with pointy teeth. If you call this make sure + you protect things right. */ + if (BUF_SAVE_MODIFF (current_buffer) < BUF_MODIFF (current_buffer) && STRINGP (current_buffer->file_truename)) unlock_file (current_buffer->file_truename); @@ -440,6 +463,10 @@ void unlock_buffer (struct buffer *buffer) { + /* This function can GC */ + /* dmoore - and can destroy current_buffer and all sorts of other + mean nasty things with pointy teeth. If you call this make sure + you protect things right. */ if (BUF_SAVE_MODIFF (buffer) < BUF_MODIFF (buffer) && STRINGP (buffer->file_truename)) unlock_file (buffer->file_truename);
--- a/src/insdel.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/insdel.c Mon Aug 13 08:54:25 2007 +0200 @@ -1374,10 +1374,18 @@ int lockit) { /* This function can GC */ + /* dmoore - This function can also kill the buffer buf, the current + buffer, and do anything it pleases. So if you call it, be + careful. */ + Lisp_Object buffer; + struct gcpro gcpro1; + barf_if_buffer_read_only (buf, start, end); /* if this is the first modification, see about locking the buffer's file */ + XSETBUFFER (buffer, buf); + GCPRO1 (buffer); if (!NILP (buf->filename) && lockit && BUF_SAVE_MODIFF (buf) >= BUF_MODIFF (buf)) { @@ -1386,8 +1394,6 @@ /* Make binding buffer-file-name to nil effective. */ lock_file (buf->file_truename); #else - Lisp_Object buffer; - XSETBUFFER (buffer, buf); /* At least warn if this file has changed on disk since it was visited.*/ if (NILP (Fverify_visited_file_modtime (buffer)) && !NILP (Ffile_exists_p (buf->filename))) @@ -1395,6 +1401,11 @@ buf->filename); #endif /* not CLASH_DETECTION */ } + UNGCPRO; + + /* #### dmoore - is this reasonable in case of buf being killed above? */ + if (!BUFFER_LIVE_P (buf)) + return; signal_before_change (buf, start, end);
--- a/src/keymap.c Mon Aug 13 08:54:02 2007 +0200 +++ b/src/keymap.c Mon Aug 13 08:54:25 2007 +0200 @@ -2381,8 +2381,11 @@ if (!EQ (buffer, Vmouse_grabbed_buffer)) /* already pushed */ { + Lisp_Object map = XBUFFER (buffer)->keymap; + get_relevant_minor_maps (buffer, &closure); - relevant_map_push (XBUFFER (buffer)->keymap, &closure); + if (!NILP(map)) + relevant_map_push (map, &closure); } } } @@ -2621,6 +2624,8 @@ assert (EVENTP (event0)); nmaps = get_relevant_keymaps (event0, countof (maps), maps); + if (nmaps > countof (maps)) + nmaps = countof (maps); return (process_event_binding_result (lookup_events (event0, nmaps, maps, accept_default))); }