diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2005-09-04 03:48:17 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2005-09-04 03:48:17 +0000 |
commit | fbf349734468d48b421c3d03074bb66dfcf3115b (patch) | |
tree | 0a7d1ee844b6c591a5a499d23e35931945106e5a | |
parent | f0caabd962b662cccbea472995d86af718cc8d0b (diff) | |
parent | 4b5fa40e1f1ba3cafde672863a0331311d1c2695 (diff) | |
download | emacs-fbf349734468d48b421c3d03074bb66dfcf3115b.tar.gz |
Merged in changes from CVS trunk. Plus added lisp/term tweaks.
Patches applied:
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--base-0
tag of miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-474
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-1
Add CVS metadata files.
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-2
Update from CVS.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-393
1502 files changed, 23313 insertions, 13284 deletions
diff --git a/.gitignore b/.gitignore index 0322669fb04..71fbe7e8d36 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,9 @@ config.cache config.log config.status configure +data emacs*.tar.gz leim*.tar.gz +lock +site-lisp update.log diff --git a/ChangeLog b/ChangeLog index c44bcfbbf38..d216ab222d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2005-08-03 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Add `lock'. + +2005-07-28 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Add `data' and `site-lisp' (for in-place installs). + +2005-07-26 Paul Eggert <eggert@cs.ucla.edu> + + Merge gnulib getopt implementation into Emacs. + + * Makefile.in (AUTOCONF_INPUTS): New macro. + ($(srcdir)/configure, $(srcdir)/src/stamp-h.in): Depend on it, + so that these files also depend on m4/getopt.m4. + * configure.in: Configure getopt by including m4/getopt.m4, + and configuring a getopt replacement if necessary. + * make-dist: Add m4 subdirectory. Unlink lib-src/getopt.h. + * m4/getopt.m4: New file. + 2005-07-06 Lute Kamstra <lute@gnu.org> * configure.in: Fix capitalization. diff --git a/Makefile.in b/Makefile.in index 811a8205c45..c8fa29b3439 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ # DIST: make most of the changes to this file you might want, so try # DIST: that first. -# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,2004 +# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,04,2005 # Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -302,12 +302,14 @@ Makefile: $(srcdir)/Makefile.in config.status config.status: ${srcdir}/configure ./config.status --recheck -${srcdir}/configure: @MAINT@ ${srcdir}/configure.in +AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4 + +$(srcdir)/configure: $(AUTOCONF_INPUTS) cd ${srcdir} && autoconf $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in @true -$(srcdir)/src/stamp-h.in: @MAINT@ ${srcdir}/configure.in +$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS) cd ${srcdir} && autoheader rm -f $(srcdir)/src/stamp-h.in echo timestamp > $(srcdir)/src/stamp-h.in diff --git a/admin/ChangeLog b/admin/ChangeLog index afaa571e1a6..3f6f6aee58a 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,12 @@ +2005-08-31 Romain Francoise <romain@orebokech.com> + + * FOR-RELEASE: (New features): Remove vhdl-mode.el update + item (Done). + +2005-08-27 Romain Francoise <romain@orebokech.com> + + * FOR-RELEASE (Bugs): Remove compile-internal item (Done). + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index d14ffeee136..5375db09f69 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -21,6 +21,10 @@ face name prefixes should be in it for good results. ** Regenerate the postscript files of the reference cards in etc. +** Ask maintainers of refcard translations to update them. + +** Check what should be deleted or updated in MORE.STUFF. + * NEW FEATURES ** Make VC-over-Tramp work where possible, or at least fail @@ -29,11 +33,10 @@ To be done by Andre Spiegel <spiegel@gnu.org>. ** Update Speedbar. -** Update vhdl-mode.el based on changes in - http://opensource.ethz.ch/emacs/vhdl-mode.html. - ** Debug custom themes. +** Get rid of the defadvice calls in org.el. + * FATAL ERRORS ** Investigate reported crashes in compact_small_strings. @@ -41,9 +44,44 @@ To be done by Andre Spiegel <spiegel@gnu.org>. ** Investigate reported crashes related to using an invalid pointer from string_free_list. +** Emacs on Windows crashes reading JPEG images from files. + +The problem is caused by the Emacs executable and the image library +having multiple, incompatible copies of the run-time code, which can +happen when mixing a MSVC build of Emacs with a MinGW build of the +jpeg library (or the other way around). The fix is straightforward +and has already been posted on the developers' list, but it is on the +back burner waiting for a legal comment or an alternate implementation +(around 30 lines of code). + * BUGS -** Fix those modes that still use compile-internal, to not use it. +** The header-line buttons in the buffer list buffer +should respond to Mouse-1. + +** Fix recognition of shell's `dirs' command. + +Is his change right? + +Date: Wed, 29 Jun 2005 18:21:28 -0500 (CDT) +From: kevin.gal@verizon.net + +When I use tcsh (which echoes command input) in a shell buffer, +entering "M-x dirs" fails because it mistakens the echoed "dirs" +string as the directory string to use as input when changing the +buffers default directory. The attached gziped patch file contains a +fix. The patch also binds the "dirs" command to "\e\C-m" in +shell-mode-map (previously unbound) to make it easy to invoke. +Finally, a test has been added to see if "shell-dirstack-query" is +non-nil. If so, it is not overwritten. + +To enable the fix, the user must set comint-process-echoes to t. + +** TCP server processes do not work on Windows. + +TCP/IP server processes created with `make-network-process' consume +excesive CPU on some Windows environments. Usages of 50% and 100% +CPU time have been observed on different Window XP configurations. ** Bug in ebrowse @@ -75,63 +113,52 @@ The *Tree* is then displayed as The class A seems to be missing. -** Ange-ftp should ignore irrelevant IPv6 errors: - -Message-Id: <4121-Tue23Mar2004165249+0100-piet@cs.uu.nl> -From: "Piet van Oostrum" <piet@cs.uu.nl> -To: emacs-pretest-bug@gnu.org -Subject: Ange-ftp can't deal with IPV6/IPV4 fallback - -Symptoms: - -C-x C-f /ftp.nluug.nl:/ - -The problem is that the DNS first gives an IPV6 address. However our -router doesn't do IPV6. Ftp then falls back to IPV4: - -ftp> open ftp.nluug.nl -Trying 2001:610:1:80aa:192:87:102:36... -ftp: connect to address 2001:610:1:80aa:192:87:102:36: No route to host -Trying 192.87.102.36... -Connected to ftp.nluug.nl. - -Ange-ftp chokes on the `No route to host' message and doesn't look any -further. - -I think in the near future we will see more of this problem, so it might be -time to make anfe-ftp more intelligent. - * DOCUMENTATION ** Document Custom Themes. -** Update lispref/README. - ** Update man/info.texi. ** Add missing years in copyright notices of all files. -Policy document admin/notes/years must be updated before -making further progress on this task!!! - Please record your name here and say which part of the distribution you're going to handle. DIRECTORY STATUS IN CHARGE --------- ------ --------- +etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org)) leim working Kenichi Handa -lisp/calc working Thien-Thi Nguyen +lib-src done ttn +lisp done ttn +lisp/calc done ttn lisp/calendar working Glenn Morris -lisp/emulation working Thien-Thi Nguyen -lisp/eshell working Thien-Thi Nguyen +lisp/emacs-lisp done ttn +lisp/emulation done ttn +lisp/eshell done ttn +lisp/gnus done ttn lisp/international done Kenichi Handa -lisp/languages done Kenichi Handa -lisp/mh-e working Thien-Thi Nguyen -lisp/net working Thien-Thi Nguyen -lisp/play working Thien-Thi Nguyen -lisp/term working Thien-Thi Nguyen -lisp/toolbar working Thien-Thi Nguyen -lisp/url working Thien-Thi Nguyen +lisp/language done Kenichi Handa +lisp/mail done ttn +lisp/mh-e working Bill Wohler +lisp/net done ttn +lisp/obsolete done ttn +lisp/play done ttn +lisp/progmodes done Nick Roberts +lisp/term done ttn +lisp/textmodes done ttn +lisp/toolbar done ttn +lisp/url done ttn +lispintro done ttn +lispref done ttn +lwlib done ttn +m4 done ttn +mac (and subdirs) done ttn +man done ttn +msdos done ttn +nt (and subdirs) done ttn +oldXMenu done ttn +src (and subdirs) done ttn +vms done ttn ** Check the Emacs manual. @@ -231,7 +258,7 @@ lispref/numbers.texi "Luc Teirlinck" Chong Yidong lispref/objects.texi "Luc Teirlinck" Chong Yidong lispref/os.texi "Luc Teirlinck" Chong Yidong lispref/positions.texi "Luc Teirlinck" Chong Yidong -lispref/processes.texi Chong Yidong Thien-Thi Nguyen +lispref/processes.texi Chong Yidong ttn lispref/searching.texi "Luc Teirlinck" Chong Yidong lispref/sequences.texi "Luc Teirlinck" Chong Yidong lispref/streams.texi "Luc Teirlinck" Chong Yidong @@ -261,8 +288,8 @@ etc/TUTORIAL.cn etc/TUTORIAL.cs Pavel Janík <Pavel@Janik.cz> etc/TUTORIAL.de Werner LEMBERG <wl@gnu.org> etc/TUTORIAL.es Marcelo Toledo -etc/TUTORIAL.fr Thien-Thi Nguyen -etc/TUTORIAL.it Thien-Thi Nguyen +etc/TUTORIAL.fr ttn +etc/TUTORIAL.it ttn etc/TUTORIAL.ja Kenichi Handa <handa@m17n.org> etc/TUTORIAL.ko etc/TUTORIAL.nl Lute Kamstra diff --git a/admin/notes/years b/admin/notes/years index 453712e4c02..155ccd6f065 100644 --- a/admin/notes/years +++ b/admin/notes/years @@ -1,11 +1,29 @@ +How to Maintain Copyright Years for GNU Emacs - THIS DOCUMENT IS UNDER REVIEW. +"Our lawyer says it is ok if we add, to each file that has been in Emacs + since Emacs 21 came out in 2001, all the subsequent years. We don't + need to check whether *that file* was changed in those years. + It's sufficient that *Emacs* was changed in those years (and it was!). - DO NOT FOLLOW THESE INSTRUCTIONS -- THEY ARE NOT CORRECT. + For those files that have been added since then, we should add + the year it was added to Emacs, and all subsequent years." + --RMS, 2005-07-13 -How to Maintain Copyright Years for GNU Emacs + +For the refcards under etc/, it's ok to simply use the latest year +(typically in a `\def\year{YEAR}' expression) for the rendered copyright +notice, while maintaining the full list of years in the copyright notice +in the comments. + + +------------------------------------------------------------------------------ + + +Following is the policy that we tried to write down one time (mid 2005). +Although it is incorrect, we keep it around to remind us how complicated +things used to be (and may become in the future). Principle: Individual files need to have the year of the release diff --git a/configure b/configure index 04887f10487..f16082beff3 100755 --- a/configure +++ b/configure @@ -310,7 +310,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS GETOPT_H GETOPTOBJS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -16828,6 +16828,490 @@ _ACEOF fi +# Configure getopt. +# getopt.m4 serial 10 + +# The getopt module assume you want GNU getopt, with getopt_long etc, +# rather than vanilla POSIX getopt. This means your your code should +# always include <getopt.h> for the getopt prototypes. + + + + + + + + + + + +# Prerequisites of lib/getopt*. + + + + GETOPT_H= + +for ac_header in getopt.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + GETOPT_H=getopt.h +fi + +done + + if test -z "$GETOPT_H"; then + +for ac_func in getopt_long_only +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + GETOPT_H=getopt.h +fi +done + + fi + + if test -z "$GETOPT_H"; then + echo "$as_me:$LINENO: checking whether optreset is declared" >&5 +echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_optreset+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <getopt.h> + +int +main () +{ +#ifndef optreset + char *p = (char *) optreset; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_optreset=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_optreset=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 +echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6 +if test $ac_cv_have_decl_optreset = yes; then + GETOPT_H=getopt.h +fi + + fi + + if test -z "$GETOPT_H"; then + echo "$as_me:$LINENO: checking for working GNU getopt function" >&5 +echo $ECHO_N "checking for working GNU getopt function... $ECHO_C" >&6 +if test "${gl_cv_func_gnu_getopt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5 +echo $ECHO_N "checking whether getopt_clip is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_getopt_clip+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <getopt.h> + +int +main () +{ +#ifndef getopt_clip + char *p = (char *) getopt_clip; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_getopt_clip=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_getopt_clip=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5 +echo "${ECHO_T}$ac_cv_have_decl_getopt_clip" >&6 +if test $ac_cv_have_decl_getopt_clip = yes; then + gl_cv_func_gnu_getopt=no +else + gl_cv_func_gnu_getopt=yes +fi + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <getopt.h> +int +main () +{ + + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + return getopt (2, myargv, "+a") != '?'; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_gnu_getopt=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_gnu_getopt=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5 +echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6 + if test "$gl_cv_func_gnu_getopt" = "no"; then + GETOPT_H=getopt.h + fi + fi + + + + if test -n "$GETOPT_H"; then + + + GETOPT_H=getopt.h + +cat >>confdefs.h <<\_ACEOF +#define __GETOPT_PREFIX rpl_ +_ACEOF + + + + : + GETOPTOBJS='getopt.o getopt1.o' + +fi + + + + echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6 if test "${ac_cv_func_getpgrp_void+set}" = set; then @@ -22646,6 +23130,8 @@ s,@LIBOBJS@,$LIBOBJS,;t t s,@NEED_SETGID@,$NEED_SETGID,;t t s,@KMEM_GROUP@,$KMEM_GROUP,;t t s,@GETLOADAVG_LIBS@,$GETLOADAVG_LIBS,;t t +s,@GETOPT_H@,$GETOPT_H,;t t +s,@GETOPTOBJS@,$GETOPTOBJS,;t t s,@version@,$version,;t t s,@configuration@,$configuration,;t t s,@canonical@,$canonical,;t t diff --git a/configure.in b/configure.in index f8e97eb7d14..e4fa9db6453 100644 --- a/configure.in +++ b/configure.in @@ -2353,7 +2353,7 @@ if test "${HAVE_CARBON}" = "yes"; then CFLAGS="$CFLAGS -framework Carbon" AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no) if test "$have_cmt" = yes; then - AC_DEFINE(HAVE_CANCELMENUTRACKING, 1, + AC_DEFINE(HAVE_CANCELMENUTRACKING, 1, [Define to 1 if CancelMenuTracking is available (Mac OSX).]) fi CFLAGS="$tmp_CFLAGS" @@ -2434,6 +2434,15 @@ AC_FUNC_GETLOADAVG AC_FUNC_FSEEKO +# Configure getopt. +m4_include([m4/getopt.m4]) +gl_GETOPT_IFELSE([ + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT + GETOPTOBJS='getopt.o getopt1.o' +]) +AC_SUBST(GETOPTOBJS) + AC_FUNC_GETPGRP AC_FUNC_STRFTIME diff --git a/etc/.gitignore b/etc/.gitignore index 38c525889bb..15e45da4361 100644 --- a/etc/.gitignore +++ b/etc/.gitignore @@ -1,4 +1,5 @@ fns-* +icons *.ps *.log *.dvi diff --git a/etc/ChangeLog b/etc/ChangeLog index db3a0d820d5..bf83b688b17 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,52 @@ +2005-08-31 Michael Albinus <michael.albinus@gmx.de> + + * NEWS: Add entry for `make-auto-save-file-name'. + +2005-08-19 Emilio C. Lopes <eclig@gmx.net> + + * emacsclient.1 (DESCRIPTION): Reflect inclusion in the + Emacs distribution. Make role of EDITOR clearer. + (OPTIONS): Document `-s', `-V' and `-h' + as well as their long name counterparts. + (BUGS): Remove. + +2005-08-26 Romain Francoise <romain@orebokech.com> + + * PROBLEMS: Fix capitalization of "Gnus". + +2005-08-20 Chong Yidong <cyd@stupidchicken.com> + + * MORE.STUFF: Update links and URLs. + +2005-08-05 Kenichi Handa <handa@m17n.org> + + * NEWS: Fix the entry describing code-pages. + +2005-07-28 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Add `icons' (for in-place installs). + +2005-07-19 Juri Linkov <juri@jurta.org> + + * grep.txt: New file. + +2005-07-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): + -R comes after i386 in setarch command. + +2005-07-12 Juri Linkov <juri@jurta.org> + + * refcard.tex (Files): Change description of `C-x C-q' from + `checkin/checkout' to `toggle read-only'. + (Getting Help): Replace `C-h c' with `C-h k'. + (Error Recovery): Replace `recover-file' with `recover-session'. + (Info): Replace key binding `C-h C-i' with `C-h S'. Add `t'. + +2005-07-07 Richard M. Stallman <rms@gnu.org> + + * GNU: Update how to help. Improve footnote 7. + 2005-07-07 Lute Kamstra <lute@gnu.org> * tasks.texi: Delete file. The GNU Task List is obsolete and has @@ -2146,7 +2195,7 @@ ;; End: Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/etc/DEBUG b/etc/DEBUG index a29e5fd3e6c..27f563a7405 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -1,5 +1,6 @@ Debugging GNU Emacs -Copyright (c) 1985, 2000, 2001, 2005 Free Software Foundation, Inc. +Copyright (C) 1985, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/DISTRIB b/etc/DISTRIB index bc0ea8cc60d..f5c380bfe37 100644 --- a/etc/DISTRIB +++ b/etc/DISTRIB @@ -3,8 +3,9 @@ For an order form for all Emacs and FSF distributions deliverable from the USA, see http://www.gnu.org/order/order.html. GNU Emacs availability information, October 2000 -Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 2000 - Free Software Foundation, Inc. + +Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, + 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document provided that the @@ -1,4 +1,5 @@ -Copyright (C) 1985, 1993, 2003, 2005 Free Software Foundation, Inc. +Copyright (C) 1985, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document, in any medium, provided that the copyright notice and @@ -22,8 +23,9 @@ The GNU Manifesto Footnotes added in 1993 help clarify these points. For up-to-date information about the available GNU software, - please see the latest issue of the GNU's Bulletin. The list is - much too long to include here. + please see www.gnu.org. For software tasks to work on, see + http://savannah.gnu.org/projects/tasklist. For other ways + to contribute, see http://www.gnu.org/help. What's GNU? Gnu's Not Unix! ============================ @@ -531,13 +533,13 @@ biased; more subtle is the fact that it lumps together various disparate laws which raise very different issues. Nowadays I urge people to reject the term "intellectual property" entirely, lest it lead others to suppose that those laws form one coherent issue. The way to be -clear is to to discuss patents, copyrights, and trademarks separately. +clear is to discuss patents, copyrights, and trademarks separately. See http://www.gnu.org/philosophy/not-ipr.xhtml for more explanation of how this term spreads confusion and bias. - (7) In 1985 I had not yet recognized the importance of distinguishing -between "free software" and "freeware". The term "freeware" means -software you are free to redistribute, but usually you are not free to study -and change the source code, so most of it is not free software. -See http://www.gnu.org/philosophy/words-to-avoid.html for more + (7) Subsequently we have learned to distinguish between "free +software" and "freeware". The term "freeware" means software you are +free to redistribute, but usually you are not free to study and change +the source code, so most of it is not free software. See +http://www.gnu.org/philosophy/words-to-avoid.html for more explanation. diff --git a/etc/GNUS-NEWS b/etc/GNUS-NEWS index 6e36a985973..0c9e0f4ef1f 100644 --- a/etc/GNUS-NEWS +++ b/etc/GNUS-NEWS @@ -1,5 +1,6 @@ GNUS NEWS -- history of user-visible changes. -Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. See the end for copying conditions. Please send Gnus bug reports to bugs@gnus.org. @@ -62,7 +63,7 @@ picons, install the picons database from and point `gnus-picon-databases' to that location. -** If the new option `gnus-treat-body-boundary' is `head', a boundary +** If the new option `gnus-treat-body-boundary' is `head', a boundary line is drawn at the end of the headers. ** Retrieval of charters and control messages @@ -77,7 +78,7 @@ for sending yourself reminders. Setup with (gnus-delay-initialize). ** If `auto-compression-mode' is enabled, attachments are automatically decompressed when activated. -** If the new option `nnml-use-compressed-files' is non-nil, +** If the new option `nnml-use-compressed-files' is non-nil, the nnml back end allows compressed message files. ** Signed article headers (X-PGP-Sig) can be verified with `W p'. @@ -91,24 +92,24 @@ Do you often find yourself replying to news by email by mistake? Then the new option `gnus-confirm-mail-reply-to-news' is just the thing for you. -** If the new option `gnus-summary-display-while-building' is non-nil, +** If the new option `gnus-summary-display-while-building' is non-nil, the summary buffer is shown and updated as it's being built. ** The new `recent' mark "." indicates newly arrived messages (as opposed to old but unread messages). -** The new option `gnus-gcc-mark-as-read' automatically marks +** The new option `gnus-gcc-mark-as-read' automatically marks Gcc articles as read. ** The nndoc back end now supports mailman digests and exim bounces. -** Gnus supports RFC 2369 mailing list headers, and adds a number of +** Gnus supports RFC 2369 mailing list headers, and adds a number of related commands in mailing list groups. ** The Date header can be displayed in a format that can be read aloud in English, see `gnus-treat-date-english'. -** The envelope sender address can be customized when using Sendmail, see +** The envelope sender address can be customized when using Sendmail, see `message-sendmail-envelope-from'. ** diffs are automatically highlighted in groups matching @@ -488,7 +489,7 @@ If you used procmail like in (setq nnmail-procmail-directory "~/mail/incoming/") (setq nnmail-procmail-suffix "\\.in") -this now has changed to +this now has changed to (setq mail-sources '((directory :path "~/mail/incoming/" @@ -527,7 +528,8 @@ ever-changing layouts. ---------------------------------------------------------------------- Copyright information: -Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF index f5da8954c9b..5ff739e2ce9 100644 --- a/etc/MORE.STUFF +++ b/etc/MORE.STUFF @@ -16,7 +16,7 @@ Please submit a bug report if you find that any of the addresses listed here fail. * The `Emacs Lisp List' at - <URL:http://www.anc.ed.ac.uk/%7Estephen/emacs/ell.html> has pointers + <URL:http://www.damtp.cam.ac.uk/user/eglen/emacs/ell.html> has pointers to sources of a large number of packages. * gnu.emacs.sources @@ -47,26 +47,19 @@ You might find bug-fixes or enhancements in these places. * CC mode: <URL:http://cc-mode.sourceforge.net/> - * CPerl: <URL:ftp://ftp.math.ohio-state.edu/pub/users/ilya> + * CPerl: <URL:http://www.cpan.org/modules/by-module/CPAN/ILYAZ/cperl-mode/> * Ediff and Viper: <URL:http://www.cs.sunysb.edu/~kifer/emacs.html> * Eldoc and Rlogin: - <URL:ftp://ftp.splode.com/pub/users/friedman/packages/> + <URL:http://www.splode.com/~friedman/software/emacs-lisp/> - * EShell: <URL:http://www.gci-net.com/users/j/johnw/emacs.html> + * EShell: <URL:http://www.newartisans.com/johnw/emacs.html> * Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz> - * EUDC: <URL:http://lspwww.epfl.ch/%7Efigueire/Software/eudc/> - * Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz> - * Find Func: - <URL:http://www.kurims.kyoto-u.ac.jp/%7Epetersen/emacs/find-func.el> - - * Flyspell: <URL:http://kaolin.unice.fr/%7Eserrano/emacs/flyspell> - * Fortune: <URL:http://www.coling.uni-freiburg.de/%7Eschauer/emacs.html> * Gnus: <URL:http://www.gnus.org/> @@ -78,26 +71,20 @@ You might find bug-fixes or enhancements in these places. * Ispell: <URL:http://www.kdstevens.com/%7Estevens/ispell-page.html> - * Iswitchb: <URL:http://www.anc.ed.ac.uk/%7Estephen/emacs/iswitchb.el> - - * MH-E: <URL:http://mh-e.sourceforge.net/> - * PC Selection: <URL:ftp://ftp.thp.uni-duisburg.de/pub/source/elisp/> * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/> - * PS-print: <URL:ftp://ftp.cpqd.com.br/pub/users/vinicius/> + * PS-print: <URL:http://www.cpqd.com.br/~vinicius/emacs/> - * QuickURL: <URL:http://www.acemake.com/hagbard/archives/quickurl.el> + * QuickURL: <URL:http://www.davep.org/emacs/> - * RefTeX: <URL:http://zon.astro.uva.nl/~dominik/Tools/> + * RefTeX: <URL:http://staff.science.uva.nl/~dominik/Tools/reftex/> * Speedbar, Checkdoc etc: <URL:http://cedet.sourceforge.net/> * SQL: <URL:http://www.geocities.com/TimesSquare/6120/emacs.html> - * Sregex: <URL:http://www.zanshin.com/%7Ebobg/sregex.html> - * Tramp: Remote file access via rsh/ssh <URL:http://savannah.gnu.org/projects/tramp/> @@ -146,7 +133,7 @@ Several are for Debian GNU/Linux in particular. mirrors of the `CTAN' TeX archives. * Dismal: spreadsheet: - <URL:http://acs.ist.psu.edu/dismal/dismal.html> + <URL:http://www.gnu.org/software/dismal/dismal.html> * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/> @@ -166,7 +153,7 @@ Several are for Debian GNU/Linux in particular. * EMacro: <URL:http://emacro.sourceforge.net/> EMacro is a portable configuration file that configures itself. - * Emacs statistical system (ESS): statistical programming within Emacs + * Emacs speaks statistics (ESS): statistical programming within Emacs <URL:http://ess.r-project.org> * Emacspeak -- A Speech Output Subsystem For Emacs: @@ -183,26 +170,18 @@ Several are for Debian GNU/Linux in particular. <URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient> * Gnuserv: - <URL:ftp://ftp.splode.com/pub/users/friedman/packages/fgnuserv-1.0.tar.gz> - Enhanced emacsclient/emacsserver. See also - <URL:http://www.splode.com/users/friedman/software/emacs-lisp/> for - other Friedman Emacs hacks. - - The latest versions of gnuserv are maintained by Martin Schwenke, - and are available from <URL:http://meltin.net/hacks/emacs/>. Also - available from this Web page: eiffel-mode.el. + <URL:http://meltin.net/hacks/emacs/> + Enhanced emacsclient/emacsserver. Also available from this Web + page: eiffel-mode.el. * hm--html-menus: <URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib> HTML-specific editing. Can work with PSGML. - * Hyperbole: `Hyperbole is an open, efficient, programmable - information management and hypertext system.' - From GNU distribution mirrors. - - * ILISP: <URL:http://ilisp.cons.org/> - Provides an interactive environment for manipulating an inferior - process running some form of Lisp. + * Hyperbole: + <URL:http://ftp.gnu.org/pub/gnu/hyperbole/hyperbole-4.01.tar.gz> + Hyperbole is an open, efficient, programmable information + management and hypertext system. * JDEE: <URL:http://jdee.sunsite.dk/> Provides a Java development environment for Emacs. @@ -234,9 +213,6 @@ Several are for Debian GNU/Linux in particular. * Planner Mode: <URL:http://sacha.free.net.ph/notebook/wiki/PlannerMode.php> - * Pointers to MIME packages: - <URL:http://bmrc.berkeley.edu/%7Etrey/emacs/mime.html> - * Preview LaTeX: embed preview LaTeX images in source buffer. <URL:http://preview-latex.sourceforge.net/> @@ -813,6 +813,9 @@ black or white default foreground color. This generic shadow face allows customization of the appearance of shadowed text in one place, so package-specific faces can inherit from it. ++++ +*** `vertical-border' face is used for the vertical divider between windows. + ** Font-Lock changes: +++ @@ -882,8 +885,7 @@ This menu allows you to turn various display features on and off (such as the fringes, the tool bar, the speedbar, and the menu bar itself). You can also move the vertical scroll bar to either side here or turn it off completely. There is also a menu-item to toggle displaying of -current date and time, current line and column number in the -mode-line. +current date and time, current line and column number in the mode-line. --- *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". @@ -921,12 +923,10 @@ the new dialog. ** Mouse changes: +++ -*** New display feature: focus follows the mouse from one Emacs window -to another, even within a frame. If you set the variable -mouse-autoselect-window to non-nil value, moving the mouse to a -different Emacs window will select that window (minibuffer window can -be selected only when it is active). The default is nil, so that this -feature is not enabled. +*** If you set the new variable `mouse-autoselect-window' to a non-nil +value, windows are automatically selected as you move the mouse from +one Emacs window to another, even within a frame. A minibuffer window +can be selected only when it is active. +++ *** On X, when the window manager requires that you click on a frame to @@ -994,7 +994,7 @@ mouse-wheel-inhibit-click-time variables. +++ *** Under X, mouse-wheel-mode is turned on by default. -** Mule changes: +** Multilingual Environment (Mule) changes: --- *** Language environment and various default coding systems are setup @@ -1126,12 +1126,11 @@ in CNS encoding; it accepts both Big 5 and CNS as input; on saving, Big 5 is then converted to CNS. --- -*** Many new coding systems are available by loading the `code-pages' -library. These include complete versions of most of those in -codepage.el, based on Unicode mappings. `codepage-setup' is now -obsolete and is used only in the MS-DOS port of Emacs. windows-1252 -and windows-1251 are preloaded since the former is so common and the -latter is used by GNU locales. +*** Many new coding systems are available in the `code-pages' library. +These include complete versions of most of those in codepage.el, based +on Unicode mappings. `codepage-setup' is now obsolete and is used +only in the MS-DOS port of Emacs. All coding systems defined in +`code-pages' are auto-loaded. --- *** New variable `utf-translate-cjk-unicode-range' controls which @@ -1300,6 +1299,10 @@ compilation processes without affecting the environment that all subprocesses inherit. +++ +*** New user option `compilation-disable-input'. +If this is non-nil, send end-of-file as compilation process input. + ++++ *** New options `next-error-highlight' and `next-error-highlight-no-select' specify the method of highlighting of the corresponding source line in new face `next-error'. @@ -1631,7 +1634,7 @@ before calling it, if used while defining a macro. In addition, when ending or calling a macro with C-x e, the macro can be repeated immediately by typing just the `e'. You can customize -this behavior via the variable kmacro-call-repeat-key and +this behavior via the variables kmacro-call-repeat-key and kmacro-call-repeat-with-arg. Keyboard macros can now be debugged and edited interactively. @@ -1748,10 +1751,32 @@ recognized. --- ** The TCL package tcl-mode.el was replaced by tcl.el. This was actually done in Emacs-21.1, and was not documented. + +** The new package scroll-lock.el provides the Scroll Lock minor mode +for pager-like scrolling. Keys which normally move point by line or +paragraph will scroll the buffer by the respective amount of lines +instead and point will be kept vertically fixed relative to window +boundaries during scrolling. * Changes in Specialized Modes and Packages in Emacs 22.1: --- +** Changes to cmuscheme + +*** Emacs now offers to start Scheme if the user tries to +evaluate a Scheme expression but no Scheme subprocess is running. + +*** If a file `.emacs_NAME' (where NAME is the name of the Scheme interpreter) +exists in the user's home directory or in ~/.emacs.d, its +contents are sent to the Scheme subprocess upon startup. + +*** There are new commands to instruct the Scheme interpreter to trace +procedure calls (`scheme-trace-procedure') and to expand syntactic forms +(`scheme-expand-current-form'). The commands actually sent to the Scheme +subprocess are controlled by the user options `scheme-trace-command', +`scheme-untrace-command' and `scheme-expand-current-form'. + +--- ** Makefile mode has submodes for automake, gmake, makepp and BSD make. The former two couldn't be differentiated before, and the latter two @@ -1813,7 +1838,7 @@ when Emacs visits them. *** A numeric prefix argument of `info' selects an Info buffer with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). ---- ++++ *** isearch in Info uses Info-search and searches through multiple nodes. Before leaving the initial Info node isearch fails once with the error @@ -1824,31 +1849,38 @@ aroung the whole manual to the top/final node. The user option or the default isearch search function that wraps around the current Info node. +--- *** New search commands: `Info-search-case-sensitively' (bound to S), `Info-search-backward', and `Info-search-next' which repeats the last search without prompting for a new search string. ++++ *** New command `Info-history-forward' (bound to r and new toolbar icon) moves forward in history to the node you returned from after using `Info-history-back' (renamed from `Info-last'). +--- *** New command `Info-history' (bound to L) displays a menu of visited nodes. +--- *** New command `Info-toc' (bound to T) creates a node with table of contents from the tree structure of menus of the current Info file. ++++ *** New command `info-apropos' searches the indices of the known Info files on your system for a string, and builds a menu of the possible matches. +--- *** New command `Info-copy-current-node-name' (bound to w) copies the current Info node name into the kill ring. With a zero prefix arg, puts the node name inside the `info' function call. ---- ++++ *** New face `info-xref-visited' distinguishes visited nodes from unvisited and a new option `Info-fontify-visited-nodes' to control this. +--- *** http and ftp links in Info are now operational: they look like cross references and following them calls `browse-url'. @@ -2181,6 +2213,9 @@ line is left untouched. The function `c-toggle-syntactic-indentation' can be used to toggle syntactic indentation. +** In sh-script, a continuation line is only indented if the backslash was +preceded by a SPC or a TAB. + --- ** Perl mode has a new variable `perl-indent-continued-arguments'. @@ -2395,7 +2430,7 @@ GDB. You can interact with GDB through the GUD buffer in the usual way, but there are also further buffers which control the execution and describe the state of your program. It can separate the input/output of your program from that of GDB and watches expressions in the speedbar. It also uses features of -Emacs 21/22 such as the the toolbar, and bitmaps in the fringe to indicate +Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate breakpoints. Use M-x gdb to start GDB-UI. @@ -2750,6 +2785,10 @@ See the documentation of the user option --- *** Rmail now displays 5-digit message ids in its summary buffer. +*** The new commands rmail-end-of-message and rmail-summary end-of-message, +by default bound to `/', go to the end of the current mail message in +Rmail and Rmail summary buffers. + +++ *** Support for `movemail' from GNU mailutils was added to Rmail. @@ -2781,6 +2820,10 @@ version 5.0.2; see MH-E-NEWS for details. ** Calendar changes: +++ +*** You can now use < and >, instead of C-x < and C-x >, to scroll +the calendar left or right. (The old key bindings still work too.) + ++++ *** There is a new calendar package, icalendar.el, that can be used to convert Emacs diary entries to/from the iCalendar format. @@ -3042,6 +3085,21 @@ variable `calculator-radix-grouping-mode'. * Changes in Emacs 22.1 on non-free operating systems +++ +** The HOME directory defaults to Application Data under the user profile. + +If you used a previous version of Emacs without setting the HOME +environment variable and a `.emacs' was saved, then Emacs will continue +using C:/ as the default HOME. But if you are installing Emacs afresh, +the default location will be the "Application Data" (or similar +localized name) subdirectory of your user profile. A typical location +of this directory is "C:\Documents and Settings\USERNAME\Application Data", +where USERNAME is your user name. + +This change means that users can now have their own `.emacs' files on +shared computers, and the default HOME directory is less likely to be +read-only on computers that are administered by someone else. + ++++ ** Passing resources on the command line now works on MS Windows. You can use --xrm to pass resource settings to Emacs, overriding any @@ -3159,6 +3217,10 @@ the command `undefined'. (In earlier Emacs versions, it used ** General Lisp changes: +*** The function `expt' handles negative exponents differently. +The value for `(expt A B)', if both A and B are integers and B is +negative, is now a float. For example: (expt 2 -2) => 0.25. + +++ *** The function `eql' is now available without requiring the CL package. @@ -3581,6 +3643,25 @@ binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not have a buffer-local binding in buffer BUFFER, it returns the default value of VARIABLE instead. +*** The function `frame-or-buffer-changed-p' now lets you maintain +various status records in parallel. + +It take a variable (a symbol) as argument. If the variable is non-nil, +then its value should be a vector installed previously by +`frame-or-buffer-changed-p'. If the frame names, buffer names, buffer +order, or their read-only or modified flags have changed, since the +time the vector's contents were recorded by a previous call to +`frame-or-buffer-changed-p', then the function returns t. Otherwise +it returns nil. + +On the first call to `frame-or-buffer-changed-p', the variable's +value should be nil. `frame-or-buffer-changed-p' stores a suitable +vector into the variable and returns t. + +If the variable is itself nil, then `frame-or-buffer-changed-p' uses, +for compatibility, an internal variable which exists only for this +purpose. + ** Local variables lists: +++ @@ -3827,6 +3908,10 @@ operations. This is useful for autoloaded handlers, to prevent them from being autoloaded when not really necessary. ++++ +*** The function `make-auto-save-file-name' is now handled by file +name handlers. This will be exploited for remote files mainly. + ** Input changes: +++ @@ -3848,7 +3933,8 @@ using the text properties (esp. the face) of the prompt string. *** (while-no-input BODY...) runs BODY, but only so long as no input arrives. If the user types or clicks anything, BODY stops as if a quit had occurred. `while-no-input' returns the value of BODY, if BODY -finishes. It returns nil if BODY was aborted. +finishes. It returns nil if BODY was aborted by a quit, and t if +BODY was aborted by arrival of input. ** Minibuffer changes: @@ -4076,8 +4162,7 @@ emacs tries to read it. *** The new function `call-process-shell-command'. -This executes a shell command command synchronously in a separate -process. +This executes a shell command synchronously in a separate process. *** The new function `process-file' is similar to `call-process', but obeys file handlers. The file handler is chosen based on @@ -4645,6 +4730,13 @@ so that :inherit face lists operate identically to face lists in text `face' properties. --- +*** On terminals, faces with the :inverse-video attribute are displayed +with swapped foreground and background colors even when one of them is +not specified. In previous releases of Emacs, if either foreground +or background color was unspecified, colors were not swapped. This +was inconsistent with the face behavior under X. + +--- *** `set-fontset-font', `fontset-info', `fontset-font' now operate on the default fontset if the argument NAME is nil.. @@ -5012,6 +5104,10 @@ running under X. ** GC changes: +++ +*** New variable `gc-cons-percentage' automatically grows the GC cons threshold +as the heap size increases. + ++++ *** New variables `gc-elapsed' and `gcs-done' provide extra information on garbage collection. @@ -14418,7 +14514,8 @@ select one of those items. ---------------------------------------------------------------------- Copyright information: -Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/PROBLEMS b/etc/PROBLEMS index db8840d3d15..c5ce84ff1b1 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -338,7 +338,7 @@ The solution is to use gawk (GNU awk). *** Emacs fails to understand most Internet host names, even though the names work properly with other programs on the same system. *** Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0. -*** GNUs can't make contact with the specified host for nntp. +*** Gnus can't make contact with the specified host for nntp. This typically happens on Suns and other systems that use shared libraries. The cause is that the site has installed a version of the @@ -2418,11 +2418,11 @@ address space of a process. As the result dumping may fail even if you turn off exec-shield. In this case, use the -R option to the setarch command: - setarch -R i386 ./temacs --batch --load loadup [dump|bootstrap] + setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap] or - setarch -R i386 make bootstrap + setarch i386 -R make bootstrap *** Fatal signal in the command temacs -l loadup inc dump. @@ -3561,8 +3561,8 @@ This problem will not happen if the m-...h file for your type of machine defines NO_UNION_TYPE. -Copyright 1987,88,89,93,94,95,96,97,98,1999,2001,2002,2004 - Free Software Foundation, Inc. +Copyright 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and redistribution of this file with or without modification are permitted without royalty provided this notice is preserved. @@ -93,6 +93,12 @@ to the FSF. * Other features we would like: +** Create a category of errors called `process-error' + for some or all errors associated with using subprocesses. + +** Maybe reinterpret `parse-error' as a category of errors + and put some other errors under it. + ** A function to check for customizable options that have been set but not saved, and ask the user whether to save them. This could go in kill-emacs-query-functions, to remind people @@ -153,6 +159,8 @@ to the FSF. which gives the same information through a menu structure. [Dave Love started on this.] +** Add a cpio mode, more or less like tar mode. + ** Implement a variant of uncompress.el or jka-compr.el that works with GNU Privacy Guard for encryption. [Code exists but isn't assigned. See the Gnus development sources for assigned code concerning GPG @@ -268,6 +276,9 @@ to the FSF. ** Provide portable undumping using mmap (per gerd design). +** Make byte-compile avoid binding an expanded defsubst's args +when the body only calls primitives. + ** Use the XIE X extension, if available, for image display. ** Make monochrome images display using the foreground and background diff --git a/etc/TUTORIAL b/etc/TUTORIAL index 48fa02f93d9..0df9a6f2711 100644 --- a/etc/TUTORIAL +++ b/etc/TUTORIAL @@ -1,5 +1,4 @@ Emacs tutorial. See end for copying conditions. -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. Emacs commands generally involve the CONTROL key (sometimes labeled CTRL or CTL) or the META key (sometimes labeled EDIT or ALT). Rather than @@ -1104,7 +1103,8 @@ starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.bg b/etc/TUTORIAL.bg index 239d3d58c19..8f51458381f 100644 --- a/etc/TUTORIAL.bg +++ b/etc/TUTORIAL.bg @@ -1,5 +1,4 @@ Âúâåäåíèå â Emacs. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. -Copyright (c) 1985,1996,1998,2001,2002,2003,2005 Free Software Foundation. Êîìàíäèòå íà Emacs íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè @@ -1170,7 +1169,8 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.cn b/etc/TUTORIAL.cn index 1b30b6e909a..f35c53be663 100644 --- a/etc/TUTORIAL.cn +++ b/etc/TUTORIAL.cn @@ -1,5 +1,4 @@ Emacs ¿ìËÙÖ¸ÄÏ. -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. Emacs Ö¸Áîͨ³£°üº¬ÓÐ CONTROL ¼ü£¨ÓÐʱºòÒÔ CTRL »ò CTL À´±êʾ£©»òÊÇ META ¼ü£¨ÓÐʱºòÒÔ EDIT »ò ALT À´±êʾ£©¡£ÎªÁ˱ÜÃâÿһ´Î¶¼ÒªÐ´³öÆäÈ«Ãû£¬ @@ -1050,7 +1049,8 @@ issue here>¡¹¡£ Õâ¸ö°æ±¾µÄ¿ìËÙÖ¸ÄÏºÍ GNU Emacs Ò»Ñù¶¼ÊÇ°æȨ»¯µÄ£¬²¢ÇÒÔÊÐíÔÚijЩÌõ¼þÏ ɢ²¼Æ俽±´£º -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Chinese Translation by Chao-Hong Liu (2002, 2003) Permission is granted to anyone to make or distribute verbatim copies diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs index 9a244a5e750..57e77de9a4b 100644 --- a/etc/TUTORIAL.cs +++ b/etc/TUTORIAL.cs @@ -1,5 +1,4 @@ Tutoriál k Emacsu. Podmínky viz na konci. -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. Do èe¹tiny pøelo¾il Milan Zamazal <pdm@zamazal.org>. Máte pøed sebou tutoriál k Emacsu. @@ -1023,7 +1022,8 @@ tutoriálem napsaným Stuartem Cracraftem pro pùvodní Emacs. Tato verze tutoriálu je, podobnì jako GNU Emacs, chránìna copyrightem a je ¹íøena se svolením distribuovat kopie za jistých podmínek: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Ka¾dému je zaruèeno právo vytváøet a distribuovat pøesné kopie tohoto dokumentu tak, jak jej obdr¾el, na jakémkoliv médiu, s tím, ¾e bude diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de index 9c556c83b90..17019ad66dc 100644 --- a/etc/TUTORIAL.de +++ b/etc/TUTORIAL.de @@ -1,5 +1,4 @@ Einführung in Emacs. Siehe Dateiende für Vervielfältigungsbedingungen. -(c) 2002, 2003, 2005 Free Software Foundation, Inc. Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal auch als CTRL, CTL oder STRG beschriftet) sowie die META-Taste (auch @@ -1461,7 +1460,8 @@ geschrieben. Übersetzer ins Deutsche ist Werner Lemberg (wl@gnu.org). Beachten Sie bitte, daß im Zweifelsfalle das englische Original dieser Urheberrechtsnotiz gültig ist (zu finden in der Datei TUTORIAL). -Copyright (c) 1985, 1996, 1997 Free Software Foundation +Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004, + 2005 Free Software Foundation Hiermit wird für jedermann die Erlaubnis erteilt, wörtliche, unveränderte Kopien dieses Dokumentes für jegliches Medium zu diff --git a/etc/TUTORIAL.es b/etc/TUTORIAL.es index ed55cc5ca41..cb5e92a2df3 100644 --- a/etc/TUTORIAL.es +++ b/etc/TUTORIAL.es @@ -1,5 +1,4 @@ Tutorial de Emacs. Vea al final las condiciones de copiado. -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. Generalmente los comandos de Emacs involucran la tecla CONTROL (algunas veces llamada CTRL O CTL) o la tecla meta (algunas veces @@ -1188,7 +1187,8 @@ Por favor, en caso de duda, sólo es válido el original en inglés de la siguiente nota de derechos de reproducción (que puede encontrar en el archivo TUTORIAL). -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Se permite a cualquiera hacer o distribuir copias literales de este documento como se recibe, en cualquier medio, siempre que la nota diff --git a/etc/TUTORIAL.fr b/etc/TUTORIAL.fr index e3e940abd4e..30a6f05fe23 100644 --- a/etc/TUTORIAL.fr +++ b/etc/TUTORIAL.fr @@ -1,5 +1,4 @@ Didacticiel d'Emacs. Voir la fin de ce document pour les conditions. -Copyright (c) 1985, 2001, 2002 Free Software Foundation, Inc. Les commandes Emacs utilisent généralement la touche CONTROLE (souvent désignée par CTRL ou CTL) ou la touche META (souvent désignée par EDIT @@ -1171,7 +1170,8 @@ Cette version du didacticiel, comme GNU Emacs, est placée sous copyright, et vous pouvez en distribuer des copies sous certaines conditions : -Copyright (c) 1985, 1996, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Chacun peut créer ou distribuer des copies de ce document tel qu'il l'a reçu, sur n'importe quel support, pourvu que la note de diff --git a/etc/TUTORIAL.it b/etc/TUTORIAL.it index 55608250c2b..d310a16eae4 100644 --- a/etc/TUTORIAL.it +++ b/etc/TUTORIAL.it @@ -1,5 +1,4 @@ Esercitazione di Emacs. Condizioni d'uso alla fine del file. -Copyright (c) 2003 Free Software Foundation, Inc. I comandi di Emacs comportano generalmente l'uso del tasto CONTROL (a volte indicato con CTRL o CTL) o del tasto META (a volte indicato con EDIT @@ -1094,7 +1093,7 @@ distribuito con il permesso di farne copie a determinate condizioni: indicativo, restando comunque inteso il fatto che è quella originale a fare fede. - Copyright (c) 2003 Free Software Foundation +Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. È permesso a chiunque copiare e distribuire attraverso ogni mezzo copie fedeli di questo documento così come viene ricevuto, a condizione che diff --git a/etc/TUTORIAL.ja b/etc/TUTORIAL.ja index ccb454bf3f6..dec03f35d20 100644 --- a/etc/TUTORIAL.ja +++ b/etc/TUTORIAL.ja @@ -1,5 +1,4 @@ Emacs $BF~Lg%,%$%I(B. $BK\%U%!%$%k$NCx:n8"$K$D$$$F$O:G8e$r8fMw2<$5$$!#(B -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META @@ -1048,7 +1047,8 @@ starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.ko b/etc/TUTORIAL.ko index 8e94db3c658..c8875dc31be 100644 --- a/etc/TUTORIAL.ko +++ b/etc/TUTORIAL.ko @@ -1,5 +1,5 @@ $(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B. -$(C@z@[1G(B (c) 1985, 2001 Free Software Foundation, Inc; $(C3!?!4B(B $(C:9;g(B $(CA60G@L(B +$(C3!?!4B(B $(C:9;g(B $(CA60G@L(B $(C@V=@4O4Y(B. $(CAv1](B $(C@P0m(B $(C@V4B(B $(C@L(B $(C1[@:(B $(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B. $(C@L8F=:(B $(C8m7I5i@:(B $(C4k03(B $(CA&>n<h(B (CTRL$(C@L3*(B CTL$(C@L6s0m55(B $(CG%=C(B) $(CH$@:(B @@ -989,7 +989,8 @@ C-x C-s$(C?M(B (META$(C<h3*(B EDIT$(C<h(B $(CH$@:(B $(C13C<<h0!(B $(C GNU $(C@L8F=:?M(B $(C00@L(B $(C@L(B $(CAvD'<-(B $(CFG@:(B $(C@z@[1G@L(B $(C@V@88g(B $(CF/A$GQ(B $(CA60G@;(B $(C88A7GR(B $(C6'?!(B $(C:9;g:;@;(B $(C9hFwGR(B $(C<v(B $(C@V4B(B $(CGc0!8&(B $(C0.0m(B $(C3*?B(B $(C0M@L4Y(B: -$(C@z@[1G(B (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. $(C@L(B $(C9.<-4B(B $(C@L(B $(C@z@[1G(B $(C0x0m?M(B $(CGc?k(B $(C0x0m0!(B $(C1W4k7N(B $(C@/Av5G0m(B, $(C9hFw@Z0!(B $(C<vCk@Z?!0T(B $(C@L(B $(C0x0m?!(B $(C5{6s(B $(CGc?k5G4B(B $(C0MC373(B $(C6G(B $(C@g:P9hGO4B(B $(C0M@;(B diff --git a/etc/TUTORIAL.nl b/etc/TUTORIAL.nl index 6b6a20a1bba..6438869369f 100644 --- a/etc/TUTORIAL.nl +++ b/etc/TUTORIAL.nl @@ -1,5 +1,4 @@ Emacs-inleiding. De kopieervoorwaarden staan onderaan. -Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation De meeste Emacs-commando's gebruiken de CONTROL-toets (soms CTRL of CTL genaamd) en/of de META-toets (soms genaamd EDIT of ALT). In plaats van @@ -1205,7 +1204,8 @@ het Engelse origineel.) Deze versie van de inleiding valt onder copyright, net als GNU Emacs. Je mag deze inleiding verspreiden onder bepaalde voorwaarden: -Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1997, 2003, 2004, + 2005 Free Software Foundation, Inc. Iedereen mag letterlijke kopieën van dit document, zowel ontvangen als verspreiden, op elk medium, vooropgesteld dat de @@ -1229,7 +1229,8 @@ software te gebruiken, te schrijven en te delen! This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that diff --git a/etc/TUTORIAL.pl b/etc/TUTORIAL.pl index 076a33bbd84..cff0b9dd40c 100644 --- a/etc/TUTORIAL.pl +++ b/etc/TUTORIAL.pl @@ -1,5 +1,4 @@ Krótki samouczek Emacsa. Warunki kopiowania znajduj± sie na koñcu pliku. -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT @@ -1218,7 +1217,8 @@ z pomoc± Ryszarda Kubiaka i Janusza S. Bienia <jsbien@mail.uw.edu.pl>. Ta wersja samouczka, podobnie jak GNU Emacs, jest chroniona prawem autorskim, ale wolno j± kopiowaæ pod nastêpuj±cymi warunkami: -Copyright (c) 1985, 1994, 2001 Free Software Foundation +Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Zezwala siê na wykonywanie lub rozpowszechnianie wiernych kopii tego dokumentu w otrzymanej formie, na dowolnym diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR index 56f431ecdd7..bd7cf84d6c1 100644 --- a/etc/TUTORIAL.pt_BR +++ b/etc/TUTORIAL.pt_BR @@ -1,5 +1,4 @@ Tutorial do Emacs. Veja no fim as condições para cópia. -Copyright (c) 2004, 2005 Free Software Foundation. Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou @@ -1064,7 +1063,7 @@ Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo <marcelo@gnu.org> e como o GNU Emacs, tem um copyright, e vem com uma permissão de distribuição de cópias nas seguintes condições: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 2004, 2005 Free Software Foundation, Inc. Permissão é garantida a qualquer um para fazer ou distribuir copias integrais deste documento como recebido, em qualquer meio, deixando diff --git a/etc/TUTORIAL.ro b/etc/TUTORIAL.ro index 71b2466eca9..85e8e30892f 100644 --- a/etc/TUTORIAL.ro +++ b/etc/TUTORIAL.ro @@ -1,5 +1,4 @@ Tutorialului de Emacs. A se citi sfârºitul pentru condiþii. -Copyright (c) 1998 Free Software Foundation Traducere din englezã de Tudor Hulubei <tudor@gnu.org>. Mulþumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi ºi sugestii. @@ -1092,7 +1091,7 @@ continuare noþita de copyright originalã în limba englezã. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.ru b/etc/TUTORIAL.ru index 1be3a1e28a8..cd84911db2d 100644 --- a/etc/TUTORIAL.ru +++ b/etc/TUTORIAL.ru @@ -1,5 +1,4 @@ õÞÅÂÎÉË Emacs. õÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÐÒÉ×ÅÄÅÎÙ × ËÏÎÃÅ ÆÁÊÌÁ -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation, Inc. äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (key -- ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ ËÌÁ×ÉÁÔÕÒÙ É/ÉÌÉ ËÎÏÐÏË ÍÙÛÉ), ×ËÌÀÞÁÀÝÉÊ × ÓÅÂÑ ËÌÁ×ÉÛÕ CONTROL (ÉÎÏÇÄÁ @@ -669,7 +668,7 @@ meta- ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å C-x òÁÓÛÉÒÅÎÉÅ Ó ÐÏÍÏÝØÀ ××ÏÄÁ ÐÒÅÆÉËÓÁ. úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ. M-x òÁÓÛÉÒÅÎÉÅ ÎÁÂÏÒÁ ËÏÍÁÎÄ Ó ÐÏÍÏÝØÀ ÉÈ ÎÁÉÍÅÎÏ×ÁÎÉÑ. úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ - ËÏÍÁÎÄÙ. + ËÏÍÁÎÄÙ. üÔÏ ÐÏÌÅÚÎÙÅ ËÏÍÁÎÄÙ, ÎÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÍÅÎÅÅ ÞÁÓÔÏ, ÞÅÍ ÔÅ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÙ ÉÚÕÞÉÌÉ. ÷Ù ÕÖÅ ×ÉÄÅÌÉ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ: ËÏÍÁÎÄÙ ÒÁÂÏÔÙ Ó ÆÁÊÌÁÍÉ @@ -1132,7 +1131,8 @@ Dired ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÏÔÏÂÒÁÖÁÔØ ÓÐÉÓÏË ÆÁÊÌÏ× × ËÁÔÁÌÏÇÅ (Á ÔÁËÖÅ (copyrighted), É ÐÒÉÈÏÄÉÔ Ó ÏÇÒÁÎÉÞÅÎÉÑÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÏÐÉÊ ÓÏ ÓÌÅÄÕÀÝÉÍÉ ÓÏÇÌÁÛÅÎÉÑÍÉ: -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the @@ -1151,7 +1151,7 @@ Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation ÏÂÅÓÐÅÞÅÎÉÑ ("×ÌÁÄÅÎÉÅ"), ÉÓÐÏÌØÚÕÑ, ÓÏÚÄÁ×ÁÑ É ÒÁÓÐÒÏÓÔÒÁÎÑÑ Ó×ÏÂÏÄÎÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ! -// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÖÄÕ ÐÏ ÁÄÒÅÓÕ alexott@gmail.com. +// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÖÄÕ ÐÏ ÁÄÒÅÓÕ alexott@gmail.com. // Alex Ott. ;;; Local Variables: diff --git a/etc/TUTORIAL.sk b/etc/TUTORIAL.sk index 67e20f1497c..26e3f834748 100644 --- a/etc/TUTORIAL.sk +++ b/etc/TUTORIAL.sk @@ -1,5 +1,4 @@ Tútorial k Emacsu. Podmienky pozri na konci. -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation. Do èe¹tiny prelo¾il Milan Zamazal <pdm@zamazal.org>, do slovenèiny Miroslav Va¹ko <zemiak@zoznam.sk>. @@ -1082,7 +1081,8 @@ tútorialom napísaným Stuartom Cracraftom pre pôvodný Emacs. Táto verzia tútorialu je, podobne ako GNU Emacs, chránená copyrightom a je ¹írená s povolením distribuova» kópie za istých podmienok: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Ka¾dému je zaruèené právo vytvára» a distribuova» presné kópie tohto dokumentu tak, ako ho dostal, na akomkoµvek médiu, s tým, ¾e bude diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl index 263019643db..37ebb2fbf11 100644 --- a/etc/TUTORIAL.sl +++ b/etc/TUTORIAL.sl @@ -1,5 +1,4 @@ Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu. -Copyright (c) 1985, 1996, 1997, 2001, 2002 Free Software Foundation, Inc. Ukazi v Emacsu v splo¹nem vkljuèujejo tipki CONTROL (vèasih oznaèeni CTRL ali CTL) in META (vèasih oznaèena EDIT ali ALT). Namesto, da bi ju @@ -1115,7 +1114,8 @@ Emacs. V sloven¹èino ga je prevedel Primo¾ Peterlin. To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo razmno¾evanje in raz¹irjanje je dovoljeno pod naslednjimi pogoji: -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Dovoljeno je izdelovati in raz¹irjati neokrnjene kopije tega spisa v kakr¹nikoli obliki pod pogojem, da je ohranjena navedba o diff --git a/etc/TUTORIAL.sv b/etc/TUTORIAL.sv index e4a86cabada..65dff742ec2 100644 --- a/etc/TUTORIAL.sv +++ b/etc/TUTORIAL.sv @@ -1,6 +1,4 @@ -Emacs användarhandledning. I slutet finns kopieringsvillkoren. -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software -Foundation, Inc. +Emacs användarhandledning. I slutet finns kopieringsvillkoren. Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt @@ -310,9 +308,9 @@ texten. Tecken som du kan se, så som A, 7, *, etc. tolkas som text och sätts in direkt. Skriv <Return> (retur-tangenten) för att sätta in en radbrytning. -Du kan radera det sista tecknet du skrev genom att trycka <Delback>. +Du kan radera det sista tecknet du skrev genom att trycka <Delback>. <Delback> är en tangent på tangentbordet -- samma som du normalt -använder utanför Emacs för att ta bort det senaste tecknet du skrivit. +använder utanför Emacs för att ta bort det senaste tecknet du skrivit. Det är vanligen en stor tangent några rader ovanför retur-tangenten, och den är vanligtvis märkt "Delete, "Del" eller "Backspace". @@ -325,7 +323,7 @@ markörspositionen. >> Gör detta nu: Skriv in några tecken och ta bort dem genom att använda <Delback>. Var inte rädd för att skriva i den här filen, - du kommer inte att kunna förändra originalet till vägledningen. + du kommer inte att kunna förändra originalet till vägledningen. Detta är bara en lokal kopia. När en rad blir för lång för att rymmas på en skärmbredd så fortsätter @@ -408,7 +406,7 @@ raderar så många rader OCH innehållet i dem. Detta är alltså inte bara en repetition av kommandot. C-u 2 C-k raderar två rader samt de tomma raderna, medan C-k två gånger inte kommer att göra det. -Att sätta in borttagen text kallas att "återhämta" den (yanking). +Att sätta in borttagen text kallas att "återhämta" den (yanking). (Tänk på det som att du rycker, eller drar, tillbaka någon text som tagits bort.) Du kan antingen hämta tillbaka borttagen text till samma plats som där den blev borttagen, eller så kan du sätta in den på en @@ -593,7 +591,7 @@ Emacs-fönster så tillhör den alltid en buffert. >> Skriv C-x 1 för att bli kvitt buffertlistan. -När du har flera buffertar så är bara en av dem "gällande" åt gången. +När du har flera buffertar så är bara en av dem "gällande" åt gången. Det är den buffert du redigerar. Om du vill redigera en annan buffert så måste du byta till den. Om du vill byta till en buffert som motsvarar en fil kan du göra det genom att besöka den igen med C-x @@ -615,7 +613,7 @@ skapades med C-x C-b. Bufferten "*Messages*" motsvarar inte heller någon fil. Den innehåller de meddelanden som visas på den nedersta raden i Emacs sessionen. ->> Skriv C-x b *Messages* <Return> för att se meddelandebufferten. +>> Skriv C-x b *Messages* <Return> för att se meddelandebufferten. Skriv sedan C-x b TUTORIAL.sv <Return> för att återgå till den här handledningen. @@ -979,7 +977,7 @@ Ibland kan du hamna i något som kallas "rekursiv redigering" huvudläget i lägesraden. Till exempel kan det stå [(Fundamental)] istället för (Fundamental). -För att komma ur rekursiv redigering trycker du <ESC> <ESC> <ESC>. +För att komma ur rekursiv redigering trycker du <ESC> <ESC> <ESC>. Detta är ett generellt brytkommando. Du kan också använda det för att bli kvitt extra fönster och för att komma ut ur minibufferten. @@ -1099,7 +1097,7 @@ ett mail och klaga! ---------------- Du kan lära dig mer om Emacs genom att läsa dess manual, antingen i -bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r). +bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r). Två finesser som du kan komma att gilla speciellt är komplettering (completion), som spar tangenttryckningar, och dired, som förenklar filhantering. @@ -1128,7 +1126,8 @@ Lidell översatte den till Svenska. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.th b/etc/TUTORIAL.th index 86c03d31f3b..5db33b3d470 100644 --- a/etc/TUTORIAL.th +++ b/etc/TUTORIAL.th @@ -970,7 +970,8 @@ starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (c) 1985, 1996 Free Software Foundation +Copyright (C) 1985, 1996, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/etc/TUTORIAL.zh b/etc/TUTORIAL.zh index 8411bf878f5..1a1020a425b 100644 --- a/etc/TUTORIAL.zh +++ b/etc/TUTORIAL.zh @@ -1,7 +1,6 @@ Emacs §Ö³t«ü«n¡]. -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. -Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®ÉÔ¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O +Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®ÉÔ¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O META Áä¡]¦³®ÉÔ¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£n¼g¥X¨ä¥þ¦W¡A §Ú̱N·|¨Ï¥Î¤UzªºÁY¼g¡G @@ -15,7 +14,7 @@ META Áä¡]¦³®ÉÔ¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£n¼g¥X¨ä¥þ¦W¡A «n³Æ§Ñ¿ý¡GnÂ÷¶} Emacs §@·~¶¥¬q¡] session ¡^¡AÁä¤J C-x C-c ¡]¨âÓ¦r ¤¸¡^¡C¦ì¦b¥ª°¼Ãä¬Éªº¡u>>¡v¦r¤¸¬OÅý±z¥i¥H¸ÕµÛ¨Ï¥Îªº«ü¥Oªº´£¥Ü¡CÁ|¨Ò¨Ó»¡¡G <<Blank lines inserted around following line by help-with-tutorial>> -[Middle of page left blank for didactic purposes. Text continues below] +[Middle of page left blank for didactic purposes. Text continues below] >> ²{¦bÁä¤J C-v ¡] View next screen ¡^¥H²¾¨ì¤Uӿùõ¡C ¡]¸Õ¸Õ¬Ý¡AÁä¤J¦r¤¸ v ®É¡A«ö¦í CONTROL Áä¡^ ±q²{¦b¶}©l¡A±zÀ³¸Ó¦b¨C¦¸¾\Ū§¹¥Ø«eªº¿Ã¹õ®É°µ¤@¦¸³oӰʧ@¡C @@ -24,7 +23,7 @@ META Áä¡]¦³®ÉÔ¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£n¼g¥X¨ä¥þ¦W¡A ´£¨Ñ¤@¨Ç³sÄò©Ê¡AÅý±z¥i¥H±µÄò¦a¾\Ū¤å¦r¡C ±z»Ýnª¾¹Dªº²Ä¤@¥ó¨Æ¬O¦p¦ó¦b¤å¦r¤¤²¾°Ê¡C±z¤w¸gª¾¹D¤F¥i¥H C-v ¨Ó¦V«e²¾ -°Ê¤@ӿùõ¡Cn¦V«á²¾°Ê¤@ӿùõ¡A«hÁä¤J M-v ¡]«ö¦í META Áä¡AµM«áÁä¤J v +°Ê¤@ӿùõ¡Cn¦V«á²¾°Ê¤@ӿùõ¡A«hÁä¤J M-v ¡]«ö¦í META Áä¡AµM«áÁä¤J v ¡A©Î¬O¦pªG±z¨S¦³ META ¡B EDIT ©Î ALT Áä®ÉÁä¤J <ESC>v ¡^¡C >> ¸ÕµÛÁä¤J M-v µM«á C-v ¡A³sÄòÓ´X¦¸¡C @@ -74,7 +73,7 @@ META Áä¡]¦³®ÉÔ¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£n¼g¥X¨ä¥þ¦W¡A >> ¥H C-n ©Î C-p ±N´å¼Ð²¾¨ì¹Ï§Îªº¤¤¥¡¡C Áä¤J C-l ·|¬Ý¨ì¾ãӹϧÎÅã¥Ü¦b¿Ã¹õªº¤¤¥¡¡C -±z·|µo²{¥Î¦r¥À©Ò¥Nªíªº·N¸q¨Ó°O¾Ð¥¦Ì«Ü®e©ö¡GP ªí¥Ü previous ¡B N ªí¥Ü +±z·|µo²{¥Î¦r¥À©Ò¥Nªíªº·N¸q¨Ó°O¾Ð¥¦Ì«Ü®e©ö¡GP ªí¥Ü previous ¡B N ªí¥Ü next ¡B B ªí¥Ü backward ¡B¦Ó F «hªí¥Ü forward ¡C±z±N¡uÁ`¬O¡v¥Î¨ì³o¨Ç´å ¼Ð²¾°Ê«ü¥O¡C @@ -172,9 +171,9 @@ META ¦r¤¸¬O¥Î¨Ó§@¬°»P¡u¥H»y¨¥©w¸q¥Xªº³æ¦ì¡]¦r¡B¥y¤l¡B¬q¸¨¡^¡v¦³Ãöªº¾Þ µM«á¦A«½Æ¦a¨Ï¥Î M-v ¦^¨ì³o¸Ì¡C ¦pªG±zªº²×ºÝ¾÷¦³¤è¦VÁ䪺¸Ü¡A±z¤]¥i¥H¥Î¤è¦VÁä²¾°Ê´å¼Ð¡C§Ú̦³¤TÓ²z¥Ñ«Ø -ij±z¾Ç²ß C-b ¡B C-f ¡B C-n ¡B ©M C-p ¡G(1) ¥ô¦óªº²×ºÝ¾÷³£¯à¨Ï¥Î¡C(2) +ij±z¾Ç²ß C-b ¡B C-f ¡B C-n ¡B ©M C-p ¡G(1) ¥ô¦óªº²×ºÝ¾÷³£¯à¨Ï¥Î¡C(2) ¤@¥¹±z¨Ï¥Î Emacs ¬Û·í¼ô½m¤F¡A±z·|µo²{Áä¤J³o¨Ç CONTROL ¦r¤¸¡A¤ñ°_¨Ï¥Î¤è -¦VÁä§Ö¦h¤F¡]¦]¬°±z¤£»Ýn±N¤â²¾¶}¥´¦r°Ï¡^¡C(3) ¤@¥¹±z¨Ï¥Î³o¨Ç CONTROL +¦VÁä§Ö¦h¤F¡]¦]¬°±z¤£»Ýn±N¤â²¾¶}¥´¦r°Ï¡^¡C(3) ¤@¥¹±z¨Ï¥Î³o¨Ç CONTROL ¦r¤¸«ü¥O¦¨¬°²ßºD¡A±z¤]¥i¥H«Ü®e©ö¦a¾Ç·|¨ä¥L¶i¶¥ªº´å¼Ð°Ê§@«ü¥O¡C ¤j³¡¥÷ªº Emacs «ü¥O±µ¨ü¼Æ¦r°Ñ¼Æ¡F¹ï¤j³¡¥÷ªº«ü¥O¦Ó¨¥¡A¥¦ªº§@¥Î¬O«ü©w« @@ -194,7 +193,7 @@ META ¦r¤¸¬O¥Î¨Ó§@¬°»P¡u¥H»y¨¥©w¸q¥Xªº³æ¦ì¡]¦r¡B¥y¤l¡B¬q¸¨¡^¡v¦³Ãöªº¾Þ ¥X²{¡A¦Ó¤£ºÞ¨äȬ°¦ó¡A¥¦ÌÅý³o«ü¥O°µ¨Ç¤£¤@¼Ëªº¨Æ¡C C-v ©M M-v «h¬O¥t¤@Ãþªº¨Ò¥~¡C·íµ¹©w¤@ӰѼƮɡA¥¦Ì±²°Ê¡u©Ò«ü©wªº¼Æ¶q -ªº¦æ¡]¥H¦æ¬°³æ¦ì¡^¡v¡A¦Ó¤£¬O¥H¡u¿Ã¹õ¡v¬°³æ¦ì±²°Ê¡CÁ|¨Ò¨Ó»¡¡AC-u 8 C-v +ªº¦æ¡]¥H¦æ¬°³æ¦ì¡^¡v¡A¦Ó¤£¬O¥H¡u¿Ã¹õ¡v¬°³æ¦ì±²°Ê¡CÁ|¨Ò¨Ó»¡¡AC-u 8 C-v ±NÅã¥Ü¿Ã¹õ±²°Ê 8 ¦æ¡C >> ²{¦b¸ÕµÛÁä¤J C-u 8 C-v¡C @@ -261,25 +260,25 @@ Emacs ¥i¥H¦³¼ÆÓµ¡®æ¡A¨C¤@ÓÅã¥Ü¥¦¦Û¤vªº¤å¦r¡C§Ú̦bµy«á·|¸ÑÄÀ¦p¦ó¨Ï¥Î >> Áä¤J C-x 1 ¥H¨Ï¤å¥ó¦Cªíµ¡®æ®ø¥¢¡C -³oÓ«ü¥O¨Ã¤£¹³±z¥ý«e©Ò¾Ç¹Lªº«ü¥O¨º¯ë¡A¥¦¥]¬A¤F¨âÓ¦r¤¸¡C¥¦¬O¥H¦r¤¸ +³oÓ«ü¥O¨Ã¤£¹³±z¥ý«e©Ò¾Ç¹Lªº«ü¥O¨º¯ë¡A¥¦¥]¬A¤F¨âÓ¦r¤¸¡C¥¦¬O¥H¦r¤¸ CONTROL-x §@¬°¶}©l¡C¦³¤@¾ãÓ¨t¦Cªº«ü¥O¬O¥H CONTROL-x §@¬°¶}©l¡F¥¦Ì¤§ -¤¤¦³³\¦h¬O»P¡uµ¡®æ¡BÀɮסB¼È¦s°Ï¥H¤Î¬ÛÃö¨Æª«¡v¦³Ãöªº¡C³o¨Ç«ü¥O¦³ 2 ¡B +¤¤¦³³\¦h¬O»P¡uµ¡®æ¡BÀɮסB¼È¦s°Ï¥H¤Î¬ÛÃö¨Æª«¡v¦³Ãöªº¡C³o¨Ç«ü¥O¦³ 2 ¡B 3 ©Î 4 Ó¦r¤¸ªø¡C * ´¡¤J»P§R°£¡] INSERTING AND DELETING ¡^ ---------------------------------------- -¦pªG±z·Qn´¡¤J¤å¦r¡A§â¥¦Áä¤J´N¬O¤F¡C±z¥i¥H¬Ý¨ìªº¦r¤¸¡A¹³¬O A ¡B 7 ¡B * -µ¥¡A³Q Emacs µø¬°¤å¦r¨Ã¥B¥i¥Hª½±µ´¡¤J¡CÁä¤J <Return> +¦pªG±z·Qn´¡¤J¤å¦r¡A§â¥¦Áä¤J´N¬O¤F¡C±z¥i¥H¬Ý¨ìªº¦r¤¸¡A¹³¬O A ¡B 7 ¡B * +µ¥¡A³Q Emacs µø¬°¤å¦r¨Ã¥B¥i¥Hª½±µ´¡¤J¡CÁä¤J <Return> ¡] carriage-return Áä¡^¥H´¡¤J¤@Ó Newline ¦r¤¸¡C -±z¥i¥HÁä¤J <Delback> ¥H§R°£±z³Ì«áÁä¤Jªº¦r¤¸¡C<Delback> ¬O¤@ÓªºÁä½LÁä +±z¥i¥HÁä¤J <Delback> ¥H§R°£±z³Ì«áÁä¤Jªº¦r¤¸¡C<Delback> ¬O¤@ÓªºÁä½LÁä -- ´N¬O±z³q±`¦b Emacs ¥~¡A¨Ï¥Î¨Ó¡u§R°£±z³Ì«áÁä¤J¦r¤¸¡vªº¦P¤@Ó¡C¤@¯ë¨Ó »¡¬OÓ¦b <Return> ¤W¤è¼Æ¦æªº¤jÁä¡A³q±`¼Ð¥Ü¬°¡yDelete¡z¡B¡yDel¡z©Î ¡yBackspace¡z¡C -¦pªG¦b¨º¸Ì¦³Ó¼Ð¥Ü¬°¡yBackspace¡zªº¤jÁä¡A¨º»ò¨º¤@Ó´N¬O±z¨Ï¥Î¨Ó§@¬° +¦pªG¦b¨º¸Ì¦³Ó¼Ð¥Ü¬°¡yBackspace¡zªº¤jÁä¡A¨º»ò¨º¤@Ó´N¬O±z¨Ï¥Î¨Ó§@¬° <Delback> ªºÁä¤F¡C¬YÓ¦a¤è¥i¯à¤]·|¦³¥t¤@ӼХܬ°¡yDelete¡zªºÁä¡A¦ý¨ºÓ ¨Ã¤£¬O <Delback> ¡C @@ -325,13 +324,13 @@ CONTROL-x §@¬°¶}©l¡C¦³¤@¾ãÓ¨t¦Cªº«ü¥O¬O¥H CONTROL-x §@¬°¶}©l¡F¥¦Ì¤§ C-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¦æ§À¡v¶¡ªº¦r¤¸ M-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¥y§À¡v¶¡ªº¦r¤¸ -ª`·N¡u<Delback> ©M C-d¡vÁÙ¦³¡uM-<Delback> ©M M-d¡v¬O¥¦æ¦a¦Û C-f ©M +ª`·N¡u<Delback> ©M C-d¡vÁÙ¦³¡uM-<Delback> ©M M-d¡v¬O¥¦æ¦a¦Û C-f ©M M-f ÂX¥R¥X¨Óªº¡]¶â¡A<Delback> ¨Ã¤£¬O±±¨î¦r¤¸¡A¦ý¬O¨S¤°»ò¦n¾á¤ßªº¡^¡C C-k ©M M-k ¦b¬YºØµ{«×¤W»P C-e ©M M-e ¤@¼Ë¡A¦pªG§â¡u¤@¦æ¡v©M¡u¤@¥y¡v§@ ¬°Ãþ¤ñªº¸Ü¡C ±z¤]¥i¥H¥u¥H¤@ºØ¤èªk¨Ó§R°£½w½Ä°Ï¤ºªº¥ô¦ó³¡¥÷¡A¥ý²¾°Ê¨ì±z·Qn§R°£ªº³¡¥÷ -ªº¤@ºÝ¡AµM«áÁä¤J C-@ ©Î C-SPC ¡]¥ô¤@Ó§Y¥i¡^¡C¡] SPC «üªº¬O Space Bar +ªº¤@ºÝ¡AµM«áÁä¤J C-@ ©Î C-SPC ¡]¥ô¤@Ó§Y¥i¡^¡C¡] SPC «üªº¬O Space Bar ¡^¦A²¾¨ì¨º³¡¥÷ªº¥t¤@ºÝ¡A±µµÛÁä¤J C-w ¡C³o¼Ë´N·|§â¤¶©ó³o¨âÓ¦ì¸m¶¡ªº©Ò ¦³¤å¦r§R°£¡C @@ -368,7 +367,7 @@ C-k ©M M-k ¦b¬YºØµ{«×¤W»P C-e ©M M-e ¤@¼Ë¡A¦pªG§â¡u¤@¦æ¡v©M¡u¤@¥y¡v§@ >> ¸Õ¸Õ¬Ý¡FÁä¤J C-y ±N¤å¦r©Ô¦^¡C -¦pªG±z³sÄò¦a°µ¤F¼Æ¦¸ C-k¡A©Ò¦³³Q±þ±¼ªº¤å¦r³£·|³QÀx¦s¦b¤@°_¡A¦]¦¹°µ¤@¦¸ +¦pªG±z³sÄò¦a°µ¤F¼Æ¦¸ C-k¡A©Ò¦³³Q±þ±¼ªº¤å¦r³£·|³QÀx¦s¦b¤@°_¡A¦]¦¹°µ¤@¦¸ C-y ´N·|§â©Ò¦³³o¨Ç¦æ³£©Ô¦^¨Ó¡C >> ²{¦b°µ¤@¤U¡AÁä¤J C-k ¼Æ¦¸¡C @@ -401,7 +400,7 @@ C-y ·|§â³Ìªñ±þ±¼ªº©Ô¦^¨Ó¡A¦ý¬O¥ý«eªº¤å¦r¨Ã¨S¦³®ø¥¢¡A±z¥i¥H¥Î M-y ¨Ó¦^ ¦pªG±z¹ï¤å¦r°µ¤F¤@¨Ç§ïÅÜ¡A«á¨Óı±o¥¦¬OÓ¿ù»~¡A±z¥i¥H Undo «ü¥O¨ú®ø³o¤@ Ó§ïÅÜ¡AC-x u¡C -³q±` C-x u ·|§â¤@Ó«ü¥O©Ò³y¦¨ªº§ïÅܨú®ø±¼¡F¦pªG±z¦b¤@¦æ¤¤«½Æ¤F³\¦h¦¸ +³q±` C-x u ·|§â¤@Ó«ü¥O©Ò³y¦¨ªº§ïÅܨú®ø±¼¡F¦pªG±z¦b¤@¦æ¤¤«½Æ¤F³\¦h¦¸ C-x u¡A¨C¤@Ó«½Æ³£·|¨ú®øÃB¥~ªº«ü¥O¡C ¦ý¬O¦³¨âÓ¨Ò¥~¡G @@ -422,12 +421,12 @@ C-_ ¬O¥t¤@Ó¨ú®ø«ü¥O¡F¥¦ªº§@¥Î´N©M C-x u ¤@¼Ë¡A¦ý¬O¦b¤@¦æ¤¤¥¦¤ñ¸û®e©ö * Àɮס] FILE ¡^ ---------------- -¬°¤F¨Ï±z½s¿èªº¤å¦r¥Ã¤[«O¦s¡A±z¥²¶·§â¥¦©ñ¨ì¤@ÓÀɮפ¤¡C¤£µM¡A·í±zÂ÷¶} +¬°¤F¨Ï±z½s¿èªº¤å¦r¥Ã¤[«O¦s¡A±z¥²¶·§â¥¦©ñ¨ì¤@ÓÀɮפ¤¡C¤£µM¡A·í±zÂ÷¶} Emacs «á¡A¥¦´N·|ÀH¤§®ø¥¢¡C¬°¤F§â±zªº¤å¦r©ñ¦bÀɮפ¤¡A±z¥²¶·¦b±zÁä¤J³o¨Ç ¤å¦r«e¡u§ä¡] find ¡^¡vÀɮסC¡]³o¤]ºÙ¤§¬°¡u«ô³X¡] visiting ¡^¡vÀɮס^ §ä¤@ÓÀɮתí¥Ü±z¥i¥H¦b Emacs ¤¤¬Ý¨ìÀɮתº¤º®e¡C±q³\¦h¤è±¨Ó¬Ý¡A¥¦´N¹³ -¬O±zª½±µ½s¿è¨ºÓÀɮפ@¼Ë¡CµM¦Ó¡Aª½¨ì±z¡uÀx¦s¡v³oÓÀɮפ§«e¡A±z¨Ï¥Î +¬O±zª½±µ½s¿è¨ºÓÀɮפ@¼Ë¡CµM¦Ó¡Aª½¨ì±z¡uÀx¦s¡v³oÓÀɮפ§«e¡A±z¨Ï¥Î Emacs ½s¿è©Ò°µ¥Xªº§ïÅܨ䣷|«O¦s¤U¨Ó¡C³o´N¬O¬°¤°»ò·í±z¤£·Qn®É¡A±z¥i¥H ÁקK¯d¤Uקï¨ì¤@¥bªºÀɮצb¨t²Î¤¤¡C§Y¨Ï·í±zÀx¦s¤F¡AEmacs ¤]·|§â쥻ªºÀÉ ®×¥H¤@Ó¤£¦Pªº¦WºÙ«O¯d¤U¨Ó¡AY±zµy«áı±o±zªº§ïÅܬO¤@Ó¿ù»~ªº¸Ü¡A´N¥i¥H @@ -446,7 +445,7 @@ TUTORIAL.zh¡v©Î¨ä¥LÃþ¦üªºªF¦è§@¬°¶}©l¡C³o¬O¿Ã¹õªº¤@³¡¤À¡A³q±`¥Î¨Óªí¥Ü C-x C-f §ä¤@ÓÀÉ®× Emacs ·|n±zÁä¤JÀɦW¡C±z©ÒÁä¤JªºÀɦW·|¥X²{¦b¿Ã¹õªº©³¦æ¡C¦b³Q¥Î¨Ó§@¬°³o -ºØ§Î¦¡ªº¿é¤J®É¡A©³¦æ³QºÙ¬°¤p½w½Ä°Ï¡] minibuffer ¡^¡C±z¥i¥H¨Ï¥Î¥¿±`ªº +ºØ§Î¦¡ªº¿é¤J®É¡A©³¦æ³QºÙ¬°¤p½w½Ä°Ï¡] minibuffer ¡^¡C±z¥i¥H¨Ï¥Î¥¿±`ªº Emacs ½s¿è«ü¥O¨Ó½s¿è³oÓÀɦW¡C ·í±z¥¿¦bÁä¤JÀɦW®É¡]©Î¬O¥ô¦óªº¤p½w½Ä°Ï¿é¤J®É¡^¡A±z¥i¥H¥Î C-g ³oÓ«ü¥O @@ -477,7 +476,7 @@ Emacs ½s¿è«ü¥O¨Ó½s¿è³oÓÀɦW¡C ª`·N¡G¦b¬Y¨Ç¨t²Î¤¤¡AÁä¤J C-x C-s ±N·|§â¿Ã¹õáµ²¡A±z±N¬Ý¤£¨ì±q Emacs ¨Ó ªº¥ô¦ó¿é¥X¡C³oªí¥Ü§@·~¨t²Î¤@ÓºÙ¬°¡u¬yµ{±±¨î¡vªº¡u¥\¯à¡v±N C-s «ü¥OÄd -ºI¦í¡A¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡Cn¨ú®ø¿Ã¹õªºáµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs +ºI¦í¡A¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡Cn¨ú®ø¿Ã¹õªºáµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs ¨Ï¥Î¤â¥U¤¤¬Ý¬Ý¹ï©ó¡uº¥¶i¦¡·j´Mªº¦P®É¶i¤J¡] Spontaneous Entry to Incremental Search ¡^¡v³oÓ¥DÃD¡A¥H¨ú±o³B²z³oÓ¡u¥\¯à¡vªº«Øij¡C @@ -528,7 +527,7 @@ Emacs Àx¦s¨CÓÀɮתº¤å¦r¦b¤@ÓºÙ¬°¡u½w½Ä°Ï¡] buffer ¡^¡vªºª«¥ó¤¤¡C§ä¤@ ±z¦b¤@Ó Emacs µ¡®æ¤¤©Ò¨£¨ìªº¡u¥ô¦ó¡v¤å¦rÁ`¬O¬YÓ½w½Ä°Ïªº¤@³¡¥÷¡C¦³¤@ ¨Ç½w½Ä°Ï¨Ã¨S¦³³s±µ¨ìÀɮסCÁ|¨Ò¨Ó»¡¡A©R¦W¬°¡u*Buffer List*¡vªº½w½Ä°Ï¨Ã ¨S¦³¥ô¦óÀɮסC¥¦¬O¥]§t¦³±z¥H C-x C-b «ü¥O©Ò»s§@¥X¨Óªº½w½Ä°Ï¦Cªíªº½w½Ä -°Ï¡C©R¦W¬°¡u*Messages*¡vªº½w½Ä°Ï¤]¨S¦³³s±µ¨ì¥ô¦óÀɮסF¥¦¦b±zªº Emacs +°Ï¡C©R¦W¬°¡u*Messages*¡vªº½w½Ä°Ï¤]¨S¦³³s±µ¨ì¥ô¦óÀɮסF¥¦¦b±zªº Emacs §@·~¶¥¬q¤¤¥]§t¥X²{¦b©³¦æªº°T®§¡C >> Áä¤J C-x b *Messages* <Return> ¨Ó¬Ý¬Ý°T®§ªº½w½Ä°Ï¡C @@ -593,10 +592,10 @@ C-z ¬O *¼È®É* Â÷¶} Emacs ªº«ü¥O -- ¦]¦¹±zµy«á¥i¥H¦^¨ì¦P¼Ëªº Emacs ¶¥¬q¡C ¥HÂX¥R¨Ó©R¦Wªº«ü¥O³q±`¬O¤£¤Ó±`¨Ï¥Îªº«ü¥O¡A©Î¬O¥u¦b¯S©wªº¼Ò¦¡¤U¤~·|¨Ï¥Î ªº«ü¥O¡C¤@Ó¨Ò¤l¬O¨ú¥N¦r¦ê«ü¥O¡A¥¦·|¥þ°ì¦a±N¤@Ó¦r¦ê¥H¥t¤@Ó¨Ó¨ú¥N¡C·í ±zÁä¤J M-x ®É¡AEmacs ·|¦b¿Ã¹õªº©³ºÝ¸ß°Ý±z¡AµM«á±z¤]À³¸ÓÁä¤J³oÓ«ü¥Oªº -¦WºÙ¡C¦b³oÓ¨Ò¤l¤¤¬O¡yreplace-string¡z¥unÁä¤J¡yrepl s<TAB>¡z¡AµM«á +¦WºÙ¡C¦b³oÓ¨Ò¤l¤¤¬O¡yreplace-string¡z¥unÁä¤J¡yrepl s<TAB>¡z¡AµM«á Emacs ±N·|¸É»ô³oÓ¦WºÙ¡C¥H <Return> ¨Óµ²§ô³oÓ«ü¥O¦WºÙ¡C -¨ú¥N¦r¦ê«ü¥O»Ýn¨âÓ°Ñ¼Æ -- ³Q¨ú¥Nªº¦r¦ê¥H¤Î¥Î¨Ó¨ú¥N¥¦ªº¦r¦ê¡C±z¥²¶·¥H +¨ú¥N¦r¦ê«ü¥O»Ýn¨âÓ°Ñ¼Æ -- ³Q¨ú¥Nªº¦r¦ê¥H¤Î¥Î¨Ó¨ú¥N¥¦ªº¦r¦ê¡C±z¥²¶·¥H Newline ¦r¤¸¨Óµ²§ô¨C¤@ӰѼơC >> ±N´å¼Ð²¾¨ì¥»¦æªº¤U¨â¦æªÅ¥Õ¡AµM«áÁä¤J @@ -605,7 +604,7 @@ Newline ¦r¤¸¨Óµ²§ô¨C¤@ӰѼơC ¡i¬°¤F»¡©úªº¥Øªº¡A©ó¤U«O¯d¤@¦æì¤å¡C Notice how this line has changed: you've replaced... ¡j -½Ðª`·N³o¤@¦æ¬O«ç»ò§ïÅܪº¡G¦b´å¼Ðªº°_©l¦ì¸m¤§«á¡A±z¤w¸g±N c-h-a-n-g-e-d +½Ðª`·N³o¤@¦æ¬O«ç»ò§ïÅܪº¡G¦b´å¼Ðªº°_©l¦ì¸m¤§«á¡A±z¤w¸g±N c-h-a-n-g-e-d ³oÓ¦r -- ¤£ºÞ¥¦¦bþ¸Ì¥X²{ -- ¥H¡ualtered¡v³oÓ¦r¨Ó¨ú¥N¤F¡C @@ -665,7 +664,7 @@ Emacs ¦³³\¦h¤£¦Pªº¥D¼Ò¦¡¡C¥¦Ì¤§¤¤¦³¤@¨Ç¬O¥Î¨Ó½s¿è¤£¦Pªº»y¨¥¥H¤Î¡þ©Î¤£ ¤@Ó¥D¼Ò¦¡¬O¤@Ó©µ¦ù«ü¥Oªº¦WºÙ¡A¨Ï±o±z¥i¥H¥Î¨Ó¤Á´«¦Ü¨ºÓ¼Ò¦¡¡CÁ|¨Ò¨Ó»¡¡A M-x fundamental-mode ´N¬O¤Á´«¨ì Fundamental ¼Ò¦¡ªº¤@Ó«ü¥O¡C -¦pªG±z·Qn½s¿è¤HÃþ»y¨¥ªº¤å¦rÀÉ®× -- ¹³¬O²{¦bªº³o¤@Ó¡A±zÀ³¸Ó¨Ï¥Î Text +¦pªG±z·Qn½s¿è¤HÃþ»y¨¥ªº¤å¦rÀÉ®× -- ¹³¬O²{¦bªº³o¤@Ó¡A±zÀ³¸Ó¨Ï¥Î Text ¼Ò¦¡¡C >> Áä¤J M-x text mode<Return>¡C @@ -679,7 +678,7 @@ M-x fundamental-mode ´N¬O¤Á´«¨ì Fundamental ¼Ò¦¡ªº¤@Ó«ü¥O¡C ¤l¡A±µÄò¤W±©Ò¶}ªºÀY¡A¥Hµ{¦¡»y¨¥ªºµù¸Ñ¨Ó»¡¡C¦P¼Ë¤@Ó´¡¤Jµù¸Ñªº°Ê§@¡A¦] ¬°±z¨Ï¥Îªºµ{¦¡»y¨¥¡þ¥D¼Ò¦¡ªº¤£¦P¦Ó¤£¦P¡CY±z¨Ï¥Î C »y¨¥¡AEmacs ´¡¤J ¡y/* ¤¶©ó¤¤¶¡ªº¬°µù¸Ñ°Ï¶ô */¡z¡FY±z¨Ï¥Îªº¬O Fortran »y¨¥¡AEmacs ´¡¤J -¡yc ¥H¦r¤¸ c ¬°ºªº¬°µù¸Ñ¦æ¡z¡FY±z¨Ï¥Îªº¬O Basic »y¨¥¡AEmacs «h´¡¤J¡y' +¡yc ¥H¦r¤¸ c ¬°ºªº¬°µù¸Ñ¦æ¡z¡FY±z¨Ï¥Îªº¬O Basic »y¨¥¡AEmacs «h´¡¤J¡y' ºJ¸¹¥H«áªº¬°µù¸Ñ¤å¦r¡z¡C½s¿è¾¹ªº¼u©Ê¦p¦¹¡A¹ê¦b¨S¦³¥²n¬°¤F¤£¦Pªº»y¨¥¡B ¥Øªº©Î¥~Æ[¡A³]p¯S®í¤Æªº½s¿è¾¹¡C¡u¨D¤j¦P¡A¦s¤p²§¡v¦b³o¸Ì¤]¬O¦¨¥ßªº¡C¡j @@ -714,7 +713,7 @@ mode ¡^¡C¦¸nªº¼Ò¦¡¨Ã¤£¬O¥D¼Ò¦¡ªº¨ä¥L¿ï¾Ü¡A¦Ó¥u¬O¦¸nªº§ó§ï¡C¨C¤@Ó¦¸ µM«áÁä¤J¤@¨Ç¤å¦r¡A¬Ý¬Ý Emacs ¥H 20 Ó¦r¤¸¡A ¦b¦æ»P¦æ¤§¶¡¶i¦æ fill °Ê§@¡CµM«á¦A¥Î¤@¦¸ C-x f ±NÃä¬É³]¦^ 70¡C -¦pªG±z¦b¤@Ó¬q¸¨ªº¤¤¶¡°µ¥X§ïÅÜ¡AAuto Fill ¼Ò¦¡¨Ã¤£·|¬°±z«·s¶i¦æ fill +¦pªG±z¦b¤@Ó¬q¸¨ªº¤¤¶¡°µ¥X§ïÅÜ¡AAuto Fill ¼Ò¦¡¨Ã¤£·|¬°±z«·s¶i¦æ fill ªº°Ê§@¡] re-fill ¡^¡Cn re-fill ³oÓ¬q¸¨¡AÁä¤J M-q (META-q)¡A¦Ó´å¼Ð¥² ¶·³B¦b¨ä¤¤¡C @@ -747,7 +746,7 @@ Emacs ·j´M«ü¥O»P¤j³¡¤À½s¿è¾¹ªº·j´M«ü¥O¤£¦Pªº¦a¤è¦b©ó¡A¥¦¬O¡uº¥¶iªº >> Áä¤J <Return> µ²§ô·j´M¡C ±z¦³¨S¦³¬Ý¨ìµo¥Í¤F¤°»ò¡H¦b¤@Óº¥¶i¦¡·j´M¤¤¡AEmacs ¸ÕµÛn¨«¨ì±zÁä¤Jªº¦r -¦êªº¤U¤@Ó¥X²{¦ì¸m¡Cn²¾°Ê¨ì´å¼Ð©Ò¦bªº¤U¤@Ó¥X²{¦ì¸m¡A¥un¦AÁä¤J C-s +¦êªº¤U¤@Ó¥X²{¦ì¸m¡Cn²¾°Ê¨ì´å¼Ð©Ò¦bªº¤U¤@Ó¥X²{¦ì¸m¡A¥un¦AÁä¤J C-s ¤@¦¸¡C¦pªG¨Ã¨S¦³³o¼Ëªº¥X²{¦ì¸m¦s¦b¡AEmacs ·|¹Í¤@Án¡A¨Ã§i¶D±z¥Ø«eªº·j´M ¡u¥¢±Ñ¡v¡C¥t¥~ C-g ¤]¥i¥H¥Î¨Óµ²§ô·j´M¡C @@ -799,7 +798,7 @@ Emacs ³\¦h¦n¥\¯àªº¨ä¤¤¤§¤@¬O¡A±z¥i¥H¦b¿Ã¹õ¤¤¦P®É®i¥Ü¶W¹L¤@Óµ¡®æ¡C «ü¥O C-M-v ¦b·í±z©ó¤@Óµ¡®æ¤¤½s¿è¤å¦r¡A¨Ã¨Ï¥Î¨ä¥Lªºµ¡®æ§@¬°°Ñ¦Ò¤§¥Î®É¡A ¬O«D±`¦³¥Îªº¡C±z¥i¥H±N´å¼Ð¤@ª½«O«ù¦b±z¥¿¦b½s¿èªºµ¡®æ¤¤¡A¨Ã¥H C-M-v «ü -¥O¦b¨ä¥Lªºµ¡®æ´`§Ç¦a«e¶i¡C¡iÅçÃÒ¤u§@¯S§O¾A¦X¥H³oºØ¤è¦¡¨Ó¶i¦æ¡A¦p GNU +¥O¦b¨ä¥Lªºµ¡®æ´`§Ç¦a«e¶i¡C¡iÅçÃÒ¤u§@¯S§O¾A¦X¥H³oºØ¤è¦¡¨Ó¶i¦æ¡A¦p GNU ¤¤Ä¶¤p²Õ¡G§ä¤@Óì©l^¤åÀɮסF¦A§ä¥¦Â½Ä¶¦nªº¤¤¤åÀɮסA½s¿è³oÓ¡u³Q¿ï¾Ü ªºµ¡®æ¡v¡A¥H C-M-v «ü¥O¸ò¤WÅçÃÒ¤¤ªº¬q¸¨¡K¡K¡C¡j @@ -833,7 +832,7 @@ C-M-v ¬O CONTROL-META ¦r¤¸ªº¤@Ó¨Ò¤l¡C¦pªG±z¦³¤@Ó¯uªº META Áä¡A±z¥i¥H -------------------------------------------- ¦³®ÉÔ±z·|¶i¤J©Ò¿×ªº¡u»¼°j½s¿è¶¥¼h¡v¡C¥¦¬O¥Ñ¦ì¦bª¬ºA¦æªº¤è¬A©·©Ò«ü©ú¡A -¨Ã¥B¥]§t¦í¥H¤p¬A©·¨Ó«ü©úªº¼Ò¦¡¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A±z¥i¯à·|¬Ý¨ì +¨Ã¥B¥]§t¦í¥H¤p¬A©·¨Ó«ü©úªº¼Ò¦¡¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A±z¥i¯à·|¬Ý¨ì [(Fundamental)]¡A¦Ó¤£¬O (Fundamental)¡C nÂ÷¶}»¼°j½s¿è¶¥¼h¡A½ÐÁä¤J ESC ESC ESC¡C³o¬OÓ¥þ¥\¯àªº¡uÂ÷¶}¡v«ü¥O¡C±z @@ -848,7 +847,7 @@ C-M-v ¬O CONTROL-META ¦r¤¸ªº¤@Ó¨Ò¤l¡C¦pªG±z¦³¤@Ó¯uªº META Áä¡A±z¥i¥H * ¨ú±o§ó¦hªºÀ°§U¡] GETTING MORE HELP ¡^ --------------------------------------- -¦b¥»§Ö³t«ü«n¤¤¡A§Ú̸յ۶ȴ£¨Ñèè¦nªº¸ê°TÅý±z¥i¥H¶}©l¨Ï¥Î Emacs¡C¦b +¦b¥»§Ö³t«ü«n¤¤¡A§Ú̸յ۶ȴ£¨Ñèè¦nªº¸ê°TÅý±z¥i¥H¶}©l¨Ï¥Î Emacs¡C¦b Emacs ¤¤¦³¤Ó¦h¥i¨ú±oªº¸ê°T¡A·Qn¦b³o¸Ì¥þ³¡¸ÑÄÀ¬O¤£¥i¯àªº¡CµM¦Ó¡A±z¤]³\ ·|·Qn¾Ç²ß§ó¦h Emacs ¬ÛÃöªº¸ê°T¡A¦]¬°¥¦¦³³\¦h¨ä¥L¦³¥Îªº¥\¯à¡CEmacs ´£ ¨Ñ¤F¡u¾\Ū¦³Ãö Emacs «ü¥O¡vªº«ü¥O¡C³o¨Ç¡uhelp¡v«ü¥O³£¥H CONTROL-h ³oÓ @@ -856,7 +855,7 @@ Emacs ¤¤¦³¤Ó¦h¥i¨ú±oªº¸ê°T¡A·Qn¦b³o¸Ì¥þ³¡¸ÑÄÀ¬O¤£¥i¯àªº¡CµM¦Ó¡A±z¤]³\ n¨Ï¥Î Help ¥\¯à¡AÁä¤J C-h ¦r¤¸¡AµM«á¦AÁä¤J¤@Ó»¡©ú±z©Ò»ÝnªºÀ°§Uªº¦r ¤¸¡C¦pªG±z¯uªº¤£ª¾¹Dn°Ý¤°»ò¡A¨º»ò½ÐÁä¤J¡yC-h ?¡z¡A¦¹®É Emacs ±N·|§i¶D -±z¥¦¯à°÷´£¨ÑªºÀ°§U¡C¦pªG±z¤w¸gÁä¤J C-h¡A¦ýµo²{±z¨Ã¤£»Ýn¥ô¦óÀ°§U¡AÁä¤J +±z¥¦¯à°÷´£¨ÑªºÀ°§U¡C¦pªG±z¤w¸gÁä¤J C-h¡A¦ýµo²{±z¨Ã¤£»Ýn¥ô¦óÀ°§U¡AÁä¤J C-g ¨Ó¨ú®ø±¼¥¦´N¬O¤F¡C ¡]¦³¨Çºô¯¸±N C-h ³oÓ¦r¤¸ªº·N¸q§ïÅܤF¡C¥L̯uªº¤£À³¸Ó§â¥¦³]¬°¹ï©Ò¦³¨Ï @@ -864,7 +863,7 @@ C-g ¨Ó¨ú®ø±¼¥¦´N¬O¤F¡C ®É¡A¦pªG C-h ¨Ã¨S¦³¦bµ¡®æªº©³³¡Åã¥Ü¥ô¦ó¦³ÃöÀ°§Uªº°T®§¡A¸ÕµÛÁä¤J F1 Áä¡A ©Î¬O M-x help <Return>¡C¡^ -³Ì°ò¥»ªº HELP ¥\¯à¬O C-h c¡CÁä¤J C-h¡A¦r¤¸ c¡A¥H¤Î¤@өΤ@¦ê¦r¤¸¡FµM«á +³Ì°ò¥»ªº HELP ¥\¯à¬O C-h c¡CÁä¤J C-h¡A¦r¤¸ c¡A¥H¤Î¤@өΤ@¦ê¦r¤¸¡FµM«á Emacs ·|Åã¥Ü¤@Ó«D±`²µuªº¦³Ãö³oÓ«ü¥Oªº¸ÑÄÀ¡C >> Áä¤J C-h c C-p¡C @@ -877,7 +876,7 @@ Emacs ·|Åã¥Ü¤@Ó«D±`²µuªº¦³Ãö³oÓ«ü¥Oªº¸ÑÄÀ¡C ©ó¨ç¼Æ¦WºÙ¬O¥Ñ¡u¥Î¨Ó«ü¥X³o«ü¥O¦b°µ¨Ç¤°»ò¡v¦Ó³Q¿ï©w¡A¥¦Ì¦]¦¹¤]¥i¥H§@¬° «D±`²µuªº¤å¥ó -- ¨¬°÷´£¿ô±z¤w¸g¾Ç¹Lªº«ü¥O¡C -¦h¦r¤¸«ü¥O¹³¬O C-x C-s ©M ¡]¦pªG±z¨S¦³ META ©Î EDIT ©Î ALT Áä¡^<ESC>v +¦h¦r¤¸«ü¥O¹³¬O C-x C-s ©M ¡]¦pªG±z¨S¦³ META ©Î EDIT ©Î ALT Áä¡^<ESC>v ¤]¥i¥H¦b C-h c «á±¥X²{¡C n¨ú±o§ó¦h¦³Ãö¤@Ó«ü¥Oªº¸ê°T¡A¥Î C-h k ¨Ó¨ú¥N¨Ï¥Î C-h c ¡C @@ -933,13 +932,13 @@ find-file ¡^ªº®ÇÃä¡C ¥i¯à·|¯S§O³ßÅwªº¥\¯à¯S¦â¬O¥i¥H¸`¬Ù¥´¦r¶qªº completion ÁÙ¦³Â²¤ÆÀɮ׳B²z ªº dired ¡C -Completion ¬O¤@ºØÁקK¤£¥²nªº¥´¦rªº¤è¦¡¡CÁ|¨Ò¨Ó»¡¡A¦pªG±z·Qn¤Á´« +Completion ¬O¤@ºØÁקK¤£¥²nªº¥´¦rªº¤è¦¡¡CÁ|¨Ò¨Ó»¡¡A¦pªG±z·Qn¤Á´« *Messages* ½w½Ä°Ï¡A±z¥i¥HÁä¤J C-x b *M<Tab> ¡A¥un¥i¥H±q±z¤w¸gÁä¤Jªº¤å ¦r¤¤½T©w¡A Emacs ´N·|±N³Ñ¤Uªº½w½Ä°Ï¦WºÙ¸É»ô¡C Completion ¬O¦b Emacs ¨Ï ¥Î¤â¥Uªº Info ¤¤¡AºÙ¬°¡uCompletion¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C Dired ¨Ï±z¥i¥H¦b¤@ӥؿý¤¤¦C¥XÀɮס]¦¸¥Ø¿ý«h¬O¥i¿ïªº¡^¡B¦b¦Cªí¤¤¨ì³B²¾ -°Ê¡B«ô³X¡B«·s©R¦W¡B§R°£¥H¤Î¹ïÀɮק@¾Þ§@¡C Dired ¬O¦b Emacs ¨Ï¥Î¤â¥Uªº +°Ê¡B«ô³X¡B«·s©R¦W¡B§R°£¥H¤Î¹ïÀɮק@¾Þ§@¡C Dired ¬O¦b Emacs ¨Ï¥Î¤â¥Uªº Info ¤¤¡AºÙ¬°¡uDired¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C ¨Ï¥Î¤â¥U¤]¸ÑÄÀ¤F³\¦h¨ä¥¦ Emacs ªº¥\¯à¯S¦â¡C @@ -948,7 +947,7 @@ Info ¤¤¡AºÙ¬°¡uDired¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C * µ²½×¡] CONCLUSION ¡^ ---------------------- -°O¦í¡An§¹¥þÂ÷¶} Emacs ½Ð¨Ï¥Î C-x C-c ¡Cn¼È®ÉÂ÷¶}¨ì shell¡Aµy«á¦A¦^¨ì +°O¦í¡An§¹¥þÂ÷¶} Emacs ½Ð¨Ï¥Î C-x C-c ¡Cn¼È®ÉÂ÷¶}¨ì shell¡Aµy«á¦A¦^¨ì Emacs¡A½Ð¨Ï¥Î C-z ¡C ¥»§Ö³t«ü«n¹ï©ó©Ò¦³ªº·s¤âÀ³¸Ó³£¬O©ö©ó²z¸Ñªº¡A©Ò¥H¦pªG±zµo²{¤F¤°»ò¦a¤è¤£ @@ -958,9 +957,9 @@ Emacs¡A½Ð¨Ï¥Î C-z ¡C * ½Ķ¡] TRANSLATION ¡^ ----------------------- -¥»§Ö³t«ü«nªºÂ½Ä¶¤Hû¦Cªí¦p¤U¡A¦pªG±z¦b¾\Ū¥»¤å¤§«e¡A¡u§¹¥þ¡v¹ï Emacs +¥»§Ö³t«ü«nªºÂ½Ä¶¤Hû¦Cªí¦p¤U¡A¦pªG±z¦b¾\Ū¥»¤å¤§«e¡A¡u§¹¥þ¡v¹ï Emacs ¨S¦³·§©À¡A½Ð§i¶D§Ú̱zªº·N¨£¥H§@¬°¥»¤å«áÄòªº§ï¶i¨Ì¾Ú¡C½Ķ¤]´£¨Ñ¤F¤@¥÷ -¡mGNU Emacs ¤¤¤å³B²z»¡©ú¡n¦b +¡mGNU Emacs ¤¤¤å³B²z»¡©ú¡n¦b http://www.gnu.org/software/chinese/guide/emacs-chinese.zh.html ¡q³¡¥÷ ¤º®e¤w¸g¾ã²z¨ì¥»§Ö³t«ü«n¡r¡A¤]½Ð±z¦Û¦æ°Ñ¾\¡C @@ -1050,7 +1049,8 @@ issue here>¡v¡C ³oÓª©¥»ªº§Ö³t«ü«n©M GNU Emacs ¤@¼Ë³£¬Oª©Åv¤Æªº¡A¨Ã¥B¤¹³\¦b¬Y¨Ç±ø¥ó¤U ´²§G¨ä«þ¨©¡G -Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation +Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Chinese Translation by Chao-Hong Liu (2002, 2003) Permission is granted to anyone to make or distribute verbatim copies diff --git a/etc/calccard.tex b/etc/calccard.tex index 7dec45450f3..41c3b3bad43 100644 --- a/etc/calccard.tex +++ b/etc/calccard.tex @@ -13,7 +13,8 @@ % Typical command to format: tex calccard.tex % Typical command to print (3 cols): dvips -t landscape calccard.dvi -% Copyright (c) 1987, 1992, 2001 Free Software Foundation, Inc. +% Copyright (C) 1987, 1992, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -60,7 +61,7 @@ \def\versionnumber{2.03} \def\versiondate{November 2001} -\def\year{2001} +\def\year{2005} \def\version{v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/compilation.txt b/etc/compilation.txt index 42e62af9dff..72ff5ac5316 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -394,3 +394,10 @@ checking FONTCONFIG_CFLAGS... g++ -o foo.o foo.cc tool1 -output=foo foo.x tool2 --outfile foo foo.y + +Compilation started at Wed Jul 20 12:20:10 +Compilation interrupt at Wed Jul 20 12:20:10 +Compilation killed at Wed Jul 20 12:20:10 +Compilation terminated at Wed Jul 20 12:20:10 +Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12 +Compilation finished at Thu Jul 21 15:02:15 diff --git a/etc/cs-dired-ref.tex b/etc/cs-dired-ref.tex index b19ff2bdfc2..12e3c01c871 100644 --- a/etc/cs-dired-ref.tex +++ b/etc/cs-dired-ref.tex @@ -1,5 +1,5 @@ % Reference Card for Dired -% Copyright (C) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % Czech hyphenation rules applied \chyph @@ -47,7 +47,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex index 43e4e38612b..1164817a14d 100644 --- a/etc/cs-refcard.tex +++ b/etc/cs-refcard.tex @@ -11,7 +11,8 @@ \columnsperpage=1 -% Copyright (c) 1987, 1993, 1996, 1997, 2001 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -65,7 +66,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{2.2} -\def\year{1997} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff --git a/etc/cs-survival.tex b/etc/cs-survival.tex index 768224eb829..4140f2a858e 100644 --- a/etc/cs-survival.tex +++ b/etc/cs-survival.tex @@ -21,7 +21,7 @@ \endinput \fi -% Copyright (c) 2000, 2004 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -49,7 +49,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex index 7ac0e2a862b..bb0ce3c978d 100644 --- a/etc/de-refcard.tex +++ b/etc/de-refcard.tex @@ -7,7 +7,8 @@ \columnsperpage=2 -% Copyright (c) 1987, 1993, 1996, 2000 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 2000, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -52,7 +53,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{2.1} -\def\year{1996} +\def\year{2005} \def\version{March \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/dired-ref.tex b/etc/dired-ref.tex index df7745d4bce..62038525a21 100644 --- a/etc/dired-ref.tex +++ b/etc/dired-ref.tex @@ -1,5 +1,6 @@ % Reference Card for Dired -% Copyright (C) 2000. 2001 Free Software Foundation, Inc. +% Copyright (C) 2000, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -40,7 +41,7 @@ \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/edt-user.doc b/etc/edt-user.doc index 683c1ae2ba2..9910317de0a 100644 --- a/etc/edt-user.doc +++ b/etc/edt-user.doc @@ -2,7 +2,8 @@ File: edt-user.doc --- EDT Emulation User Instructions For GNU Emacs 19 -Copyright (C) 1986, 1992, 1994, 1995, 1999, 2000 Free Software Foundation, Inc. +Copyright (C) 1986, 1992, 1994, 1995, 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Author: Kevin Gallagher <kevingal@onramp.net> Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/etc/emacs.1 b/etc/emacs.1 index 95617414e7e..97529ddee28 100644 --- a/etc/emacs.1 +++ b/etc/emacs.1 @@ -1,4 +1,5 @@ -.\" Copyright (C) 1995, 1999, 2000, 2001 Free Software Foundation, Inc. +.\" Copyright (C) 1995, 1999, 2000, 2001, 2002, 2003, 2004, +.\" 2005 Free Software Foundation, Inc. .\" .\" This file is part of GNU Emacs. .\" @@ -535,7 +536,7 @@ Joachim Martillo and Robert Krawitz added the X features. Copyright .if t \(co .if n (c) -1995, 1999, 2000, 2001 Free Software Foundation, Inc. +1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/etc/emacs.py b/etc/emacs.py index f644db2d8b4..1eba14f67a4 100644 --- a/etc/emacs.py +++ b/etc/emacs.py @@ -1,6 +1,6 @@ """Definitions used by commands sent to inferior Python in python.el.""" -# Copyright (C) 2004 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. # Author: Dave Love <d.love@dl.ac.uk> # This file is part of GNU Emacs. diff --git a/etc/emacsclient.1 b/etc/emacsclient.1 index e562d37360e..bd641c9fc68 100644 --- a/etc/emacsclient.1 +++ b/etc/emacsclient.1 @@ -9,28 +9,30 @@ emacsclient \- tells a running Emacs to visit a file .SH "DESCRIPTION" This manual page documents briefly the .BR emacsclient -command. -This manual page was written for the Debian GNU/Linux distribution -because the original program does not have a manual page. -Instead, it has documentation in the GNU Info format; see below. +command. Full documentation is available in the GNU Info format; see +below. +This manual page was originally written for the Debian GNU/Linux +distribution, but is not specific to that system. .PP -.B emacsclient -works in conjunction with the built-in server of Emacs. -.PP -You typically do not call .B emacsclient -directly. Instead, you set the environment variable EDITOR -to +works in conjunction with the built-in Emacs server. +.PP +You can either call .B emacsclient -and let programs like 'vipw' or 'bug' or anything run -it for you, which will use an existing Emacs to visit the file. +directly or let other programs run it for you when necessary. On +GNU and Unix systems many programs consult the environment +variable EDITOR (sometimes also VISUAL) to obtain the command used for +editing. Thus, setting this environment variable to 'emacsclient' +will allow these programs to use an already running Emacs for editing. +Other operating systems might have their own methods for defining the +default editor. For -.B emacsclient -to work, you need an already running Emacs with a server. Within Emacs, call +.B emacsclient +to work, you need an already running Emacs with a server. Within Emacs, call the function `server-start'. (Your `.emacs' file can do this automatically if you -add the expression `(server-start)' to it.) +add the expression `(server-start)' to it.) When you've finished editing the buffer, type `C-x #' (`server-edit'). This saves the file and sends a message back to the @@ -54,23 +56,25 @@ immediately without waiting for you to "finish" the buffer in Emacs. do not visit files but instead evaluate the arguments as Emacs Lisp expressions. .TP +.B \-s, \-\-socket-name=FILENAME +Use socket named FILENAME for communication. +.TP .B \-a, \-\-alternate-editor=EDITOR if the Emacs server is not running, run the specified editor instead. This can also be specified via the `ALTERNATE_EDITOR' environment variable. .TP .B \-d, \-\-display=DISPLAY tell the server to display the files on the given display. +.TP +.B \-V, \-\-version +print version information and exit +.TP +.B \-h, \-\-help +print this usage information message and exit .SH "SEE ALSO" The program is documented fully in .IR "Using Emacs as a Server" available via the Info system. -.SH BUGS -If there is no running Emacs server, -.B emacsclient -cannot launch one. I use a small Perl script instead of raw -.B emacsclient -to do it (it works only with systems which have BSD sockets, which is fine -for Debian GNU/Linux). .SH AUTHOR This manual page was written by Stephane Bortzmeyer <bortzmeyer@debian.org>, for the Debian GNU/Linux system (but may be used by others). diff --git a/etc/emacstool.1 b/etc/emacstool.1 index 664e1c10286..7f3200a0700 100644 --- a/etc/emacstool.1 +++ b/etc/emacstool.1 @@ -136,7 +136,7 @@ emacs(1) Copyright .if t \(co .if n (c) -2001 Free Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/etc/etags.1 b/etc/etags.1 index 2a84c622e0e..0c0e12bb6cf 100644 --- a/etc/etags.1 +++ b/etc/etags.1 @@ -1,4 +1,5 @@ -.\" Copyright (c) 1992, 2001 Free Software Foundation +.\" Copyright (C) 1992, 2001, 2002, 2003, 2004, +.\" 2005 Free Software Foundation, Inc. .\" See section COPYING for conditions for redistribution .TH etags 1 "23nov2001" "GNU Tools" "GNU Tools" .de BP @@ -288,7 +289,7 @@ Stallman. Copyright .if t \(co .if n (c) -1999, 2001 Free Software Foundation, Inc. +1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/etc/fr-drdref.tex b/etc/fr-drdref.tex index d4b21e9c132..e64fe9574a5 100644 --- a/etc/fr-drdref.tex +++ b/etc/fr-drdref.tex @@ -1,6 +1,6 @@ % Reference Card for Dired -% Copyright (C) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -41,7 +41,7 @@ \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{Mai \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex index 49f2a201650..bff17c6d625 100644 --- a/etc/fr-refcard.tex +++ b/etc/fr-refcard.tex @@ -8,7 +8,8 @@ \columnsperpage=1 -% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -53,7 +54,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{2.2} -\def\year{1997} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff --git a/etc/fr-survival.tex b/etc/fr-survival.tex index 912a0977093..e73db5352a5 100644 --- a/etc/fr-survival.tex +++ b/etc/fr-survival.tex @@ -22,7 +22,7 @@ \endinput \fi -% Copyright (c) 2000, 2004 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -44,7 +44,7 @@ % Translated to french by \'Eric Jacoboni <jaco@teaser.fr> in November 2001 \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff --git a/etc/gfdl.1 b/etc/gfdl.1 index 0974486ed63..b8e627971aa 100644 --- a/etc/gfdl.1 +++ b/etc/gfdl.1 @@ -11,7 +11,7 @@ Version 1.1, March 2000 Copyright .if t \(co .if n (c) -2000 Free Software Foundation, Inc. +2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies diff --git a/etc/gnus-refcard.tex b/etc/gnus-refcard.tex index 343de2d6f6f..87c02032424 100644 --- a/etc/gnus-refcard.tex +++ b/etc/gnus-refcard.tex @@ -112,7 +112,8 @@ \newcommand{\Copyright}{% \begin{center} - Copyright \copyright\ 1995 Free Software Foundation, Inc.\\* + Copyright \copyright\ 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc.\\* Copyright \copyright\ 1995 Vladimir Alexiev $<$vladimir@cs.ualberta.ca$>$.\\* Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\* diff --git a/etc/gnus-tut.txt b/etc/gnus-tut.txt index 16800048c31..29b5356e9e9 100644 --- a/etc/gnus-tut.txt +++ b/etc/gnus-tut.txt @@ -24,7 +24,7 @@ was done by moi, yours truly, your humble servant, Lars Magne Ingebrigtsen. If you have a WWW browser, you can investigate to your heart's delight at <URL:http://www.ifi.uio.no/~larsi/larsi.html>. -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no> ;; Keywords: news diff --git a/etc/grep.txt b/etc/grep.txt new file mode 100644 index 00000000000..8acfc4fc644 --- /dev/null +++ b/etc/grep.txt @@ -0,0 +1,87 @@ +* Introduction -*-grep-*- + +This shows the different kinds of messages grep recognizes by default and +how they are rendered. It is intended both to help you decide which matchers +you need and as a test of the matchers. Move the mouse over a colored part +to see how much text was actually matched. + +Please do not edit this file in grep-mode, it may lose escape +sequences on saving. Visit this file literally for editing. + + +* GNU grep 2.5.1 + +grep -nH -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the INFO tree + +* GNU grep 2.5.1 with default colors + +grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the [01;31mINFO tree[00m + +* GNU grep 2.5.1-cvs with the specified matching color + +GREP_COLORS='mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne' grep -nH --color=always -e "INFO tree" ../info/* +../info/dir:6:File: dir Node: Top This is the top of the [01;31mINFO tree[m + +* GNU grep 2.5.1-cvs with colors for the file name, line number and match + +GREP_COLORS='mt=01;31:fn=35:ln=32:bn=:se=:ml=36:cx=37:ne' grep -nH --color=always -e "INFO tree" ../info/* +[35m../info/dir[m:[32m6[m:[36mFile: dir Node: Top This is the top of the [01;31mINFO tree[m +[35m1[m:[32m2[m:[36m3:4:[01;31mtext[m +[35m1:2[m:[32m3[m:[36m4:[01;31mtext[m +[35m1:2:3[m:[32m4[m:[36m[01;31mtext[m + +* GNU grep 2.5.1-cvs with default colors + +grep -nH --color=always -e "INFO tree" ../info/* +[35m[K../info/dir[m[K[36m[K:[m[K[32m[K6[m[K[36m[K:[m[KFile: dir Node: Top This is the top of the [01;31m[KINFO tree[m[K + +* GNU grep 2.5.1 on lines starting with a number and colon + +grep -nH -e "Universal Time" ../lispref/* +../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated [01;31mUniversal Time[00m) + +* GNU grep 2.5.1 with context lines + +grep -C 2 -nH --color=always -e "INFO tree" ../info/* +../info/dir-4-looking at that node, which is (dir)Top. +../info/dir-5- +../info/dir:6:File: dir Node: Top This is the top of the [01;31mINFO tree[00m +../info/dir-7- +../info/dir-8-The Info Directory + +* GNU grep 2.5.1 on files recognized as binary + +Binary file emacs-7 matches +Binary file 2005-06 matches + +* GNU grep 2.5.1: other messages + +Grep started at Tue Jul 19 15:41:30 +grep: ../info/dirinfo: No such file or directory +Grep interrupt at Tue Jul 19 15:42:31 +Grep killed at Tue Jul 19 15:42:31 +Grep terminated at Tue Jul 19 15:42:31 +Grep exited abnormally with code 2 at Tue Jul 19 15:42:31 +Grep finished with no matches found at Tue Jul 19 15:43:12 +Grep finished (matches found) at Thu Jul 21 15:02:15 + +* agrep + +agrep -n "INFO tree" ../info/* +../info/dir: 6: File: dir Node: Top This is the top of the INFO tree + +* unknown greps + +grep -nH -e "xyzxyz" ../info/* +../info/emacs-2:1205:10:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2:1205:10-15:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2:1205.10-1205.15:inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205.10-15 inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205.10-1205.15 inserts `xyzxyzxyzxyz' in the current buffer. +../info/emacs-2 1205 inserts `xyzxyzxyzxyz' in the current buffer. + +;;; Local Variables: +;;; buffer-read-only: t +;;; End: diff --git a/etc/orgcard.ps b/etc/orgcard.ps index 298ba03da35..de5513954bc 100644 --- a/etc/orgcard.ps +++ b/etc/orgcard.ps @@ -1,6 +1,6 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software -%%Title: org-ref.dvi +%%Title: orgcard.dvi %%Pages: 2 %%PageOrder: Ascend %%Orientation: Landscape @@ -8,9 +8,9 @@ %%DocumentFonts: CMBX10 CMR8 CMTT8 CMR7 CMSY8 CMBX8 CMTI8 CMR6 CMSY6 %%EndComments %DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -t landscape -o org-ref.ps org-ref.dvi +%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi %DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2005.07.04:0825 +%DVIPSSource: TeX output 2005.08.30:1410 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -1934,357 +1934,364 @@ A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0 23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413 19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42 1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39 -8BF32D2E5635B6583D04BC0AA187D10FE773067ACF3B528CD412ED96902B0056 -567103E3FD911A099ADDB9EAEB3C08F1B36A918FE865B7DAE1C49F21650E65F0 -C6845C15740631BCB7618A3266D83E54976BCDC707883E531F3F833AD0DE88A0 -CDB84D8384602B992263C3C223D1B5393DC98C75EFF9AD8D98A764228C70A303 -28D87B1A5510A579D01088C26D9667DB86F72FA302A3A8EEF7E05DD1835E72C0 -66A0728CB0DD8C34BA1D772886333BC78C79374026347FAC9CED39B7FBA84DEC -E70EABA29B80B4E813C0E6D5ECA5E9ECDF0413AF7556EA458C3C3B49A4B14A05 -3034C04E1F8665532D053F810683C957050FCF44C5D4040CF09893DBF641D68C -0969D67BEBBA6DA451D446DCF87B8243365E7158D89332FB33CA28F0A83A7A63 -D22A0948A46F0AB9B2CDECECDA40FA75B046CED41C017FF79FBD7380CF33D726 -B03304BF8EE1EE450C065BC8B83643AA74F8D45924181D1D0C52CE78C36DFE66 -99CFBD08406AB9FDCC61242472612AF009F8625C966AC9A7228B85912CA77A9C -832F9D14190A1DC798D4E99B5D067A020FAD7E13E2E5A155A94E46853CB93619 -39183DAAB590F1BE12C3C4B0209A93CB015E58EEA72C0F71E68EDF1CAD4CA776 -9320076D70BD2874A166F2CF735BD5154F9FBB219C868A568A7C176060F78092 -1E3661E66B7E0A8DCF294E09D487AD7F7D1ABEF83E7E0E5BDC60D672A4D8F5A2 -4C33479DB4FB7105158E19C62FB0E1B9749E6A9D4BFDF7884B1922C4C48265FB -7851C1116696C02337B64F1A0445396102B541EE1CA10D8311F79CC58F2106D0 -12FF6B1D274B810AF318BEF04467B5066889896BBF019F63DD5DAC53EDB1CD7F -AD10D90B2D3CE615546860B11AFD0D6B705DAC7545579DDD3ED867F31615CF4E -F3E4BBD8527C9C3CB4DEBE71F1AC965A69A1C6E244BD5A49FC81135A587EA904 -A863FF7D421C407EDE08825D78924635E6968CAC4399D231C785C9048FD8C916 -0B2676DB4D91487B862B25F68DBBD03B604BD875420565855CCBEF9AF0793964 -4FD45E490EFE697A470FA3C60192E660C45083E27B9E569DD1DBE07706975B9C -9AF2851279A7630999C92E9867F55D56CBBA0CA13A0F041CD0F3ADB318A0D298 -ED48F8288691BB2CE08B6A73E9FA89DAF661F201947BD64C1EB769EA3A0C6FC0 -3DC343AEF2379881E46627AD2F653B4C6BC37E8D8452C3A7E399C0B6B3D93671 -F51A92EEA7712A872D0BEBEBB071C83D9254A24C8799CCB5D2FF4DB31075483F -3743AE4BD1CEECE6B9432BB89399FE62B87DAB3B19FA924FCC1F6C3DCA1B0049 -51024011B8670DCE537387069A8732AC4ADDD77B2A0D5D97105810854595C4E8 -0663FD917B5B587B8ADA22351D79F5E5AD494FADE90336AFC27FF9FE8BC770D6 -0A8D6FBE6E45B3D4DB20E91A53D84C8B100813CEB9A81B03E142748475EEE77A -892B3458A3AAD744A20ACD28C7AA6C5A996C9A9900F2D6B3C1169DF3BF2B1A9A -56EF83195431EE89A89CCA5A0EB6A59D7D89179B6C127BA0981FE0122E4184A8 -FA9094D9C3D54BB7CBA31FD03C7048A09AE67C956A5363F5D51ABB19CA264D9D -5D515F61DBD9C35D259950530A95350A313CFA8CF06413ABEF844771BF99590E -F9A2F28975AFD00D700E83A59A3F0B7238CC74A8C1C9DB059C84DD91F1E07580 -C4C1311FF1C4AF2AFAA07CDCE72B0928663109CB31DE1548C72EA321F0EAFE9A -ACE0E0BBD840254E30D9A46162DACC79A07F21BA056BD90AD312A2D728CB94F5 -FDD65516843523741D2430C5338FDB4274162B8C0409ABF94581C1A3D8636BCB -78A98069466C0C869BA08047E9C154DC6FF00A1DDCC2C4AF4D5DA5437BD02616 -C0139731CAA7817984BE614D6D41E9C21AEA1CBC9E56C783F68364023CB95387 -C71A72D9DCD59222964D04650181988D140295091175DD985F5B53B070D20B89 -5E4B621C848C9370E0687B45EB1070A688A94BE949D242AA6266ED2D64C2518C -4A5E75442F030E137D2E3BD654C4E4EDAFF7B46EEDCC9090D537B6CE01DD6D0F -1872A47A04ECDED2421B511118B0628148D2289B74B79B3A68CA7A2547D644B5 -2ABB83CBBFFE319957FD2189E272DA2C2E35DACA8EE229F37EB4C94C920A65C7 -165A2ACFF7B92CE4338F3030E157CC75281E1F33AF00386FBE6003C4C8CDB57C -4EA70A31E2CD15FE6732F98BE47354C2F92AF632B5BA1C7ACCA3633ED13919BA -106E6ABCBDC11006BA4560AFB17C7091BC1A632E7870B65717656A89EE550576 -B5D3BD5DD829886BA59D186770871C3D293EBED70D66EE3AEA926F2AE6AC6CEE -30CE46B99DCEA2D15384C53D08C6F1A083A24C025D92832E16E816B893B3F2F6 -68BDF430788D1167B14633E0AD0FD74951C5826BE0F4B8CDD23CFAA88907C43D -1678FB2C4053E0E2056BC4B33F36A896D1BC212B0262B6CB59AB3A5ADCC027C9 -EA6A2C0F1EA2DC6B88517BF08AF54C9B1A4A7B0A4BB9A66ABECB539BB6BA1F9F -313F2A5619949D0FEF977DFB87ABB8B8DD420F3097B2B8BEC00EA5A3E8C207CF -508C7CA5133CA63B98A14E11FB57BB7C461D7C8C767DB10E68BCEA1D5A4B7F29 -7AE639BFD660B1CFC78DEF00CD1278833E48A65BE281C9438976BBB475AC6818 -C533FB4D2F4D3727B68F533D03554393D66FEFDAD1A3BE79FCEF05B98A5D9EF3 -71F4D16E531408B2D866286CB89B50DAAE9978B96C8BEA869F9E90B780F0C98C -1618C4F6FDDA21820BBA795B0AF3D00F96635FC5062544317A62A37060F965CF -3BF8A9C7B5C3D74914E0AF04AFFDA0FB1D1E644E2FB8125E94C480B4ED41FF6B -DE326A771B82A9C44B4DAA194D3C2A8855CA293787D7D5F466A2587860B64408 -6F14F78C085F63E6B63AC41FE7574E5E22C723202B7D42A1BE0D14A299231F75 -66FB900C2A030D0E09EF5107F9905A5C66E6A5648FBA2B8E80217160EB797496 -FE3D4904C8E3B6FDE528D1B931C369AE5115114B3701CD40B57457341D735576 -ABE1907500771C3EC5F562B63DCA85FAF5769ABF0F8F74A678E508A59802F1E1 -B11545E6C8697D1A7FBD4ED7A5DE57778DF66E04AD354E5A45E199615C6CBFC7 -7F6C232D710E8CD5F9953DDFE922B2CF50F02F65A96E1BEF0C1FE6B5C52415B9 -052B9C062B532A6B83260D13AB6D3B2A48D780E03B4519F4A2152B82D1A90359 -7CC62EBC5F26608232CDB89D2CD44F0E889AF80B1A9F8C0B9DE0EED9787D70AA -AFE3DEF464503D9E56674C9BCD0BC65876F2F455C83412E8FCAC08ADE7F8E2AE -CDA7A57425C7ACEF0D58CC85F71D8512B32D9C06AC001382A4095FEA02E2BF2B -A7EB6C298B10CD398780A7120CE9A31DE391C349AA273C890F620172CC434C23 -33265359372A5451C4DACF0C859BA6D37AAAADD08D2F85DCDA2399D894840D7D -AD9870DD307B9D602661D7ACA2F84FAFDFFABF5A89AFA9973161DC1CF3A3943D -CB84A9C241C8B6D6CBAFD2DDC75166C3C2D5994DF4D2C60739F34E7805582A15 -76191F4150309E55FA04EF8A59C4DF8EF1C95E57F0C255B63C82A7775D4CF3BD -A3C56600BB869D411A5ABE7EC6C67437B328DFF2F2BD6267A43D69B6788802B9 -249DAE42336C2A3DE75816951644C742C36C51F120943DE8B75052EE4405A346 -E157546DCB7D845D81AEB84E70B857B9152C3FA6D5F3BAEC8611C14F67B54DAC -F58BBDBAD4C473C0DA872330902A46610865EB0EF8F97078841AF74758F0E6E6 -3DBA2B1659FB937AADD1C8A612C61F0C1A9636F0624E64D6D92966D892F44F09 -48A4BDFC9A83C267ACEF143585C51ED45F59126AF7EBCEC2B9584B0FC6C1E670 -FC382E476B6C33071A9FD3FC2D0F943DBE055BAEDAD6702DC0F474F9B2DAFFFB -C0AF48B326EC447E31210586B7DCD517FB61F4D4870A5E467492F40CCEAA4F2D -B06BF4FD8B31D9650D032A0A28E1D413162C649352784A0414C474A82DC471FF -1FFBDAE7795DDB8BF3DF22C393E939F5634C540DFE2590D71BC1444BBD79A9D9 -7261CAC5207814AAA58D8B135A52A3D3174110FAE364257A6F79AB3B73B52A0A -EF08DC05593BD0327BEA4697339E45996E5D6812D166165790D8E4543C130DC5 -34725E44BB037555803390CAF9F94FD6BC08AFC3ACE747B9728D8CF0128D5B4E -1275C4BD7E50AB5F980DB3C3281E3FC4A500FC6DD0038D35F4F5589679647238 -FD7EE68BFA9AE20EB140B7277073E6F26C7EF556FD311D510C92E89B70762F42 -410ED318AFD46F66F605E98D1EF12F00727B3B3F21F695241B4B5863FB1C27E9 -6BBD4365B9AEEFE8A18AFE350731AAA0ED817498539433027D50C8D38284E888 -1E6A1E6CD54F851B264E2FC4597A6A4FE03C7CFFF7D1F75CEF43E97B22096A1B -D8BE2DC4A899E64492359B346D9C0051361B6AE9DF079BDF21FBD274597B3C02 -4D0FB1C66B8AE0AAFCE0C1CAC54BEFE069C0BE9505EB0B1AE60869B63C396698 -EF594E1C8E5995AD22DAD027BDBA4BF2FA9B570E8F0FA3CAEECEF6DB8C4819E4 -AEBD7165A655F1B7828527DCA9D01324FBFEEDD6797C8E3E9E17B760C70D7AF8 -8EC0AEBBB2C448DFDA6B6B4BEB43291772174F1C369DBD1C4183C8E00A4DB46F -208C324163E0BDE572A84B85393892545249DB26457AF5FB311CD5EAA11D7F9C -3E491B0D49C77898AD873381077DF84EF4498C012D7752B22F0660810B6EC0F8 -B66D447775AD659C51D3893CD2B4509E8B9D1413A99527F720571784E7B9302B -92175F1FCA726E8AD6D82B9B7E853FFA5739D0DE0A02BB115DABF83B1E4DE706 -C23532EE82BD57109F9A7A4E6A87DB4FF5C698B04003312F1BA23AEEE22162EF -F22F7D338554AB08625B26D74F7D23772532A371AEDA9CC2962B0B665393FF04 -0B032502628AC491E593D0D450757AB016B2C74C6AD44594E0FEC2F880B578CB -5C4D6A409FD6B64B9F1BD7CD8B69676814D169609D2ADB2F1E98F6C8F1A16D90 -63FEB3C8FC663DE0CCA1C5CFF03828FD1DF28678492DA710EA61B9096A173CA5 -FA8A85DCE00EA42ACCA03EF856F3F17FA32A69DF9F73C46944705C5DC20A7535 -34CCC3878E878A0BAC55B7D56CE2C43C102D0AB841BD4A3C5EA0379D321413C8 -6C2DF639D4EEA521E0A1C68D8B60319EB999707001795562E8AED4ABFAA486FD -C11D4F12ED45A04DC72264A882C97510C91F2DD77E3D5685DB2CE52C4746F613 -AD98EF16AA9773CB00735151B7D4B9315441BC3B8BDDA5ACF619F49B6052AFAB -0F19D9ACFC8D6E0CA79A25A8360F9749EF39FB60404E318BB1A98EEAD98FA0E8 -40DFD76BC3A84404F7D3904BFB2EE3597D8364EA556E4F7D18F32F1D86D10287 -8AE46984461ED91AE22B6EFE0CE5511921B539122DA3EB48707B8ABFCCF2E6F3 -9408D626EBD0C2A1A87827ABAAF02873B675AB54BC6CB5B40E697471320BB686 -9D845AD686DCA663AB31B4C2A1915C55A814FBA82E77736F7F258C1AE7B42449 -FD341CE08D65E648A3FB4DE280353F79FD70578A0C38C963461BE98100EE4084 -CC1DEF4E35B10BB81C632FF1AB4511B80C881A729EAB34C9E9D217E3A57EFC52 -6B73AAB4911830A00BA599013AD3BB83BD3DBC7445C316172B3B8A22B8148ADC -FF33379CBA195094D2C2CCAE0E260D8DFEC35153BB3533BE014F456A108C9D62 -5C21C1BCD3CB9D7AA0DB74AE571A88AF6BEDDB6DE3DAF92AE60187819E8EB8A6 -7CC1CCBB5F23E63A107EC8143F0F69B62CFC95605231FE605A989407218AE464 -C2B566EB86E1075B0D8FF788B726FDA5F5F2D8743C39224C2231A46426F3B6AC -747E69C46AC322733DC052641526E775F10924F0AF404C37BD47369986746AEE -ECC7CAAC1B2CF6E5D86A46F4F6AAA2BB7707BA4D89F1B46DA3024A84228E1A5C -BA5EDB68205AE6971A255381FC06BC03644D67B082FD503F502B28141D437C84 -E809F5C78BA5FBD5B8D51C012C3EFCA915505897C8099F0938EC15464FF4EAAD -2012A1239E0251BB126F4E400C170BD1C47656CC010235236733633CE22A43D6 -3E043B687B32BAC9EDB90DEA0D0B0015E8C1DE4EE0B0E0C10F2F50F4E35B31BC -915A1D984614AC0B10AF2FF1B28FC135D07072C0530C50FB6ABEBC1592CAB0C7 -2FF36245ECB609DD787852E5509AA57B3EC5F6186B16A4EF52ADF58D7ECD1D34 -B2BDC2BA556F7915F5293A8CB3F44E707A57F6CDBD91E90F9146874311F25B80 -A7348FA90D09459843F842FCCECFE4025D12B2BF2B61CA32E6F72B8618390560 -0157F80C82BC6A54B9F0289215D94C662CCFA55EFD0650B0ED761D98C65BD47C -F7CD595FEF1C7DA57F3B79FD55ABBCE8D30B1D0DE32994D52F8885A87F0C109B -D90052BCEF87DE36DB4A852E910C792C094D0D0228C53D20ADA83280C79E9100 -8AF8888CAB9835D6CE65D7FE36B18F365C4F6324DD5670157B37AF55B205F460 -D10A0D16CDCDA78539CF166ACECEF425A1740B7C8F02D13F2A86070416AD9AF7 -BD30314C6DC920E3CB78117564ABB1195397CD66FC92F54B5F1535C15E02F763 -C92A2F3F4CD1FEAD965306DF3614D0362B0191492905777B75D8D1C6F5064A1F -111B7EFE43756B4F0996030C00503EFC5351D388C150BEC0FDA5AB0E218423E5 -78F87F1B7684AFA6DC450EF115ACF8AC2C8DFF33AD39FEA1008A46EA9D6BABBF -B5F220B209770EF010154C87A4BC067315192ACEECE255BC6A5896C2F4963170 -576E250C3F8520E1E413A30A1C17F50F6E8D2DD87EC02320176F355709D75320 -D1747ABB9EA215793CAF3BDAC8F5C0812A630FE85D7FFC3AD199E5D83B068C44 -B757C8A127C3993C01E25FD94725415298FCFA762ED456DD7DBEDDA2F7AB71E6 -A289E0F59FAF62E3A2CB6A0995CC06838C8F9A6E19226B0E0953E2BA3764BBDC -257212FA3143D2B67D308AD49A0B245F0A97B09919C307B326D575F1F865ADBC -E292206795305174C193A4CABB0044936E51BF95D0B13E81F2C64248F1D9749E -CEC22448489B2AC1D766933B570E3471B4917ECB1D66E0A4779B084B1D22074D -108867FEC1329F5B30FA344C19FABB7C09A50F49A5B0A1C42413B3ED9FC39B36 -500AD32B07AEE4A5C0DFE29DAC2C6FEC431842A473EB710293F23774FB448E51 -3EB6B4A27D98078B2A4DF3A5F0F41308374765C86C0A879641FAD025EB77D7BC -9328E717E2EE4AEF31A3FD23573DDB8E81F20F6499FC2BB4C94D3F1054785E0E -6F3B8D6176EDA6E386FCBB034F6E82F6FE43CB83AA1147B05D51BBB03C477F54 -38FC98086DE0E04722C5F0CBF9270E0DFB928EC7387710118513A3C97C0D6A9C -D67BBC5AA5DA3A33BB0F534096582355E0B3BFF7E6536FBF496FE4E05F006F88 -C7C28672CC58838790821AA48534FCFB8DFD4EBA9C94E4F50E0B9E046651F779 -E11B8915503682E7FDD90F05DFFCC5A009CE64FBBD223E2634DC95803805F4D1 -C27B4D543FA3EF2B222DAAACF40C526B2A1563C0968E7F2FB22489810A530519 -100FB442B5F972F960FF6BD86A19A1F297F93DDFF83CE2347EA3F861596B961D -4FEDC423B8262ED0F0352DA19F07ED09117CA72EFF0CA7B666EA45493D1E1317 -559D4B5D278F107042D276C9AFA6A093ED696867BC1041E5F25B11C1687C8C1A -72DB2FCD4B632FC212D774785F2D3579BC0DBDDBC8CCFBCF7B686ED3BD92D4F5 -378CDE86406399B059198B66E88BB9EF7E572C6460C36B0F2FA3E19AC56F93EE -60F1F7BCE76F0AF284C3F41C8BB69F7D34B4644AECA4E9324CE2EE4E4044F4EE -7B9C28E8B454D894445AB47B05F7B4B94529808A007A5E3A7D323F661F9D9C0B -B5BF1C24FAE9D951AF26493C3C9302C4C040A33E94E6596246511185628C7A02 -15D33184493337E2543B1D82FD5ABF4F47E894E809C51DE0ABE163D378910FF1 -717FA82AD420E076611F5559AA027F1F82433B4B103CC1541D342330D9BE4592 -9B9112E1FAACB0FFD59326ABB3A352C54D097E0B79A91A0CB39B77AABC40D191 -C895ECDE7E9439DD2098E2D81E56F13F178CB8DFDCA5759C4580BF1DCF7AA3AE -83F2D998FF3B9789DDD4B2A3E1F5CEEEAB48CB410F5C07DD3FBB4C362BE0D32B -5BEA9A428692EC6585A20F11A5C73FA22D023131B1B416AC0B2F4A4C801863BB -D43B180F82391830064FBCC5A233E3ABC5B30C1FF8155C61E589604EC6C16E48 -F3C676C95C57B8E9D4305C1B1C7ECD75B3A5C7F8B8849AA1B46FDDD928D92B21 -D0B6FFBAD0B71D101EC153669E32324C497CD26093D0D2E4AA197F9D5E459C50 -709C64D20552A3B9DA9475D3658C302B5E7EAE0DAD3F9270A327A6644AF5C3FB -8338C062F33478E38E82C09510F27C2FD1FB2D304355F28B35C9EDFA0AAED925 -F2D1493BECA291483EB47FF0442C3692D29D10FA92ADF3C9AD85D5AC09D35949 -166DBEBAF7D425DBDF179F8BCF21912C5A2123E869DE9A9CEB4803F2C04414BE -45DF573DB40F5B9E42406F49862C7B23826CCCB05E76BA23BAA5A17CDA93D4EB -59569951158FC068E32ABDD8930D6C4C58A7DE1D39030E3B818E3382938F466E -47E8189A6B902AEE4798286CF0C032E0F2AD018380C904C2F4EC61ED98CCDF25 -9E2C691BE9812FD5E0CE01F2C94134C9F0C05F4B7F1260DEC20B9907E1B5D372 -8677FB4F0485ED87A3F6EA1A647072D635F7E2838649CFE37A4FF8182882BF7E -9474583F4E9D3548795E0A63D4859BD27B662D156DD893B3799371DB1BC75A38 -0F454EBF825D683CF2CBC8B308AEE9D8FF8EBB8A7DEA067AEFE8CC77331156CB -20210ADE2B5DD0A9F77BB6E98F3630800BF33915E73E515B34E58516D1AD87B5 -00A8969EE2595D2365AD69FA4F67CCAA7D243B8D03FB39CA136DC1E5FD434750 -8A329F7D11DC4D33F6A0BEC9A23E5EE1A18FD5C3640E3F30FC2D8CCE5630E618 -A273CACED00DA6F094148C5D6751DD983A2823418223E715DBE8ED167B2D1999 -650D0FD8685884BCF1D6147C162BDBBB6597DCEAED3B5CAA75F301D46F2F770A -CA1C8997E99D16CC0A58572FE1D68383D87335A38AF8C27556FF19CC421B8BE1 -8AF89CDBB98273BF4E43025A710B4ACB5D7F2C77249CF1756282B74CE43F037B -F62DEC52EA41330A2783B5E64F72392EE25FCE9A7E872F4A9AA7BB41E5368888 -6DC531A2E602696EDA1CD3DCF808F62176E9198AAE9CA8925038D41E17570FD2 -E976F627F7213AC8EE1B2BC240871B7CC1C61B81BAA031B8396536AA62A67DE7 -63FBDFCFD363DB5CE786230B302B786A859C48BBA8CC27EADB1FBC84F1059FA1 -3A02148B4CEF5DA6D90664E72DC6F3EA267E4102102F18D79FFBE4E2A642E94E -F3D9376838236476B1030A0C47D28F4E7EF6358D213AC0A95391659FE736010D -355826A83F7FBEDF3164FF177C16C41789E84F375C6FEFEA767DF654B0533E98 -A1430FEE50F41D39D41DC2ED6EA7EE1FCAB31FCE526D5556E89D36F3B402C5E1 -C0CCEAFA157772B77556AAC8F874A019EAE0A797BCF85655A7834D4DC32D388F -F3E48C0F7B338BBA1C9E949C5C0BC1A727A77FEBE57E1421FF81FE4AA81869FE -86EF313CAD75613726AB3F7508BC904A7E55F092A16D605802D36509525EE2E0 -18B8CE25A0BEC74D167F9E766E30C4EB0D7914F4DA044FD895F3A9C196E23256 -9033CF1E352E82193458B6CFD32238CC93CCBB0E05E8E6AED8CB27157BB148C5 -C644977C16D7F4FC50DA22A28CF8F945B5E0209C8D715E8E7D9D80F32FEACD13 -E6928F4BB60E9684C0F865C9D0C2EEA5EDB0A355FB16426A2405D124F3A01977 -1DE108F66E30EE01ECAA74FE0DEC9A6D485B084FA8A38EC3A59B23FD35B72F87 -ABC6B7D73EDA44DEAC4AA7285D15339EAC0B54B52FEC5B7EA723622704A3DE1C -AAD548509991E18B3AD4CAC7FCBA320ED3989A185CAFA4E22A42E1B5C209F774 -F5FDE4CF0FD23978F3C37BC3EB97A0AA9B9CBC66538FF705F8F7E2C3CD58A359 -40958DC811EBBD7F16902417BC1C97C3D409E4039E0569C6826D22923806BBCA -E601CFEB9B249597BF69BB74FA9607EA9CAC2DE0C8B958574B715D64D5E2AE19 -DF262825913DE26CB598B36E6F8168F7641A58018B9ADBF73237113B9FBB958F -1A3CF592672A51EE2463CD7F22F058597DB9C7316CCD49EFAEFB6A20646E0DDF -794C0A9DFB62A42FC95483D7F578BA3163317AEB14561F49F6E2A909B7C92370 -2592FF0614A1AAB9AC39E93A2DE2D38330AA56BD51D1FD225D0DDA8E91B94267 -127CADEC25E9769512EE28557E051F516329445C31D75E19711CEFDF77224F25 -8B590ABB3BCACF4C3620142B0401F7218BA00C67A748A2DA5F784EF53521F536 -7110D64B659B7BCD26E03F6D35A6EA3452A8F33B4A4E580AEDBC83E7D882BF65 -AACBDB77189BD88AD8A0CAB62EA74CD673A9B37AD1C40065C309BB399045594D -7BCACB882630E12489BD5E049F217C8498287D768B4D0BF904BF0BE1C6340D18 -C14229DE0AC87C1FB28EAF752A2C88FB5B80A4EA1066F11DD918A2FB2E18DBD8 -384E38D2B645EB843A019723C71FEA7C4D02621308D92FD72A10522EFB409D8B -9A5E51F4AA9D768ED428750A6F34FBFEF6FDBF163B13F6FF96450BC2DE22D65D -F7F0F5223CFD29524C61D0070228ED1113C58F48FA3154E53E67567B46F7040F -B03DAD476D4B4A2705ED9521BD22F48AE00AD101CD53BD79B7172ADBB6D4C4CD -951D9CB787F957A1177A7F967A3B867D48A74A0EFF9ACB491BAAB6C997896895 -2F3A1DCFFDC2D71659F916C1630ECE089BF7318201DAEE72972A8AFD0C69D5BE -B5DBBF85ACF39AEEEB8CD634A58D4AD84A49E75E39A5799D53DDAACB7CC08310 -23D44AEEC34D256B1C6C208CF20E986B5F52A866FBE4221FF02A77459AA91933 -4DDA62FD7070BBA306D113FFE2F96090AD748C09470FEB4FFD0CF8C72EA68FB9 -3F00F3F93A56DE5659A40ECAFEDF5E3CF327CBF8DAC7DF31F0F02EC416863D12 -2787C56399B9BE4AB5DEF7D7E185FF02521844F75C48D1ADEA4C0D8436B3A780 -8A55EB846C5CFFFC5D207B0F269DB3DAA7E06FFFAD34ED5A49BFFE73CAA09B6D -AF0C693F71CE69B77FC1378A3C4790CBE8B5546FFF134AE8CB103DD6376EF16E -03501532E3F725E58F36089E3718C635EF95FE9921EEDB08F0CFAEDDFBFB3336 -517AE8ECA540F6918563EAB9D1B5E5BFFAAADC83D0867125E2050A05EF871ED8 -CD0AAACE7D95D37065EA0C92E46115A732F468AA43FF12337839C206157A96BF -A8DFD01BFDF8E2D76E4D46C5B9AEF23193156FE4B535C6155F79149384737DB6 -BAFDB4DC69A64056EEE87A1186B137B6D9D394EB8811AADAE996D67EC403083A -86771A4CDF9AC65678A65DCF46CD1EA9CBE4C1D839CD7F166BA2CA8521F698FD -4CDEF798D360867ADC4C8FD100DC3AB3B62C5BF2527A688D3DB498AB5F407879 -970F2EF1EEBDBC4521CFCBC3E621F992F3EAD3E9737976CDB56596E661129545 -2EBE036A72F668E809D454DACA709F2C0531CCB26910652CCBF94EFC3A4B3852 -B144EB820877E7A55B33B3E9B2B1786729B0643517AD956A7A4779334D0A342A -3DD38F70100854C0B3032397BCDA640CD12C985BB2B5835AA83D442166613350 -BACB4CA9F706141A9E9EB3DFF314B1A82113CA28B74B6603D67AA2D15A36972B -1D8B0057D3D8EB92A1809023EB95762577BD753193DCAF7021366943AFF53A8B -A9ECCB74BF27EE70B1D0B73078CA5CB5AACC1BEE0A61A75981F8A0A3253035FA -1D5D6A1D47DF111693DD9A1D35D9B865C06BD05A688B0D9BC285C0EBB1DF7B2F -2CEA26CFF7583EFED470D4BF02CAE6E4CCFE5347F61F669BF8E82ECD2112E672 -86D10C529DDB600B5237C11BEE28BC3120A0E212E2ED4F52BDF6980675D7DE7C -89FBE11E19865B1C163EE5F4D410F95A434056202DB1BDD10B3A75FA3C091D5B -E3E2F888A6509E1755BFB39F9EE35AEACEDE970EAF42BBFB0D441BED621A8E20 -F504AAB0F511661754B03BFBDEE9E5D704B1FFC70E429E97B8C5651C90044269 -58BB39683838446D49507DCB70AB0DEDEFB73F05E621BC7371D21465AC659AA8 -90786F8CF2A0B0ECA4B40774D7143F92F2B0A95417C475DA5308B5BDCEC67A74 -A425CD76801FF2E115FA3A95818D088392C84FCBC00D3B3C7D683253414D4C5D -74446BBFD130AC89A0C9B68BB1CD772A1BFE8776D0772ED8C00C13C8D0412D7B -526A73A0E38885B79551DAC3E1060537C0EE8FFE574C4B9E8155E2CD83FD85BE -191BDD6ACAEE898A02717A9725196FA59E41FB45D2733CE77289FD178AF07D7A -FEF8D6BABC7DA5425A45AB8EF3C2E369432252E497B172A6FFD4D3DD957C0E26 -0D3D402EAD21FB3E404DB8082DF2ED2C300A0AEC0DA12B7FB571F415017D44E2 -57509A41CFC2284455635F50F06937D23699B43084728FCA9DD25A7264B9D1F4 -2E086976B56237887470653AC62DE323911A64507B40DBF281BB060AE635F37D -BB4F9EF7456EF62EAACAB52F0606DFA777D2965BF03D7CDA312AE654EBFA92C7 -580B7C2A2E604389152704BDF3008ED2F58200D825D0F60C7BF39AF14816B2DA -5738DE7338132B7E7E92424B7FDFB15D8E1EC176CBB7E15F3FA064CF04E357DC -72FDD1E8AF8079B1134EAE3E5CB6A7262994C71714691E8BD7CFF2676EA4D0C2 -A5FCD6C622B3B34469E3B2FCD810AE0252B2814EB02C544B0458CF12DAACAC5F -4A2E078844AC2AC74543F4763CDC6FC081073CD60E276AA6E7F1D948EFA02C23 -2FC1567CD952C837AA1ABD3E3077F5AA7F9986F01B0A9EE91C0EEA3895260CB6 -3B4EA5F58F8C8C23D42C81764E72399D2EDF40C8F18EFAF113AD16E753263943 -55EEC4F01AA885DCBCDB7C9E251210AB2B9382EE45050CC1184F592BBD65D6FD -44D9EA6BC7583CA725A1DCD28EA77A085B0A47CFCF5A847C5D29C4F64F2A17DB -BEAD7B3BA43BAF8548B65DFB4814135A2A789E7E76C978DEAE0138AF8A0AE4BD -B4D22A02C169BB0DA5215B2B91A10ED3A2A9797E5C5FBD11BB295B02C7498B13 -6D90D8CD79D4606007D408E8D336D75D42519BACFB7164C2797F0E9FCD98F178 -D82372F263BAF8B2D1F185E549BA63428E2B8DBCCDD243AD605DD10666F367C2 -3EB98C9157E068FCAB8D91AF9683EEE87A1158A562C911574136CFC172D50C4F -70BC388C728E821395579A081CC946F528CE6F3471B7615F67623F9138DF8FD0 -CAADC4E42AEBF892B36AC169C716DDA724300E9378B809DC6739929C3108A812 -F9C116118E9AE1B066E1928A4A442CE02B2D3BFE18D406AAAC1603E754224AEE -1B802E92CCDCDEF94BAA8955F389B7565AB67D73CED601FA7BFF438717EAD65B -449941F0C87F048B9186C9C78A3D43A3D4C372B5F8DA74DAE6DD2A2816E44303 -790F04C13F08E0815B43FCD837A67BF4A2A86FECB6ED6FFA56018961A0C528FB -472971A8E4C47C974DE12133616F3CBBFA20CE57B572F751649D9AE64A61F271 -0DDE783CF2509DFC2ED2CE7467574AAF79101D56D3D2664DDA30FC7DD5B5C6B7 -0BD084CA516A72E6D3F8B7FEDF0F11EF9CA594C2318EEA3CC266A2F4C2F2AC2C -AB1ABDC5F7419F46308865F1FA63CF2AF4AEBB8319372B3305AA052477ACD838 -7A35218A6CD4A7C0ADE0C3F8B005D6E30C8A208A3518C1134DC34D0E64F804A4 -258A995097F17642E97FE9CC38A34C250B8828B4FBA1840EECBD06D427FE7E10 -4EFAFEBBC934AA295E12F25D6FA3D277C7C88DA60D818A8A303364BD6B2C0288 -6E94BD8E474F28BFB951BE4ABC493AB0EA6EFF110193105DF8E9CEAE1CE549D0 -A907F7A7CF1AD20E121FA6547F93CC10D7957B36ACAF213EE436C92A00AB1A24 -540E535440938E748DAA6401133235D1CC74EC8FF80F9E297FB6C56C12B4E0A4 -D53AB28F11618F2C793F6EACB593E56B8370ED5CFF467B5FFF04AD11BC5A3AF0 -A6EF110B540CD2C87070FFCA3AA0776FF070C384BCDACB0FBD4921C06E24C8F0 -CE590D788FB8C1BCF9E083B4778818F92269C274B0CC6565E2D70FFFA2480381 -040C5CA012341D51427A59C3FC9B5121956B4323872E67BA499876052131B266 -C21F0B8B37902C7C3156FAEB668AE6A7851BC7AA62FE60D792B35B6A38183B23 -E5FB11DBBAF1E60B0D9DF0E84B9EA6F1EA6C37B84736FE657F4A29E92F7DD89D -3473C81FD7F595770BA69C91DAA3154425278D323C3E50A14FF72A02BF3820D6 -6621B91A96A1D2F76710143D41C8305E02810780D868D822DC6056DFA4690F24 -90BE5BB4F14902B97F5FB4CF31A6C8B346A76B95D82EEF610AAFF9F6B88E782C -F0E46DD18BD1CD53C92075AFEA0C1F0870DA52455847B22A638DABEA04C90ACF -0D89E8345F118E5E26A3934AC0C0C9F1269946E17F1AF5759123CE2359B60ED6 -3FB22A23380A34DF818CDA8570B36B92C4634A80AA4ABEFFFE36865AFB384DA8 -70E5CB4829052F8BEB962841C2030BBBF874EDEFE149EB8A38DE0ED59903FCBC -25788EFBB825265AFD7FF2F8D5F9A947EA94A368C52986E8640A6D6A11B14DFD -CF435B2F1F7C168D1E9C7B84B2C2D9E235DC59799B99971FE9E6D9780EAC653C -981FBDF083B949310FF20F7B383BD10737136E88B9D294677C7C63CC50A41AC1 -B4649631134034DB9FF76E0B19799396A232809A5BE397B63B528A0E860D38AD -A90BF0D4246F012E19CEABC74F21E2BD46FACF96D5F033B6023A98DA51653D59 -C306875AA02EDC3DB78060D72B0A00596BE36367A1681ECFEEFA447DB8DE6879 -18962C974B55038A8F67AA553ECD27C6C72D46CEADA75D68D7DACB40B063F9F7 -464401B0AE4CC61A1F55A7E40FBD0FEB890DD2FE36D9641E40BD2F6D20C54353 -C3B282E7F46D61EF3A41F8BCB31FA38EE2B99B671841DA2FAD644C11AE20B6F8 -C7D5D99806643412273F874273FBD04C65F048D76086EA1156F07A47CA0FE349 -391E906747C833320E84E18781C61DEA8FACB8D9DDF08D29E5983F2E1FDC8C72 -C200B63415529A45978010EA5C150BA9D70CF4F5799DA551A1CF7041A17DD5F4 -153A868BD4B81A25551784E2A6EE42996F4D6CFAED97725C940C0FE9FFE0AA31 -FB2A32941E6C555FCF33B4B8E802C40B423599C8E88C6DF1AEEC28938FCF3BAB -B6846C20D7EC7278A909073BD15BA75F470F82237BBFF6E7287A3771378A944C -8CA6215F95437DCC9EA67F7A8721FA63614CA7BC5054EF5E5716FD4B7DEFDE48 -FA8D2AF9F0B3BD92BF5F48A0DCC8406B0A940FBB5D35B56A49B7D4605A00F82D -495AEBF2B413F19FE37AECED8060D5C32E9FE0EE9C0FB14045AE87D04B92A734 -0A35DBFFE12CB1ED64C924E4ADEE0AD635BFC70CCEC92FB07B1DE13E3D14B09C -94590CE5F2F4B7D0C697F6F30E217ED09B35917714712B1182D687302770C205 -C3D17944AC1CC6AE2A023707E13DC1299256DB1211650F76A969D74F940CA580 -6B499C40B76BA77D12688A8CF75E90A19AA3E368D6C99FCF8163450CAD6EA028 -84D4E9A5279013354D9C8D7FB8BCF3FD31433C822F0A412A3115B0E5E71079F6 -60C6BBE10380872D5D75F1BE9BB6DE755103E4B376458B97E0B50BF8932940AE -F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF -3471FCE3B83D5395F282D1982B2A6CDBD1C0DE44B3CA286E7E3F3E82B3561635 -6E462A4ABFAE8DE9331FEABA97AE7E7C93F0A30F4E3FDF4DFD66E5CBE234ADD8 -0AEFB354B80ADBDC128EAE328AF10FFDEF587B462A88F62F463D640C4F8898D4 -1AAECA8EAE36639F6CC17B68BC1F1202F462BF7CB20CBD42FF2DEC420B4A7001 -90A1F1499D49731DBC0C5DD4AADC4C32A7349219F25150117D733A0D51A7E51D -88712AF2AC91D73A906CCFFAEA98C68DB967D96DA69E38A0406F2DD149B3E771 -68D65EF65F99A4AD33BB5B15672E57433BC84C9023BA77997E82473C557D18A9 -60F7064934EDDA12E614186A092930690D2DF97E1955FA75CA3CA077EC39A561 -27FC8DCBF13DC183774AF61C2B1B65E5E4 +8BF32EFC8C0D1CC0C1622ABA0B6CE939036B2D9CAFA2A3B0C4B5DD9AE5B2D798 +CC856CB41F82D3B5FCBBF70D07E05369713730081901FEDE318F9DA81D39F84C +45D0996AC0E8FD780FD2E5E6BD013D98463E0A51034735243F2B3695371E8451 +6A6EC4236E47A282AD2966E06BF3FB59C6222C15A34F1E910E637D805741BC1D +CD426BF31361147DA45BDA2884880D90AEE92DF02AE5C4772537FEEA157A6D50 +3BBB910A80A2EF41D18213631584B343ECFBD6BA006AD6BCAC63E9CD9430DF59 +98091BE32FE17FCA7B32DCA95052F5BACF73FEAFCE5EA47B740FDC972C2FAB94 +E1FE42F8536DE4DD0DBFC4CCF3A96DC1140F736344D4DC796756948ABEE0433B +BFFD9F1A343259444D248598844888F046800D6BFC7BFE3F63900767727A8742 +10C756EC6380274290F84F7B2055C2390BF04B466B5D4437C0D6AC55C90792CE +8A8BB5602BC96118B07FDB8692006E91585273AEFF55D71967011A1658205ECB +A0B0C1CE1F7C5167A5868D5DA81EE5CC3A41983425663776391EA37525FF1357 +2CBD0C9B4644850880C5115C7F0677A605C1009D018A9D6BF4F94A6DD019CA26 +FA7D748D55D441CE1111EFE5254381E1F916912E1B446CC7803DEB5C9B1AF811 +3938473A2FDD49E5A0360F4020CAF9E85E056E59430B18AD352BA929C9A3DA10 +D7C524D92AEA6F4DCC13E2B59DBC0B8C0CD90B1E4E82BCEE516928BC9E1BB67A +060EFD856CC9F1CFFEF90C421DBB3CAFD1959B332EADE93C9CCB31006248BD6A +5D79AA8E049C5EA70DAB46F5D3E73984814E9F3E15A0383EFCD157240D43BF23 +F84372FB3915791E581FA0E4CD457289FACCC08C0D37CEC1FC45DE3751445A9F +824A6B006B5E672AAABEC2B8D5DB7B0745C1D01C52657B7DF4FFB9803FD9655F +B7D34C6048E8BF44A0235DFA9791770CB3E451E01ED7A578512DCA397F24F71D +B2784D0778C02BCD5A88FB1671F8019523D8ECD0F42D273A72F2140D3C14F40F +7BC451BE2FD39FA297D9857745B4B8F8531CA0DFD9E72E8EE0E7FBCDA811C8D4 +167DA0037F9F1F181115209C22FA250C8234695C1085931C3D92585563366C74 +826D4E5F9A61F39E3F8CEB8701591C4A5FC62940C2729A2D9FFAB09F833D47C8 +1B184163D87FB4E5EC4BD91B81C325FDA8ECC31EAC76FAB333A9EE090C202EFA +FB2BF753A5AB8D147F8949C6FCA5922E1B2C6231ED86BBB953166DE2C08A3DC2 +433C76CAA7260AC901C3B4E2E78C8A6064F0ABBA1F4D16BACAC5288F199A0929 +25F1DC8ECA38DA299A229D86E105C29CCD0FD59585467BAB46AECA7A76905CEB +1CE91EFB79E3B4EE3CDE096E2CF63DFF71544E639567BC8F12263B2F596CB4F1 +FEECEB69763A7EE15B0E59A2529A116E6E3BD067BFB3690021068ECBF18F6D9C +3F3F07D8C7E2A7793FDEE84EAB71613A6EA8F6AC665A7C0376A6406171EAF3F3 +4E466A08318F942F2830757721CE2B193F3A7404D51375DF34495AE48356DD78 +E4AB3A71C2BE2094D5196BBBEBF056029805A302F6AE5F4A9BDB25461E81617E +A634959D343DAC10BD072CE16D7C51C120F9B6A1D75EBC4D03DF60048B8CE15A +94FD31DAE86A4BF525C979C7E96BC1DE88069A342C9E07C0340AA83DCF381134 +0C13C315D1B690B5E858A20362441C9F61A20B70392F87078E5C3F8B4AF23D99 +B051B170140D0069DC6E2D4FFAC6E45EE56221264A894AE68FABF04994EF9D87 +EF92B498493E3F0B2F003C47C861320E714FE36F9B4669226E40753B2FA90731 +CE281E469DB371C975B186E2910879681485763CD9316CD4017C5D9ACE43DCA0 +38397FE463F2A3D6B72209FBEA175E75793163F0FE4A2CAE3C7E5061D1A7C31E +1F8FD3082D2743CEEA008B0F0AB55C2BBA23918A1BE4200DC628662775AC2D66 +FB16BB7C06C295357A1BD655CFF3E0C49046C2CFC70FDB87E62C2EA187A0914D +2B55FDECDD9309FC215AF8882D65174ECEC01F38158C4D96FF9EF1B17AF32EB4 +E7C2B4770F5CE67E2B26BA0ABA9116BB3F89944E308A0127C99B1A145F730B50 +28473FD0DE250D63A7116DA1ECCE93B02F3CED8C894E6B090F5A01A26822503C +EA68C5A7BC8734C35E40D3A56449F6AC36406A0818C666F0EFB88BF02AC4C296 +201B0D0848450A54B3FE1A75F641D1592D265CA639D29DD99C47AC8DCAA2FE5F +0216CD31751A42FB48F53200053979FD87DEBBF427363CE1748FAADFA0C6E2C7 +9B407F5D041D9383385891A86F33AC51F0C7F4902580D9446D8118D8EF2BB177 +5C2A39867EF485A454C07CD835350997F5C18EC1C3A83E57F57D8A0813EF784D +19B088E03344EEB3EE8AF03D18B2A4EB5A57E1DE60CFFC487FF1C2DCCDC88C40 +1B7B1B16A0DB3AA16474F6CF5F92C7490CA1F3D94B33B18DAAAED531D2740961 +53F662902417A01C2B33489862A446A5D7BC27B87ED382CC41175114C7B0D42E +6DEED8A64B3034F764BDAFAA477191564F3EF1339976051C0BFF59E56FA20C7D +C5954E0A805A4A8431B40401E8A188D2409A16013427152F64CD8CD502C5EC4E +B2F5AFFBF1F4D5BBD636109F2AF10BF4737DC0F722E11649EA017EBB2F4F531C +9D08E88CCC7D3345E4B2A96F14C9CF8E211B90F8A2CE2EF57A68BDA5997271C1 +93A69D91A285B2198A12F8B3C23FCA396CBF176473CC5A4C4E24ED72990BDF14 +162EDFE244272250864246D493134DBC29C5CF2C8A5B5E27FCCFC7C577C014FE +FD8F723CFC46F2D9700738788930F22656B5F1AD5A34C4EA6C96EF45C8E68138 +CE87FEA609914E3936624E1E6B167A60237A34C04FF1500C52E7258FDF3DE58E +FFED1699614DE43622D1057F172E54AEE1257FCC853C0D1828B072F7F4477309 +4E3E42B5C00413307335285F8404FE1229D1B2006D482993E7F96D8C9BB7C41E +CB0A9B91F02CAAA3B8A05143ED6330BE0ADC9549D1AE8A46B2BB68E3002F3589 +0D5AFDA53BF17BC6E069E5B1CB3CD24362C702BF44F7823E005F0700AD2E150C +CC5E486F4AE4103A5D0C7396F31C42843ECA1EAF0632AB3EA191C0701EFA0C42 +452C72B6ECD57240A505F49CDC390DE48C5251F9232F837CE604CA7C6AC0F742 +6742EE1BA48956E6CAB43F05485A4457F44BFF2E75846BFB56F9C34B17CBF84E +4133424ADA7942199449554E493E2CBF5A4EAD39A22C166F02E5332197F32C88 +542CDD0D5018D322396F3BF767CAEB823ECD801D22E536D6201747DE4D2CFEFC +30CF112F6DA37736C836CE44A458B170B974F2BC9B7EE06AB478F2EB94774A5A +F18E82473C5016AE0FA8AE9DFA174F17945A5F3526C73A24D348E2A2FD14899E +5D33177E01B7D101A571E196405CA95FE795CBD73F7185DE01F99C1122B2C050 +A4D54AC01881582AE55E34FCFB39189C4482230FE1C01F7BAF31F97B59DA6823 +606D7E318EDA739F6C18B7A3F011E76EEA67C696EE9EEBFEBC8F1F95CB450D0A +FDCA2740E7CF611F427FD44ECD90CEA692377130C239B3A0AF9F492F377C55F6 +0C2910E3FBC614DE8F8F917FF5ED25702A5500D9477B5A09B0A12C9DAAB966C3 +AF6B4F5C16BC519B8D147E414C1334F009730E52C0C1242685F40530A32E236C +2143B0053A7FBF6DE9CC6DA142DEE3A61E338B0E9ECE657C046F2540CA50BC49 +55062DBDC0CC1295991242EA7C749000E114EF1795ADF45A4CE8B33DB1815CB5 +CA3B4D8703CA72082B63700BD8ED24610FF157C3BB2A704FE41AFB1FAF4774F1 +A208ED52A9684A802003AAD6D9FCD5A3CF635FCC938931CB94C751212CCCDA6E +202FEB609EB5232D1CC78DC78F60A00441965117AB45E898BEEE41B9A21D4B17 +64F5DD48296352202F5BB49BD6D7C8A031AE5E9667E077ADB2AE7D92D61EFF47 +3599436C302EA12D0C1713FDC98CFBEF052D7F06666FA15DF8571D712A3A77E1 +370D07F557A30CB110CBAF7AEFC425F9C9A4BD06F54608B44AA3B796F560711F +6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B +2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3 +42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189 +9B2F6F8F06DF0A52211E3953A57A51EE1327E6C519A50F2B0857987530CA262F +A7634CBCBE1BABB7EF1917AD836C66FB19A1C993ACEA40D291AA07755E5F4CE3 +877EA9256745044ED37695871840F5FD39ECC03B9A65955C2886E773F51BA327 +36D4B9077056B5C4D31075BDB84D95F39217123A292CCD32F072F3DFFFB937F1 +7A543C93033C9BE51423EAF43AFE5D40F75C7614C707D898342BF2E84E557470 +A08F92931617AF53A9E90036C4E235DF6C8A66366558DEEDBC6267DDB46D1DDB +B943EF9381859201FA74BC1EE0D11E52A75D89678663CAF13969A433B817D0BF +AFE672FD7B7E0E318140A2E18A2829FB9BF621B9519FD20B415F338E2DAAB087 +FD4F4FCB88E7AF5C24C95D596F35D46AE8075E7AF122CBFD661A144081C53AC8 +AEB6F0121693634DD7514440936609024EA1609687A6BCF2AAF1302FB5D59126 +E724B35374577B44AD979B36CCD696E4B8C86B659C7A07C12F1B07DF63902F46 +DB26E527586481898BA0C1C4D0343E72D90C446446C5A5BA75B6D6E3A45646E2 +6161A12398845D942EC234685037E7FD00EB78E2DDFEB6FBF29EB0D2507ED3E5 +645F4CF42B5164A3052755B879329C913274965209606A41AA739A8072E3C7A3 +68B2E9B1FD527C93AF479C377271D51821315A483ADBE61E4E5B8AD254E17DF9 +4D4832CED4009A88EF7A13CE454500545B81911091C6965B384A8F8AF977318E +3F5C7120A28882A2176C5B815E337C52FA5A66BEB55528A34FAADB58884EA98C +D8226D65ECF97382A37C9D02350C87F7D9E050D45814D2DC6B2490EA5A19D366 +10D06715C71F9505F9169A3B210B1B8ADCF919A2CFC751BFC47AA8132F660073 +5C6C9629E8DF4A06AC8FD77039C5B292BA00600E039217297C519FA7CDC5171E +5B8E1DD51B4DFBBCC7BEB3AF99C723F4C6148F6F4187E15C9A5C5F24A565722B +FE9DFBA7CC0C6A01BDA00C8075623ABCF59FB8062983174198FA1818CC644D6B +A7C7E3773993773D2B4C009FDAF9DE26A95EB4F7B7157472028965A2AE646234 +B13F3406DD2C8C078CD8A4078364413CBDF63FB582B25E9C0E4B8A7F9F0BF493 +E9E1F0C3B711D5FFBE44E588422055F792D7D5D3A2482120333C99AB487308BC +614DA8C5B16E239689ADE4FDEB69E9F61578786E38036B913EE77A89B3B7867C +E27D009FB44BF2D9DFDCD9F66FD2D13BC1599B13F2E19F4D34182B3929758BD1 +F0B825E52213B52C5C091DD2E6E9216CD4E8AF0B82A0789FE40DB0EED926AC4A +C8A67A33101086A925F3E677B7F6EF0A5C33CD3A354464EA92C3D860B90D08F0 +7E2CD9F57A06EF377955ADD81969BB714DD25267F29115C02FA60F8F7B3E1646 +48FB8C60D0F0E08560DF756D96F320ABD285FD35FFBAA476C6ACB989BCF92394 +11CD8FE3FA053111EF9A7CD5A32A4986150A5F800340849B5D4CAC1FD9C581E8 +D0E0166EAD80174CFABC7EEC0F1C3928BD465CC690E73DE9E0F91ECBCB6E694F +BA399F2998FF36013EFADC8D4C24D76EFC29AC6EC6766E61FB9D1738C70848AA +C5E93D89FD24B6053F40775BF36A1137464BAC9CADBC12CFB564B030D0AA2CC4 +0D2C53EFA25F3DB0712532C89D9156B498B9FA8D7B5F6EFB475650866CF6E79D +DA67C0533FD0F8536CAAF909744672E14CA51A667845689D5D94473242E1B804 +D6A717F082000AE27D8A159BB2042E36FAE0B193DBBB218F5C528BD203F4D146 +057399E10E7BA35BE63B729ABF9DC1891239A573A67B44E361F29962A2C4E628 +E106F9E0A7390B0EDA6FBFA1DFB6C99C71D56E977B1EE6C0D2AC1FA77511F2A0 +4F80FBC1173CEF67FE8D3F0EAE17224FB730041148F4E9A6E7D401810D30A923 +249F6DC070651B57B47A513DCD5C06D82C8319A92629B36278EB6BFE9739F203 +26B15E42525FE6D439BA608478213F5848E8BBAB6872011F130F003A94C8612A +ED46690E81CDA8EC5948CA0F57455116B81A0AFCB200285EADBECAF3F3249279 +E80D9ABD82F22F12A9E14F6BC249942717E73CFF0BF9B205301F80EA09C6A847 +AB937AA4C2D0E60AA335177B4B86A1D4D5ACEF074120E2DE632A82598D51FCB0 +B32C6C900255A00101E57AA5EFE2DB09CC07BE8DC99F796713092DB97D6912BD +D8B0C40313F3D6061F0AFC4B89413514A9EE113ED95BB7729E29F144AA0D42EC +CBDA616D1295537975D0E09D3F59F7BD2D5965E2C35C85EC56383CE14EA9D8FB +7F28F5A3F3088F970C4BE07982E140F52E1345FAEFE04F4C508A33672611D76E +33DC6BE4C84BBAD738A71539E8416E5C8B2DF65068B29FA0ADADA5992DC6941B +AA856C98EE3B244520159B884CF4339C891B86E917E7DD54A712B5B572AB5696 +9256DCA1D8E073C2F5E754C845FF861419026385F21F5B5134372D27AEE08B72 +E234E74D06FAFAA327A769105DBD300D0F75C286F4AC3A7706B377321B828CF9 +85A48B4394C32B09F6CA7A92F93B8143AFB83FB6C1FB0F181C64A23C04651AB1 +830A7CB62F5755D3A0B780FED3A290C752678D4A30C7EE1B8179749D415202DC +85C2DF88383A620044BF850B733EA1ABCD96BEEF7BDF2FD6EA0449B6D61DBD07 +D3A8FABDFC7961B06F7C2F2906BAB7A3BD33BA8928109E8BC4B405D9163D3CBC +5C664B1B2A18BC21C3EF35CD3E7D99999DA3205F41B15BBE2C9E76CE7EECCF18 +E5186D5A4AEF72CD7DCF1C76DF9CCE29C92BB28B8C1A9A05C4602B82DEAB9354 +9258C2CBA3D9146358B69C420BE22F1603F6FE4C39D2423FDCBDD2BEE0BF6B40 +4F7BDE641C19DCF7684E7495EADDF3A86D3DA4C4E93DC00398C5CCEE3F3C95A2 +D72201367CC2D4A5BA6B0DAA88E488CA671EF45FFEBDFFEAB634811BB0884670 +7EA730CECC91C30A2B6ED9CD41CC8465209F05DF45C3FA514703BEAFF3A6DBE4 +978CD593E8E540D4B2D99055CA68FACCC4D1A2F709615805E885B840A806C952 +E5B0BA85C23488AA8EEB924B99489C748602F82973B081BAB206D808C08F8C11 +75B1D192FAFF8C8BC3148AED1B7206AEC32CAD33D1E15DB3CB4CF58957F2FFE1 +9A2D1E838916289220638EE91B9DDD691EF6D83017F35EB2E924708E655A8CB1 +CBA59DCAA9F787DD62352699DC1AD43CA225BC10B53B8298AC5B8C316FE433A5 +FFF41E657EBF3DA92F7815919E3693C9C6F14098F35F206EC9D9972517D1C233 +6A838D0FC455502DE6C9CFEC92560026D5E9FBFB9CA05A15BEE9992F7FD73779 +3AF7CBCE1CDE7AEC92F2453431A1712E20B7C8222656589D379348583058DD50 +035F956EF757456D651B53B0E2E12AAC4FDF5B063B9BFA53DAE05542D55AF892 +B2AA10EB49EB839625A0FB4344F552F24279DEAA4E0E25E5EF1C73DABE4F1C84 +44CA224F92C9CB2FD5EBDBB510B98F3FCADB388FB72418BB298934195D623CC4 +EC6177AA90E8DC19CCCDD49B0B5E4588DFBA825C32135F92494B37C5C13C80FD +4199D717A7BC47E9F43ED5751DBF7DB3B1296E37E6C4E0C9858C4FB0EB5373B0 +E70643A0BD54D080D8B4A7EE78A455240D2BA072A20FC76EB2121BC58C1654CD +2F9EB646568BD4C95F4AD8505921041A20DA936FE009F1758CECB5838173133A +ADF49A309504BCA3C0E1C61CAB5ADB599130F1987943B7A2D0AA2C7883AD7BBC +5483F8225867EC447117DD15D7976B924F12BE6D1D83E9157E02FFBD5D9BE32E +3173FF8C0D6DE6E8932E02B2ED98E320172C97118F8A20049CACE8CC3DA954A7 +6613384E2619602E9BF84E3470B14A692371F6C9BD320D207BBFDDD4B5F7FD10 +16E495EEF83B33C6A6E490806C9E95AFCA72209760AF1BD12E8D454E29882181 +1E78BEA63628526F89724BCBA66266EC783B6CC3846F9C4F14E49ED879647D0E +79C3EAFE8F21A85727214955CA5F7E4C4DE351D560C2E5F6585572B31199F88D +CCEDB5E2F1D98627F4D701E06D1492DE6A6BC55200A18C811FE7F34BFE805AFC +CD62FF2CC89AF62DE15A81E5749DFE00DF841697466967BD315E282A21711EDC +ECB58F3C0469CAEBE96FCF3C34AC90428765C57419FED782EC8F497341565D0C +9ADB90CCE9022B299C7B7036FF1773AEAEFBA6B4CAFC5CC2E1EB60B01DF29813 +F7990B64DCDDA4E8D614907093030734F52C87D2D70F6C41314E02231AA15E22 +5B4EAFD207E6003C88A986FBC0678FD6385BD57F147EE134522E16C674183041 +9CED60638095EA1574C7A56A1A08ABC233D65D257D64594E3ACC6FECD22D6277 +62724C1EA3BB6E141D8C1318E6DDF314CA8342FA8AA3D586DDCFE9B491A34D06 +FB96033D2CF9A0CE07E5B985F953AC5BFEBDD740BF2E4E84234A9873CFFCC429 +E62C40E98C198C6A8600375B8C57F94B99DB9F39718718C63F71B7013BD50DF4 +8B07070F306E3867CE805847066DE7A8889F745CA3325AB658AE774229A12EE0 +2754E9AE1A2CC0BFB41CE64EDE6C35F64D3B31393A633961A65B0948942435E3 +C135496114762A1C96C359A017102CC8514ABC5F8FD478C4D948377C62095B0D +5941FCEB8976498D64E5AF4847E90D91356B02F5D3F1DD82EE9CB361A7BD30BD +90ED3211D307B07A3E86C65CBDC303D1209F45B24FB163893ABCDCFE016A618B +EF5577344EFA756DA4BA55B4F5783D97398D9F0BF1E2C4ADC5CEE0197D7FE6AB +5F2993332A8F5D1505292307642A38A29217AC559BAC069186B81A0CD3061A8C +87F94EDE385C9E391EFF99F1D4BFEC8954F396314A75D66E8051B334048B243D +B4997AFB7594C8A99364AC553875A4E136C4E6BE5CC819D74C6B6A242FF119C5 +D65141D2C57A82C6A23FB2CCE13F7B0F9D0F1F638A285B828EFC971A6DA81560 +7069805EF29C3B54DCCC41304E41EDA03F49455FE03D4778544926538ACF49C0 +145CECAE7C3E55C7524883C0F3AFE5434A728960653BE4A85348763E2A32A12E +7AEDF42B6CD1FA2F3233A677F914008A55EA0904BC3AB68A578F71EB628A3B9C +D044EE55D7E0199A1D12254371E9178CD23B04EA9652F138104C81DB89625F79 +8DE1334A827DCF796A23EA8B51A1E694F2DD4F90A9ACCD4444B598DEB7C03424 +325FDABF04A476D9F5ECFA4F3FC0117FDBE5038FED06A0A37081D72158A97BC9 +ABE850B51A6875B8D71C31F6A47B65DEEC08C1A7A2939A116365B21B58324065 +F0764301DA41634E83358DBD3D5443883F2CF9776FEFEB5671D036DD05FF9FEC +48E47776C13E10F7FD4EB2E542B4A8D74E1D50DAE2FD949235838C33A9940EB1 +EF77C7655DDC5C2CE4C16303DF83E4CC78DF773AD2E3273FF071E4B04D0FC8E3 +FAA7EE4880A63C620F02E13AB11D05A61C97FF1189CDC9BDD7D5DCD77FE5E59A +80E0FFA93B933B37CC51E382C264281704D35A8FC56D31E7B33A020C25F22A25 +91FE54E44380484DD5676FFBBB49AFDE6682FFAE124A8A126483C207E6442F28 +5AE4A7BF8CF7FE15A764212C5D69B290D174D586E7D7720DE5A4C39C00B7CBCE +EC1C270661EB0254A773D951F44170306A22866CB23F9C968817532F7BAF9B50 +C4CC8F167D11E24F3C673F466BDA42936AA8EE3A28EA11C0BF7C67598DB45862 +EE00FDF6A9FD7A1A66F3616E1910422D17466D169FF553F2FDDD533A7E0271E7 +870EAF618B153D88BDC83FB599151E6385C2EF9A10D8E60FAB9769D92F230838 +F68922A3CB0A464A4CC11DB15F452B990752F49C114A5CC8B683F44C6C430D3F +4B72157F1D80D39672CB326DD0FD543B0F269B70C3F9901DA2A4308CAB155C1D +0641FAD7B74CB1CF11FDE1078EDF5B97C18C6E21CCB01768537D5E4860BC090E +45617C7D605EB165C1882B111A0FE68ED219D5066B17C10EA722965A5B5AED1B +AB06E59D586C1FA30F806B01EBB9B2F16890AA768D4BCF8714F5DDA695E00D5F +D60063E20356610830D24DB4BBF20C6FB34F9D0772AA79904A81FBEA67E59254 +0E93D259FCA04ACE24FDF64644472B09C8919E7FF0775744460026E6BF994E85 +20128B9E699F5AE3E54FFC891B59FDADA39D0F270571FC1349E036B95D7A138C +73A4C487E1009677EEEBFF2D4AC4FC8B54082F9556104959F6D5FB7F93F55435 +82AC9F999D2BD61FECF71669FD2A92F79CA12C8ACA80281E5023EA0F5F29C545 +DA6912173E8C03774EBA0F6CF988E97360A0F025EBB33A4D96F60542F8CC55BE +9394D13D5416149D28FE1E2737D99888846182153CF8412750DC06DE7D69CA8B +4E2EF5F60BF49E8FA303307DD211ECB9D48419A61A0F1FAF7F27D047EBDE5E47 +10BBB3D73217BD6D02328039B28F6289ED67E3685380C89BD7C863B10A5CD28C +74FE3D9DD16CD17670DB0372953E2507669C4C790FD78571FD084870D2BCBE41 +2BB1F34E907CC27345776DE346EFBEFBB3E1CDB281C57EF9C35E201605B9FE9C +29D7C668D3D978773AF7B0ECD12DA7F3DA93549740246B962AABE06B35C70960 +5E2584C24AA8C85D57F30D26997B708728970F2088C7CDB31951F15553CA8F84 +10F6736DEB73F54C8C7385ECE031E21659919200E0405F7C125C2F02E9B91CA5 +F7F16189ACF40DABD4E49ABD0655B38A9F45DC55580FF6117EFE285B244E9246 +73B994BA85A3B34189E5E501D7E62B75DA9264EA295D04C2376572D33EC65660 +3AED8708ECBD0804C5192BEC8E76DB9612E61AE8F4A7EC82C95AE01AE4B2AB38 +E0AB1E8FDEF7FE0B767F81D85196D46F915AB8CB3E9228293762EFD7DE31F4F9 +0DE2FC0E65E7D82B882A809DF681F19DFA11443487B6280518579F98B4F1A502 +EA4B74C001DE061E8C09BF15FB500A26AB8A63EC8D7957DB52FB736D6AB6D401 +ADCF4213EA6CF340E1156D125DBD8B19F456008F8094E98B06EB6DA5096ABDC5 +6BACB34BFA69816F1F2265E0117177A5544502BA91AC3593E2930AA30D276CA7 +59A56BCCF1CECA5A74D6BAA897BB4103249F13C8504DE04E5C0E22A733D7CB62 +153DC1E8534706C59D20F2BB5966CCE975C05C4F95D1BB69C7D45FF329F8C01F +CCDFDFA2C0941B083203D1F0A7648B7F6B8C33A1115081A1DB09D9541088494C +AF44453108961AB4161A40A2A1A8F1B1C454E181D9AD054BA86FEBE2A1B901B9 +B9A9BA4B9633F90D45C2138CCF1EAB4BEEEF2336EDE66FB7CFD0A84A226ACF64 +680C748BB7BDFB62F93C2BEE638ABB3A59F3CD19055AC504A0E160CB13A7C1F5 +1D1AD0095D138A3FD85F25CCF4304E82D758E963C69CB8392EA5C995B7D1802C +9D7CB493E2F572E9998346A157CF9FCBFB95846088C7376AC82F58BE46B16281 +A87532D5F6EE9E85C23C3F1960FF99CD970E6EDD1BE8D492D312359BDFBDF59E +E0B6738BEDC5F16B7EBE0F7A775EAB4BE2CBD067F7F77CAF443A4BD9AE10B7FE +7173FEE658922032B21F77A7A48325E51CC52FED690023344E49EF2614F0A63F +D474E6D89BE40194235F5BD341B449DFBBCC9E8AF23241A36EAA316BAB5FFD8C +69DA203716290169CB07A0EEE2BC4BD005CC548090B8D4EB82104C83696FDB7E +10D4B935924EA19E7C35E9379F204C10BB0854C55E7867194D9D3544EA1DA675 +5E9B3A0792BE2E87B611F92BBA99C01ED1F21366699464733D774BEC5B0A2B4C +6E8C68CFAEF8E0C69A1685BCCEBD8900C1E9C5CD26808696D16D125DAB3E5A79 +4A9484029864AD3BBDA91883A4D5DB1DF9BF789D7F18A6D5BF13A72680682A5B +196BC80E977E553FBD0EA62F08952013D77814F6ADDFC5C68A667B43B26FCD50 +EDD49E8F1B6DD262DC0B4E2EF5A1150B3DBCA61E4F0ABA689BF862FB62AB65CA +1E64F0C816D45BD236B557E1A8668EC76644EF5F607205E3F789CE757D4FDCE3 +A4D9F039F1CB8A40AA352BFBAD6643E30579D4265002BD3EFA420E275FEAA4A9 +412E33C557C0625F06A565F856989D62581CEB59A4877CA6DE7935E7D7CD2D81 +029F282754F1D25B522EE9374EED11147A229A44D5447F3265226E0889DB7C4C +2D262A6CBD15E4565C324A5508564CFEE3534C4572581E818396620BF86AF511 +3200CCAA7DB922183B3D4DD6A9C2429AAEE0A1384C74A61715E96C5D69A4E4FF +6408DD6ECF517D44BC8130971441BBD4819D25993C4CBED0591CEA1D2BDEB54D +CBF02D516A2AB97E6EBAA7D883F90C521C130BB0049FB9C22A55402C162D1E54 +2EB04A71BBCC56812460362093742AC01579A95F3E0E1BE0C6E26FAACBF5980A +A1EC5FE4811A1506C01931ABD5AF4800CD13EFD3F6F5B5F1A862EB3E7EA70CED +FD99468911AB9C55E8A5CFE3F17855AC3825BBF7EDDDB6E44603F8E9FD0DBB51 +A990B69EB47CBE44770BFD17A9DBA044FDC61AC83F5017B5C0D2E6521A217503 +430D75EF4BFE5FCAE780CF8BAC999C8B3947AE40BC76CF2BCA11BE8D4EB40BC7 +EF1E2791B9F186FE4CC9426E909162AA6B8ED62121844A58A7AD67A119A94F8E +875129AF889A8B2D49B7822EDB60132A4CFFCD4D5484E9967A3045B9AFD4B608 +A9BB626BF68B1F304E2E4E8F3E492E07DEBA18627ED11EB09E3C619B1DF9C7F7 +26F8BF1463A1E2DE2156B15FD44199E7A0C130EFC3EA967C0C8EAC057D821733 +7C923B779B2EB4C7F8CDA663708FEDFDDD2359B1DB313CCC890F7188DC1078C2 +FC523A2AD140ED1197301E87CA2F279B3545829AB7BDB40FC5FCFE5034EA7A70 +EF18705FD531098B573691DC707570426AA6FE1462CF9DBF00DC67D81FB83FFE +CFDBB288207180B0BD705938B41AA48E68E557186BAEAD79759D699266A9A9DD +D7477F7F45E7F28C7F63F597A7E67762DED6C385EB2FBE9CFD52A5D714741720 +5BB4ADD90DDBA6C760C231A58AE55F2EAD1EE93F11C5E8C708F22DAB168469B9 +BD3FDCD68EADBC1CC464C54E0D16C93269010EBAA0C5370E8E945C7BAFF08A95 +940A574143B6F9670D39FB03A25E49E164CD4DE8B3131FAC9D15F5B0447CCFC7 +4452E108BBA7358698B0FAB49402B21C3A69000223667EF56BC5873CEC8D8EE5 +F019652EA7C433C11D7B0C4996F2D21899DCBDED1A8D530733A7C92B925F75B1 +D2D6A25B3862BAB0025A66E29BB5744AF1F68CB10DE298C36B620C115B942F90 +3912F0D9646907EFCAAD7C05E5E0B053F3639EAE98A853466C5F0ADB18495648 +262C3FB2813EEA2D2211B71F1447522E0B4C5C745EA34A154214D57C8943893C +248CA1CF244490775F70B52BB2D959A9D892A241C298C495FB39AC7BF0D6C655 +3F150712AA065FCB56C3EB03F8A9CA8268DB79C11B4CEC8C9E84DFDD2BA3671E +CF1B12AEDCEAF5884548F7F9EA628262CE709321E47F8B4214C2A108E5ABD663 +783CD6AC5984CC08DBEBA75F7ACCF2A3A6CA42BE5A3777080F30182C1C038F6C +9426B5488684A0E82966E4C8EE3ECD5674B6E5508F43E0526E14F38618BE6DE9 +EE175DA4CA32A6405D726C411D89C755A8ED1F73D9DBE67FEADC9DB448668FB3 +CB6838C400F05B902D27F3AFA0BA11148541288201DFEC8A08D6B3D1D972AA53 +8DAE043A766E84CEC8894D30B7E77CAC1683363E747A4FEE17D9B83BA9754796 +20FC1A0AEED75C71EF48FED0E99317B67F690F615CCD479133B7E08DD8EB46CA +D5895810E01E07ED6D17BB54F5B9AA19D2B1ECF2795E777227B12242C07BCAA7 +2D5F6AA8083B43C6928FA28EECE66CB90899763AA1037E4C1AC76741097DF3F8 +6BD297528CC9F538C5AEEFD5A7038CAA230A09DE750B740DC8398072A0876528 +946BE8088F6EB74ECA0CC1DA30A43AC47351AC7934E90A88DAD80EC957087768 +B9893241462946A9C5A843D454DF125A906D70D9C4812EB36759537E0372D2B5 +3F4905D8F605EBA26C49A167D48E177BB6821FD39E775D9569D387673B976306 +57537EB480132851DED5740C2E175D5B08CF40BE96EC1810865DEE2B52B1CF44 +CDE1607EDD185CAC4330016DA7343C9F3DCD21BB3492FA1D027CF81E76E45358 +55F5DD22884FB50B80A2388F673EF7FD7CFF4AD4AC212EC5BBFED0EAF7ABD2FE +1FD35C0C7360DA40622DA59FEA983B702A6C53FB975EA85DF0A5DACFCC8C8549 +786DAE9D57A2029DE7185AD4E283AE57618BA3CF37744C18C882678F34A161D3 +8ADD4757DAB9B77FB891EE0DE945D551043A286426751CD6A62279E99F21D0F1 +C4E3042E8A474AF9920CF416B50A94ED092661711C4FF54A8606E1912066F340 +59CD492D9BEA791E7AC9486E6CB214169B238084ECA7515D03F9F78601AFC144 +18EA9CF8C814CA5D2F05AE6D23BED9E8A0D41E323CF572CE98599BAEA8562285 +6327E1B8A141E395C2FFE6DC90F6648598DF8B8389D8AB2E1D982F1FDC71A6CF +51994FAB23671F641D0A54906AD41759FFC09A2273D48AE572258FAFB3B768E7 +2CCDACF0DC0125F7E1D56388B817F0ACF62258E3F80317494E3D21F8A317AC28 +A82E16A930CBB531D05F7BA59667AFD26474333C201768124C80E97F92EB0A6D +73AE9A8BDD37FA688920AE2A5AF906CAF90ECBA54E5F6ADBBBC0F45DE40F147E +B2F17C816231D41ACB54D82D2D3498A9D41A4172BFDB56CFA196986AD6D28430 +983186893BA6C30408997347FB265BD80EE95E011E6C397D1D1592CC1C34AEA1 +7706D3B35D946E0C0790652F688879A53231202AB3A6B495E6E251E6829F0549 +94F5A375E8AC0696660E002B6C195446D0E08BB7BE160EFCF356A81BEDA21934 +B3365D78CEDCCDB705594895418C48D91C9AD97637D37DFE69624F7885106965 +C574270839038CC543B62CC351A2FEB42F664810D5613D27B1D86351C669FE8C +37787213F68E0657240DF253186228CA5CEC4283A4C0A125F6262B566190B701 +3AF5BDAD86A1F84029FDD7ACB5A11A23107E5413E67809AB9DA6BA5C3CCCC2EA +9D4270831EAD274C3AC9DF833BC8EBF339376EADEE48D748C4F71C97B43DBA6A +FD014C2F73B6F18EB9E52F3A7B1994B00E38020C6EF4529C318386E1F62ADA34 +95B878B5F1A3F2D7FE2EE48CC8FFB79E3140993DB96AD77281A7D314880464BD +0C205CE8A86714EE8B3A334E002DD04AFBE3C3B95E8A2B4F41CEAFA6A2CF2F95 +A06B2D1412E221D968E847313C86AAB3DE19725D2A380484CB7FE6B636DEB3BD +1C01FF657B8287339DB0A67F62AA692F14BD29175748552DF93E3247CCF71BC9 +04D1F745A4159C7AC635EF6A41106A821F3017BCA5C0D8FCBB1ABCCED6302ED7 +B9DCE19F8E88C23CD19CFA9550FC79A609942ED70B8E6BBF29422A2D7E28B9D1 +4797414CF2766E7CC48626049DAD906C45EA994EF5C3352342A127081B7632EA +61293A7A688022E6380B68CB3E60D5F464F8B2D1F185F2C56D2879C65F1EDC6C +E31AC52A05C95D96DFE2AB700DD868C718EA003669F163CDFFA3568DC92941D7 +471E6B53BB763A3A6CEEC8771287709FC88D048749CACC598977ED1676EF1F16 +34B7285528C06B059EB6528368F622FF958555AFF122823B4FCC62E4AA36BAC0 +B7CD09BB34A19A926A66AF74F996D7A6FDFBBCAE7BAC2F7C6F9432FFB4B767E5 +5EC547750CC6C4CD4202F7E289B7E8A842D8046BF9D3F38F5B401DA65FC0A792 +4EC3116BAD5B959468EDBCA52C433209E602EED5066765E2489C6BBB0F094CE5 +5FC789A3413D958578ABDDE73153553092916729EFB532556990ADBC56865AFC +A9812247D518F0E035E08D9DEA3C3764041F02301DD5C66EA559B3D47E18CE25 +BB4A6691C178902DDE9B1ECFE9CAC98190BB39465B5B1736B15583708878CE1B +E81750434A6D847218D4348AF6C56A2FFDFFE0934DDE3BB25A9678FA201A67E0 +717A6311D0E49A9474A29B0A251473F267C7F8886B9B55BCB6F609D98D2E8038 +718ACEEA982EC047A5FA3F28F9546A8010A1DF995F41E11E64B997046CE7EB2B +3556D4B27D23AF70E78A0EE95BF48FB0F7C217E39EE61DB6635EB84434464C73 +2D3B0F36AC2959BF039038A018ED1DE4CF72B7BD7A51D5CCB9FEC0B2B1968E19 +23491E9C97ADB33FC9B09FD5EABAD326D0BDBE90AFB69122C71A488F401CD387 +45DD12DD92022DB180DDCBB531ABA3CA4A5892F3E1D3528384596FD646ED97A2 +C9E2C29F1299FA52159F7CF060810CB99F2B1B261708AAF94AFA022F9A3CD267 +11432D4DF4F9F7BCF1434F9D9C94EC5BEBC6C98432BC339E0DB2461623880887 +1CFE5DA076E7A3CED52E2E307B1CDDB1D0E273A4774177DB4664C75B69C857BC +FB693B1E0DE72065D2B6BF7466FD272B1BF9DA5B838E04DA93C92F7A526F4389 +3063774999A51F2A863D118592 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2295,7 +2302,7 @@ F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -TeXDict begin 55380996 39158280 1000 600 600 (org-ref.dvi) +TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi) @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 @@ -2323,10 +2330,10 @@ TeXDict begin 55380996 39158280 1000 600 600 (org-ref.dvi) rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54 -51 50 53 6[20 6[35 35 35 1[35 20 24 20 55 35 27 27 20 -2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }70 -66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61 -1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 +51 50 53 6[20 4[35 1[35 35 35 1[35 20 24 20 55 35 27 +27 20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont } +71 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 +61 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552 /CMBX10 rf end %%EndProlog @@ -2339,7 +2346,7 @@ TeXDict begin %%Page: 1 1 TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h -(3.13\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y +(3.15\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h @@ -2467,81 +2474,82 @@ y Fg(<vm:folder#id>)950 b Fi(VM)23 b(message)2046 4073 y Fg(<vm://myself@some.where)q(.org)q(/fo)q(lder)q(#id)q(>)105 b Fi(VM)23 b(remote)2046 4143 y(W)-6 b(anderlust)25 b Fg(<wl:...>)h Fi(and)e(RMAIL)f Fg(<rmail:...>)k Fi(lik)n(e)c(VM)4242 --364 y Fh(T)-10 b(ables)4242 -255 y Fd(Creating)25 b(a)i(table)4242 --168 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330 -b Fg(M-x)36 b(org-table-create)4242 -98 y Fi(...)30 b(or)23 -b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39 -b(RET)d(|-)g(TAB)4242 -28 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table) -741 b Fg(C-c)36 b(C-c)4242 41 y Fi(...)30 b(separator)24 +-364 y Fh(T)-10 b(ables)4242 -265 y Fd(Creating)25 b(a)i(table)4242 +-181 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330 +b Fg(M-x)36 b(org-table-create)4242 -111 y Fi(...)30 +b(or)23 b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39 +b(RET)d(|-)g(TAB)4242 -41 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table) +741 b Fg(C-c)36 b(C-c)4242 28 y Fi(...)30 b(separator)24 b(at)h(least)f(3)g(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242 -128 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242 -215 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h -(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 285 +113 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242 +197 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h +(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 266 y(Outside)24 b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n -(e)h(other)g(functionalit)n(y)-6 b(.)4242 371 y Fd(Re-aligning)25 -b(and)i(\014eld)h(motion)4242 458 y Fi(re-align)22 b(the)i(table)g +(e)h(other)g(functionalit)n(y)-6 b(.)4242 351 y Fd(Re-aligning)25 +b(and)i(\014eld)h(motion)4242 435 y Fi(re-align)22 b(the)i(table)g (without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242 -528 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld) -311 b Fg(TAB)4242 598 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762 -b Fg(S-TAB)4242 667 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f -(next)h(ro)n(w)328 b Fg(RET)4242 754 y Fd(Ro)n(w)26 b(and)h(column)g -(editing)4242 841 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left) -544 b Fg(M-LEFT)4242 911 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f -(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 980 y Fi(kill)23 -b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1050 +505 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld) +311 b Fg(TAB)4242 574 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762 +b Fg(S-TAB)4242 644 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f +(next)h(ro)n(w)328 b Fg(RET)4242 728 y Fd(Ro)n(w)26 b(and)h(column)g +(editing)4242 812 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left) +544 b Fg(M-LEFT)4242 882 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f +(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 952 y Fi(kill)23 +b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1022 y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition) -104 b Fg(M-S-RIGHT)4242 1137 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f -(ro)n(w)f(up)678 b Fg(M-UP)4242 1207 y Fi(mo)n(v)n(e)24 +104 b Fg(M-S-RIGHT)4242 1106 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f +(ro)n(w)f(up)678 b Fg(M-UP)4242 1176 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242 -1276 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h -(line)291 b Fg(M-S-UP)4242 1346 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o) +1245 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h +(line)291 b Fg(M-S-UP)4242 1315 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o) n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242 -1433 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h -(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1503 y +1399 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h +(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1469 y Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n -(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1589 y Fd(Regions)4242 -1676 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36 -b(C-h)g(C-w)4242 1746 y Fi(cop)n(y)25 b(rectangular)f(region)715 -b Fg(C-c)36 b(C-h)g(M-w)4242 1816 y Fi(paste)25 b(rectangular)f(region) -695 b Fg(C-c)36 b(C-h)g(C-y)4242 1885 y Fi(\014ll)23 +(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1553 y Fd(Regions)4242 +1637 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36 +b(C-h)g(C-w)4242 1707 y Fi(cop)n(y)25 b(rectangular)f(region)715 +b Fg(C-c)36 b(C-h)g(M-w)4242 1777 y Fi(paste)25 b(rectangular)f(region) +695 b Fg(C-c)36 b(C-h)g(C-y)4242 1847 y Fi(\014ll)23 b(paragraph)h(across)g(selected)h(cells)399 b Fg(C-c)36 -b(C-q)4242 1972 y Fd(Calculations)4242 2059 y Fi(Except)31 +b(C-q)4242 1931 y Fd(Calculations)4242 2015 y Fi(Except)31 b(for)e(the)i(summation)f(commands,)h(these)g(need)g(the)g(Emacs)4242 -2129 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2215 -y(replace)e(curren)n(t)g(\014eld)g(with)g(result)f(of)h(form)n(ula)129 -b Fg(C-c)36 b(=)4242 2285 y Fi(...)30 b(same)24 b(calculation)h(for)e -(rest)g(of)h(column)267 b Fg(C-u)36 b(C-c)g(=)4242 2355 -y Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96 -b Fg(C-c)36 b(*)4242 2425 y Fi(re-apply)23 b(all)g(stored)i(equations)g +2085 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2169 +y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 b Fg(C-c)36 +b(=)4242 2239 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h(form)n(ula) +433 b Fg(C-u)36 b(C-c)g(=)4242 2308 y Fi(edit)24 b(form)n(ulas)f(in)g +(separate)i(bu\013er)473 b Fg(C-c)36 b(')4242 2378 y +Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96 +b Fg(C-c)36 b(*)4242 2448 y Fi(re-apply)23 b(all)g(stored)i(equations)g (to)f(en)n(tire)g(table)101 b Fg(C-u)36 b(C-c)g(*)4242 -2511 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28 +2532 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28 b Fi(trigger)h(automatic)g(recalculation)h(in)d(lines)4242 -2581 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242 -2668 y(rotate)23 b(recalculation)f(mark)g(through)g(#)g(*)g(!)30 -b(^)p 5533 2668 22 4 v 47 w($)71 b Fg(C-#)4242 2755 y -Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354 -b Fg(C-c)36 b(?)4242 2824 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren) -n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2908 +2602 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242 +2686 y(rotate)25 b(calculation)g(mark)e(through)i(#)e(*)h(!)31 +b(^)p 5487 2686 22 4 v 49 w($)115 b Fg(C-#)4242 2770 +y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354 +b Fg(C-c)36 b(?)4242 2840 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren) +n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2924 y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 b -Fg(S-RET)5857 2885 y Ff(4)4242 2995 y Fi(A)27 b(form)n(ula)g(can)h -(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)g(in)n(to)f(a)h -(\014eld.)42 b(It)28 b(will)4242 3065 y(b)r(e)c(executed)i(b)n(y)e -Fg(TAB)p Fi(,)g Fg(RET)h Fi(and)f Fg(C-c)36 b(C-c)p Fi(:)4242 -3152 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 b -Fg(=$1+$2)4242 3221 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r -(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3291 y Fi(...)30 +Fg(S-RET)5857 2900 y Ff(4)4242 3008 y Fi(A)25 b(form)n(ula)f(can)i +(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f +(\014eld)g(and)h(will)4242 3078 y(executed)31 b(b)n(y)e +Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47 +b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242 +3148 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n +(ula.)4242 3232 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 +b Fg(=$1+$2)4242 3301 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r +(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3371 y Fi(...)30 b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352 -b Fg(=$1/$c/$cm)4242 3361 y Fi(Apply)24 b(curren)n(t)g(\(for)f(this)h -(column\))g(form)n(ula)200 b Fg(=)4242 3431 y Fi(Sum)24 -b(all)f(n)n(um)n(b)r(ers)g(ab)r(o)n(v)n(e/left)j(of)d(cursor)292 -b Fg(=sum)36 b(/)g(=sumh)4242 3500 y Fi(Sum)24 b(just)f(the)i(3)f -(\014elds)f(closest)i(to)f(cursor)279 b Fg(=sum3/=sumh3)4242 -3587 y Fd(Miscellaneous)4242 3674 y Fi(toggle)25 b(visibilit)n(y)d(of)i -(v)n(ertical)g(lines)474 b Fg(C-c)36 b(|)4242 3744 y -Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 b Fg(M-x)36 -b(org-table-export)4242 3813 y Fi(imp)r(ort)23 b(tab-separated)j -(\014le)447 b Fg(M-x)36 b(org-table-import)4242 3900 -y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i +b Fg(=$1/$c/$cm)4242 3441 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n +(v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3511 +y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518 +b Fg(=)4242 3595 y Fd(Miscellaneous)4242 3679 y Fi(toggle)25 +b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36 +b(|)4242 3749 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 +b Fg(M-x)36 b(org-table-export)4242 3819 y Fi(imp)r(ort)23 +b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242 +3903 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057 y Fi(recognize)25 b(existing)f(table.el)g(table)474 b @@ -2551,7 +2559,7 @@ end %%Page: 2 2 TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h -(3.13\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150 +(3.15\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150 120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458 b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793 b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g @@ -2623,7 +2631,7 @@ b(C-x)g(h)2046 169 y Fi(exp)r(ort)25 b(as)e(HTML)g(and)h(op)r(en)h(in)e b(arg)g(sets)g(n)n(b.)31 b(of)23 b(headline)i(lev)n(els,)e(e.g.)182 b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 337 y Fi(insert)23 b(template)j(of)d (exp)r(ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 435 -y Fi(toggle)25 b(\014xed)f(width)g(for)f(line)g(or)h(region)346 +y Fi(toggle)25 b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295 b Fg(C-c)36 b(:)2046 534 y Fd(HTML)27 b(formatting)2046 632 y Fi(mak)n(e)d(w)n(ords)g Fd(b)r(old)897 b Fg(*bold*)2046 702 y Fi(mak)n(e)24 b(w)n(ords)g Fc(italic)898 b Fg(/italic/)2046 @@ -2676,10 +2684,9 @@ b(Lines)28 b(starting)g(with)g Fg(#)2046 3273 y Fi(are)j(commen)n(ts)g 3441 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285 b Fg(C-c)36 b(;)2046 3644 y Fh(Completion)2046 3800 y Fi(In-bu\013er)e(completion)g(completes)h(TODO)d(k)n(eyw)n(ords)i(at)g -(headline)2046 3869 y(start,)26 b(T)-6 b(eX)26 b(macros)f(after)h(\\)p -Fg(\\)p Fi(",)h(option)f(k)n(eyw)n(ords)g(after)g(\\)p -Fg(#-)p Fi(",)h(k)n(ey-)2046 3939 y(w)n(ord)d(form)n(ulas)e(after)i(\\) -p Fg(=)p Fi(",)g(and)g(dictionary)g(w)n(ords)g(elsewhere.)2046 +(headline)2046 3869 y(start,)28 b(T)-6 b(eX)27 b(macros)g(after)g(\\)p +Fg(\\)p Fi(",)h(option)g(k)n(eyw)n(ords)g(after)f(\\)p +Fg(#-)p Fi(",)h(and)2046 3939 y(dictionary)c(w)n(ords)g(elsewhere.)2046 4037 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242 -364 y Fh(Calendar)36 b(and)h(Diary)i(In)m(tegration)4242 -208 y Fi(T)-6 b(o)35 b(include)g(en)n(tries)g(from)f(the)i(Emacs)f @@ -2738,7 +2745,7 @@ b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 -y(v3.13)h(for)h(Org-Mo)r(de)e(3.13,)i(2005)4912 3882 +y(v3.15)h(for)h(Org-Mo)r(de)e(3.15,)i(2005)4912 3882 y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g (design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242 4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e diff --git a/etc/orgcard.tex b/etc/orgcard.tex index 27131a001ca..e90b602b443 100644 --- a/etc/orgcard.tex +++ b/etc/orgcard.tex @@ -1,11 +1,11 @@ -% Reference Card for Org Mode 3.13 +% Reference Card for Org Mode 3.15 % %**start of header \newcount\columnsperpage % This file can be printed with 1, 2, or 3 columns per page (see below). % At the moment this card works quite nicely in 3 column format and -% currently takes most of 2 pages. It is thus suited to producing one +% currently takes 2 full pages. It is thus suited to producing one % double-side page when printed. % There are a couple of tweaks in the format of this card which make it work @@ -32,8 +32,8 @@ % 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., 51 Franklin Street, Fifth Floor, -% Boston, MA 02110-1301, USA. +% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +% Boston, MA 02111-1307, USA. % This file is intended to be processed by plain TeX (TeX82). % @@ -58,7 +58,7 @@ % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik % for their many good ideas. -\def\orgversionnumber{3.13} +\def\orgversionnumber{3.15} \def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill @@ -467,29 +467,30 @@ Outside of tables, the same keys may have other functionality. Except for the summation commands, these need the Emacs calc package installed. -\key{replace current field with result of formula}{C-c =} -\key{... same calculation for rest of column}{C-u C-c =} +\key{set and eval column formula}{C-c =} +\key{set and eval named-field formula}{C-u C-c =} +\key{edit formulas in separate buffer}{C-c '} \key{re-apply all stored equations to current line}{C-c *} \key{re-apply all stored equations to entire table}{C-u C-c *} \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation in lines starting with: {\tt | \# |}. -\key{rotate recalculation mark through \# * ! \^ \_ \$}{C-\#} +\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#} \key{display column number cursor is in}{C-c ?} \key{sum numbers in current column/rectangle}{C-c +} \key{copy down with increment}{S-RET$^4$} -A formula can also be typed directly into into a field. It will be -executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}: +A formula can also be typed directly into into a field and will +executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}. A leading \kbd{=} +introduces a column formula, \kbd{:=} a named-field formula. \key{Example: Add Col1 and Col2}{=\$1+\$2} \key{... with printf format specification}{=\$1+\$2;\%.2f} \key{... with constants from constants.el}{=\$1/\$c/\$cm} -\key{Apply current (for this column) formula}{=} -\key{Sum all numbers above/left of cursor}{=sum / =sumh} -\key{Sum just the 3 fields closest to cursor}{=sum3/=sumh3} +\key{sum from 3rd hline above to here}{:=vsum(\&III)} +\key{apply current column formula}{=} {\bf Miscellaneous} @@ -593,7 +594,7 @@ in the current directory. \key{insert template of export options}{C-c C-x t} -\key{toggle fixed width for line or region}{C-c :} +\key{toggle fixed width for entry or region}{C-c :} {\bf HTML formatting} @@ -646,8 +647,8 @@ Subtrees whose header starts with COMMENT are never exported. \section{Completion} In-buffer completion completes TODO keywords at headline start, TeX -macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'', -keyword formulas after ``{\tt =}'', and dictionary words elsewhere. +macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'', and +dictionary words elsewhere. \key{Complete word at point}{M-TAB} diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex index df8c83566b3..dfbb5a2783a 100644 --- a/etc/pl-refcard.tex +++ b/etc/pl-refcard.tex @@ -32,7 +32,7 @@ \columnsperpage=2 -% Copyright (c) 1999, 2004 Free Software Foundation, Inc. +% Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -73,7 +73,7 @@ % If there were room, it would be nice to see a section on Dired. \def\versionnumber{1.1} -\def\year{1999} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff --git a/etc/refcard.tex b/etc/refcard.tex index d4a2194214b..5567320c98a 100644 --- a/etc/refcard.tex +++ b/etc/refcard.tex @@ -14,7 +14,8 @@ \letterpaper=1 % Nothing else needs to be changed below this line. -% Copyright (c) 1987, 1993, 1996, 1997, 2005 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -289,7 +290,7 @@ To enter GNU Emacs 22, just type its name: \kbd{emacs} \key{{\bf insert} contents of another file into this buffer}{C-x i} \key{replace this file with the file you really want}{C-x C-v} \key{write buffer to a specified file}{C-x C-w} -\key{version control checkin/checkout}{C-x C-q} +\key{toggle read-only status of buffer}{C-x C-q} \section{Getting Help} @@ -301,14 +302,14 @@ the directions. If you are a first-time user, type \kbd{C-h t} for a \key{scroll help window}{C-M-v} \key{apropos: show commands matching a string}{C-h a} -\key{show the function a key runs}{C-h c} +\key{describe the function a key runs}{C-h k} \key{describe a function}{C-h f} \key{get mode-specific information}{C-h m} \section{Error Recovery} \key{{\bf abort} partially typed or executing command}{C-g} -\metax{{\bf recover} a file lost by a system crash}{M-x recover-file} +\metax{{\bf recover} files lost by a system crash}{M-x recover-session} \metax{{\bf undo} an unwanted change}{C-x u, C-_ {\rm or} C-/} \metax{restore a buffer to its original contents}{M-x revert-buffer} \key{redraw garbaged screen}{C-l} @@ -572,7 +573,7 @@ minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer. \section{Info} \key{enter the Info documentation reader}{C-h i} -\key{find specified function or variable in Info}{C-h C-i} +\key{find specified function or variable in Info}{C-h S} \beginindentedkeys Moving within a node: @@ -591,6 +592,7 @@ Moving between nodes: \key{follow cross reference (return with \kbd{l})}{f} \key{return to last node you saw}{l} \key{return to directory node}{d} +\key{go to top node of Info file}{t} \key{go to any node by name}{g} Other: diff --git a/etc/ru-refcard.tex b/etc/ru-refcard.tex index d62eedd17bb..1083055bd9f 100644 --- a/etc/ru-refcard.tex +++ b/etc/ru-refcard.tex @@ -1,3 +1,5 @@ +% Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + \documentclass[10pt]{article} \usepackage{multicol,tabularx} \usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry} @@ -17,7 +19,7 @@ \setlength{\ColThreeWidth}{25mm} \newcommand{\versionnumber}[0]{2.2} -\newcommand{\nyear}[0]{1997} +\newcommand{\nyear}[0]{2005} \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill \centerline{\footnotesize \copyright\ \nyear\ Free Software Foundation, Inc. diff --git a/etc/sk-dired-ref.tex b/etc/sk-dired-ref.tex index 19983aeeb32..26846834b36 100644 --- a/etc/sk-dired-ref.tex +++ b/etc/sk-dired-ref.tex @@ -1,5 +1,5 @@ % Reference Card for Dired -% Copyright (C) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % Slovak hyphenation rules applied \shyph @@ -48,7 +48,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{0.1} -\def\year{2000} +\def\year{2005} \def\version{May \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/sk-refcard.tex b/etc/sk-refcard.tex index ca40c194c99..40f36f2109f 100644 --- a/etc/sk-refcard.tex +++ b/etc/sk-refcard.tex @@ -11,7 +11,8 @@ \columnsperpage=1 -% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc. +% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -67,7 +68,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{2.2} -\def\year{1997} +\def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff --git a/etc/sk-survival.tex b/etc/sk-survival.tex index ff94cc43706..346516cf48e 100644 --- a/etc/sk-survival.tex +++ b/etc/sk-survival.tex @@ -21,7 +21,7 @@ \endinput \fi -% Copyright (c) 2000, 2004 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -50,7 +50,7 @@ % e.g. in the TeX Live CD). \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff --git a/etc/survival.tex b/etc/survival.tex index 2c5ada3c160..0e164d7654f 100644 --- a/etc/survival.tex +++ b/etc/survival.tex @@ -25,7 +25,7 @@ \endinput \fi -% Copyright (c) 2000 Free Software Foundation, Inc. +% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -45,7 +45,7 @@ % Boston, MA 02110-1301, USA. \def\versionnumber{1.0} -\def\year{2000} +\def\year{2005} \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff --git a/etc/vipcard.tex b/etc/vipcard.tex index 5591f151f95..cca644b6bfd 100644 --- a/etc/vipcard.tex +++ b/etc/vipcard.tex @@ -7,7 +7,7 @@ \columnsperpage=1 -% Copyright (c) 1987 Free Software Foundation, Inc. +% Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -54,7 +54,7 @@ \def\versionnumber{1.2} -\def\year{1987} +\def\year{2005} \def\version{September \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/etc/viperCard.tex b/etc/viperCard.tex index e5e0bded891..50f65b2c0d5 100644 --- a/etc/viperCard.tex +++ b/etc/viperCard.tex @@ -7,7 +7,8 @@ \columnsperpage=2 -% Copyright (c) 1995, 1996, 1997 Free Software Foundation, Inc. +% Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -61,7 +62,7 @@ \def\versionnumber{3.0} -\def\year{1997} +\def\year{2005} \def\version{August \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill diff --git a/leim/ChangeLog b/leim/ChangeLog index e53d29a39ae..9ccaad49175 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog @@ -1,3 +1,8 @@ +2005-07-08 Kenichi Handa <handa@m17n.org> + + * quail/japanese.el (quail-japanese-kanji-kkc): Fix order of + insertion and deletion. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/leim/quail/japanese.el b/leim/quail/japanese.el index fa87a9935b9..09b005a7bb2 100644 --- a/leim/quail/japanese.el +++ b/leim/quail/japanese.el @@ -79,9 +79,9 @@ (when (= (char-before (overlay-end quail-conv-overlay)) ?n) ;; The last char is `n'. We had better convert it to `$B$s(B' ;; before kana-kanji conversion. - (goto-char (overlay-end quail-conv-overlay)) - (delete-char -1) - (insert ?$B$s(B)) + (goto-char (1- (overlay-end quail-conv-overlay))) + (insert ?$B$s(B) + (delete-char 1)) (let* ((from (copy-marker (overlay-start quail-conv-overlay))) (len (- (overlay-end quail-conv-overlay) from))) (quail-delete-overlays) diff --git a/lib-src/.gitignore b/lib-src/.gitignore index 167540307ae..66933a62c36 100644 --- a/lib-src/.gitignore +++ b/lib-src/.gitignore @@ -1,7 +1,7 @@ DOC Makefile.c b2m -ctags +ctags* cvtmail digest-doc ebrowse @@ -9,8 +9,7 @@ emacsclient emacsserver etags fakemail -fns-* -fns.el +getopt.h hexl make-docfile movemail diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index bd6949c799c..5767b49aaed 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,34 @@ +2005-07-27 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Don't ignore fns-* and fns.el, which are no longer + generated. Ignore also ctags.c and getopt.h. + + * makefile.w32-in (clean): Delete getopt.h. + (getopt.h): New rule. + +2005-07-26 Paul Eggert <eggert@cs.ucla.edu> + + Merge gnulib getopt implementation into Emacs. + + * Makefile.in (mostlyclean): Remove getopt.h, getopt.h-t. + (GETOPT_H): New macro, from gnulib. + (getopt.h): New rule, from gnulib. + (GETOPTOBJS): Now autoconfigured. + (GETOPTDEPS): getopt.h is now autoconfigured. + (getopt.o, getopt1.o): Depend on $(GETOPT_H), not ${srcdir}/getopt.h. + (getopt.o): Depend on ${srcdir}/gettext.h. + (movemail.o): Depend on $(GETOPT_H). + * getopt.c, getopt1.c: Sync from gnulib. + * getopt_.h, getopt_int.h, gettext.h: New files, from gnulib. + * getopt.h: Removed (now is getopt_.h). + +2005-07-13 Ken Raeburn <raeburn@gnu.org> + + * pop.c: Don't include des.h (or variants thereof); krb.h will do + it. + (sendline): Add the \r\n to the line in a temporary buffer, and + write it all at once. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 372983221a3..274bbabe29f 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -1,6 +1,6 @@ # Makefile for lib-src subdirectory in GNU Emacs. -# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2002, 2003, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -344,7 +344,7 @@ uninstall: rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}) mostlyclean: - -rm -f core *.o + -rm -f core *.o getopt.h getopt.h-t clean: mostlyclean -rm -f ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL} @@ -382,11 +382,18 @@ test-distrib${EXEEXT}: ${srcdir}/test-distrib.c $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c ./test-distrib ${srcdir}/testfile -GETOPTOBJS = getopt.o getopt1.o -GETOPTDEPS = $(GETOPTOBJS) ${srcdir}/getopt.h -getopt.o: ${srcdir}/getopt.c ${srcdir}/getopt.h +/* We need the following in order to create a <getopt.h> when the system + doesn't have one that works with the given compiler. */ +GETOPT_H = @GETOPT_H@ +getopt.h: getopt_.h + cp $(srcdir)/getopt_.h $@-t + mv $@-t $@ + +GETOPTOBJS = @GETOPTOBJS@ +GETOPTDEPS = $(GETOPTOBJS) $(GETOPT_H) +getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h ${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt.c -getopt1.o: ${srcdir}/getopt1.c ${srcdir}/getopt.h +getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H) ${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c #ifdef REGEXP_IN_LIBC @@ -430,7 +437,7 @@ b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS) movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS) $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail -movemail.o: ${srcdir}/movemail.c ../src/config.h +movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H) $(CC) -c ${CPP_CFLAGS} -Demacs ${MOVE_FLAGS} ${srcdir}/movemail.c pop.o: ${srcdir}/pop.c ../src/config.h diff --git a/lib-src/cvtmail.c b/lib-src/cvtmail.c index 4dd6bb20a68..562c5522ed9 100644 --- a/lib-src/cvtmail.c +++ b/lib-src/cvtmail.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1985, 1994 Free Software Foundation +/* Copyright (C) 1985, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/digest-doc.c b/lib-src/digest-doc.c index 9db4a190803..d3df334841e 100644 --- a/lib-src/digest-doc.c +++ b/lib-src/digest-doc.c @@ -1,7 +1,8 @@ /* Give this program DOC-mm.nn.oo as standard input and it outputs to standard output a file of nroff output containing the doc strings. - Copyright (C) 1987, 1994, 2001 Free Software Foundation Inc. + Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c index bc323fbbbd8..49e353cf536 100644 --- a/lib-src/ebrowse.c +++ b/lib-src/ebrowse.c @@ -1,7 +1,7 @@ /* ebrowse.c --- parsing files for the ebrowse C++ browser - Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, - 2000, 2001, 2002 Free Software Foundation Inc. + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 7cb40bb1968..4908d49441b 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1,6 +1,6 @@ /* Client process that communicates with GNU Emacs acting as server. - Copyright (C) 1986, 1987, 1994, 1999, 2000, 2001, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1986, 1987, 1994, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/emacstool.c b/lib-src/emacstool.c index f0e9ad8c1f6..b883b442bd9 100644 --- a/lib-src/emacstool.c +++ b/lib-src/emacstool.c @@ -1,5 +1,6 @@ /* - Copyright (C) 1986, 1988, 1990, 1991 Free Software Foundation, Inc. + Copyright (C) 1986, 1988, 1990, 1991, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/etags.c b/lib-src/etags.c index 2f273771a96..fe4fa84f4c5 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -1,6 +1,7 @@ /* Tags file maker to go with GNU Emacs -*- coding: latin-1 -*- - Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2001, 2002, 2004 - Free Software Foundation, Inc. and Ken Arnold + Copyright (C) 1984, 1987, 1988, 1989, 1993, 1994, 1995, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. and Ken Arnold This file is not considered part of GNU Emacs. diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c index cf6c1ff334d..de1e2cbf858 100644 --- a/lib-src/fakemail.c +++ b/lib-src/fakemail.c @@ -1,5 +1,6 @@ /* sendmail-like interface to /bin/mail for system V, - Copyright (C) 1985, 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1994, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/getopt.c b/lib-src/getopt.c index 6799045bde8..70fd4186261 100644 --- a/lib-src/getopt.c +++ b/lib-src/getopt.c @@ -2,8 +2,9 @@ NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002 - Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, + 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -30,35 +31,8 @@ # include <config.h> #endif -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -# ifndef const -# define const -# endif -#endif - #include <stdio.h> -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -# include <gnu-versions.h> -# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -# define ELIDE_CODE -# endif -#endif - -#ifndef ELIDE_CODE - - /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ @@ -68,32 +42,18 @@ # include <unistd.h> #endif /* GNU C library. */ +#include <string.h> + #ifdef VMS # include <unixlib.h> -# if HAVE_STRING_H - 0 -# include <string.h> -# endif #endif -#if HAVE_LIBINTL_H +#ifdef _LIBC # include <libintl.h> -#endif /* HAVE_LIBINTL_H */ - -#if 0 -# ifdef _LIBC -# include <libintl.h> -# else /* not #ifdef _LIBC */ -/* This is for other GNU distributions with internationalized messages. */ -# include "gettext.h" -# endif /* end #ifdef _LIBC */ -#endif /* end #if 0 */ - -#if HAVE_LIBINTL_H - /* Should I include libintl.h here as in regex.c ? */ -# define _(msgid) gettext (msgid) -#else /* not #if HAVE_LIBINTL_H */ -# define _(msgid) (msgid) -#endif /* end #if HAVE_LIBINTL_H */ +#else +# include "gettext.h" +# define _(msgid) gettext (msgid) +#endif #if defined _LIBC && defined USE_IN_LIBIO # include <wchar.h> @@ -103,21 +63,22 @@ # define attribute_hidden #endif -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. +/* Unlike standard Unix `getopt', functions like `getopt_long' + let the user intersperse the options with the other arguments. - As `getopt' works, it permutes the elements of ARGV so that, + As `getopt_long' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. + Using `getopt' or setting the environment variable POSIXLY_CORRECT + disables permutation. + Then the application's behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" +#include "getopt_int.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, @@ -142,21 +103,6 @@ char *optarg; /* 1003.2 says this must be 1 before any call. */ int optind = 1; -/* Formerly, initialization of getopt depended on optind==0, which - causes problems with re-calling getopt as programs generally don't - know that. */ - -int __getopt_initialized attribute_hidden; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - /* Callers store zero here to inhibit the error message for unrecognized options. */ @@ -168,57 +114,12 @@ int opterr = 1; int optopt = '?'; -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. +/* Keep a global copy of all internal members of getopt_data. */ - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. +static struct _getopt_data getopt_data; - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -# include <string.h> -# define my_index strchr -#else - -# if HAVE_STRING_H -# include <string.h> -# else -# include <strings.h> -# endif +#ifndef __GNU_LIBRARY__ /* Avoid depending on library functions or files whose names are inconsistent. */ @@ -227,43 +128,8 @@ static char *posixly_correct; extern char *getenv (); #endif -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -# if (!defined __STDC__ || !__STDC__) && !defined strlen -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -# endif /* not __STDC__ */ -#endif /* __GNUC__ */ - #endif /* not __GNU_LIBRARY__ */ -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - #ifdef _LIBC /* Stored original parameters. XXX This is no good solution. We should rather copy the args so @@ -277,14 +143,11 @@ extern char **__libc_argv; # ifdef USE_NONOPTION_FLAGS /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; - -static int nonoption_flags_max_len; -static int nonoption_flags_len; # endif # ifdef USE_NONOPTION_FLAGS # define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ + if (d->__nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ @@ -306,17 +169,12 @@ static int nonoption_flags_len; `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ -#if defined __STDC__ && __STDC__ -static void exchange (char **); -#endif - static void -exchange (argv) - char **argv; +exchange (char **argv, struct _getopt_data *d) { - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; + int bottom = d->__first_nonopt; + int middle = d->__last_nonopt; + int top = d->optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. @@ -328,19 +186,19 @@ exchange (argv) /* First make sure the handling of the `__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ - if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) + if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; + d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; else { memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; + d->__nonoption_flags_max_len), + '\0', top + 1 - d->__nonoption_flags_max_len); + d->__nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } @@ -386,76 +244,71 @@ exchange (argv) /* Update records for the slots the non-options now occupy. */ - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; + d->__first_nonopt += (d->optind - d->__last_nonopt); + d->__last_nonopt = d->optind; } /* Initialize the internal data when the first call is made. */ -#if defined __STDC__ && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); -#endif static const char * -_getopt_initialize (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; +_getopt_initialize (int argc, char **argv, const char *optstring, + int posixly_correct, struct _getopt_data *d) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ - first_nonopt = last_nonopt = optind; + d->__first_nonopt = d->__last_nonopt = d->optind; - nextchar = NULL; + d->__nextchar = NULL; - posixly_correct = getenv ("POSIXLY_CORRECT"); + d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { - ordering = RETURN_IN_ORDER; + d->__ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { - ordering = REQUIRE_ORDER; + d->__ordering = REQUIRE_ORDER; ++optstring; } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; + else if (d->__posixly_correct) + d->__ordering = REQUIRE_ORDER; else - ordering = PERMUTE; + d->__ordering = PERMUTE; #if defined _LIBC && defined USE_NONOPTION_FLAGS - if (posixly_correct == NULL + if (!d->__posixly_correct && argc == __libc_argc && argv == __libc_argv) { - if (nonoption_flags_max_len == 0) + if (d->__nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; + d->__nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; + int len = d->__nonoption_flags_max_len = strlen (orig_str); + if (d->__nonoption_flags_max_len < argc) + d->__nonoption_flags_max_len = argc; __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); + (char *) malloc (d->__nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; + d->__nonoption_flags_max_len = -1; else memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); + '\0', d->__nonoption_flags_max_len - len); } } - nonoption_flags_len = nonoption_flags_max_len; + d->__nonoption_flags_len = d->__nonoption_flags_max_len; } else - nonoption_flags_len = 0; + d->__nonoption_flags_len = 0; #endif return optstring; @@ -503,10 +356,6 @@ _getopt_initialize (argc, argv, optstring) `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. @@ -515,32 +364,32 @@ _getopt_initialize (argc, argv, optstring) recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ + long-named options. + + If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT + environment variable were set. */ int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; +_getopt_internal_r (int argc, char **argv, const char *optstring, + const struct option *longopts, int *longind, + int long_only, int posixly_correct, struct _getopt_data *d) { - int print_errors = opterr; + int print_errors = d->opterr; if (optstring[0] == ':') print_errors = 0; if (argc < 1) return -1; - optarg = NULL; + d->optarg = NULL; - if (optind == 0 || !__getopt_initialized) + if (d->optind == 0 || !d->__initialized) { - if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring); - __getopt_initialized = 1; + if (d->optind == 0) + d->optind = 1; /* Don't scan ARGV[0], the program name. */ + optstring = _getopt_initialize (argc, argv, optstring, + posixly_correct, d); + d->__initialized = 1; } /* Test whether ARGV[optind] points to a non-option argument. @@ -548,40 +397,41 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ + || (d->optind < d->__nonoption_flags_len \ + && __getopt_nonoption_flags[d->optind] == '1')) #else -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') #endif - if (nextchar == NULL || *nextchar == '\0') + if (d->__nextchar == NULL || *d->__nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; + if (d->__last_nonopt > d->optind) + d->__last_nonopt = d->optind; + if (d->__first_nonopt > d->optind) + d->__first_nonopt = d->optind; - if (ordering == PERMUTE) + if (d->__ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__last_nonopt != d->optind) + d->__first_nonopt = d->optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; + while (d->optind < argc && NONOPTION_P) + d->optind++; + d->__last_nonopt = d->optind; } /* The special ARGV-element `--' means premature end of options. @@ -589,28 +439,29 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ - if (optind != argc && !strcmp (argv[optind], "--")) + if (d->optind != argc && !strcmp (argv[d->optind], "--")) { - optind++; + d->optind++; - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__first_nonopt == d->__last_nonopt) + d->__first_nonopt = d->optind; + d->__last_nonopt = argc; - optind = argc; + d->optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ - if (optind == argc) + if (d->optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; + if (d->__first_nonopt != d->__last_nonopt) + d->optind = d->__first_nonopt; return -1; } @@ -619,17 +470,17 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (NONOPTION_P) { - if (ordering == REQUIRE_ORDER) + if (d->__ordering == REQUIRE_ORDER) return -1; - optarg = argv[optind++]; + d->optarg = argv[d->optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); + d->__nextchar = (argv[d->optind] + 1 + + (longopts != NULL && argv[d->optind][1] == '-')); } /* Decode the current option-ARGV-element. */ @@ -648,8 +499,9 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) This distinction seems to be the most useful approach. */ if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) + && (argv[d->optind][1] == '-' + || (long_only && (argv[d->optind][2] + || !strchr (optstring, argv[d->optind][1]))))) { char *nameend; const struct option *p; @@ -659,15 +511,15 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int indfound = -1; int option_index; - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) + for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) + if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) { - if ((unsigned int) (nameend - nextchar) + if ((unsigned int) (nameend - d->__nextchar) == (unsigned int) strlen (p->name)) { /* Exact match found. */ @@ -698,37 +550,44 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) char *buf; if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]) >= 0) + argv[0], argv[d->optind]) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); + argv[0], argv[d->optind]); #endif } - nextchar += strlen (nextchar); - optind++; - optopt = 0; + d->__nextchar += strlen (d->__nextchar); + d->optind++; + d->optopt = 0; return '?'; } if (pfound != NULL) { option_index = indfound; - optind++; + d->optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) - optarg = nameend + 1; + d->optarg = nameend + 1; else { if (print_errors) @@ -738,7 +597,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int n; #endif - if (argv[optind - 1][1] == '-') + if (argv[d->optind - 1][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO @@ -757,38 +616,48 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("\ %s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], + argv[0], argv[d->optind - 1][0], pfound->name); #else fprintf (stderr, _("\ %s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); + argv[0], argv[d->optind - 1][0], + pfound->name); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #endif } - nextchar += strlen (nextchar); + d->__nextchar += strlen (d->__nextchar); - optopt = pfound->val; + d->optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { - if (optind < argc) - optarg = argv[optind++]; + if (d->optind < argc) + d->optarg = argv[d->optind++]; else { if (print_errors) @@ -798,27 +667,36 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (__asprintf (&buf, _("\ %s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]) >= 0) + argv[0], argv[d->optind - 1]) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else fprintf (stderr, _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); + argv[0], argv[d->optind - 1]); #endif } - nextchar += strlen (nextchar); - optopt = pfound->val; + d->__nextchar += strlen (d->__nextchar); + d->optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } - nextchar += strlen (nextchar); + d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) @@ -833,8 +711,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) + if (!long_only || argv[d->optind][1] == '-' + || strchr (optstring, *d->__nextchar) == NULL) { if (print_errors) { @@ -843,15 +721,15 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int n; #endif - if (argv[optind][1] == '-') + if (argv[d->optind][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); + argv[0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); + argv[0], d->__nextchar); #endif } else @@ -859,28 +737,36 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) /* +option or -option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); + argv[0], argv[d->optind][0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); + argv[0], argv[d->optind][0], d->__nextchar); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #endif } - nextchar = (char *) ""; - optind++; - optopt = 0; + d->__nextchar = (char *) ""; + d->optind++; + d->optopt = 0; return '?'; } } @@ -888,12 +774,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) /* Look at and handle the next short option-character. */ { - char c = *nextchar++; - char *temp = my_index (optstring, c); + char c = *d->__nextchar++; + char *temp = strchr (optstring, c); /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; + if (*d->__nextchar == '\0') + ++d->optind; if (temp == NULL || c == ':') { @@ -904,7 +790,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int n; #endif - if (posixly_correct) + if (d->__posixly_correct) { /* 1003.2 specifies the format of this message. */ #if defined _LIBC && defined USE_IN_LIBIO @@ -927,16 +813,24 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #endif } - optopt = c; + d->optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ @@ -951,14 +845,14 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int option_index; /* This is an option that requires an argument. */ - if (*nextchar != '\0') + if (*d->__nextchar != '\0') { - optarg = nextchar; + d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ - optind++; + d->optind++; } - else if (optind == argc) + else if (d->optind == argc) { if (print_errors) { @@ -970,11 +864,19 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) _("%s: option requires an argument -- %c\n"), argv[0], c) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else @@ -982,7 +884,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) argv[0], c); #endif } - optopt = c; + d->optopt = c; if (optstring[0] == ':') c = ':'; else @@ -990,22 +892,23 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) return c; } else - /* We already incremented `optind' once; + /* We already incremented `d->optind' once; increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; + d->optarg = argv[d->optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) + for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; + nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) + if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) + if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; @@ -1031,22 +934,30 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) char *buf; if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]) >= 0) + argv[0], argv[d->optind]) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); + argv[0], argv[d->optind]); #endif } - nextchar += strlen (nextchar); - optind++; + d->__nextchar += strlen (d->__nextchar); + d->optind++; return '?'; } if (pfound != NULL) @@ -1057,7 +968,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) - optarg = nameend + 1; + d->optarg = nameend + 1; else { if (print_errors) @@ -1069,11 +980,20 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) %s: option `-W %s' doesn't allow an argument\n"), argv[0], pfound->name) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else @@ -1083,14 +1003,14 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) #endif } - nextchar += strlen (nextchar); + d->__nextchar += strlen (d->__nextchar); return '?'; } } else if (pfound->has_arg == 1) { - if (optind < argc) - optarg = argv[optind++]; + if (d->optind < argc) + d->optarg = argv[d->optind++]; else { if (print_errors) @@ -1100,26 +1020,35 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (__asprintf (&buf, _("\ %s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]) >= 0) + argv[0], argv[d->optind - 1]) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else fprintf (stderr, _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); + argv[0], argv[d->optind - 1]); #endif } - nextchar += strlen (nextchar); + d->__nextchar += strlen (d->__nextchar); return optstring[0] == ':' ? ':' : '?'; } } - nextchar += strlen (nextchar); + d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) @@ -1129,7 +1058,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) } return pfound->val; } - nextchar = NULL; + d->__nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') @@ -1137,26 +1066,26 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') + if (*d->__nextchar != '\0') { - optarg = nextchar; - optind++; + d->optarg = d->__nextchar; + d->optind++; } else - optarg = NULL; - nextchar = NULL; + d->optarg = NULL; + d->__nextchar = NULL; } else { /* This is an option that requires an argument. */ - if (*nextchar != '\0') + if (*d->__nextchar != '\0') { - optarg = nextchar; + d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ - optind++; + d->optind++; } - else if (optind == argc) + else if (d->optind == argc) { if (print_errors) { @@ -1168,11 +1097,19 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) %s: option requires an argument -- %c\n"), argv[0], c) >= 0) { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + if (_IO_fwide (stderr, 0) > 0) __fwprintf (stderr, L"%s", buf); else fputs (buf, stderr); + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + free (buf); } #else @@ -1181,7 +1118,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) argv[0], c); #endif } - optopt = c; + d->optopt = c; if (optstring[0] == ':') c = ':'; else @@ -1190,8 +1127,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; + d->optarg = argv[d->optind++]; + d->__nextchar = NULL; } } return c; @@ -1199,18 +1136,40 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) } int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; +_getopt_internal (int argc, char **argv, const char *optstring, + const struct option *longopts, int *longind, + int long_only, int posixly_correct) +{ + int result; + + getopt_data.optind = optind; + getopt_data.opterr = opterr; + + result = _getopt_internal_r (argc, argv, optstring, longopts, longind, + long_only, posixly_correct, &getopt_data); + + optind = getopt_data.optind; + optarg = getopt_data.optarg; + optopt = getopt_data.optopt; + + return result; +} + +/* glibc gets a LSB-compliant getopt. + Standalone applications get a POSIX-compliant getopt. */ +#if _LIBC +enum { POSIXLY_CORRECT = 0 }; +#else +enum { POSIXLY_CORRECT = 1 }; +#endif + +int +getopt (int argc, char *const *argv, const char *optstring) { - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); + return _getopt_internal (argc, (char **) argv, optstring, NULL, NULL, 0, + POSIXLY_CORRECT); } -#endif /* Not ELIDE_CODE. */ #ifdef TEST @@ -1218,9 +1177,7 @@ getopt (argc, argv, optstring) the above definition of `getopt'. */ int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { int c; int digit_optind = 0; diff --git a/lib-src/getopt1.c b/lib-src/getopt1.c index 4ec1e50b830..8aa9b183578 100644 --- a/lib-src/getopt1.c +++ b/lib-src/getopt1.c @@ -1,6 +1,6 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 - Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, + 1998, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -26,36 +26,10 @@ #else # include "getopt.h" #endif - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif +#include "getopt_int.h" #include <stdio.h> -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -#include <gnu-versions.h> -#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -#define ELIDE_CODE -#endif -#endif - -#ifndef ELIDE_CODE - - /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ @@ -67,14 +41,20 @@ #endif int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; +getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, + const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); + return _getopt_internal (argc, (char **) argv, options, long_options, + opt_index, 0, 0); +} + +int +_getopt_long_r (int argc, char **argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, + 0, 0, d); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. @@ -83,31 +63,30 @@ getopt_long (argc, argv, options, long_options, opt_index) instead. */ int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; +getopt_long_only (int argc, char *__getopt_argv_const *argv, + const char *options, + const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); + return _getopt_internal (argc, (char **) argv, options, long_options, + opt_index, 1, 0); } -# ifdef _LIBC -libc_hidden_def (getopt_long) -libc_hidden_def (getopt_long_only) -# endif +int +_getopt_long_only_r (int argc, char **argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, + 1, 0, d); +} -#endif /* Not ELIDE_CODE. */ #ifdef TEST #include <stdio.h> int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { int c; int digit_optind = 0; diff --git a/lib-src/getopt.h b/lib-src/getopt_.h index 953a7d15252..fbd45d42aab 100644 --- a/lib-src/getopt.h +++ b/lib-src/getopt_.h @@ -1,5 +1,6 @@ /* Declarations for getopt. - Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, + 2001, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -22,6 +23,64 @@ # define _GETOPT_H 1 #endif +/* Standalone applications should #define __GETOPT_PREFIX to an + identifier that prefixes the external functions and variables + defined in this header. When this happens, include the + headers that might declare getopt so that they will not cause + confusion if included after this file. Then systematically rename + identifiers so that they do not collide with the system functions + and variables. Renaming avoids problems with some compilers and + linkers. */ +#if defined __GETOPT_PREFIX && !defined __need_getopt +# include <stdlib.h> +# include <stdio.h> +# if HAVE_UNISTD_H +# include <unistd.h> +# endif +# undef __need_getopt +# undef getopt +# undef getopt_long +# undef getopt_long_only +# undef optarg +# undef opterr +# undef optind +# undef optopt +# define __GETOPT_CONCAT(x, y) x ## y +# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) +# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) +# define getopt __GETOPT_ID (getopt) +# define getopt_long __GETOPT_ID (getopt_long) +# define getopt_long_only __GETOPT_ID (getopt_long_only) +# define optarg __GETOPT_ID (optarg) +# define opterr __GETOPT_ID (opterr) +# define optind __GETOPT_ID (optind) +# define optopt __GETOPT_ID (optopt) +#endif + +/* Standalone applications get correct prototypes for getopt_long and + getopt_long_only; they declare "char **argv". libc uses prototypes + with "char *const *argv" that are incorrect because getopt_long and + getopt_long_only can permute argv; this is required for backward + compatibility (e.g., for LSB 2.0.1). + + This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt', + but it caused redefinition warnings if both unistd.h and getopt.h were + included, since unistd.h includes getopt.h having previously defined + __need_getopt. + + The only place where __getopt_argv_const is used is in definitions + of getopt_long and getopt_long_only below, but these are visible + only if __need_getopt is not defined, so it is quite safe to rewrite + the conditional as follows: +*/ +#if !defined __need_getopt +# if defined __GETOPT_PREFIX +# define __getopt_argv_const /* empty */ +# else +# define __getopt_argv_const const +# endif +#endif + /* If __GNU_LIBRARY__ is not already defined, either we are being used standalone, or this is the first header included in the source file. If we are being used with glibc, we need to include <features.h>, but @@ -33,6 +92,17 @@ # include <ctype.h> #endif +#ifndef __THROW +# ifndef __GNUC_PREREQ +# define __GNUC_PREREQ(maj, min) (0) +# endif +# if defined __cplusplus && __GNUC_PREREQ (2,8) +# define __THROW throw () +# else +# define __THROW +# endif +#endif + #ifdef __cplusplus extern "C" { #endif @@ -77,7 +147,7 @@ extern int optopt; The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. + optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but @@ -92,11 +162,7 @@ extern int optopt; struct option { -# if (defined __STDC__ && __STDC__) || defined __cplusplus const char *name; -# else - char *name; -# endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; @@ -136,39 +202,20 @@ struct option arguments to the option '\0'. This behavior is specific to the GNU `getopt'. */ -#if (defined __STDC__ && __STDC__) || defined __cplusplus -# ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int ___argc, char *const *___argv, const char *__shortopts); -# else /* not __GNU_LIBRARY__ */ -extern int getopt (); -# endif /* __GNU_LIBRARY__ */ - -# ifndef __need_getopt -extern int getopt_long (int ___argc, char *const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind); -extern int getopt_long_only (int ___argc, char *const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind); +extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) + __THROW; -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int ___argc, char *const *___argv, +#ifndef __need_getopt +extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW; +extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only); -# endif -#else /* not __STDC__ */ -extern int getopt (); -# ifndef __need_getopt -extern int getopt_long (); -extern int getopt_long_only (); + const struct option *__longopts, int *__longind) + __THROW; -extern int _getopt_internal (); -# endif -#endif /* __STDC__ */ +#endif #ifdef __cplusplus } @@ -179,5 +226,5 @@ extern int _getopt_internal (); #endif /* getopt.h */ -/* arch-tag: 9adb7828-e6a6-40cd-8512-0cdf1f20ddd4 +/* arch-tag: e36f5607-3ac6-4cdc-9aa7-c26c6525fe9b (do not change this comment) */ diff --git a/lib-src/getopt_int.h b/lib-src/getopt_int.h new file mode 100644 index 00000000000..f59ab32ce28 --- /dev/null +++ b/lib-src/getopt_int.h @@ -0,0 +1,134 @@ +/* Internal declarations for getopt. + Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, + 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + This file is part of the GNU C 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, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GETOPT_INT_H +#define _GETOPT_INT_H 1 + +extern int _getopt_internal (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct); + + +/* Reentrant versions which can handle parsing multiple argument + vectors at the same time. */ + +/* Data type for reentrant functions. */ +struct _getopt_data +{ + /* These have exactly the same meaning as the corresponding global + variables, except that they are used for the reentrant + versions of getopt. */ + int optind; + int opterr; + int optopt; + char *optarg; + + /* Internal members. */ + + /* True if the internal members have been initialized. */ + int __initialized; + + /* The next char to be scanned in the option-element + in which the last option character we returned was found. + This allows us to pick up the scan where we left off. + + If this is zero, or a null string, it means resume the scan + by advancing to the next ARGV-element. */ + char *__nextchar; + + /* Describe how to deal with options that follow non-option ARGV-elements. + + If the caller did not specify anything, + the default is REQUIRE_ORDER if the environment variable + POSIXLY_CORRECT is defined, PERMUTE otherwise. + + REQUIRE_ORDER means don't recognize them as options; + stop option processing when the first non-option is seen. + This is what Unix does. + This mode of operation is selected by either setting the environment + variable POSIXLY_CORRECT, or using `+' as the first character + of the list of option characters, or by calling getopt. + + PERMUTE is the default. We permute the contents of ARGV as we + scan, so that eventually all the non-options are at the end. + This allows options to be given in any order, even with programs + that were not written to expect this. + + RETURN_IN_ORDER is an option available to programs that were + written to expect options and other ARGV-elements in any order + and that care about the ordering of the two. We describe each + non-option ARGV-element as if it were the argument of an option + with character code 1. Using `-' as the first character of the + list of option characters selects this mode of operation. + + The special argument `--' forces an end of option-scanning regardless + of the value of `ordering'. In the case of RETURN_IN_ORDER, only + `--' can cause `getopt' to return -1 with `optind' != ARGC. */ + + enum + { + REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER + } __ordering; + + /* If the POSIXLY_CORRECT environment variable is set + or getopt was called. */ + int __posixly_correct; + + + /* Handle permutation of arguments. */ + + /* Describe the part of ARGV that contains non-options that have + been skipped. `first_nonopt' is the index in ARGV of the first + of them; `last_nonopt' is the index after the last of them. */ + + int __first_nonopt; + int __last_nonopt; + +#if defined _LIBC && defined USE_NONOPTION_FLAGS + int __nonoption_flags_max_len; + int __nonoption_flags_len; +# endif +}; + +/* The initializer is necessary to set OPTIND and OPTERR to their + default values and to clear the initialization flag. */ +#define _GETOPT_DATA_INITIALIZER { 1, 1 } + +extern int _getopt_internal_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct, + struct _getopt_data *__data); + +extern int _getopt_long_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + struct _getopt_data *__data); + +extern int _getopt_long_only_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, + int *__longind, + struct _getopt_data *__data); + +#endif /* getopt_int.h */ + +/* arch-tag: 8bfc548f-23d6-46aa-b5b5-2739b0edaf79 + (do not change this comment) */ diff --git a/nt/inc/gettext.h b/lib-src/gettext.h index cd251314cb4..658fa17fcb8 100755..100644 --- a/nt/inc/gettext.h +++ b/lib-src/gettext.h @@ -1,20 +1,20 @@ /* Convenience header for conditional use of GNU <libintl.h>. - Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2004, + 2005 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) + 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 - Library General Public License for more details. + 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 Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 @@ -37,6 +37,16 @@ # include <locale.h> #endif +/* Many header files from the libstdc++ coming with g++ 3.3 or newer include + <libintl.h>, which chokes if dcgettext is defined as a macro. So include + it now, to make later inclusions of <libintl.h> a NOP. */ +#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) +# include <cstdlib> +# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H +# include <libintl.h> +# endif +#endif + /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. @@ -68,5 +78,5 @@ #endif /* _LIBGETTEXT_H */ -/* arch-tag: 07b35a70-3531-4cda-9674-2968467143ec +/* arch-tag: 3d01bb8e-82e3-4674-9812-de4c4224f7d1 (do not change this comment) */ diff --git a/lib-src/grep-changelog b/lib-src/grep-changelog index 04468535e02..45bf841ae59 100755 --- a/lib-src/grep-changelog +++ b/lib-src/grep-changelog @@ -1,6 +1,7 @@ #! /usr/bin/perl -# Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/lib-src/hexl.c b/lib-src/hexl.c index 05e0658e566..0dfdddf468f 100644 --- a/lib-src/hexl.c +++ b/lib-src/hexl.c @@ -1,5 +1,5 @@ /* Convert files for Emacs Hexl mode. - Copyright (C) 1989 Free Software Foundation, Inc + Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is not considered part of GNU Emacs. diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 6c0816ed98a..537eafec7f5 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -1,6 +1,6 @@ /* Generate doc-string file for GNU Emacs from source files. - Copyright (C) 1985, 86, 92, 93, 94, 97, 1999, 2000, 01, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1992, 1993, 1994, 1997, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index d8e8c205b3b..bfda0f25d5f 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -1,5 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. -# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -286,6 +287,7 @@ install: $(INSTALL_FILES) clean: - $(DEL) *~ DOC* $(COMPILER_TEMP_FILES) - $(DEL) ctags.c + - $(DEL) getopt.h - $(DEL_TREE) $(OBJDIR) cleanall: clean @@ -301,6 +303,8 @@ cleanall: clean $(CP) $(ALL_DEPS) $@ ../src/paths.h: ../nt/paths.h $(CP) $(ALL_DEPS) $@ +getopt.h: getopt_.h + $(CP) $(ALL_DEPS) $@ ### DEPENDENCIES ### diff --git a/lib-src/movemail.c b/lib-src/movemail.c index f82bebd4f2b..e8f1122e943 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -1,6 +1,7 @@ /* movemail foo bar -- move file foo to file bar, locking file foo the way /bin/mail respects. - Copyright (C) 1986, 92, 93, 94, 96, 1999 Free Software Foundation, Inc. + Copyright (C) 1986, 1992, 1993, 1994, 1996, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c index c346ccd908b..caaf521206b 100644 --- a/lib-src/ntlib.c +++ b/lib-src/ntlib.c @@ -1,5 +1,5 @@ /* Utility and Unix shadow routines for GNU Emacs support programs on NT. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/ntlib.h b/lib-src/ntlib.h index b1cb97dabda..07e730567f7 100644 --- a/lib-src/ntlib.h +++ b/lib-src/ntlib.h @@ -1,5 +1,5 @@ /* Utility and Unix shadow routines for GNU Emacs support programs on NT. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/pop.c b/lib-src/pop.c index 9a85ba3746c..9bc73e90a54 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -1,5 +1,6 @@ /* pop.c: client routines for talking to a POP3-protocol post-office server - Copyright (c) 1991, 1993, 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 1996, 1997, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Written by Jonathan Kamens, jik@security.ov.com. This file is part of GNU Emacs. @@ -76,17 +77,6 @@ extern struct servent *hes_getservbyname (/* char *, char * */); # ifdef HAVE_KRB5_H # include <krb5.h> # endif -# ifdef HAVE_DES_H -# include <des.h> -# else -# ifdef HAVE_KERBEROSIV_DES_H -# include <kerberosIV/des.h> -# else -# ifdef HAVE_KERBEROS_DES_H -# include <kerberos/des.h> -# endif -# endif -# endif # ifdef HAVE_KRB_H # include <krb.h> # else @@ -1403,12 +1393,24 @@ sendline (server, line) { #define SENDLINE_ERROR "Error writing to POP server: " int ret; - - ret = fullwrite (server->file, line, strlen (line)); - if (ret >= 0) - { /* 0 indicates that a blank line was written */ - ret = fullwrite (server->file, "\r\n", 2); - } + char *buf; + + /* Combine the string and the CR-LF into one buffer. Otherwise, two + reasonable network stack optimizations, Nagle's algorithm and + delayed acks, combine to delay us a fraction of a second on every + message we send. (Movemail writes line without \r\n, client + kernel sends packet, server kernel delays the ack to see if it + can combine it with data, movemail writes \r\n, client kernel + waits because it has unacked data already in its outgoing queue, + client kernel eventually times out and sends.) + + This can be something like 0.2s per command, which can add up + over a few dozen messages, and is a big chunk of the time we + spend fetching mail from a server close by. */ + buf = alloca (strlen (line) + 3); + strcpy (buf, line); + strcat (buf, "\r\n"); + ret = fullwrite (server->file, buf, strlen (buf)); if (ret < 0) { diff --git a/lib-src/pop.h b/lib-src/pop.h index 5267ec97eb4..eed24a89934 100644 --- a/lib-src/pop.h +++ b/lib-src/pop.h @@ -1,5 +1,6 @@ /* pop.h: Header file for the "pop.c" client POP3 protocol. - Copyright (c) 1991,1993 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Written by Jonathan Kamens, jik@security.ov.com. This file is part of GNU Emacs. diff --git a/lib-src/profile.c b/lib-src/profile.c index 7bc7186c259..615a43d912c 100644 --- a/lib-src/profile.c +++ b/lib-src/profile.c @@ -1,5 +1,6 @@ /* profile.c --- generate periodic events for profiling of Emacs Lisp code. - Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1992, 1994, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Author: Boaz Ben-Zvi <boaz@lcs.mit.edu> diff --git a/lib-src/rcs-checkin b/lib-src/rcs-checkin index 2a7de0f2f11..beee6ce29f7 100755 --- a/lib-src/rcs-checkin +++ b/lib-src/rcs-checkin @@ -2,7 +2,8 @@ # This script accepts any number of file arguments and checks them into RCS. -# Copyright (C) 1993, 1994, 1995, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/lib-src/rcs2log b/lib-src/rcs2log index 05864c2ad26..4e7c6c1bb1b 100755 --- a/lib-src/rcs2log +++ b/lib-src/rcs2log @@ -55,7 +55,7 @@ Report bugs to <bug-gnu-emacs@gnu.org>.' Id='$Id$' # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, -# 2004 Free Software Foundation, Inc. +# 2004, 2005 Free Software Foundation, Inc. # 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 @@ -72,7 +72,7 @@ Id='$Id$' # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. -Copyright='Copyright (C) 2004 Free Software Foundation, Inc. +Copyright='Copyright (C) 2005 Free Software Foundation, Inc. This program comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of this program under the terms of the GNU General Public License. diff --git a/lib-src/sorted-doc.c b/lib-src/sorted-doc.c index 120a510f006..cb04be26842 100644 --- a/lib-src/sorted-doc.c +++ b/lib-src/sorted-doc.c @@ -1,8 +1,8 @@ /* Give this program DOC-mm.nn.oo as standard input and it outputs to standard output a file of texinfo input containing the doc strings. - Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001 - Free Software Foundation Inc. + Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/test-distrib.c b/lib-src/test-distrib.c index 0bbc6806d71..0d3587af8da 100644 --- a/lib-src/test-distrib.c +++ b/lib-src/test-distrib.c @@ -1,7 +1,7 @@ /* test-distrib.c --- testing distribution of nonprinting chars - Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001 - Free Software Foundation Inc. + Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index d9d20b8525d..46d0d8b0600 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c @@ -1,5 +1,5 @@ /* update-game-score.c --- Update a score file - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lib-src/vcdiff b/lib-src/vcdiff index 8e1722d43ba..a57811a7f6d 100755 --- a/lib-src/vcdiff +++ b/lib-src/vcdiff @@ -3,8 +3,8 @@ # Enhanced sccs diff utility for use with vc mode. # This version is more compatible with rcsdiff(1). # -# Copyright (C) 1992, 1993, 1995, 1997, 2001, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f5dbc71ff97..1bcdf7628b4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,2519 @@ +2005-09-02 Dan Nicolaescu <dann@ics.uci.edu> + + * term/xterm.el (terminal-init-xterm): Add eval-when-compile to + fix compilation warning. Reorder the key definitions to group + together keys emitted by the current version of xterm. + + * progmodes/vhdl-mode.el (vhdl-highlight-faces) + (vhdl-speedbar-entity-face, vhdl-speedbar-entity-selected-face): + Reorder predicates to correct min-color usage. + +2005-09-01 Chong Yidong <cyd@stupidchicken.com> + + * longlines.el (longlines-mode): Inhibit read-only when encoding. + Kill local variables when longlines-mode is turned off. + +2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * obsolete/lazy-lock.el (lazy-lock) <defgroup>: Move from font-lock.el. + + * obsolete/fast-lock.el (fast-lock) <defgroup>: Move from font-lock.el. + + * font-lock.el (fast-lock, lazy-lock) <defgroup>: Remove. + (font-lock-lines-before): Change default to being inactive. + (font-lock-default-fontify-region): Obey font-lock-lines-before. + (font-lock-after-change-function): Don't handle f-l-lines-before here. + +2005-08-31 Michael Albinus <michael.albinus@gmx.de> + + * net/tramp.el (tramp-handle-make-auto-save-file-name): + Deactivate temporarily advice if active (not needed for Emacs 22, + but for backwards compatibility). + (tramp-exists-file-name-handler): Rewrite. First implementation + was too simple. + (tramp-advice-make-auto-save-file-name): + Call `tramp-handle-make-auto-save-file-name' (again, just for + backwards compatibility). + +2005-08-31 Reto Zimmermann <reto@gnu.org> + + * progmodes/vhdl-mode.el + (vhdl-update-sensitivity-list): Handle multi-dimensional array access. + (vhdl-end-p): Fix indentation bug "else" after "-- when". + (vhdl-set-default-project): New function (easier setting of default). + (vhdl-port-copy): Handle extended identifiers for generics. + (vhdl-compiler-alist): Better description for error message regexp. + (vhdl-make): Query for target, use previous as default. + (vhdl-port-copy): Fix port copy for port names starting with "signal". + (vhdl-font-lock-keywords-2): Fix fontification for record + el. assign. + (vhdl-speedbar-make-subpack-line): Add package body link. + (vhdl-generate-makefile-1): Not include itself as dependency. + (vhdl-font-lock-init): Highlight c-preprocessor directives. + (vhdl-*ward-syntactic-ws): Skip c-preprocessor directives. + (vhdl-get-syntactic-context): Handle c-preprocessor directives. + (vhdl-update-sensitivity-list): Start scan at opening parenthesis. + (vhdl-fixup-whitespace-region): Fix jumping point (infinite loop). + (vhdl-update-sensitivity-list-buffer): Add string argument for `error'. + (vhdl-import-project): Add string argument for `error'. + (vhdl-compose-configuration) + (vhdl-compose-configuration-architecture): Add configuration + declaration generation. + (vhdl-scan-directory-contents): Scan for block/generate hierarchy. + (vhdl-trailer-re): Add "record" keyword (better indentation). + (vhdl-fixup-whitespace-region): "[^ \t\"-]+" instead of + "[^ \t-\"]+". + (vhdl-font-lock-keywords-2): Not highlight formal parameter after '|'. + (vhdl-testbench-entity-file-name) + (vhdl-testbench-architecture-file-name): Allow separate + customization of testbench file names. + (vhdl-beginning-of-block): Handle optional subprogram parameter list. + (vhdl-get-visible-signals): Allow newline within alias declaration. + (vhdl-update-sensitivity-list): Signal read only on certain attributes. + (vhdl-fixup-whitespace-region): Fix bug with strings (double quotes). + (member-ignore-case): Alias for missing function in XEmacs. + (vhdl-compiler-alist): Add unit-to-file name mapping for Cadence NC. + (vhdl-update-sensitivity-list): Ignore case on read signals. + (vhdl-replace-string): Adjust case only for file names. + (vhdl-update-sensitivity-list): Fix search for read signals. + (vhdl-update-sensitivity-list): Exclude formal parameters. + (vhdl-get-visible-signals): Include aliases of signals. + (vhdl-get-visible-signals): Fix signal name searching. + (vhdl-port-flatten, vhdl-port-reverse-direction): Better message. + (vhdl-fixup-whitespace-region): Fix for character + literals (e.g. ':'). + +2005-08-31 Juanma Barranquero <lekktu@gmail.com> + + * ansi-color.el (comint-last-output-start): + * bs.el (font-lock-verbose): + * diff-mode.el (add-log-buffer-file-name-function): + * dired-x.el (vm-folder-directory): + * faces.el (help-xref-stack-item): + * files.el (font-lock-keywords): + * find-lisp.el (dired-buffers, dired-subdir-alist): + * ido.el (cua-inhibit-cua-keys): + * log-view.el (cvs-minor-wrap-function): + * outline.el (font-lock-warning-face): + * simple.el (compilation-current-error): + * speedbar.el (ange-ftp-path-format, efs-path-regexp) + (font-lock-keywords, x-pointer-hand2, x-pointer-top-left-arrow): + * tooltip.el (comint-prompt-regexp): + * w32-fns.el (explicit-shell-file-name): + * term/mac-win.el (mac-charset-info-alist) + (mac-services-selection, mac-system-script-code): + * term/tty-colors.el (msdos-color-values): + * term/w32-win.el (xlfd-regexp-registry-subnum): + * term/x-win.el (x-keysym-table, x-selection-timeout) + (x-session-id, x-session-previous-id): + * textmodes/ispell.el (mail-yank-prefix): + * textmodes/makeinfo.el (tex-end-of-header, tex-start-of-header): + * textmodes/org.el (calc-embedded-close-formula) + (calc-embedded-open-formula) + (font-lock-unfontify-region-function): + * textmodes/reftex-global.el (isearch-next-buffer-function) + (TeX-master): + * textmodes/reftex.el (font-lock-keywords): + * textmodes/tex-mode.el (font-lock-comment-face) + (font-lock-doc-face): + * textmodes/texinfo.el (outline-heading-alist): + Add defvars. + + * textmodes/artist.el (x-pointer-crosshair): Add defvar. + (artist-spray-chars, artist-mode-init, artist-replace-string) + (artist-select-erase-char, artist-vap-find-endpoints-horiz) + (artist-vap-find-endpoints-vert, artist-vap-find-endpoints-swne) + (artist-vap-find-endpoints-nwse): "?\ " -> "?\s". + + * textmodes/conf-mode.el (outline-heading-end-regexp): Add defvar. + (conf-align-assignments): "?\ " -> "?\s". + + * textmodes/reftex-index.el (TeX-master): Add defvar. + (reftex-index-phrases-marker): Move up defvar. + + * textmodes/reftex-toc.el (zmacs-regions): Add defvar. + (reftex-toc-include-labels-indicator) + (reftex-toc-include-index-indicator) + (reftex-toc-max-level-indicator): Move up declarations. + + * net/tramp.el (tramp-handle-make-auto-save-file-name): Pass list + of args to `tramp-run-real-handler', even if it's empty in this case. + +2005-08-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * dired.el (dired-move-to-filename-regexp): Add date format for + Mac OS X 10.3 in East Asian locales. + +2005-08-31 Michael Albinus <michael.albinus@gmx.de> + + * files.el (make-auto-save-file-name): Add file name handler call + if applicable. + + * net/tramp.el (tramp-file-name-handler-alist) + (tramp-file-name-for-operation): Add `make-auto-save-file-name'. + (tramp-handle-make-auto-save-file-name): Rename from + `tramp-make-auto-save-file-name'. + (tramp-exists-file-name-handler): New defun. + (tramp-advice-make-auto-save-file-name): Make defadvice only when + `make-auto-save-file-name' is not a magic file name operation. + +2005-08-30 Carsten Dominik <dominik@science.uva.nl> + + * textmodes/org.el (org-special-keyword): New face. + (org-table-copy-down, org-table-eval-formula) + (org-table-recalculate, org-init-section-numbers): + Use `string-to-number' instead of `string-to-int'. + (org-get-location): Use `insert-buffer-substring' instead of + `insert-buffer'. + (org-modify-diary-entry-string): New function. + (org-get-entries-from-diary): Set the hook for `add-to-diary-list'. + (org-disable-agenda-to-diary): Rename from `org-disable-diary'. + (org-toggle-fixed-width-section): Use QUOTE keyword if there is no + active region. + (org-export-as-html): Handle QUOTE keyword. + (org-quote-string): New option. + (org-bookmark-jump-unhide): New function, used for + `bookmark-after-jump-hook'. + (org-diary-default-entry): Apply only when not called through + `org-agenda'. + +2005-08-30 Juanma Barranquero <lekktu@gmail.com> + + * net/eudc.el (mode-popup-menu): + * play/handwrite.el (ps-printer-name, ps-lpr-command): + * progmodes/ada-mode.el (compile-auto-highlight) + (skeleton-further-elements): + * progmodes/autoconf.el (font-lock-syntactic-keywords): + * progmodes/cmacexp.el (msdos-shells): + * progmodes/compile.el (font-lock-extra-managed-props) + (font-lock-keywords, font-lock-maximum-size) + (font-lock-support-mode): + * progmodes/grep.el (font-lock-lines-before): + * progmodes/idlw-complete-structtag.el (idlwave-completion-help-info): + * progmodes/mixal-mode.el (compile-command): + * progmodes/perl-mode.el (font-lock-comment-face) + (font-lock-doc-face, font-lock-string-face): + * progmodes/prolog.el (comint-prompt-regexp): + * progmodes/sh-script.el (font-lock-comment-face) + (font-lock-set-defaults, font-lock-string-face): + * progmodes/sql.el (font-lock-keyword-face) + (font-lock-set-defaults, font-lock-string-face): + * progmodes/vhdl-mode.el (compilation-file-regexp-alist) + (itimer-version, lazy-lock-defer-contextually) + (lazy-lock-defer-on-scrolling, lazy-lock-defer-on-the-fly): + Add defvars. + + * progmodes/cperl-mode.el (cperl-electric-lbrace) + (cperl-electric-keyword, cperl-electric-pod) + (cperl-electric-backspace, cperl-forward-re) + (cperl-fix-line-spacing, cperl-fill-paragraph): "?\ " -> "?\s". + (vc-rcs-header, vc-sccs-header): Add defvars. + + * progmodes/fortran.el (fortran-indent-to-column): "?\ " -> "?\s". + (font-lock-syntactic-keywords, gud-find-expr-function): + Add defvars. + + * progmodes/gdb-ui.el (tool-bar-map): Add defvar. + (gdb-frame-parameters): Declare before use. + + * progmodes/gud.el (gdb-active-process, gdb-define-alist) + (gdb-macro-info, gdb-server-prefix, gdb-show-changed-values) + (gdb-var-changed, gdb-var-list, tool-bar-map): Add defvars. + (gud-expr-compound-sep, gud-expr-compound): "?\ " -> "?\s". + + * progmodes/idlw-help.el (browse-url-generic-args): Add defvar. + (idlwave-help-with-source): Use `insert-buffer-substring', not + `insert-buffer'. + +2005-08-29 Juri Linkov <juri@jurta.org> + + * outline.el (hide-entry, hide-leaves, outline-toggle-children): + Put outline-back-to-heading function call inside save-excursion. + +2005-08-29 Juanma Barranquero <lekktu@gmail.com> + + * man.el (Man-init-defvars, Man-translate-references) + (Man-support-local-filenames, Man-highlight-references): + * progmodes/sql.el (sql-interactive-mode): + * shell.el (shell-mode, shell-resync-dirs): Fix typos in docstrings. + + * emacs-lisp/checkdoc.el (compilation-error-regexp-alist) + (compilation-mode-font-lock-keywords): Add defvars. + (checkdoc-interactive-loop): "?\ " -> "?\s". + + * emacs-lisp/lisp-mode.el (font-lock-comment-face) + (font-lock-doc-face, font-lock-string-face) + (font-lock-keywords-case-fold-search): Add defvars. + (emacs-lisp-mode-syntax-table): "?\ " -> "?\s". + + * obsolete/sun-fns.el (mouse-select-or-drag-move-point): + Don't pass X and Y (they are ignored anyway). + (mouse-set-mark, mouse-select-window, mouse-delete-other-windows) + (mouse-delete-window): Make arguments optional. + + * obsolete/rnews.el (news-add-news-group): Don't use `end-of-line'. + (caesar-translate-table, minor-modes, news-buffer-save) + (news-group-name, news-minor-modes): Add defvars. + + * emacs-lisp/lselect.el (mouse-highlight-priority) + (x-lost-selection-functions, zmacs-regions): + * emacs-lisp/pp.el (font-lock-verbose): + * emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function): + * emacs-lisp/tcover-ses.el (ses-initial-global-parameters) + (ses-mode-map): + * emacs-lisp/tcover-unsafep.el (safe-functions): + * international/mule-cmds.el (mac-system-coding-system) + (mac-system-locale): + * language/ethio-util.el (rmail-current-message) + (rmail-message-vector): + * language/thai-util.el (thai-auto-composition-mode): + * mail/metamail.el (rmail-current-message, rmail-message-vector): + * mail/mspools.el (rmail-inbox-list, vm-crash-box) + (vm-folder-directory, vm-init-file, vm-init-file-loaded) + (vm-primary-inbox, vm-spool-files): + * mail/rmail.el (deleted-head, font-lock-fontified) + (mail-abbrev-syntax-table, mail-abbrevs, messages-head) + (rmail-use-spam-filter, rsf-beep, rsf-sleep-after-message) + (total-messages): + * mail/rmail-spam-filter.el (bbdb/mail_auto_create_p) + (rmail-summary-mode-map): + * mail/rmailkwd.el (rmail-buffer, rmail-current-message) + (rmail-last-label, rmail-last-multi-labels) + (rmail-summary-vector, rmail-total-messages): + * mail/rmailmsc.el (rmail-current-message, rmail-inbox-list): + * mail/rmailsum.el (msgnum): + * mail/uce.el (gnus-original-article-buffer, mail-reply-buffer) + (rmail-current-message): + * obsolete/fast-lock.el (font-lock-face-list): + * obsolete/rnewspost.el (mail-reply-buffer): + * obsolete/scribe.el (compile-command): + * obsolete/x-menu.el (x-process-mouse-hook): Add defvars. + +2005-08-28 John Paul Wallington <jpw@gnu.org> + + * ibuf-ext.el (ibuffer-auto-update-changed): + Use `frame-or-buffer-changed-p' to check whether we need to update. + (ibuffer-auto-mode): Don't advise `get-buffer-create' and + `kill-buffer'. Initialise `ibuffer-auto-buffers-changed' + as a `frame-or-buffer-changed-p' state vector instead. + +2005-08-27 Romain Francoise <romain@orebokech.com> + + * textmodes/makeinfo.el (makeinfo-compile): + Use `compilation-start'. Set `next-error-function' according to + `disable-errors'. + (makeinfo-next-error): New function. + (makeinfo-region): Adjust to new `makeinfo-compile' prototype. + (makeinfo-buffer): Likewise. + + * progmodes/compile.el (compilation-start): Add autoload cookie. + + * progmodes/antlr-mode.el: Don't autoload `compilation-start'. + * textmodes/sgml-mode.el: Likewise. + * progmodes/python.el: Likewise. + +2005-08-27 Eli Zaretskii <eliz@gnu.org> + + * simple.el (blink-matching-paren-distance): Document the meaning + of nil value, and allow to customize to nil. + + * eshell/esh-ext.el (eshell-windows-shell-file): Look for + command.com, not command.exe. + +2005-08-26 John Wiegley <johnw@newartisans.com> + + * eshell/esh-cmd.el (eshell-rewrite-named-command): Change the + code around a bit so that an extraneous nil argument is not added + to a command when no args are given. + + * eshell/esh-arg.el (eshell-parse-double-quote): If a + double-quoted argument resolves to nil, return it as an empty + string rather than as nil. This made it impossible to pass "" to + a shell script as a null string argument. + +2005-08-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * outline.el (outline-invent-heading): New fun. + (outline-promote, outline-demote): Use it. + (outline-move-subtree-down): Remove unused vars `re' and `txt'. + (outline-end-of-subtree): Remove unused var `opoint'. + +2005-08-26 David Reitter <david.reitter@gmail.com> + + * menu-bar.el (truncate-lines, write-file, print-buffer) + (ps-print-buffer-faces, ps-print-buffer, split-window): + Disable menu items when the frame they refer to is invisible, or when + they refer to a buffer and the minibuffer is selected. + +2005-08-26 Pavel Kobiakov <pk_at_work@yahoo.com> + + * progmodes/flymake.el (flymake-highlight-err-lines): + Use save-excursion around flymake-highlight-line to preserve point. + +2005-08-26 Eli Zaretskii <eliz@gnu.org> + + * progmodes/octave-mod.el: Change Author and Maintainer address. + (octave-maintainer-address): Change Kurt's email address. + * progmodes/octave-inf.el: Change Author and Maintainer address. + * progmodes/octave-hlp.el: Change Author and Maintainer address. + +2005-08-26 Kim F. Storm <storm@cua.dk> + + * subr.el (version-list-<, version-list-<=, version-list-=): + Renamed from integer-list-*. + (version-list-not-zero): Likewise. Fix while loop. + (version=): Use version-list-= instead of string-equal. + +2005-08-26 Richard M. Stallman <rms@gnu.org> + + * outline.el (outline-promote): Try shortening the heading. + As last resort, read the heading to use. + (outline-demote): As last resort, read the heading to use. + +2005-08-26 Romain Francoise <romain@orebokech.com> + + * progmodes/compile.el (compilation-start): Doc fix. + + * progmodes/antlr-mode.el (antlr-default): Fix defface form. + (antlr-font-lock-additional-keywords): Fix reference to + `antlr-font-lock-literal-regexp' erroneously changed during the + mass face rename. + (antlr-run-tool): Use `compilation-start'. + + * textmodes/sgml-mode.el (sgml-validate): Use `compilation-start' + instead of the obsolete `compile-internal'. + +2005-08-26 Juanma Barranquero <lekktu@gmail.com> + + * calendar/cal-bahai.el (date, displayed-month, displayed-year) + (number, original-date): + * calendar/cal-china.el (date): + * calendar/cal-coptic.el (date): + * calendar/cal-french.el (date): + * calendar/cal-hebrew.el (date, entry, number, original-date): + * calendar/cal-islam.el (date, number, original-date): + * calendar/cal-iso.el (date): + * calendar/cal-julian.el (date): + * calendar/cal-mayan.el (date): + * calendar/cal-menu.el (date, event): + * calendar/cal-persia.el (date): + * calendar/lunar.el (date): + * calendar/solar.el (date): Add defvars. + + * emerge.el: + * ibuffer.el: + * info-xref.el: + * obsolete/bg-mouse.el: + * obsolete/sun-curs.el: + * obsolete/swedish.el: Move the `defvar's to the top level. + + * smerge-mode.el (smerge-refined-change): Add :group. + +2005-08-25 Stefan Monnier <monnier@iro.umontreal.ca> + + * smerge-mode.el (smerge-remove-props): Make the args non-optional. + (smerge-keep-n): Remove props. + (smerge-keep-base, smerge-keep-other, smerge-keep-mine) + (smerge-keep-current, smerge-kill-current): Don't remove props anymore + now that it's done in smerge-keep-n. + (smerge-refined-change): New face. + (smerge-refine-chopup-region, smerge-refine-highlight-change) + (smerge-refine): New funs. + (smerge-basic-map): Bind smerge-refine. + +2005-08-25 Juri Linkov <juri@jurta.org> + + * progmodes/grep.el (grep, grep-mode): Make buffer-local variables + compilation-process-setup-function and compilation-disable-input + in grep-mode instead of let-bindings in grep. + + * menu-bar.el (menu-bar-options-menu, menu-bar-options-save): + Delete "Automatic File De/compression" (auto-compression-mode). + +2005-08-25 Juanma Barranquero <lekktu@gmail.com> + + * obsolete/bg-mouse.el: Move to obsolete/ from term/. + Silence warning about non-existent variable. + +2005-08-25 Richard M. Stallman <rms@gnu.org> + + * menu-bar.el (menu-bar-describe-menu): Delete "What's New". + Rename "Describe Key" to "Describe Key or Mouse Operation". + + * mail/mailalias.el (build-mail-aliases): Delete comments + from the contents before processing them. + + * isearch.el (isearch-edit-string): Erase the Search prompt + if user enters an empty string and there is no default. + + * comint.el (comint-file-name-prefix): Add autoload. + +2005-08-25 Joe Corneli <jcorneli@math.utexas.edu> + + * subr.el (play-sound): Rearrange to avoid warning. + +2005-08-25 Carsten Dominik <dominik@science.uva.nl> + + * calendar/diary-lib.el (diary-modify-entry-list-string-function): + New hook. + (add-to-diary-list): Call `diary-modify-entry-list-string-function' + +2005-08-24 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * subr.el (version-separator, version-regexp-alist): New vars used by + version comparison funs. + (integer-list-<, integer-list-=, integer-list-<=) + (integer-list-not-zero): New funs for integer list comparison. + (version-to-list, version=, version<, version<=): New funs for version + comparison. + +2005-08-24 Juanma Barranquero <lekktu@gmail.com> + + * emerge.el (merge-begin, merge-end, template, A-begin, A-end) + (B-begin, B-end, diff, diff-vector, valid-diff): Defvar at compile + time to silence the byte-compiler. + + * ibuffer.el (ibuffer-compile-make-eliding-form) + (ibuffer-check-formats): Use `with-no-warnings' to hide references + to `ibuffer-elide-long-columns' (which is defined on ibuffer.el, + so it's silly to get warnings for it). + (ibuffer-auto-mode, ibuffer-cached-filter-formats) + (ibuffer-compiled-filter-formats, ibuffer-filter-format-alist) + (ibuffer-filter-group-kill-ring, ibuffer-filter-groups) + (ibuffer-filtering-qualifiers, ibuffer-hidden-filter-groups) + (ibuffer-inline-columns, ibuffer-show-empty-filter-groups) + (ibuffer-tmp-hide-regexps, ibuffer-tmp-show-regexps): + Defvar at compile time. + (ibuffer-compiled-formats, ibuffer-cached-eliding-string) + (ibuffer-cached-formats, ibuffer-cached-elide-long-columns): + Declare them before use. + + * info-xref.el (info-xref-xfile-alist, info-xref-filename-heading) + (info-xref-good, info-xref-bad): Defvar at compile time. + + * obsolete/mlsupport.el (filter-region, execute-monitor-command): + Use `let*' instead of `let'. + + * obsolete/sun-curs.el (icon-edit, *mouse-window*, *mouse-x*) + (*mouse-y*, menu, char): Defvar at compile time. + (sc::menu): Declare it before use. + (sc::pack-one-line): Use `let', not `let*'. + + * obsolete/swedish.el (news-inews-hook, news-group-hook-alist) + (mail-send-hook): Defvar at compile time. + + * term/bg-mouse.el (bg-mouse-x, bg-mouse-y, bg-cursor-window): + Defvar at compile time. + + * term/sun-mouse.el (current-global-mousemap) + (current-local-mousemap): Declare them before use. + +2005-08-24 Carsten Dominik <dominik@science.uva.nl> + + * bookmark.el (bookmark-after-jump-hook): New hook. + (bookmark-jump): Run `bookmark-after-jump-hook'. + +2005-08-23 Juri Linkov <juri@jurta.org> + + * faces.el (minibuffer-prompt): Doc fix. + +2005-08-23 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/xscheme.el: Trivial changes to silence warnings. + (xscheme-previous-mode, xscheme-previous-process-state): + Add defvars. + (xscheme-last-input-end, xscheme-process-command-line) + (xscheme-process-name, xscheme-buffer-name) + (xscheme-expressions-ring-max, xscheme-expressions-ring) + (xscheme-expressions-ring-yank-pointer, xscheme-running-p) + (xscheme-control-g-synchronization-p) + (xscheme-control-g-disabled-p, xscheme-string-receiver) + (default-xscheme-runlight, xscheme-runlight) + (xscheme-runlight-string, xscheme-process-filter-state) + (xscheme-allow-output-p, xscheme-prompt, xscheme-mode-string): + Move to beginning of file. + (scheme-interaction-mode-commands-alist) + (scheme-interaction-mode-map, scheme-debugger-mode-map): Declare + them before use. Note: the initialization code for the variables + has not been moved because it uses functions that reference the + variables. + (xscheme-control-g-message-string, xscheme-process-filter-alist) + (xscheme-prompt-for-expression-map): Declare them before use. + (scheme-debugger-mode-commands): "?\ " -> "?\s". + +2005-08-23 Ed Swarthout <ed.swarthout@gmail.com> (tiny change) + + * hexl.el (hexl-print-current-point-info): Fix simple spelling + error. + +2005-08-22 Juri Linkov <juri@jurta.org> + + * faces.el (set-face-underline): Delete this duplicate function + and make an obsolete alias to set-face-underline-p. + (set-face-underline-p): Use docstring of set-face-underline. + (describe-face): Create hyperlink to parent face. + + * info.el (Info-insert-dir): Use save-excursion around + insert-buffer-substring. + (Info-isearch-search): Use LITERAL arg of replace-regexp-in-string. + (Info-escape-percent): Delete function. + (Info-fontify-node): Replace Info-escape-percent by + replace-regexp-in-string with REP arg set to lambda that + duplicates `%' and preserves text properties. + + * progmodes/compile.el (compilation-disable-input): Doc fix. + (define-compilation-mode): Doc fix and refill. + (kill-compilation): Use `mode-name' in the error message. + (compilation-find-file): Use `compilation-error' in the + read-file-name's prompt. + +2005-08-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * smerge-mode.el (smerge-basic-map): Bind smerge-combine-with-next. + (smerge-auto-leave): Make undo re-enable the mode. + (debug-ignored-errors): Add the user-error of impossible resolution. + (smerge-resolve): Move things around a bit, in preparation for later. + (smerge-diff): Don't fail if the buffer has no associated file. + (ediff-ancestor-buffer, ediff-quit-hook): Quieten byte-compiler. + (smerge-conflict-overlay): New function. + (smerge-match-conflict): Don't add text properties here. + (smerge-find-conflict): Instead, add an overlay here. + Also check for the case where we're inside a conflict already, so as to + obviate the need for font-lock-multiline, which is unbearably slow with + large conflicts and ciomplex font-lock patterns. + (smerge-remove-props): Remove overlay rather than text-properties. + (smerge-mode): Don't set font-lock-multiline. + Remove overlays when turned off. + +2005-08-21 Kim F. Storm <storm@cua.dk> + + * ido.el (ido-ignore-item-p): Use save-match-data. + Bind case-fold-search to ido-case-fold locally. + +2005-08-20 Richard M. Stallman <rms@gnu.org> + + * files.el (normal-mode): If font lock is on, turn it off and on. + + * subr.el (replace-regexp-in-string): Doc fix. + + * startup.el (command-line-1): Don't suppress startup screen + due to existing processes. + + * progmodes/grep.el (grep): Bind compilation-disable-input to t. + + * progmodes/compile.el (compilation-disable-input): Default to nil. + +2005-08-20 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change) + + * progmodes/compile.el (compilation-disable-input): New defcustom. + (compilation-start): If compilation-disable-input is non-nil, send + EOF to the compilation process. + +2005-08-20 Eli Zaretskii <eliz@gnu.org> + + * textmodes/tex-mode.el (tex-bibtex-file, tex-send-tex-command): + Run the argument of tex-shell-cd-command through + convert-standard-filename, to get the correct style of slashes on + Windows, and enclose the result in quotes, in case the file name + includes whitespace or other special characters. + +2005-08-19 Andreas Schwab <schwab@suse.de> + + * progmodes/gud.el (gud-kill-buffer-hook): Don't kill unrelated + process. + +2005-08-18 Luc Teirlinck <teirllm@auburn.edu> + + * cus-start.el (minibuffer-prompt-properties): Correct typo. + +2005-08-18 Kim F. Storm <storm@cua.dk> + + * scroll-lock.el: Fix errors due to incorrect line wrapping. + +2005-08-18 Richard M. Stallman <rms@gnu.org> + + * scroll-lock.el: New file. + +2005-08-18 Thien-Thi Nguyen <ttn@gnu.org> + + * dired.el (dired-move-to-end-of-filename): + Handle fifo as rendered by "ls -lF": Don't include trailing "|". + +2005-08-18 Kim F. Storm <storm@cua.dk> + + * ido.el (ido-everywhere): Fix defcustom :set function to disable + rather than toggle mode when custom value is nil. + (ido-everywhere): Fix defun doc string. + +2005-08-17 Richard M. Stallman <rms@gnu.org> + + * cus-start.el (minibuffer-prompt-properties): Use "Don't Enter" + as tag instead of "Inviolable". + +2005-08-17 Kim F. Storm <storm@cua.dk> + + * windmove.el (windmove-coordinates-of-position): Remove. + (windmove-coordinates-of-window-position): Remove. + (windmove-reference-loc): Use posn-at-point instead. + + * subr.el (insert-for-yank-1): Doc fix. + + * ido.el (ido-enter-matching-directory): Rename from + ido-enter-single-matching-directory. Change 'slash choice to + 'only. Add 'first choice. + (ido-exhibit): Adapt to above changes. + +2005-08-16 Luc Teirlinck <teirllm@auburn.edu> + + * Makefile.in: Expand comment about building loaddefs.el. + +2005-08-16 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el (toggle-gdb-use-inferior-io-buffer): + Comment use of defadvice. + + * progmodes/gud.el (gud-jump): Rework for gdb-ui. + +2005-08-15 Dan Nicolaescu <dann@ics.uci.edu> + + * buff-menu.el, compare-w.el, emacs-lisp/testcover.el, + * play/gomoku.el, play/mpuz.el, progmodes/flymake.el, + * progmodes/gdb-ui.el, progmodes/idlw-help.el, + * progmodes/idlw-shell.el, progmodes/ld-script.el, + * progmodes/which-func.el, ruler-mode.el, strokes.el, + * textmodes/sgml-mode.el, textmodes/table.el: Do not use face-alias + for backward compatibility for faces that did not appear in the + previous Emacs release. + + * simple.el (next-error-follow-minor-mode): Fix init value and lighter. + +2005-08-15 Kim F. Storm <storm@cua.dk> + + * emulation/cua-base.el (cua-delete-region): Return t if + deleted region was non-empty. + (cua-replace-region): Inhibit overwrite-mode for + self-insert-command if replaced region was non-empty. + (cua--explicit-region-start, cua--status-string): Make them + buffer-local at top-level... + (cua-mode): ...rather than when mode is enabled. + +2005-08-15 Thien-Thi Nguyen <ttn@gnu.org> + + * progmodes/vhdl-mode.el (vhdl-emacs-21): + Set t for Emacs 21, 22, and so on. + +2005-08-15 David Ponce <david@dponce.com> + + * tree-widget.el Update Commentary header. + (tree-widget-theme): Doc fix. + (tree-widget-space-width): New option. + (tree-widget-image-properties): Look up in the default theme too. + (tree-widget--cursors): Only for images with arrow pointer shape. + (tree-widget-lookup-image): Pointer shape is hand by default. + (tree-widget-icon): Rename generic icon widget from + `tree-widget-control'. + (tree-widget-*-icon): Rename from `tree-widget-*-control' and + derive from `tree-widget-icon'. + (tree-widget-handle): Improve default look and feel of the text + representation. + (tree-widget): Rename :*-control properties to :*-icon properties. + Add :action and :help-echo properties. + (tree-widget-after-toggle-functions): Move. + (tree-widget-close-node, tree-widget-open-node): Remove. + (tree-widget-before-create-icon-functions): New hook. + (tree-widget-value-create): Update to allow customization of icons + and nodes at run-time via that new hook. + (tree-widget-icon-create, tree-widget-leaf-node-icon-p) + (tree-widget-icon-action, tree-widget-icon-help-echo) + (tree-widget-action, tree-widget-help-echo): New functions. + +2005-08-15 Kim F. Storm <storm@cua.dk> + + * ido.el (ido-buffer-internal): Use with-no-warnings. + (ido-make-merged-file-list): Use while-no-input. + +2005-08-15 Richard M. Stallman <rms@gnu.org> + + * textmodes/flyspell.el (flyspell-mark-duplications-flag): Doc fix. + (flyspell-large-region): Fix doc and custom type. + +2005-08-14 Richard M. Stallman <rms@gnu.org> + + * files.el (interpreter-mode-alist): Doc fix. + + * mail/rmail.el (rmail-nonignored-headers): New variable. + (rmail-clear-headers): Use it. + (rmail-reply): Better handling of mail-followup-to header. + + * progmodes/sh-script.el (sh-font-lock-keywords-var): + Rename variable from sh-font-lock-keywords. In the `shell' entry, + don't try to refer to executable-font-lock-keywords. + (sh-font-lock-keywords-var-1): Rename from sh-font-lock-keywords-1. + (sh-font-lock-keywords-var-2): Rename from sh-font-lock-keywords-2. + (sh-font-lock-keywords): Append executable-font-lock-keywords here. + (sh-mode): Set comment-start-skip, local-abbrev-table, + imenu-case-fold-search. + (sh-set-shell): Don't set them here. + (sh-feature): Simplify. Get rid of the eval-a-variable feature. + Don't cache the results in the original alist; don't ever modify + that alist. + + * textmodes/flyspell.el (flyspell-mode): Autoload a defvar. + + * textmodes/ispell.el (lookup-words): Cope with case where ARGS is + empty. + +2005-08-15 Andreas Schwab <schwab@suse.de> + + * desktop.el: Put autoload cookie at risky-local-variable declarations. + + * dired.el, info.el, mail/rmail.el: Revert last change. + +2005-08-14 Thien-Thi Nguyen <ttn@gnu.org> + + * dired.el: Fix dependency bug: Wrap `desktop-buffer-mode-handlers' + modification in `eval-after-load' form. + * info.el: Likewise. + * mail/rmail.el: Likewise. + +2005-08-14 Juri Linkov <juri@jurta.org> + + * progmodes/compile.el (compilation-mode-font-lock-keywords): + Remove highlighting of "Compilation started". Highlight only + the word "finished" in "Compilation finished". Add highlighting + of "interrupt", "killed", "terminated" and the exit code. + (compilation-start): Add newline after header. Use exactly the + same time stamp format as the finishing message. + (compilation-mode-map): Add ellipsis to "Search Files (grep)". + + * progmodes/grep.el (grep-mode-map): Add ellipsis to "Another grep". + (grep-mode-font-lock-keywords): Don't highlight "Grep started". + Add highlighting of "interrupt", "killed", "terminated". + + * delsel.el (delete-selection-pre-hook): If overwrite-mode is + enabled and the current command is self-insert-command, call it + explicitly with overwrite-mode bound to nil, to not allow it + to delete the character after the selected region. + +2005-08-12 Matt Hodges <MPHodges@member.fsf.org> + + * emacs-lisp/eldoc.el: Add move-beginning-of-line, + move-end-of-line, end-of-line, and beginning-of-line to the list + of commands after which the echo area is updated. + +2005-08-12 Eli Zaretskii <eliz@gnu.org> + + * cus-edit.el (custom-save-all, custom-save-delete): + Bind recentf-exclude to exclude custom-file. + +2005-08-12 Ehud Karni <ehud@unix.mvs.co.il> + + * mail/rmailsum.el (rmail-summary-end-of-message): New command + to go to the bottom of the mail message. Added to + `rmail-summary-mode-map' with key "/". + (rmail-summary-show-message): New (internal) function for use by + both `rmail-summary-beginning/end-of-message'. + (rmail-summary-beginning-of-message): Change to use + rmail-summary-show-message. + + * mail/rmail.el (rmail-end-of-message): New command to go to the + end of the current message. Added to `rmail-mode-map' with key "/". + (rmail-beginning-of-message): Fix to work as documented. + (rmail-mode): Change documentation. + + * progmodes/compile.el (compilation-start): Add the line + "Compilation started" with compilation start time. + (compilation-mode-font-lock-keywords): Add `started' to keywords. + +2005-08-11 Luc Teirlinck <teirllm@auburn.edu> + + * menu-bar.el (menu-bar-options-menu): Standardize capitalization + of menu items. + +2005-08-11 Richard M. Stallman <rms@gnu.org> + + * simple.el (pop-global-mark): Reverse test of widen-automatically. + + * battery.el (battery-status-function): Don't use ignore-errors. + +2005-08-11 Lute Kamstra <lute@gnu.org> + + * emacs-lisp/generic.el (generic-font-lock-defaults): Declare with + define-obsolete-variable-alias. + +2005-08-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * net/ange-ftp.el: Use \\` and \\' instead of ^ and $ in regexps. + (ange-ftp-send-cmd): Revert last change, and expand + the comment explaining the problem. + +2005-08-10 Luc Teirlinck <teirllm@auburn.edu> + + * ldefs-boot.el: Update. + + * menu-bar.el (menu-bar-showhide-menu): Rename "Date, Time and Mail" + item to "Time, Load and Mail". Change help echo text. + + * time.el (display-time-use-mail-icon, display-time-format) + (display-time-string-forms): Shorten first line of docstrings. + +2005-08-10 Lars Hansen <larsh@soem.dk> + + * desktop.el (desktop-buffer-mode-handlers): + Make non-customizable. Add autoload cookie. Change initial value to + nil; add elements in respective modules instead. Fix doc string. + (desktop-load-file): New function. + (desktop-minor-mode-handlers): New autoloaded variable. + (desktop-create-buffer): Call minor mode handlers. + Use desktop-load-file to load major and minor mode modules prior to + checking for a handler. + (desktop-save): Don't add nil to desktop-minor-modes for minor + modes with nil function in desktop-minor-mode-table. Don't delete + desktop file before rewriting it. + (desktop-locals-to-save): Add autoload cookie. Don't make + automatically buffer-local. Add variables column-number-mode, + size-indication-mode, indent-tabs-mode, + indicate-buffer-boundaries, indicate-empty-lines and + show-trailing-whitespace. + (desktop-clear): Allow desktop-clear-preserve-buffers to contain + regexps. Don't use desktop-clear-preserve-buffers-regexp. + (desktop-clear-preserve-buffers-regexp): Delete. + (desktop-clear-preserve-buffers): Update initial value and docstring. + (desktop-save-buffer): Fix doc string. + + * hilit-chg.el: Add handler to desktop-minor-mode-handlers. + (hilit-chg-desktop-restore): New function. + (highlight-changes-mode): Add highlight-changes-mode to + desktop-locals-to-save. + + * dired.el: Add handler to desktop-buffer-mode-handlers. + (dired-restore-desktop-buffer): Remove autoload cookie. + (dired-mode): Add autoload cookie. + + * info.el: Add handler to desktop-buffer-mode-handlers. + (Info-restore-desktop-buffer): Remove autoload cookie. + (Info-mode): Add autoload cookie. + + * mh-e/mh-e.el: Add handler to desktop-buffer-mode-handlers. + (mh-restore-desktop-buffer): Remove autoload cookie. + (mh-folder-mode): Add autoload cookie. + + * mail/rmail.el: Add handler to desktop-buffer-mode-handlers. + (rmail-restore-desktop-buffer): Remove autoload cookie. + +2005-08-11 Masatake YAMATO <jet@gyve.org> + + * hexl.el (hexl-address-region): + (hexl-ascii-region, hexl-font-lock-keywords): + (hexl-highlight-line-range): Use the term "region" + instead of "area" for consistency with the other symbols + defined in hexl.el. + +2005-08-09 Luc Teirlinck <teirllm@auburn.edu> + + * menu-bar.el (menu-bar-options-save): Move `display-time-mode' to + correct group: it is set with `menu-bar-make-mm-toggle' (pointed + out by Juri Linkov). Add `display-battery-mode'. + +2005-08-09 Juri Linkov <juri@jurta.org> + + * progmodes/compile.el (compilation-mode-font-lock-keywords): + Remove `-text' from face variable names. + (compilation-error-file-name, compilation-warning-file-name) + (compilation-info-file-name): Delete faces. + (compilation-line-number, compilation-column-number): + Remove face underlining. + (compilation-message-face): Set to `underline' value by default. + (compilation-error-face, compilation-warning-face) + (compilation-info-face): Remove `-file-name' from face names. + (compilation-error-text-face, compilation-warning-text-face) + (compilation-info-text-face): Delete face variables. + (compilation-text-face): Delete function. + + * progmodes/grep.el (grep-regexp-alist): Use `.+?' instead of `[^:\n]+'. + (grep-mode-font-lock-keywords): Use `.+?' instead of `[^\n-]+'. + (grep-error-face): Set to `compilation-error' instead of + `compilation-error-face' (which is redefined to `grep-hit-face' in + grep buffers). + (grep-mode-font-lock-keywords): Remove `-text' from face variable + names. Use `grep-error-face' instead of `compilation-error-text-face'. + + * dired-aux.el (dired-do-query-replace-regexp): + Use `query-replace-read-args'. + + * replace.el (query-replace-read-from, query-replace-read-to) + (query-replace-read-args): Rename arg `string' to `prompt'. + + * menu-bar.el (menu-bar-showhide-menu): Add `showhide-battery'. + +2005-08-09 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change) + + * net/ange-ftp.el (ange-ftp-send-cmd): Make it work properly with + uploading files. + (ange-ftp-canonize-filename): Handle file names beginning with ~ + correctly. + +2005-08-09 Juanma Barranquero <lekktu@gmail.com> + + * textmodes/fill.el (canonically-space-region) + (fill-context-prefix, fill-french-nobreak-p) + (fill-delete-newlines, fill-comment-paragraph) + (justify-current-line): "?\ " -> "?\s". + +2005-08-09 Ben North <ben@redfrontdoor.org> (tiny change) + + * textmodes/fill.el (fill-nonuniform-paragraphs): + Improve argument/docstring consistency. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * textmodes/ispell.el (ispell-word): More fboundp checks. + + * files.el (find-file-noselect): Don't call set-buffer-major-mode. + (find-file-noselect-1): Call it here, only if RAWFILE. + (normal-mode): Always set some major mode. + (save-some-buffers-action-alist): Change some explanation strings. + (file-name-non-special): In the `quote' method, use unwind-protect. + +2005-08-09 Magnus Henoch <mange@freemail.hu> + + * textmodes/ispell.el (ispell-find-aspell-dictionaries): New command. + (ispell-have-aspell-dictionaries): New variable. + (ispell-aspell-data-dir, ispell-aspell-dict-dir): New variables. + (ispell-get-aspell-config-value): New function. + (ispell-aspell-find-dictionary): New function. + (ispell-aspell-add-aliases): New function. + (ispell-valid-dictionary-list): Call ispell-find-aspell-dictionaries if + appropriate. Don't look for ispell dictionaries if we use aspell. + (ispell-menu-map): Don't build a submenu of dictionaries. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * progmodes/sql.el (sql-interactive-mode-map): Use fboundp. + (sql-read-passwd): Use read-passwd. + + * progmodes/idlw-toolbar.el (idlwave-toolbar) + (idlwave-toolbar-is-possible): Add defvars. + + * progmodes/idlw-shell.el (idlwave-xemacs-hack-mouse-track): + Avoid warnings. + + * progmodes/idlw-rinfo.el (idlwave-system-variables-alist) + (idlwave-system-class-info, idlwave-executive-commands-alist): + Use defvar. + + * progmodes/cc-engine.el (c-guess-basic-syntax): Add autoload. + + * mail/supercite.el (sc-ask, sc-no-blank-line-or-header): + Avoid warnings. + + * mail/rmail.el (rmail-ignored-headers): Don't hide mime-version: + and content-type: headers. + + * eshell/eshell.el (eshell): Avoid warnings about eshell-mode. + + * emacs-lisp/map-ynp.el (map-y-or-n-p): Reorder the options + and rename some of them to be more self-explanatory. + + * calendar/calendar.el (calendar-mode-map): Bind < and > usefully. + + * startup.el (command-line-1): Implement -scriptload. + + * replace.el (occur-engine): Initial *Occur* output not undoable. + + * menu-bar.el (menu-bar-file-menu): Rename some menu items + and improve help strings. + + * isearch.el (isearch-repeat): When changing direction, + mark search successful. + + * ediff-init.el: Use (featurep 'xemacs). + + * comint.el (send-invisible): Identify buffer, if not selected. + + * align.el: Delete autoload for c-guess-basic-syntax. + +2005-08-09 Juanma Barranquero <lekktu@gmail.com> + + * textmodes/refbib.el (r2b-convert-record, r2b-convert-buffer): + Improve argument/docstring consistency. Doc fixes. + (r2b-variables, r2bv-address, r2bv-annote, r2bv-author) + (r2bv-booktitle, r2bv-date, r2bv-decade, r2bv-editor) + (r2bv-entry-kind, r2bv-institution, r2bv-journal, r2bv-keywords) + (r2bv-kn, r2bv-month, r2bv-note, r2bv-number, r2bv-ordering) + (r2bv-organization, r2bv-pages, r2bv-primary-author) + (r2bv-publisher, r2bv-school, r2bv-title, r2bv-title-first-word) + (r2bv-tr, r2bv-type, r2bv-volume, r2bv-where, r2bv-year): + Defvar at compile time. + +2005-08-09 Juri Linkov <juri@jurta.org> + + * info.el: Replace `info' with upper-case `Info' where appropriate. + (info-title-1, info-title-2, info-title-3, info-title-4) + (info-menu-header): Move up face definitions. + (info-menu-star): Rename from `info-menu-5'. + (Info-fontify-node): Replace `info-menu-5' with `info-menu-star'. + (Info-fontify-visited-nodes): Fix docstring. + (Info-hide-note-references): Fix docstring. + (Info-up, Info-next-reference, Info-prev-reference): Put cursor on + menu items in the same way as on cross-references. + (info-apropos): Fix sorting order and formatting to be like in the + stand-alone Info browser. Display error messages for 1 sec. + (Info-mode-map): Move down `c' key binding. Bind `^' to `Info-up'. + (Info-mode-menu): Remove item for `Info-search-case-sensitively' + from the menu bar. + (Info-insert-dir): Restore point after calling + `insert-buffer-substring'. + +2005-08-08 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/lmenu.el (lucid-menubar-map, lucid-failing-menubar) + (recompute-lucid-menubar): Add defvars. + + * mail/sendmail.el (mail-yank-original): Use with-no-warnings. + + * mail/reporter.el (reporter-dump-state): Use insert-buffer-substring. + + * net/net-utils.el (run-dig): Rename from `dig'. + + * play/gametree.el (gametree-mode): Use make-local-variable, + not make-variable-buffer-local. + + * progmodes/ada-prj.el (ada-prj-display-page): Use with-no-warnings. + + * ansi-color.el (ansi-color-make-extent) + (ansi-color-set-extent-face): Use fboundp, not functionp. + + * autorevert.el (auto-revert-tail-mode): Use make-local-variable, + not make-variable-buffer-local. + + * bookmark.el (Info-current-file): Add defvar. + (bookmark-jump-noselect): Use with-no-warnings. + + * completion.el (c-mode-map, fortran-mode-map): Add defvars. + + * ebuff-menu.el (Helper-return-blurb): Add defvar. + + * ffap.el (gnus-summary-buffer, gnus-article-buffer): Add defvars. + + * find-file.el (ada-procedure-start-regexp) + (ada-package-start-regexp): Add defvars. + + * info.el (Info-insert-dir): Use insert-buffer-substring. + + * xml.el (xml-att-def-re): Add defvar. + + * icomplete.el (icomplete-exhibit): Adapt to new while-no-input + calling convention. + + * subr.el (while-no-input): Return t if there is input. + +2005-08-08 Luc Teirlinck <teirllm@auburn.edu> + + * cus-start.el (all): Add `overflow-newline-into-fringe'. + +2005-08-08 Juanma Barranquero <lekktu@gmail.com> + + * cmuscheme.el (inferior-scheme-mode-hook, inferior-scheme-mode) + (scheme-prev-l/c-dir/file): Fix typos in docstrings. + +2005-08-08 Emilio C. Lopes <eclig@gmx.net> + + * cmuscheme.el (scheme-start-file): Replace reference to + `user-emacs-directory' by "~/.emacs.d/". + +2005-08-08 Thien-Thi Nguyen <ttn@gnu.org> + + * info.el (Info-dir-remove-duplicates): Avoid case folding + in loop; instead, keep downcased strings for comparison. + Suggested by Helmut Eller. + +2005-08-07 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.0.50. + + * tramp.el: Remove defvar of `last-coding-system-used' in the + XEmacs case; not necessary anymore. + (tramp-user-regexp): Allow "@" as part of user name. + (tramp-handle-set-visited-file-modtime) + (tramp-handle-insert-file-contents) + (tramp-handle-write-region): No special handling for + `last-coding-system-used, because this is done in + `tramp-accept-process-output' now. + (tramp-accept-process-output): New defun. + (tramp-process-one-action, tramp-process-one-multi-action) + (tramp-wait-for-regexp, tramp-wait-for-output) + (tramp-discard-garbage-erase-buffer): Call it. Reported by David + Howells <dhowells@redhat.com>. + (clear-visited-file-modtime): Defadvice removed. The check for + unset buffer's modtime does not need to be based on + `tramp-buffer-file-attributes'. Suggested by RMS. + (tramp-message): Insert "\n" if not being at beginning of line. + (tramp-find-shell): Use `tramp-barf-if-no-shell-prompt' for code + sequence with same logic. + (tramp-completion-handle-expand-file-name): Discard call of + `tramp-drop-volume-letter'. It is not necessary, and there have + been problems with (expand-file-name "~/.netrc" "/") in ange-ftp. + Reported by Richard G. Bielawski <Richard.G.Bielawski@wellsfargo.com>. + (tramp-do-copy-or-rename-file-out-of-band): Transfer message + should always be visible. + (tramp-handle-insert-directory, tramp-setup-complete) + (tramp-set-process-query-on-exit-flag) + (tramp-append-tramp-buffers): Pacify byte-compiler. + (tramp-bug): Delete non-existing variables from list. + Apply `tramp-load-report-modules' as pre-hook. + Mask `tramp-password-prompt-regexp', `tramp-shell-prompt-pattern' and + `shell-prompt-pattern' because of non-7bit characters. + Reported by Sebastian Luque <sluque@mun.ca>. + (tramp-reporter-dump-variable, tramp-load-report-modules): New defuns. + (tramp-match-string-list): Remove function. + (tramp-wait-for-regexp): Remove call of that function. + Suggested by Kim F. Storm <storm@cua.dk>. + (tramp-set-auto-save-file-modes): Use octal integer code #o600 + instead of octal character code ?\600. The latter resulted in a + syntax error with XEmacs. + + * tramp-smb.el: Remove defvar of `last-coding-system-used' in the + XEmacs case; not necessary anymore. + (tramp-smb-handle-write-region): No special handling for + `last-coding-system-used, because this is done in + `tramp-accept-process-output' now. + (tramp-smb-wait-for-output): Call `tramp-accept-process-output'. + +2005-08-06 Luc Teirlinck <teirllm@auburn.edu> + + * wid-edit.el (widget-choice-value-create): + Unconditionally respect user choice. Set :explicit-choice back to nil + when no longer needed. + (widget-choice-action): Unconditionally respect user choice. + Eliminate :explicit-choice-value. + + * fringe.el (set-fringe-indicators-1, fringe-indicators): Delete. + + * menu-bar.el (menu-bar-options-save): Replace `fringe-indicators' + with `indicate-empty-lines' and `indicate-buffer-boundaries'. + (menu-bar-showhide-fringe-menu): Add new item "Empty line indicators" + running new function `toggle-indicate-empty-lines'. + Rename "Customize" item to "Customize fringe". + Rename "Indicators" item to "Buffer boundaries" and change help echo. + (menu-bar-showhide-fringe-ind-menu): Change several help echos. + Add `menu-bar-showhide-fringe-ind-customize' as "Other (customize)". + Delete "Empty lines only" item. + (menu-bar-showhide-fringe-ind-customize): New function. + (menu-bar-showhide-fringe-ind-mixed) + (menu-bar-showhide-fringe-ind-box) + (menu-bar-showhide-fringe-ind-right) + (menu-bar-showhide-fringe-ind-left) + (menu-bar-showhide-fringe-ind-none): Use `indicate-buffer-boundaries' + instead of `fringe-indicators'. + +2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu> + + * viper.el (viper-emacs-state-mode-list): Add recentf-dialog-mode. + Change the date of last update. + +2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu> + + * viper-cmd.el (viper-harness-minor-mode, viper-exec-delete) + (viper-exec-yank, viper-put-back): Don't display modification msg + if in the minibuffer. + + * viper-init.el (viper-replace-overlay-cursor-color) + (viper-insert-state-cursor-color, viper-vi-state-cursor-color): + Make variables frame local. + + * viper-util.el (viper-append-filter-alist): Use append instead of + nconc. + + * viper.el (viper-vi-state-mode-list) + (viper-emacs-state-mode-list): Move help-mode and + completion-list-mode from the first list to the second. + (viper-mode): Docstring. + (viper-go-away, viper-non-hook-settings): Don't localize + minor-mode-alist in newer Emacsen. Add advice to + set-cursor-color. Don't bind "\C-c\\". + +2005-08-06 Emilio C. Lopes <eclig@gmx.net> + + * cmuscheme.el (scheme-trace-command, scheme-untrace-command) + (scheme-macro-expand-command): New user options. + (scheme-trace-procedure, scheme-expand-current-form): New commands. + (scheme-form-at-point, scheme-start-file) + (scheme-interactively-start-process): New functions. + (scheme-get-process): New function, extracted from `scheme-proc'. + (run-scheme): Call `scheme-start-file' to get start file, and pass + it to `make-comint'. + (switch-to-scheme, scheme-proc): + Call `scheme-interactively-start-process' if no Scheme buffer/process + is available. + +2005-08-06 Juri Linkov <juri@jurta.org> + + * progmodes/compile.el (compilation-mode-font-lock-keywords): + Use `compilation-text-face', `compilation-info-text-face' and + `compilation-error-text-face' instead of `font-lock-keyword-face'. + (compilation-error): New face. + (compilation-error-file-name): Inherit from + `compilation-error' instead of `font-lock-warning-face'. + (compilation-warning-file-name): Inherit from + `compilation-warning' instead of `font-lock-warning-face'. + (compilation-info, compilation-error-file-name) + (compilation-warning-file-name, compilation-info-file-name) + (compilation-line-number, compilation-column-number): Doc fix. + (compilation-error-text-face, compilation-warning-text-face) + (compilation-info-text-face): New face variables. + (compilation-line-face, compilation-column-face) + (compilation-enter-directory-face) + (compilation-leave-directory-face): Doc fix. + (compilation-text-face): New function. + + * progmodes/grep.el (grep-regexp-alist): Set 5th arg `TYPE' to 0 + instead of 1 to display binary file names as info file links. + (grep-error-face): Use `compilation-error-face' instead of + `font-lock-keyword-face'. + (grep-mode-font-lock-keywords): Use `compilation-info-text-face' + and `compilation-warning-text-face' instead of + `font-lock-keyword-face'. Use `compilation-error-text-face' + instead of `grep-error-face'. + +2005-08-05 Kenichi Handa <handa@m17n.org> + + * international/code-pages.el: Add autoload cookies for all coding + systems. + +2005-08-04 Luc Teirlinck <teirllm@auburn.edu> + + * cus-start.el (all): Put undo.c where it alphabetically belongs. + +2005-08-04 Juri Linkov <juri@jurta.org> + + * progmodes/compile.el (compilation-mode-map): + * progmodes/grep.el (grep-mode-map): + Bind TAB to `compilation-next-error' and [backtab] to + `compilation-previous-error'. + + * progmodes/grep.el (grep-regexp-alist): Replace complex regexp + matching line numbers, column numbers and their ranges with regexp + matching only line numbers. + (grep-context-face): New face variable. + (grep-mode-font-lock-keywords): Use it. + + * faces.el (read-face-name): Delete duplicate faces. + +2005-08-02 Juanma Barranquero <lekktu@gmail.com> + + * thumbs.el (thumbs-find-image): Don't make variables + automatically buffer local. + (thumbs-current-tmp-filename, thumbs-current-image-filename) + (thumbs-image-num): Make automatically buffer local. + (thumbs-show-thumbs-list): Use `make-local-variable', not + `make-variable-buffer-local'. + (thumbs-insert-image): Make `thumbs-current-image-size' buffer-local. + + * play/doctor.el (doctor-type-symbol): "?\ " -> "?\s". + (**mad**, *debug*, *print-space*, *print-upcase*, abuselst) + (abusewords, account, afraidof, arerelated, areyou, bak, beclst) + (bother, bye, canyou, chatlst, continue, deathlst, describe) + (drnk, drugs, eliza-flag, elizalst, famlst, feared, fears) + (feelings-about, foullst, found, hello, history, howareyoulst) + (howdyflag, huhlst, ibelieve, improve, inter, isee, isrelated) + (lincount, longhuhlst, lover, machlst, mathlst, maybe, moods) + (neglst, obj, object, owner, please, problems, qlist) + (random-adjective, relation, remlst, repetitive-shortness) + (replist, rms-flag, schoollst, sent, sexlst, shortbeclst) + (shortlst, something, sportslst, stallmanlst, states, subj) + (suicide-flag, sure, things, thlst, toklst, typos, verb, want) + (whatwhen, whereoutp, whysay, whywant, zippy-flag, zippylst): + Defvar at compile time. + + * progmodes/ada-mode.el (ada-mode): Use `make-local-variable', + not `make-variable-buffer-local'. + +2005-08-02 Kim F. Storm <storm@cua.dk> + + * emulation/cua-rect.el (cua--highlight-rectangle): Only show + rectangle overlay in selected window. + +2005-08-01 Luc Teirlinck <teirllm@auburn.edu> + + * cus-start.el (all): Put `indicate-empty-lines' in fringe group + instead of display group. Make `indicate-buffer-boundaries' + customizable through Custom. + +2005-08-01 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/gdb-ui.el (gdb-frame-address, gdb-var-changed) + (gdb-output-sink, gdba, gdb-cpp-define-alist-program) + (gdb-set-gud-minor-mode, gdb-exited, gdb-setup-windows) + (gdb-put-string): Fix typos in docstrings. + +2005-08-01 Nick Roberts <nickrob@snap.net.nz> + + Update copyright notices of files in progmodes directory for + release of Emacs 22.1. + + * progmodes/gdb-ui.el (gdb-enable-debug-log): Add autoload cookie. + + * progmodes/gud.el (gud-tooltip-mode): Add autoload cookie. + Don't barf if the GUD buffer has been killed. + +2005-08-01 Kim F. Storm <storm@cua.dk> + + * textmodes/table.el (table-yank-handler): Change defcustom to defvar. + +2005-07-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * simple.el (next-error-follow-minor-mode): + make-variable-buffer-local -> make-local-variable. + + * emacs-lisp/cl-extra.el: Require CL also when compiling. + + * emacs-lisp/bytecomp.el (byte-compile-make-variable-buffer-local) + (byte-compile-form-make-variable-buffer-local): New functions to warn + about misuses of make-variable-buffer-local where make-local-variable + was meant. + +2005-07-29 Juanma Barranquero <lekktu@gmail.com> + + * bs.el (bs-attributes-list): Doc fix. + (bs): Update url-link. + + * desktop.el (desktop-save-buffer): Fix typos in docstring. + (desktop-load-default): Simplify. + + * ibuffer.el (ibuffer-columnize-and-insert-list) + (ibuffer-mouse-toggle-mark, ibuffer-count-marked-lines) + (ibuffer-unmark-all, ibuffer-toggle-marks) + (ibuffer-unmark-forward, ibuffer-unmark-backward) + (ibuffer-compile-make-format-form, ibuffer-format-column) + (ibuffer-current-buffers-with-marks) + (ibuffer-update-title-and-summary): "?\ " -> "?\s". + (ibuffer): Doc fix. + (ibuffer-mode): Fix typo in docstring. + (ibuffer-hooks, ibuffer-mode-hooks): Make obsolete and declare + with `define-obsolete-variable-alias'. + (ibuffer-elide-long-columns): Mark as obsolete. Doc fix. + +2005-07-29 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-message-coding-system): + Be sure to use LF for end-of-line. If no coding system is decided, + return iso-8859-1-unix. + +2005-07-28 Stefan Monnier <monnier@iro.umontreal.ca> + + * net/ange-ftp.el (ange-ftp-gateway-fatal-msgs) + (ange-ftp-pending-error-line): New vars. + (ange-ftp-process-handle-line, ange-ftp-process-filter): Use them + to handle the non-fatal no-route-to-host messages. + (internal-ange-ftp-mode): Make the no-match regexp more efficient. + +2005-07-28 Juanma Barranquero <lekktu@gmail.com> + + * isearch.el (isearch-mode-map, isearch-other-meta-char) + (isearch-quote-char, isearch-printing-char) + (isearch-text-char-description): "?\ " -> "?\s". + (isearch-lazy-highlight-cleanup) + (isearch-lazy-highlight-initial-delay) + (isearch-lazy-highlight-interval) + (isearch-lazy-highlight-max-at-a-time) + (isearch-lazy-highlight-face, isearch-lazy-highlight-cleanup): + Declare with define-obsolete-*-alias macros. + (isearch-forward): Fix typo in docstring. + (search-invisible, search-ring-yank-pointer) + (regexp-search-ring-yank-pointer): Doc fixes. + + * recentf.el (recentf-menu-append-commands-p): Declare with + `define-obsolete-variable-alias'. + (recentf-max-saved-items, recentf-menu-filter) + (recentf-arrange-by-rule-subfilter): Doc fixes. + (recentf-menu-append-commands-flag) + (recentf-initialize-file-name-history, recentf-expand-file-name) + (recentf-clear-data): Fix typos in docstrings. + +2005-07-28 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el: Smarten comments. + (gdb-info-breakpoints-custom): Use nowarn when finding file. + +2005-07-27 Dan Nicolaescu <dann@ics.uci.edu> + + * term/apollo.el (terminal-init-apollo): New function containing + all former top level forms in the file. + * term/bobcat.el (terminal-init-bobcat): + * term/cygwin.el (terminal-init-cygwin): + * term/iris-ansi.el (terminal-init-iris-ansi): + * term/linux.el (terminal-init-linux): + * term/news.el (terminal-init-news): + * term/rxvt.el (terminal-init-rxvt): + * term/sun.el (terminal-init-sun): + * term/tvi970.el (terminal-init-tvi970): + * term/vt100.el (terminal-init-vt100): + * term/vt102.el (terminal-init-vt102): + * term/vt125.el (terminal-init-vt125): + * term/vt200.el (terminal-init-vt200): + * term/vt201.el (terminal-init-vt201): + * term/vt220.el (terminal-init-vt220): + * term/vt240.el (terminal-init-vt240): + * term/vt300.el (terminal-init-vt300): + * term/vt320.el (terminal-init-vt320): + * term/vt400.el (terminal-init-vt400): + * term/vt420.el (terminal-init-vt420): + * term/wyse50.el (terminal-init-wyse50): + * term/xterm.el (terminal-init-xterm): Likewise. + + * term/README: Describe the terminal-init-* functionality. + + * startup.el (command-line): After loading the terminal initialization + file call the corresponding terminal initialization function. + +2005-07-27 Kenichi Handa <handa@m17n.org> + + * ps-bdf.el (bdf-read-font-info): Ignore glyphs whose ENCODING is + negative. + + * ps-mule.el (ps-mule-bitmap-prologue): Fix arguments to setcharwidth. + (ps-mule-composition-prologue): Fix for the case that + RelativeCompose is false. + +2005-07-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * smerge-mode.el (smerge-ediff): Use insert-buffer-substring. + + * descr-text.el (describe-char): Handle the case where the list of + chars is displayed in a separate frame. + Be a bit more discriminating when looking for the char. + +2005-07-26 Juanma Barranquero <lekktu@gmail.com> + + * bookmark.el (bookmark-automatically-show-annotations) + (bookmark-read-annotation-text-func): Doc fixes. + (bookmark-save): Improve argument/docstring consistency. + (bookmark-get-bookmark, bookmark-get-bookmark-record) + (bookmark-alist-from-buffer) + (bookmark-upgrade-file-format-from-0) + (bookmark-grok-file-format-version) + (bookmark-maybe-upgrade-file-format, bookmark-kill-line) + (bookmark-read-annotation-mode) + (bookmark-insert-current-bookmark, bookmark-jump) + (bookmark-exit-hook): Fix typos in docstrings. + (bookmark-exit-hooks): Define as obsolete alias. + (bookmark-exit-hook-internal): Run `bookmark-exit-hook', + not `bookmark-exit-hooks'. Fix docstring. + (bookmark-bmenu-select): "?\ " -> "?\s". + +2005-07-25 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change) + + * startup.el (command-line): Fix typo. + +2005-07-24 Richard M. Stallman <rms@gnu.org> + + * tooltip.el (tooltip-mode): Test emacs-basic-display, + not emacs-quick-startup. + +2005-07-24 Juanma Barranquero <lekktu@gmail.com> + + * emacs-lisp/re-builder.el (reb-with-current-window): Delete. + (reb-next-match, reb-show-subexp): Use `with-selected-window' + instead of `reb-with-current-window'. + (reb-prev-match): Likewise. Also, don't move left if the search + was unsuccessful. + (reb-initialize-buffer): New function. + (re-builder, reb-change-syntax): Use it. + + * man.el (Man-goto-page): Make second argument NOERROR optional. + +2005-07-23 Richard M. Stallman <rms@gnu.org> + + * man.el (Man-bgproc-sentinel): Check here for failure to find + any man page in the output, and report the error here. + (Man-arguments): Make it permanent local. + (Man-goto-page): New arg NOERROR. Never kill the current buffer. + (Man-mode): Pass t for NOERROR. + + * progmodes/grep.el (grep-error-face): Use font-lock-keyword-face. + (grep-mode-font-lock-keywords): + Don't use compilation-...-face for messages that are not file names. + + * progmodes/compile.el (compilation-mode-font-lock-keywords): + Don't use compilation-...-face for messages that are not file names. + +2005-07-22 Juri Linkov <juri@jurta.org> + + * startup.el (normal-splash-screen): Update menu name. + + * tempo.el (tempo-insert-template): Fix 2005-07-16 change. + +2005-07-22 Dan Nicolaescu <dann@ics.uci.edu> + + * term/xterm.el: Load term/rxvt if the terminal is actually an + rxvt terminal. + (xterm-rxvt-set-background-mode): Remove, not used anymore. + + * term/rxvt.el (function-key-map): Use substitute-key-definition + to bind {C,S,C-S}-{f1-f10}. Add a few missing key bindings. + + * term/cygwin.el: New file. + +2005-07-22 Kim F. Storm <storm@cua.dk> + + * image-file.el (insert-image-file, image-file-yank-handler): + Fix last change to maintain a (unique) yank-handler on yanked images. + +2005-07-22 Eduardo Mu,Aq(Boz <emufer@terra.es> (tiny change) + + * dired.el (dired-move-to-filename-regexp): Recognize the B suffix + of the file size (as in "177B" for 177 bytes). This happens with + "ls -lh" on FreeBSD. + +2005-07-22 Juanma Barranquero <lekktu@gmail.com> + + * hilit-chg.el (highlight-changes-global-initial-state) + (highlight-compare-buffers, hilit-chg-turn-on-maybe) + (hilit-chg-fixup, highlight-changes-mode): + Fix typos in docstrings. + (highlight-changes-global-modes, highlight-changes-rotate-faces): + Doc fixes. + +2005-07-21 Luc Teirlinck <teirllm@auburn.edu> + + * emacs-lisp/easy-mmode.el (define-minor-mode): Never call the + mode function using `eval-after-load'. + +2005-07-21 Kim F. Storm <storm@cua.dk> + + * mail/emacsbug.el (report-emacs-bug): Request that backtraces are + included when reporting an emacs crash, and tell about the DEBUG file. + + * image-file.el (insert-image-file): Add yank-handler. + (image-file-yank-handler): Yank handler to make unique copies of + images when they are yanked into a buffer next to each other. + +2005-07-21 Juanma Barranquero <lekktu@gmail.com> + + * comint.el (comint-use-prompt-regexp, comint-send-input) + (comint-source-default, comint-extract-string) + (comint-get-source, comint-word, comint-completion) + (comint-source, comint-prompt-read-only, comint-update-fence): + Fix typos in docstrings. + (comint-use-prompt-regexp-instead-of-fields, comint-kill-output): + Declare with define-obsolete-*-alias macros. + (comint-previous-matching-input-from-input) + (comint-next-matching-input-from-input) + (comint-previous-matching-input, comint-next-matching-input) + (comint-forward-matching-input): + Improve argument/docstring consistency. + + * desktop.el (desktop-clear-preserve-buffers-regexp): + Also preserve the *server* buffer. + + * simple.el (clone-indirect-buffer): Doc fix. + (fixup-whitespace, just-one-space) + (backward-delete-char-untabify, lambda): "?\ " -> "?\s". + (next-error, next-error-highlight) + (next-error-highlight-no-select, next-error-last-buffer) + (next-error-buffer-p, next-error-find-buffer, next-error) + (previous-error, next-error-no-select, previous-error-no-select) + (open-line, split-line, minibuffer-prompt-width, kill-new) + (binary-overwrite-mode): Fix typos in docstrings. + (set-fill-column): Fix typo in message. + + * skeleton.el (skeleton-proxy-new): Doc fix. + + * strokes.el (strokes-load-hook): Doc fix. + (strokes-grid-resolution, strokes-get-grid-position) + (strokes-renormalize-to-grid, strokes-read-stroke) + (strokes-read-complex-stroke, strokes-file, strokes-last-stroke) + (strokes-global-map): Fix typos in docstrings. + (strokes-help): Doc fix. Fix help message and pass it through + `substitute-command-keys'. + + * tempo.el (tempo-insert-prompt, tempo-interactive) + (tempo-show-completion-buffer, tempo-tags, tempo-match-finder) + (tempo-insert-string-functions, tempo-local-tags) + (tempo-define-template, tempo-insert-template) + (tempo-insert-prompt-compat, tempo-is-user-element) + (tempo-insert-mark, tempo-find-match-string, tempo-complete-tag): + Fix typos in docstrings. + + * vcursor.el (vcursor-other-window, vcursor-bind-keys) + (vcursor-key-bindings, vcursor-use-vcursor-map) + (vcursor-find-window, vcursor-scroll-down) + (vcursor-disable, vcursor-beginning-of-buffer) + (vcursor-end-of-buffer): Fix typos in docstrings. + (vcursor-relative-move, vcursor-get-char-count): + Improve argument/docstring consistency. + + * version.el: "?\ " -> "?\s". + + * wid-edit.el (widget-default-create, widget-after-change) + (widget-default-format-handler, widget-checklist-add-item) + (widget-radio-add-item, widget-choose, widget-specify-secret) + (widget-field-value-create, widget-field-value-get) + (widget-editable-list-format-handler) + (widget-editable-list-entry-create, widget-group-value-create) + (widget-documentation-link-add) + (widget-documentation-string-value-create): "?\ " -> "?\s". + (widget-convert-text): Doc fix. + (widget-narrow-to-field, widget-field-find) + (widget-url-link-action, widget-emacs-library-link-action) + (widget-color-notify): Fix typos in docstrings. + + * w32-fns.el (w32-shell-name): Use `bound-and-true-p'. + (x-select-text, set-w32-system-coding-system) + (w32-add-charset-info): Fix typos in docstrings. + + * emulation/cua-base.el (cua-mode, cua-enable-register-prefix) + (cua-enable-cua-keys, cua-use-hyper-key) + (cua-virtual-rectangle-edges): Fix typos in docstrings. + (cua--M/H-key, cua--init-keymaps): "?\ " -> "?\s". + + * net/tramp.el (tramp-handle-load): Fix typo in error message. + + * emacs-lisp/re-builder.el (regexp-builder): Declare with + `defalias' instead of faking it. + + * eshell/em-ls.el (eshell-ls-decorated-name): Doc fix. + (eshell-ls-missing, eshell-ls-dired-initial-args) + (eshell-ls-use-in-dired): Fix typos in docstrings. + +2005-07-20 Kim F. Storm <storm@cua.dk> + + * emulation/cua-base.el (cua-mode): Improve doc string. + +2005-07-20 Juanma Barranquero <lekktu@gmail.com> + + * abbrev.el (expand-region-abbrevs): Doc fix. + (inverse-add-mode-abbrev, inverse-add-global-abbrev): + Improve argument/docstring consistency. + + * arc-mode.el (archive-get-descr, archive-alternate-display): + Doc fixes. + (archive-l-e): Improve argument/docstring consistency. + (archive-tmpdir, archive-unixdate, archive-unixtime) + (archive-chmod-entry): Fix typos in docstrings. + (archive-unflag, archive-unflag-backwards) + (archive-unmark-all-files): "?\ " -> "?\s". + + * buff-menu.el (Buffer-menu-unmark): Doc fix. + (Buffer-menu-not-modified, Buffer-menu-execute) + (Buffer-menu-toggle-read-only, Buffer-menu-buffer+size) + (list-buffers-noselect, Buffer-menu-select): "?\ " -> "?\s". + + * composite.el (compose-string, encode-composition-rule) + (compose-last-chars): Fix typos in docstrings. + + * desktop.el (desktop-enable, desktop-basefilename): + Declare with `define-obsolete-variable-alias'. + (desktop-internal-v2s): Don't quote keywords. + (desktop-clear): "?\ " -> "?\s". + + * dired.el (dired-align-file, dired-flag-backup-files) + (dired-change-marks, dired-unmark-all-files): "?\ " -> "?\s". + (dired-listing-switches, dired-ls-F-marks-symlinks) + (dired-dwim-target, dired-load-hook, dired-mode-hook) + (dired-directory, dired-faces, dired, dired-revert) + (dired-mode, dired-summary, dired-view-file) + (dired-copy-filename-as-kill, dired-delete-file) + (dired-no-confirm, dired-unmark-all-marks) + (dired-sort-by-date-regexp, dired-sort-by-name-regexp) + (dired-sort-inhibit, dired-sort-other): Fix typos in docstrings. + (dired-undo, dired-get-file-for-visit, dired-sort-toggle-or-edit): + Fix typos in message strings. + + * dired-x.el (virtual-dired): Declare with `defalias'. + (dired-mark-unmarked-files, dired-local-variables-file) + (dired-omit-here-always): Doc fix. + (dired-omit-mode, dired-find-subdir) + (dired-enable-local-variables, dired-clean-up-buffers-too) + (dired-extra-startup, dired-mark-extension, dired-jump) + (dired-jump-other-window, dired-omit-localp, dired-virtual-mode) + (dired-smart-shell-command, dired-guess-shell-alist-user) + (dired-man, dired-initial-position, dired-x-hands-off-my-keys) + (dired-x-bind-find-file, dired-x-submit-report): + Fix typos in docstrings. + (dired-mark-unmarked-files): "?\ " -> "?\s". + + * dirtrack.el (dirtrack-list): Fix typos in docstring. + + * faces.el (describe-face): "?\ " -> "?\s". + (read-all-face-attributes, read-face-font, modify-face) + (face-attr-construct, italic): Fix typos in docstrings. + (frame-update-face-colors): Declare with + `define-obsolete-function-alias'. + + * files.el (find-file-noselect, recode-file-name): Doc fixes. + (insert-directory, kill-some-buffers): "?\ " -> "?\s". + (magic-mode-alist, buffer-file-numbers-unique) + (write-file-functions, get-free-disk-space): + Fix typos in docstrings. + (find-file-not-found-hooks, find-file-hooks, write-file-hooks) + (write-contents-hooks, write-file-hooks): + Declare with `define-obsolete-variable-alias'. + + * forms-d2.el (arch-rj): Fix typo in docstrings. + (arch-tocol): Likewise. "?\ " -> "?\s". + + * frame.el (set-frame-font, cursor-in-non-selected-windows): + Fix typo in docstring. + (set-screen-width, set-screen-height): Delete redundant info in + doctrings. + (new-frame, screen-height, screen-width): Declare with + `define-obsolete-function-alias'. + (delete-frame-hook, blink-cursor): Declare with + `define-obsolete-variable-alias'. + + * paths.el (prune-directory-list): Fix typos in docstring. + + * pcvs-util.el (cvs-flags-query, cvs-strings->string) + (cvs-prefix-get): Fix typos in docstrings. + + * ps-print.el (ps-extend-face-list, ps-extend-face) + (ps-print-background-image): Fix typos in docstrings. + (ps-default-fg, ps-default-bg): Doc fixes. + + * s-region.el (s-region-bind): Doc fix. + (s-region-move-p1, s-region-move-p2): Fix typos in docstrings. + + * textmodes/org.el (org-table-formula-substitute-names) + (org-table-get-vertical-vector): Doc fixes. + (org-table-recalculate): Remove unused argument to `message'. + +2005-07-19 Carsten Dominik <dominik@science.uva.nl> + + * textmodes/org.el (org-table-column-names) + (org-table-column-name-regexp) + (org-table-named-field-locations): New variables. + (org-archive-subtree): Protect `this-command' when calling + `org-copy-subtree' and `org-cut-subtree', to avoid appending to + the kill buffer. + (org-complete): Remove fixed-formula completion. + (org-edit-formulas-map): New variable. + (org-table-edit-formulas): New command. + (org-finish-edit-formulas, org-abort-edit-formulas) + (org-show-variable, org-table-get-vertical-vector): New functions. + (org-table-maybe-eval-formula): Handle `:=' fields. + (org-table-get-stored-formulas, org-table-store-formulas) + (org-table-get-formula, org-table-modify-formulas) + (org-table-replace-in-formulas): Handle named field formulas. + (org-table-get-specials): Store locations of named fields. + +2005-07-19 Juri Linkov <juri@jurta.org> + + * progmodes/grep.el (grep-regexp-alist) + (grep-mode-font-lock-keywords, grep-process-setup): + Use default GNU grep match color "01;31m" instead of "01;41m". + (grep-regexp-alist, grep-mode-font-lock-keywords): + Use `\\[[0-9]*m' instead of `\\[00m'. + (grep-regexp-alist): Move `\\(?:\033\\[K\\)?' from sgr_end to + sgr_start where its handling is more important. Use the real + length of sgr_start instead of constant 8. + (grep-mode-font-lock-keywords): Don't delete `\\(?:\033\\[K\\)?' + specially. Delete all remaining escape sequences. + (grep-process-setup): Set "GREP_COLORS" for GNU grep 2.5.1-cvs. + (grep-regexp-alist): Make hyperlink only for binary file name + instead of the whole line. + (grep-mode-map): Bind `backtab' to `compilation-previous-file'. + (grep-mode): Add autoload. + + * emacs-lisp/find-func.el (find-function-regexp): + Add `define-compilation-mode'. + +2005-07-19 Juri Linkov <juri@jurta.org> + + * compare-w.el (compare-ignore-whitespace, compare-windows-sync) + (compare-windows-sync-string-size, compare-windows-recenter) + (compare-windows-highlight, compare-windows): Add version 22.1. + (compare-windows) <defface>: Inherit from lazy-highlight instead + of duplicating its default value. + + * cus-edit.el (custom-mode-map): Bind `C-c C-c' to `Custom-set'. + (Custom-mode-menu): Use `info' instead of `Info-goto-node'. + + * descr-text.el (describe-char): Create link buttons for `charset' + and `code point'. Add the current input method name with a link + button to `to input' field. Print face names of display table + characters in `The display table entry is displayed by' section + instead of printing face-id in the `display' field. + Guess hardcoded faces and create a link button for them. + Skip empty fields when calculating max-width. + Treat `widget-create' specially while inserting strings from the + collected field list. + (describe-char-after): Made obsolete in version 22.1, not 21.5. + + * diff-mode.el (diff-file-header): Change foreground color from + yellow to green on light backgrounds. + (diff-context): Inherit from `shadow' only for color/grayscale + with more than 88 colors. + (diff-indicator-removed, diff-indicator-added) + (diff-indicator-changed): New faces. + (diff-font-lock-keywords): Use new faces. Regroup rules. + Add "^---$" for `normal' diff format. Fontify `#' lines with + font-lock-comment-delimiter-face and font-lock-comment-face. + Add `#' to ^[^...] in the rule for `diff-context-face'. + + * faces.el (mode-line-highlight): Replace RoyalBlue4 with + a button-like box. Inherit from `highlight' on low colors. + (shadow): Use shades of gray only for color/grayscale with + more than 88 colors. Use green for light backgrounds with + 8 colors, and yellow for dark backgrounds with 8 colors. + + * font-lock.el (font-lock-regexp-grouping-backslash): + Don't inherit from escape-glyph (use bold for all cases). + + * info.el (info-xref-visited): Use light foreground color `violet' + for dark backgrounds instead of dark color `magenta3'. + (info-title-1): Use `yellow' color for dark backgrounds. + + * isearch.el (isearch): Use not-too-dark magenta3 instead of + too-light magenta2. + + * replace.el (match): Use slightly more light RoyalBlue3 instead + of dark RoyalBlue4. + + * wid-edit.el (widget-inactive): Inherit from `shadow'. + +2005-07-19 Juanma Barranquero <lekktu@gmail.com> + + * novice.el (disabled-command-hook): Declare it with + `define-obsolete-variable-alias'. + + * desktop.el (desktop-enable, desktop-buffer-modes-to-save) + (desktop-buffer-misc-functions, desktop-buffer-handlers) + (desktop-load-default): Add release to obsolescence info. + (desktop-globals-to-clear, desktop-buffer-mode-handlers) + (desktop-append-buffer-args, desktop-read): + Fix typos in docstrings. + (desktop-kill): Fix typo in message. + (desktop-save): Doc fix. + +2005-07-19 Michael Kifer <kifer@cs.stonybrook.edu> + + * viper-cmd.el (viper-escape-to-state): Bug fix. + (viper-envelop-ESC-key): Change the definition of fast + keysequence so it'll work with keyboard macros. + + * ediff.el (ediff-patch-buffer): Change the docstring. + +2005-07-19 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system): Try to + use an auto-coding (if any) before anything else. If the found + auto-coding is invalid, show a warning message. + + * international/mule.el (find-auto-coding): New function created + by modifying the body of set-auto-coding. + (set-auto-coding): Use find-auto-coding to find a coding. + +2005-07-18 Richard M. Stallman <rms@gnu.org> + + * allout.el (allout-isearch-expose): Use isearch-mode-end-hook-quit, + not isearch-mode-end-hook-error. + (allout-before-change-protect): Fix error message. + +2005-07-18 Juri Linkov <juri@jurta.org> + + * allout.el (allout-mode): + * calculator.el (calculator-copy): + * custom.el (custom-known-themes): + * dired.el (dired-desktop-buffer-misc-data) + (dired-restore-desktop-buffer): + * dired-x.el (dired-omit-marker-char): + * files.el (basic-save-buffer): + * font-core.el (font-lock-mode): + * calendar/calendar.el (calendar-goto-hebrew-date) + (calendar-goto-coptic-date, calendar-goto-ethiopic-date) + (calendar-goto-persian-date): + * language/ethio-util.el (ethio-sera-to-fidel-region): + * textmodes/picture.el (picture-mode): + Delete duplicate duplicate words. + +2005-07-18 Juri Linkov <juri@jurta.org> + + * isearch.el (isearch-mode-map): Remove key bindings for regexp + chars * ? } |. + (isearch-fallback): Don't call `isearch-process-search-char'. + (isearch-*-char, isearch-}-char, isearch-|-char): Remove functions. + (isearch-process-search-char): Call `isearch-fallback' for regexp + chars * ? } |. + (isearch-return-char): Make obsolete with `make-obsolete' instead + of simply documenting it as obsolete in the docstring. + (isearch-fallback): Refill docstring. + + * international/isearch-x.el + (isearch-process-search-multibyte-characters): Remove unneeded + `concat'. Add intermediate values to `junk-hist' instead of + `minibuffer-history'. Test the length of `str'. + +2005-07-18 Juanma Barranquero <lekktu@gmail.com> + + * allout.el (allout-resolve-xref): Fix typos in error strings. + (allout-before-change-protect): Remove unneeded `concat'. + + * array.el (array-mode, array-reconfigure-rows) + (untabify-backward): Fix typos in docstrings. + (array-reconfigure-rows): Use `insert-buffer-substring', not + `insert-buffer'. + + * calendar/icalendar.el (icalendar--get-unfolded-buffer): + * progmodes/ada-mode.el (ada-make-body): + Use `insert-buffer-substring' and `goto-char', not `insert-buffer'. + + * dired.el (dired-log): + * tar-mode.el (tar-subfile-save-buffer): + * play/zone.el (zone-pgm-stress-destress): + Use `insert-buffer-substring', not `insert-buffer'. + +2005-07-17 Simon Josefsson <jas@extundo.com> + + * mail/smtpmail.el (smtpmail-auth-supported): Prefer PLAIN over LOGIN. + +2005-07-16 Jose E. Marchesi <jemarch@gnu.org> + + * lisp/mail/smtpmail.el (smtpmail-auth-supported): + Add plain auth method. + (smtpmail-try-auth-methods): Add AUTH PLAIN dialog. + +2005-07-17 Kim F. Storm <storm@cua.dk> + + * ido.el (dired-other-window): Add ido property. + +2005-07-16 Juanma Barranquero <lekktu@gmail.com> + + * emacs-lisp/bytecomp.el (byte-compile-maybe-guarded): + Fix typo in docstring. + (byte-compile-interactive-only-functions): Add `insert-buffer' and + `insert-file-literally'. + + * emacs-lisp/edebug.el (def-edebug-form-spec): Add obsolescence + info and delete redundant message. Doc fix. + (edebug-install-custom-print-funcs, edebug-reset-print-funcs) + (edebug-uninstall-custom-print-funcs): Define as obsolete aliases. + +2005-07-16 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/bytecomp.el (byte-compile-and-recursion): New function. + (byte-compile-and): Use byte-compile-and-recursion. + (byte-compile-or-recursion): New function. + (byte-compile-or): Use that. + (byte-compile-if): Guard the else-clause too. + (byte-compile-maybe-guarded): Handle (not (featurep 'emacs)). + + * isearch.el (isearch-mode-end-hook-quit): New variable. + (isearch-done): Bind it. + (isearch-mode-end-hook): Doc fix. + + * allout.el (allout-isearch-did-quit): Variable deleted. + (allout-real-isearch-abort): Function name no longer used. + (allout-mode): Do allout-enwrap-isearch whenever feature is wanted. + (allout-isearch-rectification): isearch-mode always exists. + Don't set allout-isearch-did-quit. + (allout-isearch-expose): Check isearch-mode-end-hook-error, not + allout-isearch-did-quit. + (allout-enwrap-isearch): Just add the hook. + (allout-isearch-abort): Function deleted. + (allout-pre-command-business): Avoid warning. + + * progmodes/pascal.el (pascal-outline-map): Use fboundp, not boundp. + Correctly avoid warnings. + (pascal-outline): Likewise. + + * progmodes/f90.el (f90-abbrev-start): Avoid warning. + + * progmodes/asm-mode.el (asm-comment): Use with-no-warnings. + + * play/tetris.el (tetris-mode): Avoid warning. + + * play/snake.el (snake-mode): Avoid warning. + + * play/gamegrid.el (gamegrid-shared-game-dir): Add defvar. + (gamegrid-set-display-table): Avoid warning. + (gamegrid-set-timer): Likewise. + (gamegrid-make-mono-tty-face): Use set-face-inverse-video-p. + (gamegrid-add-score-with-update-game-score-1): Take FILE + as argument. + (gamegrid-add-score-with-update-game-score): Pass that argument. + Rename have-shared-game-dir to gamegrid-shared-game-dir. + + * net/eudc-hotlist.el (eudc-hotlist-mode): Avoid warnings. + + * net/eudc-bob.el (eudc-jump-to-event): Avoid warning. + (eudc-bob-display-jpeg, eudc-bob-can-display-inline-images): Likewise. + + * mail/uce.el (uce-reply-to-uce): Replace beginning-of-buffer + and insert-file. + + * mail/supercite.el (sc-no-blank-line-or-header): Avoid warning. + (sc-ask): Avoid warnings. + + * eshell/em-hist.el (eshell-rebind-keys-alist): Add defvar. + (eshell-hist-initialize): Use that var the natural way. + + * emulation/viper-init.el (viper-activate-input-method): Avoid warning. + + * emacs-lisp/re-builder.el (reb-cook-regexp): + Avoid warning calling lre-compile-string. + (reb-color-display-p): Avoid warning. + + * calculator.el (calculator-last-input): Guard uses + of event-key and key-press-event-p. + (event-key, key-press-event-p): Delete definitions. + + * emacs-lisp/find-gc.el (find-gc-unsafe-list) + (find-gc-source-directory, find-gc-subrs-callers) + (find-gc-noreturn-list, find-gc-source-files) + (find-gc-subrs-called): Vars renamed and defvar'd. + + * emacs-lisp/checkdoc.el (checkdoc-make-overlay) + (checkdoc-overlay-put, checkdoc-delete-overlay) + (checkdoc-overlay-start, checkdoc-overlay-end) + (checkdoc-mode-line-update, checkdoc-char=): + Define such that compiler knows they are defined. + (checkdoc-call-eval-buffer): Delete. Use eval-buffer directly. + (checkdoc-read-event): Delete. Use read-event directly. + + * whitespace.el (whitespace-make-overlay) + (whitespace-overlay-put, whitespace-delete-overlay) + (whitespace-overlay-start, whitespace-overlay-end): + Define such that compiler knows they are defined. + (whitespace): Move conditional inside. + + * tempo.el (tempo-insert-template): Suppress warning. + + * ediff-diff.el (longlines-mode): Add defvar. + +2005-07-16 Gary Howell <g1howell-list@yahoo.com> (tiny change) + + * server.el: Bind "C-x #" in a way that works even if C-x is + redefined to a command key, not a prefix key. + +2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change) + + * emacs-lisp/cl-macs.el (cl-make-type-test): Defer evaluation of + cl-make-type-test till execution time. + +2005-07-16 Markus Rost <rost@math.uni-bielefeld.de> + + * dired-x.el (dired-do-relsymlink-regexp): Add missing optional + arg ARG and use it. + +2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change) + + * emacs-lisp/cl-macs.el (cl-make-type-test): Add `atom' type. + +2005-07-15 Luc Teirlinck <teirllm@auburn.edu> + + * emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing + a defcustom with two :set or :type keywords. + +2005-07-15 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table): + Don't give ^M comment-end syntax. + +2005-07-16 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el (gdb-var-update, gdb-var-update-handler): + Don't consider gdbmi (gdb-mi.el has its own update functions). + (gdb-var-delete): Make it work for gdbmi as well. + (gdb-speedbar-expand-node): Move var-update here for gdbmi. + + * progmodes/gud.el (etags, sdb): Only require etags when needed. + (gud-speedbar-menu-items): Correct logic for enabling items. + +2005-07-15 Kim F. Storm <storm@cua.dk> + + * ido.el: Fix commentary. + (ido-define-mode-map): Move ido-next-work-file to C-M-o. + Use with-no-warnings around ffap-guesser. + (ido-file-internal, ido-read-file-name, ido-read-directory-name): + Let bind minibuffer-completing-file-name to t. + +2005-07-15 Juanma Barranquero <lekktu@gmail.com> + + * startup.el (site-run-file, keyboard-type): Doc fixes. + (command-line): Check for "--basic-display" argument; also for + "--quick", not "--bare-bones" (which was renamed). + (fancy-splash-text): Add missing item "Getting New Versions". + (normal-splash-screen): Fix typos and improve consistency with + `fancy-splash-text'. Update copyright year. + + * hexl.el (hexl-mode-map): Recognize also `ehelp-command' as a + valid binding for `help-char'. + + * emacs-lisp/derived.el (derived-mode-hook-name): Doc fix. + +2005-07-14 Dan Nicolaescu <dann@ics.uci.edu> + + * term.el (term-mode): Disable cua-mode for term buffers. + +2005-07-14 Juanma Barranquero <lekktu@gmail.com> + + * add-log.el (add-log-mailing-address, change-log-merge): + Doc fixes. + (change-log-get-method-definition): Fix typo in docstring. + +2005-07-14 Kim F. Storm <storm@cua.dk> + + * emulation/cua-base.el: + (cua--pre-command-handler-1, cua--pre-command-handler) + (cua--post-command-handler-1, cua--post-command-handler): + Split in two. Check (buffer local) value of cua-mode. + (cua-selection-mode): New command. + +2005-07-13 Luc Teirlinck <teirllm@auburn.edu> + + * custom.el (custom-initialize-safe-set) + (custom-initialize-safe-default): Doc fixes. + + * frame.el (blink-cursor-mode): Use `custom-initialize-safe-default' + and simplify :init-value again. + + * tooltip.el (tooltip-mode): Use `custom-initialize-safe-default' + and simplify :init-value again. Delete autoload. + + * startup.el (command-line): Use `custom-reevaluate-setting' again + for tooltip-mode. + + * emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing + a defcustom with two :initialize keywords. + +2005-07-13 Juanma Barranquero <lekktu@gmail.com> + + * allout.el (my-mark-marker, allout-isearch-prior-pos) + (allout-unprotected, allout-undo-aggregation, allout-snug-back) + (allout-post-command-business, allout-flag-region) + (isearch-reenable-font-lock, allout-yank) + (allout-insert-latex-header, allout-insert-latex-trailer) + (allout-latex-verbatim-quote-curr-line, allout-latexify-exposed) + (allout-latex-verb-quote): Fix typos in docstrings. + (allout-enwrap-isearch, regexp-sans-escapes): Doc fixes. + (allout-unprotected, allout-prefix-data): + Improve argument/docstring consistency. + (allout-chart-subtree): Fix argument spec. + (allout-open-topic): Rename `use_sib_bullet' argument to + `use-sib-bullet'. Doc fix. + + * whitespace.el (whitespace-check-buffer-leading) + (whitespace-check-buffer-trailing) + (whitespace-check-buffer-indent) + (whitespace-check-buffer-spacetab) + (whitespace-check-buffer-ateol, whitespace-highlighted-space) + (whitespace-check-leading-whitespace) + (whitespace-check-trailing-whitespace) + (whitespace-check-spacetab-whitespace) + (whitespace-check-indent-whitespace) + (whitespace-check-ateol-whitespace, whitespace-abort-on-error) + (whitespace-modes): Fix typos in docstrings. + (defgroup, defcustom): Doc fixes. + + * winner.el (winner-mode, winner-boring-buffers) + (winner-pending-undo-ring): Doc fixes. + (winner-ring): Remove unneeded `progn'. + (winner-equal): `defsubst' it. + (winner-redo): Fix message. + +2005-07-13 Kim F. Storm <storm@cua.dk> + + * simple.el (line-move-1): Always use vertical-motion to + do the last (or only) line move to ensure some movement. + Undo 2005-06-23 change--don't check for overlays. + +2005-07-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * term/mac-win.el (ccl-encode-mac-roman-font) + (ccl-encode-mac-centraleurroman-font) + (ccl-encode-mac-cyrillic-font, ccl-encode-mac-symbol-font): + (ccl-encode-mac-dingbats-font): Remove check for ASCII. + Change charset-id boundary of dimension to ?\xef. + (mac-char-fontspec-list): New constant. + (fontset-add-mac-fonts): Use it. Accept non-string `base-family' + argument. Nil uses itself as family in font-spec. Previous + behavior for nil is now provided by non-nil non-string argument. + All callers changed. Add font-specs for Mac fonts to + "fontset-default" unless iso8859-1 fonts are installed. + +2005-07-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/sh-script.el (sh-get-indent-info): Only indent + a continuation line if the \ is preceded by SPC or TAB. + (sh-get-indent-info): Simplify. + (sh-mark-init, sh-learn-buffer-indent, sh-add-completer): + Use with-current-buffer. + + * font-lock.el (font-lock-fontify-keywords-region): Avoid inf-loops + when the matched text is empty. + +2005-07-12 Luc Teirlinck <teirllm@auburn.edu> + + * startup.el (command-line): Revert to previous handling of + tooltip-mode. Explain in comment why the complexity is needed. + + * tooltip.el (tooltip-mode): Revert to previous implementation of + its defcustom. + + * frame.el (blink-cursor-mode): Revert to previous implementation + of its defcustom. Update comment. + +2005-07-12 Lars Hansen <larsh@soem.dk> + + * desktop.el: Update e-mail address. + +2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * term/mac-win.el (mac-services-mail-selection) + (mac-services-mail-to): New functions. + (mac-application-menu-map): Bind them. + +2005-07-12 wulei <milton@wulei.net> (tiny change) + + * progmodes/gdb-ui.el: Add note about buffering with Windows. + +2005-07-11 Luc Teirlinck <teirllm@auburn.edu> + + * custom.el (custom-reevaluate-setting): Doc fix. + +2005-07-11 Jay Belanger <belanger@truman.edu> + + * calc/calc.el (calc-embedded-announce-formula-alist) + (calc-embedded-open-close-plain-alist) + (calc-embedded-open-close-mode-alist): Add checks for additional + major modes (due to Robert J. Chassell <bob@rattlesnake.com>). + +2005-07-11 Juanma Barranquero <lekktu@gmail.com> + + * custom.el (custom-enable-theme): Don't add theme to + `custom-enabled-themes' with `push' because there is no + setf-method for `delq'. + +2005-07-11 Richard M. Stallman <rms@gnu.org> + + * custom.el (custom-declare-variable): Doc fix. + + * dired-aux.el (dired-compare-directories): Remove "." and ".." + from the alists. + + * emacs-lisp/edebug.el (edebug-slow-after, edebug-slow-before): + Do nothing if edebug-active. + + * emacs-lisp/edebug.el (edebug-enter): Don't with-timeout-suspend here. + (edebug-display): Do it here instead. + +2005-07-10 Richard M. Stallman <rms@gnu.org> + + * cus-face.el (custom-theme-set-faces): Make it work. + (custom-reset-faces): Doc fix. + (custom-theme-reset-internal-face, custom-theme-face-value): + Functions deleted. + + * custom.el (custom-push-theme): Maintain list of the settings + of a given theme in its theme-settings property. + Maintain position of old settings in the theme-value + or theme-face property. + (custom-enabled-themes): New variable. + (custom-theme-enabled-p): New function. + (provide-theme): Update custom-enabled-themes. + Disable and reenable the `user' theme. + (require-theme): Doc fix. + (custom-do-theme-reset, custom-remove-theme): Functions deleted. + (custom-theme-value, custom-theme-variable-value): Likewise. + (custom-theme-reset-internal): Likewise. + (custom-theme-load-themes): Fix bugs and use custom-disable-theme. + (custom-enable-theme, custom-disable-theme): New functions. + (custom-variable-theme-value, custom-face-theme-value): Likewise. + (custom-theme-recalc-variable, custom-theme-recalc-face): Likewise. + (custom-theme-reset-variables): Simplify. + (deftheme, custom-declare-theme, custom-make-theme-feature): + Definitions moved. + +2005-07-10 Chong Yidong <cyd@stupidchicken.com> + + * longlines.el (longlines-show-region) + (longlines-unshow-hard-newlines): Recognize hard newlines by + non-nil hard property, instead of t. + +2005-07-10 Michael Kifer <kifer@cs.stonybrook.edu> + + * viper-cmd.el (viper--key-maps): New variable. + (viper-normalize-minor-mode-map-alist): Use viper--key-maps and + emulation-mode-map-alists. + (viper-envelop-ESC-key): Use viper-subseq. + (viper-search-forward/backward/next): Disable debug-on-error. + + * viper-keym.el (viper-toggle-key, viper-quoted-insert-key) + (viper-ESC-key): New defcustoms. + + * viper-macs.el (ex-map-read-args): Use viper-subseq. + + * viper-util.el (viper-key-to-emacs-key): Use viper-subseq. + (viper-subseq): Copy of subseq from cl.el. + + * viper.el (viper-go-away, viper-set-hooks): Use + emulation-mode-map-alists, advise self-insert-command, add-minor-mode. + + * viper-mous.el (viper-current-frame-saved): Use defvar. + + * viper-init.el: Get rid of -face in face names. + + * ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3): + Make it work with longlines mode + + * ediff-mult.el (ediff-meta-mode-hook): New variable. + + * ediff-ptch.el (ediff-file-name-sans-prefix): Quote regexp. + + * ediff-init: Get rid of -face in face names. + +2005-07-10 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/edebug.el (edebug-enter): Call with-timeout-suspend + and with-timeout-unsuspend. + + * emacs-lisp/debug.el (debug): Call with-timeout-suspend + and with-timeout-unsuspend. + + * emacs-lisp/timer.el (with-timeout-timers): New variable. + (with-timeout): Bind that variable to record timers. + (with-timeout-suspend, with-timeout-unsuspend): New functions. + + * emacs-lisp/debug.el (debug-help-follow): New function. + (debugger-mode-map): Use that instead of help-follow. + (debugger-setup-buffer): Use eval-buffer-list + to handle eval-buffer frames. + +2005-07-10 N. Raghavendra <raghu@mri.ernet.in> (tiny change) + + * timezone.el (timezone-parse-date): Change first regexp + so it will not mistakenly match dates with no time zone. + +2005-07-10 Jeff Dwork <jeff.dwork@amd.com> (tiny change) + + * facemenu.el (facemenu-read-color): Do case-insensitive matching. + +2005-07-10 Luc Teirlinck <teirllm@auburn.edu> + + * custom.el (custom-initialize-safe-set) + (custom-initialize-safe-default): New functions. + + * frame.el (blink-cursor-mode): Use `custom-initialize-safe-default' + and simplify :init-value. + + * tooltip.el (tooltip-mode): Use `custom-initialize-safe-default' + and simplify :init-value. Delete obsolete comment. + + * startup.el (command-line): Use `custom-reevaluate-setting' to + handle `tooltip-mode'. Delete obsolete comment. + + * files.el (set-visited-file-name): Avoid calling + `file-name-nondirectory' with a nil argument. + +2005-07-09 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/debug.el (debugger-setup-buffer): When eval-buffer + was called with nil for the buffer, handle the read position right. + Handle read position for eval-region, too. + +2005-07-09 Juri Linkov <juri@jurta.org> + + * fringe.el (fringe-mode): Add period in docstring. + (fringe-query-style): Build prompt depending on `all-frames' arg. + + * dired.el (dired-marker-char): Avoid quotations for `do' and `mark' + to not create links to unrelated functions in the Help buffer. + + * progmodes/compile.el (compilation-mode-hook, compilation-mode): + Doc fix. + + * simple.el (next-error-hook): New variable. + (next-error): Use it. Doc fix. + + * textmodes/ispell.el (ispell-command-loop): Add current + dictionary name and program name to mode-line-format. + (ispell-region, ispell-process-line): Add current dictionary name + and program name to messages. + +2005-07-08 Jay Belanger <belanger@truman.edu> + + * calc/calc.el (calc-embedded-announce-formula-alist) + (calc-embedded-open-close-formula-alist) + (calc-embedded-open-close-word-alist) + (calc-embedded-open-close-plain-alist) + (calc-embedded-open-close-new-formula-alist) + (calc-embedded-open-close-mode-alist) + (calc-embedded-new-buffer-hook, calc-embedded-new-formula-hook) + (calc-embedded-mode-hook): New variables. + + * calc/calc-embed.el (calc-embedded-firsttime) + (calc-embedded-firsttime-buf, calc-embedded-firsttime-formula): + New variables. + (calc-do-embedded): Use calc-embedded-firsttime, + calc-embedded-firsttime-buf and calc-embedded-firsttime-formula to + determine whether or not to run hooks. + (calc-embedded-make-info) Set calc-embedded-firsttime-buf and + calc-embedded-firsttime-formula appropriately. + Set calc-embedded delimiter variables according to mode. + +2005-07-08 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/checkdoc.el (checkdoc-proper-noun-list): + Check for "emacs", etc., as entire symbol, not just as word. + (checkdoc-file-comments-engine): Use regexp-quote on FN. + + * files.el (set-visited-file-name): Report the error + for "empty filename" earlier. + (kill-some-buffers): Ignore buffers already dead. + + * fringe.el (fringe-mode): Doc fix. + + * emacs-lisp/bytecomp.el (byte-compile-maybe-guarded): + Check for (featurep 'xemacs) and turn off warnings in what it guards. + Use unwind-protect to ensure byte-compile-unresolved-functions + is updated. + + * whitespace.el (whitespace-buffer-leading-cleanup): + Simplify w/ skip-chars-forward. + (whitespace-buffer-trailing-cleanup): Simplify w/ skip-chars-backward. + + * mail/rmail.el (rmail-only-expunge): Fix paren error. + Unconditionally try to leave point at the same old place. + +2005-07-08 Ralf Angeli <angeli@iwi.uni-sb.de> (tiny change) + + * comint.el (comint-postoutput-scroll-to-bottom) + (comint-show-maximum-output): Take scroll-margin into consideration. + +2005-07-08 Kim F. Storm <storm@cua.dk> + + * ido.el (ido-use-filename-at-point): New choice `guess'. + (ido-file-internal): Try ffap-guesser if selected. + + * ido.el (ido-before-fallback-functions): New hook. + (ido-buffer-internal, ido-file-internal, ido-read-buffer) + (ido-read-file-name): Run it. + +2005-07-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/hideif.el (hide-ifdef-use-define-alist): Pass a list of + strings rather than a list of symbols to the completion function. + +2005-07-07 Jay Belanger <belanger@truman.edu> + + * calc/calc-units.el (math-apply-units): Change the places in + which units are simplified. + +2005-07-07 Luc Teirlinck <teirllm@auburn.edu> + + * cus-edit.el (customize-option, customize-option-other-window): + Make them handle aliases. + + * custom.el (custom-variable-p): Make it recursively follow + aliases. Mention that in the docstring. + +2005-07-07 Richard M. Stallman <rms@gnu.org> + + * cus-start.el (exec-path): Use `directory' instead of `file'. + Fix tag for nil. + 2005-07-07 Juanma Barranquero <lekktu@gmail.com> * replace.el (occur-rename-buffer): Use `generate-new-buffer' also @@ -10,16 +2526,15 @@ 2005-07-07 Kenichi Handa <handa@m17n.org> - * international/mule.el (make-coding-system): Describe - `ascii-incompatible' property in the docstring. + * international/mule.el (make-coding-system): + Describe `ascii-incompatible' property in the docstring. (set-file-name-coding-system): Signal an error if coding-system is ascii-incompatible. (set-keyboard-coding-system): Likewise. * international/mule-cmds.el (set-default-coding-systems): Don't set default-file-name-coding-system and - default-keyboard-coding-system if coding-system is - ASCII-incompatible. + default-keyboard-coding-system if coding-system is ASCII-incompatible. * international/utf-16.el: Declare that all UTF-16-based coding systems are ASCII-incompatible. @@ -661,6 +3176,13 @@ * progmodes/compile.el (compilation-next-error-function): Don't switch buffers; operate on the current buffer. + * progmodes/compile.el (compilation-error-file-name) + (compilation-warning-file-name, compilation-info-file-name) + (compilation-line-number, compilation-column-number): New faces. + (compilation-error-face, compilation-warning-face) + (compilation-info-face, compilation-line-face) + (compilation-column-face): Use them. + * facemenu.el (facemenu-add-face): Warn when font-lock is active. * comint.el (comint-password-prompt-regexp): Accept ", try again". @@ -1016,9 +3538,10 @@ New backward-compatibility aliases for renamed faces. (eshell-run-test): Use renamed eshell-test faces. - * eshell/em-prompt.el (eshell-prompt): - Remove "-face" suffix from face name. - (eshell-prompt-face): New backward-compatibility alias for renamed face. + * eshell/em-prompt.el (eshell-prompt): Remove "-face" suffix from + face name. + (eshell-prompt-face): New backward-compatibility alias for renamed + face. (eshell-emit-prompt): Use renamed eshell-prompt face. * eshell/em-ls.el (eshell-ls-directory, eshell-ls-symlink) @@ -1285,20 +3808,22 @@ (ebrowse-draw-member-buffer-class-line, ebrowse-draw-member-long-fn) (ebrowse-draw-member-short-fn): Use renamed ebrowse faces. - * progmodes/antlr-mode.el (antlr-default, antlr-keyword, antlr-syntax) + * progmodes/antlr-mode.el (antlr-default, antlr-keyword, + antlr-syntax) (antlr-ruledef, antlr-tokendef, antlr-ruleref, antlr-tokenref) - (antlr-literal): Remove "-face" suffix and "font-lock-" from face names. + (antlr-literal): Remove "-face" suffix and "font-lock-" from face + names. (antlr-font-lock-default-face, antlr-font-lock-keyword-face) (antlr-font-lock-syntax-face, antlr-font-lock-ruledef-face) (antlr-font-lock-tokendef-face, antlr-font-lock-ruleref-face) - (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face): - New backward-compatibility aliases for renamed faces. + (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face): New + backward-compatibility aliases for renamed faces. (antlr-default-face, antlr-keyword-face, antlr-syntax-face) (antlr-ruledef-face, antlr-tokendef-face, antlr-ruleref-face) - (antlr-tokenref-face, antlr-literal-face): Variables renamed to remove - "font-lock-". Use renamed antlr-mode faces. - (antlr-font-lock-additional-keywords): Use renamed faces. - Replace literal face-names with face variable references. + (antlr-tokenref-face, antlr-literal-face): Variables renamed to + remove "font-lock-". Use renamed antlr-mode faces. + (antlr-font-lock-additional-keywords): Use renamed faces. Replace + literal face-names with face variable references. * buff-menu.el (Buffer-menu-buffer): Remove "-face" suffix from face name. @@ -1642,7 +4167,8 @@ (pc-selection-mode): * emulation/vip.el (vip-find-char-forward): * emulation/viper-cmd.el (viper-find-char-forward): - * international/mule-cmds.el (select-safe-coding-system-accept-default-p) + * international/mule-cmds.el + (select-safe-coding-system-accept-default-p) (input-method-exit-on-invalid-key): * international/mule-diag.el (describe-coding-system): * international/ucs-tables.el (unify-8859-on-encoding-mode): @@ -1816,11 +4342,12 @@ (smerge-mine-face, smerge-other-face, smerge-base-face) (smerge-markers-face): Use renamed smerge faces. - * log-view.el (log-view-file, log-view-message): - Remove "-face" suffix from face names. - (log-view-file-face, log-view-message-face): - New backward-compatibility aliases for renamed faces. - (log-view-file-face, log-view-message-face): Use renamed log-view faces. + * log-view.el (log-view-file, log-view-message): Remove "-face" + suffix from face names. + (log-view-file-face, log-view-message-face): New + backward-compatibility aliases for renamed faces. + (log-view-file-face, log-view-message-face): Use renamed log-view + faces. * paren.el (show-paren-match, show-paren-mismatch): Remove "-face" suffix from face names. @@ -1832,19 +4359,20 @@ (ruler-mode-margins, ruler-mode-fringes) (ruler-mode-column-number, ruler-mode-fill-column) (ruler-mode-comment-column, ruler-mode-goal-column) - (ruler-mode-tab-stop, ruler-mode-current-column): - Remove "-face" suffix from face names. + (ruler-mode-tab-stop, ruler-mode-current-column): Remove "-face" + suffix from face names. (ruler-mode-default-face, ruler-mode-pad-face) (ruler-mode-margins-face, ruler-mode-fringes-face) (ruler-mode-column-number-face, ruler-mode-fill-column-face) (ruler-mode-comment-column-face, ruler-mode-goal-column-face) - (ruler-mode-tab-stop-face, ruler-mode-current-column-face): - New backward-compatibility aliases for renamed faces. + (ruler-mode-tab-stop-face, ruler-mode-current-column-face): New + backward-compatibility aliases for renamed faces. (ruler-mode-pad, ruler-mode-margins, ruler-mode-fringes) (ruler-mode-column-number, ruler-mode-fill-column) (ruler-mode-comment-column, ruler-mode-goal-column) (ruler-mode-tab-stop, ruler-mode-current-column) - (ruler-mode-mouse-grab-any-column, ruler-mode-ruler): Use renamed faces. + (ruler-mode-mouse-grab-any-column, ruler-mode-ruler): Use renamed + faces. * whitespace.el (whitespace-highlight): Remove "-face" suffix from face name. @@ -2079,10 +4607,12 @@ XEmacs code. (flyspell-word): Minor simplification. (flyspell-math-tex-command-p): Quieten the byte-compiler. - (flyspell-external-point-words): Remove unused vars `size' and `start'. - (flyspell-do-correct): Rename from flyspell-xemacs-correct. - Merge the corresponding Emacs code. - (flyspell-correct-word, flyspell-xemacs-popup): Use flyspell-do-correct. + (flyspell-external-point-words): Remove unused vars `size' and + `start'. + (flyspell-do-correct): Rename from flyspell-xemacs-correct. Merge + the corresponding Emacs code. + (flyspell-correct-word, flyspell-xemacs-popup): Use + flyspell-do-correct. * emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in a dedicated window. @@ -2751,7 +5281,8 @@ 2005-05-26 Mark A. Hershberger <mah@everybody.org> - * xml.el (xml-substitute-special): Don't die for undefined xml entities. + * xml.el (xml-substitute-special): Don't die for undefined xml + entities. 2005-05-26 Jay Belanger <belanger@truman.edu> @@ -3186,8 +5717,9 @@ * emacs-lisp/byte-run.el (eval-when-compile): Doc fix. - * emacs-lisp/bytecomp.el (byte-compile-file-form-custom-declare-variable): - Call byte-compile-nogroup-warn if appropriate. + * emacs-lisp/bytecomp.el + (byte-compile-file-form-custom-declare-variable): Call + byte-compile-nogroup-warn if appropriate. * progmodes/compile.el (compilation-finish-function): Mark obsolete. (compilation-set-window): Don't call left-fringe-p; do it directly. @@ -3274,8 +5806,8 @@ (reftex-access-search-path): Use `reftex-uniquify' instead of `reftex-uniq' - * textmodes/reftex-sel.el (reftex-select-unmark): - Overlay `before-string' property modification enables for Emacs as well. + * textmodes/reftex-sel.el (reftex-select-unmark): Overlay + `before-string' property modification enables for Emacs as well. (reftex-select-item): Use `reftex-delete-overlay'. (reftex-select-mark): Use `reftex-make-overlay' and `reftex-overlay-put'. @@ -3762,7 +6294,8 @@ 2005-05-11 Stefan Monnier <monnier@iro.umontreal.ca> - * files.el (executable-find): Move from executable.el. Use locate-file. + * files.el (executable-find): Move from executable.el. Use + locate-file. * progmodes/executable.el (executable-find): Move to files.el. * font-lock.el (font-lock-fontify-keywords-region): Use a marker @@ -3991,8 +6524,9 @@ * term/mac-win.el: Don't define or bind scroll bar functions if x-toolkit-scroll-bars is t. - (x-select-text, x-get-selection-value): - Clear x-last-selected-text-clipboard if x-select-enable-clipboard is nil. + (x-select-text, x-get-selection-value): Clear + x-last-selected-text-clipboard if x-select-enable-clipboard is + nil. (PRIMARY): Put mac-scrap-name property. (mac-select-convert-to-file-url): New function. (public.file-url): New selection target type. Add to @@ -5872,7 +8406,8 @@ minibuffer-with-setup-hook (which breaks turning on/off file-name-shadow-mode while in the prompt). - * complete.el (PC-read-include-file-name-internal): Use test-completion. + * complete.el (PC-read-include-file-name-internal): Use + test-completion. 2005-03-28 Luc Teirlinck <teirllm@auburn.edu> @@ -6057,7 +8592,8 @@ * midnight.el, vc-cvs.el: Replace `illegal' with `invalid'. * emacs-lisp/cl-macs.el: Replace `illegal' with `invalid'. * emulation/vip.el: Replace `illegal' with `invalid'. - * eshell/esh-io.el, eshell/esh-var.el: Replace `illegal' with `invalid'. + * eshell/esh-io.el, eshell/esh-var.el: Replace `illegal' with + `invalid'. * mail/supercite.el: Replace `illegal' with `invalid'. * progmodes/ebnf-abn.el, progmodes/ebnf-bnf.el * progmodes/ebnf-ebx.el, progmodes/ebnf-dtd.el, progmodes/ebnf-iso.el @@ -6067,7 +8603,8 @@ * textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el * textmodes/reftex-index.el, textmodes/reftex-parse.el * textmodes/reftex-ref.el, textmodes/reftex-vars.el - * textmodes/reftex.el, textmodes/org.el: Replace `illegal' with `invalid'. + * textmodes/reftex.el, textmodes/org.el: + Replace `illegal' with `invalid'. 2005-03-24 Stefan Monnier <monnier@iro.umontreal.ca> @@ -6278,7 +8815,8 @@ 2005-03-21 Lute Kamstra <lute@gnu.org> - * generic.el: Fix commentary section. Don't require cl for compilation. + * generic.el: Fix commentary section. Don't require cl for + compilation. (generic-mode-list): Add autoload cookie. (generic-use-find-file-hook, generic-lines-to-scan) (generic-find-file-regexp, generic-ignore-files-regexp) @@ -6917,10 +9455,11 @@ * simple.el (normal-erase-is-backspace): Define default value. - * custom.el (custom-theme-set-variables): Remove unused var `immediate'. - (custom-reevaluate-setting): Simple function to handle - variables that are defined before their default value can really - be computed. + * custom.el (custom-theme-set-variables): Remove unused var + `immediate'. + (custom-reevaluate-setting): Simple function to handle variables + that are defined before their default value can really be + computed. * startup.el (command-line): Use it for temporary-file-directory, small-emporary-file-directory, auto-save-file-name-transforms, @@ -8048,7 +10587,7 @@ 2005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com> - * pcomplete.el: define pcomplete-read-event instead of read-event, + * pcomplete.el: Define pcomplete-read-event instead of read-event, since it's not a complete read-event implementation 2005-01-20 Jay Belanger <belanger@truman.edu> @@ -8300,7 +10839,7 @@ * textmodes/org.el (org-set-regexps-and-options): Rename from `org-set-regexps'. Added checking for STARTUP keyword. (org-get-current-options): Add STARTUP options. - (org-table-insert-row): Mode mode intelligent about when + (org-table-insert-row): Make mode intelligent about when realignment is needed. (org-self-insert-command, org-delete-backward-char, org-delete-char): New commands. @@ -8833,7 +11372,8 @@ * progmodes/fortran.el (fortran-mode): Use mode-require-final-newline. * progmodes/f90.el (f90-mode): Use mode-require-final-newline. * progmodes/cperl-mode.el (cperl-mode): Use mode-require-final-newline. - * progmodes/cfengine.el (cfengine-mode): Use mode-require-final-newline. + * progmodes/cfengine.el (cfengine-mode): Use + mode-require-final-newline. * progmodes/ada-mode.el (ada-mode): Use mode-require-final-newline. * textmodes/text-mode.el (text-mode): Use mode-require-final-newline. * textmodes/texinfo.el (texinfo-mode): Use mode-require-final-newline. @@ -9201,8 +11741,8 @@ 2004-12-19 Jay Belanger <belanger@truman.edu> - * calc/calc-aent.el (calcAlg-blank-matching-open): - Temporarily adjust the syntax of both delimiters of half-open intervals. + * calc/calc-aent.el (calcAlg-blank-matching-open): Temporarily + adjust the syntax of both delimiters of half-open intervals. 2004-12-19 Kim F. Storm <storm@cua.dk> @@ -9467,7 +12007,8 @@ Reported by Ville Skytt,Ad(B <scop@xemacs.org>. (vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev) (vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line) - (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn annotate. + (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn + annotate. 2004-12-12 Juri Linkov <juri@jurta.org> @@ -9558,7 +12099,8 @@ 2004-12-11 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments) - (checkdoc-message-text, checkdoc-defun): Fix format messages for `error'. + (checkdoc-message-text, checkdoc-defun): Fix format messages for + `error'. * textmodes/tex-mode.el (latex-backward-sexp-1): Handle the special case of \end{verbatim}. @@ -9856,12 +12398,13 @@ * calc/calc-store.el, calc/calc-stuff.el, calc/calc-trail.el * calc/calc-undo.el, calc/calc-units.el, calc/calc-vec.el * calc/calc-yank.el, calc/calcalg2.el, calc/calcalg3.el - * calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded functions - with provide statements. + * calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded + functions with provide statements. * calc/calc-alg.el (math-defsimplify): Move from calc-ext.el. - * calc/calc-embed.el (calc-do-embedded-activate): Remove from autoloads. + * calc/calc-embed.el (calc-do-embedded-activate): Remove from + autoloads. * calc/calc-ext.el: Remove dummy autoloading functions from autoloads. (calc-load-everything, math-defsimplify): Replace dummy autoloading @@ -9926,11 +12469,12 @@ Replace calls to calc-extensions by appropriate require, replace calc-extensions-loaded by appropriate featurep. - * calc/calc-ext.el: Move require to end of file. - Remove redundant loading of calc.el. + * calc/calc-ext.el: Move require to end of file. Remove redundant + loading of calc.el. (calc-extensions-loaded): Remove unnecessary variable. (calc-extensions): Remove unnecessary function. - (calc-load-everything): Replace calc-need-macros by appropriate require. + (calc-load-everything): Replace calc-need-macros by appropriate + require. * calc/calc-macs.el: Move provide to end of file. (calc-need-macros): Remove unnecessary function. @@ -10034,7 +12578,8 @@ * calc/calc-aent.el (calc-eval-error): Declare and initialize the variable. - (calc-eval-error): Don't check if the variable calc-eval-error is bound. + (calc-eval-error): Don't check if the variable calc-eval-error is + bound. (calc-buffer, calc-digit-value, math-expr-data): Declare them. (math-alg-inequalities): Move declaration to earlier in the file. @@ -10110,7 +12655,8 @@ Replace variable pos by declared variable. * calc/calc-mtx.el (calc-det-lu): New variable. - (math-det-raw, math-det-step): Replace variable lu by declared variable. + (math-det-raw, math-det-step): Replace variable lu by declared + variable. * calc/calc-map.el (math-ms-temp, math-ms-args): New variables. (math-multi-subst, math-multi-subst-rec): Replace variables temp @@ -10142,7 +12688,8 @@ (calc-embedded-update, calc-embedded-find-vars): Replace variable vars-used by declared variable. - * calc/calc-bin.el (math-format-radix-float): Make pos a local variable. + * calc/calc-bin.el (math-format-radix-float): Make pos a local + variable. (math-format-radix-float): Remove unnecessary setq. (math-radix-float-cache): Declare it. @@ -11494,7 +14041,7 @@ * simple.el (line-move-invisible-p): Rename from line-move-invisible. (line-move): New args NOERROR and TO-END. - Return t if if succeed in moving specified number of lines. + Return t if succeed in moving specified number of lines. (move-end-of-line): New function. * simple.el (beginning-of-buffer-other-window): Use with-no-warnings. @@ -11810,7 +14357,8 @@ * play/fortune.el (fortune-to-signature): Don't use interactive-p. (fortune-in-buffer): Doc fix. - * play/5x5.el (5x5-new-game): Set up the buffer even if not interactive. + * play/5x5.el (5x5-new-game): Set up the buffer even if not + interactive. * net/eudc.el (eudc-display-records): Use with-output-to-temp-buffer; don't select the temporary buffer. @@ -12388,7 +14936,8 @@ 2004-10-17 Kim F. Storm <storm@cua.dk> - * language/indian.el (indian-script-language-alist): Swap value and doc. + * language/indian.el (indian-script-language-alist): Swap value + and doc. (indian-font-char-index-table): Doc fix. 2004-10-16 Stefan Monnier <monnier@iro.umontreal.ca> @@ -14052,7 +16601,8 @@ 2004-08-08 Lars Hansen <larsh@math.ku.dk> - * wid-edit.el (widget-sexp-validate): Allow whitespace after expression. + * wid-edit.el (widget-sexp-validate): Allow whitespace after + expression. 2004-08-08 Luc Teirlinck <teirllm@auburn.edu> @@ -14222,7 +16772,7 @@ 2004-08-16 Reiner Steib <Reiner.Steib@gmx.de> * calendar/time-date.el (time-to-number-of-days): New function. - Imported from from Gnus. + Imported from Gnus. 2004-07-22 Kim F. Storm <storm@cua.dk> @@ -14908,9 +17458,10 @@ 2004-06-11 Luc Teirlinck <teirllm@auburn.edu> * dired.el (dired-revert): If buffer is marked unmodified before - reverting, keep it marked unmodified. - Adapt to new conventions for commenting out code. - (dired-make-relative): Adapt to new conventions for commenting out code. + reverting, keep it marked unmodified. Adapt to new conventions + for commenting out code. + (dired-make-relative): Adapt to new conventions for commenting out + code. 2004-06-10 Miles Bader <miles@gnu.ai.mit.edu> @@ -15005,8 +17556,8 @@ 2004-06-08 Daniel Pfeiffer <occitan@esperanto.org> - * progmodes/compile.el (compilation-set-window-height): - Rearrange the save-* functions because a buffer can have several current + * progmodes/compile.el (compilation-set-window-height): Rearrange + the save-* functions because a buffer can have several current point in different windows. (compilation-error-regexp-alist-alist): Recognize {standard input} GNU messages (for gcc --pipe) and more kinds of Oracle messages. @@ -15468,7 +18019,8 @@ 2004-05-28 Stefan Monnier <monnier@iro.umontreal.ca> - * subr.el (with-selected-window): Only save/restore the selected window. + * subr.el (with-selected-window): Only save/restore the selected + window. * progmodes/compile.el (compilation-error-regexp-alist): Use expand-file-name and data-directory. @@ -15783,7 +18335,7 @@ 2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> * files.el (auto-save-file-name-transforms): Make sure ange-ftp temp - files files don't contain an accidental additional /. + files don't contain an accidental additional /. * textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion in source buffer. @@ -15812,7 +18364,8 @@ * eshell/esh-io.el (eshell-get-target): Whitespace changes. (eshell-output-object-to-target): Improve output speed 20% by not - calling `eshell-stringify' if something is already known to be a string. + calling `eshell-stringify' if something is already known to be a + string. 2004-05-15 Alex Ott <ott@jet.msk.su> @@ -17166,10 +19719,11 @@ 2004-04-20 Stefan Monnier <monnier@iro.umontreal.ca> - * progmodes/compile.el (compilation-error-properties): - Split into two. + * progmodes/compile.el (compilation-error-properties): Split into + two. (compilation-internal-error-properties): New one. - (compilation-compat-error-properties): Use it. Fix the non-marker case. + (compilation-compat-error-properties): Use it. Fix the non-marker + case. 2004-04-20 Richard M. Stallman <rms@gnu.org> @@ -17326,7 +19880,8 @@ 2004-04-16 Dave Love <fx@gnu.org> - * progmodes/python.el (python-compilation-line-number): Fix braindamage. + * progmodes/python.el (python-compilation-line-number): Fix + braindamage. (python-load-file): Fix python-orig-start setting. * progmodes/compile.el: Doc fixes. @@ -17360,10 +19915,10 @@ 2004-04-16 Masatake YAMATO <jet@gyve.org> - * simple.el (completion-setup-function): Set an initial value - to `element-common-end' before entering loop. Set a value - to `element-common-end' at the end of loop. - The bug is reported by Juri Linkov <juri@jurta.org> in emacs-devel list. + * simple.el (completion-setup-function): Set an initial value to + `element-common-end' before entering loop. Set a value to + `element-common-end' at the end of loop. The bug is reported by + Juri Linkov <juri@jurta.org> in emacs-devel list. (completions-common-part): Rename from completion-de-emphasis. (completions-first-difference): Rename from completion-emphasis. Suggested by RMS. @@ -17430,7 +19985,8 @@ parsing of both attribute and element names. (xml-ns-parse-ns-attrs, xml-ns-expand-el, xml-ns-expand-attr) (xml-intern-attrlist): Remove in favor of xml-maybe-do-ns. - (xml-parse-tag): Update assumed namespaces. Clean up namespace parsing. + (xml-parse-tag): Update assumed namespaces. Clean up namespace + parsing. (xml-parse-attlist): Make it do its own namespace parsing. 2004-04-14 Dave Love <fx@gnu.org> @@ -17474,11 +20030,12 @@ 2004-04-14 Kim F. Storm <storm@cua.dk> * startup.el (emacs-quick-startup): New defvar (set by -Q). - (command-line): New option -Q. Like -q --no-site-file, but - in addition it also disables menu-bar, tool-bar, scroll-bars, + (command-line): New option -Q. Like -q --no-site-file, but in + addition it also disables menu-bar, tool-bar, scroll-bars, tool-tips, and the blinking cursor. (command-line-1): Skip startup screen if -Q. - (fancy-splash-head): Use ":align-to center" prop to center splash image. + (fancy-splash-head): Use ":align-to center" prop to center splash + image. * emulation/cua-base.el (cua-read-only-cursor-color) (cua-overwrite-cursor-color, cua-global-mark-cursor-color): Doc fix. @@ -18273,7 +20830,8 @@ 2004-03-22 Luc Teirlinck <teirllm@auburn.edu> - * autorevert.el (global-auto-revert-non-file-buffers): Expand docstring. + * autorevert.el (global-auto-revert-non-file-buffers): Expand + docstring. (buffer-stale-function): New variable. (auto-revert-list-diff, auto-revert-dired-file-list) (auto-revert-dired-changed-p, auto-revert-buffer-p): Delete. @@ -19494,7 +22052,8 @@ * net/webjump.el (webjump-builtin): Add missing format string argument. - * midnight.el (midnight-delay-set): Remove extra format string argument. + * midnight.el (midnight-delay-set): Remove extra format string + argument. * mail/rmail.el (rmail-get-new-mail): Remove useless use of format. @@ -20555,7 +23114,8 @@ * subr.el (noreturn, 1value): New macros for test coverage. See `testcover.el'. - * emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and `1value'. + * emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and + `1value'. * emacs-lisp/testcover.el (testcover-reinstrument): Special case for macro `1value'. @@ -22205,7 +24765,7 @@ * menu-bar.el (menu-bar-options-menu): Supply a body for the [save-place] binding in the Options menu. Have it require - 'saveplace' and then toggle the variable manually, to avoid an an + 'saveplace' and then toggle the variable manually, to avoid an unbound variable error. Thanks to <Sebastien.Kirche@sage.com> for the bug report. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 1174519af9a..b8501c5021d 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -1,5 +1,5 @@ # Maintenance productions for the Lisp directory -# Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -218,10 +218,13 @@ $(lisp)/progmodes/cc-mode.elc: \ # Build loaddefs.el to make sure it's up-to-date. If it's not, that # might lead to errors during the bootstrap because something fails to # autoload as expected. If there is no emacs binary, then we can't -# build autoloads yet. In that case we have to use ldefs-boot.el; -# bootstrap should always work with ldefs-boot.el. (Because -# loaddefs.el is an automatically generated file, we don't want to -# store it in the source repository). +# build autoloads yet. In that case we have to use ldefs-boot.el. +# Bootstrap should always work with ldefs-boot.el. Therefore, +# whenever a new autoload cookie gets added that is necessary during +# bootstrapping, ldefs-boot.el should be updated by overwriting it with +# an up-to-date copy of loaddefs.el that is uncorrupted by +# local changes. (Because loaddefs.el is an automatically generated +# file, we don't want to store it in the source repository). bootstrap-prepare: if test -x $(EMACS); then \ diff --git a/lisp/abbrev.el b/lisp/abbrev.el index b63814e922a..774bb1892b7 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -1,6 +1,7 @@ ;;; abbrev.el --- abbrev mode commands for Emacs -;; Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: abbrev convenience @@ -281,7 +282,7 @@ Don't use this function in a Lisp program; use `define-abbrev' instead." name (abbrev-expansion name table)))) (define-abbrev table (downcase name) exp)))) -(defun inverse-add-mode-abbrev (arg) +(defun inverse-add-mode-abbrev (n) "Define last word before point as a mode-specific abbrev. With prefix argument N, defines the Nth word before point. This command uses the minibuffer to read the expansion. @@ -292,15 +293,15 @@ Expands the abbreviation after defining it." global-abbrev-table (or local-abbrev-table (error "No per-mode abbrev table"))) - "Mode" arg)) + "Mode" n)) -(defun inverse-add-global-abbrev (arg) +(defun inverse-add-global-abbrev (n) "Define last word before point as a global (mode-independent) abbrev. With prefix argument N, defines the Nth word before point. This command uses the minibuffer to read the expansion. Expands the abbreviation after defining it." (interactive "p") - (inverse-add-abbrev global-abbrev-table "Global" arg)) + (inverse-add-abbrev global-abbrev-table "Global" n)) (defun inverse-add-abbrev (table type arg) (let (name exp start end) @@ -338,9 +339,8 @@ ARG is non-nil. Interactively, ARG is the prefix argument." (defun expand-region-abbrevs (start end &optional noquery) "For abbrev occurrence in the region, offer to expand it. -The user is asked to type y or n for each occurrence. -A prefix argument means don't query; expand all abbrevs. -If called from a Lisp program, arguments are START END &optional NOQUERY." +The user is asked to type `y' or `n' for each occurrence. +A prefix argument means don't query; expand all abbrevs." (interactive "r\nP") (save-excursion (goto-char start) diff --git a/lisp/abbrevlist.el b/lisp/abbrevlist.el index a193a92df0f..3be9c257af2 100644 --- a/lisp/abbrevlist.el +++ b/lisp/abbrevlist.el @@ -1,6 +1,7 @@ ;;; abbrevlist.el --- list one abbrev table alphabetically ordered -;; Copyright (C) 1986, 1992 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Suggested by a previous version by Gildea. ;; Maintainer: FSF diff --git a/lisp/add-log.el b/lisp/add-log.el index ec802ef4ae7..8ea934084f6 100644 --- a/lisp/add-log.el +++ b/lisp/add-log.el @@ -1,7 +1,7 @@ ;;; add-log.el --- change log maintenance commands for Emacs -;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: tools @@ -70,7 +70,7 @@ This defaults to the value returned by the function `user-full-name'." ;;;###autoload (defcustom add-log-mailing-address nil - "*Electronic mail addresses of user, for inclusion in ChangeLog headers. + "*Email addresses of user, for inclusion in ChangeLog headers. This defaults to the value of `user-mail-address'. In addition to being a simple string, this value can also be a list. All elements will be recognized as referring to the same user; when creating a new @@ -976,7 +976,7 @@ Has a preference of looking backwards." (goto-char (match-end 0))) (defun change-log-get-method-definition () -"For objective C, return the method name if we are in a method." +"For Objective C, return the method name if we are in a method." (let ((change-log-get-method-definition-md "[")) (save-excursion (if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t) @@ -1022,7 +1022,7 @@ Point is assumed to be at the start of the entry." ;;;###autoload (defun change-log-merge (other-log) - "Merge the contents of ChangeLog file OTHER-LOG with this buffer. + "Merge the contents of change log file OTHER-LOG with this buffer. Both must be found in Change Log mode (since the merging depends on the appropriate motion commands). OTHER-LOG can be either a file name or a buffer. diff --git a/lisp/align.el b/lisp/align.el index 5c1e8e7b89a..2cbc43e38d3 100644 --- a/lisp/align.el +++ b/lisp/align.el @@ -1,6 +1,7 @@ ;;; align.el --- align text to a specific column, by regexp -;; Copyright (C) 1999, 2000, 2002 Free Sofware Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: convenience languages lisp @@ -383,9 +384,6 @@ The possible settings for `align-region-separate' are: regexp function))))))) "The `type' form for any `align-rules-list' variable.") -(unless (functionp 'c-guess-basic-syntax) - (autoload 'c-guess-basic-syntax "cc-engine")) - (defcustom align-rules-list `((lisp-second-arg (regexp . "\\(^\\s-+[^( \t\n]\\|(\\(\\S-+\\)\\s-+\\)\\S-+\\(\\s-+\\)") diff --git a/lisp/allout.el b/lisp/allout.el index 518e37083e0..a64ba4b8f9f 100644 --- a/lisp/allout.el +++ b/lisp/allout.el @@ -1,6 +1,7 @@ ;;; allout.el --- extensive outline mode for use alone and with other modes -;; Copyright (C) 1992, 93, 94, 2001, 02, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ken Manheimer <klm@zope.com> ;; Maintainer: Ken Manheimer <klm@zope.com> @@ -868,15 +869,8 @@ allout-pre- and -post-command-hooks.") (make-variable-buffer-local 'allout-pre-was-isearching) ;;;_ = allout-isearch-prior-pos nil (defvar allout-isearch-prior-pos nil - "Cue for isearch-dynamic-exposure tracking, used by allout-isearch-expose.") + "Cue for isearch-dynamic-exposure tracking, used by `allout-isearch-expose'.") (make-variable-buffer-local 'allout-isearch-prior-pos) -;;;_ = allout-isearch-did-quit -(defvar allout-isearch-did-quit nil - "Distinguishes isearch conclusion and cancellation. - -Maintained by `allout-isearch-abort' \(which is wrapped around the real -isearch-abort), and monitored by `allout-isearch-expose' for action.") -(make-variable-buffer-local 'allout-isearch-did-quit) ;;;_ = allout-override-protect nil (defvar allout-override-protect nil "Used in `allout-mode' for regulate of concealed-text protection mechanism. @@ -887,16 +881,16 @@ native outline functions to temporarily override that protection. It's automatically reset to nil after every buffer modification.") (make-variable-buffer-local 'allout-override-protect) ;;;_ > allout-unprotected (expr) -(defmacro allout-unprotected (expr) - "Evaluate EXPRESSION with `allout-override-protect' let-bound t." +(defmacro allout-unprotected (expression) + "Evaluate EXPRESSION with `allout-override-protect' let-bound to t." `(let ((allout-override-protect t)) - ,expr)) + ,expression)) ;;;_ = allout-undo-aggregation (defvar allout-undo-aggregation 30 "Amount of successive self-insert actions to bunch together per undo. This is purely a kludge variable, regulating the compensation for a bug in -the way that before-change-functions and undo interact.") +the way that `before-change-functions' and undo interact.") (make-variable-buffer-local 'allout-undo-aggregation) ;;;_ = file-var-bug hack (defvar allout-v18/19-file-var-hack nil @@ -1154,7 +1148,7 @@ Topic text constituents: HEADER: The first line of a topic, include the topic PREFIX and header text. -PREFIX: The leading text of a topic which which distinguishes it from +PREFIX: The leading text of a topic which distinguishes it from normal text. It has a strict form, which consists of a prefix-lead string, padding, and a bullet. The bullet may be followed by a number, indicating the ordinal number of the @@ -1343,8 +1337,7 @@ OPEN: A topic that is not closed, though its offspring or body may be." (if allout-layout (setq do-layout t)) - (if (and allout-isearch-dynamic-expose - (not (fboundp 'allout-real-isearch-abort))) + (if allout-isearch-dynamic-expose (allout-enwrap-isearch)) (run-hooks 'allout-mode-hook) @@ -1407,12 +1400,12 @@ OPEN: A topic that is not closed, though its offspring or body may be." "Buffer point last returned by `allout-end-of-current-subtree'.") (make-variable-buffer-local 'allout-recent-end-of-subtree) ;;;_ > allout-prefix-data (beg end) -(defmacro allout-prefix-data (beg end) +(defmacro allout-prefix-data (beginning end) "Register allout-prefix state data - BEGINNING and END of prefix. For reference by `allout-recent' funcs. Returns BEGINNING." `(setq allout-recent-prefix-end ,end - allout-recent-prefix-beginning ,beg)) + allout-recent-prefix-beginning ,beginning)) ;;;_ > allout-recent-depth () (defmacro allout-recent-depth () "Return depth of last heading encountered by an outline maneuvering function. @@ -1632,7 +1625,7 @@ list containing, recursively, the charts for the respective subtopics. The chart for a topics' offspring precedes the entry for the topic itself. -\(fn &optional levels)" +\(fn &optional LEVELS)" ;; The other function parameters are for internal recursion, and should ;; not be specified by external callers. ORIG-DEPTH is depth of topic at @@ -1999,7 +1992,7 @@ Return depth if successful, nil otherwise." ) ;;;_ > allout-snug-back () (defun allout-snug-back () - "Position cursor at end of previous topic + "Position cursor at end of previous topic. Presumes point is at the start of a topic prefix." (if (or (bobp) (eobp)) @@ -2226,8 +2219,7 @@ are exempt from this restriction." (if rehide-place (goto-char rehide-place)) (allout-hide-current-entry-completely)) (allout-hide-current-entry)) - (error (concat - "Change within concealed region prevented."))))))) + (error "Change within concealed region prevented")))))) ) ; if ) ; defun ;;;_ = allout-post-goto-bullet @@ -2249,8 +2241,8 @@ are mapped to the command of the corresponding control-key on the - Implement (and clear) `allout-post-goto-bullet', for hot-spot outline commands. -- Massages buffer-undo-list so successive, standard character self-inserts are - aggregated. This kludge compensates for lack of undo bunching when +- Massages `buffer-undo-list' so successive, standard character self-inserts + are aggregated. This kludge compensates for lack of undo bunching when `before-change-functions' is used." ; Apply any external change func: @@ -2325,9 +2317,7 @@ return to regular interpretation of self-insert characters." (let* ((this-key-num (cond ((numberp last-command-char) last-command-char) - ;; XXX Only XEmacs has characterp. - ((and (fboundp 'characterp) - (characterp last-command-char)) + ((fboundp 'char-to-int) (char-to-int last-command-char)) (t 0))) mapped-binding) @@ -2363,7 +2353,7 @@ See `allout-init' for setup instructions." Called as part of `allout-post-command-business'." - (let ((isearching (and (boundp 'isearch-mode) isearch-mode))) + (let ((isearching isearch-mode)) (cond ((and isearching (not allout-pre-was-isearching)) (allout-isearch-expose 'start)) ((and isearching allout-pre-was-isearching) @@ -2371,15 +2361,14 @@ Called as part of `allout-post-command-business'." ((and (not isearching) allout-pre-was-isearching) (allout-isearch-expose 'final)) ;; Not and wasn't isearching: - (t (setq allout-isearch-prior-pos nil) - (setq allout-isearch-did-quit nil))))) + (t (setq allout-isearch-prior-pos nil))))) ;;;_ = allout-isearch-was-font-lock (defvar allout-isearch-was-font-lock (and (boundp 'font-lock-mode) font-lock-mode)) ;;;_ > allout-flag-region (from to flag) (defmacro allout-flag-region (from to flag) - "Hide or show lines from FROM to TO, via Emacs selective-display FLAG char. + "Hide or show lines from FROM to TO, via Emacs `selective-display' FLAG char. Ie, text following flag C-m \(carriage-return) is hidden until the next C-j (newline) char. @@ -2414,51 +2403,16 @@ Returns the endpoint of the region." (setq allout-isearch-prior-pos nil) (if (not (eq mode 'final)) (setq allout-isearch-prior-pos (cons (point) (allout-show-entry))) - (if allout-isearch-did-quit + (if isearch-mode-end-hook-quit nil (setq allout-isearch-prior-pos nil) - (allout-show-children)))) - (setq allout-isearch-did-quit nil)) + (allout-show-children))))) ;;;_ > allout-enwrap-isearch () (defun allout-enwrap-isearch () - "Impose `allout-mode' isearch-abort wrapper for dynamic exposure in isearch. + "Impose `isearch-abort' wrapper for dynamic exposure in isearch. The function checks to ensure that the rebinding is done only once." - - (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification) - (if (fboundp 'allout-real-isearch-abort) - ;; - nil - ; Ensure load of isearch-mode: - (if (or (and (fboundp 'isearch-mode) - (fboundp 'isearch-abort)) - (condition-case error - (load-library "isearch-mode") - ('file-error (message - "Skipping isearch-mode provisions - %s '%s'" - (car (cdr error)) - (car (cdr (cdr error)))) - (sit-for 1) - ;; Inhibit subsequent tries and return nil: - (setq allout-isearch-dynamic-expose nil)))) - ;; Isearch-mode loaded, encapsulate specific entry points for - ;; outline dynamic-exposure business: - (progn - ;; stash crucial isearch-mode funcs under known, private - ;; names, then register wrapper functions under the old - ;; names, in their stead: - (fset 'allout-real-isearch-abort (symbol-function 'isearch-abort)) - (fset 'isearch-abort 'allout-isearch-abort))))) -;;;_ > allout-isearch-abort () -(defun allout-isearch-abort () - "Wrapper for `allout-real-isearch-abort' \(which see), to register -actual quits." - (interactive) - (setq allout-isearch-did-quit nil) - (condition-case what - (allout-real-isearch-abort) - ('quit (setq allout-isearch-did-quit t) - (signal 'quit nil)))) + (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification)) ;;; Prevent unnecessary font-lock while isearching! (defvar isearch-was-font-locking nil) @@ -2469,7 +2423,7 @@ actual quits." font-lock-mode nil))) (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock) (defun isearch-reenable-font-lock () - "Reenable font-lock after isearching - for use on isearch-mode-end-hook." + "Reenable font-lock after isearching - for use on `isearch-mode-end-hook'." (if (and (boundp 'font-lock-mode) font-lock-mode) (if (and (allout-mode-p) isearch-was-font-locking) (setq isearch-was-font-locking nil @@ -2671,15 +2625,15 @@ index for each successive sibling)." ((allout-sibling-index)))))) ) ) -;;;_ > allout-open-topic (relative-depth &optional before use_sib_bullet) -(defun allout-open-topic (relative-depth &optional before use_sib_bullet) +;;;_ > allout-open-topic (relative-depth &optional before use-sib-bullet) +(defun allout-open-topic (relative-depth &optional before use-sib-bullet) "Open a new topic at depth RELATIVE-DEPTH. New topic is situated after current one, unless optional flag BEFORE is non-nil, or unless current line is complete empty (not even whitespace), in which case open is done on current line. -If USE_SIB_BULLET is true, use the bullet of the prior sibling. +If USE-SIB-BULLET is true, use the bullet of the prior sibling. Nuances: @@ -2821,7 +2775,7 @@ Nuances: ;;(if doing-beginning (save-excursion (newline (if dbl-space 2 1)))) - (allout-rebullet-heading (and use_sib_bullet ref-bullet);;; solicit + (allout-rebullet-heading (and use-sib-bullet ref-bullet);;; solicit depth ;;; depth nil ;;; number-control nil ;;; index @@ -3439,8 +3393,8 @@ exactly like normal yanks. Numbering of yanked topics, and the successive siblings at the depth into which they're being yanked, is adjusted. -`allout-yank-pop' works with `allout-yank' just like normal yank-pop -works with normal yank in non-outline buffers." +`allout-yank-pop' works with `allout-yank' just like normal `yank-pop' +works with normal `yank' in non-outline buffers." (interactive "*P") (setq this-command 'yank) @@ -3472,9 +3426,9 @@ by pops to non-distinctive yanks. Bug..." (interactive) (if (not allout-file-xref-bullet) (error - "outline cross references disabled - no `allout-file-xref-bullet'") + "Outline cross references disabled - no `allout-file-xref-bullet'") (if (not (string= (allout-current-bullet) allout-file-xref-bullet)) - (error "current heading lacks cross-reference bullet `%s'" + (error "Current heading lacks cross-reference bullet `%s'" allout-file-xref-bullet) (let (file-name) (save-excursion @@ -4365,9 +4319,9 @@ used verbatim." ;;;_ - LaTeX formatting ;;;_ > allout-latex-verb-quote (string &optional flow) (defun allout-latex-verb-quote (string &optional flow) - "Return copy of STRING for literal reproduction across latex processing. + "Return copy of STRING for literal reproduction across LaTeX processing. Expresses the original characters \(including carriage returns) of the -string across latex processing." +string across LaTeX processing." (mapconcat (function (lambda (char) (cond ((memq char '(?\\ ?$ ?% ?# ?& ?{ ?} ?_ ?^ ?- ?*)) @@ -4378,10 +4332,10 @@ string across latex processing." "")) ;;;_ > allout-latex-verbatim-quote-curr-line () (defun allout-latex-verbatim-quote-curr-line () - "Express line for exact \(literal) representation across latex processing. + "Express line for exact \(literal) representation across LaTeX processing. Adjust line contents so it is unaltered \(from the original line) -across latex processing, within the context of a `verbatim' +across LaTeX processing, within the context of a `verbatim' environment. Leaves point at the end of the line." (beginning-of-line) (let ((beg (point)) @@ -4397,7 +4351,7 @@ environment. Leaves point at the end of the line." (goto-char (1+ (match-end 0)))))) ;;;_ > allout-insert-latex-header (buffer) (defun allout-insert-latex-header (buffer) - "Insert initial latex commands at point in BUFFER." + "Insert initial LaTeX commands at point in BUFFER." ;; Much of this is being derived from the stuff in appendix of E in ;; the TeXBook, pg 421. (set-buffer buffer) @@ -4471,7 +4425,7 @@ environment. Leaves point at the end of the line." ))) ;;;_ > allout-insert-latex-trailer (buffer) (defun allout-insert-latex-trailer (buffer) - "Insert concluding latex commands at point in BUFFER." + "Insert concluding LaTeX commands at point in BUFFER." (set-buffer buffer) (insert "\n\\end{document}\n")) ;;;_ > allout-latexify-one-item (depth prefix bullet text) @@ -4526,7 +4480,7 @@ BULLET string, and a list of TEXT strings for the body." ))) ;;;_ > allout-latexify-exposed (arg &optional tobuf) (defun allout-latexify-exposed (arg &optional tobuf) - "Format current topics exposed portions to TOBUF for latex processing. + "Format current topics exposed portions to TOBUF for LaTeX processing. TOBUF defaults to a buffer named the same as the current buffer, but with \"*\" prepended and \" latex-formed*\" appended. @@ -4640,7 +4594,8 @@ Optional arg DO-DEFAULTING indicates to accept empty input (CR)." Representations of actual backslashes - '\\\\\\\\' - are left as a single backslash. -Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion." +\(fn REGEXP)" +;; Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion. (if (string= regexp "") "" @@ -4683,7 +4638,7 @@ function. If HOOK is void, it is first set to nil." (cons function (symbol-value hook))))))) ;;;_ : my-mark-marker to accommodate divergent emacsen: (defun my-mark-marker (&optional force buffer) - "Accommodate the different signature for mark-marker across Emacsen. + "Accommodate the different signature for `mark-marker' across Emacsen. XEmacs takes two optional args, while GNU Emacs does not, so pass them along when appropriate." diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el index 31aaef2fcdc..ce84af445a5 100644 --- a/lisp/ansi-color.el +++ b/lisp/ansi-color.el @@ -1,6 +1,7 @@ ;;; ansi-color.el --- translate ANSI escape sequences into faces -;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Alex Schroeder <alex@gnu.org> @@ -85,6 +86,8 @@ ;;; Code: +(defvar comint-last-output-start) + ;; Customization (defgroup ansi-colors nil @@ -485,7 +488,7 @@ For XEmacs, we create a temporary face and return it." OBJECT defaults to the current buffer. XEmacs uses `make-extent', Emacs uses `make-overlay'. XEmacs can use a buffer or a string for OBJECT, Emacs requires OBJECT to be a buffer." - (if (functionp 'make-extent) + (if (fboundp 'make-extent) (make-extent from to object) ;; In Emacs, the overlay might end at the process-mark in comint ;; buffers. In that case, new text will be inserted before the @@ -510,7 +513,7 @@ property." (defun ansi-color-set-extent-face (extent face) "Set the `face' property of EXTENT to FACE. XEmacs uses `set-extent-face', Emacs uses `overlay-put'." - (if (functionp 'set-extent-face) + (if (fboundp 'set-extent-face) (set-extent-face extent face) (overlay-put extent 'face face))) diff --git a/lisp/apropos.el b/lisp/apropos.el index 37cb85494ab..fcad5cac0dc 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -1,6 +1,7 @@ ;;; apropos.el --- apropos commands for users and programmers -;; Copyright (C) 1989,94,1995,2001,02,03,04,2005 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1994, 1995, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@bigbird.bu.edu> ;; Rewritten: Daniel Pfeiffer <occitan@esperanto.org> diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index b049f8ea734..a29ec10d400 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1,6 +1,7 @@ ;;; arc-mode.el --- simple editing of archives -;; Copyright (C) 1995, 1997, 1998, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@gnu.org> ;; Keywords: archives msdog editing major-mode @@ -131,7 +132,7 @@ (make-temp-name (expand-file-name (if (eq system-type 'ms-dos) "ar" "archive.tmp") temporary-file-directory)) - "Directory for temporary files made by arc-mode.el." + "Directory for temporary files made by `arc-mode.el'." :type 'directory :group 'archive) @@ -465,9 +466,9 @@ Each descriptor is a vector of the form (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix))) (defun archive-l-e (str &optional len) - "Convert little endian string/vector to integer. -Alternatively, first argument may be a buffer position in the current buffer -in which case a second argument, length, should be supplied." + "Convert little endian string/vector STR to integer. +Alternatively, STR may be a buffer position in the current buffer +in which case a second argument, length LEN, should be supplied." (if (stringp str) (setq len (length str)) (setq str (buffer-substring str (+ str len)))) @@ -567,7 +568,7 @@ the mode is invalid. If ERROR is nil then nil will be returned." (format "%02d:%02d:%02d" hour minute second))) (defun archive-unixdate (low high) - "Stringify unix (LOW HIGH) date." + "Stringify Unix (LOW HIGH) date." (let ((str (current-time-string (cons high low)))) (format "%s-%s-%s" (substring str 8 10) @@ -575,7 +576,7 @@ the mode is invalid. If ERROR is nil then nil will be returned." (substring str 20 24)))) (defun archive-unixtime (low high) - "Stringify unix (LOW HIGH) time." + "Stringify Unix (LOW HIGH) time." (let ((str (current-time-string (cons high low)))) (substring str 11 19))) @@ -587,7 +588,7 @@ the mode is invalid. If ERROR is nil then nil will be returned." (defun archive-get-descr (&optional noerror) "Return the descriptor vector for file at point. -Does not signal an error if optional second argument NOERROR is non-nil." +Does not signal an error if optional argument NOERROR is non-nil." (let ((no (archive-get-lineno))) (if (and (>= (point) archive-file-list-start) (< no (length archive-files))) @@ -761,7 +762,7 @@ when parsing the archive." (defun archive-alternate-display () "Toggle alternative display. -To avoid very long lines some archive mode don't show all information. +To avoid very long lines archive mode does not show all information. This function changes the set of information shown for each files." (interactive) (setq archive-alternate-display (not archive-alternate-display)) @@ -1159,13 +1160,13 @@ With a prefix argument, mark that many files." "In archive mode, un-mark this member if it is marked to be deleted. With a prefix argument, un-mark that many files forward." (interactive "p") - (archive-flag-deleted p ? )) + (archive-flag-deleted p ?\s)) (defun archive-unflag-backwards (p) "In archive mode, un-mark this member if it is marked to be deleted. With a prefix argument, un-mark that many members backward." (interactive "p") - (archive-flag-deleted (- p) ? )) + (archive-flag-deleted (- p) ?\s)) (defun archive-unmark-all-files () "Remove all marks." @@ -1175,8 +1176,8 @@ With a prefix argument, un-mark that many members backward." (save-excursion (goto-char archive-file-list-start) (while (< (point) archive-file-list-end) - (or (= (following-char) ? ) - (progn (delete-char 1) (insert ? ))) + (or (= (following-char) ?\s) + (progn (delete-char 1) (insert ?\s))) (forward-line 1))) (restore-buffer-modified-p modified))) @@ -1214,7 +1215,7 @@ Use \\[archive-unmark-all-files] to remove all marks." (defun archive-chmod-entry (new-mode) "Change the protection bits associated with all marked or this member. The new protection bits can either be specified as an octal number or -as a relative change like \"g+rw\" as for chmod(2)" +as a relative change like \"g+rw\" as for chmod(2)." (interactive "sNew mode (octal or relative): ") (if archive-read-only (error "Archive is read-only")) (let ((func (archive-name "chmod-entry"))) diff --git a/lisp/array.el b/lisp/array.el index 836ba99ff6d..4d8b718965f 100644 --- a/lisp/array.el +++ b/lisp/array.el @@ -1,6 +1,7 @@ ;;; array.el --- array editing commands for GNU Emacs -;; Copyright (C) 1987, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author David M. Brown ;; Maintainer: FSF @@ -638,7 +639,7 @@ If optional ARG is given, copy through ARG rows up." "Reconfigure the state of `array-rows-numbered' and `array-columns-per-line'. NEW-COLUMNS-PER-LINE is the desired value of `array-columns-per-line' and NEW-ROWS-NUMBERED (a character, either ?y or ?n) is the desired value -of array-rows-numbered." +of `array-rows-numbered'." (interactive "nColumns per line: \ncRows numbered? (y or n) ") ;; Check on new-columns-per-line (let ((check t)) @@ -717,7 +718,7 @@ of array-rows-numbered." (let ((inhibit-quit t)) (set-buffer main-buffer) (erase-buffer) - (insert-buffer temp-buffer) + (insert-buffer-substring temp-buffer) ;; Update local variables. (setq array-columns-per-line new-columns-per-line) (setq array-rows-numbered new-rows-numbered) @@ -767,7 +768,7 @@ Return COLUMN." (move-to-column column))))) (defun untabify-backward () - "Untabify the preceding tab." + "Untabify the preceding TAB." (save-excursion (let ((start (point))) (backward-char 1) @@ -817,7 +818,7 @@ NOT recognized as integers or real numbers. The array MUST reside at the top of the buffer. TABs are not respected, and may be converted into spaces at any time. -Setting the variable 'array-respect-tabs to non-nil will prevent TAB conversion, +Setting the variable `array-respect-tabs' to non-nil will prevent TAB conversion, but will cause many functions to give errors if they encounter one. Upon entering array mode, you will be prompted for the values of diff --git a/lisp/autoarg.el b/lisp/autoarg.el index ae1d26ecd20..aca22ace5b5 100644 --- a/lisp/autoarg.el +++ b/lisp/autoarg.el @@ -1,6 +1,7 @@ ;;; autoarg.el --- make digit keys supply prefix args -;; Copyright (C) 1998, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Created: 1998-09-04 diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 71fa14014a9..465817d5b81 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -1,7 +1,7 @@ ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files -;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Charlie Martin <crm@cs.duke.edu> ;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org> diff --git a/lisp/autorevert.el b/lisp/autorevert.el index 23156ceda47..9892dca2d41 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -1,6 +1,7 @@ ;;; autorevert.el --- revert buffers when files on disk change -;; Copyright (C) 1997, 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Keywords: convenience @@ -339,7 +340,7 @@ Use `auto-revert-mode' for changes other than appends!" ;; else we might reappend our own end when we save (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t) (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position - (set (make-variable-buffer-local 'auto-revert-tail-pos) + (set (make-local-variable 'auto-revert-tail-pos) (save-restriction (widen) (1- (point-max))))) ;; let auto-revert-mode set up the mechanism for us if it isn't already (or auto-revert-mode diff --git a/lisp/avoid.el b/lisp/avoid.el index 032c7260cec..e99d09d6753 100644 --- a/lisp/avoid.el +++ b/lisp/avoid.el @@ -1,6 +1,7 @@ ;;; avoid.el --- make mouse pointer stay out of the way of editing -;; Copyright (C) 1993, 1994, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: mouse diff --git a/lisp/battery.el b/lisp/battery.el index 2ae6607f8ef..649cbe4c2c3 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -1,7 +1,7 @@ ;;; battery.el --- display battery status information -;; Copyright (C) 1997, 1998, 2000, 2001, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org> ;; Keywords: hardware @@ -49,10 +49,11 @@ (file-directory-p "/proc/acpi/battery")) 'battery-linux-proc-acpi) ((and (eq system-type 'darwin) - (ignore-errors - (with-temp-buffer - (and (eq (call-process "pmset" nil t nil "-g" "ps") 0) - (> (buffer-size) 0))))) + (condition-case nil + (with-temp-buffer + (and (eq (call-process "pmset" nil t nil "-g" "ps") 0) + (> (buffer-size) 0))) + (error nil))) 'battery-pmset)) "*Function for getting battery status information. The function has to return an alist of conversion definitions. diff --git a/lisp/bindings.el b/lisp/bindings.el index 7c932efd57c..0d4b5ccaf55 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1,7 +1,7 @@ ;;; bindings.el --- define standard key bindings and some variables -;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999, 2000, -;; 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 51a5e0469e5..23e1ce11277 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1,6 +1,7 @@ ;;; bookmark.el --- set bookmarks, maybe annotate them, jump to them later -;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 2001, 2003 Free Software Foundation +;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Maintainer: Karl Fogel <kfogel@red-bean.com> @@ -169,7 +170,7 @@ recently set ones come first, oldest ones come last)." (defcustom bookmark-automatically-show-annotations t - "*nil means don't show annotations when jumping to a bookmark." + "*Non-nil means show annotations when jumping to a bookmark." :type 'boolean :group 'bookmark) @@ -333,14 +334,14 @@ through a file easier.") (defun bookmark-get-bookmark (bookmark) - "Return the full entry for BOOKMARK in bookmark-alist. + "Return the full entry for BOOKMARK in `bookmark-alist'. If BOOKMARK is not a string, return nil." (when (stringp bookmark) (assoc-string bookmark bookmark-alist bookmark-completion-ignore-case))) (defun bookmark-get-bookmark-record (bookmark) - "Return the guts of the entry for BOOKMARK in bookmark-alist. + "Return the guts of the entry for BOOKMARK in `bookmark-alist'. That is, all information but the name." (car (cdr (bookmark-get-bookmark bookmark)))) @@ -443,8 +444,7 @@ That is, all information but the name." (list (cons 'info-node node))))) (message "%S" (assq 'info-node (bookmark-get-bookmark-record bookmark))) - (sit-for 4) - ) + (sit-for 4)) (defvar bookmark-history nil @@ -619,7 +619,7 @@ You should never need to change this.") (defun bookmark-alist-from-buffer () - "Return a bookmark-alist (in any format) from the current buffer. + "Return a `bookmark-alist' (in any format) from the current buffer. The buffer must of course contain bookmark format information. Does not care from where in the buffer it is called, and does not affect point." @@ -659,7 +659,7 @@ affect point." (defun bookmark-upgrade-file-format-from-0 () "Upgrade a bookmark file of format 0 (the original format) to format 1. -This expects to be called from point-min in a bookmark file." +This expects to be called from `point-min' in a bookmark file." (message "Upgrading bookmark format from 0 to %d..." bookmark-file-format-version) (let* ((old-list (bookmark-alist-from-buffer)) @@ -676,7 +676,7 @@ This expects to be called from point-min in a bookmark file." (defun bookmark-grok-file-format-version () "Return an integer which is the file-format version of this bookmark file. -This expects to be called from point-min in a bookmark file." +This expects to be called from `point-min' in a bookmark file." (if (looking-at "^;;;;") (save-excursion (save-match-data @@ -691,7 +691,7 @@ This expects to be called from point-min in a bookmark file." (defun bookmark-maybe-upgrade-file-format () "Check the file-format version of this bookmark file. If the version is not up-to-date, upgrade it automatically. -This expects to be called from point-min in a bookmark file." +This expects to be called from `point-min' in a bookmark file." (let ((version (bookmark-grok-file-format-version))) (cond ((= version bookmark-file-format-version) @@ -783,7 +783,7 @@ the list of bookmarks.\)" (defun bookmark-kill-line (&optional newline-too) "Kill from point to end of line. If optional arg NEWLINE-TOO is non-nil, delete the newline too. -Does not affect the kill-ring." +Does not affect the kill ring." (let ((eol (save-excursion (end-of-line) (point)))) (delete-region (point) eol) (if (and newline-too (looking-at "\n")) @@ -842,11 +842,11 @@ the bookmark (and file, and point) specified in buffer local variables." (defvar bookmark-read-annotation-text-func 'bookmark-default-annotation-text "Function to return default text to use for a bookmark annotation. -It takes the name of the bookmark, as a string, as an arg.") +It takes one argument, the name of the bookmark, as a string.") (defun bookmark-read-annotation-mode (buf point parg bookmark) "Mode for composing annotations for a bookmark. -Wants BUF POINT PARG and BOOKMARK. +Wants BUF, POINT, PARG, and BOOKMARK. When you have finished composing, type \\[bookmark-send-annotation] to send the annotation. @@ -933,7 +933,7 @@ Lines beginning with `#' are ignored." (defun bookmark-insert-current-bookmark () - "Insert this buffer's value of bookmark-current-bookmark. + "Insert this buffer's value of `bookmark-current-bookmark'. Default to file name if it's nil." (interactive) (let ((str @@ -993,6 +993,8 @@ In Info, return the current node." (insert string))) +(defvar Info-current-file) + (defun bookmark-buffer-file-name () "Return the current buffer's file in a way useful for bookmarks. For example, if this is a Info buffer, return the Info file's name." @@ -1035,6 +1037,10 @@ For example, if this is a Info buffer, return the Info file's name." (lambda (x y) (string-lessp (car x) (car y)))))))) +(defvar bookmark-after-jump-hook nil + "Hook run after `bookmark-jump' jumps to a bookmark. +Useful for example to unhide text in `outline-mode'.") + ;;;###autoload (defun bookmark-jump (bookmark) "Jump to bookmark BOOKMARK (a point in some file). @@ -1044,7 +1050,7 @@ bookmarks. See help on function `bookmark-load' for more about this. If the file pointed to by BOOKMARK no longer exists, you will be asked -if you wish to give the bookmark a new location, and bookmark-jump +if you wish to give the bookmark a new location, and `bookmark-jump' will then jump to the new location, as well as recording it in place of the old one in the permanent bookmark record." (interactive @@ -1057,6 +1063,7 @@ of the old one in the permanent bookmark record." (and cell (switch-to-buffer (car cell)) (goto-char (cdr cell)) + (progn (run-hooks 'bookmark-after-jump-hook) t) (if bookmark-automatically-show-annotations ;; if there is an annotation for this bookmark, ;; show it in a buffer. @@ -1102,7 +1109,8 @@ be retrieved from a VC backend, else return nil." ;; Info nodes must be visited with care. (progn (require 'info) - (Info-find-node file info-node)) + (with-no-warnings + (Info-find-node file info-node))) ;; Else no Info. Can do an ordinary find-file: (set-buffer (find-file-noselect file)) (goto-char place)) @@ -1304,8 +1312,8 @@ Saves by default in the file defined by the variable `bookmark-default-file'. With a prefix arg, save it in file FILE \(second argument\). -If you are calling this from Lisp, the two arguments are PREFIX-ARG -and FILE, and if you just want it to write to the default file, then +If you are calling this from Lisp, the two arguments are PARG and +FILE, and if you just want it to write to the default file, then pass no arguments. Or pass in nil and FILE, and it will save in FILE instead. If you pass in one argument, and it is non-nil, then the user will be interactively queried for a file to save in. @@ -1804,7 +1812,7 @@ You can mark bookmarks with the \\<bookmark-bmenu-mode-map>\\[bookmark-bmenu-mar (setq tem (bookmark-bmenu-bookmark)) (let ((inhibit-read-only t)) (delete-char -1) - (insert ?\ )) + (insert ?\s)) (or (string-equal tem bmrk) (member tem others) (setq others (cons tem others)))) @@ -2093,7 +2101,7 @@ strings returned are not." (format "-*- %s (%d) -*-" name iter) (nreverse lst)) pane-list))) - + ;; Popup the menu and return the string. (x-popup-menu event (cons (concat "-*- " name " -*-") (nreverse pane-list))))) @@ -2141,12 +2149,14 @@ strings returned are not." ;;; Exit Hook, called from kill-emacs-hook (defvar bookmark-exit-hook nil - "Hook run when emacs exits.") + "Hook run when Emacs exits.") + +(define-obsolete-variable-alias 'bookmark-exit-hooks 'bookmark-exit-hook "22.1") (defun bookmark-exit-hook-internal () "Save bookmark state, if necessary, at Emacs exit time. -This also runs `bookmark-exit-hooks'." - (run-hooks 'bookmark-exit-hooks) +This also runs `bookmark-exit-hook'." + (run-hooks 'bookmark-exit-hook) (and bookmark-alist (bookmark-time-to-save-p t) (bookmark-save))) diff --git a/lisp/bs.el b/lisp/bs.el index 67db5648893..2e4fc881d9f 100644 --- a/lisp/bs.el +++ b/lisp/bs.el @@ -1,6 +1,7 @@ ;;; bs.el --- menu for selecting and displaying buffers -;; Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Olaf Sylvester <Olaf.Sylvester@netsurf.de> ;; Maintainer: Olaf Sylvester <Olaf.Sylvester@netsurf.de> ;; Keywords: convenience @@ -25,7 +26,7 @@ ;;; Commentary: ;; Version: 1.17 -;; X-URL: http://home.netsurf.de/olaf.sylvester/emacs +;; X-URL: http://www.geekware.de/software/emacs ;; ;; The bs-package contains a main function bs-show for poping up a ;; buffer in a way similar to `list-buffers' and `electric-buffer-list': @@ -130,6 +131,8 @@ ;;; Code: +(defvar font-lock-verbose) + ;; ---------------------------------------------------------------------- ;; Globals for customization ;; ---------------------------------------------------------------------- @@ -138,7 +141,7 @@ "Buffer Selection: Maintaining buffers by buffer menu." :version "21.1" :link '(emacs-commentary-link "bs") - :link '(url-link "http://home.netsurf.de/olaf.sylvester/emacs") + :link '(url-link "http://www.geekware.de/software/emacs") :group 'convenience) (defgroup bs-appearance nil @@ -160,15 +163,17 @@ "*List specifying the layout of a Buffer Selection Menu buffer. Each entry specifies a column and is a list of the form of: \(HEADER MINIMUM-LENGTH MAXIMUM-LENGTH ALIGNMENT FUN-OR-STRING) -HEADER : string for header for first line or a function - which calculates column title. -MINIMUM-LENGTH : minimum width of column (number or name of function). - The function must return a positive integer. -MAXIMUM-LENGTH : maximum width of column (number or name of function) - (currently ignored) -ALIGNMENT : alignment of column: (`left' `right' `middle') -FUN-OR-STRING : Name of a function for calculating the value or -a string for a constant value. + +HEADER : String for header for first line or a function + which calculates column title. +MINIMUM-LENGTH : Minimum width of column (number or name of function). + The function must return a positive integer. +MAXIMUM-LENGTH : Maximum width of column (number or name of function) + (currently ignored). +ALIGNMENT : Alignment of column (`left', `right', `middle'). +FUN-OR-STRING : Name of a function for calculating the value or a + string for a constant value. + The function gets as parameter the buffer where we have started buffer selection and the list of all buffers to show. The function must return a string representing the column's value." diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 7f10e7f3c1f..9418eebe98f 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -1,7 +1,7 @@ ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*- ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience @@ -79,8 +79,6 @@ "Face used to highlight buffer name." :group 'Buffer-menu :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'Buffer-menu-buffer-face 'face-alias 'Buffer-menu-buffer) (defcustom Buffer-menu-buffer+size-width 26 "*How wide to jointly make the buffer name and size columns." @@ -305,7 +303,7 @@ For more information, see the function `buffer-menu'." (defun Buffer-menu-unmark (&optional backup) "Cancel all requested operations on buffer on this line and move down. -Optional ARG means move up." +Optional prefix arg means move up." (interactive "P") (when (Buffer-menu-no-header) (let* ((buf (Buffer-menu-buffer t)) @@ -369,10 +367,10 @@ and then move up one line. Prefix arg means move that many lines." (save-excursion (beginning-of-line) (forward-char 2) - (if (= (char-after) (if arg ? ?*)) + (if (= (char-after) (if arg ?\s ?*)) (let ((buffer-read-only nil)) (delete-char 1) - (insert (if arg ?* ? )))))) + (insert (if arg ?* ?\s)))))) (defun Buffer-menu-beginning () (goto-char (point-min)) @@ -392,7 +390,7 @@ and then move up one line. Prefix arg means move that many lines." (setq modp (buffer-modified-p))) (let ((buffer-read-only nil)) (delete-char -1) - (insert (if modp ?* ? )))))) + (insert (if modp ?* ?\s)))))) (save-excursion (Buffer-menu-beginning) (let ((buff-menu-buffer (current-buffer)) @@ -405,7 +403,7 @@ and then move up one line. Prefix arg means move that many lines." (save-excursion (kill-buffer buf))) (if (and buf (buffer-name buf)) (progn (delete-char 1) - (insert ? )) + (insert ?\s)) (delete-region (point) (progn (forward-line 1) (point))) (unless (bobp) (forward-char -1)))))))) @@ -425,7 +423,7 @@ in the selected frame." (setq tem (Buffer-menu-buffer t)) (let ((buffer-read-only nil)) (delete-char -1) - (insert ?\ )) + (insert ?\s)) (or (eq tem buff) (memq tem others) (setq others (cons tem others)))) (setq others (nreverse others) tem (/ (1- (frame-height)) (1+ (length others)))) @@ -521,7 +519,7 @@ The current window remains selected." (save-excursion (set-buffer (Buffer-menu-buffer t)) (vc-toggle-read-only) - (setq char (if buffer-read-only ?% ? ))) + (setq char (if buffer-read-only ?% ?\s))) (save-excursion (beginning-of-line) (forward-char 1) @@ -594,7 +592,7 @@ For more information, see the function `buffer-menu'." (make-string (- Buffer-menu-buffer+size-width (length name) (length size)) - ? ) + ?\s) size)) (defun Buffer-menu-sort (column) @@ -677,7 +675,7 @@ it means list those buffers and no others. For more information, see the function `buffer-menu'." (let* ((old-buffer (current-buffer)) (standard-output standard-output) - (mode-end (make-string (- Buffer-menu-mode-width 2) ? )) + (mode-end (make-string (- Buffer-menu-mode-width 2) ?\s)) (header (concat "CRM " (Buffer-menu-buffer+size (Buffer-menu-make-sort-button "Buffer" 2) @@ -712,7 +710,7 @@ For more information, see the function `buffer-menu'." (insert header (apply 'string (mapcar (lambda (c) - (if (memq c '(?\n ?\ )) c underline)) + (if (memq c '(?\n ?\s)) c underline)) header))))) ;; Collect info for every buffer we're interested in. (dolist (buffer (or buffer-list (buffer-list))) @@ -732,17 +730,17 @@ For more information, see the function `buffer-menu'." (format-mode-line mode-line-process nil nil buffer)))) (bits (string - (if (eq buffer old-buffer) ?. ?\ ) + (if (eq buffer old-buffer) ?. ?\s) ;; Handle readonly status. The output buffer ;; is special cased to appear readonly; it is ;; actually made so at a later date. (if (or (eq buffer standard-output) buffer-read-only) - ?% ?\ ) + ?% ?\s) ;; Identify modified buffers. - (if (buffer-modified-p) ?* ?\ ) + (if (buffer-modified-p) ?* ?\s) ;; Space separator. - ?\ ))) + ?\s))) (unless file ;; No visited file. Check local value of ;; list-buffers-directory. diff --git a/lisp/button.el b/lisp/button.el index 1b0c009e925..d58e53c2895 100644 --- a/lisp/button.el +++ b/lisp/button.el @@ -1,6 +1,6 @@ ;;; button.el --- clickable buttons ;; -;; Copyright (C) 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: extensions diff --git a/lisp/calc/README b/lisp/calc/README index a307b711f1e..97f2a29f6ce 100644 --- a/lisp/calc/README +++ b/lisp/calc/README @@ -2,7 +2,8 @@ This directory contains Calc, an advanced desk calculator for GNU Emacs. -"Calc" Copyright 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +"Calc" Copyright 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Written by: Dave Gillespie diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 8af03c4d206..6919527751b 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -1,6 +1,7 @@ ;;; calc-aent.el --- algebraic entry functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el index 45d66231835..ada18830988 100644 --- a/lisp/calc/calc-alg.el +++ b/lisp/calc/calc-alg.el @@ -1,6 +1,7 @@ ;;; calc-alg.el --- algebraic functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index bba7a8fe942..25ccfc48019 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el @@ -1,6 +1,7 @@ ;;; calc-arith.el --- arithmetic functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el index 445f9d28531..376c049e93e 100644 --- a/lisp/calc/calc-bin.el +++ b/lisp/calc/calc-bin.el @@ -1,6 +1,7 @@ ;;; calc-bin.el --- binary functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el index b4b397c43f6..5105148a60f 100644 --- a/lisp/calc/calc-comb.el +++ b/lisp/calc/calc-comb.el @@ -1,6 +1,7 @@ ;;; calc-comb.el --- combinatoric functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el index 32d8a07ffc0..cf9054343d4 100644 --- a/lisp/calc/calc-cplx.el +++ b/lisp/calc/calc-cplx.el @@ -1,6 +1,7 @@ ;;; calc-cplx.el --- Complex number functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el index c6e0e33e559..4127c0b33da 100644 --- a/lisp/calc/calc-embed.el +++ b/lisp/calc/calc-embed.el @@ -1,6 +1,7 @@ ;;; calc-embed.el --- embed Calc in a buffer -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> @@ -200,6 +201,11 @@ (defvar calc-embed-arg) (defvar calc-embedded-quiet nil) + +(defvar calc-embedded-firsttime) +(defvar calc-embedded-firsttime-buf) +(defvar calc-embedded-firsttime-formula) + (defun calc-do-embedded (calc-embed-arg end obeg oend) (if calc-embedded-info @@ -251,6 +257,9 @@ (let ((modes (list mode-line-buffer-identification (current-local-map) truncate-lines)) + (calc-embedded-firsttime (not calc-embedded-active)) + (calc-embedded-firsttime-buf nil) + (calc-embedded-firsttime-formula nil) calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot info chg ident) (barf-if-buffer-read-only) @@ -297,6 +306,12 @@ (unless (equal str mode-line-buffer-identification) (setq mode-line-buffer-identification str) (set-buffer-modified-p (buffer-modified-p)))) + (if calc-embedded-firsttime + (run-hooks 'calc-embedded-mode-hook)) + (if calc-embedded-firsttime-buf + (run-hooks 'calc-embedded-new-buffer-hook)) + (if calc-embedded-firsttime-formula + (run-hooks 'calc-embedded-new-formula-hook)) (or (eq calc-embedded-quiet t) (message "Embedded Calc mode enabled; %s to return to normal" (if calc-embedded-quiet @@ -792,14 +807,52 @@ The command \\[yank] can retrieve it from there." (new-info nil) info str) (or found - (setq found (list (current-buffer)) - calc-embedded-active (cons found calc-embedded-active))) + (and + (setq found (list (current-buffer)) + calc-embedded-active (cons found calc-embedded-active) + calc-embedded-firsttime-buf t) + (let ((newann (assoc major-mode calc-embedded-announce-formula-alist)) + (newform (assoc major-mode calc-embedded-open-close-formula-alist)) + (newword (assoc major-mode calc-embedded-open-close-word-alist)) + (newplain (assoc major-mode calc-embedded-open-close-plain-alist)) + (newnewform + (assoc major-mode calc-embedded-open-close-new-formula-alist)) + (newmode (assoc major-mode calc-embedded-open-close-mode-alist))) + (when newann + (make-local-variable 'calc-embedded-announce-formula) + (setq calc-embedded-announce-formula (cdr newann))) + (when newform + (make-local-variable 'calc-embedded-open-formula) + (make-local-variable 'calc-embedded-close-formula) + (setq calc-embedded-open-formula (nth 0 (cdr newform))) + (setq calc-embedded-close-formula (nth 1 (cdr newform)))) + (when newword + (make-local-variable 'calc-embedded-open-word) + (make-local-variable 'calc-embedded-close-word) + (setq calc-embedded-open-word (nth 0 (cdr newword))) + (setq calc-embedded-close-word (nth 1 (cdr newword)))) + (when newplain + (make-local-variable 'calc-embedded-open-plain) + (make-local-variable 'calc-embedded-close-plain) + (setq calc-embedded-open-plain (nth 0 (cdr newplain))) + (setq calc-embedded-close-plain (nth 1 (cdr newplain)))) + (when newnewform + (make-local-variable 'calc-embedded-open-new-formula) + (make-local-variable 'calc-embedded-close-new-formula) + (setq calc-embedded-open-new-formula (nth 0 (cdr newnewform))) + (setq calc-embedded-close-new-formula (nth 1 (cdr newnewform)))) + (when newmode + (make-local-variable 'calc-embedded-open-mode) + (make-local-variable 'calc-embedded-close-mode) + (setq calc-embedded-open-mode (nth 0 (cdr newmode))) + (setq calc-embedded-close-mode (nth 1 (cdr newmode))))))) (while (and (cdr found) (> point (aref (car (cdr found)) 3))) (setq found (cdr found))) (if (and (cdr found) (>= point (aref (nth 1 found) 2))) - (setq info (nth 1 found)) + (setq info (nth 1 found)) + (setq calc-embedded-firsttime-formula t) (setq info (make-vector 16 nil) new-info t fresh t) diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index 0b177b06dc4..db370f766d9 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el @@ -1,6 +1,7 @@ ;;; calc-ext.el --- various extension functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el index c65e8341394..b15f7c254d1 100644 --- a/lisp/calc/calc-fin.el +++ b/lisp/calc/calc-fin.el @@ -1,6 +1,7 @@ ;;; calc-fin.el --- financial functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index ad2ef9dbbff..3a192e3f0be 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -1,7 +1,7 @@ ;;; calc-forms.el --- data format conversion functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el index 87ee59440c3..bf3850b72b9 100644 --- a/lisp/calc/calc-frac.el +++ b/lisp/calc/calc-frac.el @@ -1,6 +1,7 @@ ;;; calc-frac.el --- fraction functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el index 7ae9f524c90..9d491a2c540 100644 --- a/lisp/calc/calc-funcs.el +++ b/lisp/calc/calc-funcs.el @@ -1,6 +1,7 @@ ;;; calc-funcs.el --- well-known functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el index 113cdcd33bc..31d45c50a70 100644 --- a/lisp/calc/calc-graph.el +++ b/lisp/calc/calc-graph.el @@ -1,6 +1,7 @@ ;;; calc-graph.el --- graph output functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 84176b36eea..2d79fd36f6c 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el @@ -1,7 +1,7 @@ ;;; calc-help.el --- help display functions for Calc, -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el index 3fdec5a4b06..50d6f16f7bd 100644 --- a/lisp/calc/calc-incom.el +++ b/lisp/calc/calc-incom.el @@ -1,6 +1,7 @@ ;;; calc-incom.el --- complex data type input functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el index ad1e4664661..f3034bdd4b3 100644 --- a/lisp/calc/calc-keypd.el +++ b/lisp/calc/calc-keypd.el @@ -1,6 +1,7 @@ ;;; calc-keypd.el --- mouse-capable keypad input for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el index 67cc5270942..e0099ee4e07 100644 --- a/lisp/calc/calc-lang.el +++ b/lisp/calc/calc-lang.el @@ -1,6 +1,7 @@ ;;; calc-lang.el --- calc language functions -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el index 1004a8f1f56..352ffafe389 100644 --- a/lisp/calc/calc-macs.el +++ b/lisp/calc/calc-macs.el @@ -1,6 +1,7 @@ ;;; calc-macs.el --- important macros for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el index e636dd565fa..da9b91243ae 100644 --- a/lisp/calc/calc-map.el +++ b/lisp/calc/calc-map.el @@ -1,6 +1,7 @@ ;;; calc-map.el --- higher-order functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el index bd939e1669c..53d80350834 100644 --- a/lisp/calc/calc-math.el +++ b/lisp/calc/calc-math.el @@ -1,6 +1,7 @@ ;;; calc-math.el --- mathematical functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el index 643465f8478..e8c0ea4b658 100644 --- a/lisp/calc/calc-misc.el +++ b/lisp/calc/calc-misc.el @@ -1,6 +1,7 @@ ;;; calc-misc.el --- miscellaneous functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004 +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el index e0e2ccbd717..5e627203049 100644 --- a/lisp/calc/calc-mode.el +++ b/lisp/calc/calc-mode.el @@ -1,6 +1,7 @@ ;;; calc-mode.el --- calculator modes for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el index ea79c98252e..0b18927a7f1 100644 --- a/lisp/calc/calc-mtx.el +++ b/lisp/calc/calc-mtx.el @@ -1,6 +1,7 @@ ;;; calc-mtx.el --- matrix functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el index 89d8273d6d6..3dd19b6f67a 100644 --- a/lisp/calc/calc-poly.el +++ b/lisp/calc/calc-poly.el @@ -1,6 +1,7 @@ ;;; calc-poly.el --- polynomial functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el index 8d2fba7fef0..b44d8d256a5 100644 --- a/lisp/calc/calc-prog.el +++ b/lisp/calc/calc-prog.el @@ -1,6 +1,7 @@ ;;; calc-prog.el --- user programmability functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el index 2afb16b7535..5c08bd4baf6 100644 --- a/lisp/calc/calc-rewr.el +++ b/lisp/calc/calc-rewr.el @@ -1,6 +1,7 @@ ;;; calc-rewr.el --- rewriting functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el index 14fb59ce376..a3a07b04563 100644 --- a/lisp/calc/calc-rules.el +++ b/lisp/calc/calc-rules.el @@ -1,6 +1,7 @@ ;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el index 04cb2bee2bd..87767a12244 100644 --- a/lisp/calc/calc-sel.el +++ b/lisp/calc/calc-sel.el @@ -1,7 +1,7 @@ ;;; calc-sel.el --- data selection functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el index c1b8ebc307c..9db057d30d1 100644 --- a/lisp/calc/calc-stat.el +++ b/lisp/calc/calc-stat.el @@ -1,6 +1,7 @@ ;;; calc-stat.el --- statistical functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index 35db6d71019..1410b7d6651 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el @@ -1,6 +1,7 @@ ;;; calc-store.el --- value storage functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el index 0564e39ed57..635dcf95036 100644 --- a/lisp/calc/calc-stuff.el +++ b/lisp/calc/calc-stuff.el @@ -1,6 +1,7 @@ ;;; calc-stuff.el --- miscellaneous functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el index e86117585ff..d5bba8dbb92 100644 --- a/lisp/calc/calc-trail.el +++ b/lisp/calc/calc-trail.el @@ -1,6 +1,7 @@ ;;; calc-trail.el --- functions for manipulating the Calc "trail" -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el index 1837fe071f6..e52ab015f26 100644 --- a/lisp/calc/calc-undo.el +++ b/lisp/calc/calc-undo.el @@ -1,6 +1,7 @@ ;;; calc-undo.el --- undo functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 0983b807fde..7d42fd9ca9a 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el @@ -1,6 +1,7 @@ ;;; calc-units.el --- unit conversion functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> @@ -810,10 +811,10 @@ Entries are (SYMBOL EXPR DOC-STRING TEMP-TYPE BASE-UNITS).") (mapcar 'math-to-standard-rec (cdr expr)))))) (defun math-apply-units (expr units ulist &optional pure) + (setq expr (math-simplify-units expr)) (if ulist (let ((new 0) value) - (setq expr (math-simplify-units expr)) (or (math-numberp expr) (error "Incompatible units")) (while (cdr ulist) @@ -826,9 +827,9 @@ Entries are (SYMBOL EXPR DOC-STRING TEMP-TYPE BASE-UNITS).") ulist (cdr ulist))) (math-add new (math-mul (math-div expr (nth 1 (car ulist))) (car (car ulist))))) - (math-simplify-units (if pure - expr - (list '* expr units))))) + (if pure + expr + (math-simplify-units (list '* expr units))))) (defvar math-decompose-units-cache nil) (defun math-decompose-units (units) diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el index 1153eabed57..a830887a652 100644 --- a/lisp/calc/calc-vec.el +++ b/lisp/calc/calc-vec.el @@ -1,6 +1,7 @@ ;;; calc-vec.el --- vector functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el index 1544e8956c1..628b1fef1c0 100644 --- a/lisp/calc/calc-yank.el +++ b/lisp/calc/calc-yank.el @@ -1,6 +1,7 @@ ;;; calc-yank.el --- kill-ring functionality for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 7317c2a7b9a..c53e7971956 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -1,12 +1,12 @@ ;;; calc.el --- the GNU Emacs calculator -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> ;; Keywords: convenience, extensions -;; Version: 2.02g +;; Version: 2.1 ;; This file is part of GNU Emacs. @@ -241,6 +241,23 @@ :group 'calc :type '(regexp)) +(defcustom calc-embedded-announce-formula-alist + '((c++-mode . "//Embed\n\\(// .*\n\\)*") + (c-mode . "/\\*Embed\\*/\n\\(/\\* .*\\*/\n\\)*") + (f90-mode . "!Embed\n\\(! .*\n\\)*") + (fortran-mode . "C Embed\n\\(C .*\n\\)*") + (html-helper-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (html-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (nroff-mode . "\\\\\"Embed\n\\(\\\\\" .*\n\\)*") + (pascal-mode . "{Embed}\n\\({.*}\n\\)*") + (sgml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (xml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (texinfo-mode . "@c Embed\n\\(@c .*\n\\)*")) + "*Alist of major modes with appropriate values for `calc-embedded-announce-formula'." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (regexp :tag "Regexp to announce formula"))) + (defcustom calc-embedded-open-formula "\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin[^{].*\n\\|^\\\\begin{.*[^x]}.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n" "*A regular expression for the opening delimiter of a formula used by calc-embedded." @@ -253,6 +270,14 @@ :group 'calc :type '(regexp)) +(defcustom calc-embedded-open-close-formula-alist + nil + "*Alist of major modes with pairs of formula delimiters used by calc-embedded." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (list (regexp :tag "Opening formula delimiter") + (regexp :tag "Closing formula delimiter")))) + (defcustom calc-embedded-open-word "^\\|[^-+0-9.eE]" "*A regular expression for the opening delimiter of a formula used by calc-embedded-word." @@ -265,6 +290,14 @@ :group 'calc :type '(regexp)) +(defcustom calc-embedded-open-close-word-alist + nil + "*Alist of major modes with pairs of word delimiters used by calc-embedded." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (list (regexp :tag "Opening word delimiter") + (regexp :tag "Closing word delimiter")))) + (defcustom calc-embedded-open-plain "%%% " "*A string which is the opening delimiter for a \"plain\" formula. @@ -280,6 +313,24 @@ See calc-embedded-open-plain." :group 'calc :type '(string)) +(defcustom calc-embedded-open-close-plain-alist + '((c++-mode "// %% " " %%\n") + (c-mode "/* %% " " %% */\n") + (f90-mode "! %% " " %%\n") + (fortran-mode "C %% " " %%\n") + (html-helper-mode "<!-- %% " " %% -->\n") + (html-mode "<!-- %% " " %% -->\n") + (nroff-mode "\\\" %% " " %%\n") + (pascal-mode "{%% " " %%}\n") + (sgml-mode "<!-- %% " " %% -->\n") + (xml-mode "<!-- %% " " %% -->\n") + (texinfo-mode "@c %% " " %%\n")) + "*Alist of major modes with pairs of delimiters for \"plain\" formulas." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (list (string :tag "Opening \"plain\" delimiter") + (string :tag "Closing \"plain\" delimiter")))) + (defcustom calc-embedded-open-new-formula "\n\n" "*A string which is inserted at front of formula by calc-embedded-new-formula." @@ -292,6 +343,14 @@ See calc-embedded-open-plain." :group 'calc :type '(string)) +(defcustom calc-embedded-open-close-new-formula-alist + nil + "*Alist of major modes with pairs of new formula delimiters used by calc-embedded." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (list (string :tag "Opening new formula delimiter") + (string :tag "Closing new formula delimiter")))) + (defcustom calc-embedded-open-mode "% " "*A string which should precede calc-embedded mode annotations. @@ -306,6 +365,24 @@ This is not required to be present for user-written mode annotations." :group 'calc :type '(string)) +(defcustom calc-embedded-open-close-mode-alist + '((c++-mode "// " "\n") + (c-mode "/* " " */\n") + (f90-mode "! " "\n") + (fortran-mode "C " "\n") + (html-helper-mode "<!-- " " -->\n") + (html-mode "<!-- " " -->\n") + (nroff-mode "\\\" " "\n") + (pascal-mode "{ " " }\n") + (sgml-mode "<!-- " " -->\n") + (xml-mode "<!-- " " -->\n") + (texinfo-mode "@c " "\n")) + "*Alist of major modes with pairs of strings to delimit annotations." + :group 'calc + :type '(alist :key-type (symbol :tag "Major mode") + :value-type (list (string :tag "Opening annotation delimiter") + (string :tag "Closing annotation delimiter")))) + (defcustom calc-gnuplot-name "gnuplot" "*Name of GNUPLOT program, for calc-graph features." @@ -726,6 +803,15 @@ If nil, selections displayed but ignored.") (defvar calc-trail-window-hook nil "Hook called to create the Calc trail window.") +(defvar calc-embedded-new-buffer-hook nil + "Hook run when starting embedded mode in a new buffer.") + +(defvar calc-embedded-new-formula-hook nil + "Hook run when starting embedded mode in a new formula.") + +(defvar calc-embedded-mode-hook nil + "Hook run when starting embedded mode.") + ;; Verify that Calc is running on the right kind of system. (defvar calc-emacs-type-lucid (not (not (string-match "Lucid" emacs-version)))) diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index d139dcf28ba..a534e4fd459 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el @@ -1,6 +1,7 @@ ;;; calcalg2.el --- more algebraic functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el index 3fff729a012..0aef3ba55af 100644 --- a/lisp/calc/calcalg3.el +++ b/lisp/calc/calcalg3.el @@ -1,6 +1,7 @@ ;;; calcalg3.el --- more algebraic functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el index 70ceb01da64..aab079ed739 100644 --- a/lisp/calc/calccomp.el +++ b/lisp/calc/calccomp.el @@ -1,6 +1,7 @@ ;;; calccomp.el --- composition functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el index 2a322b8b74b..6734065a701 100644 --- a/lisp/calc/calcsel2.el +++ b/lisp/calc/calcsel2.el @@ -1,6 +1,7 @@ ;;; calcsel2.el --- selection functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <belanger@truman.edu> diff --git a/lisp/calculator.el b/lisp/calculator.el index 923d4022098..b9ba03f657f 100644 --- a/lisp/calculator.el +++ b/lisp/calculator.el @@ -1,10 +1,11 @@ ;;; calculator.el --- a [not so] simple calculator for Emacs -;; Copyright (C) 1998, 2000, 2001 by Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eli Barzilay <eli@barzilay.org> ;; Keywords: tools, convenience -;; Time-stamp: <26 May 2005, 14:32:34, Lute Kamstra, pijl> +;; Time-stamp: <2005-07-18 17:45:34 juri> ;; This file is part of GNU Emacs. @@ -1277,12 +1278,6 @@ arguments." (if Dbound (fset 'D Dsave) (fmakunbound 'D))))) (error 0))) -(eval-when-compile ; silence the compiler - (or (fboundp 'event-key) - (defun event-key (&rest _) nil)) - (or (fboundp 'key-press-event-p) - (defun key-press-event-p (&rest _) nil))) - ;;;--------------------------------------------------------------------- ;;; Input interaction @@ -1301,8 +1296,9 @@ Optional string argument KEYS will force using it as the keys entered." (setq k (aref inp i)) ;; if Emacs will someday have a event-key, then this would ;; probably be modified anyway - (and (fboundp 'event-key) (key-press-event-p k) - (event-key k) (setq k (event-key k))) + (and (if (fboundp 'key-press-event-p) (key-press-event-p k)) + (if (fboundp 'event-key) + (and (event-key k) (setq k (event-key k))))) ;; assume all symbols are translatable with an ascii-character (and (symbolp k) (setq k (or (get k 'ascii-character) ? ))) @@ -1599,7 +1595,7 @@ Optional string argument KEYS will force using it as the keys entered." (calculator-displayers (if calculator-copy-displayer nil calculator-displayers))) (calculator-enter) - ;; remove trailing spaces and and an index + ;; remove trailing spaces and an index (let ((s (cdr calculator-stack-display))) (and s (if (string-match "^\\([^ ]+\\) *\\(\\[[0-9/]+\\]\\)? *$" s) diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el index 6bf84d11951..dd06ca6b9ef 100644 --- a/lisp/calendar/cal-bahai.el +++ b/lisp/calendar/cal-bahai.el @@ -54,6 +54,12 @@ ;;; Code: +(defvar date) +(defvar displayed-month) +(defvar displayed-year) +(defvar number) +(defvar original-date) + (require 'cal-julian) (defvar bahai-calendar-month-name-array @@ -215,7 +221,7 @@ calendar. This function is provided for use with the (mark (regexp-quote diary-nonmarking-symbol))) (calendar-for-loop i from 1 to number do (let* ((d diary-date-forms) - (bdate (calendar-bahai-from-absolute + (bdate (calendar-bahai-from-absolute (calendar-absolute-from-gregorian gdate))) (month (extract-calendar-month bdate)) (day (extract-calendar-day bdate)) @@ -460,7 +466,7 @@ Prefix arg will make the entry nonmarking." (make-diary-entry (concat bahai-diary-entry-symbol - (calendar-date-string + (calendar-date-string (calendar-bahai-from-absolute (calendar-absolute-from-gregorian (calendar-cursor-to-date t))) @@ -478,7 +484,7 @@ Prefix arg will make the entry nonmarking." (make-diary-entry (concat bahai-diary-entry-symbol - (calendar-date-string + (calendar-date-string (calendar-bahai-from-absolute (calendar-absolute-from-gregorian (calendar-cursor-to-date t))))) @@ -497,7 +503,7 @@ Prefix arg will make the entry nonmarking." (make-diary-entry (concat bahai-diary-entry-symbol - (calendar-date-string + (calendar-date-string (calendar-bahai-from-absolute (calendar-absolute-from-gregorian (calendar-cursor-to-date t))))) diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el index 79beef836be..24d9c4f161b 100644 --- a/lisp/calendar/cal-china.el +++ b/lisp/calendar/cal-china.el @@ -49,6 +49,7 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el index 65a633b5d5c..14b3c65796f 100644 --- a/lisp/calendar/cal-coptic.el +++ b/lisp/calendar/cal-coptic.el @@ -40,6 +40,8 @@ ;;; Code: +(defvar date) + (require 'cal-julian) (defvar coptic-calendar-month-name-array diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el index bdb4d971bbf..7bab001a0bb 100644 --- a/lisp/calendar/cal-french.el +++ b/lisp/calendar/cal-french.el @@ -43,6 +43,8 @@ ;;; Code: +(defvar date) + (require 'calendar) (defun french-calendar-accents () diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index 168476b01c3..9805a00cc7a 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el @@ -41,8 +41,12 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) +(defvar entry) +(defvar number) +(defvar original-date) (require 'calendar) diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el index c52d26c0de6..9cdcba6a370 100644 --- a/lisp/calendar/cal-islam.el +++ b/lisp/calendar/cal-islam.el @@ -40,8 +40,11 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) +(defvar number) +(defvar original-date) (require 'cal-julian) diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el index 021ea6d60ee..b32bd4eb2df 100644 --- a/lisp/calendar/cal-iso.el +++ b/lisp/calendar/cal-iso.el @@ -41,6 +41,8 @@ ;;; Code: +(defvar date) + (require 'calendar) (defun calendar-absolute-from-iso (date) diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el index bff0d0e066d..48fe8725b06 100644 --- a/lisp/calendar/cal-julian.el +++ b/lisp/calendar/cal-julian.el @@ -40,6 +40,7 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el index 0c491b4c296..da411c14984 100644 --- a/lisp/calendar/cal-mayan.el +++ b/lisp/calendar/cal-mayan.el @@ -53,6 +53,8 @@ ;;; Code: +(defvar date) + (require 'calendar) (defconst calendar-mayan-days-before-absolute-zero 1137142 diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index dabb933785f..0291c41c1c6 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el @@ -38,8 +38,10 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) +(defvar event) (eval-when-compile (require 'calendar)) (require 'easymenu) diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el index 85e79327dcc..b92f8c29b8c 100644 --- a/lisp/calendar/cal-persia.el +++ b/lisp/calendar/cal-persia.el @@ -40,6 +40,8 @@ ;;; Code: +(defvar date) + (require 'cal-julian) (defvar persian-calendar-month-name-array diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 8fe92fc0810..3e075b9d6bd 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -1818,7 +1818,7 @@ Driven by the variable `calendar-date-display-form'.") t) (autoload 'calendar-goto-hebrew-date "cal-hebrew" - "Move cursor to Hebrew date date." + "Move cursor to Hebrew date." t) (autoload 'calendar-print-hebrew-date "cal-hebrew" @@ -1830,7 +1830,7 @@ Driven by the variable `calendar-date-display-form'.") t) (autoload 'calendar-goto-coptic-date "cal-coptic" - "Move cursor to Coptic date date." + "Move cursor to Coptic date." t) (autoload 'calendar-print-coptic-date "cal-coptic" @@ -1842,7 +1842,7 @@ Driven by the variable `calendar-date-display-form'.") t) (autoload 'calendar-goto-ethiopic-date "cal-coptic" - "Move cursor to Ethiopic date date." + "Move cursor to Ethiopic date." t) (autoload 'calendar-print-ethiopic-date "cal-coptic" @@ -1854,7 +1854,7 @@ Driven by the variable `calendar-date-display-form'.") t) (autoload 'calendar-goto-persian-date "cal-persia" - "Move cursor to Persian date date." + "Move cursor to Persian date." t) (autoload 'calendar-print-persian-date "cal-persia" @@ -2205,9 +2205,11 @@ movement commands will not work correctly." calendar-mode-map global-map) (setq l (cdr l)))) (define-key calendar-mode-map "-" 'negative-argument) + (define-key calendar-mode-map ">" 'scroll-calendar-right) (define-key calendar-mode-map "\C-x>" 'scroll-calendar-right) (define-key calendar-mode-map [prior] 'scroll-calendar-right-three-months) (define-key calendar-mode-map "\ev" 'scroll-calendar-right-three-months) + (define-key calendar-mode-map "<" 'scroll-calendar-left) (define-key calendar-mode-map "\C-x<" 'scroll-calendar-left) (define-key calendar-mode-map [next] 'scroll-calendar-left-three-months) (define-key calendar-mode-map "\C-v" 'scroll-calendar-left-three-months) diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 8b14061a95b..1501131c2ae 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -1650,6 +1650,12 @@ marked on the calendar." (or (diary-remind sexp (car days) marking) (diary-remind sexp (cdr days) marking)))))) +(defvar diary-modify-entry-list-string-function nil + "Function applied to entry string before putting it into the entries list. +Can be used by programs integrating a diary list into other buffers (e.g. +org.el and planner.el) to modify the string or add properties to it. +The function takes a string argument and must return a string.") + (defun add-to-diary-list (date string specifier &optional marker globcolor) "Add the entry (DATE STRING SPECIFIER MARKER GLOBCOLOR) to `diary-entries-list'. Do nothing if DATE or STRING is nil." @@ -1659,6 +1665,9 @@ Do nothing if DATE or STRING is nil." (buffer-file-name)))) (or (string= prefix "") (setq string (format "[%s] %s" prefix string))))) + (and diary-modify-entry-list-string-function + (setq string (funcall diary-modify-entry-list-string-function + string))) (setq diary-entries-list (append diary-entries-list (list (list date string specifier marker globcolor)))))) diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index aa33ac598e1..7e9e44210ef 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -189,7 +189,8 @@ buffer." (save-current-buffer (set-buffer unfolded-buffer) (erase-buffer) - (insert-buffer folded-ical-buffer) + (insert-buffer-substring folded-ical-buffer) + (goto-char (point-min)) (while (re-search-forward "\r?\n[ \t]" nil t) (replace-match "" nil nil))) unfolded-buffer)) diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index c611cf2ac29..d4d5cf23157 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el @@ -49,6 +49,7 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index fde19650d87..ea027a50ca6 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el @@ -60,6 +60,7 @@ ;;; Code: +(defvar date) (defvar displayed-month) (defvar displayed-year) diff --git a/lisp/case-table.el b/lisp/case-table.el index 31c26949281..4dfdd0538fb 100644 --- a/lisp/case-table.el +++ b/lisp/case-table.el @@ -1,6 +1,7 @@ ;;; case-table.el --- code to extend the character set and support case tables -;; Copyright (C) 1988, 1994, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/cdl.el b/lisp/cdl.el index 68111eda53e..abd339de9b8 100644 --- a/lisp/cdl.el +++ b/lisp/cdl.el @@ -1,6 +1,6 @@ ;;; cdl.el --- Common Data Language (CDL) utility functions for GNU Emacs -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: ATAE@spva.physics.imperial.ac.uk (Ata Etemadi) ;; Maintainer: FSF diff --git a/lisp/chistory.el b/lisp/chistory.el index 1704e7a4a1e..c05fd849db4 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el @@ -1,6 +1,6 @@ ;;; chistory.el --- list command history -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el index 102347f345a..82d39fd2c00 100644 --- a/lisp/cmuscheme.el +++ b/lisp/cmuscheme.el @@ -1,6 +1,7 @@ ;;; cmuscheme.el --- Scheme process in a buffer. Adapted from tea.el -;; Copyright (C) 1988, 1994, 1997, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Olin Shivers <olin.shivers@cs.cmu.edu> ;; Maintainer: FSF @@ -25,7 +26,7 @@ ;;; Commentary: -;; This is a customisation of comint-mode (see comint.el) +;; This is a customization of comint-mode (see comint.el) ;; ;; Written by Olin Shivers (olin.shivers@cs.cmu.edu). With bits and pieces ;; lifted from scheme.el, shell.el, clisp.el, newclisp.el, cobol.el, et al.. @@ -105,7 +106,7 @@ ;;;============================================================================ (defcustom inferior-scheme-mode-hook nil - "*Hook for customising inferior-scheme mode." + "*Hook for customizing inferior-scheme mode." :type 'hook :group 'cmuscheme) @@ -127,6 +128,8 @@ (define-key scheme-mode-map "\C-c\M-r" 'scheme-send-region-and-go) (define-key scheme-mode-map "\C-c\M-c" 'scheme-compile-definition) (define-key scheme-mode-map "\C-c\C-c" 'scheme-compile-definition-and-go) +(define-key scheme-mode-map "\C-c\C-t" 'scheme-trace-procedure) +(define-key scheme-mode-map "\C-c\C-x" 'scheme-expand-current-form) (define-key scheme-mode-map "\C-c\C-z" 'switch-to-scheme) (define-key scheme-mode-map "\C-c\C-l" 'scheme-load-file) (define-key scheme-mode-map "\C-c\C-k" 'scheme-compile-file) ;k for "kompile" @@ -143,6 +146,10 @@ '("Compile Definition & Go" . scheme-compile-definition-and-go)) (define-key map [com-def] '("Compile Definition" . scheme-compile-definition)) + (define-key map [exp-form] + '("Expand current form" . scheme-expand-current-form)) + (define-key map [trace-proc] + '("Trace procedure" . scheme-trace-procedure)) (define-key map [send-def-go] '("Evaluate Last Definition & Go" . scheme-send-definition-and-go)) (define-key map [send-def] @@ -153,7 +160,7 @@ '("Evaluate Region" . scheme-send-region)) (define-key map [send-sexp] '("Evaluate Last S-expression" . scheme-send-last-sexp)) -) + ) (defvar scheme-buffer) @@ -165,7 +172,7 @@ The following commands are available: A Scheme process can be fired up with M-x run-scheme. -Customisation: Entry to this mode runs the hooks on comint-mode-hook and +Customization: Entry to this mode runs the hooks on comint-mode-hook and inferior-scheme-mode-hook (in that order). You can send text to the inferior Scheme process from other buffers containing @@ -194,7 +201,7 @@ C-M-q does Tab on each line starting within following expression. Paragraphs are separated only by blank lines. Semicolons start comments. If you accidentally suspend your process, use \\[comint-continue-subjob] to continue it." - ;; Customise in inferior-scheme-mode-hook + ;; Customize in inferior-scheme-mode-hook (setq comint-prompt-regexp "^[^>\n]*>+ *") ; OK for cscheme, oaklisp, T,... (scheme-mode-variables) (setq mode-line-process '(":%s")) @@ -233,11 +240,15 @@ Defaults to a regexp ignoring all inputs of 0, 1, or 2 letters." ;;;###autoload (defun run-scheme (cmd) - "Run an inferior Scheme process, input and output via buffer *scheme*. + "Run an inferior Scheme process, input and output via buffer `*scheme*'. If there is a process already running in `*scheme*', switch to that buffer. With argument, allows you to edit the command line (default is value -of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook' -\(after the `comint-mode-hook' is run). +of `scheme-program-name'). +If a file `~/.emacs_SCHEMENAME' exists, it is given as initial input. +Note that this may lose due to a timing error if the Scheme processor +discards input when it starts up. +Runs the hook `inferior-scheme-mode-hook' \(after the `comint-mode-hook' +is run). \(Type \\[describe-mode] in the process buffer for a list of commands.)" (interactive (list (if current-prefix-arg @@ -246,13 +257,24 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook' (if (not (comint-check-proc "*scheme*")) (let ((cmdlist (scheme-args-to-list cmd))) (set-buffer (apply 'make-comint "scheme" (car cmdlist) - nil (cdr cmdlist))) + (scheme-start-file (car cmdlist)) (cdr cmdlist))) (inferior-scheme-mode))) (setq scheme-program-name cmd) (setq scheme-buffer "*scheme*") (pop-to-buffer "*scheme*")) ;;;###autoload (add-hook 'same-window-buffer-names "*scheme*") +(defun scheme-start-file (prog) + "Return the name of the start file corresponding to PROG. +Search in the directories \"~\" and \"~/.emacs.d\", in this +order. Return nil if no start file found." + (let* ((name (concat ".emacs_" (file-name-nondirectory prog))) + (start-file (concat "~/" name))) + (if (file-exists-p start-file) + start-file + (let ((start-file (concat "~/.emacs.d/" name))) + (and (file-exists-p start-file) start-file))))) + (defun scheme-send-region (start end) "Send the current region to the inferior Scheme process." (interactive "r") @@ -296,16 +318,80 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook' (beginning-of-defun) (scheme-compile-region (point) end)))) +(defcustom scheme-trace-command "(trace %s)" + "*Template for issuing commands to trace a Scheme procedure. +Some Scheme implementations might require more elaborate commands here. +For PLT-Scheme, e.g., one should use + + (setq scheme-trace-command \"(begin (require (lib \\\"trace.ss\\\")) (trace %s))\") + +For Scheme 48 and Scsh use \",trace %s\"." + :type 'string + :group 'cmuscheme) + +(defcustom scheme-untrace-command "(untrace %s)" + "*Template for switching off tracing of a Scheme procedure. +Scheme 48 and Scsh users should set this variable to \",untrace %s\"." + + :type 'string + :group 'cmuscheme) + +(defun scheme-trace-procedure (proc &optional untrace) + "Trace procedure PROC in the inferior Scheme process. +With a prefix argument switch off tracing of procedure PROC." + (interactive + (list (let ((current (symbol-at-point)) + (action (if current-prefix-arg "Untrace" "Trace"))) + (if current + (read-string (format "%s procedure [%s]: " action current) nil nil (symbol-name current)) + (read-string (format "%s procedure: " action)))) + current-prefix-arg)) + (when (= (length proc) 0) + (error "Invalid procedure name")) + (comint-send-string (scheme-proc) + (format + (if untrace scheme-untrace-command scheme-trace-command) + proc)) + (comint-send-string (scheme-proc) "\n")) + +(defcustom scheme-macro-expand-command "(expand %s)" + "*Template for macro-expanding a Scheme form. +For Scheme 48 and Scsh use \",expand %s\"." + :type 'string + :group 'cmuscheme) + +(defun scheme-expand-current-form () + "Macro-expand the form at point in the inferior Scheme process." + (interactive) + (let ((current-form (scheme-form-at-point))) + (if current-form + (progn + (comint-send-string (scheme-proc) + (format + scheme-macro-expand-command + current-form)) + (comint-send-string (scheme-proc) "\n")) + (error "Not at a form")))) + +(defun scheme-form-at-point () + (let ((next-sexp (thing-at-point 'sexp))) + (if (and next-sexp (string-equal (substring next-sexp 0 1) "(")) + next-sexp + (save-excursion + (backward-up-list) + (scheme-form-at-point))))) + (defun switch-to-scheme (eob-p) "Switch to the scheme process buffer. With argument, position cursor at end of buffer." (interactive "P") - (if (get-buffer scheme-buffer) + (if (or (and scheme-buffer (get-buffer scheme-buffer)) + (scheme-interactively-start-process)) (pop-to-buffer scheme-buffer) - (error "No current process buffer. See variable `scheme-buffer'")) - (cond (eob-p - (push-mark) - (goto-char (point-max))))) + (error "No current process buffer. See variable `scheme-buffer'")) + (when eob-p + (push-mark) + (goto-char (point-max)))) (defun scheme-send-region-and-go (start end) "Send the current region to the inferior Scheme process. @@ -346,8 +432,8 @@ Used by these commands to determine defaults." (defvar scheme-prev-l/c-dir/file nil "Caches the last (directory . file) pair. Caches the last pair used in the last `scheme-load-file' or -`scheme-compile-file' command. Used for determining the default in the -next one.") +`scheme-compile-file' command. Used for determining the default +in the next one.") (defun scheme-load-file (file-name) "Load a Scheme file FILE-NAME into the inferior Scheme process." @@ -417,15 +503,29 @@ for running inferior Lisp and Scheme processes. The approach taken here is for a minimal, simple implementation. Feel free to extend it.") (defun scheme-proc () - "Return the current scheme process. See variable `scheme-buffer'." - (let ((proc (get-buffer-process (if (eq major-mode 'inferior-scheme-mode) - (current-buffer) - scheme-buffer)))) - (or proc - (error "No current process. See variable `scheme-buffer'")))) - - -;;; Do the user's customisation... + "Return the current Scheme process, starting one if necessary. +See variable `scheme-buffer'." + (unless (and scheme-buffer + (get-buffer scheme-buffer) + (comint-check-proc scheme-buffer)) + (scheme-interactively-start-process)) + (or (scheme-get-process) + (error "No current process. See variable `scheme-buffer'"))) + +(defun scheme-get-process () + "Return the current Scheme process or nil if none is running." + (get-buffer-process (if (eq major-mode 'inferior-scheme-mode) + (current-buffer) + scheme-buffer))) + +(defun scheme-interactively-start-process (&optional cmd) + "Start an inferior Scheme process. Return the process started. +Since this command is run implicitly, always ask the user for the +command to run." + (save-window-excursion + (run-scheme (read-string "Run Scheme: " scheme-program-name)))) + +;;; Do the user's customization... (defcustom cmuscheme-load-hook nil "This hook is run when cmuscheme is loaded in. diff --git a/lisp/comint.el b/lisp/comint.el index 188af8a3b0b..0977663808a 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -1,7 +1,7 @@ ;;; comint.el --- general command interpreter in a window stuff ;; Copyright (C) 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Simon Marshall <simon@gnu.org> @@ -411,17 +411,15 @@ See `comint-send-input'." "*If non-nil, use `comint-prompt-regexp' to recognize prompts. If nil, then program output and user-input are given different `field' properties, which Emacs commands can use to distinguish them (in -particular, common movement commands such as begining-of-line respect -field boundaries in a natural way)." +particular, common movement commands such as `beginning-of-line' +respect field boundaries in a natural way)." :type 'boolean :group 'comint) ;; Autoload is necessary for Custom to recognize old alias. ;;;###autoload -(defvaralias 'comint-use-prompt-regexp-instead-of-fields - 'comint-use-prompt-regexp) -(make-obsolete-variable 'comint-use-prompt-regexp-instead-of-fields - 'comint-use-prompt-regexp "22.1") +(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields + 'comint-use-prompt-regexp "22.1") (defcustom comint-mode-hook nil "Hook run upon entry to `comint-mode'. @@ -1079,14 +1077,14 @@ Moves relative to START, or `comint-input-ring-index'." (if (string-match regexp (ring-ref comint-input-ring n)) n))) -(defun comint-previous-matching-input (regexp arg) +(defun comint-previous-matching-input (regexp n) "Search backwards through input history for match for REGEXP. \(Previous history elements are earlier commands.) With prefix argument N, search for Nth previous match. If N is negative, find the next or Nth next match." (interactive (comint-regexp-arg "Previous input matching (regexp): ")) - (setq arg (comint-search-arg arg)) - (let ((pos (comint-previous-matching-input-string-position regexp arg))) + (setq n (comint-search-arg n)) + (let ((pos (comint-previous-matching-input-string-position regexp n))) ;; Has a match been found? (if (null pos) (error "Not found") @@ -1099,15 +1097,15 @@ If N is negative, find the next or Nth next match." (point)) (insert (ring-ref comint-input-ring pos))))) -(defun comint-next-matching-input (regexp arg) +(defun comint-next-matching-input (regexp n) "Search forwards through input history for match for REGEXP. \(Later history elements are more recent commands.) With prefix argument N, search for Nth following match. If N is negative, find the previous or Nth previous match." (interactive (comint-regexp-arg "Next input matching (regexp): ")) - (comint-previous-matching-input regexp (- arg))) + (comint-previous-matching-input regexp (- n))) -(defun comint-previous-matching-input-from-input (arg) +(defun comint-previous-matching-input-from-input (n) "Search backwards through input history for match for current input. \(Previous history elements are earlier commands.) With prefix argument N, search for Nth previous match. @@ -1124,15 +1122,15 @@ If N is negative, search forwards for the -Nth following match." comint-input-ring-index nil)) (comint-previous-matching-input (concat "^" (regexp-quote comint-matching-input-from-input-string)) - arg)) + n)) -(defun comint-next-matching-input-from-input (arg) +(defun comint-next-matching-input-from-input (n) "Search forwards through input history for match for current input. \(Following history elements are more recent commands.) With prefix argument N, search for Nth following match. If N is negative, search backwards for the -Nth previous match." (interactive "p") - (comint-previous-matching-input-from-input (- arg))) + (comint-previous-matching-input-from-input (- n))) (defun comint-replace-by-expanded-history (&optional silent start) @@ -1434,14 +1432,14 @@ If the interpreter is the csh, return the current line with any initial string matching the regexp `comint-prompt-regexp' removed. `comint-input-filter-functions' monitors input for \"cd\", \"pushd\", and - \"popd\" commands. When it sees one, it cd's the buffer. - comint-input-filter is the default: returns t if the input isn't all white + \"popd\" commands. When it sees one, it cd's the buffer. + `comint-input-filter' is the default: returns t if the input isn't all white space. If the Comint is Lucid Common Lisp, - comint-get-old-input snarfs the sexp ending at point. - comint-input-filter-functions does nothing. - comint-input-filter returns nil if the input matches input-filter-regexp, + `comint-get-old-input' snarfs the sexp ending at point. + `comint-input-filter-functions' does nothing. + `comint-input-filter' returns nil if the input matches input-filter-regexp, which matches (1) all whitespace (2) :a, :c, etc. Similarly for Soar, Scheme, etc." @@ -1818,7 +1816,7 @@ This function should be in the list `comint-output-filter-functions'." (= (point) (point-max))) (save-excursion (goto-char (point-max)) - (recenter -1))) + (recenter (- -1 scroll-margin)))) (select-window selected))))) nil t)) (set-buffer current)))) @@ -1852,7 +1850,7 @@ This function could be on `comint-output-filter-functions' or bound to a key." "Put the end of the buffer at the bottom of the window." (interactive) (goto-char (point-max)) - (recenter -1)) + (recenter (- -1 scroll-margin))) (defun comint-get-old-input-default () "Default for `comint-get-old-input'. @@ -1937,15 +1935,21 @@ The string is sent using `comint-input-sender'. Security bug: your string can still be temporarily recovered with \\[view-lossage]; `clear-this-command-keys' can fix that." (interactive "P") ; Defeat snooping via C-x ESC ESC - (let ((proc (get-buffer-process (current-buffer)))) + (let ((proc (get-buffer-process (current-buffer))) + (prefix + (if (eq (window-buffer (selected-window)) (current-buffer)) + "" + (format "(In buffer %s) " + (current-buffer))))) (if proc - (let ((str (read-passwd (or prompt "Non-echoed text: ")))) + (let ((str (read-passwd (concat prefix + (or prompt "Non-echoed text: "))))) (if (stringp str) (progn (comint-snapshot-last-prompt) (funcall comint-input-sender proc str)) (message "Warning: text will be echoed"))) - (error "Current buffer has no process")))) + (error "Buffer %s has no process" (current-buffer))))) (defun comint-watch-for-password-prompt (string) "Prompt in the minibuffer for password and send without echoing. @@ -2002,8 +2006,8 @@ Does not delete the prompt." (delete-region pmark (point)))) ;; Output message and put back prompt (comint-output-filter proc replacement))) -(defalias 'comint-kill-output 'comint-delete-output) -(make-obsolete 'comint-kill-output 'comint-delete-output "21.1") +(define-obsolete-function-alias 'comint-kill-output + 'comint-delete-output "21.1") (defun comint-write-output (filename &optional append mustbenew) "Write output from interpreter since last input to FILENAME. @@ -2169,7 +2173,7 @@ If N is negative, find the next or Nth next match." (goto-char pos)))) -(defun comint-forward-matching-input (regexp arg) +(defun comint-forward-matching-input (regexp n) "Search forward through buffer for input fields that match REGEXP. If `comint-use-prompt-regexp' is non-nil, then input fields are identified by lines that match `comint-prompt-regexp'. @@ -2177,7 +2181,7 @@ by lines that match `comint-prompt-regexp'. With prefix argument N, search for Nth following match. If N is negative, find the previous or Nth previous match." (interactive (comint-regexp-arg "Forward input matching (regexp): ")) - (comint-backward-matching-input regexp (- arg))) + (comint-backward-matching-input regexp (- n))) (defun comint-next-prompt (n) @@ -2388,7 +2392,7 @@ updated using `comint-update-fence', if necessary." (defun comint-source-default (previous-dir/file source-modes) "Compute the defaults for `load-file' and `compile-file' commands. -PREVIOUS-DIR/FILE is a pair (directory . filename) from the last +PREVIOUS-DIR/FILE is a pair (DIRECTORY . FILENAME) from the last source-file processing command, or nil if there hasn't been one yet. SOURCE-MODES is a list used to determine what buffers contain source files: if the major mode of the buffer is in SOURCE-MODES, it's source. @@ -2409,7 +2413,7 @@ processing command (i.e., PREVIOUS-DIR/FILE). If this is the first time the command has been run (PREVIOUS-DIR/FILE is nil), the default directory is the cwd, with no default file. (\"no default file\" = nil) -SOURCE-REGEXP is typically going to be something like (tea-mode) +SOURCE-MODES is typically going to be something like (tea-mode) for T programs, (lisp-mode) for Lisp programs, (soar-mode lisp-mode) for Soar programs, etc. @@ -2440,7 +2444,7 @@ the load or compile." (set-buffer old-buffer))))) (defun comint-extract-string () - "Return string around POINT, or nil." + "Return string around point, or nil." (let ((syntax (syntax-ppss))) (when (nth 3 syntax) (condition-case () @@ -2460,7 +2464,7 @@ See `comint-source-default' for more on determining defaults. PROMPT is the prompt string. PREV-DIR/FILE is the (DIRECTORY . FILE) pair from the last source processing command. SOURCE-MODES is a list of major modes used to determine what file buffers contain source files. (These -two arguments are used for determining defaults). If MUSTMATCH-P is true, +two arguments are used for determining defaults.) If MUSTMATCH-P is true, then the filename reader will only accept a file that exists. A typical use: @@ -2587,6 +2591,7 @@ Note that this applies to `comint-dynamic-complete-filename' only." :type '(repeat (string :tag "Suffix")) :group 'comint-completion) +;;;###autoload (defvar comint-file-name-prefix "" "Prefix prepended to absolute file names taken from process input. This is used by Comint's and shell's completion functions, and by shell's @@ -2618,8 +2623,7 @@ This is a good thing to set in mode hooks.") (defun comint-word (word-chars) "Return the word of WORD-CHARS at point, or nil if none is found. Word constituents are considered to be those in WORD-CHARS, which is like the -inside of a \"[...]\" (see `skip-chars-forward'), -plus all non-ASCII characters." +inside of a \"[...]\" (see `skip-chars-forward'), plus all non-ASCII characters." (save-excursion (let ((here (point)) giveup) diff --git a/lisp/compare-w.el b/lisp/compare-w.el index e0a6d5cf732..3fda5f5de76 100644 --- a/lisp/compare-w.el +++ b/lisp/compare-w.el @@ -1,6 +1,7 @@ ;;; compare-w.el --- compare text between windows for Emacs -;; Copyright (C) 1986,1989,1993,1997,2003,2004,2005 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1989, 1993, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience files @@ -56,7 +57,8 @@ whitespace is considered to match, and is skipped." (defcustom compare-ignore-whitespace nil "*Non-nil means `compare-windows' ignores whitespace." :type 'boolean - :group 'compare-w) + :group 'compare-w + :version "22.1") (defcustom compare-ignore-case nil "*Non-nil means `compare-windows' ignores case differences." @@ -88,7 +90,8 @@ be made buffer-local. If the value of this variable is `nil', then function `ding' is called to beep or flash the screen when points are mismatched." :type '(choice regexp function) - :group 'compare-w) + :group 'compare-w + :version "22.1") (defcustom compare-windows-sync-string-size 32 "*Size of string from one window that is searched in second window. @@ -99,7 +102,8 @@ difference regions more coarse-grained. The default value 32 is good for the most cases." :type 'integer - :group 'compare-w) + :group 'compare-w + :version "22.1") (defcustom compare-windows-recenter nil "*List of two values, each of which is used as argument of @@ -109,25 +113,20 @@ matching points side-by-side. The value `(-1 0)' is useful if windows are split vertically, and the value `((4) (4))' for horizontally split windows." :type '(list sexp sexp) - :group 'compare-w) + :group 'compare-w + :version "22.1") (defcustom compare-windows-highlight t "*Non-nil means compare-windows highlights the differences." :type 'boolean - :group 'compare-w) + :group 'compare-w + :version "22.1") (defface compare-windows - '((((class color) (min-colors 88) (background light)) - (:background "paleturquoise")) - (((class color) (min-colors 88) (background dark)) - (:background "paleturquoise4")) - (((class color)) - (:background "turquoise3")) - (t (:underline t))) + '((t :inherit lazy-highlight)) "Face for highlighting of compare-windows difference regions." - :group 'compare-w) -;; backward-compatibility alias -(put 'compare-windows-face 'face-alias 'compare-windows) + :group 'compare-w + :version "22.1") (defvar compare-windows-overlay1 nil) (defvar compare-windows-overlay2 nil) diff --git a/lisp/complete.el b/lisp/complete.el index dabab4ee6ee..d3ff6c53988 100644 --- a/lisp/complete.el +++ b/lisp/complete.el @@ -1,7 +1,7 @@ ;;; complete.el --- partial completion mechanism plus other goodies -;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Keywords: abbrev convenience diff --git a/lisp/completion.el b/lisp/completion.el index 5e7285ecddd..4b0f6cac9a6 100644 --- a/lisp/completion.el +++ b/lisp/completion.el @@ -1,6 +1,7 @@ ;;; completion.el --- dynamic word-completion code -;; Copyright (C) 1990, 1993, 1995, 1997, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1993, 1995, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: abbrev convenience @@ -2347,6 +2348,9 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." 'use-completion-under-or-before-point))) ;; C mode diffs. + +(defvar c-mode-map) + (defun completion-c-mode-hook () (def-completion-wrapper electric-c-semi :separator) (define-key c-mode-map "+" 'completion-separator-self-insert-command) @@ -2358,6 +2362,9 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." (add-hook 'c-mode-hook 'completion-c-mode-hook)) ;; FORTRAN mode diffs. (these are defined when fortran is called) + +(defvar fortran-mode-map) + (defun completion-setup-fortran-mode () (define-key fortran-mode-map "+" 'completion-separator-self-insert-command) (define-key fortran-mode-map "-" 'completion-separator-self-insert-command) diff --git a/lisp/composite.el b/lisp/composite.el index 5fd6b6529e0..452a9cebca9 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -82,7 +82,7 @@ follows (the point `*' corresponds to both reference points): (defun encode-composition-rule (rule) "Encode composition rule RULE into an integer value. RULE is a cons of global and new reference point symbols -\(see reference-point-alist)." +\(see `reference-point-alist')." ;; This must be compatible with C macro COMPOSITION_ENCODE_RULE ;; defined in composite.h. @@ -219,7 +219,7 @@ The return value is STRING where `composition' property is put on all the characters in it. Optional 2nd and 3rd arguments START and END specify the range of -STRING to be composed. They defaults to the beginning and the end of +STRING to be composed. They default to the beginning and the end of STRING respectively. Optional 4th argument COMPONENTS, if non-nil, is a character or a @@ -355,11 +355,11 @@ The argument is a parameterized event of the form where N is the number of characters before point to compose, COMPONENTS, if non-nil, is the same as the argument to `compose-region' \(which see). If it is nil, `compose-chars-after' is called, -and that function find a proper rule to compose the target characters. +and that function finds a proper rule to compose the target characters. This function is intended to be used from input methods. The global keymap binds special event `compose-last-chars' to this function. Input method may generate an event (compose-last-chars N COMPONENTS) -after a sequence character events." +after a sequence of character events." (interactive "e") (let ((chars (nth 1 args))) (if (and (numberp chars) diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index 8818ed6ff70..61c597a200e 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -1,6 +1,6 @@ ;;; cus-dep.el --- find customization dependencies ;; -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: internal diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 76e8e5bf7ba..9827ab7d594 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1,7 +1,7 @@ ;;; cus-edit.el --- tools for customizing Emacs and Lisp packages ;; -;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -141,7 +141,8 @@ (require 'cus-face) (require 'wid-edit) (eval-when-compile - (defvar custom-versions-load-alist)) ; from cus-load + (defvar custom-versions-load-alist) ; from cus-load + (defvar recentf-exclude)) ; from recentf.el (condition-case nil (require 'cus-load) @@ -669,7 +670,7 @@ If `last', order groups after non-groups." :type 'boolean :group 'custom-browse) -(defcustom custom-buffer-sort-alphabetically nil +(defcustom custom-buffer-sort-alphabetically t "If non-nil, sort members of each customization group alphabetically." :type 'boolean :group 'custom-buffer) @@ -1021,9 +1022,12 @@ then prompt for the MODE to customize." (defun customize-option (symbol) "Customize SYMBOL, which must be a user option variable." (interactive (custom-variable-prompt)) - (custom-buffer-create (list (list symbol 'custom-variable)) - (format "*Customize Option: %s*" - (custom-unlispify-tag-name symbol)))) + (let ((basevar (indirect-variable symbol))) + (custom-buffer-create (list (list basevar 'custom-variable)) + (format "*Customize Option: %s*" + (custom-unlispify-tag-name basevar))) + (unless (eq symbol basevar) + (message "`%s' is an alias for `%s'" symbol basevar)))) ;;;###autoload (defalias 'customize-variable-other-window 'customize-option-other-window) @@ -1033,9 +1037,12 @@ then prompt for the MODE to customize." "Customize SYMBOL, which must be a user option variable. Show the buffer in another window, but don't select it." (interactive (custom-variable-prompt)) - (custom-buffer-create-other-window - (list (list symbol 'custom-variable)) - (format "*Customize Option: %s*" (custom-unlispify-tag-name symbol)))) + (let ((basevar (indirect-variable symbol))) + (custom-buffer-create-other-window + (list (list basevar 'custom-variable)) + (format "*Customize Option: %s*" (custom-unlispify-tag-name basevar))) + (unless (eq symbol basevar) + (message "`%s' is an alias for `%s'" symbol basevar)))) (defvar customize-changed-options-previous-release "20.2" "Version for `customize-changed-options' to refer back to by default.") @@ -3829,8 +3836,9 @@ Optional EVENT is the location for the menu." (setq magics (cdr magics))))) (widget-put widget :custom-state found))) (custom-magic-reset widget)) + +;;; Reading and writing the custom file. -;;; The `custom-save-all' Function. ;;;###autoload (defcustom custom-file nil "File used for storing customization information. @@ -3891,12 +3899,33 @@ if only the first line of the docstring is shown.")) (setq user-init-file default-init-file)) user-init-file)))) +;;;###autoload +(defun custom-save-all () + "Save all customizations in `custom-file'." + (let* ((filename (custom-file)) + (recentf-exclude (if recentf-mode + (cons (concat "\\`" + (regexp-quote (custom-file)) + "\\'") + recentf-exclude))) + (old-buffer (find-buffer-visiting filename))) + (with-current-buffer (or old-buffer (find-file-noselect filename)) + (let ((inhibit-read-only t)) + (custom-save-variables) + (custom-save-faces)) + (let ((file-precious-flag t)) + (save-buffer)) + (unless old-buffer + (kill-buffer (current-buffer)))))) + +;; Editing the custom file contents in a buffer. + (defun custom-save-delete (symbol) - "Visit `custom-file' and delete all calls to SYMBOL from it. + "Delete all calls to SYMBOL from the contents of the current buffer. Leave point at the old location of the first such call, -or (if there were none) at the end of the buffer." - (let ((default-major-mode 'emacs-lisp-mode)) - (set-buffer (find-file-noselect (custom-file)))) +or (if there were none) at the end of the buffer. + +This function does not save the buffer." (goto-char (point-min)) ;; Skip all whitespace and comments. (while (forward-comment 1)) @@ -4116,19 +4145,7 @@ or (if there were none) at the end of the buffer." (put symbol 'customized-face-comment nil))))) ;; We really should update all custom buffers here. (custom-save-all)) - -;;;###autoload -(defun custom-save-all () - "Save all customizations in `custom-file'." - (let ((inhibit-read-only t)) - (custom-save-variables) - (custom-save-faces) - (save-excursion - (let ((default-major-mode nil)) - (set-buffer (find-file-noselect (custom-file)))) - (let ((file-precious-flag t)) - (save-buffer))))) - + ;;; The Customize Menu. ;;; Menu support @@ -4222,6 +4239,7 @@ The format is suitable for use with `easy-menu-define'." (suppress-keymap map) (define-key map " " 'scroll-up) (define-key map "\177" 'scroll-down) + (define-key map "\C-c\C-c" 'Custom-set) (define-key map "\C-x\C-s" 'Custom-save) (define-key map "q" 'Custom-buffer-done) (define-key map "u" 'Custom-goto-parent) @@ -4251,7 +4269,7 @@ The format is suitable for use with `easy-menu-define'." ["Reset to Current" Custom-reset-current t] ["Reset to Saved" Custom-reset-saved t] ["Reset to Standard Settings" Custom-reset-standard t] - ["Info" (Info-goto-node "(emacs)Easy Customization") t])) + ["Info" (info "(emacs)Easy Customization") t])) (defun Custom-goto-parent () "Go to the parent group listed at the top of this buffer. diff --git a/lisp/cus-face.el b/lisp/cus-face.el index 74162c68eb2..5dba9f7de5d 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el @@ -1,6 +1,7 @@ ;;; cus-face.el --- customization support for faces ;; -;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: help, faces @@ -348,53 +349,27 @@ FACE's list property `theme-face' \(using `custom-push-theme')." (setq args (cdr (cdr args)))))))) ;;;###autoload -(defun custom-theme-face-value (face theme) - "Return spec of FACE in THEME if THEME modifies FACE. -Value is nil otherwise. The association between theme and spec for FACE -is stored in FACE's property `theme-face'. The appropriate face -is retrieved using `custom-theme-value'." - ;; Returns car because the value is stored inside a one element list - (car-safe (custom-theme-value theme (get face 'theme-face)))) - -(defun custom-theme-reset-internal-face (face to-theme) - "Reset FACE to the value defined by TO-THEME. -If FACE is not defined in TO-THEME, reset FACE to the standard -value. See `custom-theme-face-value'. The standard value is -stored in SYMBOL's property `face-defface-spec' by `defface'." - (let ((spec (custom-theme-face-value face to-theme)) - was-in-theme) - (setq was-in-theme spec) - (setq spec (or spec (get face 'face-defface-spec))) - (when spec - (put face 'save-face was-in-theme) - (when (or (get face 'force-face) (facep face)) - (unless (facep face) - (make-empty-face face)) - (face-spec-set face spec))) - spec)) - -;;;###autoload (defun custom-theme-reset-faces (theme &rest args) - "Reset the value of the face to values previously defined. -Associate this setting with THEME. - -ARGS is a list of lists of the form + "Reset the specs in THEME of some faces to their specs in other themes. +Each of the arguments ARGS has this form: - (FACE TO-THEME) + (FACE FROM-THEME) -This means reset FACE to its value in TO-THEME." +This means reset FACE to its value in FROM-THEME." (custom-check-theme theme) - (mapcar '(lambda (arg) - (apply 'custom-theme-reset-internal-face arg) - (custom-push-theme 'theme-face (car arg) theme 'reset (cadr arg))) - args)) + (dolist (arg args) + (custom-push-theme 'theme-face (car arg) theme 'reset (cadr arg)))) ;;;###autoload (defun custom-reset-faces (&rest args) - "Reset the value of the face to values previously saved. -This is the setting assosiated the `user' theme. + "Reset the specs of some faces to their specs in specified themes. +This creates settings in the `user' theme. + +Each of the arguments ARGS has this form: + + (FACE FROM-THEME) -ARGS is defined as for `custom-theme-reset-faces'" +This means reset FACE to its value in FROM-THEME." (apply 'custom-theme-reset-faces 'user args)) ;;; The End. diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 7c10b57a1b2..2f3cd5d0e07 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -1,6 +1,7 @@ ;;; cus-start.el --- define customization properties of builtins ;; -;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: internal @@ -40,20 +41,6 @@ ;; alloc.c (gc-cons-threshold alloc integer) (garbage-collection-messages alloc boolean) - ;; undo.c - (undo-limit undo integer) - (undo-strong-limit undo integer) - (undo-outer-limit undo - (choice integer - (const :tag "No limit" - :format "%t\n%d" - :doc - "With this choice, \ -the undo info for the current command never gets discarded. -This should only be chosen under exceptional circumstances, -since it could result in memory overflow and make Emacs crash." - nil)) - "22.1") ;; buffer.c (mode-line-format modeline sexp) ;Hard to do right. (default-major-mode internal function) @@ -65,7 +52,47 @@ since it could result in memory overflow and make Emacs crash." (ctl-arrow display boolean) (truncate-lines display boolean) (selective-display-ellipses display boolean) - (indicate-empty-lines display boolean "21.1") + (indicate-empty-lines fringe boolean "21.1") + (indicate-buffer-boundaries + fringe + (choice + (const :tag "No indicators" nil) + (const :tag "On left, with arrows" left) + (const :tag "On right, with arrows" right) + (set :tag "Pick your own design" + :value ((t . nil)) + :format "%{%t%}:\n%v\n%d" + :doc "You can specify a default and then override it \ +for individual indicators. +Leaving \"Default\" unchecked is equivalent with specifying a default of +\"Do not show\"." + (choice :tag "Default" + :value (t . nil) + (const :tag "Do not show" (t . nil)) + (const :tag "On the left" (t . left)) + (const :tag "On the right" (t . right))) + (choice :tag "Top" + :value (top . left) + (const :tag "Do not show" (top . nil)) + (const :tag "On the left" (top . left)) + (const :tag "On the right" (top . right))) + (choice :tag "Bottom" + :value (bottom . left) + (const :tag "Do not show" (bottom . nil)) + (const :tag "On the left" (bottom . left)) + (const :tag "On the right" (bottom . right))) + (choice :tag "Up arrow" + :value (up . left) + (const :tag "Do not show" (up . nil)) + (const :tag "On the left" (up . left)) + (const :tag "On the right" (up . right))) + (choice :tag "Down arrow" + :value (down . left) + (const :tag "Do not show" (down . nil)) + (const :tag "On the left" (down . left)) + (const :tag "On the right" (down . right)))) + (other :tag "On left, no arrows" t)) + "22.1") (scroll-up-aggressively windows (choice (const :tag "off" nil) number) "21.1") @@ -77,8 +104,8 @@ since it could result in memory overflow and make Emacs crash." ;; callproc.c (shell-file-name execute file) (exec-path execute - (repeat (choice (const :tag "default" nil) - (file :format "%v")))) + (repeat (choice (const :tag "default directory" nil) + (directory :format "%v")))) ;; coding.c (inhibit-eol-conversion mule boolean) (eol-mnemonic-undecided mule string) @@ -145,6 +172,8 @@ since it could result in memory overflow and make Emacs crash." (mouse-highlight mouse (choice (const :tag "disabled" nil) (const :tag "always shown" t) (other :tag "hidden by keypress" 1))) + ;; fringe.c + (overflow-newline-into-fringe fringe boolean "22.1") ;; indent.c (indent-tabs-mode fill boolean) ;; keyboard.c @@ -190,7 +219,7 @@ since it could result in memory overflow and make Emacs crash." :format "%t%n%h" :inline t (read-only t)) - (const :tag "Inviolable" + (const :tag "Don't Enter" :doc "Prevent point from ever entering prompt" :format "%t%n%h" :inline t @@ -217,6 +246,20 @@ since it could result in memory overflow and make Emacs crash." (words-include-escapes editing-basics boolean) (open-paren-in-column-0-is-defun-start editing-basics boolean "21.1") + ;; undo.c + (undo-limit undo integer) + (undo-strong-limit undo integer) + (undo-outer-limit undo + (choice integer + (const :tag "No limit" + :format "%t\n%d" + :doc + "With this choice, \ +the undo info for the current command never gets discarded. +This should only be chosen under exceptional circumstances, +since it could result in memory overflow and make Emacs crash." + nil)) + "22.1") ;; window.c (temp-buffer-show-function windows (choice (const nil) function)) (display-buffer-function windows (choice (const nil) function)) diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 32e01963824..95a0a4b2896 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -1,6 +1,6 @@ ;;; cus-theme.el -- custom theme creation user interface ;; -;; Copyright (C) 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: FSF diff --git a/lisp/custom.el b/lisp/custom.el index a8c9b864537..0831535f181 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1,7 +1,7 @@ ;;; custom.el --- tools for declaring and initializing options ;; -;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -76,6 +76,28 @@ if any, or VALUE." (eval (car (get symbol 'saved-value))) (eval value))))) +(defun custom-initialize-safe-set (symbol value) + "Like `custom-initialize-set', but catches errors. +If an error occurs during initialization, SYMBOL is set to nil +and no error is thrown. This is meant for use in pre-loaded files +where some variables or functions used to compute VALUE may not yet +be defined. You can then re-evaluate VALUE in startup.el, for instance +using `custom-reevaluate-setting'." + (condition-case nil + (custom-initialize-set symbol value) + (error (set-default symbol nil)))) + +(defun custom-initialize-safe-default (symbol value) + "Like `custom-initialize-default', but catches errors. +If an error occurs during initialization, SYMBOL is set to nil +and no error is thrown. This is meant for use in pre-loaded files +where some variables or functions used to compute VALUE may not yet +be defined. You can then re-evaluate VALUE in startup.el, for instance +using `custom-reevaluate-setting'." + (condition-case nil + (custom-initialize-default symbol value) + (error (set-default symbol nil)))) + (defun custom-initialize-reset (symbol value) "Initialize SYMBOL based on VALUE. Set the symbol, using its `:set' function (or `set-default' if it has none). @@ -115,14 +137,9 @@ For the standard setting, use `set-default'." DEFAULT should be an expression to evaluate to compute the default value, not the default value itself. -DEFAULT is stored as SYMBOL's value in the standard theme. See -`custom-known-themes' for a list of known themes. For backwards -compatibility, DEFAULT is also stored in SYMBOL's property +DEFAULT is stored as SYMBOL's standard value, in SYMBOL's property `standard-value'. At the same time, SYMBOL's property `force-value' is set to nil, as the value is no longer rogue." - ;; Remember the standard setting. The value should be in the standard - ;; theme, not in this property. However, this would require changing - ;; the C source of defvar and others as well... (put symbol 'standard-value (list default)) ;; Maybe this option was rogue in an earlier version. It no longer is. (when (get symbol 'force-value) @@ -518,7 +535,9 @@ LOAD should be either a library file name, or a feature name." ;; This test is also in the C code of `user-variable-p'. (defun custom-variable-p (variable) - "Return non-nil if VARIABLE is a custom variable." + "Return non-nil if VARIABLE is a custom variable. +This recursively follows aliases." + (setq variable (indirect-variable variable)) (or (get variable 'standard-value) (get variable 'custom-autoload))) @@ -560,104 +579,15 @@ LOAD should be either a library file name, or a feature name." ;; and it is not in load-history yet. ((equal load "cus-edit")) (t (condition-case nil (load load) (error nil)))))))) - + (defvar custom-known-themes '(user standard) "Themes that have been defined with `deftheme'. The default value is the list (user standard). The theme `standard' contains the Emacs standard settings from the original Lisp files. The -theme `user' contains all the the settings the user customized and saved. +theme `user' contains all the settings the user customized and saved. Additional themes declared with the `deftheme' macro will be added to the front of this list.") -(defun custom-declare-theme (theme feature &optional doc &rest args) - "Like `deftheme', but THEME is evaluated as a normal argument. -FEATURE is the feature this theme provides. This symbol is created -from THEME by `custom-make-theme-feature'." - (add-to-list 'custom-known-themes theme) - (put theme 'theme-feature feature) - (when doc - (put theme 'theme-documentation doc)) - (while args - (let ((arg (car args))) - (setq args (cdr args)) - (unless (symbolp arg) - (error "Junk in args %S" args)) - (let ((keyword arg) - (value (car args))) - (unless args - (error "Keyword %s is missing an argument" keyword)) - (setq args (cdr args)) - (cond ((eq keyword :short-description) - (put theme 'theme-short-description value)) - ((eq keyword :immediate) - (put theme 'theme-immediate value)) - ((eq keyword :variable-set-string) - (put theme 'theme-variable-set-string value)) - ((eq keyword :variable-reset-string) - (put theme 'theme-variable-reset-string value)) - ((eq keyword :face-set-string) - (put theme 'theme-face-set-string value)) - ((eq keyword :face-reset-string) - (put theme 'theme-face-reset-string value))))))) - -(defmacro deftheme (theme &optional doc &rest args) - "Declare custom theme THEME. -The optional argument DOC is a doc string describing the theme. -The remaining arguments should have the form - - [KEYWORD VALUE]... - -The following KEYWORD's are defined: - -:short-description - VALUE is a short (one line) description of the theme. If not - given, DOC is used. -:immediate - If VALUE is non-nil, variables specified in this theme are set - immediately when loading the theme. -:variable-set-string - VALUE is a string used to indicate that a variable takes its - setting from this theme. It is passed to FORMAT with the name - of the theme as an additional argument. If not given, a - generic description is used. -:variable-reset-string - VALUE is a string used in the case a variable has been forced - to its value in this theme. It is passed to FORMAT with the - name of the theme as an additional argument. If not given, a - generic description is used. -:face-set-string - VALUE is a string used to indicate that a face takes its - setting from this theme. It is passed to FORMAT with the name - of the theme as an additional argument. If not given, a - generic description is used. -:face-reset-string - VALUE is a string used in the case a face has been forced to - its value in this theme. It is passed to FORMAT with the name - of the theme as an additional argument. If not given, a - generic description is used. - -Any theme `foo' should be defined in a file called `foo-theme.el'; -see `custom-make-theme-feature' for more information." - (let ((feature (custom-make-theme-feature theme))) - ;; It is better not to use backquote in this file, - ;; because that makes a bootstrapping problem - ;; if you need to recompile all the Lisp files using interpreted code. - (nconc (list 'custom-declare-theme - (list 'quote theme) - (list 'quote feature) - doc) args))) - -(defun custom-make-theme-feature (theme) - "Given a symbol THEME, create a new symbol by appending \"-theme\". -Store this symbol in the `theme-feature' property of THEME. -Calling `provide-theme' to provide THEME actually puts `THEME-theme' -into `features'. - -This allows for a file-name convention for autoloading themes: -Every theme X has a property `provide-theme' whose value is \"X-theme\". -\(require-theme X) then attempts to load the file `X-theme.el'." - (intern (concat (symbol-name theme) "-theme"))) - (defsubst custom-theme-p (theme) "Non-nil when THEME has been defined." (memq theme custom-known-themes)) @@ -670,13 +600,15 @@ Every theme X has a property `provide-theme' whose value is \"X-theme\". ;;; Initializing. (defun custom-push-theme (prop symbol theme mode value) - "Add (THEME MODE VALUE) to the list in property PROP of SYMBOL. -If the first element in that list is already (THEME ...), -discard it first. + "Record a value for face or variable SYMBOL in custom theme THEME. +PROP is`theme-face' for a face, `theme-value' for a variable. +The value is specified by (THEME MODE VALUE), which is interpreted +by `custom-theme-value'. MODE can be either the symbol `set' or the symbol `reset'. If it is the symbol `set', then VALUE is the value to use. If it is the symbol -`reset', then VALUE is the mode to query instead. +`reset', then VALUE is another theme, whose value for this face or +variable should be used. In the following example for the variable `goto-address-url-face', the theme `subtle-hacker' uses the same value for the variable as the theme @@ -709,11 +641,20 @@ This records values for the `standard' and the `gnome2' themes. The user has not customized the face; had he done that, the list would contain an entry for the `user' theme, too. See `custom-known-themes' for a list of known themes." - (let ((old (get symbol prop))) - (if (eq (car-safe (car-safe old)) theme) - (setq old (cdr old))) - (put symbol prop (cons (list theme mode value) old)))) - + (let* ((old (get symbol prop)) + (setting (assq theme old))) + ;; Alter an existing theme-setting for the symbol, + ;; or add a new one. + (if setting + (progn + (setcar (cdr setting) mode) + (setcar (cddr setting) value)) + (put symbol prop (cons (list theme mode value) old))) + ;; Record, for each theme, all its settings. + (put theme 'theme-settings + (cons (list prop symbol theme mode value) + (get theme 'theme-settings))))) + (defvar custom-local-buffer nil "Non-nil, in a Customization buffer, means customize a specific buffer. If this variable is non-nil, it should be a buffer, @@ -739,10 +680,10 @@ COMMENT is a comment string about SYMBOL." (apply 'custom-theme-set-variables 'user args)) (defun custom-reevaluate-setting (symbol) - "Reset the value of SYMBOL by re-evaluating its saved or default value. -This is useful for variables that are defined before their default value -can really be computed. E.g. dumped variables whose default depends on -run-time information." + "Reset the value of SYMBOL by re-evaluating its saved or standard value. +Use the :set function to do so. This is useful for customizable options +that are defined before their standard value can really be computed. +E.g. dumped variables whose default depends on run-time information." (funcall (or (get symbol 'custom-set) 'set-default) symbol (eval (car (or (get symbol 'saved-value) (get symbol 'standard-value)))))) @@ -785,15 +726,13 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')." (error "Circular custom dependency between `%s' and `%s'" sym1 sym2)) (2-then-1 nil) - ;; Put symbols with :require last. The macro - ;; define-minor-mode generates a defcustom - ;; with a :require and a :set, where the - ;; setter function calls the mode function. - ;; Putting symbols with :require last ensures - ;; that the mode function will see other - ;; customized values rather than default - ;; values. - (t (nth 3 a2))))))) + ;; Put minor modes and symbols with :require last. + ;; Putting minor modes last ensures that the mode + ;; function will see other customized values rather + ;; than default values. + (t (or (nth 3 a2) + (eq (get sym2 'custom-set) + 'custom-set-minor-mode)))))))) (while args (let ((entry (car args))) (if (listp entry) @@ -922,11 +861,134 @@ Return non-nil iff the `customized-value' property actually changed." (put symbol 'customized-value nil)) ;; Changed? (not (equal customized (get symbol 'customized-value))))) + +;;; Defining themes. + +;; deftheme is used at the beginning of the file that records a theme. + +(defmacro deftheme (theme &optional doc &rest args) + "Declare custom theme THEME. +The optional argument DOC is a doc string describing the theme. +The remaining arguments should have the form -;;; Theme Manipulation + [KEYWORD VALUE]... + +The following KEYWORD's are defined: + +:short-description + VALUE is a short (one line) description of the theme. If not + given, DOC is used. +:immediate + If VALUE is non-nil, variables specified in this theme are set + immediately when loading the theme. +:variable-set-string + VALUE is a string used to indicate that a variable takes its + setting from this theme. It is passed to FORMAT with the name + of the theme as an additional argument. If not given, a + generic description is used. +:variable-reset-string + VALUE is a string used in the case a variable has been forced + to its value in this theme. It is passed to FORMAT with the + name of the theme as an additional argument. If not given, a + generic description is used. +:face-set-string + VALUE is a string used to indicate that a face takes its + setting from this theme. It is passed to FORMAT with the name + of the theme as an additional argument. If not given, a + generic description is used. +:face-reset-string + VALUE is a string used in the case a face has been forced to + its value in this theme. It is passed to FORMAT with the name + of the theme as an additional argument. If not given, a + generic description is used. + +Any theme `foo' should be defined in a file called `foo-theme.el'; +see `custom-make-theme-feature' for more information." + (let ((feature (custom-make-theme-feature theme))) + ;; It is better not to use backquote in this file, + ;; because that makes a bootstrapping problem + ;; if you need to recompile all the Lisp files using interpreted code. + (nconc (list 'custom-declare-theme + (list 'quote theme) + (list 'quote feature) + doc) + args))) + +(defun custom-declare-theme (theme feature &optional doc &rest args) + "Like `deftheme', but THEME is evaluated as a normal argument. +FEATURE is the feature this theme provides. This symbol is created +from THEME by `custom-make-theme-feature'." + (add-to-list 'custom-known-themes theme) + (put theme 'theme-feature feature) + (when doc + (put theme 'theme-documentation doc)) + (while args + (let ((arg (car args))) + (setq args (cdr args)) + (unless (symbolp arg) + (error "Junk in args %S" args)) + (let ((keyword arg) + (value (car args))) + (unless args + (error "Keyword %s is missing an argument" keyword)) + (setq args (cdr args)) + (cond ((eq keyword :short-description) + (put theme 'theme-short-description value)) + ((eq keyword :immediate) + (put theme 'theme-immediate value)) + ((eq keyword :variable-set-string) + (put theme 'theme-variable-set-string value)) + ((eq keyword :variable-reset-string) + (put theme 'theme-variable-reset-string value)) + ((eq keyword :face-set-string) + (put theme 'theme-face-set-string value)) + ((eq keyword :face-reset-string) + (put theme 'theme-face-reset-string value))))))) + +(defun custom-make-theme-feature (theme) + "Given a symbol THEME, create a new symbol by appending \"-theme\". +Store this symbol in the `theme-feature' property of THEME. +Calling `provide-theme' to provide THEME actually puts `THEME-theme' +into `features'. + +This allows for a file-name convention for autoloading themes: +Every theme X has a property `provide-theme' whose value is \"X-theme\". +\(require-theme X) then attempts to load the file `X-theme.el'." + (intern (concat (symbol-name theme) "-theme"))) + +;;; Loading themes. + +;; The variable and face settings of a theme are recorded in +;; the `theme-settings' property of the theme name. +;; This property's value is a list of elements, each of the form +;; (PROP SYMBOL THEME MODE VALUE), where PROP is `theme-value' or `theme-face' +;; and SYMBOL is the face or variable name. +;; THEME is the theme name itself; that's redundant, but simplifies things. +;; MODE is `set' or `reset'. +;; If MODE is `set', then VALUE is an expression that specifies the +;; theme's setting for SYMBOL. +;; If MODE is `reset', then VALUE is another theme, +;; and it means to use the value from that theme. + +;; Each variable has a `theme-value' property that describes all the +;; settings of enabled themes that apply to it. +;; Each face name has a `theme-face' property that describes all the +;; settings of enabled themes that apply to it. +;; The property value is a list of settings, each with the form +;; (THEME MODE VALUE). THEME, MODE and VALUE are as above. +;; Each of these lists is ordered by decreasing theme precedence. +;; Thus, the first element is always the one that is in effect. + +;; Disabling a theme removes its settings from the `theme-value' and +;; `theme-face' properties, but the theme's own `theme-settings' +;; property remains unchanged. + +;; Loading a theme implicitly enables it. Enabling a theme adds its +;; settings to the symbols' `theme-value' and `theme-face' properties, +;; or moves them to the front of those lists if they're already present. (defvar custom-loaded-themes nil - "Themes in the order they are loaded.") + "Custom themes that have been loaded.") (defcustom custom-theme-directory (if (eq system-type 'ms-dos) @@ -942,26 +1004,43 @@ into this directory." :version "22.1") (defun custom-theme-loaded-p (theme) - "Return non-nil when THEME has been loaded." + "Return non-nil if THEME has been loaded." (memq theme custom-loaded-themes)) +(defvar custom-enabled-themes '(user) + "Custom themes currently enabled, highest precedence first. +The first one is always `user'.") + +(defun custom-theme-enabled-p (theme) + "Return non-nil if THEME is enabled." + (memq theme custom-enabled-themes)) + (defun provide-theme (theme) "Indicate that this file provides THEME. -Add THEME to `custom-loaded-themes' and `provide' whatever -is stored in THEME's property `theme-feature'. +Add THEME to `custom-loaded-themes', and `provide' whatever +feature name is stored in THEME's property `theme-feature'. -Usually the theme-feature property contains a symbol created +Usually the `theme-feature' property contains a symbol created by `custom-make-theme-feature'." (custom-check-theme theme) (provide (get theme 'theme-feature)) - (setq custom-loaded-themes (nconc (list theme) custom-loaded-themes))) + (push theme custom-loaded-themes) + ;; Loading a theme also installs its settings, + ;; so mark it as "enabled". + (push theme custom-enabled-themes) + ;; `user' must always be the highest-precedence enabled theme. + ;; Make that remain true. (This has the effect of making user settings + ;; override the ones just loaded, too.) + (custom-enable-theme 'user)) (defun require-theme (theme) - "Try to load a theme by requiring its feature. -THEME's feature is stored in THEME's `theme-feature' property. + "Try to load a theme's settings from its file. +This also enables the theme; use `custom-disable-theme' to disable it." + + ;; THEME's feature is stored in THEME's `theme-feature' property. + ;; Usually the `theme-feature' property contains a symbol created + ;; by `custom-make-theme-feature'. -Usually the `theme-feature' property contains a symbol created -by `custom-make-theme-feature'." ;; Note we do no check for validity of the theme here. ;; This allows to pull in themes by a file-name convention (let ((load-path (if (file-directory-p custom-theme-directory) @@ -969,70 +1048,35 @@ by `custom-make-theme-feature'." load-path))) (require (or (get theme 'theme-feature) (custom-make-theme-feature theme))))) - -(defun custom-remove-theme (spec-alist theme) - "Delete all elements from SPEC-ALIST whose car is THEME." - (let ((elt (assoc theme spec-alist))) - (while elt - (setq spec-alist (delete elt spec-alist) - elt (assoc theme spec-alist)))) - spec-alist) - -(defun custom-do-theme-reset (theme) - "Undo all settings defined by THEME. - -A variable remains unchanged if its property `theme-value' does not -contain a value for THEME. A face remains unchanged if its property -`theme-face' does not contain a value for THEME. In either case, all -settings for THEME are removed from the property and the variable or -face is set to the `user' theme. - -See `custom-known-themes' for a list of known themes." - (let (spec-list) - (mapatoms (lambda (symbol) - ;; This works even if symbol is both a variable and a - ;; face. - (setq spec-list (get symbol 'theme-value)) - (when spec-list - (put symbol 'theme-value (custom-remove-theme spec-list theme)) - (custom-theme-reset-internal symbol 'user)) - (setq spec-list (get symbol 'theme-face)) - (when spec-list - (put symbol 'theme-face (custom-remove-theme spec-list theme)) - (custom-theme-reset-internal-face symbol 'user)))))) + +;;; How to load and enable various themes as part of `user'. (defun custom-theme-load-themes (by-theme &rest body) "Load the themes specified by BODY. -Record them as required by theme BY-THEME. BODY is a sequence of either +Record them as required by theme BY-THEME. + +BODY is a sequence of either THEME - BY-THEME requires THEME + Load THEME and enable it. \(reset THEME) Undo all the settings made by THEME \(hidden THEME) - Require THEME but hide it from the user + Load THEME but do not enable it. All the themes loaded for BY-THEME are recorded in BY-THEME's property -`theme-loads-themes'. Any theme loaded with the hidden predicate will -be given the property `theme-hidden' unless it has been loaded before. -Whether a theme has been loaded before is determined by the function -`custom-theme-loaded-p'." +`theme-loads-themes'." (custom-check-theme by-theme) - (let ((theme) - (themes-loaded (get by-theme 'theme-loads-themes))) - (while theme - (setq theme (car body) - body (cdr body)) + (let ((themes-loaded (get by-theme 'theme-loads-themes))) + (dolist (theme body) (cond ((and (consp theme) (eq (car theme) 'reset)) - (custom-do-theme-reset (cadr theme))) + (custom-disable-theme (cadr theme))) ((and (consp theme) (eq (car theme) 'hidden)) (require-theme (cadr theme)) - (unless (custom-theme-loaded-p (cadr theme)) - (put (cadr theme) 'theme-hidden t))) + (custom-disable-theme (cadr theme))) (t - (require-theme theme) - (put theme 'theme-hidden nil))) - (setq themes-loaded (nconc (list theme) themes-loaded))) + (require-theme theme))) + (push theme themes-loaded)) (put by-theme 'theme-loads-themes themes-loaded))) (defun custom-load-themes (&rest body) @@ -1040,82 +1084,127 @@ Whether a theme has been loaded before is determined by the function See `custom-theme-load-themes' for more information on BODY." (apply 'custom-theme-load-themes 'user body)) - -; (defsubst copy-upto-last (elt list) -; "Copy all the elements of the list upto the last occurence of elt" -; ;; Is it faster to do more work in C than to do less in elisp? -; (nreverse (cdr (member elt (reverse list))))) - -(defun custom-theme-value (theme theme-spec-list) - "Determine the value for THEME defined by THEME-SPEC-LIST. -Returns a list with the original value if found; nil otherwise. - -THEME-SPEC-LIST is an alist with themes as its key. As new themes are -installed, these are added to the front of THEME-SPEC-LIST. -Each element has the form + +;;; Enabling and disabling loaded themes. + +(defun custom-enable-theme (theme) + "Reenable all variable and face settings defined by THEME. +The newly enabled theme gets the highest precedence (after `user'). +If it is already enabled, just give it highest precedence (after `user')." + (let ((settings (get theme 'theme-settings))) + (dolist (s settings) + (let* ((prop (car s)) + (symbol (cadr s)) + (spec-list (get symbol prop))) + (put symbol prop (cons (cddr s) (assq-delete-all theme spec-list))) + (if (eq prop 'theme-value) + (custom-theme-recalc-variable symbol) + (custom-theme-recalc-face symbol))))) + (setq custom-enabled-themes + (cons theme (delq theme custom-enabled-themes))) + ;; `user' must always be the highest-precedence enabled theme. + (unless (eq theme 'user) + (custom-enable-theme 'user))) + +(defun custom-disable-theme (theme) + "Disable all variable and face settings defined by THEME. +See `custom-known-themes' for a list of known themes." + (let ((settings (get theme 'theme-settings))) + (dolist (s settings) + (let* ((prop (car s)) + (symbol (cadr s)) + (spec-list (get symbol prop))) + (put symbol 'theme-value (assq-delete-all theme spec-list)) + (if (eq prop 'theme-value) + (custom-theme-recalc-variable symbol) + (custom-theme-recalc-face symbol))))) + (setq custom-enabled-themes + (delq theme custom-enabled-themes))) + +(defun custom-theme-value (theme setting-list) + "Determine the value specified for THEME according to SETTING-LIST. +Returns a list whose car is the specified value, if we +find one; nil otherwise. + +SETTING-LIST is an alist with themes as its key. +Each element has the form: \(THEME MODE VALUE) MODE is either the symbol `set' or the symbol `reset'. See `custom-push-theme' for more information on the format of -THEME-SPEC-LIST." +SETTING-LIST." ;; Note we do _NOT_ signal an error if the theme is unknown ;; it might have gone away without the user knowing. - (let ((value (cdr (assoc theme theme-spec-list)))) - (if value - (if (eq (car value) 'set) - (cdr value) - (custom-theme-value (cadr value) theme-spec-list))))) - -(defun custom-theme-variable-value (variable theme) - "Return (list value) indicating value of VARIABLE in THEME. -If THEME does not define a value for VARIABLE, return nil. The value -definitions per theme are stored in VARIABLE's property `theme-value'. -The actual work is done by function `custom-theme-value', which see. -See `custom-push-theme' for more information on how these definitions -are stored." - (custom-theme-value theme (get variable 'theme-value))) - -(defun custom-theme-reset-internal (symbol to-theme) - "Reset SYMBOL to the value defined by TO-THEME. -If SYMBOL is not defined in TO-THEME, reset SYMBOL to the standard -value. See `custom-theme-variable-value'. The standard value is -stored in SYMBOL's property `standard-value'." - (let ((value (custom-theme-variable-value symbol to-theme)) - was-in-theme) - (setq was-in-theme value) - (setq value (or value (get symbol 'standard-value))) - (when value - (put symbol 'saved-value was-in-theme) - (if (or (get 'force-value symbol) (default-boundp symbol)) - (funcall (or (get symbol 'custom-set) 'set-default) symbol - (eval (car value))))) - value)) - + (let ((elt (cdr (assoc theme setting-list)))) + (if elt + (if (eq (car elt) 'set) + (cdr elt) + ;; `reset' means refer to another theme's value in the same alist. + (custom-theme-value (cadr elt) setting-list))))) + +(defun custom-variable-theme-value (variable) + "Return (list VALUE) indicating the custom theme value of VARIABLE. +That is to say, it specifies what the value should be according to +currently enabled custom themes. + +This function returns nil if no custom theme specifies a value for VARIABLE." + (let* ((theme-value (get variable 'theme-value))) + (if theme-value + (custom-theme-value (car (car theme-value)) theme-value)))) + +(defun custom-face-theme-value (face) + "Return the face spec of FACE according to currently enabled custom themes. +This function returns nil if no custom theme specifies anything for FACE." + (let* ((theme-value (get face 'theme-face))) + (if theme-value + (custom-theme-value (car (car theme-value)) theme-value)))) + +(defun custom-theme-recalc-variable (variable) + "Set VARIABLE according to currently enabled custom themes." + (let ((valspec (custom-variable-theme-value variable))) + (when valspec + (put variable 'saved-value valspec)) + (unless valspec + (setq valspec (get variable 'standard-value))) + (when valspec + (if (or (get 'force-value variable) (default-boundp variable)) + (funcall (or (get variable 'custom-set) 'set-default) variable + (eval (car valspec))))))) + +(defun custom-theme-recalc-face (face) + "Set FACE according to currently enabled custom themes." + (let ((spec (custom-face-theme-value face))) + (when spec + (put face 'save-face spec)) + (unless spec + (setq spec (get face 'face-defface-spec))) + (when spec + (when (or (get face 'force-face) (facep face)) + (unless (facep face) + (make-empty-face face)) + (face-spec-set face spec))))) + (defun custom-theme-reset-variables (theme &rest args) - "Reset the value of the variables to values previously defined. -Associate this setting with THEME. - -ARGS is a list of lists of the form + "Reset the specs in THEME of some variables to their values in other themes. +Each of the arguments ARGS has this form: - (VARIABLE TO-THEME) + (VARIABLE FROM-THEME) -This means reset VARIABLE to its value in TO-THEME." +This means reset VARIABLE to its value in FROM-THEME." (custom-check-theme theme) - (mapcar '(lambda (arg) - (apply 'custom-theme-reset-internal arg) - (custom-push-theme 'theme-value (car arg) theme 'reset (cadr arg))) - args)) + (dolist (arg args) + (custom-push-theme 'theme-value (car arg) theme 'reset (cadr arg)))) (defun custom-reset-variables (&rest args) - "Reset the value of the variables to values previously saved. -This is the setting associated the `user' theme. + "Reset the specs of some variables to their values in certain themes. +This creates settings in the `user' theme. -ARGS is a list of lists of the form +Each of the arguments ARGS has this form: - (VARIABLE TO-THEME) + (VARIABLE FROM-THEME) -This means reset VARIABLE to its value in TO-THEME." +This means reset VARIABLE to its value in FROM-THEME." (apply 'custom-theme-reset-variables 'user args)) ;;; The End. diff --git a/lisp/cvs-status.el b/lisp/cvs-status.el index a70e368ff89..792dcb2ef26 100644 --- a/lisp/cvs-status.el +++ b/lisp/cvs-status.el @@ -1,6 +1,7 @@ ;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8 -*- -;; Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs cvs status tree tools diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index 01591e2fdf3..2139e7c5761 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el @@ -1,7 +1,7 @@ ;;; dabbrev.el --- dynamic abbreviation package -;; Copyright (C) 1985, 86, 92, 94, 96, 1997, 2000, 01, 03, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1992, 1994, 1996, 1997, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Don Morrison ;; Maintainer: Lars Lindberg <Lars.Lindberg@sypro.cap.se> diff --git a/lisp/delim-col.el b/lisp/delim-col.el index 1c0c8b77503..50d09a6414b 100644 --- a/lisp/delim-col.el +++ b/lisp/delim-col.el @@ -1,6 +1,7 @@ ;;; delim-col.el --- prettify all columns in a region or rectangle -;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/delsel.el b/lisp/delsel.el index 483c2e2c599..d7a3d90e969 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el @@ -1,6 +1,7 @@ ;;; delsel.el --- delete selection if you insert -;; Copyright (C) 1992, 1997, 1998, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1997, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Matthieu Devin <devin@lucid.com> ;; Maintainer: FSF @@ -100,7 +101,11 @@ any selection." (unless empty-region (setq this-command 'ignore)))) (type - (delete-active-region))) + (delete-active-region) + (if (and overwrite-mode (eq this-command 'self-insert-command)) + (let ((overwrite-mode nil)) + (self-insert-command (prefix-numeric-value current-prefix-arg)) + (setq this-command 'ignore))))) (file-supersession ;; If ask-user-about-supersession-threat signals an error, ;; stop safe_run_hooks from clearing out pre-command-hook. diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 3c548458713..e25d740b89b 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -1,7 +1,7 @@ ;;; descr-text.el --- describe text mode -;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: faces, i18n, Unicode, multilingual @@ -479,13 +479,27 @@ as well as widgets, buttons, overlays, and text properties." (format ", U+%04X" unicode) ""))) ("charset" - ,(symbol-name charset) + ,`(widget-create 'link + :notify (lambda (&rest ignore) + (describe-character-set ',charset)) + ,(symbol-name charset)) ,(format "(%s)" (charset-description charset))) ("code point" ,(let ((split (split-char char))) - (if (= (charset-dimension charset) 1) - (format "%d" (nth 1 split)) - (format "%d %d" (nth 1 split) (nth 2 split))))) + `(widget-create + 'link + :notify (lambda (&rest ignore) + (list-charset-chars ',charset) + (with-selected-window + (get-buffer-window "*Character List*" 0) + (goto-char (point-min)) + (forward-line 2) ;Skip the header. + (let ((case-fold-search nil)) + (search-forward ,(char-to-string char) + nil t)))) + ,(if (= (charset-dimension charset) 1) + (format "%d" (nth 1 split)) + (format "%d %d" (nth 1 split) (nth 2 split)))))) ("syntax" ,(let ((syntax (syntax-after pos))) (with-temp-buffer @@ -512,7 +526,14 @@ as well as widgets, buttons, overlays, and text properties." (if (consp key-list) (list "type" (mapconcat #'(lambda (x) (concat "\"" x "\"")) - key-list " or "))))) + key-list " or ") + "with" + `(widget-create + 'link + :notify (lambda (&rest ignore) + (describe-input-method + ',current-input-method)) + ,(format "%s" current-input-method)))))) ("buffer code" ,(encoded-string-description (string-as-unibyte (char-to-string char)) nil)) @@ -536,11 +557,7 @@ as well as widgets, buttons, overlays, and text properties." (format "by display table entry [%s] (see below)" (mapconcat #'(lambda (x) - (if (> (car x) #x7ffff) - (format "?%c<face-id=%s>" - (logand (car x) #x7ffff) - (lsh (car x) -19)) - (format "?%c" (car x)))) + (format "?%c" (logand (car x) #x7ffff))) disp-vector " "))) (composition (let ((from (car composition)) @@ -571,11 +588,31 @@ as well as widgets, buttons, overlays, and text properties." (if display (format "terminal code %s" display) "not encodable for terminal")))))) + ,@(let ((face + (if (not (or disp-vector composition)) + (cond + ((and show-trailing-whitespace + (save-excursion (goto-char pos) + (looking-at "[ \t]+$"))) + 'trailing-whitespace) + ((and nobreak-char-display unicode (eq unicode '#xa0)) + 'nobreak-space) + ((and nobreak-char-display unicode (eq unicode '#xad)) + 'escape-glyph) + ((and (< char 32) (not (memq char '(9 10)))) + 'escape-glyph))))) + (if face (list (list "hardcoded face" + `(widget-create + 'link + :notify (lambda (&rest ignore) + (describe-face ',face)) + ,(format "%s" face)))))) ,@(let ((unicodedata (and unicode (describe-char-unicode-data unicode)))) (if unicodedata (cons (list "Unicode data" " ") unicodedata))))) - (setq max-width (apply #'max (mapcar #'(lambda (x) (length (car x))) + (setq max-width (apply #'max (mapcar #'(lambda (x) + (if (cadr x) (length (car x)) 0)) item-list))) (with-output-to-temp-buffer "*Help*" (with-current-buffer standard-output @@ -585,13 +622,16 @@ as well as widgets, buttons, overlays, and text properties." (when (cadr elt) (insert (format formatter (car elt))) (dolist (clm (cdr elt)) - (when (>= (+ (current-column) - (or (string-match "\n" clm) - (string-width clm)) 1) - (window-width)) - (insert "\n") - (indent-to (1+ max-width))) - (insert " " clm)) + (if (eq (car-safe clm) 'widget-create) + (progn (insert " ") (eval clm)) + (when (>= (+ (current-column) + (or (string-match "\n" clm) + (string-width clm)) + 1) + (window-width)) + (insert "\n") + (indent-to (1+ max-width))) + (insert " " clm))) (insert "\n")))) (save-excursion @@ -619,7 +659,21 @@ as well as widgets, buttons, overlays, and text properties." (format "%s (0x%02X)" (cadr (aref disp-vector i)) (cddr (aref disp-vector i))) "-- no font --") - "\n "))) + "\n") + (when (> (car (aref disp-vector i)) #x7ffff) + (let* ((face-id (lsh (car (aref disp-vector i)) -19)) + (face (car (delq nil (mapcar (lambda (face) + (and (eq (face-id face) + face-id) face)) + (face-list)))))) + (when face + (insert (propertize " " 'display '(space :align-to 5)) + "face: ") + (widget-create 'link + :notify `(lambda (&rest ignore) + (describe-face ',face)) + (format "%S" face)) + (insert "\n")))))) (insert "these terminal codes:\n") (dotimes (i (length disp-vector)) (insert (car (aref disp-vector i)) @@ -667,7 +721,7 @@ as well as widgets, buttons, overlays, and text properties." (describe-text-mode))))) (defalias 'describe-char-after 'describe-char) -(make-obsolete 'describe-char-after 'describe-char "21.5") +(make-obsolete 'describe-char-after 'describe-char "22.1") (provide 'descr-text) diff --git a/lisp/desktop.el b/lisp/desktop.el index 02616d23f5e..3dbd581aef4 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1,10 +1,10 @@ ;;; desktop.el --- save partial status of Emacs when killed -;; Copyright (C) 1993, 1994, 1995, 1997, 2000, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> -;; Maintainter: Lars Hansen <larsh@math.ku.dk> +;; Maintainter: Lars Hansen <larsh@soem.dk> ;; Keywords: convenience ;; Favourite-brand-of-beer: None, I hate beer. @@ -51,13 +51,66 @@ ;; function is added to the `after-init-hook'. This function is ;; responsible for loading the desktop when Emacs is started. -;; Some words on minor modes: Most minor modes are controlled by -;; buffer-local variables, which have a standard save / restore -;; mechanism. To handle all minor modes, we take the following -;; approach: (1) check whether the variable name from -;; `minor-mode-alist' is also a function; and (2) use translation -;; table `desktop-minor-mode-table' in the case where the two names -;; are not the same. +;; Special handling. +;; ----------------- +;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' +;; are supplied to handle special major and minor modes respectively. +;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions +;; to restore a desktop buffer. Elements must have the form +;; +;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). +;; +;; Functions listed are called by `desktop-create-buffer' when `desktop-read' +;; evaluates the desktop file. Buffers with a major mode not specified here, +;; are restored by the default handler `desktop-restore-file-buffer'. +;; `desktop-minor-mode-handlers' is an alist of functions to restore +;; non-standard minor modes. Elements must have the form +;; +;; (MINOR-MODE . RESTORE-FUNCTION). +;; +;; Functions are called by `desktop-create-buffer' to restore minor modes. +;; Minor modes not specified here, are restored by the standard minor mode +;; function. If you write a module that defines a major or minor mode that +;; needs a special handler, then place code like + +;; (defun foo-restore-desktop-buffer +;; ... +;; (add-to-list 'desktop-buffer-mode-handlers +;; '(foo-mode . foo-restore-desktop-buffer)) + +;; or + +;; (defun bar-desktop-restore +;; ... +;; (add-to-list 'desktop-minor-mode-handlers +;; '(bar-mode . bar-desktop-restore)) + +;; in the module itself, and make shure that the mode function is +;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and +;; `desktop-minor-mode-handlers' for more info. + +;; Minor modes. +;; ------------ +;; Conventional minor modes (see node "Minor Mode Conventions" in the elisp +;; manual) are handled in the following way: +;; When `desktop-save' saves the state of a buffer to the desktop file, it +;; saves as `desktop-minor-modes' the list of names of those variables in +;; `minor-mode-alist' that have a non-nil value. +;; When `desktop-create' restores the buffer, each of the symbols in +;; `desktop-minor-modes' is called as function with parameter 1. +;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' +;; are used to handle non-conventional minor modes. `desktop-save' uses +;; `desktop-minor-mode-table' to map minor mode variables to minor mode +;; functions before writing `desktop-minor-modes'. If a minor mode has a +;; variable name that is different form its function name, an entry + +;; (NAME RESTORE-FUNCTION) + +;; should be added to `desktop-minor-mode-table'. If a minor mode should not +;; be restored, RESTORE-FUNCTION should be set to nil. `desktop-create' uses +;; `desktop-minor-mode-handlers' to lookup minor modes that needs a restore +;; function different from the usual minor mode function. +;; --------------------------------------------------------------------------- ;; By the way: don't use desktop.el to customize Emacs -- the file .emacs ;; in your home directory is used for that. Saving global default values @@ -106,8 +159,8 @@ desktop is saved." :group 'desktop) ;; Maintained for backward compatibility -(defvaralias 'desktop-enable 'desktop-save-mode) -(make-obsolete-variable 'desktop-enable 'desktop-save-mode) +(define-obsolete-variable-alias 'desktop-enable + 'desktop-save-mode "22.1") (defcustom desktop-save 'ask-if-new "*Specifies whether the desktop should be saved when it is killed. @@ -120,7 +173,7 @@ Possible values are: if-exists -- save if desktop file exists, otherwise don't save. nil -- never save. The desktop is never saved when `desktop-save-mode' is nil. -The variables `desktop-directory' and `desktop-base-file-name' +The variables `desktop-dirname' and `desktop-base-file-name' determine where the desktop is saved." :type '(choice (const :tag "Always save" t) @@ -137,7 +190,8 @@ determine where the desktop is saved." "Name of file for Emacs desktop, excluding the directory part." :type 'file :group 'desktop) -(defvaralias 'desktop-basefilename 'desktop-base-file-name) +(define-obsolete-variable-alias 'desktop-basefilename + 'desktop-base-file-name "22.1") (defcustom desktop-path '("." "~") "List of directories to search for the desktop file. @@ -200,26 +254,21 @@ Feature: Saving `kill-ring' implies saving `kill-ring-yank-pointer'." regexp-search-ring-yank-pointer) "List of global variables that `desktop-clear' will clear. An element may be variable name (a symbol) or a cons cell of the form -\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set -to the value obtained by evaluateing FORM." +\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set +to the value obtained by evaluating FORM." :type '(repeat (restricted-sexp :match-alternatives (symbolp consp))) :group 'desktop :version "22.1") -(defcustom desktop-clear-preserve-buffers-regexp - "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*tramp/.+\\*\\)$" - "Regexp identifying buffers that `desktop-clear' should not delete. -See also `desktop-clear-preserve-buffers'." - :type 'regexp - :group 'desktop - :version "22.1") - -(defcustom desktop-clear-preserve-buffers nil - "*List of buffer names that `desktop-clear' should not delete. -See also `desktop-clear-preserve-buffers-regexp'." +(defcustom desktop-clear-preserve-buffers + '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*") + "*List of buffers that `desktop-clear' should not delete. +Each element is a regular expression. Buffers with a name matched by any of +these won't be deleted." :type '(repeat string) :group 'desktop) +;;;###autoload (defcustom desktop-locals-to-save '(desktop-locals-to-save ; Itself! Think it over. truncate-lines @@ -229,12 +278,18 @@ See also `desktop-clear-preserve-buffers-regexp'." overwrite-mode change-log-default-name line-number-mode - buffer-file-coding-system) + column-number-mode + size-indication-mode + buffer-file-coding-system + indent-tabs-mode + indicate-buffer-boundaries + indicate-empty-lines + show-trailing-whitespace) "List of local variables to save for each buffer. -The variables are saved only when they really are local." +The variables are saved only when they really are local. Conventional minor +modes are restored automatically; they should not be listed here." :type '(repeat symbol) :group 'desktop) -(make-variable-buffer-local 'desktop-locals-to-save) ;; We skip .log files because they are normally temporary. ;; (ftp) files because they require passwords and whatnot. @@ -293,30 +348,30 @@ See `desktop-restore-eager'." "When non-nil, save buffer status in desktop file. This variable becomes buffer local when set. -If the value is a function, it called by `desktop-save' with argument -DESKTOP-DIRNAME to obtain auxiliary information to saved in the desktop +If the value is a function, it is called by `desktop-save' with argument +DESKTOP-DIRNAME to obtain auxiliary information to save in the desktop file along with the state of the buffer for which it was called. When file names are returned, they should be formatted using the call \"(desktop-file-name FILE-NAME DESKTOP-DIRNAME)\". -Later, when `desktop-read' calls a function in `desktop-buffer-mode-handlers' -to restore the buffer, the auxiliary information is passed as the argument -DESKTOP-BUFFER-MISC.") +Later, when `desktop-read' evaluates the desktop file, auxiliary information +is passed as the argument DESKTOP-BUFFER-MISC to functions in +`desktop-buffer-mode-handlers'.") (make-variable-buffer-local 'desktop-save-buffer) (make-obsolete-variable 'desktop-buffer-modes-to-save - 'desktop-save-buffer) + 'desktop-save-buffer "22.1") (make-obsolete-variable 'desktop-buffer-misc-functions - 'desktop-save-buffer) + 'desktop-save-buffer "22.1") -(defcustom desktop-buffer-mode-handlers - '((dired-mode . dired-restore-desktop-buffer) - (rmail-mode . rmail-restore-desktop-buffer) - (mh-folder-mode . mh-restore-desktop-buffer) - (Info-mode . Info-restore-desktop-buffer)) +;;;###autoload +(defvar desktop-buffer-mode-handlers + nil "Alist of major mode specific functions to restore a desktop buffer. -Functions are called by `desktop-read'. List elements must have the form -\(MAJOR-MODE . RESTORE-BUFFER-FUNCTION). +Functions listed are called by `desktop-create-buffer' when `desktop-read' +evaluates the desktop file. List elements must have the form + + (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). Buffers with a major mode not specified here, are restored by the default handler `desktop-restore-file-buffer'. @@ -336,13 +391,22 @@ Furthermore, they may use the following variables: desktop-buffer-locals If a handler returns a buffer, then the saved mode settings -and variable values for that buffer are copied into it." - :type 'alist - :group 'desktop) +and variable values for that buffer are copied into it. + +Modules that define a major mode that needs a special handler should contain +code like + + (defun foo-restore-desktop-buffer + ... + (add-to-list 'desktop-buffer-mode-handlers + '(foo-mode . foo-restore-desktop-buffer)) +Furthermore the major mode function must be autoloaded.") + +;;;###autoload (put 'desktop-buffer-mode-handlers 'risky-local-variable t) (make-obsolete-variable 'desktop-buffer-handlers - 'desktop-buffer-mode-handlers) + 'desktop-buffer-mode-handlers "22.1") (defcustom desktop-minor-mode-table '((auto-fill-function auto-fill-mode) @@ -354,10 +418,57 @@ mode is active. RESTORE-FUNCTION is the function to activate the minor mode. called. RESTORE-FUNCTION nil means don't try to restore the minor mode. Only minor modes for which the name of the buffer-local variable and the name of the minor mode function are different have to be added to -this table." +this table. See also `desktop-minor-mode-handlers'." :type 'sexp :group 'desktop) +;;;###autoload +(defvar desktop-minor-mode-handlers + nil + "Alist of functions to restore non-standard minor modes. +Functions are called by `desktop-create-buffer' to restore minor modes. +List elements must have the form + + (MINOR-MODE . RESTORE-FUNCTION). + +Minor modes not specified here, are restored by the standard minor mode +function. + +Handlers are called with argument list + + (DESKTOP-BUFFER-LOCALS) + +Furthermore, they may use the following variables: + + desktop-file-version + desktop-buffer-file-name + desktop-buffer-name + desktop-buffer-major-mode + desktop-buffer-minor-modes + desktop-buffer-point + desktop-buffer-mark + desktop-buffer-read-only + desktop-buffer-misc + +When a handler is called, the buffer has been created and the major mode has +been set, but local variables listed in desktop-buffer-locals has not yet been +created and set. + +Modules that define a minor mode that needs a special handler should contain +code like + + (defun foo-desktop-restore + ... + (add-to-list 'desktop-minor-mode-handlers + '(foo-mode . foo-desktop-restore)) + +Furthermore the minor mode function must be autoloaded. + +See also `desktop-minor-mode-table'.") + +;;;###autoload +(put 'desktop-minor-mode-handlers 'risky-local-variable t) + ;; ---------------------------------------------------------------------------- (defvar desktop-dirname nil "The directory in which the desktop file should be saved.") @@ -381,25 +492,29 @@ this table." ;; ---------------------------------------------------------------------------- (defun desktop-clear () "Empty the Desktop. -This kills all buffers except for internal ones and those matching -`desktop-clear-preserve-buffers-regexp' or listed in -`desktop-clear-preserve-buffers'. Furthermore, it clears the -variables listed in `desktop-globals-to-clear'." +This kills all buffers except for internal ones and those with names matched by +a regular expression in the list `desktop-clear-preserve-buffers'. +Furthermore, it clears the variables listed in `desktop-globals-to-clear'." (interactive) (desktop-lazy-abort) (dolist (var desktop-globals-to-clear) (if (symbolp var) (eval `(setq-default ,var nil)) (eval `(setq-default ,(car var) ,(cdr var))))) - (let ((buffers (buffer-list))) + (let ((buffers (buffer-list)) + (preserve-regexp (concat "^\\(" + (mapconcat (lambda (regexp) + (concat "\\(" regexp "\\)")) + desktop-clear-preserve-buffers + "\\|") + "\\)$"))) (while buffers (let ((bufname (buffer-name (car buffers)))) (or (null bufname) - (string-match desktop-clear-preserve-buffers-regexp bufname) - (member bufname desktop-clear-preserve-buffers) + (string-match preserve-regexp bufname) ;; Don't kill buffers made for internal purposes. - (and (not (equal bufname "")) (eq (aref bufname 0) ?\ )) + (and (not (equal bufname "")) (eq (aref bufname 0) ?\s)) (kill-buffer (car buffers)))) (setq buffers (cdr buffers)))) (delete-other-windows)) @@ -432,7 +547,7 @@ is nil, ask the user where to save the desktop." (condition-case err (desktop-save desktop-dirname) (file-error - (unless (yes-or-no-p "Error while saving the desktop. Ignore? ") + (unless (yes-or-no-p "Error while saving the desktop. Ignore? ") (signal (car err) (cdr err))))))) ;; ---------------------------------------------------------------------------- @@ -454,7 +569,7 @@ TXT is a string that when read and evaluated yields value. QUOTE may be `may' (value may be quoted), `must' (values must be quoted), or nil (value may not be quoted)." (cond - ((or (numberp value) (null value) (eq t value)) + ((or (numberp value) (null value) (eq t value) (keywordp value)) (cons 'may (prin1-to-string value))) ((stringp value) (let ((copy (copy-sequence value))) @@ -621,12 +736,10 @@ See also `desktop-base-file-name'." (and (boundp minor-mode) (symbol-value minor-mode) - (let ((special (assq minor-mode desktop-minor-mode-table))) - (when (or special (functionp minor-mode)) - (setq ret - (cons - (if special (cadr special) minor-mode) - ret)))))) + (let* ((special (assq minor-mode desktop-minor-mode-table)) + (value (cond (special (cadr special)) + ((functionp minor-mode) minor-mode)))) + (when value (add-to-list 'ret value))))) (mapcar #'car minor-mode-alist)) ret) (point) @@ -684,7 +797,6 @@ See also `desktop-base-file-name'." (insert ")\n\n"))) info) (setq default-directory dirname) - (when (file-exists-p filename) (delete-file filename)) (let ((coding-system-for-write 'emacs-mule)) (write-region (point-min) (point-max) filename nil 'nomessage)))) (setq desktop-dirname dirname)) @@ -711,7 +823,7 @@ This function also sets `desktop-dirname' to nil." "Read and process the desktop file in directory DIRNAME. Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in directories listed in `desktop-path'. If a desktop file is found, it -is processed and `desktop-after-read-hook' is run. If no desktop file +is processed and `desktop-after-read-hook' is run. If no desktop file is found, clear the desktop and run `desktop-no-desktop-file-hook'. This function is a no-op when Emacs is running in batch mode. It returns t if a desktop file was loaded, nil otherwise." @@ -777,11 +889,11 @@ It returns t if a desktop file was loaded, nil otherwise." (defun desktop-load-default () "Load the `default' start-up library manually. Also inhibit further loading of it." - (if (not inhibit-default-init) ; safety check - (progn - (load "default" t t) - (setq inhibit-default-init t)))) -(make-obsolete 'desktop-load-default 'desktop-save-mode) + (unless inhibit-default-init ; safety check + (load "default" t t) + (setq inhibit-default-init t))) +(make-obsolete 'desktop-load-default + 'desktop-save-mode "22.1") ;; ---------------------------------------------------------------------------- ;;;###autoload @@ -802,7 +914,7 @@ directory DIRNAME." "Save the desktop in directory `desktop-dirname'." (interactive) (if desktop-dirname - (desktop-save desktop-dirname) + (desktop-save desktop-dirname) (call-interactively 'desktop-save)) (message "Desktop saved in %s" desktop-dirname)) @@ -849,13 +961,20 @@ directory DIRNAME." buf) nil))) +(defun desktop-load-file (function) + "Load the file where auto loaded FUNCTION is defined." + (let ((fcell (symbol-function function))) + (when (and (listp fcell) + (eq 'autoload (car fcell))) + (load (cadr fcell))))) + ;; ---------------------------------------------------------------------------- ;; Create a buffer, load its file, set its mode, ...; ;; called from Desktop file only. -(eval-when-compile ; Just to silence the byte compiler - (defvar desktop-first-buffer) ;; Dynamically bound in `desktop-read' -) +;; Just to silence the byte compiler. +(eval-when-compile + (defvar desktop-first-buffer)) ; Dynamically bound in `desktop-read' (defun desktop-create-buffer (desktop-file-version @@ -876,6 +995,8 @@ directory DIRNAME." ;; To make desktop files with relative file names possible, we cannot ;; allow `default-directory' to change. Therefore we save current buffer. (save-current-buffer + ;; Give major mode module a chance to add a handler. + (desktop-load-file desktop-buffer-major-mode) (let ((buffer-list (buffer-list)) (result (condition-case err @@ -913,9 +1034,15 @@ directory DIRNAME." (auto-fill-mode 0)) (t (mapc #'(lambda (minor-mode) - (when (functionp minor-mode) (funcall minor-mode 1))) + ;; Give minor mode module a chance to add a handler. + (desktop-load-file minor-mode) + (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) + (if handler + (funcall handler desktop-buffer-locals) + (when (functionp minor-mode) + (funcall minor-mode 1))))) desktop-buffer-minor-modes))) - ;; Even though point and mark are non-nil when written by `desktop-save' + ;; Even though point and mark are non-nil when written by `desktop-save', ;; they may be modified by handlers wanting to set point or mark themselves. (when desktop-buffer-point (goto-char @@ -958,7 +1085,7 @@ directory DIRNAME." (cons 'overwrite-mode (car mim))))) (defun desktop-append-buffer-args (&rest args) - "Append ARGS at end of `desktop-buffer-args-list' + "Append ARGS at end of `desktop-buffer-args-list'. ARGS must be an argument list for `desktop-create-buffer'." (setq desktop-buffer-args-list (nconc desktop-buffer-args-list (list args))) (unless desktop-lazy-timer diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index b6444aad2a4..09c3b6a8939 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -1,7 +1,7 @@ ;;; diff-mode.el --- a mode for viewing/editing context diffs -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: convenience patch diff @@ -55,6 +55,8 @@ (eval-when-compile (require 'cl)) +(defvar add-log-buffer-file-name-function) + (defgroup diff-mode () "Major mode for viewing/editing diffs." @@ -197,7 +199,7 @@ when editing big diffs)." (((class color) (min-colors 88) (background dark)) :background "grey60" :weight bold) (((class color) (background light)) - :foreground "yellow" :weight bold) + :foreground "green" :weight bold) (((class color) (background dark)) :foreground "cyan" :weight bold) (t :weight bold)) ; :height 1.3 @@ -250,6 +252,27 @@ when editing big diffs)." (put 'diff-changed-face 'face-alias 'diff-changed) (defvar diff-changed-face 'diff-changed) +(defface diff-indicator-removed + '((t :inherit diff-removed)) + "`diff-mode' face used to highlight indicator of removed lines (-, <)." + :group 'diff-mode + :version "22.1") +(defvar diff-indicator-removed-face 'diff-indicator-removed) + +(defface diff-indicator-added + '((t :inherit diff-added)) + "`diff-mode' face used to highlight indicator of added lines (+, >)." + :group 'diff-mode + :version "22.1") +(defvar diff-indicator-added-face 'diff-indicator-added) + +(defface diff-indicator-changed + '((t :inherit diff-changed)) + "`diff-mode' face used to highlight indicator of changed lines." + :group 'diff-mode + :version "22.1") +(defvar diff-indicator-changed-face 'diff-indicator-changed) + (defface diff-function '((t :inherit diff-context)) "`diff-mode' face used to highlight function names produced by \"diff -p\"." @@ -259,7 +282,7 @@ when editing big diffs)." (defvar diff-function-face 'diff-function) (defface diff-context - '((t :inherit shadow)) + '((((class color grayscale) (min-colors 88)) :inherit shadow)) "`diff-mode' face used to highlight context and other side-information." :group 'diff-mode) ;; backward-compatibility alias @@ -298,24 +321,29 @@ when editing big diffs)." (defvar diff-font-lock-keywords - `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified - (1 diff-hunk-header-face) - (2 diff-function-face)) - ("^--- .+ ----$" . diff-hunk-header-face) ;context - ("^\\(\\*\\{15\\}\\)\\(.*\\)$" ;context - (1 diff-hunk-header-face) - (2 diff-function-face)) + `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified + (1 diff-hunk-header-face) (2 diff-function-face)) + ("^\\(\\*\\{15\\}\\)\\(.*\\)$" ;context + (1 diff-hunk-header-face) (2 diff-function-face)) ("^\\*\\*\\* .+ \\*\\*\\*\\*". diff-hunk-header-face) ;context + ("^--- .+ ----$" . diff-hunk-header-face) ;context + ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face) ;normal + ("^---$" . diff-hunk-header-face) ;normal ("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\)\\(.*[^*-]\\)?\n" (0 diff-header-face) (2 diff-file-header-face prepend)) - ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face) - ("^!.*\n" (0 diff-changed-face)) - ("^[+>].*\n" (0 diff-added-face)) - ("^[-<].*\n" (0 diff-removed-face)) - ("^Index: \\(.+\\).*\n" (0 diff-header-face) (1 diff-index-face prepend)) + ("^\\([-<]\\)\\(.*\n\\)" + (1 diff-indicator-removed-face) (2 diff-removed-face)) + ("^\\([+>]\\)\\(.*\n\\)" + (1 diff-indicator-added-face) (2 diff-added-face)) + ("^\\(!\\)\\(.*\n\\)" + (1 diff-indicator-changed-face) (2 diff-changed-face)) + ("^Index: \\(.+\\).*\n" + (0 diff-header-face) (1 diff-index-face prepend)) ("^Only in .*\n" . diff-nonexistent-face) - ("^#.*" . font-lock-string-face) - ("^[^-=+*!<>].*\n" (0 diff-context-face)))) + ("^\\(#\\)\\(.*\\)" + (1 font-lock-comment-delimiter-face) + (2 font-lock-comment-face)) + ("^[^-=+*!<>#].*\n" (0 diff-context-face)))) (defconst diff-font-lock-defaults '(diff-font-lock-keywords t nil nil nil (font-lock-multiline . nil))) diff --git a/lisp/diff.el b/lisp/diff.el index bee7277af78..7602ecb0e37 100644 --- a/lisp/diff.el +++ b/lisp/diff.el @@ -1,6 +1,7 @@ ;;; diff.el --- run `diff' in compilation-mode -;; Copyright (C) 1992, 1994, 1996, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: unix, tools diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index c9d5c22ded3..0d3f6fe125b 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -1,7 +1,7 @@ ;;; dired-aux.el --- less commonly used parts of dired -*-byte-compile-dynamic: t;-*- -;; Copyright (C) 1985, 1986, 1992, 1994, 1998, 2000, 2001, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1992, 1994, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>. ;; Maintainer: FSF @@ -126,16 +126,21 @@ Examples of PREDICATE: (let* ((dir1 (dired-current-directory)) (file-alist1 (dired-files-attributes dir1)) (file-alist2 (dired-files-attributes dir2)) - (file-list1 (mapcar + file-list1 file-list2) + (setq file-alist1 (delq (assoc "." file-alist1) file-alist1)) + (setq file-alist1 (delq (assoc ".." file-alist1) file-alist1)) + (setq file-alist2 (delq (assoc "." file-alist2) file-alist2)) + (setq file-alist2 (delq (assoc ".." file-alist2) file-alist2)) + (setq file-list1 (mapcar 'cadr (dired-file-set-difference file-alist1 file-alist2 - predicate))) - (file-list2 (mapcar + predicate)) + file-list2 (mapcar 'cadr (dired-file-set-difference file-alist2 file-alist1 - predicate)))) + predicate))) (dired-fun-in-all-buffers dir1 nil (lambda () @@ -2203,7 +2208,10 @@ Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit], RET or q), you can resume the query replace with the command \\[tags-loop-continue]." (interactive - "sQuery replace in marked files (regexp): \nsQuery replace %s by: \nP") + (let ((common + (query-replace-read-args + "Query replace regexp in marked files" t t))) + (list (nth 0 common) (nth 1 common) (nth 2 common)))) (dolist (file (dired-get-marked-files nil nil 'dired-nondirectory-p)) (let ((buffer (get-file-buffer file))) (if (and buffer (with-current-buffer buffer diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 42df15b47d2..8ce5e5d48d0 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -7,7 +7,8 @@ ;; Date: 1994/08/18 19:27:42 ;; Keywords: dired extensions files -;; Copyright (C) 1993, 1994, 1997, 2001, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1997, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -110,6 +111,8 @@ (require 'dired-aux) +(defvar vm-folder-directory) + ;;; User-defined variables. (defgroup dired-x nil @@ -157,7 +160,7 @@ Read-only folders only work in VM 5, not in VM 4." (define-minor-mode dired-omit-mode "Toggle Dired-Omit mode. With numeric ARG, enable Dired-Omit mode if ARG is positive, disable -otherwise. Enabling and disabling is buffer-local. +otherwise. Enabling and disabling is buffer-local. If enabled, \"uninteresting\" files are not listed. Uninteresting files are those whose filenames match regexp `dired-omit-files', plus those ending with extensions in `dired-omit-extensions'." @@ -185,7 +188,7 @@ files and lock files." If nil, Dired finds the directory as a subdirectory in some other buffer if it is present as one. -If there are several Dired buffers for a directory, the most recently +If there are several dired buffers for a directory, the most recently used is chosen. Dired avoids switching to the current buffer, so that if you have @@ -201,7 +204,7 @@ If nil, there is no maximum size." :group 'dired-x) (defcustom dired-enable-local-variables t - "*Control use of local-variables lists in dired. + "*Control use of local-variables lists in Dired. The value can be t, nil or something else. A value of t means local-variables lists are obeyed; nil means they are ignored; anything else means query. @@ -232,7 +235,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used." :group 'dired-x) (defcustom dired-clean-up-buffers-too t - "*Non-nil means offer to kill buffers visiting files and dirs deleted in dired." + "*Non-nil means offer to kill buffers visiting files and dirs deleted in Dired." :type 'boolean :group 'dired-x) @@ -271,7 +274,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used." (add-hook 'dired-after-readin-hook 'dired-omit-expunge) (defun dired-extra-startup () - "Automatically put on `dired-mode-hook' to get extra dired features: + "Automatically put on `dired-mode-hook' to get extra Dired features: \\<dired-mode-map> \\[dired-do-run-mail]\t-- run mail on folder (see `dired-bind-vm') \\[dired-info]\t-- run info on file @@ -279,8 +282,8 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used." \\[dired-do-find-marked-files]\t-- visit all marked files simultaneously \\[dired-omit-mode]\t-- toggle omitting of files \\[dired-mark-sexp]\t-- mark by Lisp expression - \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring. - \t You can feed it to other commands using \\[yank]. + \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring; + \t you can feed it to other commands using \\[yank] For more features, see variables @@ -357,7 +360,7 @@ Remove expanded subdir of deleted dir, if any." ;;; Mark files with some extension. (defun dired-mark-extension (extension &optional marker-char) "Mark all files with a certain EXTENSION for use in later commands. -A `.' is not automatically prepended to the string entered." +A `.' is *not* automatically prepended to the string entered." ;; EXTENSION may also be a list of extensions instead of a single one. ;; Optional MARKER-CHAR is marker to use. (interactive "sMarking extension: \nP") @@ -434,7 +437,7 @@ See variables `dired-texinfo-unclean-extensions', (defun dired-jump (&optional other-window) "Jump to dired buffer corresponding to current buffer. If in a file, dired the current directory and move to file's line. -If in dired already, pop up a level and goto old directory's line. +If in Dired already, pop up a level and goto old directory's line. In case the proper dired file line cannot be found, refresh the dired buffer and try again." (interactive "P") @@ -465,7 +468,7 @@ buffer and try again." (dired-goto-file file)))))))) (defun dired-jump-other-window () - "Like \\[dired-jump] (dired-jump) but in other window." + "Like \\[dired-jump] (`dired-jump') but in other window." (interactive) (dired-jump t)) @@ -478,13 +481,13 @@ buffer and try again." ;; sk 28-Aug-1991 09:37 (defvar dired-omit-localp 'no-dir "The LOCALP argument `dired-omit-expunge' passes to `dired-get-filename'. -If it is 'no-dir, omitting is much faster, but you can only match +If it is `no-dir', omitting is much faster, but you can only match against the non-directory part of the file name. Set it to nil if you need to match the entire file name.") ;; \017=^O for Omit - other packages can chose other control characters. (defvar dired-omit-marker-char ?\017 - "Temporary marker used by by dired-omit. + "Temporary marker used by dired-omit. Should never be used as marker by the user or other packages.") (defun dired-omit-startup () @@ -569,9 +572,9 @@ This functions works by temporarily binding `dired-marker-char' to REGEXP is matched against the entire file name. Does not re-mark files which already have a mark. With prefix argument, unflag all those files. -Second optional argument LOCALP is as in `dired-get-filename'." +Optional fourth argument LOCALP is as in `dired-get-filename'." (interactive "P") - (let ((dired-marker-char (if unflag-p ?\ dired-marker-char))) + (let ((dired-marker-char (if unflag-p ?\s dired-marker-char))) (dired-mark-if (and ;; not already marked @@ -621,7 +624,7 @@ Second optional argument LOCALP is as in `dired-get-filename'." ;;; For browsing `ls -lR' listings in a dired-like fashion. -(fset 'virtual-dired 'dired-virtual) +(defalias 'virtual-dired 'dired-virtual) (defun dired-virtual (dirname &optional switches) "Put this buffer into Virtual Dired mode. @@ -638,10 +641,10 @@ buffer. If you have save a Dired buffer in a file you can use \\[dired-virtual] to resume it in a later session. -Type \\<dired-mode-map>\\[revert-buffer] in the -Virtual Dired buffer and answer `y' to convert the virtual to a real -dired buffer again. You don't have to do this, though: you can relist -single subdirs using \\[dired-do-redisplay]." +Type \\<dired-mode-map>\\[revert-buffer] \ +in the Virtual Dired buffer and answer `y' to convert +the virtual to a real dired buffer again. You don't have to do this, though: +you can relist single subdirs using \\[dired-do-redisplay]." ;; DIRNAME is the top level directory of the buffer. It will become ;; its `default-directory'. If nil, the old value of @@ -725,12 +728,12 @@ nil." ;; `buffer-contents-mode-alist'. ;; Or you use infer-mode.el and infer-mode-alist, same syntax. (defun dired-virtual-mode () - "Put current buffer into virtual dired mode (see `dired-virtual'). + "Put current buffer into Virtual Dired mode (see `dired-virtual'). Useful on `buffer-contents-mode-alist' (which see) with the regexp \"^ \\(/[^ /]+\\)/?+:$\" -to put saved dired buffers automatically into virtual dired mode. +to put saved dired buffers automatically into Virtual Dired mode. Also useful for `auto-mode-alist' (which see) like this: @@ -768,7 +771,7 @@ Knows about the special cases in variable `default-directory-alist'." default-directory)) (defun dired-smart-shell-command (cmd &optional insert) - "Like function `shell-command', but in the current Tree Dired directory." + "Like function `shell-command', but in the current Virtual Dired directory." (interactive (list (read-from-minibuffer "Shell command: " nil nil nil 'shell-command-history) current-prefix-arg)) @@ -800,8 +803,9 @@ Knows about the special cases in variable `default-directory-alist'." (defvar dired-local-variables-file (convert-standard-filename ".dired") "Filename, as string, containing local dired buffer variables to be hacked. If this file found in current directory, then it will be inserted into dired -buffer and `hack-local-variables' will be run. See Emacs Info pages for more -information on local variables. See also `dired-enable-local-variables'.") +buffer and `hack-local-variables' will be run. See Info node +`(emacs)File Variables' for more information on local variables. +See also `dired-enable-local-variables'.") (defun dired-hack-local-variables () "Evaluate local variables in `dired-local-variables-file' for dired buffer." @@ -828,7 +832,7 @@ information on local variables. See also `dired-enable-local-variables'.") (defun dired-omit-here-always () "Create `dired-local-variables-file' for omitting and reverts directory. -Sets dired-omit-file-p to t in a local variables file that is readable by +Sets `dired-omit-mode' to t in a local variables file that is readable by dired." (interactive) (if (file-exists-p dired-local-variables-file) @@ -1024,7 +1028,7 @@ Each element of this list looks like \(REGEXP COMMAND...\) -where each COMMAND can either be a string or a lisp expression that evaluates +where each COMMAND can either be a string or a Lisp expression that evaluates to a string. If several COMMANDs are given, the first one will be the default and the rest will be added temporarily to the history and can be retrieved with \\[previous-history-element] (M-p) . @@ -1223,14 +1227,14 @@ not absolute ones like (dired-do-create-files 'relsymlink (function dired-make-relative-symlink) "RelSymLink" arg dired-keep-marker-relsymlink)) -(defun dired-do-relsymlink-regexp (regexp newname &optional whole-name) +(defun dired-do-relsymlink-regexp (regexp newname &optional arg whole-name) "RelSymlink all marked files containing REGEXP to NEWNAME. See functions `dired-do-rename-regexp' and `dired-do-relsymlink' for more info." (interactive (dired-mark-read-regexp "RelSymLink")) (dired-do-create-files-regexp (function dired-make-relative-symlink) - "RelSymLink" nil regexp newname whole-name dired-keep-marker-relsymlink)) + "RelSymLink" arg regexp newname whole-name dired-keep-marker-relsymlink)) ;;; VISIT ALL MARKED FILES SIMULTANEOUSLY. @@ -1321,7 +1325,7 @@ NOSELECT the files are merely found but not selected." (defun dired-man () "Run man on this file. Display old buffer if buffer name matches filename. -Uses ../lisp/man.el of \\[manual-entry] fame." +Uses `man.el' of \\[manual-entry] fame." (interactive) (require 'man) (let* ((file (dired-get-filename)) @@ -1441,7 +1445,7 @@ See also variable `dired-vm-read-only-folders'." (defun dired-initial-position (dirname) "Where point should go in a new listing of DIRNAME. Point assumed at beginning of new subdir line. -You may redefine this function as you wish, e.g. like in dired-x.el." +You may redefine this function as you wish, e.g. like in `dired-x.el'." (end-of-line) (if dired-find-subdir (dired-goto-subdir dirname)) ; new (if dired-trivial-filenames (dired-goto-next-nontrivial-file))) @@ -1550,7 +1554,7 @@ to mark all zero length files." (defvar dired-x-hands-off-my-keys t "*Non-nil means don't bind `dired-x-find-file' over `find-file' on keyboard. Similarly for `dired-x-find-file-other-window' over `find-file-other-window'. -If you change this variable after dired-x.el is loaded then do +If you change this variable after `dired-x.el' is loaded then do \\[dired-x-bind-find-file].") ;;; Bind `dired-x-find-file{-other-window}' over wherever @@ -1559,7 +1563,7 @@ If you change this variable after dired-x.el is loaded then do "Bind `dired-x-find-file' in place of `find-file' \(or reverse\). Similarly for `dired-x-find-file-other-window' and `find-file-other-window'. Binding direction based on `dired-x-hands-off-my-keys'. -This function part of `after-init-hook'." +This function is part of `after-init-hook'." (interactive) (if (interactive-p) (setq dired-x-hands-off-my-keys @@ -1592,9 +1596,9 @@ May create a new window, or reuse an existing one. See the function `display-buffer'. Identical to `find-file' except when called interactively, with a prefix arg -\(e.g., \\[universal-argument]\), in which case it guesses filename near -point. Useful for editing file mentioned in buffer you are viewing, or to -test if that file exists. Use minibuffer after snatching filename." +\(e.g., \\[universal-argument]\), in which case it guesses filename near point. +Useful for editing file mentioned in buffer you are viewing, +or to test if that file exists. Use minibuffer after snatching filename." (interactive (list (read-filename-at-point "Find file: "))) (find-file (expand-file-name filename))) @@ -1604,9 +1608,9 @@ May create a new window, or reuse an existing one. See the function `display-buffer'. Identical to `find-file-other-window' except when called interactively, with a -prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename -near point. Useful for editing file mentioned in buffer you are viewing, or -to test if that file exists. Use minibuffer after snatching filename." +prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename near point. +Useful for editing file mentioned in buffer you are viewing, +or to test if that file exists. Use minibuffer after snatching filename." (interactive (list (read-filename-at-point "Find file: "))) (find-file-other-window (expand-file-name filename))) @@ -1695,7 +1699,7 @@ If `current-prefix-arg' is non-nil, uses name at point as guess." "List of variables to be appended to reports sent by `dired-x-submit-report'.") (defun dired-x-submit-report () - "Submit via reporter.el a bug report on program. + "Submit via `reporter.el' a bug report on program. Send report on `dired-x-file' version `dired-x-version,' to `dired-x-maintainer' at address `dired-x-help-address' listing variables `dired-x-variable-list' in the message." diff --git a/lisp/dired.el b/lisp/dired.el index a2d1cf957a8..e06e808e1ae 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1,7 +1,7 @@ ;;; dired.el --- directory-browsing commands ;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 2000, -;; 2001, 2003, 2004 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> ;; Maintainer: FSF @@ -50,13 +50,13 @@ ;;;###autoload (defcustom dired-listing-switches "-al" - "*Switches passed to `ls' for dired. MUST contain the `l' option. + "*Switches passed to `ls' for Dired. MUST contain the `l' option. May contain all other options that don't contradict `-l'; may contain even `F', `b', `i' and `s'. See also the variable `dired-ls-F-marks-symlinks' concerning the `F' switch. On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp, some of the `ls' switches are not supported; see the doc string of -`insert-directory' on ls-lisp.el for more details." +`insert-directory' on `ls-lisp.el' for more details." :type 'string :group 'dired) @@ -88,7 +88,7 @@ If nil, `dired-listing-switches' is used.") ;;;###autoload (defcustom dired-ls-F-marks-symlinks nil - "*Informs dired about how `ls -lF' marks symbolic links. + "*Informs Dired about how `ls -lF' marks symbolic links. Set this to t if `ls' (or whatever program is specified by `insert-directory-program') with `-lF' marks the symbolic link itself with a trailing @ (usually the case under Ultrix). @@ -153,7 +153,7 @@ If a character, new links are unconditionally marked with that character." ;;;###autoload (defcustom dired-dwim-target nil - "*If non-nil, dired tries to guess a default target directory. + "*If non-nil, Dired tries to guess a default target directory. This means: if there is a dired buffer displayed in the next window, use its current subdir, instead of the current subdir of this dired buffer. @@ -176,13 +176,13 @@ The target is used in the prompt for file copy, rename etc." ;;; Hook variables (defcustom dired-load-hook nil - "Run after loading dired. + "Run after loading Dired. You can customize key bindings or load extensions with this." :group 'dired :type 'hook) (defcustom dired-mode-hook nil - "Run at the very end of dired-mode." + "Run at the very end of `dired-mode'." :group 'dired :type 'hook) @@ -224,13 +224,12 @@ as in other buffers." ;; concentric sets or an order for the marked files. ;; The code depends on dynamic scoping on the marker char. "In Dired, the current mark character. -This is what the `do' commands look for and what the `mark' commands store.") +This is what the do-commands look for, and what the mark-commands store.") (defvar dired-del-marker ?D "Character used to flag files for deletion.") -(defvar dired-shrink-to-fit - t +(defvar dired-shrink-to-fit t ;; I see no reason ever to make this nil -- rms. ;; (> baud-rate search-slow-speed) "Non-nil means Dired shrinks the display buffer to fit the marked files.") @@ -241,7 +240,7 @@ This is what the `do' commands look for and what the `mark' commands store.") ;;;###autoload (defvar dired-directory nil - "The directory name or wildcard spec that this Dired directory lists. + "The directory name or wildcard spec that this dired directory lists. Local to each dired buffer. May be a list, in which case the car is the directory name and the cdr is the list of files to mention. The directory name must be absolute, but need not be fully expanded.") @@ -295,7 +294,7 @@ of the line (\\n or \\r). Subexpression 2 must end right before the \\n or \\r.") (defgroup dired-faces nil - "Faces used by dired." + "Faces used by Dired." :group 'dired :group 'faces) @@ -598,7 +597,7 @@ list of files to make directory entries for. You can move around in it with the usual commands. You can flag files for deletion with \\[dired-flag-file-deletion] and then delete them by typing \\[dired-do-flagged-delete]. -Type \\[describe-mode] after entering dired for more info. +Type \\[describe-mode] after entering Dired for more info. If DIRNAME is already in a dired buffer, that buffer is used without refresh." ;; Cannot use (interactive "D") because of wildcards. @@ -911,7 +910,7 @@ BEG..END is the line where the file info is located." (move-to-column curcol) (when (looking-at (concat - (if (eq (char-before) ?\ ) " *" "[^ ]* *") + (if (eq (char-before) ?\s) " *" "[^ ]* *") (if num-align "[0-9][^ ]*"))) (- (match-end 0) (match-beginning 0))))) ;; Now, the number of spaces to insert is align-pt-offset @@ -1020,7 +1019,7 @@ If HDR is non-nil, insert a header line with the directory name." (defun dired-revert (&optional arg noconfirm) "Reread the dired buffer. -Must also be called after dired-actual-switches have changed. +Must also be called after `dired-actual-switches' have changed. Should not fail even on completely garbaged buffers. Preserves old cursor, marks/flags, hidden-p." (widen) ; just in case user narrowed @@ -1470,6 +1469,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." ;; Dired mode is suitable only for specially formatted data. (put 'dired-mode 'mode-class 'special) +;; Autoload cookie needed by desktop.el +;;;###autoload (defun dired-mode (&optional dirname switches) "\ Mode for \"editing\" directory listings. @@ -1500,12 +1501,12 @@ Type \\[dired-find-file-other-window] to find file or dired directory in Other w Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer. Type \\[dired-do-rename] to Rename a file or move the marked files to another directory. Type \\[dired-do-copy] to Copy files. -Type \\[dired-sort-toggle-or-edit] to toggle sorting by name/date or change the `ls' switches. -Type \\[revert-buffer] to read all currently expanded directories again. +Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches. +Type \\[revert-buffer] to read all currently expanded directories aGain. This retains all marks and hides subdirs again that were hidden before. SPC and DEL can be used to move down and up by lines. -If dired ever gets confused, you can either type \\[revert-buffer] \ +If Dired ever gets confused, you can either type \\[revert-buffer] \ to read the directories again, type \\[dired-do-redisplay] \ to relist a single or the marked files or a @@ -1575,7 +1576,7 @@ Keybindings: ;; Idiosyncratic dired commands that don't deal with marks. (defun dired-summary () - "Summarize basic Dired commands and show recent Dired errors." + "Summarize basic Dired commands and show recent dired errors." (interactive) (dired-why) ;>> this should check the key-bindings and use substitute-command-keys if non-standard @@ -1590,7 +1591,7 @@ You can use it to recover marks, killed lines or subdirs." (let (buffer-read-only) (undo)) (dired-build-subdir-alist) - (message "Change in Dired buffer undone. + (message "Change in dired buffer undone. Actual changes in files cannot be undone by Emacs.")) (defun dired-next-line (arg) @@ -1654,7 +1655,7 @@ Creates a buffer if necessary." file-name (if (file-symlink-p file-name) (error "File is a symlink to a nonexistent target") - (error "File no longer exists; type `g' to update Dired buffer"))))) + (error "File no longer exists; type `g' to update dired buffer"))))) ;; Force `f' rather than `e' in the mode doc: (defalias 'dired-advertised-find-file 'dired-find-file) @@ -1696,7 +1697,7 @@ Creates a buffer if necessary." (find-file-other-window (file-name-sans-versions file t))))) (defun dired-view-file () - "In Dired, examine a file in view mode, returning to dired when done. + "In Dired, examine a file in view mode, returning to Dired when done. When file is a directory, show it in this buffer if it is inserted. Otherwise, display it in another buffer." (interactive) @@ -1859,19 +1860,22 @@ DIR must be a directory name, not a file name." (western-comma (concat month s "+" dd "," s "+" yyyy)) ;; Japanese MS-Windows ls-lisp has one-digit months, and ;; omits the Kanji characters after month and day-of-month. + ;; On Mac OS X 10.3, the date format in East Asian locales is + ;; day-of-month digits followed by month digits. (mm "[ 0-1]?[0-9]") - (japanese - (concat mm l "?" s dd l "?" s "+" + (east-asian + (concat "\\(" mm l "?" s dd l "?" s "+" + "\\|" dd s mm s "+" "\\)" "\\(" HH:MM "\\|" yyyy l "?" "\\)"))) ;; The "[0-9]" below requires the previous column to end in a digit. ;; This avoids recognizing `1 may 1997' as a date in the line: ;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README - ;; The "[kKMGTPEZY]?" below supports "ls -alh" output. + ;; The "[BkKMGTPEZY]?" below supports "ls -alh" output. ;; The ".*" below finds the last match if there are multiple matches. ;; This avoids recognizing `jservice 10 1024' as a date in the line: ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host - (concat ".*[0-9][kKMGTPEZY]?" s - "\\(" western "\\|" western-comma "\\|" japanese "\\|" iso "\\)" + (concat ".*[0-9][BkKMGTPEZY]?" s + "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)" s "+")) "Regular expression to match up to the file name in a directory listing. The default value is designed to recognize dates and times @@ -1952,11 +1956,11 @@ Return the position of the beginning of the filename, or nil if none found." (eq (preceding-char) ?@) ;; did ls really mark the link? (forward-char -1)))) (goto-char eol) ;; else not a symbolic link - ;; ls -lF marks dirs, sockets and executables with exactly one - ;; trailing character. (Executable bits on symlinks ain't mean + ;; ls -lF marks dirs, sockets, fifos and executables with exactly + ;; one trailing character. (Executable bits on symlinks ain't mean ;; a thing, even to ls, but we know it's not a symlink.) (and used-F - (or (memq file-type '(?d ?s)) + (or (memq file-type '(?d ?s ?p)) executable) (forward-char -1)))) (or no-error @@ -1976,7 +1980,7 @@ Return the position of the beginning of the filename, or nil if none found." "Copy names of marked (or next ARG) files into the kill ring. The names are separated by a space. With a zero prefix arg, use the absolute file name of each marked file. -With \\[universal-argument], use the file name relative to the Dired buffer's +With \\[universal-argument], use the file name relative to the dired buffer's `default-directory'. (This still may contain slashes if in a subdirectory.) If on a subdir headerline, use absolute subdirname instead; @@ -2361,7 +2365,7 @@ Anything else means ask for each directory." (defun dired-delete-file (file &optional recursive) "\ Delete FILE or directory (possibly recursively if optional RECURSIVE is true.) RECURSIVE determines what to do with a non-empty directory. If RECURSIVE is: -Nil, do not delete. +nil, do not delete. `always', delete recursively without asking. `top', ask for each directory at top level. Anything else, ask for each sub-directory." @@ -2554,7 +2558,7 @@ if there are no flagged files." ))) (defvar dired-no-confirm nil - "A list of symbols for commands dired should not confirm. + "A list of symbols for commands Dired should not confirm. Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress', `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink', `touch' and `uncompress'.") @@ -2891,7 +2895,7 @@ A prefix argument says to unflag those files instead." "Flag all backup files (names ending with `~') for deletion. With prefix argument, unflag these files." (interactive "P") - (let ((dired-marker-char (if unflag-p ?\ dired-del-marker))) + (let ((dired-marker-char (if unflag-p ?\s dired-del-marker))) (dired-mark-if ;; Don't call backup-file-name-p unless the last character looks like ;; it might be the end of a backup file name. This isn't very general, @@ -2925,7 +2929,7 @@ OLD and NEW are both characters used to mark files." (save-excursion (goto-char (point-min)) (while (search-forward string nil t) - (if (if (= old ?\ ) + (if (if (= old ?\s) (save-match-data (dired-get-filename 'no-dir t)) t) @@ -2933,7 +2937,7 @@ OLD and NEW are both characters used to mark files." (match-end 0) old new))))))) (defun dired-unmark-all-marks () - "Remove all marks from all files in the Dired buffer." + "Remove all marks from all files in the dired buffer." (interactive) (dired-unmark-all-files ?\r)) @@ -2961,7 +2965,7 @@ Type SPC or `y' to unmark one file, DEL or `n' to skip to next, (dired-query 'query "Unmark file `%s'? " file)))) (progn (subst-char-in-region (1- (point)) (point) - (preceding-char) ?\ ) + (preceding-char) ?\s) (setq count (1+ count))))) (message (if (= count 1) "1 mark removed" "%d marks removed") @@ -3004,7 +3008,7 @@ Thus, use \\[backward-page] to find the beginning of a group of errors." (apply (function format) log args) log))) ((bufferp log) - (insert-buffer log)) + (insert-buffer-substring log)) ((eq t log) (backward-page 1) (unless (bolp) @@ -3048,15 +3052,15 @@ format, use `\\[universal-argument] \\[dired]'.") (defvar dired-sort-by-date-regexp (concat "^-[^" dired-ls-sorting-switches "]*t[^" dired-ls-sorting-switches "]*$") - "Regexp recognized by dired to set `by date' mode.") + "Regexp recognized by Dired to set `by date' mode.") (defvar dired-sort-by-name-regexp (concat "^-[^t" dired-ls-sorting-switches "]+$") - "Regexp recognized by dired to set `by name' mode.") + "Regexp recognized by Dired to set `by name' mode.") (defvar dired-sort-inhibit nil "Non-nil means the Dired sort command is disabled. -The idea is to set this buffer-locally in special Dired buffers.") +The idea is to set this buffer-locally in special dired buffers.") (defun dired-sort-set-modeline () ;; Set modeline display according to dired-actual-switches. @@ -3078,7 +3082,7 @@ The idea is to set this buffer-locally in special Dired buffers.") With a prefix argument you can edit the current listing switches instead." (interactive "P") (when dired-sort-inhibit - (error "Cannot sort this Dired buffer")) + (error "Cannot sort this dired buffer")) (if arg (dired-sort-other (read-string "ls switches (must contain -l): " dired-actual-switches)) @@ -3121,7 +3125,7 @@ With a prefix argument you can edit the current listing switches instead." (concat result (substring string start)))) (defun dired-sort-other (switches &optional no-revert) - "Specify new ls SWITCHES for current dired buffer. + "Specify new `ls' SWITCHES for current dired buffer. Values matching `dired-sort-by-date-regexp' or `dired-sort-by-name-regexp' set the minor mode accordingly, others appear literally in the mode line. With optional second arg NO-REVERT, don't refresh the listing afterwards." @@ -3262,7 +3266,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;; Directory name followed by list of files. (cons (desktop-file-name (car dired-directory) desktop-dirname) (cdr dired-directory)) - ;; Directory name, optionally with with shell wildcard. + ;; Directory name, optionally with shell wildcard. (desktop-file-name dired-directory desktop-dirname)) ;; Subdirectories in `dired-subdir-alist'. (cdr @@ -3271,13 +3275,12 @@ Ask means pop up a menu for the user to select one of copy, move or link." (function (lambda (f) (desktop-file-name (car f) desktop-dirname))) dired-subdir-alist))))) -;;;###autoload (defun dired-restore-desktop-buffer (desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) "Restore a dired buffer specified in a desktop file." ;; First element of `desktop-buffer-misc' is the value of `dired-directory'. - ;; This value is a directory name, optionally with with shell wildcard or + ;; This value is a directory name, optionally with shell wildcard or ;; a directory name followed by list of files. (let* ((dired-dir (car desktop-buffer-misc)) (dir (if (consp dired-dir) (car dired-dir) dired-dir))) @@ -3292,6 +3295,9 @@ Ask means pop up a menu for the user to select one of copy, move or link." (when desktop-missing-file-warning (sit-for 1)) nil))) +(add-to-list 'desktop-buffer-mode-handlers + '(dired-mode . dired-restore-desktop-buffer)) + (if (eq system-type 'vax-vms) (load "dired-vms")) diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el index 5ae76f91316..573803bfb98 100644 --- a/lisp/dirtrack.el +++ b/lisp/dirtrack.el @@ -1,6 +1,6 @@ ;;; dirtrack.el --- Directory Tracking by watching the prompt -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Sun Nov 17 1996 @@ -133,8 +133,8 @@ (defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1) "*List for directory tracking. First item is a regexp that describes where to find the path in a prompt. -Second is a number, the regexp group to match. Optional third item is -whether the prompt is multi-line. If nil or omitted, prompt is assumed to +Second is a number, the regexp group to match. Optional third item is +whether the prompt is multi-line. If nil or omitted, prompt is assumed to be on a single line." :group 'dirtrack :type '(sexp (regexp :tag "Prompt Expression") diff --git a/lisp/disp-table.el b/lisp/disp-table.el index 0d0f4e4e09a..8e5fa12bad7 100644 --- a/lisp/disp-table.el +++ b/lisp/disp-table.el @@ -1,6 +1,7 @@ ;;; disp-table.el --- functions for dealing with char tables -;; Copyright (C) 1987, 94, 95, 1999, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1994, 1995, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Erik Naggum <erik@naggum.no> ;; Based on a previous version by Howard Gayle diff --git a/lisp/dnd.el b/lisp/dnd.el index 9a925550411..1092f4d087f 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -1,7 +1,6 @@ ;;; dnd.el --- drag and drop support. -;; Copyright (C) 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 2005 Free Software Foundation, Inc. ;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> ;; Maintainer: FSF diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index 920625526e3..bf25ce1f589 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -1,6 +1,7 @@ ;;; dos-fns.el --- MS-Dos specific functions -;; Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1993, 1995, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: Morten Welinder <terra@diku.dk> ;; Keywords: internal diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el index 8fdff647bed..1909e941c1f 100644 --- a/lisp/dos-vars.el +++ b/lisp/dos-vars.el @@ -1,6 +1,6 @@ ;;; dos-vars.el --- MS-Dos specific user options -;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el index 644b457393f..697f6eb4d5c 100644 --- a/lisp/dos-w32.el +++ b/lisp/dos-w32.el @@ -1,6 +1,6 @@ ;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: Geoff Voelker <voelker@cs.washington.edu> ;; Keywords: internal diff --git a/lisp/double.el b/lisp/double.el index 01b004ed158..d112fbed3cd 100644 --- a/lisp/double.el +++ b/lisp/double.el @@ -1,6 +1,7 @@ ;;; double.el --- support for keyboard remapping with double clicking -;; Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: i18n diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el index 2a89d4ef654..2ee90192ea3 100644 --- a/lisp/ebuff-menu.el +++ b/lisp/ebuff-menu.el @@ -1,6 +1,7 @@ ;;; ebuff-menu.el --- electric-buffer-list mode -;; Copyright (C) 1985, 1986, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@ai.mit.edu> ;; Maintainer: FSF @@ -125,6 +126,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. (recenter -1)))) (electric-buffer-update-highlight)) +(defvar Helper-return-blurb) + (put 'Electric-buffer-menu-mode 'mode-class 'special) (defun Electric-buffer-menu-mode () "Major mode for editing a list of buffers. diff --git a/lisp/echistory.el b/lisp/echistory.el index e134b16ce6c..3b4b8419bd0 100644 --- a/lisp/echistory.el +++ b/lisp/echistory.el @@ -1,6 +1,6 @@ ;;; echistory.el --- Electric Command History Mode -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el index 659c4ffedb0..0a3f6920e2b 100644 --- a/lisp/ediff-diff.el +++ b/lisp/ediff-diff.el @@ -1,6 +1,7 @@ ;;; ediff-diff.el --- diff-related utilities -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -30,6 +31,7 @@ ;; compiler pacifier (defvar ediff-default-variant) (defvar null-device) +(defvar longlines-mode) (eval-when-compile (let ((load-path (cons (expand-file-name ".") load-path))) @@ -459,24 +461,46 @@ one optional arguments, diff-number to refine.") c-prev c-end) ;; else convert lines to points (ediff-with-current-buffer A-buffer - (forward-line (- a-begin a-prev)) - (setq a-begin-pt (point)) - (forward-line (- a-end a-begin)) - (setq a-end-pt (point) - a-prev a-end)) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + ;; we must disable and then restore longlines-mode + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- a-begin a-prev)) + (setq a-begin-pt (point)) + (forward-line (- a-end a-begin)) + (setq a-end-pt (point) + a-prev a-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + )) (ediff-with-current-buffer B-buffer - (forward-line (- b-begin b-prev)) - (setq b-begin-pt (point)) - (forward-line (- b-end b-begin)) - (setq b-end-pt (point) - b-prev b-end)) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- b-begin b-prev)) + (setq b-begin-pt (point)) + (forward-line (- b-end b-begin)) + (setq b-end-pt (point) + b-prev b-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + )) (if (ediff-buffer-live-p C-buffer) (ediff-with-current-buffer C-buffer - (forward-line (- c-begin c-prev)) - (setq c-begin-pt (point)) - (forward-line (- c-end c-begin)) - (setq c-end-pt (point) - c-prev c-end))) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- c-begin c-prev)) + (setq c-begin-pt (point)) + (forward-line (- c-end c-begin)) + (setq c-end-pt (point) + c-prev c-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + ))) (setq diff-list (nconc diff-list @@ -1060,30 +1084,59 @@ delimiter regions")) c-prev c-end) ;; else convert lines to points (ediff-with-current-buffer A-buffer - (forward-line (- a-begin a-prev)) - (setq a-begin-pt (point)) - (forward-line (- a-end a-begin)) - (setq a-end-pt (point) - a-prev a-end)) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + ;; we must disable and then restore longlines-mode + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- a-begin a-prev)) + (setq a-begin-pt (point)) + (forward-line (- a-end a-begin)) + (setq a-end-pt (point) + a-prev a-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + )) (ediff-with-current-buffer B-buffer - (forward-line (- b-begin b-prev)) - (setq b-begin-pt (point)) - (forward-line (- b-end b-begin)) - (setq b-end-pt (point) - b-prev b-end)) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- b-begin b-prev)) + (setq b-begin-pt (point)) + (forward-line (- b-end b-begin)) + (setq b-end-pt (point) + b-prev b-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + )) (ediff-with-current-buffer C-buffer - (forward-line (- c-begin c-prev)) - (setq c-begin-pt (point)) - (forward-line (- c-end c-begin)) - (setq c-end-pt (point) - c-prev c-end)) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- c-begin c-prev)) + (setq c-begin-pt (point)) + (forward-line (- c-end c-begin)) + (setq c-end-pt (point) + c-prev c-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + )) (if (ediff-buffer-live-p anc-buffer) (ediff-with-current-buffer anc-buffer - (forward-line (- c-or-anc-begin anc-prev)) - (setq anc-begin-pt (point)) - (forward-line (- c-or-anc-end c-or-anc-begin)) - (setq anc-end-pt (point) - anc-prev c-or-anc-end))) + (let ((longlines-mode-val + (if (and (boundp 'longlines-mode) longlines-mode) 1 0))) + (if (eq longlines-mode-val 1) + (longlines-mode 0)) + (forward-line (- c-or-anc-begin anc-prev)) + (setq anc-begin-pt (point)) + (forward-line (- c-or-anc-end c-or-anc-begin)) + (setq anc-end-pt (point) + anc-prev c-or-anc-end) + (if (eq longlines-mode-val 1) + (longlines-mode longlines-mode-val)) + ))) (setq diff-list (nconc diff-list @@ -1425,6 +1478,5 @@ affects only files whose names match the expression." ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;;; End: - ;;; arch-tag: a86d448e-58d7-4572-a1d9-fdedfa22f648 ;;; ediff-diff.el ends here diff --git a/lisp/ediff-help.el b/lisp/ediff-help.el index 87056e3723f..21fe85c415f 100644 --- a/lisp/ediff-help.el +++ b/lisp/ediff-help.el @@ -1,6 +1,7 @@ ;;; ediff-help.el --- Code related to the contents of Ediff help buffers -;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> diff --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el index 8d038a4d93b..c0add7f8f86 100644 --- a/lisp/ediff-hook.el +++ b/lisp/ediff-hook.el @@ -1,6 +1,7 @@ ;;; ediff-hook.el --- setup for Ediff's menus and autoloads -;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el index 18e1a7128f1..5bffea1ec4b 100644 --- a/lisp/ediff-init.el +++ b/lisp/ediff-init.el @@ -1,7 +1,7 @@ ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -559,24 +559,24 @@ See the documentation string of `ediff-focus-on-regexp-matches' for details.") ;; Highlighting -(defcustom ediff-before-flag-bol (if ediff-xemacs-p (make-glyph "->>") "->>") +(defcustom ediff-before-flag-bol (if (featurep 'xemacs) (make-glyph "->>") "->>") "*Flag placed before a highlighted block of differences, if block starts at beginning of a line." :type 'string :tag "Region before-flag at beginning of line" :group 'ediff) -(defcustom ediff-after-flag-eol (if ediff-xemacs-p (make-glyph "<<-") "<<-") +(defcustom ediff-after-flag-eol (if (featurep 'xemacs) (make-glyph "<<-") "<<-") "*Flag placed after a highlighted block of differences, if block ends at end of a line." :type 'string :tag "Region after-flag at end of line" :group 'ediff) -(defcustom ediff-before-flag-mol (if ediff-xemacs-p (make-glyph "->>") "->>") +(defcustom ediff-before-flag-mol (if (featurep 'xemacs) (make-glyph "->>") "->>") "*Flag placed before a highlighted block of differences, if block starts in mid-line." :type 'string :tag "Region before-flag in the middle of line" :group 'ediff) -(defcustom ediff-after-flag-mol (if ediff-xemacs-p (make-glyph "<<-") "<<-") +(defcustom ediff-after-flag-mol (if (featurep 'xemacs) (make-glyph "<<-") "<<-") "*Flag placed after a highlighted block of differences, if block ends in mid-line." :type 'string :tag "Region after-flag in the middle of line" @@ -854,10 +854,10 @@ to temp files when Ediff needs to find fine differences." ;; A-list of current-diff-face-* symbols associated with buf types (defconst ediff-current-diff-face-alist - '((A . ediff-current-diff-face-A) - (B . ediff-current-diff-face-B) - (C . ediff-current-diff-face-C) - (Ancestor . ediff-current-diff-face-Ancestor))) + '((A . ediff-current-diff-A) + (B . ediff-current-diff-B) + (C . ediff-current-diff-C) + (Ancestor . ediff-current-diff-Ancestor))) (defun ediff-set-overlay-face (extent face) @@ -915,8 +915,6 @@ to temp files when Ediff needs to find fine differences." (t (:inverse-video t)))) "Face for highlighting the selected difference in buffer A." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-current-diff-face-A 'face-alias 'ediff-current-diff-A) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-current-diff-face-A 'ediff-current-diff-A @@ -924,13 +922,13 @@ to temp files when Ediff needs to find fine differences." DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-A' this variable represents.") -(ediff-hide-face 'ediff-current-diff-A) +(ediff-hide-face ediff-current-diff-face-A) ;; Until custom.el for XEmacs starts supporting :inverse-video we do this. ;; This means that some user customization may be trashed. (if (and ediff-xemacs-p (ediff-has-face-support-p) (not (ediff-color-display-p))) - (copy-face 'modeline 'ediff-current-diff-A)) + (copy-face 'modeline ediff-current-diff-face-A)) @@ -948,8 +946,6 @@ this variable represents.") (t (:inverse-video t)))) "Face for highlighting the selected difference in buffer B." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-current-diff-face-B 'face-alias 'ediff-current-diff-B) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-current-diff-face-B 'ediff-current-diff-B @@ -957,13 +953,13 @@ this variable represents.") this variable. Instead, use the customization widget to customize the actual face `ediff-current-diff-B' this variable represents.") -(ediff-hide-face 'ediff-current-diff-B) +(ediff-hide-face ediff-current-diff-face-B) ;; Until custom.el for XEmacs starts supporting :inverse-video we do this. ;; This means that some user customization may be trashed. (if (and ediff-xemacs-p (ediff-has-face-support-p) (not (ediff-color-display-p))) - (copy-face 'modeline 'ediff-current-diff-B)) + (copy-face 'modeline ediff-current-diff-face-B)) (defface ediff-current-diff-C @@ -978,8 +974,6 @@ this variable represents.") (t (:inverse-video t)))) "Face for highlighting the selected difference in buffer C." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-current-diff-face-C 'face-alias 'ediff-current-diff-C) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-current-diff-face-C 'ediff-current-diff-C @@ -987,13 +981,13 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-C' this variable represents.") -(ediff-hide-face 'ediff-current-diff-C) +(ediff-hide-face ediff-current-diff-face-C) ;; Until custom.el for XEmacs starts supporting :inverse-video we do this. ;; This means that some user customization may be trashed. (if (and ediff-xemacs-p (ediff-has-face-support-p) (not (ediff-color-display-p))) - (copy-face 'modeline 'ediff-current-diff-C)) + (copy-face 'modeline ediff-current-diff-face-C)) (defface ediff-current-diff-Ancestor @@ -1008,8 +1002,6 @@ this variable represents.") (t (:inverse-video t)))) "Face for highlighting the selected difference in buffer Ancestor." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-current-diff-face-Ancestor 'face-alias 'ediff-current-diff-Ancestor) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-Ancestor @@ -1017,13 +1009,13 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-Ancestor' this variable represents.") -(ediff-hide-face 'ediff-current-diff-Ancestor) +(ediff-hide-face ediff-current-diff-face-Ancestor) ;; Until custom.el for XEmacs starts supporting :inverse-video we do this. ;; This means that some user customization may be trashed. (if (and ediff-xemacs-p (ediff-has-face-support-p) (not (ediff-color-display-p))) - (copy-face 'modeline 'ediff-current-diff-Ancestor)) + (copy-face 'modeline ediff-current-diff-face-Ancestor)) (defface ediff-fine-diff-A @@ -1038,8 +1030,6 @@ this variable represents.") (t (:underline t :stipple "gray3")))) "Face for highlighting the refinement of the selected diff in buffer A." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-fine-diff-face-A 'face-alias 'ediff-fine-diff-A) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-fine-diff-face-A 'ediff-fine-diff-A @@ -1047,7 +1037,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-fine-diff-A' this variable represents.") -(ediff-hide-face 'ediff-fine-diff-A) +(ediff-hide-face ediff-fine-diff-face-A) (defface ediff-fine-diff-B (if ediff-emacs-p @@ -1061,8 +1051,6 @@ this variable represents.") (t (:underline t :stipple "gray3")))) "Face for highlighting the refinement of the selected diff in buffer B." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-fine-diff-face-B 'face-alias 'ediff-fine-diff-B) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-fine-diff-face-B 'ediff-fine-diff-B @@ -1070,7 +1058,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-fine-diff-B' this variable represents.") -(ediff-hide-face 'ediff-fine-diff-B) +(ediff-hide-face ediff-fine-diff-face-B) (defface ediff-fine-diff-C (if ediff-emacs-p @@ -1089,8 +1077,6 @@ this variable represents.") (t (:underline t :stipple "gray3")))) "Face for highlighting the refinement of the selected diff in buffer C." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-fine-diff-face-C 'face-alias 'ediff-fine-diff-C) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-fine-diff-face-C 'ediff-fine-diff-C @@ -1098,7 +1084,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-fine-diff-C' this variable represents.") -(ediff-hide-face 'ediff-fine-diff-C) +(ediff-hide-face ediff-fine-diff-face-C) (defface ediff-fine-diff-Ancestor (if ediff-emacs-p @@ -1114,8 +1100,6 @@ this variable represents.") At present, this face is not used and no fine differences are computed for the ancestor buffer." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-fine-diff-face-Ancestor 'face-alias 'ediff-fine-diff-Ancestor) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-Ancestor @@ -1123,7 +1107,7 @@ ancestor buffer." DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-fine-diff-Ancestor' this variable represents.") -(ediff-hide-face 'ediff-fine-diff-Ancestor) +(ediff-hide-face ediff-fine-diff-face-Ancestor) ;; Some installs don't have stipple or Stipple. So, try them in turn. (defvar stipple-pixmap @@ -1151,8 +1135,6 @@ this variable represents.") (t (:italic t :stipple ,stipple-pixmap)))) "Face for highlighting even-numbered non-current differences in buffer A." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-even-diff-face-A 'face-alias 'ediff-even-diff-A) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-even-diff-face-A 'ediff-even-diff-A @@ -1160,7 +1142,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-even-diff-A' this variable represents.") -(ediff-hide-face 'ediff-even-diff-A) +(ediff-hide-face ediff-even-diff-face-A) (defface ediff-even-diff-B (if ediff-emacs-p @@ -1174,8 +1156,6 @@ this variable represents.") (t (:italic t :stipple ,stipple-pixmap)))) "Face for highlighting even-numbered non-current differences in buffer B." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-even-diff-face-B 'face-alias 'ediff-even-diff-B) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-even-diff-face-B 'ediff-even-diff-B @@ -1183,7 +1163,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-even-diff-B' this variable represents.") -(ediff-hide-face 'ediff-even-diff-B) +(ediff-hide-face ediff-even-diff-face-B) (defface ediff-even-diff-C (if ediff-emacs-p @@ -1202,8 +1182,6 @@ this variable represents.") (t (:italic t :stipple ,stipple-pixmap)))) "Face for highlighting even-numbered non-current differences in buffer C." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-even-diff-face-C 'face-alias 'ediff-even-diff-C) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-even-diff-face-C 'ediff-even-diff-C @@ -1211,7 +1189,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-even-diff-C' this variable represents.") -(ediff-hide-face 'ediff-even-diff-C) +(ediff-hide-face ediff-even-diff-face-C) (defface ediff-even-diff-Ancestor (if ediff-emacs-p @@ -1230,8 +1208,6 @@ this variable represents.") (t (:italic t :stipple ,stipple-pixmap)))) "Face for highlighting even-numbered non-current differences in the ancestor buffer." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-even-diff-face-Ancestor 'face-alias 'ediff-even-diff-Ancestor) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-Ancestor @@ -1239,7 +1215,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-even-diff-Ancestor' this variable represents.") -(ediff-hide-face 'ediff-even-diff-Ancestor) +(ediff-hide-face ediff-even-diff-face-Ancestor) ;; Association between buffer types and even-diff-face symbols (defconst ediff-even-diff-face-alist @@ -1263,8 +1239,6 @@ this variable represents.") (t (:italic t :stipple "gray1")))) "Face for highlighting odd-numbered non-current differences in buffer A." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-odd-diff-face-A 'face-alias 'ediff-odd-diff-A) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-odd-diff-face-A 'ediff-odd-diff-A @@ -1272,7 +1246,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-odd-diff-A' this variable represents.") -(ediff-hide-face 'ediff-odd-diff-A) +(ediff-hide-face ediff-odd-diff-face-A) (defface ediff-odd-diff-B @@ -1290,8 +1264,6 @@ this variable represents.") (t (:italic t :stipple "gray1")))) "Face for highlighting odd-numbered non-current differences in buffer B." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-odd-diff-face-B 'face-alias 'ediff-odd-diff-B) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-odd-diff-face-B 'ediff-odd-diff-B @@ -1299,7 +1271,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-odd-diff-B' this variable represents.") -(ediff-hide-face 'ediff-odd-diff-B) +(ediff-hide-face ediff-odd-diff-face-B) (defface ediff-odd-diff-C (if ediff-emacs-p @@ -1316,8 +1288,6 @@ this variable represents.") (t (:italic t :stipple "gray1")))) "Face for highlighting odd-numbered non-current differences in buffer C." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-odd-diff-face-C 'face-alias 'ediff-odd-diff-C) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-odd-diff-face-C 'ediff-odd-diff-C @@ -1325,7 +1295,7 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-odd-diff-C' this variable represents.") -(ediff-hide-face 'ediff-odd-diff-C) +(ediff-hide-face ediff-odd-diff-face-C) (defface ediff-odd-diff-Ancestor (if ediff-emacs-p @@ -1339,8 +1309,6 @@ this variable represents.") (t (:italic t :stipple "gray1")))) "Face for highlighting odd-numbered non-current differences in the ancestor buffer." :group 'ediff-highlighting) -;; backward-compatibility alias -(put 'ediff-odd-diff-face-Ancestor 'face-alias 'ediff-odd-diff-Ancestor) ;; An internal variable. Ediff takes the face from here. When unhighlighting, ;; this variable is set to nil, then again to the appropriate face. (defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-Ancestor @@ -1348,30 +1316,30 @@ this variable represents.") DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-odd-diff-Ancestor' this variable represents.") -(ediff-hide-face 'ediff-odd-diff-Ancestor) +(ediff-hide-face ediff-odd-diff-face-Ancestor) ;; Association between buffer types and odd-diff-face symbols (defconst ediff-odd-diff-face-alist - '((A . ediff-odd-diff-face-A) - (B . ediff-odd-diff-face-B) - (C . ediff-odd-diff-face-C) - (Ancestor . ediff-odd-diff-face-Ancestor))) + '((A . ediff-odd-diff-A) + (B . ediff-odd-diff-B) + (C . ediff-odd-diff-C) + (Ancestor . ediff-odd-diff-Ancestor))) ;; A-list of fine-diff face symbols associated with buffer types (defconst ediff-fine-diff-face-alist - '((A . ediff-fine-diff-face-A) - (B . ediff-fine-diff-face-B) - (C . ediff-fine-diff-face-C) - (Ancestor . ediff-fine-diff-face-Ancestor))) + '((A . ediff-fine-diff-A) + (B . ediff-fine-diff-B) + (C . ediff-fine-diff-C) + (Ancestor . ediff-fine-diff-Ancestor))) ;; Help echo -(put 'ediff-fine-diff-A 'ediff-help-echo +(put ediff-fine-diff-face-A 'ediff-help-echo "A `refinement' of the current difference region") -(put 'ediff-fine-diff-B 'ediff-help-echo +(put ediff-fine-diff-face-B 'ediff-help-echo "A `refinement' of the current difference region") -(put 'ediff-fine-diff-C 'ediff-help-echo +(put ediff-fine-diff-face-C 'ediff-help-echo "A `refinement' of the current difference region") -(put 'ediff-fine-diff-Ancestor 'ediff-help-echo +(put ediff-fine-diff-face-Ancestor 'ediff-help-echo "A `refinement' of the current difference region") (add-hook 'ediff-quit-hook 'ediff-cleanup-mess) @@ -1496,7 +1464,7 @@ This default should work without changes." :group 'ediff) ;; needed to simulate frame-char-width in XEmacs. -(defvar ediff-H-glyph (if ediff-xemacs-p (make-glyph "H"))) +(defvar ediff-H-glyph (if (featurep 'xemacs) (make-glyph "H"))) ;; Temporary file used for refining difference regions in buffer A. @@ -1899,6 +1867,8 @@ Unless optional argument INPLACE is non-nil, return a new string." (set-buffer ,old-buffer) (set-syntax-table ,old-table))))))) +(provide 'ediff-init) + ;;; Local Variables: @@ -1907,7 +1877,5 @@ Unless optional argument INPLACE is non-nil, return a new string." ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;;; End: -(provide 'ediff-init) - ;;; arch-tag: fa31d384-1e70-4d4b-82a7-3e96307c46f5 ;;; ediff-init.el ends here diff --git a/lisp/ediff-merg.el b/lisp/ediff-merg.el index 13414747b11..cb93dea3831 100644 --- a/lisp/ediff-merg.el +++ b/lisp/ediff-merg.el @@ -1,6 +1,7 @@ ;;; ediff-merg.el --- merging utilities -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> diff --git a/lisp/ediff-mult.el b/lisp/ediff-mult.el index c7ad411b4ac..2c192c133e2 100644 --- a/lisp/ediff-mult.el +++ b/lisp/ediff-mult.el @@ -1,6 +1,7 @@ ;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff -;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02, 05 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -205,6 +206,12 @@ Should be a sexp. For instance (car ediff-filtering-regexp-history) or nil." This can be toggled with `ediff-toggle-filename-truncation'." :type 'boolean :group 'ediff-mult) + +(defcustom ediff-meta-mode-hook nil + "*Hooks run just after setting up meta mode." + :type 'hook + :group 'ediff-mult) + (defcustom ediff-registry-setup-hook nil "*Hooks run just after the registry control panel is set up." :type 'hook @@ -411,7 +418,8 @@ Commands: (kill-all-local-variables) (setq major-mode 'ediff-meta-mode) (setq mode-name "MetaEdiff") - (run-mode-hooks 'ediff-meta-mode-hook)) + ;; don't use run-mode-hooks here! + (run-hooks 'ediff-meta-mode-hook)) ;; the keymap for the buffer showing directory differences diff --git a/lisp/ediff-ptch.el b/lisp/ediff-ptch.el index 45b214c0cb3..df781e92b5b 100644 --- a/lisp/ediff-ptch.el +++ b/lisp/ediff-ptch.el @@ -1,6 +1,7 @@ ;;; ediff-ptch.el --- Ediff's patch support -;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -163,7 +164,7 @@ program." ;; returns /dev/null, if can't strip prefix (defsubst ediff-file-name-sans-prefix (filename prefix) (save-match-data - (if (string-match (concat "^" prefix) filename) + (if (string-match (concat "^" (regexp-quote prefix)) filename) (substring filename (match-end 0)) (concat "/null/" filename)))) diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el index 9434601326c..2e24548dbbe 100644 --- a/lisp/ediff-util.el +++ b/lisp/ediff-util.el @@ -1,7 +1,7 @@ ;;; ediff-util.el --- the core commands and utilities of ediff ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -;; 2004 Free Software Foundation, Inc. +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -117,7 +117,13 @@ Commands: (kill-all-local-variables) (setq major-mode 'ediff-mode) (setq mode-name "Ediff") - (run-mode-hooks 'ediff-mode-hook)) + ;; We use run-hooks instead of run-mode-hooks for two reasons. + ;; The ediff control buffer is read-only and it is not supposed to be + ;; modified by minor modes and such. So, run-mode-hooks doesn't do anything + ;; useful here on top of what run-hooks does. + ;; Second, changing run-hooks to run-mode-hooks would require an + ;; if-statement, since XEmacs doesn't have this. + (run-hooks 'ediff-mode-hook)) @@ -3788,9 +3794,8 @@ Ediff Control Panel to restore highlighting." type ediff-current-diff-overlay-alist)) (buffer (ediff-get-buffer type)) (face (face-name - (symbol-value - (ediff-get-symbol-from-alist - type ediff-current-diff-face-alist))))) + (ediff-get-symbol-from-alist + type ediff-current-diff-face-alist)))) (set overlay (ediff-make-bullet-proof-overlay (point-max) (point-max) buffer)) (ediff-set-overlay-face (symbol-value overlay) face) diff --git a/lisp/ediff-vers.el b/lisp/ediff-vers.el index 653f4017cad..9ae720e9bc3 100644 --- a/lisp/ediff-vers.el +++ b/lisp/ediff-vers.el @@ -1,6 +1,7 @@ ;;; ediff-vers.el --- version control interface to Ediff -;;; Copyright (C) 1995, 96, 97, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -304,13 +305,14 @@ (if (stringp tmp-file) (delete-file tmp-file)) (if (stringp ancestor-file) (delete-file ancestor-file)))) + +(provide 'ediff-vers) + ;;; Local Variables: ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) ;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1) ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;;; End: -(provide 'ediff-vers) - ;;; arch-tag: bbb34f0c-2a90-426a-a77a-c75f479ebbbf ;;; ediff-vers.el ends here diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el index 3ac4ee089cd..26ff106088f 100644 --- a/lisp/ediff-wind.el +++ b/lisp/ediff-wind.el @@ -1,6 +1,7 @@ ;;; ediff-wind.el --- window manipulation utilities -;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> diff --git a/lisp/ediff.el b/lisp/ediff.el index 46b060e29ae..35b28a3e550 100644 --- a/lisp/ediff.el +++ b/lisp/ediff.el @@ -1,13 +1,14 @@ ;;; ediff.el --- a comprehensive visual interface to diff & patch -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 03, 05 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Created: February 2, 1994 ;; Keywords: comparing, merging, patching, tools, unix (defconst ediff-version "2.80" "The current version of Ediff") -(defconst ediff-date "June 3, 2005" "Date of last update") +(defconst ediff-date "July 8, 2005" "Date of last update") ;; This file is part of GNU Emacs. @@ -1357,11 +1358,13 @@ buffer. If odd -- assume it is in a file." ;;;###autoload (defun ediff-patch-buffer (&optional arg patch-buf) - "Run Ediff by patching BUFFER-NAME. -Without prefix argument: asks if the patch is in some buffer and prompts for -the buffer or a file, depending on the answer. -With prefix arg=1: assumes the patch is in a file and prompts for the file. -With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer." + "Run Ediff by patching the buffer specified at prompt. +Without the optional prefix ARG, asks if the patch is in some buffer and +prompts for the buffer or a file, depending on the answer. +With ARG=1, assumes the patch is in a file and prompts for the file. +With ARG=2, assumes the patch is in a buffer and prompts for the buffer. +PATCH-BUF is an optional argument, which specifies the buffer that contains the +patch. If not given, the user is prompted according to the prefix argument." (interactive "P") (require 'ediff-ptch) (setq patch-buf @@ -1526,15 +1529,15 @@ With optional NODE, goes to that node." (add-to-list 'debug-ignored-errors mess)) +(require 'ediff-util) + +(run-hooks 'ediff-load-hook) + ;;; Local Variables: ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) ;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1) ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;;; End: -(require 'ediff-util) - -(run-hooks 'ediff-load-hook) - ;;; arch-tag: 97c71396-db02-4f41-8b48-6a51c3348fcc ;;; ediff.el ends here diff --git a/lisp/edmacro.el b/lisp/edmacro.el index 4384a0288e1..ff5e2f7e0b2 100644 --- a/lisp/edmacro.el +++ b/lisp/edmacro.el @@ -1,6 +1,7 @@ ;;; edmacro.el --- keyboard macro editor -;; Copyright (C) 1993, 1994, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Maintainer: Dave Gillespie <daveg@synaptics.com> diff --git a/lisp/ehelp.el b/lisp/ehelp.el index 36bbd0329bb..d0dfd8d6bed 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el @@ -1,6 +1,7 @@ ;;; ehelp.el --- bindings for electric-help mode -;; Copyright (C) 1986, 1995, 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1995, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, extensions diff --git a/lisp/electric.el b/lisp/electric.el index 32fb843e2cb..4c4f70b0939 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -1,6 +1,7 @@ ;;; electric.el --- window maker and Command loop for `electric' modes -;; Copyright (C) 1985, 1986, 1995, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/elide-head.el b/lisp/elide-head.el index 86e3365c5dd..8be40ce17c3 100644 --- a/lisp/elide-head.el +++ b/lisp/elide-head.el @@ -1,6 +1,6 @@ ;;; elide-head.el --- hide headers in files -;; Copyright (C) 1999 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: outlines tools diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index 9f6a0b782ac..480c838b878 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el @@ -1,6 +1,7 @@ ;;; advice.el --- an overloading mechanism for Emacs Lisp functions -;; Copyright (C) 1993,1994,2000,01,2004,2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2000, 2001, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el index 35cfba617c3..d12b1dcbcb5 100644 --- a/lisp/emacs-lisp/assoc.el +++ b/lisp/emacs-lisp/assoc.el @@ -1,6 +1,6 @@ ;;; assoc.el --- insert/delete/sort functions on association lists -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Barry A. Warsaw <bwarsaw@cen.com> ;; Keywords: extensions diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el index ca28fc06783..ec5446eef38 100644 --- a/lisp/emacs-lisp/authors.el +++ b/lisp/emacs-lisp/authors.el @@ -1,6 +1,6 @@ ;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: Kim F. Storm <storm@cua.dk> diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 852c33cb41b..3cd6fe53bad 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -1,7 +1,7 @@ ;; autoload.el --- maintain autoloads in loaddefs.el ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Keywords: maint diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el index 7c7023fc85e..627c2cfdbc7 100644 --- a/lisp/emacs-lisp/backquote.el +++ b/lisp/emacs-lisp/backquote.el @@ -1,6 +1,7 @@ ;;; backquote.el --- implement the ` Lisp construct -;; Copyright (C) 1990, 92, 1994, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1992, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rick Sladkey <jrs@world.std.com> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el index 6de2eef53a8..c2be5a5c3b5 100644 --- a/lisp/emacs-lisp/benchmark.el +++ b/lisp/emacs-lisp/benchmark.el @@ -1,6 +1,6 @@ ;;; benchmark.el --- support for benchmarking code -;; Copyright (C) 2003 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: lisp, extensions diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el index 5fa9835bea1..f2b1d19a696 100644 --- a/lisp/emacs-lisp/bindat.el +++ b/lisp/emacs-lisp/bindat.el @@ -1,6 +1,6 @@ ;;; bindat.el --- binary data structure packing and unpacking. -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Assignment name: struct.el diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 7ac9077ca74..7d47d809673 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1,7 +1,7 @@ ;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler -;; Copyright (c) 1991, 1994, 2000, 2001, 2002, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index b4af4b44009..c31036f02ed 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -1,6 +1,6 @@ ;;; byte-run.el --- byte-compiler support for inlining -;; Copyright (C) 1992, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index bbb98364a0d..559d2bd86c6 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1,7 +1,7 @@ ;;; bytecomp.el --- compilation of Lisp code into byte code ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> @@ -358,7 +358,7 @@ Elements of the list may be be: (defvar byte-compile-interactive-only-functions '(beginning-of-buffer end-of-buffer replace-string replace-regexp - insert-file) + insert-file insert-buffer insert-file-literally) "List of commands that are not meant to be called from Lisp.") (defvar byte-compile-not-obsolete-var nil @@ -3351,11 +3351,14 @@ That command is designed for interactive use only" fn)) (defmacro byte-compile-maybe-guarded (condition &rest body) "Execute forms in BODY, potentially guarded by CONDITION. -CONDITION is the test in an `if' form or in a `cond' clause. -BODY is to compile the first arm of the if or the body of the -cond clause. If CONDITION is of the form `(foundp 'foo)' -or `(boundp 'foo)', the relevant warnings from BODY about foo -being undefined will be suppressed." +CONDITION is a variable whose value is a test in an `if' or `cond'. +BODY is the code to compile first arm of the if or the body of the +cond clause. If CONDITION's value is of the form (fboundp 'foo) +or (boundp 'foo), the relevant warnings from BODY about foo's +being undefined will be suppressed. + +If CONDITION's value is (not (featurep 'emacs)) or (featurep 'xemacs), +that suppresses all warnings during execution of BODY." (declare (indent 1) (debug t)) `(let* ((fbound (if (eq 'fboundp (car-safe ,condition)) @@ -3373,13 +3376,19 @@ being undefined will be suppressed." (byte-compile-bound-variables (if bound (cons bound byte-compile-bound-variables) - byte-compile-bound-variables))) - (progn ,@body) - ;; Maybe remove the function symbol from the unresolved list. - (if fbound - (setq byte-compile-unresolved-functions - (delq (assq fbound byte-compile-unresolved-functions) - byte-compile-unresolved-functions))))) + byte-compile-bound-variables)) + ;; Suppress all warnings, for code not used in Emacs. + (byte-compile-warnings + (if (member ,condition '((featurep 'xemacs) + (not (featurep 'emacs)))) + nil byte-compile-warnings))) + (unwind-protect + (progn ,@body) + ;; Maybe remove the function symbol from the unresolved list. + (if fbound + (setq byte-compile-unresolved-functions + (delq (assq fbound byte-compile-unresolved-functions) + byte-compile-unresolved-functions)))))) (defun byte-compile-if (form) (byte-compile-form (car (cdr form))) @@ -3400,7 +3409,8 @@ being undefined will be suppressed." (byte-compile-form (nth 2 form) for-effect)) (byte-compile-goto 'byte-goto donetag) (byte-compile-out-tag elsetag) - (byte-compile-body (cdr (cdr (cdr form))) for-effect) + (byte-compile-maybe-guarded (list 'not clause) + (byte-compile-body (cdr (cdr (cdr form))) for-effect)) (byte-compile-out-tag donetag)))) (setq for-effect nil)) @@ -3420,12 +3430,12 @@ being undefined will be suppressed." (if (null (cdr clause)) ;; First clause is a singleton. (byte-compile-goto-if t for-effect donetag) - (setq nexttag (byte-compile-make-tag)) - (byte-compile-goto 'byte-goto-if-nil nexttag) - (byte-compile-maybe-guarded (car clause) - (byte-compile-body (cdr clause) for-effect)) - (byte-compile-goto 'byte-goto donetag) - (byte-compile-out-tag nexttag))))) + (setq nexttag (byte-compile-make-tag)) + (byte-compile-goto 'byte-goto-if-nil nexttag) + (byte-compile-maybe-guarded (car clause) + (byte-compile-body (cdr clause) for-effect)) + (byte-compile-goto 'byte-goto donetag) + (byte-compile-out-tag nexttag))))) ;; Last clause (let ((guard (car clause))) (and (cdr clause) (not (eq guard t)) @@ -3441,24 +3451,38 @@ being undefined will be suppressed." (args (cdr form))) (if (null args) (byte-compile-form-do-effect t) - (while (cdr args) - (byte-compile-form (car args)) + (byte-compile-and-recursion args failtag)))) + +;; Handle compilation of a nontrivial `and' call. +;; We use tail recursion so we can use byte-compile-maybe-guarded. +(defun byte-compile-and-recursion (rest failtag) + (if (cdr rest) + (progn + (byte-compile-form (car rest)) (byte-compile-goto-if nil for-effect failtag) - (setq args (cdr args))) - (byte-compile-form-do-effect (car args)) - (byte-compile-out-tag failtag)))) + (byte-compile-maybe-guarded (car rest) + (byte-compile-and-recursion (cdr rest) failtag))) + (byte-compile-form-do-effect (car rest)) + (byte-compile-out-tag failtag))) (defun byte-compile-or (form) (let ((wintag (byte-compile-make-tag)) (args (cdr form))) (if (null args) (byte-compile-form-do-effect nil) - (while (cdr args) - (byte-compile-form (car args)) + (byte-compile-or-recursion args wintag)))) + +;; Handle compilation of a nontrivial `or' call. +;; We use tail recursion so we can use byte-compile-maybe-guarded. +(defun byte-compile-or-recursion (rest wintag) + (if (cdr rest) + (progn + (byte-compile-form (car rest)) (byte-compile-goto-if t for-effect wintag) - (setq args (cdr args))) - (byte-compile-form-do-effect (car args)) - (byte-compile-out-tag wintag)))) + (byte-compile-maybe-guarded (list 'not (car rest)) + (byte-compile-or-recursion (cdr rest) wintag))) + (byte-compile-form-do-effect (car rest)) + (byte-compile-out-tag wintag))) (defun byte-compile-while (form) (let ((endtag (byte-compile-make-tag)) @@ -3766,6 +3790,19 @@ being undefined will be suppressed." (defun byte-compile-no-warnings (form) (let (byte-compile-warnings) (byte-compile-form (cons 'progn (cdr form))))) + +;; Warn about misuses of make-variable-buffer-local. +(byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local) +(defun byte-compile-make-variable-buffer-local (form) + (if (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (byte-compile-warn + "`make-variable-buffer-local' should be called at toplevel")) + (byte-compile-normal-call form)) +(put 'make-variable-buffer-local + 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local) +(defun byte-compile-form-make-variable-buffer-local (form) + (byte-compile-keep-pending form 'byte-compile-normal-call)) + ;;; tags diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 6562f04ca1d..913ffcf1941 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -1,6 +1,7 @@ ;;; checkdoc.el --- check documentation strings for style requirements -;;; Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation +;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.6.2 @@ -189,6 +190,9 @@ (defmacro defcustom (var value doc &rest args) `(defvar ,var ,value ,doc)))) +(defvar compilation-error-regexp-alist) +(defvar compilation-mode-font-lock-keywords) + (defcustom checkdoc-autofix-flag 'semiautomatic "*Non-nil means attempt auto-fixing of doc strings. If this value is the symbol `query', then the user is queried before @@ -317,12 +321,12 @@ This should be set in an Emacs Lisp file's local variables." "List of words (not capitalized) which should be capitalized.") (defvar checkdoc-proper-noun-regexp - (let ((expr "\\<\\(") + (let ((expr "\\_<\\(") (l checkdoc-proper-noun-list)) (while l (setq expr (concat expr (car l) (if (cdr l) "\\|" "")) l (cdr l))) - (concat expr "\\)\\>")) + (concat expr "\\)\\_>")) "Regular expression derived from `checkdoc-proper-noun-regexp'.") (defvar checkdoc-common-verbs-regexp nil @@ -430,32 +434,20 @@ be re-created.") ;;; Compatibility ;; -(if (string-match "X[Ee]macs" emacs-version) - (progn - (defalias 'checkdoc-make-overlay 'make-extent) - (defalias 'checkdoc-overlay-put 'set-extent-property) - (defalias 'checkdoc-delete-overlay 'delete-extent) - (defalias 'checkdoc-overlay-start 'extent-start) - (defalias 'checkdoc-overlay-end 'extent-end) - (defalias 'checkdoc-mode-line-update 'redraw-modeline) - (defalias 'checkdoc-call-eval-buffer 'eval-buffer) - ) - (defalias 'checkdoc-make-overlay 'make-overlay) - (defalias 'checkdoc-overlay-put 'overlay-put) - (defalias 'checkdoc-delete-overlay 'delete-overlay) - (defalias 'checkdoc-overlay-start 'overlay-start) - (defalias 'checkdoc-overlay-end 'overlay-end) - (defalias 'checkdoc-mode-line-update 'force-mode-line-update) - (defalias 'checkdoc-call-eval-buffer 'eval-current-buffer) - ) - -;; Emacs 20s have MULE characters which don't equate to numbers. -(if (fboundp 'char=) - (defalias 'checkdoc-char= 'char=) - (defalias 'checkdoc-char= '=)) - -;; Read events, not characters -(defalias 'checkdoc-read-event 'read-event) +(defalias 'checkdoc-make-overlay + (if (featurep 'xemacs) 'make-extent 'make-overlay)) +(defalias 'checkdoc-overlay-put + (if (featurep 'xemacs) 'set-extent-property 'overlay-put)) +(defalias 'checkdoc-delete-overlay + (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) +(defalias 'checkdoc-overlay-start + (if (featurep 'xemacs) 'extent-start 'overlay-start)) +(defalias 'checkdoc-overlay-end + (if (featurep 'xemacs) 'extent-end 'overlay-end)) +(defalias 'checkdoc-mode-line-update + (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update)) +(defalias 'checkdoc-char= + (if (featurep 'xemacs) 'char= '=)) ;;; User level commands ;; @@ -628,7 +620,7 @@ style." (goto-char (checkdoc-error-start (car (car err-list)))) (if (not (pos-visible-in-window-p)) (recenter (- (window-height) 2))) - (setq c (checkdoc-read-event))) + (setq c (read-event))) (if (not (integerp c)) (setq c ??)) (cond ;; Exit condition @@ -664,7 +656,7 @@ style." "No Additional style errors. Continuing...") (sit-for 2)))))) ;; Move to the next error (if available) - ((or (checkdoc-char= c ?n) (checkdoc-char= c ?\ )) + ((or (checkdoc-char= c ?n) (checkdoc-char= c ?\s)) (let ((ne (funcall findfunc nil))) (if (not ne) (if showstatus @@ -844,7 +836,7 @@ Evaluation is done first because good documentation for something that doesn't work is just not useful. Comments, doc strings, and rogue spacing are all verified." (interactive) - (checkdoc-call-eval-buffer nil) + (eval-buffer nil) (checkdoc-current-buffer t)) ;;;###autoload @@ -2326,10 +2318,10 @@ Code:, and others referenced in the style guide." (save-excursion (goto-char (point-max)) (if (not (re-search-backward - (concat "^;;;[ \t]+" fn "\\(" (regexp-quote fe) + (concat "^;;;[ \t]+" (regexp-quote fn) "\\(" (regexp-quote fe) "\\)?[ \t]+ends here[ \t]*$" "\\|^;;;[ \t]+ End of file[ \t]+" - fn "\\(" (regexp-quote fe) "\\)?") + (regexp-quote fn) "\\(" (regexp-quote fe) "\\)?") nil t)) (if (checkdoc-y-or-n-p "No identifiable footer! Add one? ") (progn diff --git a/lisp/emacs-lisp/cl-compat.el b/lisp/emacs-lisp/cl-compat.el index 9ced7879114..66425576b5f 100644 --- a/lisp/emacs-lisp/cl-compat.el +++ b/lisp/emacs-lisp/cl-compat.el @@ -1,6 +1,6 @@ ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) -;; Copyright (C) 1993, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 107f8b1b223..4ac1a72b0d7 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -1,6 +1,7 @@ ;;; cl-extra.el --- Common Lisp features, part 2 -*-byte-compile-dynamic: t;-*- -;; Copyright (C) 1993,2000,2003 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Keywords: extensions @@ -38,9 +39,7 @@ ;;; Code: -(or (memq 'cl-19 features) - (error "Tried to load `cl-extra' before `cl'!")) - +(require 'cl) ;;; Type coercion. @@ -763,5 +762,5 @@ This also does some trivial optimizations to make the form prettier." (run-hooks 'cl-extra-load-hook) -;;; arch-tag: bcd03437-0871-43fb-a8f1-ad0e0b5427ed +;; arch-tag: bcd03437-0871-43fb-a8f1-ad0e0b5427ed ;;; cl-extra.el ends here diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el index 1bcd2c72edc..2497e02dc62 100644 --- a/lisp/emacs-lisp/cl-indent.el +++ b/lisp/emacs-lisp/cl-indent.el @@ -1,6 +1,7 @@ ;;; cl-indent.el --- enhanced lisp-indent mode -;; Copyright (C) 1987, 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> ;; Created: July 1987 diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 952ca6ebeac..74c77128059 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2384,6 +2384,7 @@ The type name can then be used in `typecase', `check-type', etc." (cl-make-type-test val (funcall (get type 'cl-deftype-handler)))) ((memq type '(nil t)) type) ((eq type 'null) `(null ,val)) + ((eq type 'atom) `(atom ,val)) ((eq type 'float) `(floatp-safe ,val)) ((eq type 'real) `(numberp ,val)) ((eq type 'fixnum) `(integerp ,val)) @@ -2398,7 +2399,7 @@ The type name can then be used in `typecase', `check-type', etc." (cl-make-type-test val (apply (get (car type) 'cl-deftype-handler) (cdr type)))) ((memq (car type) '(integer float real number)) - (delq t (and (cl-make-type-test val (car type)) + (delq t (list 'and (cl-make-type-test val (car type)) (if (memq (cadr type) '(* nil)) t (if (consp (cadr type)) (list '> val (caadr type)) (list '>= val (cadr type)))) diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el index 98c9a2207ee..ba7845aaa9c 100644 --- a/lisp/emacs-lisp/cl-seq.el +++ b/lisp/emacs-lisp/cl-seq.el @@ -1,6 +1,6 @@ ;;; cl-seq.el --- Common Lisp features, part 3 -*-byte-compile-dynamic: t;-*- -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/cl-specs.el b/lisp/emacs-lisp/cl-specs.el index ac3089f2efb..650a341f955 100644 --- a/lisp/emacs-lisp/cl-specs.el +++ b/lisp/emacs-lisp/cl-specs.el @@ -1,6 +1,6 @@ ;;; cl-specs.el --- Edebug specs for cl.el -*- no-byte-compile: t -*- -;; Copyright (C) 1993, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Keywords: lisp, tools, maint diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index d29c18dd0ff..8875366cc9c 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -1,6 +1,6 @@ ;;; cl.el --- Common Lisp extensions for Emacs -*-byte-compile-dynamic: t;-*- -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el index fbebfeabe96..ff44b3cb59e 100644 --- a/lisp/emacs-lisp/copyright.el +++ b/lisp/emacs-lisp/copyright.el @@ -1,7 +1,7 @@ ;;; copyright.el --- update the copyright notice in current buffer -;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: maint, tools diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el index 8e52a42921a..46ae6186e44 100644 --- a/lisp/emacs-lisp/crm.el +++ b/lisp/emacs-lisp/crm.el @@ -1,7 +1,7 @@ ;;; crm.el --- read multiple strings with completion -;; Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Sen Nagata <sen@eccosys.com> ;; Keywords: completion, minibuffer, multiple elements diff --git a/lisp/emacs-lisp/cust-print.el b/lisp/emacs-lisp/cust-print.el index 96fbe737c26..102efdae9b9 100644 --- a/lisp/emacs-lisp/cust-print.el +++ b/lisp/emacs-lisp/cust-print.el @@ -1,6 +1,6 @@ ;;; cust-print.el --- handles print-level and print-circle -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Adapted-By: ESR diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 94cca83a61d..58b12376b05 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -1,7 +1,7 @@ ;;; debug.el --- debuggers and related commands for Emacs -;; Copyright (C) 1985, 1986, 1994, 2001, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, tools, maint @@ -150,7 +150,8 @@ first will be printed into the backtrace buffer." (debugger-outer-standard-input standard-input) (debugger-outer-standard-output standard-output) (debugger-outer-inhibit-redisplay inhibit-redisplay) - (debugger-outer-cursor-in-echo-area cursor-in-echo-area)) + (debugger-outer-cursor-in-echo-area cursor-in-echo-area) + (debugger-with-timeout-suspend (with-timeout-suspend))) ;; Set this instead of binding it, so that `q' ;; will not restore it. (setq overriding-terminal-local-map nil) @@ -235,6 +236,7 @@ first will be printed into the backtrace buffer." ;; Drew Adams. --Stef (quit-window)))) (kill-buffer debugger-buffer)) + (with-timeout-unsuspend debugger-with-timeout-suspend) (set-match-data debugger-outer-match-data))) ;; Put into effect the modified values of these variables ;; in case the user set them with the `e' command. @@ -312,11 +314,17 @@ That buffer should be current already." ;; After any frame that uses eval-buffer, ;; insert a line that states the buffer position it's reading at. (save-excursion - (while (re-search-forward "^ eval-buffer(" nil t) - (end-of-line) - (insert (format "\n ;;; Reading at buffer position %d" - (with-current-buffer (nth 2 (backtrace-frame (debugger-frame-number))) - (point)))))) + (let ((tem eval-buffer-list)) + (while (and tem + (re-search-forward "^ eval-\\(buffer\\|region\\)(" nil t)) + (end-of-line) + (insert (format " ; Reading at buffer position %d" + ;; This will get the wrong result + ;; if there are two nested eval-region calls + ;; for the same buffer. That's not a very useful case. + (with-current-buffer (car tem) + (point)))) + (pop tem)))) (debugger-make-xrefs)) (defun debugger-make-xrefs (&optional buffer) @@ -591,10 +599,35 @@ Applies to the frame whose line point is on in the backtrace." (define-key map "e" 'debugger-eval-expression) (define-key map " " 'next-line) (define-key map "R" 'debugger-record-expression) - (define-key map "\C-m" 'help-follow) + (define-key map "\C-m" 'debug-help-follow) (define-key map [mouse-2] 'push-button) map)) +(put 'debugger-mode 'mode-class 'special) + +(defun debugger-mode () + "Mode for backtrace buffers, selected in debugger. +\\<debugger-mode-map> +A line starts with `*' if exiting that frame will call the debugger. +Type \\[debugger-frame] or \\[debugger-frame-clear] to set or remove the `*'. + +When in debugger due to frame being exited, +use the \\[debugger-return-value] command to override the value +being returned from that frame. + +Use \\[debug-on-entry] and \\[cancel-debug-on-entry] to control +which functions will enter the debugger when called. + +Complete list of commands: +\\{debugger-mode-map}" + (kill-all-local-variables) + (setq major-mode 'debugger-mode) + (setq mode-name "Debugger") + (setq truncate-lines t) + (set-syntax-table emacs-lisp-mode-syntax-table) + (use-local-map debugger-mode-map) + (run-mode-hooks 'debugger-mode-hook)) + (defcustom debugger-record-buffer "*Debugger-record*" "*Buffer name for expression values, for \\[debugger-record-expression]." :type 'string @@ -620,30 +653,26 @@ Applies to the frame whose line point is on in the backtrace." (buffer-substring (line-beginning-position 0) (line-end-position 0))))) -(put 'debugger-mode 'mode-class 'special) - -(defun debugger-mode () - "Mode for backtrace buffers, selected in debugger. -\\<debugger-mode-map> -A line starts with `*' if exiting that frame will call the debugger. -Type \\[debugger-frame] or \\[debugger-frame-clear] to set or remove the `*'. +(defun debug-help-follow (&optional pos) + "Follow cross-reference at POS, defaulting to point. -When in debugger due to frame being exited, -use the \\[debugger-return-value] command to override the value -being returned from that frame. - -Use \\[debug-on-entry] and \\[cancel-debug-on-entry] to control -which functions will enter the debugger when called. - -Complete list of commands: -\\{debugger-mode-map}" - (kill-all-local-variables) - (setq major-mode 'debugger-mode) - (setq mode-name "Debugger") - (setq truncate-lines t) - (set-syntax-table emacs-lisp-mode-syntax-table) - (use-local-map debugger-mode-map) - (run-mode-hooks 'debugger-mode-hook)) +For the cross-reference format, see `help-make-xrefs'." + (interactive "d") + (require 'help-mode) + (unless pos + (setq pos (point))) + (unless (push-button pos) + ;; check if the symbol under point is a function or variable + (let ((sym + (intern + (save-excursion + (goto-char pos) (skip-syntax-backward "w_") + (buffer-substring (point) + (progn (skip-syntax-forward "w_") + (point))))))) + (when (or (boundp sym) (fboundp sym) (facep sym)) + (switch-to-buffer-other-window (generate-new-buffer "*Help*")) + (help-do-xref pos #'help-xref-interned (list sym)))))) ;; When you change this, you may also need to change the number of ;; frames that the debugger skips. @@ -680,7 +709,7 @@ Redefining FUNCTION also cancels it." (let ((fn (function-called-at-point)) val) (when (debugger-special-form-p fn) (setq fn nil)) - (setq val (completing-read + (setq val (completing-read (if fn (format "Debug on entry to function (default %s): " fn) "Debug on entry to function: ") diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index ef8e3288bbc..8e1f79f95ee 100644 --- a/lisp/emacs-lisp/derived.el +++ b/lisp/emacs-lisp/derived.el @@ -1,7 +1,8 @@ ;;; derived.el --- allow inheritance of major modes ;; (formerly mode-clone.el) -;; Copyright (C) 1993, 1994, 1999, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Megginson (dmeggins@aix1.uottawa.ca) ;; Maintainer: FSF @@ -96,7 +97,7 @@ ;;; PRIVATE: defsubst must be defined before they are first used (defsubst derived-mode-hook-name (mode) - "Construct the mode hook name based on mode name MODE." + "Construct a mode-hook name based on a MODE name." (intern (concat (symbol-name mode) "-hook"))) (defsubst derived-mode-map-name (mode) @@ -382,18 +383,11 @@ Always merge its parent into it, since the merge is non-destructive." (derived-mode-merge-abbrev-tables old-table new-table) (setq local-abbrev-table new-table))) -;;;(defun derived-mode-run-setup-function (mode) -;;; "Run the setup function if it exists." - -;;; (let ((fname (derived-mode-setup-function-name mode))) -;;; (if (fboundp fname) -;;; (funcall fname)))) - (defun derived-mode-run-hooks (mode) - "Run the mode hook for MODE." - (let ((hooks-name (derived-mode-hook-name mode))) - (if (boundp hooks-name) - (run-hooks hooks-name)))) + "Run the mode hook for MODE." + (let ((hooks-name (derived-mode-hook-name mode))) + (if (boundp hooks-name) + (run-hooks hooks-name)))) ;; Functions to merge maps and tables. diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el index fa368902f69..fa0898f609e 100644 --- a/lisp/emacs-lisp/disass.el +++ b/lisp/emacs-lisp/disass.el @@ -1,6 +1,7 @@ ;;; disass.el --- disassembler for compiled Emacs Lisp code -;; Copyright (C) 1986, 1991, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1991, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Doug Cutting <doug@csli.stanford.edu> ;; Jamie Zawinski <jwz@lucid.com> diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 4c232b2882c..da0ca735efd 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -142,7 +142,10 @@ For example, you could write (let* ((mode-name (symbol-name mode)) (pretty-name (easy-mmode-pretty-mode-name mode lighter)) (globalp nil) + (set nil) + (initialize nil) (group nil) + (type nil) (extra-args nil) (extra-keywords nil) (require t) @@ -159,7 +162,10 @@ For example, you could write (:lighter (setq lighter (pop body))) (:global (setq globalp (pop body))) (:extra-args (setq extra-args (pop body))) + (:set (setq set (list :set (pop body)))) + (:initialize (setq initialize (list :initialize (pop body)))) (:group (setq group (nconc group (list :group (pop body))))) + (:type (setq type (list :type (pop body)))) (:require (setq require (pop body))) (:keymap (setq keymap (pop body))) (t (push keyw extra-keywords) (push (pop body) extra-keywords)))) @@ -167,12 +173,19 @@ For example, you could write (setq keymap-sym (if (and keymap (symbolp keymap)) keymap (intern (concat mode-name "-map")))) + (unless set (setq set '(:set 'custom-set-minor-mode))) + + (unless initialize + (setq initialize '(:initialize 'custom-initialize-default))) + (unless group ;; We might as well provide a best-guess default group. (setq group `(:group ',(intern (replace-regexp-in-string "-mode\\'" "" mode-name))))) + (unless type (setq type '(:type 'boolean))) + `(progn ;; Define the variable to enable or disable the mode. ,(if (not globalp) @@ -181,28 +194,20 @@ For example, you could write Use the command `%s' to change this variable." pretty-name mode)) (make-variable-buffer-local ',mode)) - (let ((curfile (or (and (boundp 'byte-compile-current-file) - byte-compile-current-file) - load-file-name)) - base-doc-string) - (setq base-doc-string "Non-nil if %s is enabled. -See the command `%s' for a description of this minor-mode. + (let ((base-doc-string + (concat "Non-nil if %s is enabled. +See the command `%s' for a description of this minor-mode." + (if body " Setting this variable directly does not take effect; -use either \\[customize] or the function `%s'.") - (if (null body) - (setq base-doc-string "Non-nil if %s is enabled. -See the command `%s' for a description of this minor-mode.")) - +use either \\[customize] or the function `%s'.")))) `(defcustom ,mode ,init-value ,(format base-doc-string pretty-name mode mode) - :set 'custom-set-minor-mode - :initialize 'custom-initialize-default + ,@set + ,@initialize ,@group - :type 'boolean - ,@(cond - ((not (and curfile require)) nil) - ((not (eq require t)) `(:require ,require))) - ,@(nreverse extra-keywords)))) + ,@type + ,@(unless (eq require t) `(:require ,require)) + ,@(nreverse extra-keywords)))) ;; The actual function. (defun ,mode (&optional arg ,@extra-args) @@ -254,12 +259,7 @@ With zero or negative ARG turn mode off. (add-minor-mode ',mode ',lighter ,(if keymap keymap-sym `(if (boundp ',keymap-sym) - (symbol-value ',keymap-sym)))) - - ;; If the mode is global, call the function according to the default. - ,(if globalp - `(if (and load-file-name (not (equal ,init-value ,mode))) - (eval-after-load load-file-name '(,mode (if ,mode 1 -1)))))))) + (symbol-value ',keymap-sym))))))) ;;; ;;; make global minor mode diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index a1a1f470c58..634c2397411 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el @@ -1,7 +1,7 @@ ;;; easymenu.el --- support the easymenu interface for defining a menu -;; Copyright (C) 1994, 1996, 1998, 1999, 2000, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1996, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: emulations ;; Author: Richard Stallman <rms@gnu.org> diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index fe0453519df..765548083b5 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -1,7 +1,7 @@ ;;; edebug.el --- a source-level debugger for Emacs Lisp -;; Copyright (C) 1988,89,90,91,92,93,94,95,97,1999,2000,01,03,2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Maintainer: FSF @@ -243,9 +243,9 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol `(put (quote ,symbol) 'edebug-form-spec (quote ,spec))) (defmacro def-edebug-form-spec (symbol spec-form) - "For compatibility with old version. Use `def-edebug-spec' instead." - (message "Obsolete: use def-edebug-spec instead.") + "For compatibility with old version." (def-edebug-spec symbol (eval spec-form))) +(make-obsolete 'def-edebug-form-spec 'def-edebug-spec "22.1") (defun get-edebug-spec (symbol) ;; Get the spec of symbol resolving all indirection. @@ -2374,18 +2374,19 @@ MSG is printed after `::::} '." (defun edebug-slow-before (edebug-before-index) - ;; Debug current function given BEFORE position. - ;; Called from functions compiled with edebug-eval-top-level-form. - ;; Return the before index. - (setcar edebug-offset-indices edebug-before-index) - - ;; Increment frequency count - (aset edebug-freq-count edebug-before-index - (1+ (aref edebug-freq-count edebug-before-index))) - - (if (or (not (memq edebug-execution-mode '(Go-nonstop next))) - (edebug-input-pending-p)) - (edebug-debugger edebug-before-index 'before nil)) + (unless edebug-active + ;; Debug current function given BEFORE position. + ;; Called from functions compiled with edebug-eval-top-level-form. + ;; Return the before index. + (setcar edebug-offset-indices edebug-before-index) + + ;; Increment frequency count + (aset edebug-freq-count edebug-before-index + (1+ (aref edebug-freq-count edebug-before-index))) + + (if (or (not (memq edebug-execution-mode '(Go-nonstop next))) + (edebug-input-pending-p)) + (edebug-debugger edebug-before-index 'before nil))) edebug-before-index) (defun edebug-fast-before (edebug-before-index) @@ -2393,22 +2394,24 @@ MSG is printed after `::::} '." ) (defun edebug-slow-after (edebug-before-index edebug-after-index edebug-value) - ;; Debug current function given AFTER position and VALUE. - ;; Called from functions compiled with edebug-eval-top-level-form. - ;; Return VALUE. - (setcar edebug-offset-indices edebug-after-index) - - ;; Increment frequency count - (aset edebug-freq-count edebug-after-index - (1+ (aref edebug-freq-count edebug-after-index))) - (if edebug-test-coverage (edebug-update-coverage)) - - (if (and (eq edebug-execution-mode 'Go-nonstop) - (not (edebug-input-pending-p))) - ;; Just return result. + (if edebug-active edebug-value - (edebug-debugger edebug-after-index 'after edebug-value) - )) + ;; Debug current function given AFTER position and VALUE. + ;; Called from functions compiled with edebug-eval-top-level-form. + ;; Return VALUE. + (setcar edebug-offset-indices edebug-after-index) + + ;; Increment frequency count + (aset edebug-freq-count edebug-after-index + (1+ (aref edebug-freq-count edebug-after-index))) + (if edebug-test-coverage (edebug-update-coverage)) + + (if (and (eq edebug-execution-mode 'Go-nonstop) + (not (edebug-input-pending-p))) + ;; Just return result. + edebug-value + (edebug-debugger edebug-after-index 'after edebug-value) + ))) (defun edebug-fast-after (edebug-before-index edebug-after-index edebug-value) ;; Do nothing but return the value. @@ -2533,6 +2536,7 @@ MSG is printed after `::::} '." ;; Uses local variables of edebug-enter, edebug-before, edebug-after ;; and edebug-debugger. (let ((edebug-active t) ; for minor mode alist + (edebug-with-timeout-suspend (with-timeout-suspend)) edebug-stop ; should we enter recursive-edit (edebug-point (+ edebug-def-mark (aref (nth 2 edebug-data) edebug-offset-index))) @@ -2759,6 +2763,7 @@ MSG is printed after `::::} '." (set-buffer current-buffer)) ;; ... nothing more. ) + (with-timeout-unsuspend edebug-with-timeout-suspend) ;; Reset global variables to outside values in case they were changed. (setq overlay-arrow-position edebug-outside-o-a-p @@ -3646,9 +3651,12 @@ Return the result of the last expression." ;; Replace printing functions. ;; obsolete names -(defalias 'edebug-install-custom-print-funcs 'edebug-install-custom-print) -(defalias 'edebug-reset-print-funcs 'edebug-uninstall-custom-print) -(defalias 'edebug-uninstall-custom-print-funcs 'edebug-uninstall-custom-print) +(define-obsolete-function-alias 'edebug-install-custom-print-funcs + 'edebug-install-custom-print "22.1") +(define-obsolete-function-alias 'edebug-reset-print-funcs + 'edebug-uninstall-custom-print "22.1") +(define-obsolete-function-alias 'edebug-uninstall-custom-print-funcs + 'edebug-uninstall-custom-print "22.1") (defun edebug-install-custom-print () "Replace print functions used by Edebug with custom versions." diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 1492e29e3c6..4ae8f53a981 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -1,7 +1,7 @@ ;;; eldoc.el --- show function arglist or variable docstring in echo area -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Noah Friedman <friedman@splode.com> ;; Maintainer: friedman@splode.com @@ -454,10 +454,11 @@ Emacs Lisp mode) that support Eldoc.") ;; Prime the command list. (eldoc-add-command-completions "backward-" "beginning-of-" "delete-other-windows" "delete-window" - "end-of-" "forward-" "indent-for-tab-command" "goto-" "mouse-set-point" - "next-" "other-window" "previous-" "recenter" "scroll-" - "self-insert-command" "split-window-" - "up-list" "down-list") + "end-of-" "exchange-point-and-mark" "forward-" + "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph" + "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window" + "previous-" "recenter" "scroll-" "self-insert-command" + "split-window-" "up-list" "down-list") (provide 'eldoc) diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index 51e2ed98713..e72613695e3 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el @@ -1,6 +1,6 @@ ;;; elint.el --- Lint Emacs Lisp -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Peter Liljenberg <petli@lysator.liu.se> ;; Created: May 1997 diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index dbda66a2615..426c79e51c3 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el @@ -1,6 +1,7 @@ ;;; elp.el --- Emacs Lisp Profiler -;; Copyright (C) 1994,1995,1997,1998, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Barry A. Warsaw ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index 1984423d9dd..da9aa09119a 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el @@ -1,7 +1,7 @@ ;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer -;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 04 -;; Free Software Foundation +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Cederqvist <ceder@lysator.liu.se> ;; Inge Wallin <inge@lysator.liu.se> diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 4c25acf49c3..d860bfcd598 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -1,6 +1,7 @@ ;;; find-func.el --- find the definition of the Emacs Lisp function near point -;; Copyright (C) 1997, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Jens Petersen <petersen@kurims.kyoto-u.ac.jp> ;; Maintainer: petersen@kurims.kyoto-u.ac.jp @@ -62,7 +63,7 @@ ;; (define-derived-mode foo ...), (define-minor-mode foo) (concat "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\ -ine-minor-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\ +ine-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\ \\|easy-mmode-define-global-mode\\|menu-bar-make-toggle\\)" find-function-space-re "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)") diff --git a/lisp/emacs-lisp/find-gc.el b/lisp/emacs-lisp/find-gc.el index 1606395c673..29e9dffbbde 100644 --- a/lisp/emacs-lisp/find-gc.el +++ b/lisp/emacs-lisp/find-gc.el @@ -1,6 +1,6 @@ ;;; find-gc.el --- detect functions that call the garbage collector -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -23,56 +23,86 @@ ;;; Commentary: -;; Produce in unsafe-list the set of all functions that may invoke GC. -;; This expects the Emacs sources to live in emacs-source-directory. +;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC. +;; This expects the Emacs sources to live in find-gc-source-directory. ;; It creates a temporary working directory /tmp/esrc. ;;; Code: +(defvar find-gc-unsafe-list nil + "The list of unsafe functions is placed here by `find-gc-unsafe'.") + +(defvar find-gc-source-directory) + +(defvar find-gc-subrs-callers nil + "Alist of users of subrs, from GC testing. +Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).") + +(defvar find-gc-subrs-called nil + "Alist of subrs called, in GC testing. +Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).") + + +;;; Functions on this list are safe, even if they appear to be able +;;; to call the target. + +(defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument)) + +;;; This was originally generated directory-files, but there were +;;; too many files there that were not actually compiled. The +;;; list below was created for a HP-UX 7.0 system. + +(defvar find-gc-source-files + '("dispnew.c" "scroll.c" "xdisp.c" "window.c" + "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c" + "keymap.c" "sysdep.c" "buffer.c" "filelock.c" + "insdel.c" "marker.c" "minibuf.c" "fileio.c" + "dired.c" "filemode.c" "cmds.c" "casefiddle.c" + "indent.c" "search.c" "regex.c" "undo.c" + "alloc.c" "data.c" "doc.c" "editfns.c" + "callint.c" "eval.c" "fns.c" "print.c" "lread.c" + "abbrev.c" "syntax.c" "unexec.c" + "bytecode.c" "process.c" "callproc.c" "doprnt.c" + "x11term.c" "x11fns.c")) + + (defun find-gc-unsafe () + "Return a list of unsafe functions--that is, which can call GC. +Also store it in `find-gc-unsafe'." (trace-call-tree nil) (trace-use-tree) (find-unsafe-funcs 'Fgarbage_collect) - (setq unsafe-list (sort unsafe-list - (function (lambda (x y) - (string-lessp (car x) (car y)))))) + (setq find-gc-unsafe-list + (sort find-gc-unsafe-list + (function (lambda (x y) + (string-lessp (car x) (car y)))))) ) -(setq emacs-source-directory "/usr/gnu/src/dist/src") - - ;;; This does a depth-first search to find all functions that can ;;; ultimately call the function "target". The result is an a-list -;;; in unsafe-list; the cars are the unsafe functions, and the cdrs +;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs ;;; are (one of) the unsafe functions that these functions directly ;;; call. (defun find-unsafe-funcs (target) - (setq unsafe-list (list (list target))) + (setq find-gc-unsafe-list (list (list target))) (trace-unsafe target) ) (defun trace-unsafe (func) - (let ((used (assq func subrs-used))) + (let ((used (assq func find-gc-subrs-callers))) (or used - (error "No subrs-used for %s" (car unsafe-list))) + (error "No find-gc-subrs-callers for %s" (car find-gc-unsafe-list))) (while (setq used (cdr used)) - (or (assq (car used) unsafe-list) - (memq (car used) noreturn-list) + (or (assq (car used) find-gc-unsafe-list) + (memq (car used) find-gc-noreturn-list) (progn - (setq unsafe-list (cons (cons (car used) func) unsafe-list)) + (push (cons (car used) func) find-gc-unsafe-list) (trace-unsafe (car used)))))) ) -;;; Functions on this list are safe, even if they appear to be able -;;; to call the target. - -(setq noreturn-list '( Fsignal Fthrow wrong_type_argument )) - -;;; This produces an a-list of functions in subrs-called. The cdr of -;;; each entry is a list of functions which the function in car calls. (defun trace-call-tree (&optional already-setup) (message "Setting up directories...") @@ -83,12 +113,12 @@ (call-process "csh" nil nil nil "-c" "mkdir /tmp/esrc") (call-process "csh" nil nil nil "-c" (format "ln -s %s/*.[ch] /tmp/esrc" - emacs-source-directory)))) + find-gc-source-directory)))) (save-excursion (set-buffer (get-buffer-create "*Trace Call Tree*")) - (setq subrs-called nil) + (setq find-gc-subrs-called nil) (let ((case-fold-search nil) - (files source-files) + (files find-gc-source-files) name entry) (while files (message "Compiling %s..." (car files)) @@ -105,7 +135,7 @@ (match-end 0)))) (message "%s : %s" (car files) name) (setq entry (list name) - subrs-called (cons entry subrs-called))) + find-gc-subrs-called (cons entry find-gc-subrs-called))) (if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"") (progn (setq name (intern (buffer-substring (match-beginning 1) @@ -117,34 +147,14 @@ ) -;;; This was originally generated directory-files, but there were -;;; too many files there that were not actually compiled. The -;;; list below was created for a HP-UX 7.0 system. - -(setq source-files '("dispnew.c" "scroll.c" "xdisp.c" "window.c" - "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c" - "keymap.c" "sysdep.c" "buffer.c" "filelock.c" - "insdel.c" "marker.c" "minibuf.c" "fileio.c" - "dired.c" "filemode.c" "cmds.c" "casefiddle.c" - "indent.c" "search.c" "regex.c" "undo.c" - "alloc.c" "data.c" "doc.c" "editfns.c" - "callint.c" "eval.c" "fns.c" "print.c" "lread.c" - "abbrev.c" "syntax.c" "unexec.c" - "bytecode.c" "process.c" "callproc.c" "doprnt.c" - "x11term.c" "x11fns.c")) - - -;;; This produces an inverted a-list in subrs-used. The cdr of each -;;; entry is a list of functions that call the function in car. - (defun trace-use-tree () - (setq subrs-used (mapcar 'list (mapcar 'car subrs-called))) - (let ((ptr subrs-called) + (setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called))) + (let ((ptr find-gc-subrs-called) p2 found) (while ptr (setq p2 (car ptr)) (while (setq p2 (cdr p2)) - (if (setq found (assq (car p2) subrs-used)) + (if (setq found (assq (car p2) find-gc-subrs-callers)) (setcdr found (cons (car (car ptr)) (cdr found))))) (setq ptr (cdr ptr)))) ) diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el index b07b6f837fb..1d30d60ea99 100644 --- a/lisp/emacs-lisp/float-sup.el +++ b/lisp/emacs-lisp/float-sup.el @@ -1,6 +1,7 @@ ;;; float-sup.el --- define some constants useful for floating point numbers. -;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el index 785368e290c..3b423f20d88 100644 --- a/lisp/emacs-lisp/generic.el +++ b/lisp/emacs-lisp/generic.el @@ -1,6 +1,7 @@ ;;; generic.el --- defining simple major modes with comment and font-lock ;; -;; Copyright (C) 1997, 1999, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Fri Sep 27 1996 @@ -101,8 +102,7 @@ (defvar generic-font-lock-keywords nil "Keywords for `font-lock-defaults' in a generic mode.") (make-variable-buffer-local 'generic-font-lock-keywords) -(defvaralias 'generic-font-lock-defaults 'generic-font-lock-keywords) -(make-obsolete-variable 'generic-font-lock-defaults 'generic-font-lock-keywords "22.1") +(define-obsolete-variable-alias 'generic-font-lock-defaults 'generic-font-lock-keywords "22.1") ;;;###autoload (defvar generic-mode-list nil diff --git a/lisp/emacs-lisp/gulp.el b/lisp/emacs-lisp/gulp.el index 43311b6ff5d..6e0c4ded4dd 100644 --- a/lisp/emacs-lisp/gulp.el +++ b/lisp/emacs-lisp/gulp.el @@ -1,6 +1,6 @@ ;;; gulp.el --- ask for updates for Lisp packages -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Sam Shteingold <shteingd@math.ucla.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el index eac18a5dca1..e97491aa6bb 100644 --- a/lisp/emacs-lisp/helper.el +++ b/lisp/emacs-lisp/helper.el @@ -1,6 +1,6 @@ ;;; helper.el --- utility help package supporting help in electric modes -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/levents.el b/lisp/emacs-lisp/levents.el index 87a6725f171..70961912815 100644 --- a/lisp/emacs-lisp/levents.el +++ b/lisp/emacs-lisp/levents.el @@ -1,6 +1,7 @@ ;;; levents.el --- emulate the Lucid event data type and associated functions -;; Copyright (C) 1993, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el index d6c7c8c3458..b102b4da581 100644 --- a/lisp/emacs-lisp/lisp-mnt.el +++ b/lisp/emacs-lisp/lisp-mnt.el @@ -1,6 +1,7 @@ ;;; lisp-mnt.el --- utility functions for Emacs Lisp maintainers -;; Copyright (C) 1992, 1994, 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF @@ -306,7 +307,7 @@ If FILE is nil, execute BODY in the current buffer." (insert-file-contents ,filesym) (lisp-mode) ,@body) - (save-excursion + (save-excursion ;; Switching major modes is too drastic, so just switch ;; temporarily to the Lisp mode syntax table. (with-syntax-table lisp-mode-syntax-table diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 8469aec1362..e50d5bd125c 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -1,7 +1,7 @@ ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands -;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, languages @@ -30,6 +30,11 @@ ;;; Code: +(defvar font-lock-comment-face) +(defvar font-lock-doc-face) +(defvar font-lock-keywords-case-fold-search) +(defvar font-lock-string-face) + (defvar lisp-mode-abbrev-table nil) (defvar emacs-lisp-mode-syntax-table @@ -50,12 +55,13 @@ (while (< i 128) (modify-syntax-entry i "_ " table) (setq i (1+ i))) - (modify-syntax-entry ? " " table) + (modify-syntax-entry ?\s " " table) (modify-syntax-entry ?\t " " table) (modify-syntax-entry ?\f " " table) (modify-syntax-entry ?\n "> " table) - ;; Give CR the same syntax as newline, for selective-display. - (modify-syntax-entry ?\^m "> " table) +;;; This is probably obsolete since nowadays such features use overlays. +;;; ;; Give CR the same syntax as newline, for selective-display. +;;; (modify-syntax-entry ?\^m "> " table) (modify-syntax-entry ?\; "< " table) (modify-syntax-entry ?` "' " table) (modify-syntax-entry ?' "' " table) diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index a20b79335cb..d248882d882 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -1,7 +1,7 @@ ;;; lisp.el --- Lisp editing commands for Emacs -;; Copyright (C) 1985, 1986, 1994, 2000, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1994, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, languages diff --git a/lisp/emacs-lisp/lmenu.el b/lisp/emacs-lisp/lmenu.el index c047e0b91e7..68d3a3de9a9 100644 --- a/lisp/emacs-lisp/lmenu.el +++ b/lisp/emacs-lisp/lmenu.el @@ -1,6 +1,7 @@ ;;; lmenu.el --- emulate Lucid's menubar support -;; Copyright (C) 1992, 1993, 1994, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: emulations obsolete @@ -31,8 +32,10 @@ ;; Arrange to use current-menubar to set up part of the menu bar. (defvar current-menubar) +(defvar lucid-menubar-map) +(defvar lucid-failing-menubar) -(setq recompute-lucid-menubar 'recompute-lucid-menubar) +(defvar recompute-lucid-menubar 'recompute-lucid-menubar) (defun recompute-lucid-menubar () (define-key lucid-menubar-map [menu-bar] (condition-case nil diff --git a/lisp/emacs-lisp/lselect.el b/lisp/emacs-lisp/lselect.el index f1d0244f0ea..d0b333edfe4 100644 --- a/lisp/emacs-lisp/lselect.el +++ b/lisp/emacs-lisp/lselect.el @@ -1,6 +1,7 @@ ;;; lselect.el --- Lucid interface to X Selections -;; Copyright (C) 1990, 1993, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1993, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations @@ -33,6 +34,11 @@ ;; all upper-case; this may seem tasteless, but it makes there be a 1:1 ;; correspondence between these symbols and X Atoms (which are upcased.) +;; This is Lucid/XEmacs stuff +(defvar mouse-highlight-priority) +(defvar x-lost-selection-functions) +(defvar zmacs-regions) + (defalias 'x-get-cutbuffer 'x-get-cut-buffer) (defalias 'x-store-cutbuffer 'x-set-cut-buffer) @@ -101,9 +107,9 @@ (defun x-own-selection (selection &optional type) - "Make a primary X Selection of the given argument. -The argument may be a string, a cons of two markers, or an extent. -In the latter cases the selection is considered to be the text + "Make a primary X Selection of the given argument. +The argument may be a string, a cons of two markers, or an extent. +In the latter cases the selection is considered to be the text between the markers, or the between extents endpoints." (interactive (if (not current-prefix-arg) (list (read-string "Store text for pasting: ")) @@ -124,7 +130,7 @@ between the markers, or the between extents endpoints." (defun x-own-secondary-selection (selection &optional type) - "Make a secondary X Selection of the given argument. The argument may be a + "Make a secondary X Selection of the given argument. The argument may be a string or a cons of two markers (in which case the selection is considered to be the text between those markers.)" (interactive (if (not current-prefix-arg) @@ -182,7 +188,7 @@ secondary selection instead of the primary selection." ;; Random utility functions (defun x-kill-primary-selection () - "If there is a selection, delete the text it covers, and copy it to + "If there is a selection, delete the text it covers, and copy it to both the kill ring and the Clipboard." (interactive) (or (x-selection-owner-p) (error "emacs does not own the primary selection")) diff --git a/lisp/emacs-lisp/lucid.el b/lisp/emacs-lisp/lucid.el index 3374a4d7d73..f3c9519edf0 100644 --- a/lisp/emacs-lisp/lucid.el +++ b/lisp/emacs-lisp/lucid.el @@ -1,6 +1,7 @@ ;;; lucid.el --- emulate some Lucid Emacs functions -;; Copyright (C) 1993, 1995, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 02ad05639a3..98e4f67f630 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -1,6 +1,6 @@ ;;; macroexp.el --- Additional macro-expansion support ;; -;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: lisp, compiler, macros @@ -91,7 +91,7 @@ FORMS." CLAUSES is a list of lists of forms; any clause that's not a list is ignored. If SKIP is non-nil, then don't expand that many elements at the start of each clause." - (macroexp-accumulate (clause clauses) + (macroexp-accumulate (clause clauses) (if (listp clause) (macroexpand-all-forms clause skip) clause))) diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el index 6447f7e438c..84c7ae58ced 100644 --- a/lisp/emacs-lisp/map-ynp.el +++ b/lisp/emacs-lisp/map-ynp.el @@ -1,6 +1,7 @@ ;;; map-ynp.el --- general-purpose boolean question-asker -;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Maintainer: FSF @@ -102,15 +103,18 @@ Returns the number of actions taken." (let ((object (if help (capitalize (nth 0 help)))) (objects (if help (capitalize (nth 1 help)))) (action (if help (capitalize (nth 2 help))))) - (setq map `(("Yes" . act) ("No" . skip) ("Quit" . exit) - (,(if help (concat action " " object " And Quit") - "Do it and Quit") . act-and-exit) - (,(if help (concat action " All " objects) - "Do All") . automatic) + (setq map `(("Yes" . act) ("No" . skip) ,@(mapcar (lambda (elt) - (cons (capitalize (nth 2 elt)) + (cons (with-syntax-table + text-mode-syntax-table + (capitalize (nth 2 elt))) (vector (nth 1 elt)))) - action-alist)) + action-alist) + (,(if help (concat action " This But No More") + "Do This But No More") . act-and-exit) + (,(if help (concat action " All " objects) + "Do All") . automatic) + ("No For All" . exit)) use-menus t mouse-event last-nonmenu-event)) (setq user-keys (if action-alist diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el index 7bbd56d8af5..1635aa4bfeb 100644 --- a/lisp/emacs-lisp/pp.el +++ b/lisp/emacs-lisp/pp.el @@ -1,6 +1,7 @@ ;;; pp.el --- pretty printer for Emacs Lisp -;; Copyright (C) 1989, 1993, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Randal Schwartz <merlyn@stonehenge.com> ;; Keywords: lisp @@ -26,6 +27,8 @@ ;;; Code: +(defvar font-lock-verbose) + (defgroup pp nil "Pretty printer for Emacs Lisp." :prefix "pp-" diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index 67a682358f4..1d1e002cf5f 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el @@ -1,6 +1,7 @@ ;;; re-builder.el --- building Regexps with visual feedback -;; Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Detlev Zundel <dzu@gnu.org> ;; Keywords: matching, lisp, tools @@ -299,27 +300,14 @@ Except for Lisp syntax this is the same as `reb-regexp'.") (add-hook 'kill-buffer-hook 'reb-kill-buffer) (reb-auto-update nil nil nil)) - -;; Handy macro for doing things in other windows -(defmacro reb-with-current-window (window &rest body) - "With WINDOW selected evaluate BODY forms and reselect previous window." - - (let ((oldwindow (make-symbol "*oldwindow*"))) - `(let ((,oldwindow (selected-window))) - (select-window ,window) - (unwind-protect - (progn - ,@body) - (select-window ,oldwindow))))) -(put 'reb-with-current-window 'lisp-indent-function 0) - (defun reb-color-display-p () "Return t if display is capable of displaying colors." (eq 'color ;; emacs/xemacs compatibility (if (fboundp 'frame-parameter) (frame-parameter (selected-frame) 'display-type) - (frame-property (selected-frame) 'display-type)))) + (if (fboundp 'frame-property) + (frame-property (selected-frame) 'display-type))))) (defsubst reb-lisp-syntax-p () "Return non-nil if RE Builder uses a Lisp syntax." @@ -329,12 +317,18 @@ Except for Lisp syntax this is the same as `reb-regexp'.") "Return binding for SYMBOL in the RE Builder target buffer." `(with-current-buffer reb-target-buffer ,symbol)) +(defun reb-initialize-buffer () + "Initialize the current buffer as a RE Builder buffer." + (erase-buffer) + (reb-insert-regexp) + (goto-char (+ 2 (point-min))) + (cond ((reb-lisp-syntax-p) + (reb-lisp-mode)) + (t (reb-mode)))) + ;;; This is to help people find this in Apropos. ;;;###autoload -(defun regexp-builder () - "Alias for `re-builder': Construct a regexp interactively." - (interactive) - (re-builder)) +(defalias 'regexp-builder 're-builder) ;;;###autoload (defun re-builder () @@ -351,13 +345,7 @@ Except for Lisp syntax this is the same as `reb-regexp'.") reb-window-config (current-window-configuration)) (select-window (split-window (selected-window) (- (window-height) 4))) (switch-to-buffer (get-buffer-create reb-buffer)) - (erase-buffer) - (reb-insert-regexp) - (goto-char (+ 2 (point-min))) - (cond - ((reb-lisp-syntax-p) - (reb-lisp-mode)) - (t (reb-mode))))) + (reb-initialize-buffer))) (defun reb-change-target-buffer (buf) "Change the target buffer and display it in the target window." @@ -395,8 +383,7 @@ Except for Lisp syntax this is the same as `reb-regexp'.") (interactive) (reb-assert-buffer-in-window) - (reb-with-current-window - reb-target-window + (with-selected-window reb-target-window (if (not (re-search-forward reb-regexp (point-max) t)) (message "No more matches.") (reb-show-subexp @@ -408,13 +395,15 @@ Except for Lisp syntax this is the same as `reb-regexp'.") (interactive) (reb-assert-buffer-in-window) - (reb-with-current-window reb-target-window - (goto-char (1- (point))) - (if (not (re-search-backward reb-regexp (point-min) t)) - (message "No more matches.") - (reb-show-subexp - (or (and reb-subexp-mode reb-subexp-displayed) 0) - t)))) + (with-selected-window reb-target-window + (let ((p (point))) + (goto-char (1- p)) + (if (re-search-backward reb-regexp (point-min) t) + (reb-show-subexp + (or (and reb-subexp-mode reb-subexp-displayed) 0) + t) + (goto-char p) + (message "No more matches."))))) (defun reb-toggle-case () "Toggle case sensitivity of searches for RE Builder target buffer." @@ -451,7 +440,7 @@ On color displays this just puts point to the end of the expression as the match should already be marked by an overlay. On other displays jump to the beginning and the end of it. If the optional PAUSE is non-nil then pause at the end in any case." - (reb-with-current-window reb-target-window + (with-selected-window reb-target-window (if (not (reb-color-display-p)) (progn (goto-char (match-beginning subexp)) (sit-for reb-blink-delay))) @@ -481,14 +470,9 @@ Optional argument SYNTAX must be specified if called non-interactively." (if (memq syntax '(read string lisp-re sregex rx)) (let ((buffer (get-buffer reb-buffer))) (setq reb-re-syntax syntax) - (if buffer - (with-current-buffer buffer - (erase-buffer) - (reb-insert-regexp) - (goto-char (+ 2 (point-min))) - (cond ((reb-lisp-syntax-p) - (reb-lisp-mode)) - (t (reb-mode)))))) + (when buffer + (with-current-buffer buffer + (reb-initialize-buffer)))) (error "Invalid syntax: %s" syntax))) @@ -610,7 +594,8 @@ optional fourth argument FORCE is non-nil." (defun reb-cook-regexp (re) "Return RE after processing it according to `reb-re-syntax'." (cond ((eq reb-re-syntax 'lisp-re) - (lre-compile-string (eval (car (read-from-string re))))) + (if (fboundp 'lre-compile-string) + (lre-compile-string (eval (car (read-from-string re)))))) ((eq reb-re-syntax 'sregex) (apply 'sregex (eval (car (read-from-string re))))) ((eq reb-re-syntax 'rx) diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index 8c44f11babc..da2fdf85f81 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -1,7 +1,7 @@ ;;; regexp-opt.el --- generate efficient regexps to match strings -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el index 7f9d313542d..4326ba37786 100644 --- a/lisp/emacs-lisp/regi.el +++ b/lisp/emacs-lisp/regi.el @@ -1,6 +1,6 @@ ;;; regi.el --- REGular expression Interpreting engine -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: 1993 Barry A. Warsaw, Century Computing, Inc. <bwarsaw@cen.com> ;; Maintainer: bwarsaw@cen.com diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el index 24b90650f0a..f04d98f399d 100644 --- a/lisp/emacs-lisp/ring.el +++ b/lisp/emacs-lisp/ring.el @@ -1,6 +1,6 @@ ;;; ring.el --- handle rings of items -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: extensions diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index c3147815fc9..f526ffae948 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el @@ -1,6 +1,6 @@ ;;; rx.el --- sexp notation for regular expressions -;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el index b36ce4a332e..9cea82d7780 100644 --- a/lisp/emacs-lisp/shadow.el +++ b/lisp/emacs-lisp/shadow.el @@ -1,6 +1,6 @@ ;;; shadow.el --- locate Emacs Lisp file shadowings -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Terry Jones <terry@santafe.edu> ;; Keywords: lisp diff --git a/lisp/emacs-lisp/sregex.el b/lisp/emacs-lisp/sregex.el index 84cb9785f6f..7bfa9402836 100644 --- a/lisp/emacs-lisp/sregex.el +++ b/lisp/emacs-lisp/sregex.el @@ -1,6 +1,7 @@ ;;; sregex.el --- symbolic regular expressions -;; Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Bob Glickstein <bobg+sregex@zanshin.com> ;; Maintainer: Bob Glickstein <bobg+sregex@zanshin.com> diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index bb5e782b001..126c8d50dd9 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -1,6 +1,7 @@ ;;; syntax.el --- helper functions to find syntactic context -;; Copyright (C) 2000, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -46,6 +47,8 @@ (eval-when-compile (require 'cl)) +(defvar font-lock-beginning-of-syntax-function) + (defsubst syntax-ppss-depth (ppss) (nth 0 ppss)) diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el index 4c2ee1ee33c..e79c42180f4 100644 --- a/lisp/emacs-lisp/tcover-ses.el +++ b/lisp/emacs-lisp/tcover-ses.el @@ -1,6 +1,6 @@ ;;;; testcover-ses.el -- Example use of `testcover' to test "SES" -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@engineer.com> ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> @@ -23,6 +23,9 @@ (require 'testcover) +(defvar ses-initial-global-parameters) +(defvar ses-mode-map) + ;;;Here are some macros that exercise SES. Set `pause' to t if you want the ;;;macros to pause after each step. (let* ((pause nil) diff --git a/lisp/emacs-lisp/tcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el index 9544bc396b4..7f7a8fa57de 100644 --- a/lisp/emacs-lisp/tcover-unsafep.el +++ b/lisp/emacs-lisp/tcover-unsafep.el @@ -1,6 +1,6 @@ ;;;; testcover-unsafep.el -- Use testcover to test unsafep's code coverage -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@engineer.com> ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> @@ -25,6 +25,8 @@ (require 'testcover) +(defvar safe-functions) + ;;;These forms are all considered safe (defconst testcover-unsafep-safe '(((lambda (x) (* x 2)) 14) diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el index a5e761d9cba..c0afffdf391 100644 --- a/lisp/emacs-lisp/testcover.el +++ b/lisp/emacs-lisp/testcover.el @@ -1,6 +1,6 @@ ;;;; testcover.el -- Visual code-coverage tool -;; Copyright (C) 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> @@ -154,15 +154,11 @@ call to one of the `testcover-1value-functions'." '((t (:background "DeepPink2"))) "Face for forms that had no hits during coverage test" :group 'testcover) -;; backward-compatibility alias -(put 'testcover-nohits-face 'face-alias 'testcover-nohits) (defface testcover-1value '((t (:background "Wheat2"))) "Face for forms that always produced the same value during coverage test" :group 'testcover) -;; backward-compatibility alias -(put 'testcover-1value-face 'face-alias 'testcover-1value) ;;;========================================================================= diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index e207766701c..83b01642c56 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -1,6 +1,6 @@ ;;; timer.el --- run a function with args at some time in future -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -404,6 +404,9 @@ This function returns a timer object which you can use in `cancel-timer'." ;;;###autoload (put 'with-timeout 'lisp-indent-function 1) +(defvar with-timeout-timers nil + "List of all timers used by currently pending `with-timeout' calls.") + ;;;###autoload (defmacro with-timeout (list &rest body) "Run BODY, but if it doesn't finish in SECONDS seconds, give up. @@ -416,19 +419,46 @@ be detected. (let ((seconds (car list)) (timeout-forms (cdr list))) `(let ((with-timeout-tag (cons nil nil)) - with-timeout-value with-timeout-timer) + with-timeout-value with-timeout-timer + (with-timeout-timers with-timeout-timers)) (if (catch with-timeout-tag (progn (setq with-timeout-timer (run-with-timer ,seconds nil 'with-timeout-handler with-timeout-tag)) + (push with-timeout-timer with-timeout-timers) (setq with-timeout-value (progn . ,body)) nil)) (progn . ,timeout-forms) (cancel-timer with-timeout-timer) with-timeout-value)))) +(defun with-timeout-suspend () + "Stop the clock for `with-timeout'. Used by debuggers. +The idea is that the time you spend in the debugger should not +count against these timeouts. + +The value is a list that the debugger can pass to `with-timeout-unsuspend' +when it exits, to make these timers start counting again." + (mapcar (lambda (timer) + (cancel-timer timer) + (list timer + (time-subtract + ;; The time that this timer will go off. + (list (aref timer 1) (aref timer 2) (aref timer 3)) + (current-time)))) + with-timeout-timers)) + +(defun with-timeout-unsuspend (timer-spec-list) + "Restart the clock for `with-timeout'. +The argument should be a value previously returned by `with-timeout-suspend'." + (dolist (elt timer-spec-list) + (let ((timer (car elt)) + (delay (cadr elt))) + (timer-set-time timer (time-add (current-time) delay)) + (timer-activate timer)))) + (defun y-or-n-p-with-timeout (prompt seconds default-value) "Like (y-or-n-p PROMPT), with a timeout. If the user does not answer after SECONDS seconds, return DEFAULT-VALUE." diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el index d94b4925c4d..8b1baad6596 100644 --- a/lisp/emacs-lisp/tq.el +++ b/lisp/emacs-lisp/tq.el @@ -1,6 +1,7 @@ ;;; tq.el --- utility to maintain a transaction queue -;; Copyright (C) 1985, 1986, 1987, 1992, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Scott Draves <spot@cs.cmu.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el index 8cd5d0fa317..cda23f39c04 100644 --- a/lisp/emacs-lisp/trace.el +++ b/lisp/emacs-lisp/trace.el @@ -1,6 +1,7 @@ ;;; trace.el --- tracing facility for Emacs Lisp functions -;; Copyright (C) 1993, 1998, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el index c59b44cddb2..4b1312d58d7 100644 --- a/lisp/emacs-lisp/unsafep.el +++ b/lisp/emacs-lisp/unsafep.el @@ -1,6 +1,6 @@ ;;;; unsafep.el -- Determine whether a Lisp form is safe to evaluate -;; Copyright (C)2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el index 1f573673495..61f6b98005e 100644 --- a/lisp/emacs-lisp/warnings.el +++ b/lisp/emacs-lisp/warnings.el @@ -1,6 +1,6 @@ ;;; warnings.el --- log and display warnings -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el index 479cc4f2ede..e94be04213c 100644 --- a/lisp/emacs-lock.el +++ b/lisp/emacs-lock.el @@ -1,6 +1,7 @@ ;;; emacs-lock.el --- prevents you from exiting emacs if a buffer is locked -;; Copyright (C) 1994, 1997 Free Software Foundation, Inc +;; Copyright (C) 1994, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc ;; Author: Tom Wurgler <twurgler@goodyear.com> ;; Created: 12/8/94 diff --git a/lisp/emerge.el b/lisp/emerge.el index 1f105163f46..447e45f14f3 100644 --- a/lisp/emerge.el +++ b/lisp/emerge.el @@ -44,6 +44,18 @@ ;;;###autoload (define-key menu-bar-emerge-menu [emerge-buffers] ;;;###autoload '("Buffers..." . emerge-buffers)) +;; There aren't really global variables, just dynamic bindings +(defvar A-begin) +(defvar A-end) +(defvar B-begin) +(defvar B-end) +(defvar diff) +(defvar diff-vector) +(defvar merge-begin) +(defvar merge-end) +(defvar template) +(defvar valid-diff) + ;;; Macros (defmacro emerge-eval-in-buffer (buffer &rest forms) diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el index 4091fd5f01d..66ff29ecab1 100644 --- a/lisp/emulation/crisp.el +++ b/lisp/emulation/crisp.el @@ -1,6 +1,7 @@ ;;; crisp.el --- CRiSP/Brief Emacs emulator -;; Copyright (C) 1997, 1998, 1999, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Gary D. Foster <Gary.Foster@Corp.Sun.COM> ;; Keywords: emulations brief crisp diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index 551408cb34b..1b937da5018 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -1,7 +1,7 @@ ;;; cua-base.el --- emulate CUA key bindings -;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulation convenience cua @@ -62,7 +62,7 @@ ;; If you really need to perform a command which starts with one of ;; the prefix keys even when the region is active, you have three options: ;; - press the prefix key twice very quickly (within 0.2 seconds), -;; - press the prefix key and the following key within 0.2 seconds), or +;; - press the prefix key and the following key within 0.2 seconds, or ;; - use the SHIFT key with the prefix key, i.e. C-X or C-C ;; ;; This behaviour can be customized via the @@ -274,7 +274,7 @@ (defcustom cua-enable-cua-keys t "*Enable using C-z, C-x, C-c, and C-v for undo, cut, copy, and paste. If the value is t, these mappings are always enabled. If the value is -'shift, these keys are only enabled if the last region was marked with +`shift', these keys are only enabled if the last region was marked with a shifted movement key. If the value is nil, these keys are never enabled." :type '(choice (const :tag "Disabled" nil) @@ -314,9 +314,9 @@ If the value is nil, use a shifted prefix key to inhibit the override." "*If non-nil, registers are supported via numeric prefix arg. If the value is t, any numeric prefix arg in the range 0 to 9 will be interpreted as a register number. -If the value is not-ctrl-u, using C-u to enter a numeric prefix is not +If the value is `not-ctrl-u', using C-u to enter a numeric prefix is not interpreted as a register number. -If the value is ctrl-u-only, only numeric prefix entered with C-u is +If the value is `ctrl-u-only', only numeric prefix entered with C-u is interpreted as a register number." :type '(choice (const :tag "Disabled" nil) (const :tag "Enabled, but C-u arg is not a register" not-ctrl-u) @@ -331,7 +331,7 @@ interpreted as a register number." (defcustom cua-use-hyper-key nil "*If non-nil, bind rectangle commands to H-... instead of M-.... -If set to 'also, toggle region command is also on C-return. +If set to `also', toggle region command is also on C-return. Must be set prior to enabling CUA." :type '(choice (const :tag "Meta key and C-return" nil) (const :tag "Hyper key only" only) @@ -362,7 +362,7 @@ managers, so try setting this to nil, if prefix override doesn't work." "*If non-nil, rectangles have virtual straight edges. Note that although rectangles are always DISPLAYED with straight edges, the buffer is NOT modified, until you execute a command that actually modifies it. -\[M-p] toggles this feature when a rectangle is active." +M-p toggles this feature when a rectangle is active." :type 'boolean :group 'cua) @@ -575,6 +575,7 @@ a cons (TYPE . COLOR), then both properties are affected." ;; Current region was started using cua-set-mark. (defvar cua--explicit-region-start nil) +(make-variable-buffer-local 'cua--explicit-region-start) ;; Latest region was started using shifted movement command. (defvar cua--last-region-shifted nil) @@ -585,6 +586,7 @@ a cons (TYPE . COLOR), then both properties are affected." ;; status string for mode line indications (defvar cua--status-string nil) +(make-variable-buffer-local 'cua--status-string) (defvar cua--debug nil) @@ -759,14 +761,19 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil." (cons (current-buffer) (and (consp buffer-undo-list) (car buffer-undo-list)))) - (cua--deactivate))) + (cua--deactivate) + (/= start end))) (defun cua-replace-region () "Replace the active region with the character you type." (interactive) - (cua-delete-region) - (unless (eq this-original-command this-command) - (cua--fallback))) + (let ((not-empty (cua-delete-region))) + (unless (eq this-original-command this-command) + (let ((overwrite-mode + (and overwrite-mode + not-empty + (not (eq this-original-command 'self-insert-command))))) + (cua--fallback))))) (defun cua-copy-region (arg) "Copy the region to the kill ring. @@ -1060,118 +1067,122 @@ If ARG is the atom `-', scroll upward by nearly full screen." ;;; Pre-command hook +(defun cua--pre-command-handler-1 () + (let ((movement (eq (get this-command 'CUA) 'move))) + + ;; Cancel prefix key timeout if user enters another key. + (when cua--prefix-override-timer + (if (timerp cua--prefix-override-timer) + (cancel-timer cua--prefix-override-timer)) + (setq cua--prefix-override-timer nil)) + + ;; Handle shifted cursor keys and other movement commands. + ;; If region is not active, region is activated if key is shifted. + ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC). + ;; If rectangle is active, expand rectangle in specified direction and ignore the movement. + (if movement + (cond + ((if window-system + (memq 'shift (event-modifiers + (aref (this-single-command-raw-keys) 0))) + (or + (memq 'shift (event-modifiers + (aref (this-single-command-keys) 0))) + ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home. + (and (boundp 'local-function-key-map) + (terminal-local-value 'function-key-map nil) + (let ((ev (lookup-key (terminal-local-value 'function-key-map nil) + (this-single-command-raw-keys)))) + (and (vector ev) + (symbolp (setq ev (aref ev 0))) + (string-match "S-" (symbol-name ev))))))) + (unless mark-active + (push-mark-command nil t)) + (setq cua--last-region-shifted t) + (setq cua--explicit-region-start nil)) + ((or cua--explicit-region-start cua--rectangle) + (unless mark-active + (push-mark-command nil nil))) + (t + ;; If we set mark-active to nil here, the region highlight will not be + ;; removed by the direct_output_ commands. + (setq deactivate-mark t))) + + ;; Handle delete-selection property on other commands + (if (and mark-active (not deactivate-mark)) + (let* ((ds (or (get this-command 'delete-selection) + (get this-command 'pending-delete))) + (nc (cond + ((not ds) nil) + ((eq ds 'yank) + 'cua-paste) + ((eq ds 'kill) + (if cua--rectangle + 'cua-copy-rectangle + 'cua-copy-region)) + ((eq ds 'supersede) + (if cua--rectangle + 'cua-delete-rectangle + 'cua-delete-region)) + (t + (if cua--rectangle + 'cua-delete-rectangle ;; replace? + 'cua-replace-region))))) + (if nc + (setq this-original-command this-command + this-command nc))))) + + ;; Detect extension of rectangles by mouse or other movement + (setq cua--buffer-and-point-before-command + (if cua--rectangle (cons (current-buffer) (point)))))) + (defun cua--pre-command-handler () - (condition-case nil - (let ((movement (eq (get this-command 'CUA) 'move))) - - ;; Cancel prefix key timeout if user enters another key. - (when cua--prefix-override-timer - (if (timerp cua--prefix-override-timer) - (cancel-timer cua--prefix-override-timer)) - (setq cua--prefix-override-timer nil)) - - ;; Handle shifted cursor keys and other movement commands. - ;; If region is not active, region is activated if key is shifted. - ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC). - ;; If rectangle is active, expand rectangle in specified direction and ignore the movement. - (if movement - (cond - ((if window-system - (memq 'shift (event-modifiers - (aref (this-single-command-raw-keys) 0))) - (or - (memq 'shift (event-modifiers - (aref (this-single-command-keys) 0))) - ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home. - (and (boundp 'local-function-key-map) - (terminal-local-value 'local-function-key-map nil) - (let ((ev (lookup-key (terminal-local-value 'local-function-key-map nil) - (this-single-command-raw-keys)))) - (and (vector ev) - (symbolp (setq ev (aref ev 0))) - (string-match "S-" (symbol-name ev))))))) - (unless mark-active - (push-mark-command nil t)) - (setq cua--last-region-shifted t) - (setq cua--explicit-region-start nil)) - ((or cua--explicit-region-start cua--rectangle) - (unless mark-active - (push-mark-command nil nil))) - (t - ;; If we set mark-active to nil here, the region highlight will not be - ;; removed by the direct_output_ commands. - (setq deactivate-mark t))) - - ;; Handle delete-selection property on other commands - (if (and mark-active (not deactivate-mark)) - (let* ((ds (or (get this-command 'delete-selection) - (get this-command 'pending-delete))) - (nc (cond - ((not ds) nil) - ((eq ds 'yank) - 'cua-paste) - ((eq ds 'kill) - (if cua--rectangle - 'cua-copy-rectangle - 'cua-copy-region)) - ((eq ds 'supersede) - (if cua--rectangle - 'cua-delete-rectangle - 'cua-delete-region)) - (t - (if cua--rectangle - 'cua-delete-rectangle ;; replace? - 'cua-replace-region))))) - (if nc - (setq this-original-command this-command - this-command nc))))) - - ;; Detect extension of rectangles by mouse or other movement - (setq cua--buffer-and-point-before-command - (if cua--rectangle (cons (current-buffer) (point)))) - ) - (error nil))) + (when cua-mode + (condition-case nil + (cua--pre-command-handler-1) + (error nil)))) ;;; Post-command hook -(defun cua--post-command-handler () - (condition-case nil - (progn - (when cua--global-mark-active - (cua--global-mark-post-command)) - (when (fboundp 'cua--rectangle-post-command) - (cua--rectangle-post-command)) - (setq cua--buffer-and-point-before-command nil) - (if (or (not mark-active) deactivate-mark) - (setq cua--explicit-region-start nil)) - - ;; Debugging - (if cua--debug - (cond - (cua--rectangle (cua--rectangle-assert)) - (mark-active (message "Mark=%d Point=%d Expl=%s" - (mark t) (point) cua--explicit-region-start)))) - - ;; Disable transient-mark-mode if rectangle active in current buffer. - (if (not (window-minibuffer-p (selected-window))) - (setq transient-mark-mode (and (not cua--rectangle) - (if cua-highlight-region-shift-only - (not cua--explicit-region-start) - t)))) - (if cua-enable-cursor-indications - (cua--update-indications)) +(defun cua--post-command-handler-1 () + (when cua--global-mark-active + (cua--global-mark-post-command)) + (when (fboundp 'cua--rectangle-post-command) + (cua--rectangle-post-command)) + (setq cua--buffer-and-point-before-command nil) + (if (or (not mark-active) deactivate-mark) + (setq cua--explicit-region-start nil)) + + ;; Debugging + (if cua--debug + (cond + (cua--rectangle (cua--rectangle-assert)) + (mark-active (message "Mark=%d Point=%d Expl=%s" + (mark t) (point) cua--explicit-region-start)))) + + ;; Disable transient-mark-mode if rectangle active in current buffer. + (if (not (window-minibuffer-p (selected-window))) + (setq transient-mark-mode (and (not cua--rectangle) + (if cua-highlight-region-shift-only + (not cua--explicit-region-start) + t)))) + (if cua-enable-cursor-indications + (cua--update-indications)) - (cua--select-keymaps) - ) + (cua--select-keymaps)) - (error nil))) +(defun cua--post-command-handler () + (when cua-mode + (condition-case nil + (cua--post-command-handler-1) + (error nil)))) ;;; Keymaps (defun cua--M/H-key (map key fct) ;; bind H-KEY or M-KEY to FCT in MAP - (if (eq key 'space) (setq key ? )) + (if (eq key 'space) (setq key ?\s)) (unless (listp key) (setq key (list key))) (define-key map (vector (cons (if cua-use-hyper-key 'hyper 'meta) key)) fct)) @@ -1240,7 +1251,7 @@ If ARG is the atom `-', scroll upward by nearly full screen." (cua--M/H-key cua-global-keymap 'space 'cua-set-rectangle-mark) (define-key cua-global-keymap [(hyper mouse-1)] 'cua-mouse-set-rectangle-mark)) - (define-key cua-global-keymap [(shift control ? )] 'cua-toggle-global-mark) + (define-key cua-global-keymap [(shift control ?\s)] 'cua-toggle-global-mark) ;; replace region with rectangle or element on kill ring (define-key cua-global-keymap [remap yank] 'cua-paste) @@ -1328,10 +1339,26 @@ If ARG is the atom `-', scroll upward by nearly full screen." ;;;###autoload (define-minor-mode cua-mode "Toggle CUA key-binding mode. -When enabled, using shifted movement keys will activate the region (and -highlight the region using `transient-mark-mode'), and typed text replaces -the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and -paste (in addition to the normal Emacs bindings)." +When enabled, using shifted movement keys will activate the +region (and highlight the region using `transient-mark-mode'), +and typed text replaces the active selection. + +Also when enabled, you can use C-z, C-x, C-c, and C-v to undo, +cut, copy, and paste in addition to the normal Emacs bindings. +The C-x and C-c keys only do cut and copy when the region is +active, so in most cases, they do not conflict with the normal +function of these prefix keys. + +If you really need to perform a command which starts with one of +the prefix keys even when the region is active, you have three +options: +- press the prefix key twice very quickly (within 0.2 seconds), +- press the prefix key and the following key within 0.2 seconds, or +- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c. + +You can customize `cua-enable-cua-keys' to completely disable the +CUA bindings, or `cua-prefix-override-inhibit-delay' to change +the prefix fallback behavior." :global t :group 'cua :set-after '(cua-enable-modeline-indications cua-use-hyper-key) @@ -1339,8 +1366,6 @@ paste (in addition to the normal Emacs bindings)." :link '(emacs-commentary-link "cua-base.el") (setq mark-even-if-inactive t) (setq highlight-nonselected-windows nil) - (make-variable-buffer-local 'cua--explicit-region-start) - (make-variable-buffer-local 'cua--status-string) (unless cua--keymaps-initalized (cua--init-keymaps) @@ -1393,6 +1418,15 @@ paste (in addition to the normal Emacs bindings)." (if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " enabled" ""))) (setq cua--saved-state nil)))) + +;;;###autoload +(defun cua-selection-mode (arg) + "Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings." + (interactive "P") + (setq-default cua-enable-cua-keys nil) + (cua-mode arg)) + + (defun cua-debug () "Toggle CUA debugging." (interactive) diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el index 6ebbb6fc008..c7c5dd3db6d 100644 --- a/lisp/emulation/cua-gmrk.el +++ b/lisp/emulation/cua-gmrk.el @@ -1,6 +1,7 @@ ;;; cua-gmrk.el --- CUA unified global mark support -;; Copyright (C) 1997-2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulations convenience cua mark diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el index 011a0fb8a3f..d83ebd543cd 100644 --- a/lisp/emulation/cua-rect.el +++ b/lisp/emulation/cua-rect.el @@ -1,6 +1,7 @@ ;;; cua-rect.el --- CUA unified rectangle support -;; Copyright (C) 1997-2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulations convenience CUA @@ -832,6 +833,7 @@ If command is repeated at same position, delete the rectangle." (overlay-put overlay 'after-string as) (overlay-put overlay 'face rface) (overlay-put overlay 'keymap cua--overlay-keymap) + (overlay-put overlay 'window (selected-window)) (setq new (cons overlay new)))))) ;; Trim old trailing overlays. (mapcar (function delete-overlay) old) diff --git a/lisp/emulation/edt-lk201.el b/lisp/emulation/edt-lk201.el index a56c4656c07..4db235c60fa 100644 --- a/lisp/emulation/edt-lk201.el +++ b/lisp/emulation/edt-lk201.el @@ -1,6 +1,7 @@ ;;; edt-lk201.el --- enhanced EDT keypad mode emulation for LK-201 keyboards -;; Copyright (C) 1986, 1992, 1993, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 1993, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <kevingal@onramp.net> ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el index eeb34b9c7bb..9334c74392b 100644 --- a/lisp/emulation/edt-mapper.el +++ b/lisp/emulation/edt-mapper.el @@ -1,6 +1,7 @@ ;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs -;; Copyright (C) 1994, 1995, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <kevingal@onramp.net> ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/lisp/emulation/edt-pc.el b/lisp/emulation/edt-pc.el index 41d0b772967..419f6549ba6 100644 --- a/lisp/emulation/edt-pc.el +++ b/lisp/emulation/edt-pc.el @@ -1,6 +1,7 @@ ;;; edt-pc.el --- enhanced EDT keypad mode emulation for PC 101 keyboards -;; Copyright (C) 1986, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <kevingal@onramp.net> ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/lisp/emulation/edt-vt100.el b/lisp/emulation/edt-vt100.el index 7104c53a77f..cd9a065acf8 100644 --- a/lisp/emulation/edt-vt100.el +++ b/lisp/emulation/edt-vt100.el @@ -1,6 +1,7 @@ ;;; edt-vt100.el --- enhanced EDT keypad mode emulation for VT series terminals -;; Copyright (C) 1986, 1992, 1993, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 1993, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <kevingal@onramp.net> ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el index 8eecf5fca58..8d5071be314 100644 --- a/lisp/emulation/edt.el +++ b/lisp/emulation/edt.el @@ -1,7 +1,7 @@ ;;; edt.el --- enhanced EDT keypad mode emulation for GNU Emacs 19 -;; Copyright (C) 1986, 1992, 1993, 1994, 1995, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 1993, 1994, 1995, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <kevingal@onramp.net> ;; Maintainer: Kevin Gallagher <kevingal@onramp.net> diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el index 3e492005f8d..a42edaa78a1 100644 --- a/lisp/emulation/keypad.el +++ b/lisp/emulation/keypad.el @@ -1,6 +1,6 @@ ;;; keypad.el --- simplified keypad bindings -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard convenience diff --git a/lisp/emulation/pc-mode.el b/lisp/emulation/pc-mode.el index 3bcb60ec0bb..1ec66664b6a 100644 --- a/lisp/emulation/pc-mode.el +++ b/lisp/emulation/pc-mode.el @@ -1,6 +1,6 @@ ;;; pc-mode.el --- emulate certain key bindings used on PCs -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el index 3a85a430153..9b9f4d51b41 100644 --- a/lisp/emulation/pc-select.el +++ b/lisp/emulation/pc-select.el @@ -2,7 +2,8 @@ ;;; (or MAC GUI or MS-windoze (bah)) look-and-feel ;;; including key bindings. -;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> ;; Keywords: convenience emulation diff --git a/lisp/emulation/tpu-edt.el b/lisp/emulation/tpu-edt.el index 3c18e2f608f..eca6e5c74ce 100644 --- a/lisp/emulation/tpu-edt.el +++ b/lisp/emulation/tpu-edt.el @@ -1,6 +1,7 @@ ;;; tpu-edt.el --- Emacs emulating TPU emulating EDT -;; Copyright (C) 1993, 1994, 1995, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/emulation/tpu-extras.el b/lisp/emulation/tpu-extras.el index 51ed44346ad..c48aa974762 100644 --- a/lisp/emulation/tpu-extras.el +++ b/lisp/emulation/tpu-extras.el @@ -1,6 +1,7 @@ ;;; tpu-extras.el --- scroll margins and free cursor mode for TPU-edt -;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/emulation/tpu-mapper.el b/lisp/emulation/tpu-mapper.el index 66d6541ac0f..e21a85db2af 100644 --- a/lisp/emulation/tpu-mapper.el +++ b/lisp/emulation/tpu-mapper.el @@ -1,6 +1,7 @@ ;;; tpu-mapper.el --- create a TPU-edt X-windows keymap file -;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el index aa6e75357ed..51fbdb6b8c4 100644 --- a/lisp/emulation/vip.el +++ b/lisp/emulation/vip.el @@ -1,7 +1,7 @@ ;;; vip.el --- a VI Package for GNU Emacs -;; Copyright (C) 1986, 1987, 1988, 1992, 1993, 1998, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 1988, 1992, 1993, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Masahiko Sato <ms@sail.stanford.edu> ;; Keywords: emulations diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 4f247f2cd38..99a130e7f1d 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el @@ -1,6 +1,7 @@ ;;; viper-cmd.el --- Vi command support for Viper -;; Copyright (C) 1997, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -36,6 +37,8 @@ (defvar viper-always) (defvar viper-mode-string) (defvar viper-custom-file-name) +(defvar viper--key-maps) +(defvar viper--intercept-key-maps) (defvar iso-accents-mode) (defvar quail-mode) (defvar quail-current-str) @@ -92,7 +95,7 @@ ;; Variables for defining VI commands ;; Modifying commands that can be prefixes to movement commands -(defconst viper-prefix-commands '(?c ?d ?y ?! ?= ?# ?< ?> ?\")) +(defvar viper-prefix-commands '(?c ?d ?y ?! ?= ?# ?< ?> ?\")) ;; define viper-prefix-command-p (viper-test-com-defun viper-prefix-command) @@ -440,23 +443,24 @@ ;; This ensures that Viper bindings are in effect, regardless of which minor ;; modes were turned on by the user or by other packages. (defun viper-normalize-minor-mode-map-alist () - (setq minor-mode-map-alist - (viper-append-filter-alist - (list (cons 'viper-vi-intercept-minor-mode viper-vi-intercept-map) - (cons 'viper-vi-minibuffer-minor-mode viper-minibuffer-map) - (cons 'viper-vi-local-user-minor-mode viper-vi-local-user-map) - (cons 'viper-vi-kbd-minor-mode viper-vi-kbd-map) - (cons 'viper-vi-global-user-minor-mode viper-vi-global-user-map) - (cons 'viper-vi-state-modifier-minor-mode - (if (keymapp - (cdr (assoc major-mode - viper-vi-state-modifier-alist))) - (cdr (assoc major-mode viper-vi-state-modifier-alist)) - viper-empty-keymap)) - (cons 'viper-vi-diehard-minor-mode viper-vi-diehard-map) - (cons 'viper-vi-basic-minor-mode viper-vi-basic-map) - (cons 'viper-insert-intercept-minor-mode - viper-insert-intercept-map) + (setq viper--intercept-key-maps + (list + (cons 'viper-vi-intercept-minor-mode viper-vi-intercept-map) + (cons 'viper-insert-intercept-minor-mode viper-insert-intercept-map) + (cons 'viper-emacs-intercept-minor-mode viper-emacs-intercept-map) + )) + (setq viper--key-maps + (list (cons 'viper-vi-minibuffer-minor-mode viper-minibuffer-map) + (cons 'viper-vi-local-user-minor-mode viper-vi-local-user-map) + (cons 'viper-vi-kbd-minor-mode viper-vi-kbd-map) + (cons 'viper-vi-global-user-minor-mode viper-vi-global-user-map) + (cons 'viper-vi-state-modifier-minor-mode + (if (keymapp + (cdr (assoc major-mode viper-vi-state-modifier-alist))) + (cdr (assoc major-mode viper-vi-state-modifier-alist)) + viper-empty-keymap)) + (cons 'viper-vi-diehard-minor-mode viper-vi-diehard-map) + (cons 'viper-vi-basic-minor-mode viper-vi-basic-map) (cons 'viper-replace-minor-mode viper-replace-map) ;; viper-insert-minibuffer-minor-mode must come after ;; viper-replace-minor-mode @@ -476,8 +480,6 @@ viper-empty-keymap)) (cons 'viper-insert-diehard-minor-mode viper-insert-diehard-map) (cons 'viper-insert-basic-minor-mode viper-insert-basic-map) - (cons 'viper-emacs-intercept-minor-mode - viper-emacs-intercept-map) (cons 'viper-emacs-local-user-minor-mode viper-emacs-local-user-map) (cons 'viper-emacs-kbd-minor-mode viper-emacs-kbd-map) @@ -490,8 +492,16 @@ (cdr (assoc major-mode viper-emacs-state-modifier-alist)) viper-empty-keymap)) - ) - minor-mode-map-alist))) + )) + + ;; in emacs with emulation-mode-map-alists, nothing needs to be done + (unless + (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (setq minor-mode-map-alist + (viper-append-filter-alist + (append viper--intercept-key-maps viper--key-maps) + minor-mode-map-alist))) + ) @@ -765,7 +775,8 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to ) (if (commandp com) - (progn + ;; pretend that current state is the state we excaped to + (let ((viper-current-state state)) (setq prefix-arg (or prefix-arg arg)) (command-execute com))) ) @@ -931,8 +942,10 @@ Suffixes such as .el or .elc should be stripped." ;; Change the default for minor-mode-map-alist each time a harnessed minor ;; mode adds its own keymap to the a-list. - (eval-after-load - load-file '(setq-default minor-mode-map-alist minor-mode-map-alist)) + (unless + (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (eval-after-load + load-file '(setq-default minor-mode-map-alist minor-mode-map-alist))) ) @@ -987,9 +1000,12 @@ as a Meta key and any number of multiple escapes is allowed." (inhibit-quit t)) (if (viper-ESC-event-p event) (progn - (if (viper-fast-keysequence-p) + ;; Emacs 22.50.8 introduced a bug, which makes even a single ESC into + ;; a fast keyseq. To guard against this, we added a check if there + ;; are other events as well + (if (and (viper-fast-keysequence-p) unread-command-events) (progn - (let (minor-mode-map-alist) + (let (minor-mode-map-alist emulation-mode-map-alists) (viper-set-unread-command-events event) (setq keyseq (read-key-sequence nil 'continue-echo)) ) ; let @@ -1021,7 +1037,7 @@ as a Meta key and any number of multiple escapes is allowed." (not viper-translate-all-ESC-keysequences)) ;; put keys following ESC on the unread list ;; and return ESC as the key-sequence - (viper-set-unread-command-events (subseq keyseq 1)) + (viper-set-unread-command-events (viper-subseq keyseq 1)) (setq last-input-event event keyseq (if viper-emacs-p "\e" @@ -1032,7 +1048,7 @@ as a Meta key and any number of multiple escapes is allowed." (viper-set-unread-command-events (vconcat (vector (character-to-event (event-key first-key))) - (subseq keyseq 1))) + (viper-subseq keyseq 1))) (setq last-input-event event keyseq (vector (character-to-event ?\e)))) ((eventp first-key) @@ -1407,7 +1423,8 @@ as a Meta key and any number of multiple escapes is allowed." (if (eq last-command 'd-command) 'kill-region nil)) (setq chars-deleted (abs (- (point) viper-com-point))) (if (> chars-deleted viper-change-notification-threshold) - (message "Deleted %d characters" chars-deleted)) + (unless (viper-is-in-minibuffer) + (message "Deleted %d characters" chars-deleted))) (kill-region viper-com-point (point)) (setq this-command 'd-command) (if viper-ex-style-motion @@ -1433,7 +1450,8 @@ as a Meta key and any number of multiple escapes is allowed." (if (eq last-command 'D-command) 'kill-region nil)) (setq lines-deleted (count-lines (point) viper-com-point)) (if (> lines-deleted viper-change-notification-threshold) - (message "Deleted %d lines" lines-deleted)) + (unless (viper-is-in-minibuffer) + (message "Deleted %d lines" lines-deleted))) (kill-region (mark t) (point)) (if (eq m-com 'viper-line) (setq this-command 'D-command))) (back-to-indentation))) @@ -1458,7 +1476,8 @@ as a Meta key and any number of multiple escapes is allowed." (copy-region-as-kill viper-com-point (point)) (setq chars-saved (abs (- (point) viper-com-point))) (if (> chars-saved viper-change-notification-threshold) - (message "Saved %d characters" chars-saved)) + (unless (viper-is-in-minibuffer) + (message "Saved %d characters" chars-saved))) (goto-char viper-com-point))) ;; save lines @@ -1482,7 +1501,8 @@ as a Meta key and any number of multiple escapes is allowed." (copy-region-as-kill (mark t) (point)) (setq lines-saved (count-lines (mark t) (point))) (if (> lines-saved viper-change-notification-threshold) - (message "Saved %d lines" lines-saved)))) + (unless (viper-is-in-minibuffer) + (message "Saved %d lines" lines-saved))))) (viper-deactivate-mark) (goto-char viper-com-point)) @@ -3732,7 +3752,8 @@ Null string will repeat previous search." (interactive "P") (let ((val (viper-P-val arg)) (com (viper-getcom arg)) - (old-str viper-s-string)) + (old-str viper-s-string) + debug-on-error) (setq viper-s-forward t) (viper-if-string "/") ;; this is not used at present, but may be used later @@ -3744,7 +3765,8 @@ Null string will repeat previous search." (if com (progn (viper-move-marker-locally 'viper-com-point (mark t)) - (viper-execute-com 'viper-search-next val com))))) + (viper-execute-com 'viper-search-next val com))) + )) (defun viper-search-backward (arg) "Search a string backward. @@ -3753,7 +3775,8 @@ Null string will repeat previous search." (interactive "P") (let ((val (viper-P-val arg)) (com (viper-getcom arg)) - (old-str viper-s-string)) + (old-str viper-s-string) + debug-on-error) (setq viper-s-forward nil) (viper-if-string "?") ;; this is not used at present, but may be used later @@ -3858,7 +3881,8 @@ Null string will repeat previous search." "Repeat previous search." (interactive "P") (let ((val (viper-p-val arg)) - (com (viper-getcom arg))) + (com (viper-getcom arg)) + debug-on-error) (if (null viper-s-string) (error viper-NoPrevSearch)) (viper-search viper-s-string viper-s-forward arg) (if com @@ -3870,7 +3894,8 @@ Null string will repeat previous search." "Repeat previous search in the reverse direction." (interactive "P") (let ((val (viper-p-val arg)) - (com (viper-getcom arg))) + (com (viper-getcom arg)) + debug-on-error) (if (null viper-s-string) (error viper-NoPrevSearch)) (viper-search viper-s-string (not viper-s-forward) arg) (if com @@ -4001,8 +4026,9 @@ Null string will repeat previous search." lines-inserted (abs (count-lines (point) sv-point))) (if (or (> chars-inserted viper-change-notification-threshold) (> lines-inserted viper-change-notification-threshold)) - (message "Inserted %d character(s), %d line(s)" - chars-inserted lines-inserted))) + (unless (viper-is-in-minibuffer) + (message "Inserted %d character(s), %d line(s)" + chars-inserted lines-inserted)))) ;; Vi puts cursor on the last char when the yanked text doesn't contain a ;; newline; it leaves the cursor at the beginning when the text contains ;; a newline @@ -4043,8 +4069,9 @@ Null string will repeat previous search." lines-inserted (abs (count-lines (point) sv-point))) (if (or (> chars-inserted viper-change-notification-threshold) (> lines-inserted viper-change-notification-threshold)) - (message "Inserted %d character(s), %d line(s)" - chars-inserted lines-inserted))) + (unless (viper-is-in-minibuffer) + (message "Inserted %d character(s), %d line(s)" + chars-inserted lines-inserted)))) ;; Vi puts cursor on the last char when the yanked text doesn't contain a ;; newline; it leaves the cursor at the beginning when the text contains ;; a newline diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el index 008b430d167..87d2d7f5d5a 100644 --- a/lisp/emulation/viper-ex.el +++ b/lisp/emulation/viper-ex.el @@ -1,6 +1,7 @@ ;;; viper-ex.el --- functions implementing the Ex commands for Viper -;; Copyright (C) 1994, 95, 96, 97, 98, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el index 6e188f21a9d..9c1df1b0ad5 100644 --- a/lisp/emulation/viper-init.el +++ b/lisp/emulation/viper-init.el @@ -1,6 +1,7 @@ ;;; viper-init.el --- some common definitions for Viper -;; Copyright (C) 1997, 98, 99, 2000, 01, 02, 05 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -362,8 +363,8 @@ Use `M-x viper-set-expert-level' to change this.") (defun viper-activate-input-method () (cond ((and viper-emacs-p (fboundp 'activate-input-method)) (activate-input-method default-input-method)) - ((and viper-xemacs-p (fboundp 'quail-mode)) - (quail-mode 1)))) + ((featurep 'xemacs) + (if (fboundp 'quail-mode) (quail-mode 1))))) ;; Set quail-mode to ARG (defun viper-set-input-method (arg) @@ -423,13 +424,20 @@ delete the text being replaced, as in standard Vi." "*Cursor color when Viper is in Replace state." :type 'string :group 'viper) +(if (fboundp 'make-variable-frame-local) + (make-variable-frame-local 'viper-replace-overlay-cursor-color)) + (defcustom viper-insert-state-cursor-color "Green" "Cursor color when Viper is in insert state." :type 'string :group 'viper) +(if (fboundp 'make-variable-frame-local) + (make-variable-frame-local 'viper-insert-state-cursor-color)) ;; internal var, used to remember the default cursor color of emacs frames (defvar viper-vi-state-cursor-color nil) +(if (fboundp 'make-variable-frame-local) + (make-variable-frame-local 'viper-vi-state-cursor-color)) (viper-deflocalvar viper-replace-overlay nil "") (put 'viper-replace-overlay 'permanent-local t) @@ -855,15 +863,13 @@ Related buffers can be cycled through via :R and :P commands." (t (:underline t :stipple "gray3"))) "*Face used to flash out the search pattern." :group 'viper-highlighting) -;; backward-compatibility alias -(put 'viper-search-face 'face-alias 'viper-search) ;; An internal variable. Viper takes the face from here. (defvar viper-search-face 'viper-search "Face used to flash out the search pattern. DO NOT CHANGE this variable. Instead, use the customization widget -to customize the actual face object `viper-search-face' +to customize the actual face object `viper-search' this variable represents.") -(viper-hide-face 'viper-search) +(viper-hide-face viper-search-face) (defface viper-replace-overlay @@ -871,15 +877,13 @@ this variable represents.") (t (:underline t :stipple "gray3"))) "*Face for highlighting replace regions on a window display." :group 'viper-highlighting) -;; backward-compatibility alias -(put 'viper-replace-overlay-face 'face-alias 'viper-replace-overlay) ;; An internal variable. Viper takes the face from here. (defvar viper-replace-overlay-face 'viper-replace-overlay "Face for highlighting replace regions on a window display. DO NOT CHANGE this variable. Instead, use the customization widget -to customize the actual face object `viper-replace-overlay-face' +to customize the actual face object `viper-replace-overlay' this variable represents.") -(viper-hide-face 'viper-replace-overlay) +(viper-hide-face viper-replace-overlay-face) (defface viper-minibuffer-emacs @@ -887,15 +891,13 @@ this variable represents.") (t (:weight bold))) "Face used in the Minibuffer when it is in Emacs state." :group 'viper-highlighting) -;; backward-compatibility alias -(put 'viper-minibuffer-emacs-face 'face-alias 'viper-minibuffer-emacs) ;; An internal variable. Viper takes the face from here. (defvar viper-minibuffer-emacs-face 'viper-minibuffer-emacs "Face used in the Minibuffer when it is in Emacs state. DO NOT CHANGE this variable. Instead, use the customization widget -to customize the actual face object `viper-minibuffer-emacs-face' +to customize the actual face object `viper-minibuffer-emacs' this variable represents.") -(viper-hide-face 'viper-minibuffer-emacs) +(viper-hide-face viper-minibuffer-emacs-face) (defface viper-minibuffer-insert @@ -903,15 +905,13 @@ this variable represents.") (t (:slant italic))) "Face used in the Minibuffer when it is in Insert state." :group 'viper-highlighting) -;; backward-compatibility alias -(put 'viper-minibuffer-insert-face 'face-alias 'viper-minibuffer-insert) ;; An internal variable. Viper takes the face from here. (defvar viper-minibuffer-insert-face 'viper-minibuffer-insert "Face used in the Minibuffer when it is in Insert state. DO NOT CHANGE this variable. Instead, use the customization widget -to customize the actual face object `viper-minibuffer-insert-face' +to customize the actual face object `viper-minibuffer-insert' this variable represents.") -(viper-hide-face 'viper-minibuffer-insert) +(viper-hide-face viper-minibuffer-insert-face) (defface viper-minibuffer-vi @@ -919,15 +919,13 @@ this variable represents.") (t (:inverse-video t))) "Face used in the Minibuffer when it is in Vi state." :group 'viper-highlighting) -;; backward-compatibility alias -(put 'viper-minibuffer-vi-face 'face-alias 'viper-minibuffer-vi) ;; An internal variable. Viper takes the face from here. (defvar viper-minibuffer-vi-face 'viper-minibuffer-vi "Face used in the Minibuffer when it is in Vi state. DO NOT CHANGE this variable. Instead, use the customization widget -to customize the actual face object `viper-minibuffer-vi-face' +to customize the actual face object `viper-minibuffer-vi' this variable represents.") -(viper-hide-face 'viper-minibuffer-vi) +(viper-hide-face viper-minibuffer-vi-face) ;; the current face to be used in the minibuffer (viper-deflocalvar diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el index e83cf14776f..2af0a9bbfa8 100644 --- a/lisp/emulation/viper-keym.el +++ b/lisp/emulation/viper-keym.el @@ -1,6 +1,7 @@ ;;; viper-keym.el --- Viper keymaps -;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -50,25 +51,6 @@ ;;; Variables -(defcustom viper-toggle-key "\C-z" - "The key used to change states from emacs to Vi and back. -In insert mode, this key also functions as Meta. -Must be set in .viper file or prior to loading Viper. -This setting cannot be changed interactively." - :type 'string - :group 'viper) - -(defcustom viper-quoted-insert-key "\C-v" - "The key used to quote special characters when inserting them in Insert state." - :type 'string - :group 'viper) - -(defcustom viper-ESC-key "\e" - "Key used to ESC. -Must be set in .viper file or prior to loading Viper. -This setting cannot be changed interactively." - :type 'string - :group 'viper) ;;; Emacs keys in other states. @@ -176,6 +158,78 @@ viper-insert-basic-map. Not recommended, except for novice users.") ;; and, after .viper is loaded, we add this keymap to viper-vi-basic-map. (defvar viper-mode-map (make-sparse-keymap)) +;; Some important keys used in viper +(defcustom viper-toggle-key [(control ?z)] ; "\C-z" + "The key used to change states from emacs to Vi and back. +In insert mode, this key also functions as Meta. + +Enter as a sexp. Examples: \"\\C-z\", [(control ?z)]." + :type 'sexp + :group 'viper + :set (lambda (symbol value) + (let ((old-value (if (boundp 'viper-toggle-key) + viper-toggle-key + [(control ?z)]))) + (mapcar + (lambda (buf) + (save-excursion + (set-buffer buf) + (when (and (boundp 'viper-insert-basic-map) + (keymapp viper-insert-basic-map)) + (when old-value + (define-key viper-insert-basic-map old-value nil)) + (define-key viper-insert-basic-map value 'viper-escape-to-vi)) + (when (and (boundp 'viper-vi-intercept-map) + (keymapp viper-vi-intercept-map)) + (when old-value + (define-key viper-vi-intercept-map old-value nil)) + (define-key + viper-vi-intercept-map value 'viper-toggle-key-action)) + (when (and (boundp 'viper-emacs-intercept-map) + (keymapp viper-emacs-intercept-map)) + (define-key viper-emacs-intercept-map old-value nil) + (define-key + viper-emacs-intercept-map value 'viper-change-state-to-vi)) + )) + (buffer-list)) + (set-default symbol value) + ))) + +(defcustom viper-quoted-insert-key "\C-v" + "The key used to quote special characters when inserting them in Insert state." + :type 'string + :group 'viper) + +(defcustom viper-ESC-key [(escape)] ; "\e" + "Key used to ESC. +Enter as a sexp. Examples: \"\\e\", [(escape)]." + :type 'sexp + :group 'viper + :set (lambda (symbol value) + (let ((old-value (if (boundp 'viper-ESC-key) + viper-ESC-key + [(escape)]))) + (mapcar + (lambda (buf) + (save-excursion + (set-buffer buf) + (when (and (boundp 'viper-insert-intercept-map) + (keymapp viper-insert-intercept-map)) + (when old-value + (define-key viper-insert-intercept-map old-value nil)) + (define-key + viper-insert-intercept-map value 'viper-intercept-ESC-key)) + (when (and (boundp 'viper-vi-intercept-map) + (keymapp viper-vi-intercept-map)) + (when old-value + (define-key viper-vi-intercept-map old-value nil)) + (define-key + viper-vi-intercept-map value 'viper-intercept-ESC-key)) + )) + (buffer-list)) + (set-default symbol value) + ))) + ;;; Variables used by minor modes @@ -197,6 +251,10 @@ viper-insert-basic-map. Not recommended, except for novice users.") ;; to its Emacs state in various major modes. (defvar viper-emacs-state-modifier-alist nil) +;; The list of viper keymaps. Set by viper-normalize-minor-mode-map-alist +(viper-deflocalvar viper--key-maps nil) +(viper-deflocalvar viper--intercept-key-maps nil) + ;; Tells viper-add-local-keys to create a new viper-vi-local-user-map for new ;; buffers. Not a user option. (viper-deflocalvar viper-need-new-vi-local-map t "") @@ -509,7 +567,7 @@ Usage: (defun viper-zap-local-keys () "Unconditionally reset Viper viper-*-local-user-map's. -Rarely useful, but if u made a mistake by switching to a mode that adds +Rarely useful, but if you made a mistake by switching to a mode that adds undesirable local keys, e.g., comint-mode, then this function can restore sanity." (interactive) diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el index 8a3ce5db9eb..edc5cba1bbe 100644 --- a/lisp/emulation/viper-macs.el +++ b/lisp/emulation/viper-macs.el @@ -1,6 +1,7 @@ ;;; viper-macs.el --- functions implementing keyboard macros for Viper -;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -178,7 +179,7 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., (if (member key '(?\b ?\d '^? '^H (control h) (control \?) backspace delete)) - (setq key-seq (subseq key-seq 0 (- (length key-seq) 2)))) + (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2)))) (setq message (format ":map%s %s" @@ -242,9 +243,9 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., (cond ((member key '(?\b ?\d '^? '^H (control h) (control \?) backspace delete)) - (setq key-seq (subseq key-seq 0 (- (length key-seq) 2)))) + (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2)))) ((member key '(tab (control i) ?\t)) - (setq key-seq (subseq key-seq 0 (1- (length key-seq)))) + (setq key-seq (viper-subseq key-seq 0 (1- (length key-seq)))) (setq message (format ":unmap%s %s" @@ -618,7 +619,7 @@ name from there." (if (null macro-alist-elt) (setq macro-alist-elt (car next-best-match) - unmatched-suffix (subseq event-seq (cdr next-best-match)))) + unmatched-suffix (viper-subseq event-seq (cdr next-best-match)))) (cond ((null macro-alist-elt)) ((setq macro-body (viper-kbd-buf-definition macro-alist-elt))) @@ -701,7 +702,7 @@ name from there." (let ((len1 (length seq1)) (len2 (length seq2))) (if (<= len1 len2) - (equal seq1 (subseq seq2 0 len1))))) + (equal seq1 (viper-subseq seq2 0 len1))))) ;; find the longest common prefix (defun viper-common-seq-prefix (&rest seqs) @@ -766,7 +767,7 @@ name from there." (setq macro-def (car lis) def-len (length (car macro-def))) (if (and (>= str-len def-len) - (equal (car macro-def) (subseq str 0 def-len))) + (equal (car macro-def) (viper-subseq str 0 def-len))) (if (or (viper-kbd-buf-definition macro-def) (viper-kbd-mode-definition macro-def) (viper-kbd-global-definition macro-def)) diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el index 503cd145796..084d70050a2 100644 --- a/lisp/emulation/viper-mous.el +++ b/lisp/emulation/viper-mous.el @@ -1,6 +1,7 @@ ;;; viper-mous.el --- mouse support for Viper -;; Copyright (C) 1994, 95, 96, 97, 2001, 02 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -65,7 +66,7 @@ (defvar viper-frame-of-focus nil) ;; Frame that was selected before the switch-frame event. -(defconst viper-current-frame-saved (selected-frame)) +(defvar viper-current-frame-saved (selected-frame)) (defcustom viper-surrounding-word-function 'viper-surrounding-word "*Function that determines what constitutes a word for clicking events. diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index 2d713df6ef6..cc9f42b9800 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -1,6 +1,7 @@ ;;; viper-util.el --- Utilities used by viper.el -;; Copyright (C) 1994, 95, 96, 97, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> @@ -41,7 +42,6 @@ (defvar viper-syntax-preference) (defvar viper-saved-mark) -(require 'cl) (require 'ring) (if noninteractive @@ -360,7 +360,7 @@ (setq lis2 (delq elt lis2))) (setq temp (cdr temp))) - (nconc lis1 lis2))) + (append lis1 lis2))) @@ -1068,7 +1068,7 @@ (t key))) ((listp key) - (setq modifiers (subseq key 0 (1- (length key))) + (setq modifiers (viper-subseq key 0 (1- (length key))) base-key (viper-seq-last-elt key) base-key-name (symbol-name base-key) char-p (= (length base-key-name) 1)) @@ -1503,6 +1503,33 @@ This option is appropriate if you like Emacs-style words." )) +;; this is copied from cl-extra.el +;; Return the subsequence of SEQ from START to END. +;; If END is omitted, it defaults to the length of the sequence. +;; If START or END is negative, it counts from the end. +(defun viper-subseq (seq start &optional end) + (if (stringp seq) (substring seq start end) + (let (len) + (and end (< end 0) (setq end (+ end (setq len (length seq))))) + (if (< start 0) (setq start (+ start (or len (setq len (length seq)))))) + (cond ((listp seq) + (if (> start 0) (setq seq (nthcdr start seq))) + (if end + (let ((res nil)) + (while (>= (setq end (1- end)) start) + (push (pop seq) res)) + (nreverse res)) + (copy-sequence seq))) + (t + (or end (setq end (or len (length seq)))) + (let ((res (make-vector (max (- end start) 0) nil)) + (i 0)) + (while (< start end) + (aset res i (aref seq start)) + (setq i (1+ i) start (1+ start))) + res)))))) + + (provide 'viper-util) diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index fe65cb69cbb..bfa730cc434 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el @@ -3,12 +3,13 @@ ;; and a venomous VI PERil. ;; Viper Is also a Package for Emacs Rebels. -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Keywords: emulations -(defconst viper-version "3.11.4 of February 19, 2005" +(defconst viper-version "3.11.5 of August 6, 2005" "The current version of Viper") ;; This file is part of GNU Emacs. @@ -320,6 +321,7 @@ ;; end pacifier (require 'viper-init) +(require 'viper-keym) ;; better be defined before Viper custom group. (defvar viper-custom-file-name (convert-standard-filename "~/.viper") @@ -370,7 +372,6 @@ widget." (defcustom viper-vi-state-mode-list '(fundamental-mode makefile-mode - help-mode awk-mode m4-mode @@ -396,7 +397,7 @@ widget." tex-mode latex-mode bibtex-mode ps-mode - completion-list-mode + ;; completion-list-mode diff-mode idl-mode @@ -424,6 +425,7 @@ widget." browse-kill-ring-mode recentf-mode + recentf-dialog-mode occur-mode mh-folder-mode @@ -431,6 +433,9 @@ widget." gnus-group-mode gnus-summary-mode + completion-list-mode + help-mode + Info-mode Buffer-menu-mode compilation-mode @@ -521,7 +526,7 @@ If Viper is enabled, turn it off. Otherwise, turn it on." ;;;###autoload (defun viper-mode () - "Turn on Viper emulation of Vi." + "Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'." (interactive) (if (not noninteractive) (progn @@ -654,8 +659,7 @@ This function tries to do as good a job as possible. However, it may undo some user customization, unrelated to Viper. For instance, if the user advised `read-file-name', `describe-key', and some others, then this advice will be undone. -It also doesn't undo some Viper settings. For instance, `minor-mode-map-alist' -remains buffer-local." +It also can't undo some Viper settings." (interactive) ;; restore non-viper vars @@ -681,7 +685,9 @@ remains buffer-local." 'mark-even-if-inactive viper-saved-non-viper-variables))) ;; Ideally, we would like to be able to de-localize local variables - (viper-delocalize-var 'minor-mode-map-alist) + (unless + (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (viper-delocalize-var 'minor-mode-map-alist)) (viper-delocalize-var 'require-final-newline) (if viper-xemacs-p (viper-delocalize-var 'bar-cursor)) @@ -691,6 +697,12 @@ remains buffer-local." (setq viper-mode nil) + (when (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (setq emulation-mode-map-alists + (delq 'viper--intercept-key-maps + (delq 'viper--key-maps emulation-mode-map-alists)) + )) + (viper-delocalize-var 'viper-vi-minibuffer-minor-mode) (viper-delocalize-var 'viper-insert-minibuffer-minor-mode) (viper-delocalize-var 'viper-vi-intercept-minor-mode) @@ -874,9 +886,35 @@ remains buffer-local." "Switch to emacs state while reading password." (viper-change-state-to-emacs))) + (defadvice self-insert-command (around viper-self-insert-ad activate) + "Ignore all self-inserting keys in the vi-state." + (if (and (eq viper-current-state 'vi-state) (interactive-p)) + (beep 1) + ad-do-it + )) + + (defadvice set-cursor-color (after viper-set-cursor-color-ad activate) + "Change cursor color in VI state." + ;;(setq viper-vi-state-cursor-color (ad-get-arg 0)) + (modify-frame-parameters + (selected-frame) + (list (cons 'viper-vi-state-cursor-color (ad-get-arg 0)))) + ) + + (when (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + ;; needs to be as early as possible + (add-to-ordered-list + 'emulation-mode-map-alists 'viper--intercept-key-maps 100) + ;; needs to be after cua-mode + (add-to-ordered-list 'emulation-mode-map-alists 'viper--key-maps 500) + ) + ;; Emacs shell, ange-ftp, and comint-based modes (add-hook 'comint-mode-hook 'viper-comint-mode-hook) ; comint + (add-hook 'eshell-mode-hook + (lambda () (setq viper-auto-indent nil))) + (viper-set-emacs-state-searchstyle-macros nil 'dired-mode) ; dired (viper-set-emacs-state-searchstyle-macros nil 'tar-mode) ; tar (viper-set-emacs-state-searchstyle-macros nil 'mh-folder-mode) ; mhe @@ -967,7 +1005,10 @@ remains buffer-local." ;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have ;; different keymaps for different buffers. Also, the keymaps associated ;; with viper-vi/insert-state-modifier-minor-mode can be different. - (make-variable-buffer-local 'minor-mode-map-alist) + ;; ***This is needed only in case emulation-mode-map-alists is not defined + (unless + (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (make-variable-buffer-local 'minor-mode-map-alist)) ;; Viper changes the default mode-line-buffer-identification (setq-default mode-line-buffer-identification '(" %b")) @@ -1058,6 +1099,16 @@ remains buffer-local." (define-key viper-insert-intercept-map "\C-x)" nil) (define-key viper-emacs-intercept-map "\C-x)" nil)) + (defadvice add-minor-mode (after + viper-advice-add-minor-mode + (toggle name &optional keymap after toggle-fun) + activate) + "Run viper-normalize-minor-mode-map-alist after adding a minor mode." + (viper-normalize-minor-mode-map-alist) + (unless + (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) + (setq-default minor-mode-map-alist minor-mode-map-alist))) + ;; catch frame switching event (if (viper-window-display-p) (if viper-xemacs-p @@ -1230,11 +1281,10 @@ These two lines must come in the order given. (define-key viper-emacs-intercept-map viper-toggle-key 'viper-change-state-to-vi) +;;; Removed to avoid bad interaction with cua-mode. ;;; Escape from Emacs and Insert modes to Vi for one command -(define-key - viper-emacs-intercept-map "\C-c\\" 'viper-escape-to-vi) -(define-key - viper-insert-intercept-map "\C-c\\" 'viper-escape-to-vi) +;;(define-key viper-emacs-intercept-map "\C-c\\" 'viper-escape-to-vi) +;;(define-key viper-insert-intercept-map "\C-c\\" 'viper-escape-to-vi) (if viper-mode (setq-default viper-emacs-intercept-minor-mode t @@ -1262,7 +1312,10 @@ These two lines must come in the order given. (if (and viper-mode (eq viper-current-state 'emacs-state)) (progn (viper-change-state-to-emacs) - (setq-default minor-mode-map-alist minor-mode-map-alist) + (unless + (and (fboundp 'add-to-ordered-list) + (boundp 'emulation-mode-map-alists)) + (setq-default minor-mode-map-alist minor-mode-map-alist)) )) (if (and viper-mode (this-major-mode-requires-vi-state major-mode)) diff --git a/lisp/emulation/ws-mode.el b/lisp/emulation/ws-mode.el index b1773197483..41e8f5323a5 100644 --- a/lisp/emulation/ws-mode.el +++ b/lisp/emulation/ws-mode.el @@ -1,6 +1,6 @@ ;;; ws-mode.el --- WordStar emulation mode for GNU Emacs -;; Copyright (C) 1991 Free Software Foundation, Inc. +;; Copyright (C) 1991, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Juergen Nickelsen <nickel@cs.tu-berlin.de> ;; Version: 0.7 diff --git a/lisp/env.el b/lisp/env.el index 606aa163c87..409765f5ff4 100644 --- a/lisp/env.el +++ b/lisp/env.el @@ -1,6 +1,7 @@ ;;; env.el --- functions to manipulate environment variables -;; Copyright (C) 1991, 1994, 2000, 2001, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: processes, unix diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el index ba84384e1d0..67e007a7f00 100644 --- a/lisp/eshell/em-alias.el +++ b/lisp/eshell/em-alias.el @@ -1,6 +1,7 @@ ;;; em-alias.el --- creation and management of command aliases -;; Copyright (C) 1999, 2000, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el index 0611ea3e5e0..017474ca6f1 100644 --- a/lisp/eshell/em-banner.el +++ b/lisp/eshell/em-banner.el @@ -1,6 +1,7 @@ ;;; em-banner.el --- sample module that displays a login banner -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el index d0712ade945..c42b843add4 100644 --- a/lisp/eshell/em-basic.el +++ b/lisp/eshell/em-basic.el @@ -1,6 +1,7 @@ ;;; em-basic.el --- basic shell builtin commands -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index 734d0a87eb5..423a93d46e2 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -1,6 +1,7 @@ ;;; em-cmpl.el --- completion using the TAB key -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el index a699ea83636..3a18b1e042a 100644 --- a/lisp/eshell/em-dirs.el +++ b/lisp/eshell/em-dirs.el @@ -1,6 +1,7 @@ ;;; em-dirs.el --- directory navigation commands -;; Copyright (C) 1999, 2000, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index 3a53ded645d..869144dad74 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el @@ -1,6 +1,7 @@ ;;; em-glob.el --- extended file name globbing -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index c82be565c4f..fd887e5fa86 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -1,6 +1,7 @@ ;;; em-hist.el --- history list management -;; Copyright (C) 1999, 2000, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -204,6 +205,8 @@ element, regardless of any text on the command line. In that case, (define-key eshell-isearch-map [(control ?c)] 'eshell-isearch-cancel-map) (define-key eshell-isearch-cancel-map [(control ?c)] 'eshell-isearch-cancel)) +(defvar eshell-rebind-keys-alist) + ;;; Functions: (defun eshell-hist-initialize () @@ -217,10 +220,10 @@ element, regardless of any text on the command line. In that case, (if (and (eshell-using-module 'eshell-rebind) (not eshell-non-interactive-p)) - (let ((rebind-alist (symbol-value 'eshell-rebind-keys-alist))) + (let ((rebind-alist eshell-rebind-keys-alist)) (make-local-variable 'eshell-rebind-keys-alist) - (set 'eshell-rebind-keys-alist - (append rebind-alist eshell-hist-rebind-keys-alist)) + (setq eshell-rebind-keys-alist + (append rebind-alist eshell-hist-rebind-keys-alist)) (set (make-local-variable 'search-invisible) t) (set (make-local-variable 'search-exit-option) t) (add-hook 'isearch-mode-hook diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index 514138b6bc2..a42544bf985 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el @@ -1,6 +1,7 @@ ;;; em-ls.el --- implementation of ls in Lisp -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -64,13 +65,13 @@ This is useful for enabling human-readable format (-h), for example." :group 'eshell-ls) (defcustom eshell-ls-dired-initial-args nil - "*If non-nil, args is included before any call to `ls' in dired. + "*If non-nil, args is included before any call to `ls' in Dired. This is useful for enabling human-readable format (-h), for example." :type '(repeat :tag "Arguments" string) :group 'eshell-ls) (defcustom eshell-ls-use-in-dired nil - "*If non-nil, use `eshell-ls' to read directories in dired." + "*If non-nil, use `eshell-ls' to read directories in Dired." :set (lambda (symbol value) (if value (unless (and (boundp 'eshell-ls-use-in-dired) @@ -158,7 +159,7 @@ faster and conserves more memory." (defface eshell-ls-missing '((((class color) (background light)) (:foreground "Red" :weight bold)) (((class color) (background dark)) (:foreground "Red" :weight bold))) - "*The face used for highlighting non-existant file names." + "*The face used for highlighting non-existent file names." :group 'eshell-ls) ;; backward-compatibility alias (put 'eshell-ls-missing-face 'face-alias 'eshell-ls-missing) @@ -863,8 +864,7 @@ to use, and each member of which is the width of that column (cons col-widths newfiles))))) (defun eshell-ls-decorated-name (file) - "Return FILE, possibly decorated. -Use TRUENAME for predicate tests, if passed." + "Return FILE, possibly decorated." (if eshell-ls-use-colors (let ((face (cond diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index af72446bd1c..9e2e8a32af2 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -1,6 +1,7 @@ ;;; em-pred.el --- argument predicates and modifiers (ala zsh) -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index fcb029fc9c4..a4ba51609b5 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -1,6 +1,7 @@ ;;; em-prompt.el --- command prompts -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index 203801224b8..da36551a4dc 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -1,6 +1,7 @@ ;;; em-rebind.el --- rebind keys when point is at current input -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el index df1df5afe8b..d67c5e063c9 100644 --- a/lisp/eshell/em-script.el +++ b/lisp/eshell/em-script.el @@ -1,6 +1,7 @@ ;;; em-script.el --- Eshell script files -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el index aa80c6271de..1d8133effef 100644 --- a/lisp/eshell/em-smart.el +++ b/lisp/eshell/em-smart.el @@ -1,6 +1,7 @@ ;;; em-smart.el --- smart display of output -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index c539f2edac9..8e0786349a6 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -1,6 +1,7 @@ ;;; em-term.el --- running visual commands -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index 94f729c2873..340b95f4d53 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el @@ -1,6 +1,7 @@ ;;; em-unix.el --- UNIX command aliases -;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el index 2f9eee3dd8b..3db159ad84e 100644 --- a/lisp/eshell/em-xtra.el +++ b/lisp/eshell/em-xtra.el @@ -1,6 +1,7 @@ ;;; em-xtra.el --- extra alias functions -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index afd52c36b44..322a0173b27 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -1,6 +1,7 @@ ;;; esh-arg.el --- argument processing -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -341,8 +342,10 @@ special character that is not itself a backslash." (save-restriction (forward-char) (narrow-to-region (point) end) - (list 'eshell-escape-arg - (eshell-parse-argument))) + (let ((arg (eshell-parse-argument))) + (if (eq arg nil) + "" + (list 'eshell-escape-arg arg)))) (goto-char (1+ end))))))) (defun eshell-parse-special-reference () diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 4e2466c4d61..e655a87f898 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -1,6 +1,7 @@ ;;; esh-cmd.el --- command invocation -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -452,12 +453,14 @@ hooks should be run before and after the command." (defun eshell-rewrite-named-command (terms) "If no other rewriting rule transforms TERMS, assume a named command." - (list (if eshell-in-pipeline-p - 'eshell-named-command* - 'eshell-named-command) - (car terms) - (and (cdr terms) - (append (list 'list) (cdr terms))))) + (let ((sym (if eshell-in-pipeline-p + 'eshell-named-command* + 'eshell-named-command)) + (cmd (car terms)) + (args (cdr terms))) + (if args + (list sym cmd (append (list 'list) (cdr terms))) + (list sym cmd)))) (eshell-deftest cmd named-command "Execute named command" diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el index 4b984af8943..0aa3f4486ad 100644 --- a/lisp/eshell/esh-ext.el +++ b/lisp/eshell/esh-ext.el @@ -1,6 +1,7 @@ ;;; esh-ext.el --- commands external to Eshell -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -91,7 +92,7 @@ since nothing else but Eshell will be able to understand (if (string-match "\\(\\`cmdproxy\\|sh\\)\\.\\(com\\|exe\\)" shell-file-name) (or (eshell-search-path "cmd.exe") - (eshell-search-path "command.exe")) + (eshell-search-path "command.com")) shell-file-name)) "*The name of the shell command to use for DOS/Windows batch files. This defaults to nil on non-Windows systems, where this variable is diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index a5c939e0a3f..1c3fd219455 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -1,6 +1,7 @@ ;;; esh-io.el --- I/O management -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-maint.el b/lisp/eshell/esh-maint.el index d99eba388dc..56d92b0c6a3 100644 --- a/lisp/eshell/esh-maint.el +++ b/lisp/eshell/esh-maint.el @@ -1,6 +1,7 @@ ;;; esh-maint.el --- init code for building eshell -*- no-byte-compile: t -*- -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 152eb23c249..fce998e543f 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -1,6 +1,7 @@ ;;; esh-mode.el --- user interface -;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el index fc0801f3a95..ea87c662c1d 100644 --- a/lisp/eshell/esh-module.el +++ b/lisp/eshell/esh-module.el @@ -1,6 +1,7 @@ ;;; esh-module.el --- Eshell modules -;; Copyright (C) 1999, 2000, 2004 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: processes diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el index da15e666bda..73fdf84c41f 100644 --- a/lisp/eshell/esh-opt.el +++ b/lisp/eshell/esh-opt.el @@ -1,6 +1,7 @@ ;;; esh-opt.el --- command options processing -;; Copyright (C) 1999, 2000, 2003 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index a91cfa01bb1..82a0968ae3d 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -1,6 +1,7 @@ ;;; esh-proc.el --- process management -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-test.el b/lisp/eshell/esh-test.el index e2972030b6f..b7dcfab0274 100644 --- a/lisp/eshell/esh-test.el +++ b/lisp/eshell/esh-test.el @@ -1,6 +1,7 @@ ;;; esh-test.el --- Eshell test suite -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index f5e20725529..c05f6abb23b 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el @@ -1,6 +1,7 @@ ;;; esh-util.el --- general utilities -;; Copyright (C) 1999, 2000, 2001 Free Software Foundation +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index 2d444a3ae0e..10cc7c703d5 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -1,6 +1,7 @@ ;;; esh-var.el --- handling of variables -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el index 89b5a338ec7..ce9641026c7 100644 --- a/lisp/eshell/eshell.el +++ b/lisp/eshell/eshell.el @@ -1,6 +1,7 @@ ;;; eshell.el --- the Emacs command shell -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Version: 2.4.2 @@ -373,11 +374,10 @@ buffer selected (or created)." ;; `same-window-buffer-names', which is done when Eshell is loaded (assert (and buf (buffer-live-p buf))) (pop-to-buffer buf) - (unless (fboundp 'eshell-mode) + (if (fboundp 'eshell-mode) + (unless (eq major-mode 'eshell-mode) + (eshell-mode)) (error "`eshell-auto' must be loaded before Eshell can be used")) - (unless (eq major-mode 'eshell-mode) - (eshell-mode)) - (assert (eq major-mode 'eshell-mode)) buf)) (defun eshell-return-exits-minibuffer () diff --git a/lisp/expand.el b/lisp/expand.el index e0ebad49caa..aeb9ec83b14 100644 --- a/lisp/expand.el +++ b/lisp/expand.el @@ -1,6 +1,7 @@ ;;; expand.el --- make abbreviations more usable -;; Copyright (C) 1995, 1996 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> ;; Maintainer: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> diff --git a/lisp/facemenu.el b/lisp/facemenu.el index 55ddf663b28..00fb13fe8f9 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el @@ -1,6 +1,7 @@ ;;; facemenu.el --- create a face menu for interactively adding fonts to text -;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: faces @@ -475,10 +476,11 @@ These special properties include `invisible', `intangible' and `read-only'." ;;;###autoload (defun facemenu-read-color (&optional prompt) "Read a color using the minibuffer." - (let ((col (completing-read (or prompt "Color: ") - (or facemenu-color-alist - (defined-colors)) - nil t))) + (let* ((completion-ignore-case t) + (col (completing-read (or prompt "Color: ") + (or facemenu-color-alist + (defined-colors)) + nil t))) (if (equal "" col) nil col))) diff --git a/lisp/faces.el b/lisp/faces.el index c7f1f2fc2f7..7c0185e1700 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -1,7 +1,7 @@ ;;; faces.el --- Lisp faces -;; Copyright (C) 1992,1993,1994,1995,1996,1998,1999,2000,2001,2002,2004,2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -32,6 +32,8 @@ ;; Warning suppression -- can't require x-win in batch: (autoload 'xw-defined-colors "x-win")) +(defvar help-xref-stack-item) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Font selection. @@ -385,7 +387,7 @@ completely specified)." (defun face-attribute-merged-with (attribute value faces &optional frame) "Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute. FACES may be either a single face or a list of faces. -\[This is an internal function]" +\[This is an internal function.]" (cond ((not (face-attribute-relative-p attribute value)) value) ((null faces) @@ -770,7 +772,7 @@ and DATA is a string, containing the raw bits of the bitmap." (set-face-attribute face frame :stipple (or stipple 'unspecified))) -(defun set-face-underline (face underline &optional frame) +(defun set-face-underline-p (face underline-p &optional frame) "Specify whether face FACE is underlined. UNDERLINE nil means FACE explicitly doesn't underline. UNDERLINE non-nil means FACE explicitly does underlining @@ -781,20 +783,11 @@ Use `set-face-attribute' to ``unspecify'' underlining." (interactive (let ((list (read-face-and-attribute :underline))) (list (car list) (eq (car (cdr list)) t)))) - (set-face-attribute face frame :underline underline)) - - -(defun set-face-underline-p (face underline-p &optional frame) - "Specify whether face FACE is underlined. -UNDERLINE-P nil means FACE explicitly doesn't underline. -UNDERLINE-P non-nil means FACE explicitly does underlining. -FRAME nil or not specified means change face on all frames. -Use `set-face-attribute' to ``unspecify'' underlining." - (interactive - (let ((list (read-face-and-attribute :underline))) - (list (car list) (eq (car (cdr list)) t)))) (set-face-attribute face frame :underline underline-p)) +(define-obsolete-function-alias 'set-face-underline + 'set-face-underline-p "22.1") + (defun set-face-inverse-video-p (face inverse-video-p &optional frame) "Specify whether face FACE is in inverse video. @@ -882,6 +875,7 @@ Otherwise, return a single face." (push f faces))) (if (symbolp faceprop) (push faceprop faces))) + (delete-dups faces) ;; Build up the completion tables. (mapatoms (lambda (s) @@ -1095,7 +1089,7 @@ of a global face. Value is the new attribute value." (defun read-face-font (face &optional frame) "Read the name of a font for FACE on FRAME. -If optional argument FRAME Is nil or omitted, use the selected frame." +If optional argument FRAME is nil or omitted, use the selected frame." (let ((completion-ignore-case t)) (completing-read (format "Set font attributes of face `%s' from font: " face) (x-list-fonts "*" nil frame)))) @@ -1103,7 +1097,7 @@ If optional argument FRAME Is nil or omitted, use the selected frame." (defun read-all-face-attributes (face &optional frame) "Interactively read all attributes for FACE. -If optional argument FRAME Is nil or omitted, use the selected frame. +If optional argument FRAME is nil or omitted, use the selected frame. Value is a property list of attribute names and new values." (let (result) (dolist (attribute face-attribute-name-alist result) @@ -1117,7 +1111,7 @@ Value is a property list of attribute names and new values." If optional argument FRAME is nil or omitted, modify the face used for newly created frame, i.e. the global face. For non-interactive use, `set-face-attribute' is preferred. -When called from elisp, if FACE is nil, all arguments but FRAME are ignored +When called from Lisp, if FACE is nil, all arguments but FRAME are ignored and the face and its settings are obtained by querying the user." (interactive) (if face @@ -1316,8 +1310,15 @@ If FRAME is omitted or nil, use the selected frame." (terpri)) (dolist (a attrs) (let ((attr (face-attribute f (car a) frame))) - (insert (make-string (- max-width (length (cdr a))) ?\ ) - (cdr a) ": " (format "%s" attr) "\n"))))) + (insert (make-string (- max-width (length (cdr a))) ?\s) + (cdr a) ": " (format "%s" attr)) + (if (and (eq (car a) :inherit) + (not (eq attr 'unspecified))) + ;; Make a hyperlink to the parent face. + (save-excursion + (re-search-backward ": \\([^:]+\\)" nil t) + (help-xref-button 1 'help-face attr))) + (insert "\n"))))) (terpri))) (print-help-return-message)))) @@ -1330,7 +1331,7 @@ If FRAME is omitted or nil, use the selected frame." ;; face implementation. (defun face-attr-construct (face &optional frame) - "Return a defface-style attribute list for FACE on FRAME. + "Return a `defface'-style attribute list for FACE on FRAME. Value is a property list of pairs ATTRIBUTE VALUE for all specified face attributes of FACE where ATTRIBUTE is the attribute name and VALUE is the specified value of that attribute." @@ -1860,8 +1861,8 @@ created." ;; Update the colors of FACE, after FRAME's own colors have been ;; changed. -(defalias 'frame-update-face-colors 'frame-set-background-mode) -(make-obsolete 'frame-update-face-colors 'frame-set-background-mode "21.1") +(define-obsolete-function-alias 'frame-update-face-colors + 'frame-set-background-mode "21.1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1907,12 +1908,10 @@ created." :group 'basic-faces) (defface mode-line-highlight - '((((class color) (min-colors 88) (background light)) - :background "RoyalBlue4" :foreground "white") - (((class color) (min-colors 88) (background dark)) - :background "light sky blue" :foreground "black") - (t - :inverse-video t)) + '((((class color) (min-colors 88)) + :box (:line-width 2 :color "grey40" :style released-button)) + (t + :inherit highlight)) "Basic mode line face for highlighting." :version "22.1" :group 'modeline @@ -1979,13 +1978,16 @@ created." :group 'basic-faces) -(defface minibuffer-prompt '((((background dark)) :foreground "cyan") - ;; Don't use blue because many users of - ;; the MS-DOS port customize their - ;; foreground color to be blue. - (((type pc)) :foreground "magenta") - (t :foreground "dark blue")) - "Face for minibuffer prompts." +(defface minibuffer-prompt + '((((background dark)) :foreground "cyan") + ;; Don't use blue because many users of the MS-DOS port customize + ;; their foreground color to be blue. + (((type pc)) :foreground "magenta") + (t :foreground "dark blue")) + "Face for minibuffer prompts. +By default, Emacs automatically adds this face to the value of +`minibuffer-prompt-properties', which is a list of text properties +used to display the prompt text." :version "22.1" :group 'basic-faces) @@ -2082,7 +2084,7 @@ Note: Other faces cannot inherit from the cursor face." ;; because in some cases the display engine will do it's own ;; workaround (to `dim' on ttys) :slant italic)) - "Basic italic font." + "Basic italic face." :group 'basic-faces) @@ -2174,8 +2176,14 @@ Note: Other faces cannot inherit from the cursor face." :version "22.1") (defface shadow - '((((background dark)) :foreground "grey70") - (((background light)) :foreground "grey50")) + '((((class color grayscale) (min-colors 88) (background light)) + :foreground "grey50") + (((class color grayscale) (min-colors 88) (background dark)) + :foreground "grey70") + (((class color) (min-colors 8) (background light)) + :foreground "green") + (((class color) (min-colors 8) (background dark)) + :foreground "yellow")) "Basic face for shadowed text." :group 'basic-faces :version "22.1") diff --git a/lisp/ffap.el b/lisp/ffap.el index e30b859a588..d408918558a 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1,6 +1,7 @@ ;;; ffap.el --- find file (or url) at point -;; Copyright (C) 1995, 96, 97, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michelangelo Grigni <mic@mathcs.emory.edu> ;; Maintainer: Rajesh Vaidheeswarran <rv@gnu.org> @@ -1711,6 +1712,9 @@ Only intended for interactive use." (local-set-key "\M-l" 'ffap-gnus-next) (local-set-key "\M-m" 'ffap-gnus-menu)) +(defvar gnus-summary-buffer) +(defvar gnus-article-buffer) + (defun ffap-gnus-wrapper (form) ; used by both commands below (and (eq (current-buffer) (get-buffer gnus-summary-buffer)) (gnus-summary-select-article)) ; get article of current line diff --git a/lisp/filecache.el b/lisp/filecache.el index 9fccba4b84b..bb45bb392f3 100644 --- a/lisp/filecache.el +++ b/lisp/filecache.el @@ -4,7 +4,8 @@ ;; Created: Sun Nov 10 1996 ;; Keywords: convenience ;; -;; Copyright (C) 1996, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/files.el b/lisp/files.el index 4490ede6404..68a85f07df8 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1,7 +1,7 @@ ;;; files.el --- file input and output commands for Emacs ;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -30,6 +30,9 @@ ;;; Code: +(defvar font-lock-keywords) + + (defgroup backup nil "Backups of edited data files." :group 'files) @@ -159,8 +162,7 @@ both at the file level and at the levels of the containing directories." :type 'boolean :group 'find-file) -(defcustom revert-without-query - nil +(defcustom revert-without-query nil "*Specify which files should be reverted without query. The value is a list of regular expressions. If the file name matches one of these regular expressions, @@ -178,7 +180,7 @@ If the buffer is visiting a new file, the value is nil.") (put 'buffer-file-number 'permanent-local t) (defvar buffer-file-numbers-unique (not (memq system-type '(windows-nt))) - "Non-nil means that buffer-file-number uniquely identifies files.") + "Non-nil means that `buffer-file-number' uniquely identifies files.") (defvar buffer-file-read-only nil "Non-nil if visited file was read-only when visited.") @@ -381,9 +383,8 @@ and should return either a buffer or nil." These functions are called as soon as the error is detected. Variable `buffer-file-name' is already set up. The functions are called in the order given until one of them returns non-nil.") -(defvaralias 'find-file-not-found-hooks 'find-file-not-found-functions) -(make-obsolete-variable - 'find-file-not-found-hooks 'find-file-not-found-functions "22.1") +(define-obsolete-variable-alias 'find-file-not-found-hooks + 'find-file-not-found-functions "22.1") ;;;It is not useful to make this a local variable. ;;;(put 'find-file-hooks 'permanent-local t) @@ -395,8 +396,7 @@ functions are called." :type 'hook :options '(auto-insert) :version "22.1") -(defvaralias 'find-file-hooks 'find-file-hook) -(make-obsolete-variable 'find-file-hooks 'find-file-hook "22.1") +(define-obsolete-variable-alias 'find-file-hooks 'find-file-hook "22.1") (defvar write-file-functions nil "List of functions to be called before writing out a buffer to a file. @@ -412,10 +412,9 @@ This hook is not run if any of the functions in to how to save a buffer to file, for instance, choosing a suitable coding system and setting mode bits. (See Info node `(elisp)Saving Buffers'.) To perform various checks or -updates before the buffer is saved, use `before-save-hook' .") +updates before the buffer is saved, use `before-save-hook'.") (put 'write-file-functions 'permanent-local t) -(defvaralias 'write-file-hooks 'write-file-functions) -(make-obsolete-variable 'write-file-hooks 'write-file-functions "22.1") +(define-obsolete-variable-alias 'write-file-hooks 'write-file-functions "22.1") (defvar local-write-file-hooks nil) (make-variable-buffer-local 'local-write-file-hooks) @@ -439,8 +438,8 @@ For hooks that _do_ pertain to the particular visited file, use To perform various checks or updates before the buffer is saved, use `before-save-hook'.") (make-variable-buffer-local 'write-contents-functions) -(defvaralias 'write-contents-hooks 'write-contents-functions) -(make-obsolete-variable 'write-contents-hooks 'write-contents-functions "22.1") +(define-obsolete-variable-alias 'write-contents-hooks + 'write-contents-functions "22.1") (defcustom enable-local-variables t "*Control use of local variables in files you visit. @@ -866,8 +865,8 @@ it means chase no more than that many links and then stop." "Change the encoding of FILE's name from CODING to NEW-CODING. The value is a new name of FILE. Signals a `file-already-exists' error if a file of the new name -already exists unless optional third argument OK-IF-ALREADY-EXISTS -is non-nil. A number as third arg means request confirmation if +already exists unless optional fourth argument OK-IF-ALREADY-EXISTS +is non-nil. A number as fourth arg means request confirmation if the new name already exists. This is what happens in interactive use with M-x." (interactive @@ -1326,9 +1325,9 @@ When nil, never request confirmation." If a buffer exists visiting FILENAME, return that one, but verify that the file has not changed since visited or saved. The buffer is not selected, just returned to the caller. -Optional first arg NOWARN non-nil means suppress any warning messages. -Optional second arg RAWFILE non-nil means the file is read literally. -Optional third arg WILDCARDS non-nil means do wildcard processing +Optional second arg NOWARN non-nil means suppress any warning messages. +Optional third arg RAWFILE non-nil means the file is read literally. +Optional fourth arg WILDCARDS non-nil means do wildcard processing and visit all the matching files. When wildcards are actually used and expanded, return a list of buffers that are visiting the various files." @@ -1468,7 +1467,6 @@ the various files." buf) ;; Create a new buffer. (setq buf (create-file-buffer filename)) - (set-buffer-major-mode buf) ;; find-file-noselect-1 may use a different buffer. (find-file-noselect-1 buf filename nowarn rawfile truename number)))))) @@ -1542,6 +1540,7 @@ the various files." (progn (set-buffer-multibyte nil) (setq buffer-file-coding-system 'no-conversion) + (set-buffer-major-mode buf) (make-local-variable 'find-file-literally) (setq find-file-literally t)) (after-find-file error (not nowarn))) @@ -1731,12 +1730,18 @@ not set local variables (though we do notice a mode specified with -*-.) or from Lisp without specifying the optional argument FIND-FILE; in that case, this function acts as if `enable-local-variables' were t." (interactive) - (or find-file (funcall (or default-major-mode 'fundamental-mode))) + (funcall (or default-major-mode 'fundamental-mode)) (let ((enable-local-variables (or (not find-file) enable-local-variables))) (report-errors "File mode specification error: %s" (set-auto-mode)) (report-errors "File local-variables error: %s" (hack-local-variables))) + ;; Turn font lock off and on, to make sure it takes account of + ;; whatever file local variables are relevant to it. + (when (and font-lock-mode (eq (car font-lock-keywords) t)) + (setq font-lock-keywords (cadr font-lock-keywords)) + (font-lock-mode 1)) + (if (fboundp 'ucs-set-table-for-input) ; don't lose when building (ucs-set-table-for-input))) @@ -1951,9 +1956,8 @@ and `magic-mode-alist', which determines modes based on file contents.") "Alist mapping interpreter names to major modes. This is used for files whose first lines match `auto-mode-interpreter-regexp'. Each element looks like (INTERPRETER . MODE). -The car of each element, a regular expression, is compared with -the name of the interpreter specified in the first line. -If it matches, mode MODE is selected. +If INTERPRETER matches the name of the interpreter specified in the first line +of a script, mode MODE is enabled. See also `auto-mode-alist'.") @@ -2000,7 +2004,7 @@ if REGEXP matches the text at the beginning of the buffer, to decide the buffer's major mode. If FUNCTION is nil, then it is not called. (That is a way of saying -\"allow `auto-mode-alist' to decide for these files.)") +\"allow `auto-mode-alist' to decide for these files.\")") (defun set-auto-mode (&optional keep-mode-if-same) "Select major mode appropriate for current buffer. @@ -2406,7 +2410,7 @@ If VAL is nil or omitted, the question is whether any value might be dangerous." (let ((safep (get sym 'safe-local-variable))) (or (get sym 'risky-local-variable) - (and (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-command$\\|-predicate$\\|font-lock-keywords$\\|font-lock-keywords-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|-map$\\|-map-alist$" + (and (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|-map$\\|-map-alist$" (symbol-name sym)) (not safep)) ;; If the safe-local-variable property isn't t or nil, @@ -2544,6 +2548,10 @@ the old visited file has been renamed to the new name FILENAME." (setq truename (file-truename filename)) (if find-file-visit-truename (setq filename truename)))) + (if filename + (let ((new-name (file-name-nondirectory filename))) + (if (string= new-name "") + (error "Empty file name")))) (let ((buffer (and filename (find-buffer-visiting filename)))) (and buffer (not (eq buffer (current-buffer))) (not no-query) @@ -2557,8 +2565,6 @@ the old visited file has been renamed to the new name FILENAME." (setq buffer-file-name filename) (if filename ; make buffer name reflect filename. (let ((new-name (file-name-nondirectory buffer-file-name))) - (if (string= new-name "") - (error "Empty file name")) (if (eq system-type 'vax-vms) (setq new-name (downcase new-name))) (setq default-directory (file-name-directory buffer-file-name)) @@ -3235,7 +3241,7 @@ in such cases.") "Save the current buffer in its visited file, if it has been modified. The hooks `write-contents-functions' and `write-file-functions' get a chance to do the job of saving; if they do not, then the buffer is saved in -the visited file file in the usual way. +the visited file in the usual way. Before and after saving the buffer, this function runs `before-save-hook' and `after-save-hook', respectively." (interactive) @@ -3452,9 +3458,9 @@ This requires the external program `diff' to be in your `exec-path'." (recursive-edit) ;; Return nil to ask about BUF again. nil) - "display the current buffer") + "view this file") (?d diff-buffer-with-file - "show difference to last saved version")) + "view changes in file")) "ACTION-ALIST argument used in call to `map-y-or-n-p'.") (put 'save-some-buffers-action-alist 'risky-local-variable t) @@ -4004,8 +4010,10 @@ specifies the list of buffers to kill, asking for approval for each one." (while list (let* ((buffer (car list)) (name (buffer-name buffer))) - (and (not (string-equal name "")) - (/= (aref name 0) ? ) + (and name ; Can be nil for an indirect buffer + ; if we killed the base buffer. + (not (string-equal name "")) + (/= (aref name 0) ?\s) (yes-or-no-p (format "Buffer %s %s. Kill? " name @@ -4057,53 +4065,57 @@ Does not consider `auto-save-visited-file-name' as that variable is checked before calling this function. You can redefine this for customization. See also `auto-save-file-name-p'." (if buffer-file-name - (let ((list auto-save-file-name-transforms) - (filename buffer-file-name) - result uniq) - ;; Apply user-specified translations - ;; to the file name. - (while (and list (not result)) - (if (string-match (car (car list)) filename) - (setq result (replace-match (cadr (car list)) t nil - filename) - uniq (car (cddr (car list))))) - (setq list (cdr list))) - (if result - (if uniq - (setq filename (concat - (file-name-directory result) - (subst-char-in-string - ?/ ?! - (replace-regexp-in-string "!" "!!" - filename)))) - (setq filename result))) - (setq result - (if (and (eq system-type 'ms-dos) - (not (msdos-long-file-names))) - ;; We truncate the file name to DOS 8+3 limits - ;; before doing anything else, because the regexp - ;; passed to string-match below cannot handle - ;; extensions longer than 3 characters, multiple - ;; dots, and other atrocities. - (let ((fn (dos-8+3-filename - (file-name-nondirectory buffer-file-name)))) - (string-match - "\\`\\([^.]+\\)\\(\\.\\(..?\\)?.?\\|\\)\\'" - fn) - (concat (file-name-directory buffer-file-name) - "#" (match-string 1 fn) - "." (match-string 3 fn) "#")) - (concat (file-name-directory filename) - "#" - (file-name-nondirectory filename) - "#"))) - ;; Make sure auto-save file names don't contain characters - ;; invalid for the underlying filesystem. - (if (and (memq system-type '(ms-dos windows-nt)) - ;; Don't modify remote (ange-ftp) filenames - (not (string-match "^/\\w+@[-A-Za-z0-9._]+:" result))) - (convert-standard-filename result) - result)) + (let ((handler (find-file-name-handler buffer-file-name + 'make-auto-save-file-name))) + (if handler + (funcall handler 'make-auto-save-file-name) + (let ((list auto-save-file-name-transforms) + (filename buffer-file-name) + result uniq) + ;; Apply user-specified translations + ;; to the file name. + (while (and list (not result)) + (if (string-match (car (car list)) filename) + (setq result (replace-match (cadr (car list)) t nil + filename) + uniq (car (cddr (car list))))) + (setq list (cdr list))) + (if result + (if uniq + (setq filename (concat + (file-name-directory result) + (subst-char-in-string + ?/ ?! + (replace-regexp-in-string "!" "!!" + filename)))) + (setq filename result))) + (setq result + (if (and (eq system-type 'ms-dos) + (not (msdos-long-file-names))) + ;; We truncate the file name to DOS 8+3 limits + ;; before doing anything else, because the regexp + ;; passed to string-match below cannot handle + ;; extensions longer than 3 characters, multiple + ;; dots, and other atrocities. + (let ((fn (dos-8+3-filename + (file-name-nondirectory buffer-file-name)))) + (string-match + "\\`\\([^.]+\\)\\(\\.\\(..?\\)?.?\\|\\)\\'" + fn) + (concat (file-name-directory buffer-file-name) + "#" (match-string 1 fn) + "." (match-string 3 fn) "#")) + (concat (file-name-directory filename) + "#" + (file-name-nondirectory filename) + "#"))) + ;; Make sure auto-save file names don't contain characters + ;; invalid for the underlying filesystem. + (if (and (memq system-type '(ms-dos windows-nt)) + ;; Don't modify remote (ange-ftp) filenames + (not (string-match "^/\\w+@[-A-Za-z0-9._]+:" result))) + (convert-standard-filename result) + result)))) ;; Deal with buffers that don't have any associated files. (Mail ;; mode tends to create a good number of these.) @@ -4388,9 +4400,9 @@ preference to the program given by this variable." :group 'dired) (defun get-free-disk-space (dir) - "Return the mount of free space on directory DIR's file system. + "Return the amount of free space on directory DIR's file system. The result is a string that gives the number of free 1KB blocks, -or nil if the system call or the program which retrieve the infornmation +or nil if the system call or the program which retrieve the information fail. This function calls `file-system-info' if it is available, or invokes the @@ -4638,7 +4650,7 @@ normally equivalent short `-D' option is just passed on to (end (insert-directory-adj-pos (+ beg (read (current-buffer))) error-lines))) - (if (memq (char-after end) '(?\n ?\ )) + (if (memq (char-after end) '(?\n ?\s)) ;; End is followed by \n or by " -> ". (put-text-property start end 'dired-filename t) ;; It seems that we can't trust ls's output as to @@ -4844,7 +4856,8 @@ With prefix arg, silently save all file-visiting buffers, then kill." ((eq method 'add) (concat "/:" (apply operation arguments))) ((eq method 'quote) - (prog1 (apply operation arguments) + (unwind-protect + (apply operation arguments) (setq buffer-file-name (concat "/:" buffer-file-name)))) ((eq method 'unquote-then-quote) (let (res) diff --git a/lisp/filesets.el b/lisp/filesets.el index 009e6797a4d..1ee126465a5 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el @@ -1,6 +1,6 @@ ;;; filesets.el --- handle group of files -;; Copyright (C) 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Thomas Link <t.link@gmx.at> ;; Maintainer: FSF diff --git a/lisp/find-dired.el b/lisp/find-dired.el index e1b4ce65e71..8347e68c58e 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el @@ -1,6 +1,7 @@ ;;; find-dired.el --- run a `find' command and dired the output -;; Copyright (C) 1992, 1994, 1995, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1995, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org>, ;; Sebastian Kremer <sk@thp.uni-koeln.de> diff --git a/lisp/find-file.el b/lisp/find-file.el index d741ed7d845..db03adce29f 100644 --- a/lisp/find-file.el +++ b/lisp/find-file.el @@ -4,7 +4,8 @@ ;; Maintainer: FSF ;; Keywords: c, matching, tools -;; Copyright (C) 1994, 1995, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -943,6 +944,9 @@ and the name of the file passed in." ;; bind with (setq ff-pre-load-hook 'ff-which-function-are-we-in) ;; +(defvar ada-procedure-start-regexp) +(defvar ada-package-start-regexp) + (defun ff-which-function-are-we-in () "Return the name of the function whose definition/declaration point is in. Also remember that name in `ff-function-name'." diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el index 35b24af3d6b..59dac2f62d6 100644 --- a/lisp/find-lisp.el +++ b/lisp/find-lisp.el @@ -5,7 +5,8 @@ ;; Keywords: unix ;; Time-stamp: <2001-07-16 12:42:35 pavel> -;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -45,6 +46,9 @@ ;;; Code: +(defvar dired-buffers) +(defvar dired-subdir-alist) + ;; Internal variables (defvar find-lisp-regexp nil diff --git a/lisp/finder.el b/lisp/finder.el index 01052101e6d..737bb676a1a 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -1,6 +1,7 @@ ;;; finder.el --- topic & keyword-based code finder -;; Copyright (C) 1992,97,98,1999,2001,2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1997, 1998, 1999, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Created: 16 Jun 1992 diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el index 0bfc5c7e92e..0acbe41c6ed 100644 --- a/lisp/flow-ctrl.el +++ b/lisp/flow-ctrl.el @@ -1,6 +1,7 @@ ;;; flow-ctrl.el --- help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control -;; Copyright (C) 1990, 1991, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author Kevin Gallagher ;; Maintainer: FSF diff --git a/lisp/foldout.el b/lisp/foldout.el index 9c6ef395ab5..54fca4eb6f0 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -1,6 +1,6 @@ ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode -;; Copyright (C) 1994 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk> ;; Created: 27 Jan 1994 diff --git a/lisp/follow.el b/lisp/follow.el index 09b408cb452..37a157cc406 100644 --- a/lisp/follow.el +++ b/lisp/follow.el @@ -1,7 +1,7 @@ ;;; follow.el --- synchronize windows showing the same buffer -;; Copyright (C) 1995, 1996, 1997, 1999, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Maintainer: Anders Lindgren <andersl@andersl.com> diff --git a/lisp/font-core.el b/lisp/font-core.el index 318191e1757..4af6e1c41f0 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el @@ -1,7 +1,7 @@ ;;; font-core.el --- Core interface to font-lock ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -;; 2002, 2003, 2005 Free Software Foundation, Inc. +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: languages, faces @@ -125,7 +125,7 @@ major modes support different levels of fontification, you can use the variable When you turn Font Lock mode on/off the buffer is fontified/defontified, though fontification occurs only if the buffer is less than `font-lock-maximum-size'. -For example, to specify that Font Lock mode use use Lazy Lock mode as a support +For example, to specify that Font Lock mode uses Lazy Lock mode as a support mode and use maximum levels of fontification, put in your ~/.emacs: (setq font-lock-support-mode 'lazy-lock-mode) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1258609f9a6..5b421f2b3f8 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1,7 +1,7 @@ ;;; font-lock.el --- Electric font lock mode ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004 2005 Free Software Foundation, Inc. ;; Author: jwz, then rms, then sm ;; Maintainer: FSF @@ -224,17 +224,6 @@ (defgroup font-lock-extra-types nil "Extra mode-specific type names for highlighting declarations." :group 'font-lock) - -;; Define support mode groups here to impose `font-lock' group order. -(defgroup fast-lock nil - "Font Lock support mode to cache fontification." - :load 'fast-lock - :group 'font-lock) - -(defgroup lazy-lock nil - "Font Lock support mode to fontify lazily." - :load 'lazy-lock - :group 'font-lock) ;; User variables. @@ -293,7 +282,7 @@ If a number, only buffers greater than this size have fontification messages." (integer :tag "size")) :group 'font-lock) -(defcustom font-lock-lines-before 1 +(defcustom font-lock-lines-before 0 "*Number of lines before the changed text to include in refontification." :type 'integer :group 'font-lock @@ -1049,6 +1038,8 @@ a very meaningful entity to highlight.") ;; Use the fontification syntax table, if any. (when font-lock-syntax-table (set-syntax-table font-lock-syntax-table)) + (goto-char beg) + (setq beg (line-beginning-position (- 1 font-lock-lines-before))) ;; check to see if we should expand the beg/end area for ;; proper multiline matches (when (and font-lock-multiline @@ -1105,8 +1096,7 @@ what properties to clear before refontifying a region.") (save-match-data ;; Rescan between start of lines enclosing the region. (font-lock-fontify-region - (progn (goto-char beg) - (forward-line (- font-lock-lines-before)) (point)) + (progn (goto-char beg) (forward-line 0) (point)) (progn (goto-char end) (forward-line 1) (point))))))) (defun font-lock-fontify-block (&optional arg) @@ -1473,7 +1463,11 @@ LOUDLY, if non-nil, allows progress-meter bar." (while (and (< (point) end) (if (stringp matcher) (re-search-forward matcher end t) - (funcall matcher end))) + (funcall matcher end)) + ;; Beware empty string matches since they will + ;; loop indefinitely. + (or (> (point) (match-beginning 0)) + (progn (forward-char 1) t))) (when (and font-lock-multiline (>= (point) (save-excursion (goto-char (match-beginning 0)) @@ -1826,8 +1820,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using :group 'font-lock-highlighting-faces) (defface font-lock-regexp-grouping-backslash - '((((class color) (min-colors 16)) :inherit escape-glyph) - (t :inherit bold)) + '((t :inherit bold)) "Font Lock mode face for backslashes in Lisp regexp grouping constructs." :group 'font-lock-highlighting-faces) diff --git a/lisp/format.el b/lisp/format.el index e676677179b..c43898d78a7 100644 --- a/lisp/format.el +++ b/lisp/format.el @@ -1,6 +1,7 @@ ;;; format.el --- read and save files in multiple formats -;; Copyright (c) 1994, 1995, 1997, 1999, 2004 Free Software Foundation +;; Copyright (C) 1994, 1995, 1997, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> diff --git a/lisp/forms-d2.el b/lisp/forms-d2.el index 19164b6a6db..63b47fc028d 100644 --- a/lisp/forms-d2.el +++ b/lisp/forms-d2.el @@ -32,17 +32,17 @@ ;; The following functions are used by this form for layout purposes. ;; (defun arch-tocol (target &optional fill) - "Produces a string to skip to column TARGET. Prepends newline if needed. + "Produces a string to skip to column TARGET. Prepends newline if needed. The optional FILL should be a character, used to fill to the column." (if (null fill) - (setq fill ? )) + (setq fill ?\s)) (if (< target (current-column)) (concat "\n" (make-string target fill)) (make-string (- target (current-column)) fill))) ;; (defun arch-rj (target field &optional fill) "Produces a string to skip to column TARGET minus the width of field FIELD. -Prepends newline if needed. The optional FILL should be a character, +Prepends newline if needed. The optional FILL should be a character, used to fill to the column." (arch-tocol (- target (length (nth field forms-fields))) fill)) diff --git a/lisp/forms.el b/lisp/forms.el index 7b41698cf4f..419a6fa3778 100644 --- a/lisp/forms.el +++ b/lisp/forms.el @@ -1,6 +1,7 @@ ;;; forms.el --- Forms mode: edit a file as a form to fill in -;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Johan Vromans <jvromans@squirrel.nl> diff --git a/lisp/frame.el b/lisp/frame.el index 0f64a361a97..59a1490e399 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1,7 +1,7 @@ ;;; frame.el --- multi-frame management independent of window systems -;; Copyright (C) 1993, 1994, 1996, 1997, 2000, 2001, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1996, 1997, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -617,8 +617,7 @@ The functions are run with one arg, the newly created frame.") "Functions to run after a frame's font has been changed.") ;; Alias, kept temporarily. -(defalias 'new-frame 'make-frame) -(make-obsolete 'new-frame 'make-frame "22.1") +(define-obsolete-function-alias 'new-frame 'make-frame "22.1") (defun make-frame (&optional parameters) "Return a newly created frame displaying the current buffer. @@ -916,7 +915,7 @@ When called interactively, prompt for the name of the font to use. To get the frame's current default font, use `frame-parameters'. The default behavior is to keep the numbers of lines and columns in -the frame, thus may change its pixel size. If optional KEEP-SIZE is +the frame, thus may change its pixel size. If optional KEEP-SIZE is non-nil (interactively, prefix argument) the current frame size (in pixels) is kept by adjusting the numbers of the lines and columns." (interactive @@ -1218,23 +1217,21 @@ The value is one of the symbols `static-gray', `gray-scale', ;;;; Aliases for backward compatibility with Emacs 18. -(defalias 'screen-height 'frame-height) -(defalias 'screen-width 'frame-width) +(define-obsolete-function-alias 'screen-height 'frame-height) ;before 19.15 +(define-obsolete-function-alias 'screen-width 'frame-width) ;before 19.15 (defun set-screen-width (cols &optional pretend) - "Obsolete function to change the size of the screen to COLS columns. + "Change the size of the screen to COLS columns. Optional second arg non-nil means that redisplay should use COLS columns but that the idea of the actual width of the frame should not be changed. -This function is provided only for compatibility with Emacs 18; new code -should use `set-frame-width instead'." +This function is provided only for compatibility with Emacs 18." (set-frame-width (selected-frame) cols pretend)) (defun set-screen-height (lines &optional pretend) - "Obsolete function to change the height of the screen to LINES lines. + "Change the height of the screen to LINES lines. Optional second arg non-nil means that redisplay should use LINES lines but that the idea of the actual height of the screen should not be changed. -This function is provided only for compatibility with Emacs 18; new code -should use `set-frame-height' instead." +This function is provided only for compatibility with Emacs 18." (set-frame-height (selected-frame) lines pretend)) (defun delete-other-frames (&optional frame) @@ -1257,14 +1254,12 @@ left untouched. FRAME nil or omitted means use the selected frame." (when (eq (frame-parameter frame 'minibuffer) 'only) (delete-frame frame))))) -(make-obsolete 'screen-height 'frame-height) ;before 19.15 -(make-obsolete 'screen-width 'frame-width) ;before 19.15 (make-obsolete 'set-screen-width 'set-frame-width) ;before 19.15 (make-obsolete 'set-screen-height 'set-frame-height) ;before 19.15 ;; miscellaneous obsolescence declarations -(defvaralias 'delete-frame-hook 'delete-frame-functions) -(make-obsolete-variable 'delete-frame-hook 'delete-frame-functions "22.1") +(define-obsolete-variable-alias 'delete-frame-hook + 'delete-frame-functions "22.1") ;; Highlighting trailing whitespace. @@ -1325,10 +1320,6 @@ The function `blink-cursor-start' is called when the timer fires.") This timer calls `blink-cursor-timer-function' every `blink-cursor-interval' seconds.") -;; We do not know the standard _evaluated_ value yet, because the standard -;; expression uses values that are not yet set. The correct evaluated -;; standard value will be installed in startup.el using exactly the same -;; expression as in the defcustom. (define-minor-mode blink-cursor-mode "Toggle blinking cursor mode. With a numeric argument, turn blinking cursor mode on iff ARG is positive. @@ -1339,9 +1330,10 @@ Note that this command is effective only when Emacs displays through a window system, because then Emacs does its own cursor display. On a text-only terminal, this is not implemented." :init-value (not (or noninteractive - (if (boundp 'no-blinking-cursor) no-blinking-cursor) + no-blinking-cursor (eq system-type 'ms-dos) (not (memq initial-window-system '(x w32))))) + :initialize 'custom-initialize-safe-default :group 'cursor :global t (if blink-cursor-idle-timer (cancel-timer blink-cursor-idle-timer)) @@ -1358,8 +1350,7 @@ cursor display. On a text-only terminal, this is not implemented." 'blink-cursor-start))) (internal-show-cursor nil t))) -(defvaralias 'blink-cursor 'blink-cursor-mode) -(make-obsolete-variable 'blink-cursor 'blink-cursor-mode "22.1") +(define-obsolete-variable-alias 'blink-cursor 'blink-cursor-mode "22.1") (defun blink-cursor-start () "Timer function called from the timer `blink-cursor-idle-timer'. @@ -1405,7 +1396,7 @@ itself as a pre-command hook." (defcustom cursor-in-non-selected-windows t - "*Non-nil means show a hollow box cursor in non-selected-windows. + "*Non-nil means show a hollow box cursor in non-selected windows. If nil, don't show a cursor except in the selected window. Use Custom to set this variable to get the display updated." :tag "Cursor in non-selected windows" diff --git a/lisp/fringe.el b/lisp/fringe.el index 71914bd95f3..a32d6b5902c 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el @@ -1,6 +1,6 @@ ;;; fringe.el --- change fringes appearance in various ways -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Maintainer: FSF @@ -150,7 +150,7 @@ To set this variable in a Lisp program, use `set-fringe-mode' to make it take real effect. Setting the variable with a customization buffer also takes effect. If you only want to modify the appearance of the fringe in one frame, -you can use the interactive function `toggle-fringe'" +you can use the interactive function `set-fringe-style'." :type '(choice (const :tag "Default width" nil) (const :tag "No fringes" 0) (const :tag "Only right" (0 . nil)) @@ -174,7 +174,10 @@ If ALL-FRAMES, the negation of the fringe values in Otherwise the negation of the fringe value in the currently selected frame parameter is used." (let ((mode (intern (completing-read - "Select fringe mode for all frames (type ? for list): " + (concat + "Select fringe mode for " + (if all-frames "all frames" "selected frame") + " (type ? for list): ") '(("none") ("default") ("left-only") ("right-only") ("half") ("minimal")) nil t)))) @@ -257,43 +260,6 @@ SIDE must be the symbol `left' or `right'." 0) (float (frame-char-width)))) -;; Fake defvar. Real definition using defcustom is below. The fake -;; defvar is necessary because `fringe-indicators' and -;; `set-fringe-indicators-1' mutually use each other. -(defvar fringe-indicators) - -(defun set-fringe-indicators-1 (ignore value) - "Set fringe indicators according to VALUE. -This is usually invoked when setting `fringe-indicators' via customize." - (setq fringe-indicators value) - (setq default-indicate-empty-lines nil) - (setq default-indicate-buffer-boundaries - (cond - ((memq value '(left right t)) - value) - ((eq value 'box) - '((top . left) (bottom . right))) - ((eq value 'mixed) - '((top . left) (t . right))) - ((eq value 'empty) - (setq default-indicate-empty-lines t) - nil) - (t nil)))) - -;;;###autoload -(defcustom fringe-indicators nil - "Visually indicate buffer boundaries and scrolling. -Setting this variable, changes `default-indicate-buffer-boundaries'." - :type '(choice (const :tag "No indicators" nil) - (const :tag "On left" left) - (const :tag "On right" right) - (const :tag "Opposite, no arrows" box) - (const :tag "Opposite, arrows right" mixed) - (const :tag "Empty lines" empty)) - :group 'fringe - :require 'fringe - :set 'set-fringe-indicators-1) - (provide 'fringe) ;;; arch-tag: 6611ef60-0869-47ed-8b93-587ee7d3ff5d diff --git a/lisp/generic-x.el b/lisp/generic-x.el index 55afcc73e62..d6f56cfc76c 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -1,6 +1,7 @@ ;;; generic-x.el --- A collection of generic modes -;; Copyright (C) 1997, 1998, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Tue Oct 08 1996 diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 053ce91dad9..198e395d260 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,205 @@ +2005-08-31 Juanma Barranquero <lekktu@gmail.com> + + * gnus-art.el (w3m-minor-mode-map): + * gnus-spec.el (gnus-newsrc-file-version): + * gnus-util.el (nnmail-active-file-coding-system) + (gnus-original-article-buffer, gnus-user-agent): + * gnus.el (gnus-ham-process-destinations) + (gnus-parameter-ham-marks-alist) + (gnus-parameter-spam-marks-alist, gnus-spam-autodetect) + (gnus-spam-autodetect-methods, gnus-spam-newsgroup-contents) + (gnus-spam-process-destinations, gnus-spam-process-newsgroups): + * mm-decode.el (gnus-current-window-configuration): + * mm-extern.el (gnus-article-mime-handles): + * mm-url.el (url-current-object, url-package-name) + (url-package-version): + * mm-view.el (gnus-article-mime-handles, gnus-newsgroup-charset) + (smime-keys, w3m-cid-retrieve-function-alist) + (w3m-current-buffer, w3m-display-inline-images) + (w3m-minor-mode-map): + * mml-smime.el (gnus-extract-address-components): + * mml.el (gnus-article-mime-handles, gnus-mouse-2) + (gnus-newsrc-hashtb, message-default-charset) + (message-deletable-headers, message-options) + (message-posting-charset, message-required-mail-headers) + (message-required-news-headers): + * mml1991.el (mc-pgp-always-sign): + * mml2015.el (mc-pgp-always-sign): + * nnheader.el (nnmail-extra-headers): + * rfc1843.el (gnus-decode-encoded-word-function) + (gnus-decode-header-function, gnus-newsgroup-name): + * spam-stat.el (gnus-original-article-buffer): Add defvars. + +2005-08-22 Karl Chen <quarl@cs.berkeley.edu> (tiny change) + + * gnus-art.el (gnus-treatment-function-alist): Move date-lapsed to + the end of the date treatments. + +2005-08-15 Simon Josefsson <jas@extundo.com> + + * pgg.el (url-insert-file-contents): Don't autoload it, Emacs has + it in url-handlers.el and XEmacs in url.el. Reported by Luca + Capello and Romain Francoise. + (pgg-fetch-key-function): Removed, not used? + (pgg-insert-url-with-w3): Require url, to get + url-insert-file-contents regardless of where it is defined. + +2005-08-08 Simon Josefsson <jas@extundo.com> + + * pgg.el: Autoload url-insert-file-contents instead of loading + w3/url. + (pgg-insert-url-with-w3): Don't load url here. + +2005-08-05 Daiki Ueno <ueno@unixuser.org> + + * mml2015.el (mml2015-pgg-sign): Make sure micalg is correct. + + * pgg-parse.el (pgg-parse-hash-algorithm-alist): Add SHA-2. + +2005-08-06 Romain Francoise <romain@orebokech.com> + + * message.el: Fix typo in docstring. + +2005-08-05 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-bodies.el (mm-encode-body): Use coding system rather than + charset to encode text. + + * mm-util.el (mm-find-mime-charset-region): Attempt to reduce the + number of charsets if utf-8 is available (XEmacs). + +2005-08-04 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (article-unsplit-urls): Don't anchor urls to the + start of the lines. + (gnus-picon-databases): Add /usr/share/picons. + +2005-08-04 Reiner Steib <Reiner.Steib@gmx.de> + + * gnus-art.el (gnus-button-valid-localpart-regexp): New variable + taken from `gnus-button-mid-or-mail-regexp'. + (gnus-button-mid-or-mail-regexp, gnus-button-alist): Use it. + (gnus-button-alist): Improve regexp for domain part of the MIDs + for news:localpart@domain buttons. + (gnus-button-ctan-directory-regexp): Update. + + * message.el (message-kill-buffer): Raise the current frame. + (message-bury): Use `window-dedicated-p'. + +2005-08-02 Katsumi Yamaoka <yamaoka@jpl.org> + + * sieve-manage.el (sieve-manage-interactive-login): Use + make-local-variable rather than make-variable-buffer-local. + (sieve-manage-open): Ditto. + (sieve-manage-authenticate): Ditto. + + * mml.el (mml-generate-mime-1): Make the content type default to + text/plain if the filename is not specified. + +2005-08-01 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-uu.el (gnus-uu-save-article): Use insert-buffer-substring + instead of insert-buffer. + + * message.el (message-yank-original): Ditto; set the mark at the + end of the yanked message. + +2005-07-29 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-next-page-1): Reduce the number of + lines to scroll rather than to stop it. + + * mml.el (mml-generate-default-type): Add doc string. + (mml-generate-mime-1): Use mm-default-file-encoding or make it + default to application/octet-stream when determining the content + type if it is not specified for the part or the mml contents; add + a comment about mml-generate-default-type. + +2005-07-29 Reiner Steib <Reiner.Steib@gmx.de> + + * mml.el (mml-generate-mime-1): Use mm-default-file-encoding or + make it default to application/octet-stream when determining the + content type if it is not specified for the external contents. + +2005-07-28 Katsumi Yamaoka <yamaoka@jpl.org> + + * rfc2231.el (rfc2231-parse-string): Take care that not only a + segmented parameter but also other parameters might be there. + +2005-07-27 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-decode.el (mm-display-external): Delete temp file, directory + and buffer immediately if the external process is exited. + +2005-07-26 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-next-page-1): Don't scroll if there're + fewer lines than that of scroll-margin. + (gnus-article-prev-page): Narrow the range to bind scroll-in-place. + +2005-07-25 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-next-page): Revert. + (gnus-article-beginning-of-window): New macro. + (gnus-article-next-page-1): Use it. + (gnus-article-prev-page): Ditto. + (gnus-mime-save-part-and-strip): Use insert-buffer-substring + instead of insert-buffer. + (gnus-mime-delete-part): Ditto. + (gnus-article-edit-exit): Ditto. + + * gnus-util.el (gnus-beginning-of-window): Remove. + (gnus-end-of-window): Remove. + + * lpath.el: Don't bind scroll-margin. + +2005-07-25 Simon Josefsson <jas@extundo.com> + + * pgg.el (pgg-insert-url-with-w3): Don't load w3, it is possible + to have the url package without w3. Reported by Daiki Ueno + <ueno@unixuser.org> and Luigi Panzeri <matley@muppetslab.org>. + +2005-07-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * mml.el (mml-minibuffer-read-disposition): Don't use inline by default + for text/rtf. Display default in prompt. Pass default for M-n. + + * mm-uu.el (mm-uu-copy-to-buffer): Use with-current-buffer. + +2005-07-16 Romain Francoise <romain@orebokech.com> + + * gnus-uu.el (gnus-uu-save-article): Use `message-make-date' + instead of `current-time-string' as the latter creates a time + string that is not RFC 2822 compliant (it lacks the zone). + +2005-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-msg.el (gnus-button-mailto): Remove + save-selected-window-window hackery because it relies on + save-selected-window internals. + +2005-07-15 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-article-next-page): Use gnus-end-of-window. + (gnus-article-next-page-1): Use gnus-beginning-of-window. + (gnus-article-prev-page): Ditto. + + * gnus-util.el (gnus-beginning-of-window): New function. + (gnus-end-of-window): New function. + +2005-07-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-salt.el (gnus-pick-mode): Remove the 5th arg of + gnus-add-minor-mode. + (gnus-binary-mode): Ditto. + + * gnus-topic.el (gnus-topic-mode): Ditto. + +2005-07-08 Ralf Angeli <angeli@iwi.uni-sb.de> (tiny change) + + * gnus-art.el (gnus-article-next-page, gnus-article-next-page-1) + (gnus-article-prev-page): Take scroll-margin into consideration. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/lisp/gnus/binhex.el b/lisp/gnus/binhex.el index b662fc391d3..af0669f62aa 100644 --- a/lisp/gnus/binhex.el +++ b/lisp/gnus/binhex.el @@ -1,5 +1,7 @@ ;;; binhex.el --- elisp native binhex decode -;; Copyright (c) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: binhex news diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el index ae679d9fb7d..bad7ea0409e 100644 --- a/lisp/gnus/canlock.el +++ b/lisp/gnus/canlock.el @@ -1,7 +1,7 @@ ;;; canlock.el --- functions for Cancel-Lock feature -;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Katsumi Yamaoka <yamaoka@jpl.org> ;; Keywords: news, cancel-lock, hmac, sha1, rfc2104 diff --git a/lisp/gnus/compface.el b/lisp/gnus/compface.el index ab6ce23362e..874c8bd6222 100644 --- a/lisp/gnus/compface.el +++ b/lisp/gnus/compface.el @@ -1,5 +1,6 @@ ;;; compface.el --- functions for converting X-Face headers -;; Copyright (C) 2002 Free Software Foundation, Inc. + +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/dig.el b/lisp/gnus/dig.el index 6bb2ab91050..ed752e56520 100644 --- a/lisp/gnus/dig.el +++ b/lisp/gnus/dig.el @@ -1,5 +1,7 @@ ;;; dig.el --- Domain Name System dig interface -;; Copyright (c) 2000, 2001, 2003, 2005 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: DNS BIND dig diff --git a/lisp/gnus/dns.el b/lisp/gnus/dns.el index 37a110e4679..01c373ba954 100644 --- a/lisp/gnus/dns.el +++ b/lisp/gnus/dns.el @@ -1,5 +1,6 @@ ;;; dns.el --- Domain Name Service lookups -;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: network diff --git a/lisp/gnus/earcon.el b/lisp/gnus/earcon.el index 051a9799c95..37ccb3baba1 100644 --- a/lisp/gnus/earcon.el +++ b/lisp/gnus/earcon.el @@ -1,6 +1,7 @@ ;;; earcon.el --- Sound effects for messages -;; Copyright (C) 1996, 2000, 2001, 2003 Free Software Foundation +;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Steven L. Baur <steve@miranova.com> diff --git a/lisp/gnus/flow-fill.el b/lisp/gnus/flow-fill.el index a18805952b0..d6dc739b55e 100644 --- a/lisp/gnus/flow-fill.el +++ b/lisp/gnus/flow-fill.el @@ -1,6 +1,7 @@ ;;; flow-fill.el --- interpret RFC2646 "flowed" text -;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: mail diff --git a/lisp/gnus/format-spec.el b/lisp/gnus/format-spec.el index d287af6f780..fc34b50bc11 100644 --- a/lisp/gnus/format-spec.el +++ b/lisp/gnus/format-spec.el @@ -1,5 +1,7 @@ ;;; format-spec.el --- functions for formatting arbitrary formatting strings -;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: tools diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 49126e4bdb5..ea45a139ab0 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -1,6 +1,7 @@ ;;; gnus-agent.el --- unplugged support for Gnus -;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index fd032e9964d..822448fa460 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -1,6 +1,7 @@ ;;; gnus-art.el --- article mode commands for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -28,7 +29,8 @@ (eval-when-compile (require 'cl) - (defvar tool-bar-map)) + (defvar tool-bar-map) + (defvar w3m-minor-mode-map)) (require 'gnus) (require 'gnus-sum) @@ -842,7 +844,8 @@ be controlled by `gnus-treat-body-boundary'." :type '(choice (item :tag "None" :value nil) string)) -(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces") +(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces" + "/usr/share/picons") "Defines the location of the faces database. For information on obtaining this database of pretty pictures, please see http://www.cs.indiana.edu/picons/ftp/index.html" @@ -1479,10 +1482,10 @@ This requires GNU Libidn, and by default only enabled if it is found." (gnus-treat-date-ut gnus-article-date-ut) (gnus-treat-date-local gnus-article-date-local) (gnus-treat-date-english gnus-article-date-english) - (gnus-treat-date-lapsed gnus-article-date-lapsed) (gnus-treat-date-original gnus-article-date-original) (gnus-treat-date-user-defined gnus-article-date-user) (gnus-treat-date-iso8601 gnus-article-date-iso8601) + (gnus-treat-date-lapsed gnus-article-date-lapsed) (gnus-treat-display-x-face gnus-article-display-x-face) (gnus-treat-display-face gnus-article-display-face) (gnus-treat-hide-headers gnus-article-maybe-hide-headers) @@ -2428,7 +2431,7 @@ If READ-CHARSET, ask for a coding system." (let ((inhibit-read-only t)) (goto-char (point-min)) (while (re-search-forward - "^\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t) + "\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t) (replace-match "\\1\\3" t))) (when (interactive-p) (gnus-treat-article nil)))) @@ -4117,7 +4120,7 @@ Deleting parts may malfunction or destroy the article; continue? ") ',gnus-newsgroup-ignored-charsets)) (mbl mml-buffer-list)) (setq mml-buffer-list nil) - (insert-buffer gnus-original-article-buffer) + (insert-buffer-substring gnus-original-article-buffer) (mime-to-mml ',handles) (setq gnus-article-mime-handles nil) (let ((mbl1 mml-buffer-list)) @@ -4199,7 +4202,7 @@ Deleting parts may malfunction or destroy the article; continue? ") ',gnus-newsgroup-ignored-charsets)) (mbl mml-buffer-list)) (setq mml-buffer-list nil) - (insert-buffer gnus-original-article-buffer) + (insert-buffer-substring gnus-original-article-buffer) (mime-to-mml ',handles) (setq gnus-article-mime-handles nil) (let ((mbl1 mml-buffer-list)) @@ -5182,14 +5185,38 @@ Argument LINES specifies lines to be scrolled up." (gnus-article-next-page-1 lines) nil)) +(defmacro gnus-article-beginning-of-window () + "Move point to the beginning of the window. +In Emacs, the point is placed at the line number which `scroll-margin' +specifies." + (if (featurep 'xemacs) + '(move-to-window-line 0) + '(move-to-window-line + (min (max 0 scroll-margin) + (max 1 (- (window-height) + (if mode-line-format 1 0) + (if (and (boundp 'header-line-format) + (symbol-value 'header-line-format)) + 1 0))))))) + (defun gnus-article-next-page-1 (lines) - (let ((scroll-in-place nil)) - (condition-case () - (scroll-up lines) - (end-of-buffer - ;; Long lines may cause an end-of-buffer error. - (goto-char (point-max))))) - (move-to-window-line 0)) + (when (and (not (featurep 'xemacs)) + (numberp lines) + (> lines 0) + (numberp (symbol-value 'scroll-margin)) + (> (symbol-value 'scroll-margin) 0)) + ;; Protect against the bug that Emacs 21.x hangs up when scrolling up for + ;; too many number of lines if `scroll-margin' is set as two or greater. + (setq lines (min lines + (max 0 (- (count-lines (window-start) (point-max)) + (symbol-value 'scroll-margin)))))) + (condition-case () + (let ((scroll-in-place nil)) + (scroll-up lines)) + (end-of-buffer + ;; Long lines may cause an end-of-buffer error. + (goto-char (point-max)))) + (gnus-article-beginning-of-window)) (defun gnus-article-prev-page (&optional lines) "Show previous page of current article. @@ -5203,13 +5230,13 @@ Argument LINES specifies lines to be scrolled down." (gnus-narrow-to-page -1) ;Go to previous page. (goto-char (point-max)) (recenter -1)) - (let ((scroll-in-place nil)) - (prog1 - (condition-case () - (scroll-down lines) - (beginning-of-buffer - (goto-char (point-min)))) - (move-to-window-line 0))))) + (prog1 + (condition-case () + (let ((scroll-in-place nil)) + (scroll-down lines)) + (beginning-of-buffer + (goto-char (point-min)))) + (gnus-article-beginning-of-window)))) (defun gnus-article-only-boring-p () "Decide whether there is only boring text remaining in the article. @@ -5818,7 +5845,7 @@ groups." (window-start (window-start))) (erase-buffer) (if (gnus-buffer-live-p gnus-original-article-buffer) - (insert-buffer gnus-original-article-buffer)) + (insert-buffer-substring gnus-original-article-buffer)) (let ((winconf gnus-prev-winconf)) (kill-all-local-variables) (gnus-article-mode) @@ -5862,6 +5889,14 @@ groups." :group 'gnus-article-buttons :type 'regexp) +;; Regexp suggested by Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de> +(defcustom gnus-button-valid-localpart-regexp + "[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t ]*" + "Regular expression that matches a localpart of mail addresses or MIDs." + :version "22.1" + :group 'gnus-article-buttons + :type 'regexp) + (defcustom gnus-button-man-handler 'manual-entry "Function to use for displaying man pages. The function must take at least one argument with a string naming the @@ -5901,12 +5936,11 @@ The function must take one argument, the string naming the URL." (regexp :tag "Other"))) (defcustom gnus-button-ctan-directory-regexp - (concat - "\\("; Cannot use `\(?: ... \)' (compatibility with Emacs 20). - "biblio\\|digests\\|dviware\\|fonts\\|graphics\\|help\\|" - "indexing\\|info\\|language\\|macros\\|support\\|systems\\|" - "tds\\|tools\\|usergrps\\|web\\|nonfree\\|obsolete" - "\\)") + (regexp-opt + (list "archive-tools" "biblio" "bibliography" "digests" "documentation" + "dviware" "fonts" "graphics" "help" "indexing" "info" "language" + "languages" "macros" "nonfree" "obsolete" "support" "systems" + "tds" "tools" "usergrps" "web") t) "Regular expression for ctan directories. It should match all directories in the top level of `gnus-ctan-url'." :version "22.1" @@ -5914,8 +5948,7 @@ It should match all directories in the top level of `gnus-ctan-url'." :type 'regexp) (defcustom gnus-button-mid-or-mail-regexp - (concat "\\b\\(<?[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t ]*@" - ;; Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de> + (concat "\\b\\(<?" gnus-button-valid-localpart-regexp "@" gnus-button-valid-fqdn-regexp ">?\\)\\b") "Regular expression that matches a message ID or a mail address." @@ -6230,8 +6263,9 @@ positives are possible." (defcustom gnus-button-alist '(("<\\(url:[>\n\t ]*?\\)?\\(nntp\\|news\\):[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 (>= gnus-button-message-level 0) gnus-button-handle-news 3) - ("\\b\\(nntp\\|news\\):\\([^>\n\t ]*@[^>)!;:,\n\t ]*\\)" 0 t - gnus-button-handle-news 2) + ((concat "\\b\\(nntp\\|news\\):\\(" + gnus-button-valid-localpart-regexp "@[a-z0-9.-]+[a-z]\\)") + 0 t gnus-button-handle-news 2) ("\\(\\b<\\(url:[>\n\t ]*\\)?\\(nntp\\|news\\):[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)" 1 (>= gnus-button-message-level 0) gnus-button-fetch-group 5) ("\\b\\(nntp\\|news\\):\\(//\\)?\\([^'\">\n\t ]+\\)" diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el index 1c279e69a26..54e651c9e9c 100644 --- a/lisp/gnus/gnus-async.el +++ b/lisp/gnus/gnus-async.el @@ -1,6 +1,7 @@ ;;; gnus-async.el --- asynchronous support for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-audio.el b/lisp/gnus/gnus-audio.el index 79e1fcc4905..7f6bd1167d5 100644 --- a/lisp/gnus/gnus-audio.el +++ b/lisp/gnus/gnus-audio.el @@ -1,5 +1,7 @@ ;;; gnus-audio.el --- Sound effects for Gnus -;; Copyright (C) 1996, 2000, 2003 Free Software Foundation + +;; Copyright (C) 1996, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Steven L. Baur <steve@miranova.com> ;; Keywords: news, mail, multimedia diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el index 54d62f03276..4ae08d2e470 100644 --- a/lisp/gnus/gnus-bcklg.el +++ b/lisp/gnus/gnus-bcklg.el @@ -1,6 +1,7 @@ ;;; gnus-bcklg.el --- backlog functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index 66217699555..4477e8f579e 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el @@ -1,6 +1,7 @@ ;;; gnus-cache.el --- cache interface for Gnus + ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -357,7 +358,7 @@ Returns the list of articles removed." (let ((alist (gnus-agent-load-alist gnus-newsgroup-name))) (unless (cdr (assoc article alist)) (setq gnus-newsgroup-undownloaded - (gnus-add-to-sorted-list + (gnus-add-to-sorted-list gnus-newsgroup-undownloaded article))))) (push article out)) (gnus-summary-update-download-mark article) diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index ab3612a09f9..c33d224a49c 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el @@ -1,8 +1,7 @@ ;;; gnus-cite.el --- parse citations in articles for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Abhiddenware diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el index 32dc8bcf1b6..f523af22750 100644 --- a/lisp/gnus/gnus-cus.el +++ b/lisp/gnus/gnus-cus.el @@ -1,7 +1,7 @@ ;;; gnus-cus.el --- customization commands for Gnus -;; -;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: news diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index 8e00efb1f0c..a664ff8ba00 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el @@ -1,6 +1,6 @@ ;;; gnus-delay.el --- Delayed posting of articles -;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> ;; Keywords: mail, news, extensions diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index 3d6b44c8b7b..09015bfd636 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el @@ -1,7 +1,7 @@ ;;; gnus-demon.el --- daemonic Gnus behaviour -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el index c93f8a8ff7c..d9ab81a4b9f 100644 --- a/lisp/gnus/gnus-diary.el +++ b/lisp/gnus/gnus-diary.el @@ -1,6 +1,6 @@ ;;; gnus-diary.el --- Wrapper around the NNDiary Gnus backend -;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Copyright (C) 1999, 2000, 2001 Didier Verna. ;; Author: Didier Verna <didier@xemacs.org> diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el index aa54a7eaedc..665e75b2e86 100644 --- a/lisp/gnus/gnus-dired.el +++ b/lisp/gnus/gnus-dired.el @@ -1,7 +1,7 @@ ;;; gnus-dired.el --- utility functions where gnus and dired meet -;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Authors: Benjamin Rutt <brutt@bloomington.in.us>, ;; Shenghuo Zhu <zsh@cs.rochester.edu> diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el index 2bc212f6221..c4cd4deddac 100644 --- a/lisp/gnus/gnus-draft.el +++ b/lisp/gnus/gnus-draft.el @@ -1,6 +1,7 @@ ;;; gnus-draft.el --- draft message support for Gnus -;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-dup.el b/lisp/gnus/gnus-dup.el index 6a66246b700..c5358728d0b 100644 --- a/lisp/gnus/gnus-dup.el +++ b/lisp/gnus/gnus-dup.el @@ -1,6 +1,7 @@ ;;; gnus-dup.el --- suppression of duplicate articles in Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el index cebbb398f21..c133d1541d8 100644 --- a/lisp/gnus/gnus-eform.el +++ b/lisp/gnus/gnus-eform.el @@ -1,6 +1,7 @@ ;;; gnus-eform.el --- a mode for editing forms for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el index f14dac4e5fb..c6ab1939547 100644 --- a/lisp/gnus/gnus-ems.el +++ b/lisp/gnus/gnus-ems.el @@ -1,6 +1,7 @@ ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index fcbc05cc2e6..94f42efc360 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el @@ -1,5 +1,6 @@ ;;; gnus-fun.el --- various frivolous extension functions to Gnus -;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-gl.el b/lisp/gnus/gnus-gl.el index c1b52435bf9..aac386cefc9 100644 --- a/lisp/gnus/gnus-gl.el +++ b/lisp/gnus/gnus-gl.el @@ -1,7 +1,7 @@ ;;; gnus-gl.el --- an interface to GroupLens for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Brad Miller <bmiller@cs.umn.edu> ;; Keywords: news, score diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 0bfbc46cf5d..9a2516d2c03 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -1,6 +1,7 @@ ;;; gnus-group.el --- group mode commands for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el index 3cb4cb61539..8b274a09212 100644 --- a/lisp/gnus/gnus-int.el +++ b/lisp/gnus/gnus-int.el @@ -1,6 +1,7 @@ ;;; gnus-int.el --- backend interface functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el index 9bffd6ebc00..6cdd76647df 100644 --- a/lisp/gnus/gnus-kill.el +++ b/lisp/gnus/gnus-kill.el @@ -1,6 +1,7 @@ ;;; gnus-kill.el --- kill commands for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-logic.el b/lisp/gnus/gnus-logic.el index 2d7d701c311..288bf3caa92 100644 --- a/lisp/gnus/gnus-logic.el +++ b/lisp/gnus/gnus-logic.el @@ -1,6 +1,7 @@ ;;; gnus-logic.el --- advanced scoring code for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-mh.el b/lisp/gnus/gnus-mh.el index b4c502e9e06..cc36aa64687 100644 --- a/lisp/gnus/gnus-mh.el +++ b/lisp/gnus/gnus-mh.el @@ -1,6 +1,7 @@ ;;; gnus-mh.el --- mh-e interface for Gnus -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el index 5a2b3b9ae0a..c2cf1090d97 100644 --- a/lisp/gnus/gnus-ml.el +++ b/lisp/gnus/gnus-ml.el @@ -1,6 +1,7 @@ ;;; gnus-ml.el --- Mailing list minor mode for Gnus -;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Julien Gilles <jgilles@free.fr> ;; Keywords: news diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el index 9b8d2d87e2e..291145cabfc 100644 --- a/lisp/gnus/gnus-mlspl.el +++ b/lisp/gnus/gnus-mlspl.el @@ -1,7 +1,7 @@ ;;; gnus-mlspl.el --- a group params-based mail splitting mechanism -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Alexandre Oliva <oliva@lsd.ic.unicamp.br> ;; Keywords: news, mail diff --git a/lisp/gnus/gnus-move.el b/lisp/gnus/gnus-move.el index 2f5b4853d5b..7accde21db4 100644 --- a/lisp/gnus/gnus-move.el +++ b/lisp/gnus/gnus-move.el @@ -1,6 +1,7 @@ ;;; gnus-move.el --- commands for moving Gnus from one server to another -;; Copyright (C) 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 8cc8bfe5dd1..0614a2304f7 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -1,6 +1,7 @@ ;;; gnus-msg.el --- mail and post interface for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -466,27 +467,19 @@ Gcc: header for archiving purposes." ;; COMPOSEFUNC should return t if succeed. Undocumented ??? t) -(defvar save-selected-window-window) - ;;;###autoload (defun gnus-button-mailto (address) "Mail to ADDRESS." (set-buffer (gnus-copy-article-buffer)) (gnus-setup-message 'message - (message-reply address)) - (and (boundp 'save-selected-window-window) - (not (window-live-p save-selected-window-window)) - (setq save-selected-window-window (selected-window)))) + (message-reply address))) ;;;###autoload (defun gnus-button-reply (&optional to-address wide) "Like `message-reply'." (interactive) (gnus-setup-message 'message - (message-reply to-address wide)) - (and (boundp 'save-selected-window-window) - (not (window-live-p save-selected-window-window)) - (setq save-selected-window-window (selected-window)))) + (message-reply to-address wide))) ;;;###autoload (define-mail-user-agent 'gnus-user-agent diff --git a/lisp/gnus/gnus-nocem.el b/lisp/gnus/gnus-nocem.el index a59c33f5e48..7718e53ea60 100644 --- a/lisp/gnus/gnus-nocem.el +++ b/lisp/gnus/gnus-nocem.el @@ -1,8 +1,7 @@ ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2004, 2005 -;; Free Software Foundation, Inc. - +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el index 40ac294d268..90733027cc5 100644 --- a/lisp/gnus/gnus-picon.el +++ b/lisp/gnus/gnus-picon.el @@ -1,7 +1,7 @@ ;;; gnus-picon.el --- displaying pretty icons in Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news xpm annotation glyph faces diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el index 286d9e7c772..90ea8556754 100644 --- a/lisp/gnus/gnus-range.el +++ b/lisp/gnus/gnus-range.el @@ -1,7 +1,7 @@ ;;; gnus-range.el --- range and sequence functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index be29e96e102..17e8d5a5f50 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -1,6 +1,7 @@ ;;; gnus-registry.el --- article registry for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: news diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el index 8fbe465c76c..89e45cac052 100644 --- a/lisp/gnus/gnus-salt.el +++ b/lisp/gnus/gnus-salt.el @@ -1,7 +1,7 @@ ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -128,8 +128,7 @@ It accepts the same format specs that `gnus-summary-line-format' does." ;; Set up the menu. (when (gnus-visual-p 'pick-menu 'menu) (gnus-pick-make-menu-bar)) - (gnus-add-minor-mode 'gnus-pick-mode " Pick" gnus-pick-mode-map - nil 'gnus-pick-mode) + (gnus-add-minor-mode 'gnus-pick-mode " Pick" gnus-pick-mode-map) (gnus-run-hooks 'gnus-pick-mode-hook)))) (defun gnus-pick-setup-message () @@ -362,8 +361,7 @@ This must be bound to a button-down mouse event." ;; Set up the menu. (when (gnus-visual-p 'binary-menu 'menu) (gnus-binary-make-menu-bar)) - (gnus-add-minor-mode 'gnus-binary-mode " Binary" - gnus-binary-mode-map nil 'gnus-binary-mode) + (gnus-add-minor-mode 'gnus-binary-mode " Binary" gnus-binary-mode-map) (gnus-run-hooks 'gnus-binary-mode-hook)))) (defun gnus-binary-display-article (article &optional all-header) diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index 0fb853b868e..e866f7f32fc 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -1,6 +1,7 @@ ;;; gnus-score.el --- scoring code for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <amanda@iesd.auc.dk> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-setup.el b/lisp/gnus/gnus-setup.el index 3b35eddb1fc..f67fe491d82 100644 --- a/lisp/gnus/gnus-setup.el +++ b/lisp/gnus/gnus-setup.el @@ -1,7 +1,7 @@ ;;; gnus-setup.el --- Initialization & Setup for Gnus 5 -;; Copyright (C) 1995, 1996, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Steven L. Baur <steve@miranova.com> ;; Keywords: news diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el index 75b2fa12b0a..d790fec9aec 100644 --- a/lisp/gnus/gnus-sieve.el +++ b/lisp/gnus/gnus-sieve.el @@ -1,5 +1,6 @@ ;;; gnus-sieve.el --- Utilities to manage sieve scripts for Gnus -;; Copyright (C) 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: NAGY Andras <nagya@inf.elte.hu>, ;; Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/gnus-soup.el b/lisp/gnus/gnus-soup.el index 98cc0ea285e..6bcd2c32cce 100644 --- a/lisp/gnus/gnus-soup.el +++ b/lisp/gnus/gnus-soup.el @@ -1,7 +1,7 @@ ;;; gnus-soup.el --- SOUP packet writing support for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@iesd.auc.dk> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index 84c06975205..67c0ba88742 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el @@ -1,6 +1,7 @@ ;;; gnus-spec.el --- format spec functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -27,6 +28,7 @@ ;;; Code: (eval-when-compile (require 'cl)) +(defvar gnus-newsrc-file-version) (require 'gnus) diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el index 08527a5ea44..d7629c26fda 100644 --- a/lisp/gnus/gnus-srvr.el +++ b/lisp/gnus/gnus-srvr.el @@ -1,7 +1,7 @@ ;;; gnus-srvr.el --- virtual server support for Gnus + ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005 -;; Free Software Foundation, Inc. +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 730406a2487..47b380b19bb 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -1,6 +1,7 @@ ;;; gnus-start.el --- startup functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index a61f3df6293..c2f7143a9ca 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -1,6 +1,7 @@ ;;; gnus-sum.el --- summary mode commands for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el index 95a2e1ad56a..945665fdcca 100644 --- a/lisp/gnus/gnus-topic.el +++ b/lisp/gnus/gnus-topic.el @@ -1,6 +1,7 @@ ;;; gnus-topic.el --- a folding minor mode for Gnus group buffers -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Ilja Weis <kult@uni-paderborn.de> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -436,7 +437,7 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher." (copy-sequence gnus-group-listed-groups)))) (gnus-update-format-specifications nil 'topic) - + (when (or (not gnus-topic-alist) (not gnus-topology-checked-p)) (gnus-topic-check-topology)) @@ -1136,10 +1137,7 @@ articles in the topic and its subtopics." (when (gnus-visual-p 'topic-menu 'menu) (gnus-topic-make-menu-bar)) (gnus-set-format 'topic t) - (gnus-add-minor-mode 'gnus-topic-mode " Topic" - gnus-topic-mode-map nil (lambda (&rest junk) - (interactive) - (gnus-topic-mode nil t))) + (gnus-add-minor-mode 'gnus-topic-mode " Topic" gnus-topic-mode-map) (add-hook 'gnus-group-catchup-group-hook 'gnus-topic-update-topic) (set (make-local-variable 'gnus-group-prepare-function) 'gnus-group-prepare-topics) diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el index f09445827d1..09753150aa3 100644 --- a/lisp/gnus/gnus-undo.el +++ b/lisp/gnus/gnus-undo.el @@ -1,7 +1,7 @@ ;;; gnus-undo.el --- minor mode for undoing in Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index da14d52161b..69bcee90110 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -1,6 +1,7 @@ ;;; gnus-util.el --- utility functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -39,9 +40,12 @@ (require 'cl) ;; Fixme: this should be a gnus variable, not nnmail-. (defvar nnmail-pathname-coding-system) + (defvar nnmail-active-file-coding-system) ;; Inappropriate references to other parts of Gnus. (defvar gnus-emphasize-whitespace-regexp) + (defvar gnus-original-article-buffer) + (defvar gnus-user-agent) ) (require 'time-date) (require 'netrc) diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el index 5bdd17f84c1..a2f3f353a05 100644 --- a/lisp/gnus/gnus-uu.el +++ b/lisp/gnus/gnus-uu.el @@ -1,6 +1,7 @@ ;;; gnus-uu.el --- extract (uu)encoded files in Gnus -;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000, -;; 2001, 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Created: 2 Oct 1993 @@ -836,7 +837,7 @@ When called interactively, prompt for REGEXP." (erase-buffer) (insert (format "Date: %s\nFrom: %s\nSubject: %s Digest\n\n" - (current-time-string) name name)) + (message-make-date) name name)) (when (and message-forward-as-mime gnus-uu-digest-buffer) (insert "<#part type=message/rfc822>\nSubject: Topics\n\n")) (insert "Topics:\n"))) @@ -917,16 +918,16 @@ When called interactively, prompt for REGEXP." (if (and message-forward-as-mime gnus-uu-digest-buffer) (with-current-buffer gnus-uu-digest-buffer (erase-buffer) - (insert-buffer "*gnus-uu-pre*") + (insert-buffer-substring "*gnus-uu-pre*") (goto-char (point-max)) - (insert-buffer "*gnus-uu-body*")) + (insert-buffer-substring "*gnus-uu-body*")) (save-excursion (set-buffer "*gnus-uu-pre*") (insert (format "\n\n%s\n\n" (make-string 70 ?-))) (if gnus-uu-digest-buffer (with-current-buffer gnus-uu-digest-buffer (erase-buffer) - (insert-buffer "*gnus-uu-pre*")) + (insert-buffer-substring "*gnus-uu-pre*")) (let ((coding-system-for-write mm-text-coding-system)) (gnus-write-buffer gnus-uu-saved-article-name)))) (save-excursion @@ -939,7 +940,7 @@ When called interactively, prompt for REGEXP." (if gnus-uu-digest-buffer (with-current-buffer gnus-uu-digest-buffer (goto-char (point-max)) - (insert-buffer "*gnus-uu-body*")) + (insert-buffer-substring "*gnus-uu-body*")) (let ((coding-system-for-write mm-text-coding-system) (file-name-coding-system nnmail-pathname-coding-system)) (write-region @@ -1353,7 +1354,7 @@ When called interactively, prompt for REGEXP." (gnus-message 2 "No begin part at the beginning") (sleep-for 2)) (setq state 'middle)))) - + ;; When there are no result-files, then something must be wrong. (if result-files (message "") @@ -1439,7 +1440,7 @@ When called interactively, prompt for REGEXP." ;; We replace certain characters that could make things messy. (setq gnus-uu-file-name (gnus-map-function - mm-file-name-rewrite-functions + mm-file-name-rewrite-functions (file-name-nondirectory (match-string 1)))) (replace-match (concat "begin 644 " gnus-uu-file-name) t t) diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el index 240d297f3a5..31bd639a7c6 100644 --- a/lisp/gnus/gnus-vm.el +++ b/lisp/gnus/gnus-vm.el @@ -1,7 +1,7 @@ ;;; gnus-vm.el --- vm interface for Gnus -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Persson <pp@gnu.ai.mit.edu> ;; Keywords: news, mail diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 9710b10ff2f..5b8ddb32c00 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -1,6 +1,7 @@ ;;; gnus-win.el --- window configuration functions for Gnus -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 710c2c75025..e1abe07b559 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -1,7 +1,7 @@ ;;; gnus.el --- a newsreader for GNU Emacs -;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, -;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -35,6 +35,17 @@ (require 'mm-util) (require 'nnheader) +;; These are defined afterwards with gnus-define-group-parameter +(defvar gnus-ham-process-destinations) +(defvar gnus-parameter-ham-marks-alist) +(defvar gnus-parameter-spam-marks-alist) +(defvar gnus-spam-autodetect) +(defvar gnus-spam-autodetect-methods) +(defvar gnus-spam-newsgroup-contents) +(defvar gnus-spam-process-destinations) +(defvar gnus-spam-process-newsgroups) + + (defgroup gnus nil "The coffee-brewing, all singing, all dancing, kitchen sink newsreader." :group 'news diff --git a/lisp/gnus/hex-util.el b/lisp/gnus/hex-util.el index 4458f42a490..1cc67c2861c 100644 --- a/lisp/gnus/hex-util.el +++ b/lisp/gnus/hex-util.el @@ -1,6 +1,7 @@ ;;; hex-util.el --- Functions to encode/decode hexadecimal string. -;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp> ;; Keywords: data diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el index d29a3cf5da7..41ba54f759e 100644 --- a/lisp/gnus/html2text.el +++ b/lisp/gnus/html2text.el @@ -1,4 +1,5 @@ ;;; html2text.el --- a simple html to plain text converter + ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Joakim Hove <hove@phys.ntnu.no> diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el index 4e95b8aad42..98f3d20330f 100644 --- a/lisp/gnus/ietf-drums.el +++ b/lisp/gnus/ietf-drums.el @@ -1,6 +1,7 @@ ;;; ietf-drums.el --- Functions for parsing RFC822bis headers -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/imap.el b/lisp/gnus/imap.el index 7d3fb46154d..062f1be4c94 100644 --- a/lisp/gnus/imap.el +++ b/lisp/gnus/imap.el @@ -1,6 +1,7 @@ ;;; imap.el --- imap library -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: mail diff --git a/lisp/gnus/mail-parse.el b/lisp/gnus/mail-parse.el index 086ab5c4f84..106aedad085 100644 --- a/lisp/gnus/mail-parse.el +++ b/lisp/gnus/mail-parse.el @@ -1,6 +1,7 @@ ;;; mail-parse.el --- Interface functions for parsing mail -;; Copyright (C) 1998, 1999, 2000 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/mail-prsvr.el b/lisp/gnus/mail-prsvr.el index d7e07ff97bb..d990f8dbc54 100644 --- a/lisp/gnus/mail-prsvr.el +++ b/lisp/gnus/mail-prsvr.el @@ -1,5 +1,7 @@ ;;; mail-prsvr.el --- Interface variables for parsing mail -;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index 58a3e63ab75..3f3ecc7919f 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -1,6 +1,7 @@ ;;; mail-source.el --- functions for fetching mail -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index d044adebdb9..166edb60f7a 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el @@ -1,6 +1,7 @@ ;;; mailcap.el --- MIME media types configuration -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: William M. Perry <wmperry@aventail.com> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index d509b703419..7c55b7cc72f 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -1,6 +1,7 @@ ;;; message.el --- composing mail and news messages -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, news @@ -1442,7 +1443,7 @@ no, only reply back to the author." :type 'boolean) (defcustom message-user-fqdn nil - "*Domain part of Messsage-Ids." + "*Domain part of Message-Ids." :version "22.1" :group 'message-headers :link '(custom-manual "(message)News Headers") @@ -3206,7 +3207,9 @@ prefix, and don't delete any headers." (when (and message-reply-buffer message-cite-function) (delete-windows-on message-reply-buffer t) - (insert-buffer message-reply-buffer) + (push-mark (save-excursion + (insert-buffer-substring message-reply-buffer) + (point))) (unless arg (funcall message-cite-function)) (message-exchange-point-and-mark) @@ -3416,8 +3419,15 @@ Instead, just auto-save the buffer and then bury it." (file-exists-p auto-save-file-name)) (and file-name (file-exists-p file-name))) - (yes-or-no-p (format "Remove the backup file%s? " - (if modified " too" "")))) + (progn + ;; If the message buffer has lived in a dedicated window, + ;; `kill-buffer' has killed the frame. Thus the + ;; `yes-or-no-p' may show up in a lowered frame. Make sure + ;; that the user can see the question by raising the + ;; current frame: + (raise-frame) + (yes-or-no-p (format "Remove the backup file%s? " + (if modified " too" ""))))) (ignore-errors (delete-file auto-save-file-name)) (let ((message-draft-article draft-article)) @@ -3428,8 +3438,7 @@ Instead, just auto-save the buffer and then bury it." "Bury this mail BUFFER." (let ((newbuf (other-buffer buffer))) (bury-buffer buffer) - (if (and (fboundp 'frame-parameters) - (cdr (assq 'dedicated (frame-parameters))) + (if (and (window-dedicated-p (selected-window)) (not (null (delq (selected-frame) (visible-frame-list))))) (delete-frame (selected-frame)) (switch-to-buffer newbuf)))) diff --git a/lisp/gnus/messcompat.el b/lisp/gnus/messcompat.el index 3c6af7d9e8d..d7c8f40de26 100644 --- a/lisp/gnus/messcompat.el +++ b/lisp/gnus/messcompat.el @@ -1,7 +1,7 @@ ;;; messcompat.el --- making message mode compatible with mail mode -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, news diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index f58a840fbdd..ffca7da75bf 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el @@ -1,7 +1,7 @@ ;;; mm-bodies.el --- Functions for decoding MIME things -;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> @@ -95,7 +95,8 @@ If no encoding was done, nil is returned." (save-excursion (if charset (progn - (mm-encode-coding-region (point-min) (point-max) charset) + (mm-encode-coding-region (point-min) (point-max) + (mm-charset-to-coding-system charset)) charset) (goto-char (point-min)) (let ((charsets (mm-find-mime-charset-region (point-min) (point-max) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 601843dcf55..435940faec2 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1,6 +1,7 @@ ;;; mm-decode.el --- Functions for decoding MIME things -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> @@ -37,6 +38,8 @@ (autoload 'mm-inline-external-body "mm-extern") (autoload 'mm-insert-inline "mm-view")) +(defvar gnus-current-window-configuration) + (add-hook 'gnus-exit-gnus-hook 'mm-destroy-postponed-undisplay-list) (defgroup mime-display () @@ -817,11 +820,32 @@ external if displayed external." (let ((command (mm-mailcap-command method file (mm-handle-type handle)))) (unwind-protect - (start-process "*display*" - (setq buffer - (generate-new-buffer " *mm*")) - shell-file-name - shell-command-switch command) + (progn + (start-process "*display*" + (setq buffer + (generate-new-buffer " *mm*")) + shell-file-name + shell-command-switch command) + (set-process-sentinel + (get-buffer-process buffer) + `(lambda (process state) + (when (eq 'exit (process-status process)) + ;; Don't use `ignore-errors'. + (condition-case nil + (delete-file ,file) + (error)) + (condition-case nil + (delete-directory ,(file-name-directory file)) + (error)) + (condition-case nil + (kill-buffer ,buffer) + (error)) + (condition-case nil + ,(macroexpand (list 'mm-handle-set-undisplayer + (list 'quote handle) + nil)) + (error)) + (message "Displaying %s...done" ,command))))) (mm-handle-set-external-undisplayer handle (cons file buffer))) (message "Displaying %s..." command)) diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el index 43eb619368e..fd6251c37d3 100644 --- a/lisp/gnus/mm-encode.el +++ b/lisp/gnus/mm-encode.el @@ -1,6 +1,7 @@ ;;; mm-encode.el --- Functions for encoding MIME things -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el index 6792d0de0b4..2f75139497e 100644 --- a/lisp/gnus/mm-extern.el +++ b/lisp/gnus/mm-extern.el @@ -1,5 +1,7 @@ ;;; mm-extern.el --- showing message/external-body -;; Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: message external-body @@ -31,6 +33,8 @@ (require 'mm-decode) (require 'mm-url) +(defvar gnus-article-mime-handles) + (defvar mm-extern-function-alist '((local-file . mm-extern-local-file) (url . mm-extern-url) diff --git a/lisp/gnus/mm-partial.el b/lisp/gnus/mm-partial.el index e8dd5596225..1c0c708d2a0 100644 --- a/lisp/gnus/mm-partial.el +++ b/lisp/gnus/mm-partial.el @@ -1,5 +1,7 @@ ;;; mm-partial.el --- showing message/partial -;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: message partial diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index 517263543cd..961ee0ea4fb 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el @@ -1,5 +1,6 @@ ;;; mm-url.el --- a wrapper of url functions/commands for Gnus -;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> @@ -42,6 +43,10 @@ (require 'timer-funcs) (require 'timer))) +(defvar url-current-object) +(defvar url-package-name) +(defvar url-package-version) + (defgroup mm-url nil "A wrapper of url package and external url command for Gnus." :group 'gnus) diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index a57389f59c4..339bd0f746a 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -1,6 +1,7 @@ ;;; mm-util.el --- Utility functions for Mule and low level things -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> @@ -766,6 +767,17 @@ charset, and a longer list means no appropriate charset." (if (and (memq 'iso-2022-jp-2 charsets) (memq 'iso-2022-jp-2 hack-charsets)) (setq charsets (delq 'iso-2022-jp charsets))) + ;; Attempt to reduce the number of charsets if utf-8 is available. + (if (and (featurep 'xemacs) + (> (length charsets) 1) + (mm-coding-system-p 'utf-8)) + (let ((mm-coding-system-priorities + (cons 'utf-8 mm-coding-system-priorities))) + (setq charsets + (mm-delete-duplicates + (mapcar 'mm-mime-charset + (delq 'ascii + (mm-find-charset-region b e))))))) charsets)) (defmacro mm-with-unibyte-buffer (&rest forms) diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index ad40ffb4564..fdb6b7f4585 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el @@ -1,5 +1,7 @@ ;;; mm-uu.el --- Return uu stuff as mm handles -;; Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: postscript uudecode binhex shar forward gnatsweb pgp @@ -111,8 +113,8 @@ This can be either \"inline\" or \"attachment\".") "^exit 0$" mm-uu-shar-extract) (forward -;;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and -;;; Peter von der Ah\'e <pahe@daimi.au.dk> + ;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and + ;; Peter von der Ah\'e <pahe@daimi.au.dk> "^-+ \\(Start of \\)?Forwarded message" "^-+ End \\(of \\)?forwarded message" mm-uu-forward-extract @@ -186,13 +188,12 @@ To disable dissecting shar codes, for instance, add (defun mm-uu-copy-to-buffer (&optional from to) "Copy the contents of the current buffer to a fresh buffer. Return that buffer." - (save-excursion - (let ((obuf (current-buffer)) - (coding-system - ;; Might not exist in non-MULE XEmacs - (when (boundp 'buffer-file-coding-system) - buffer-file-coding-system))) - (set-buffer (generate-new-buffer " *mm-uu*")) + (let ((obuf (current-buffer)) + (coding-system + ;; Might not exist in non-MULE XEmacs + (when (boundp 'buffer-file-coding-system) + buffer-file-coding-system))) + (with-current-buffer (generate-new-buffer " *mm-uu*") (setq buffer-file-coding-system coding-system) (insert-buffer-substring obuf from to) (current-buffer)))) @@ -496,5 +497,5 @@ Return that buffer." (provide 'mm-uu) -;;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c +;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c ;;; mm-uu.el ends here diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index 9b0d8217476..2d78ccab864 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -1,6 +1,7 @@ ;;; mm-view.el --- functions for viewing MIME objects -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -39,6 +40,14 @@ (unless (fboundp 'diff-mode) (autoload 'diff-mode "diff-mode" "" t nil))) +(defvar gnus-article-mime-handles) +(defvar gnus-newsgroup-charset) +(defvar smime-keys) +(defvar w3m-cid-retrieve-function-alist) +(defvar w3m-current-buffer) +(defvar w3m-display-inline-images) +(defvar w3m-minor-mode-map) + (defvar mm-text-html-renderer-alist '((w3 . mm-inline-text-html-render-with-w3) (w3m . mm-inline-text-html-render-with-w3m) diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index 11f076c8035..f8c573a7656 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el @@ -1,5 +1,7 @@ ;;; mml-sec.el --- A package with security functions for MML documents -;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el index 788fd80003e..8a5ba61d002 100644 --- a/lisp/gnus/mml-smime.el +++ b/lisp/gnus/mml-smime.el @@ -1,5 +1,7 @@ ;;; mml-smime.el --- S/MIME support for MML -;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: Gnus, MIME, S/MIME, MML @@ -27,6 +29,8 @@ (eval-when-compile (require 'cl)) +(defvar gnus-extract-address-components) + (require 'smime) (require 'mm-decode) (autoload 'message-narrow-to-headers "message") @@ -52,7 +56,7 @@ (if (not (and (not (file-exists-p tmp)) (get-buffer tmp))) (push tmp certfiles) - (setq file (mm-make-temp-file (expand-file-name "mml." + (setq file (mm-make-temp-file (expand-file-name "mml." mm-tmp-directory))) (with-current-buffer tmp (write-region (point-min) (point-max) file)) diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index 1f54754f98b..3024959ae7f 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -1,6 +1,7 @@ ;;; mml.el --- A package for parsing and validating MML documents -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -40,6 +41,16 @@ (autoload 'fill-flowed-encode "flow-fill") (autoload 'message-posting-charset "message")) +(defvar gnus-article-mime-handles) +(defvar gnus-mouse-2) +(defvar gnus-newsrc-hashtb) +(defvar message-default-charset) +(defvar message-deletable-headers) +(defvar message-options) +(defvar message-posting-charset) +(defvar message-required-mail-headers) +(defvar message-required-news-headers) + (defcustom mml-content-type-parameters '(name access-type expiration size permission format) "*A list of acceptable parameters in MML tag. @@ -123,7 +134,13 @@ unknown encoding; `use-ascii': always use ASCII for those characters with unknown encoding; `multipart': always send messages with more than one charsets.") -(defvar mml-generate-default-type "text/plain") +(defvar mml-generate-default-type "text/plain" + "Content type by which the Content-Type header can be omitted. +The Content-Type header will not be put in the MIME part if the type +equals the value and there's no parameter (e.g. charset, format, etc.) +and `mml-insert-mime-headers-always' is nil. The value will be bound +to \"message/rfc822\" when encoding an article to be forwarded as a MIME +part. This is for the internal use, you should never modify the value.") (defvar mml-buffer-list nil) @@ -400,9 +417,14 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (mml-tweak-part cont) (cond ((or (eq (car cont) 'part) (eq (car cont) 'mml)) - (let ((raw (cdr (assq 'raw cont))) - coded encoding charset filename type flowed) - (setq type (or (cdr (assq 'type cont)) "text/plain")) + (let* ((raw (cdr (assq 'raw cont))) + (filename (cdr (assq 'filename cont))) + (type (or (cdr (assq 'type cont)) + (if filename + (or (mm-default-file-encoding filename) + "application/octet-stream") + "text/plain"))) + coded encoding charset flowed) (if (and (not raw) (member (car (split-string type "/")) '("text" "message"))) (progn @@ -414,7 +436,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (cond ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) - ((and (setq filename (cdr (assq 'filename cont))) + ((and filename (not (equal (cdr (assq 'nofile cont)) "yes"))) (let ((coding-system-for-read charset)) (mm-insert-file-contents filename))) @@ -434,6 +456,10 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (cond ((eq (car cont) 'mml) (let ((mml-boundary (mml-compute-boundary cont)) + ;; It is necessary for the case where this + ;; function is called recursively since + ;; `m-g-d-t' will be bound to "message/rfc822" + ;; when encoding an article to be forwarded. (mml-generate-default-type "text/plain")) (mml-to-mime)) (let ((mm-7bit-chars (concat mm-7bit-chars "\x1b"))) @@ -475,7 +501,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (insert (with-current-buffer (cdr (assq 'buffer cont)) (mm-with-unibyte-current-buffer (buffer-string))))) - ((and (setq filename (cdr (assq 'filename cont))) + ((and filename (not (equal (cdr (assq 'nofile cont)) "yes"))) (let ((coding-system-for-read mm-binary-coding-system)) (mm-insert-file-contents filename nil nil nil nil t))) @@ -516,15 +542,21 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." "access-type=url")) (when parameters (mml-insert-parameter-string - cont '(expiration size permission)))) - (insert "\n\n") - (insert "Content-Type: " (cdr (assq 'type cont)) "\n") - (insert "Content-ID: " (message-make-message-id) "\n") - (insert "Content-Transfer-Encoding: " - (or (cdr (assq 'encoding cont)) "binary")) - (insert "\n\n") - (insert (or (cdr (assq 'contents cont)))) - (insert "\n")) + cont '(expiration size permission))) + (insert "\n\n") + (insert "Content-Type: " + (or (cdr (assq 'type cont)) + (if name + (or (mm-default-file-encoding name) + "application/octet-stream") + "text/plain")) + "\n") + (insert "Content-ID: " (message-make-message-id) "\n") + (insert "Content-Transfer-Encoding: " + (or (cdr (assq 'encoding cont)) "binary")) + (insert "\n\n") + (insert (or (cdr (assq 'contents cont)))) + (insert "\n"))) ((eq (car cont) 'multipart) (let* ((type (or (cdr (assq 'type cont)) "mixed")) (mml-generate-default-type (if (equal type "digest") @@ -560,7 +592,8 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (message-options-set 'message-sender sender)) (if (setq recipients (cdr (assq 'recipients cont))) (message-options-set 'message-recipients recipients)) - (let ((style (mml-signencrypt-style (first (or sign-item encrypt-item))))) + (let ((style (mml-signencrypt-style + (first (or sign-item encrypt-item))))) ;; check if: we're both signing & encrypting, both methods ;; are the same (why would they be different?!), and that ;; the signencrypt style allows for combined operation. @@ -943,13 +976,15 @@ See Info node `(emacs-mime)Composing'. description)) (defun mml-minibuffer-read-disposition (type &optional default) - (let* ((default (or default - (if (string-match "^text/.*" type) - "inline" - "attachment"))) - (disposition (completing-read "Disposition: " - '(("attachment") ("inline") ("")) - nil t))) + (unless default (setq default + (if (and (string-match "\\`text/" type) + (not (string-match "\\`text/rtf\\'" type))) + "inline" + "attachment"))) + (let ((disposition (completing-read + (format "Disposition (default %s): " default) + '(("attachment") ("inline") ("")) + nil t nil nil default))) (if (not (equal disposition "")) disposition default))) diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index 8a9cce093de..932737dc4be 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -1,6 +1,7 @@ ;;; mml1991.el --- Old PGP message format (RFC 1991) support for MML -;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Sascha Lüdecke <sascha@meta-x.de>, ;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue) @@ -31,6 +32,8 @@ (require 'cl) (require 'mm-util)) +(defvar mc-pgp-always-sign) + (autoload 'quoted-printable-decode-region "qp") (autoload 'quoted-printable-encode-region "qp") @@ -181,7 +184,7 @@ (delete-region (point-min) (point))) (mm-with-unibyte-current-buffer (with-temp-buffer - (flet ((gpg-encrypt-func + (flet ((gpg-encrypt-func (sign plaintext ciphertext result recipients &optional passphrase sign-with-key armor textmode) (if sign @@ -269,7 +272,7 @@ (delete-region (point-min) (point))) (mm-decode-content-transfer-encoding cte) (unless (pgg-encrypt-region - (point-min) (point-max) + (point-min) (point-max) (split-string (or (message-options-get 'message-recipients) diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index d403444e840..c8d46c99f51 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el @@ -1,6 +1,7 @@ ;;; mml2015.el --- MIME Security with Pretty Good Privacy (PGP) -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: PGP MIME MML @@ -34,6 +35,8 @@ (require 'mm-util) (require 'mml) +(defvar mc-pgp-always-sign) + (defvar mml2015-use (or (progn (ignore-errors @@ -641,7 +644,8 @@ (autoload 'pgg-decrypt-region "pgg") (autoload 'pgg-verify-region "pgg") (autoload 'pgg-sign-region "pgg") - (autoload 'pgg-encrypt-region "pgg")) + (autoload 'pgg-encrypt-region "pgg") + (autoload 'pgg-parse-armor "pgg-parse")) (defun mml2015-pgg-decrypt (handle ctl) (catch 'error @@ -809,15 +813,23 @@ (let ((pgg-errors-buffer mml2015-result-buffer) (boundary (mml-compute-boundary cont)) (pgg-default-user-id (or (message-options-get 'mml-sender) - pgg-default-user-id))) + pgg-default-user-id)) + entry) (unless (pgg-sign-region (point-min) (point-max)) (pop-to-buffer mml2015-result-buffer) (error "Sign error")) (goto-char (point-min)) (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n" boundary)) - ;;; FIXME: what is the micalg? - (insert "\tmicalg=pgp-sha1; protocol=\"application/pgp-signature\"\n") + (if (setq entry (assq 2 (pgg-parse-armor + (with-current-buffer pgg-output-buffer + (buffer-string))))) + (setq entry (assq 'hash-algorithm (cdr entry)))) + (insert (format "\tmicalg=%s; " + (if (cdr entry) + (downcase (format "pgp-%s" (cdr entry))) + "pgp-sha1"))) + (insert "protocol=\"application/pgp-signature\"\n") (insert (format "\n--%s\n" boundary)) (goto-char (point-max)) (insert (format "\n--%s\n" boundary)) diff --git a/lisp/gnus/nnagent.el b/lisp/gnus/nnagent.el index 257148dcd76..4b8233a4d54 100644 --- a/lisp/gnus/nnagent.el +++ b/lisp/gnus/nnagent.el @@ -1,7 +1,7 @@ ;;; nnagent.el --- offline backend for Gnus -;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el index 449a7dbafcc..afdd4d15350 100644 --- a/lisp/gnus/nnbabyl.el +++ b/lisp/gnus/nnbabyl.el @@ -1,7 +1,7 @@ ;;; nnbabyl.el --- rmail mbox access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nndb.el b/lisp/gnus/nndb.el index 4174728f47d..ca5b27cdd1d 100644 --- a/lisp/gnus/nndb.el +++ b/lisp/gnus/nndb.el @@ -1,7 +1,7 @@ ;;; nndb.el --- nndb access for Gnus -;; Copyright (C) 1997, 1998, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Kai Grossjohann <grossjohann@ls6.informatik.uni-dortmund.de> diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el index 2228b6a2de8..4be4c6f6646 100644 --- a/lisp/gnus/nndiary.el +++ b/lisp/gnus/nndiary.el @@ -1,7 +1,7 @@ ;;; nndiary.el --- A diary backend for Gnus -;; Copyright (C) 1999, 2000, 2001, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Didier Verna <didier@xemacs.org> ;; Maintainer: Didier Verna <didier@xemacs.org> diff --git a/lisp/gnus/nndir.el b/lisp/gnus/nndir.el index 880df5166f9..18e64e83997 100644 --- a/lisp/gnus/nndir.el +++ b/lisp/gnus/nndir.el @@ -1,7 +1,7 @@ ;;; nndir.el --- single directory newsgroup access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el index 4fab99fd84d..70e301b5b00 100644 --- a/lisp/gnus/nndoc.el +++ b/lisp/gnus/nndoc.el @@ -1,6 +1,7 @@ ;;; nndoc.el --- single file access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el index 9a93e5aa072..beea344e0c3 100644 --- a/lisp/gnus/nndraft.el +++ b/lisp/gnus/nndraft.el @@ -1,7 +1,7 @@ ;;; nndraft.el --- draft article access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el index db7a5fcc2aa..33f6a5f4ea5 100644 --- a/lisp/gnus/nneething.el +++ b/lisp/gnus/nneething.el @@ -1,7 +1,7 @@ ;;; nneething.el --- arbitrary file access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el index 07697000eeb..5a29878b5fb 100644 --- a/lisp/gnus/nnfolder.el +++ b/lisp/gnus/nnfolder.el @@ -1,6 +1,7 @@ ;;; nnfolder.el --- mail folder access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS) ;; ShengHuo Zhu <zsh@cs.rochester.edu> (adding NOV) diff --git a/lisp/gnus/nngateway.el b/lisp/gnus/nngateway.el index d8e3e0a638b..8ddbf9ca13b 100644 --- a/lisp/gnus/nngateway.el +++ b/lisp/gnus/nngateway.el @@ -1,7 +1,7 @@ ;;; nngateway.el --- posting news via mail gateways -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index e793b5ef8f0..45e030027a9 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el @@ -1,8 +1,8 @@ ;;; nnheader.el --- header access macros for Gnus and its backends -;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, -;; 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, +;; 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -31,6 +31,8 @@ (eval-when-compile (require 'cl)) +(defvar nnmail-extra-headers) + ;; Requiring `gnus-util' at compile time creates a circular ;; dependency between nnheader.el and gnus-util.el. ;;(eval-when-compile (require 'gnus-util)) diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 698f7cf9a3e..5a2b7e2f942 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -1,6 +1,7 @@ ;;; nnimap.el --- imap backend for Gnus -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Jim Radford <radford@robby.caltech.edu> diff --git a/lisp/gnus/nnkiboze.el b/lisp/gnus/nnkiboze.el index dd5951cf536..ee3c804ae8f 100644 --- a/lisp/gnus/nnkiboze.el +++ b/lisp/gnus/nnkiboze.el @@ -1,7 +1,7 @@ ;;; nnkiboze.el --- select virtual news access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nnlistserv.el b/lisp/gnus/nnlistserv.el index 432a259b78d..2b9d478086d 100644 --- a/lisp/gnus/nnlistserv.el +++ b/lisp/gnus/nnlistserv.el @@ -1,6 +1,7 @@ ;;; nnlistserv.el --- retrieving articles via web mailing list archives -;; Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index de4247dc55e..98563143243 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -1,6 +1,7 @@ ;;; nnmail.el --- mail support functions for the Gnus mail backends -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el index e3d88396e16..fe25ef9d0a4 100644 --- a/lisp/gnus/nnmbox.el +++ b/lisp/gnus/nnmbox.el @@ -1,7 +1,7 @@ ;;; nnmbox.el --- mail mbox access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el index f73bda68bf0..4c0af4fdcfb 100644 --- a/lisp/gnus/nnmh.el +++ b/lisp/gnus/nnmh.el @@ -1,7 +1,7 @@ ;;; nnmh.el --- mhspool access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el index e6eca8b1559..9bdd08fd3ca 100644 --- a/lisp/gnus/nnml.el +++ b/lisp/gnus/nnml.el @@ -1,6 +1,7 @@ ;;; nnml.el --- mail spool access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS) ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el index 73399112102..fcd50c3a767 100644 --- a/lisp/gnus/nnoo.el +++ b/lisp/gnus/nnoo.el @@ -1,7 +1,7 @@ ;;; nnoo.el --- OO Gnus Backends -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -254,7 +254,7 @@ (setcdr bstate (delq defs (cdr bstate))) (pop defs) (while defs - (set (car (pop defs)) nil))))) + (set (car (pop defs)) nil))))) t) (defun nnoo-close (backend) diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 4d43604984e..5018701ee42 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el @@ -1,5 +1,6 @@ ;;; nnrss.el --- interfacing with RSS -;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: RSS diff --git a/lisp/gnus/nnslashdot.el b/lisp/gnus/nnslashdot.el index 177bb019224..9350a284e3d 100644 --- a/lisp/gnus/nnslashdot.el +++ b/lisp/gnus/nnslashdot.el @@ -1,5 +1,7 @@ ;;; nnslashdot.el --- interfacing with Slashdot -;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nnsoup.el b/lisp/gnus/nnsoup.el index 13a464ab219..94c259b6d96 100644 --- a/lisp/gnus/nnsoup.el +++ b/lisp/gnus/nnsoup.el @@ -1,7 +1,7 @@ ;;; nnsoup.el --- SOUP access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el index 49e9693c32b..228879a4dad 100644 --- a/lisp/gnus/nnspool.el +++ b/lisp/gnus/nnspool.el @@ -1,8 +1,7 @@ ;;; nnspool.el --- spool access for GNU Emacs ;; Copyright (C) 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998, -;; 2000, 2002, 2003 -;; Free Software Foundation, Inc. +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 2895faf62ef..4998c7a9503 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -1,8 +1,8 @@ ;;; nntp.el --- nntp access for Gnus -;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996, -;; 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993, +;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -255,7 +255,7 @@ noticing asynchronous data.") (defvar nntp-async-timer nil) (defvar nntp-async-process-list nil) -(defvar nntp-ssl-program +(defvar nntp-ssl-program "openssl s_client -quiet -ssl3 -connect %s:%p" "A string containing commands for SSL connections. Within a string, %s is replaced with the server address and %p with @@ -889,7 +889,7 @@ command whose response triggered the error." (if (numberp article) (int-to-string article) article)))) (deffoo nntp-request-group (group &optional server dont-check) - (nntp-with-open-group + (nntp-with-open-group nil server (when (nntp-send-command "^[245].*\n" "GROUP" group) (let ((entry (nntp-find-connection-entry nntp-server-buffer))) @@ -1156,10 +1156,10 @@ password contained in '~/.nntp-authinfo'." (defun nntp-open-ssl-stream (buffer) (let* ((process-connection-type nil) - (proc (start-process "nntpd" buffer + (proc (start-process "nntpd" buffer shell-file-name shell-command-switch - (format-spec nntp-ssl-program + (format-spec nntp-ssl-program (format-spec-make ?s nntp-address ?p nntp-port-number))))) @@ -1317,7 +1317,7 @@ password contained in '~/.nntp-authinfo'." ;; that the server has closed the connection. This MUST be ;; handled here as the buffer restored by the save-excursion may ;; be the process's former output buffer (i.e. now killed) - (or (and process + (or (and process (memq (process-status process) '(open run))) (nntp-report "Server closed connection")))) @@ -1501,7 +1501,7 @@ password contained in '~/.nntp-authinfo'." (goto-char (point-min)) (when (re-search-forward "^[0-9][0-9][0-9] .*\n\\([0-9]+\\)" nil t) (let ((low-limit (string-to-number - (buffer-substring (match-beginning 1) + (buffer-substring (match-beginning 1) (match-end 1))))) (while (and articles (<= (car articles) low-limit)) (setq articles (cdr articles)))))) diff --git a/lisp/gnus/nnultimate.el b/lisp/gnus/nnultimate.el index 7bc7bbf462e..46896640168 100644 --- a/lisp/gnus/nnultimate.el +++ b/lisp/gnus/nnultimate.el @@ -1,6 +1,7 @@ ;;; nnultimate.el --- interfacing with the Ultimate Bulletin Board system -;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el index c7e93528a5e..28ef0f5c830 100644 --- a/lisp/gnus/nnvirtual.el +++ b/lisp/gnus/nnvirtual.el @@ -1,6 +1,7 @@ ;;; nnvirtual.el --- virtual newsgroups access for Gnus -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: David Moore <dmoore@ucsd.edu> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/nnwarchive.el b/lisp/gnus/nnwarchive.el index 8e4c22e8b04..a543c8edb82 100644 --- a/lisp/gnus/nnwarchive.el +++ b/lisp/gnus/nnwarchive.el @@ -1,5 +1,7 @@ ;;; nnwarchive.el --- interfacing with web archives -;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: news egroups mail-archive diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el index 4e1ed36d861..d05520ee1dc 100644 --- a/lisp/gnus/nnweb.el +++ b/lisp/gnus/nnweb.el @@ -1,6 +1,7 @@ ;;; nnweb.el --- retrieving articles via web search engines -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nnwfm.el b/lisp/gnus/nnwfm.el index 71d622357bf..d759d12f798 100644 --- a/lisp/gnus/nnwfm.el +++ b/lisp/gnus/nnwfm.el @@ -1,5 +1,6 @@ ;;; nnwfm.el --- interfacing with a web forum -;; Copyright (C) 2000 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/pgg-def.el b/lisp/gnus/pgg-def.el index 351a336800e..f27afada3fa 100644 --- a/lisp/gnus/pgg-def.el +++ b/lisp/gnus/pgg-def.el @@ -1,6 +1,6 @@ ;;; pgg-def.el --- functions/macros for defining PGG functions -;; Copyright (C) 1999, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/gnus/pgg-gpg.el b/lisp/gnus/pgg-gpg.el index 904c0e46878..f012a9d8506 100644 --- a/lisp/gnus/pgg-gpg.el +++ b/lisp/gnus/pgg-gpg.el @@ -1,6 +1,7 @@ ;;; pgg-gpg.el --- GnuPG support for PGG. -;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/10/28 diff --git a/lisp/gnus/pgg-parse.el b/lisp/gnus/pgg-parse.el index c65f6a3a822..26b48e2f141 100644 --- a/lisp/gnus/pgg-parse.el +++ b/lisp/gnus/pgg-parse.el @@ -1,6 +1,6 @@ ;;; pgg-parse.el --- OpenPGP packet parsing -;; Copyright (C) 1999, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/10/28 @@ -58,7 +58,8 @@ (cons (sexp :tag "Number") (sexp :tag "Type")))) (defcustom pgg-parse-hash-algorithm-alist - '((1 . MD5) (2 . SHA1) (3 . RIPEMD160) (5 . MD2)) + '((1 . MD5) (2 . SHA1) (3 . RIPEMD160) (5 . MD2) (8 . SHA256) (9 . SHA384) + (10 . SHA512)) "Alist of the assigned number to the cryptographic hash algorithm." :group 'pgg-parse :type '(repeat diff --git a/lisp/gnus/pgg-pgp.el b/lisp/gnus/pgg-pgp.el index b2add4726d3..88f1d697200 100644 --- a/lisp/gnus/pgg-pgp.el +++ b/lisp/gnus/pgg-pgp.el @@ -1,6 +1,7 @@ ;;; pgg-pgp.el --- PGP 2.* and 6.* support for PGG. -;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/gnus/pgg-pgp5.el b/lisp/gnus/pgg-pgp5.el index cbdb693ef60..ffe467ec044 100644 --- a/lisp/gnus/pgg-pgp5.el +++ b/lisp/gnus/pgg-pgp5.el @@ -1,6 +1,7 @@ ;;; pgg-pgp5.el --- PGP 5.* support for PGG. -;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/gnus/pgg.el b/lisp/gnus/pgg.el index 91b56c57a4f..af59833c6c0 100644 --- a/lisp/gnus/pgg.el +++ b/lisp/gnus/pgg.el @@ -1,6 +1,7 @@ ;;; pgg.el --- glue for the various PGP implementations. -;; Copyright (C) 1999, 2000, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/10/28 @@ -34,20 +35,10 @@ ;; Don't merge these two `eval-when-compile's. (eval-when-compile (require 'cl)) -;; Fixme: This would be better done with an autoload for -;; `url-insert-file-contents', and the url stuff rationalized. -;; (`locate-library' can say whether the url code is available.) -(eval-when-compile - (ignore-errors - (require 'w3) - (require 'url))) ;;; @ utility functions ;;; -(defvar pgg-fetch-key-function (if (fboundp 'url-insert-file-contents) - (function pgg-fetch-key-with-w3))) - (defun pgg-invoke (func scheme &rest args) (progn (require (intern (format "pgg-%s" scheme))) @@ -410,7 +401,6 @@ within the region." (defun pgg-insert-url-with-w3 (url) (ignore-errors - (require 'w3) (require 'url) (let (buffer-file-name) (url-insert-file-contents url)))) diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index 1f109f6d7dd..f021e063fcd 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el @@ -1,8 +1,7 @@ ;;; pop3.el --- Post Office Protocol (RFC 1460) interface -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net> ;; Maintainer: FSF diff --git a/lisp/gnus/qp.el b/lisp/gnus/qp.el index d95508123ac..bd0a1b4b5a5 100644 --- a/lisp/gnus/qp.el +++ b/lisp/gnus/qp.el @@ -1,7 +1,7 @@ ;;; qp.el --- Quoted-Printable functions -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, extensions diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el index 9af2fc6327a..55150fbdacf 100644 --- a/lisp/gnus/rfc1843.el +++ b/lisp/gnus/rfc1843.el @@ -1,5 +1,7 @@ ;;; rfc1843.el --- HZ (rfc1843) decoding -;; Copyright (c) 1998, 1999, 2000, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: news HZ HZ+ mail i18n @@ -35,6 +37,10 @@ (eval-when-compile (require 'cl)) (require 'mm-util) +(defvar gnus-decode-encoded-word-function) +(defvar gnus-decode-header-function) +(defvar gnus-newsgroup-name) + (defvar rfc1843-word-regexp "~\\({\\([\041-\167][\041-\176]\\| \\)+\\)\\(~}\\|$\\)") diff --git a/lisp/gnus/rfc2045.el b/lisp/gnus/rfc2045.el index a1b06b4d939..b3bbe373d9d 100644 --- a/lisp/gnus/rfc2045.el +++ b/lisp/gnus/rfc2045.el @@ -1,6 +1,7 @@ ;;; rfc2045.el --- Functions for decoding rfc2045 headers -;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el index ae2904c86fd..84c46e936a3 100644 --- a/lisp/gnus/rfc2047.el +++ b/lisp/gnus/rfc2047.el @@ -1,7 +1,7 @@ ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages -;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> diff --git a/lisp/gnus/rfc2104.el b/lisp/gnus/rfc2104.el index cea9f587ac9..bdacc19ec9b 100644 --- a/lisp/gnus/rfc2104.el +++ b/lisp/gnus/rfc2104.el @@ -1,5 +1,7 @@ ;;; rfc2104.el --- RFC2104 Hashed Message Authentication Codes -;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: mail diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el index 0a6cfdb2af1..f328f2dbc6a 100644 --- a/lisp/gnus/rfc2231.el +++ b/lisp/gnus/rfc2231.el @@ -1,7 +1,7 @@ ;;; rfc2231.el --- Functions for decoding rfc2231 headers -;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -52,7 +52,7 @@ The list will be on the form (prev-value "") display-name mailbox c display-string parameters attribute value type subtype number encoded - prev-attribute) + prev-attribute prev-encoded) (ietf-drums-init (mail-header-remove-whitespace (mail-header-remove-comments string))) (let ((table (copy-syntax-table ietf-drums-syntax-table))) @@ -106,9 +106,14 @@ The list will be on the form ;; See if we have any previous continuations. (when (and prev-attribute (not (eq prev-attribute attribute))) - (push (cons prev-attribute prev-value) parameters) + (push (cons prev-attribute + (if prev-encoded + (rfc2231-decode-encoded-string prev-value) + prev-value)) + parameters) (setq prev-attribute nil - prev-value "")) + prev-value "" + prev-encoded nil)) (unless (eq c ?=) (error "Invalid header: %s" string)) (forward-char 1) @@ -127,7 +132,8 @@ The list will be on the form (error "Invalid header: %s" string))) (if number (setq prev-attribute attribute - prev-value (concat prev-value value)) + prev-value (concat prev-value value) + prev-encoded encoded) (push (cons attribute (if encoded (rfc2231-decode-encoded-string value) @@ -137,7 +143,7 @@ The list will be on the form ;; Take care of any final continuations. (when prev-attribute (push (cons prev-attribute - (if encoded + (if prev-encoded (rfc2231-decode-encoded-string prev-value) prev-value)) parameters)) diff --git a/lisp/gnus/score-mode.el b/lisp/gnus/score-mode.el index c580256c94e..add14ea6ded 100644 --- a/lisp/gnus/score-mode.el +++ b/lisp/gnus/score-mode.el @@ -1,6 +1,7 @@ ;;; score-mode.el --- mode for editing Gnus score files -;; Copyright (C) 1996, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/sha1.el b/lisp/gnus/sha1.el index 8968f1d42d5..99b9aa47bb6 100644 --- a/lisp/gnus/sha1.el +++ b/lisp/gnus/sha1.el @@ -1,6 +1,7 @@ ;;; sha1.el --- SHA1 Secure Hash Algorithm in Emacs-Lisp -;; Copyright (C) 1999, 2001, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp> ;; Keywords: SHA1, FIPS 180-1 diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el index 2afa49c79a7..dc2016f282e 100644 --- a/lisp/gnus/sieve-manage.el +++ b/lisp/gnus/sieve-manage.el @@ -1,5 +1,6 @@ ;;; sieve-manage.el --- Implementation of the managesive protocol in elisp -;; Copyright (C) 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> @@ -184,8 +185,8 @@ LOGINFUNC is passed a username and a password, it should return t if it where sucessful authenticating itself to the server, nil otherwise. Returns t if login was successful, nil otherwise." (with-current-buffer buffer - (make-variable-buffer-local 'sieve-manage-username) - (make-variable-buffer-local 'sieve-manage-password) + (make-local-variable 'sieve-manage-username) + (make-local-variable 'sieve-manage-password) (let (user passwd ret reason) ;; (condition-case () (while (or (not user) (not passwd)) @@ -370,7 +371,7 @@ Optional variable BUFFER is buffer (buffer, or string naming buffer) to work in." (setq buffer (or buffer (format " *sieve* %s:%d" server (or port 2000)))) (with-current-buffer (get-buffer-create buffer) - (mapcar 'make-variable-buffer-local sieve-manage-local-variables) + (mapcar 'make-local-variable sieve-manage-local-variables) (sieve-manage-disable-multibyte) (buffer-disable-undo) (setq sieve-manage-server (or server sieve-manage-server)) @@ -458,8 +459,8 @@ password is remembered in the buffer." (with-current-buffer (or buffer (current-buffer)) (if (not (eq sieve-manage-state 'nonauth)) (eq sieve-manage-state 'auth) - (make-variable-buffer-local 'sieve-manage-username) - (make-variable-buffer-local 'sieve-manage-password) + (make-local-variable 'sieve-manage-username) + (make-local-variable 'sieve-manage-password) (if user (setq sieve-manage-username user)) (if passwd (setq sieve-manage-password passwd)) (if (funcall (nth 2 (assq sieve-manage-auth diff --git a/lisp/gnus/sieve-mode.el b/lisp/gnus/sieve-mode.el index 012c58de3b4..31ff5d1e9c9 100644 --- a/lisp/gnus/sieve-mode.el +++ b/lisp/gnus/sieve-mode.el @@ -1,5 +1,6 @@ ;;; sieve-mode.el --- Sieve code editing commands for Emacs -;; Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el index 498a82387cd..28fde926c93 100644 --- a/lisp/gnus/sieve.el +++ b/lisp/gnus/sieve.el @@ -1,5 +1,6 @@ ;;; sieve.el --- Utilities to manage sieve scripts -;; Copyright (C) 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el index 42444e74bda..cdd1c8dbc9b 100644 --- a/lisp/gnus/smiley.el +++ b/lisp/gnus/smiley.el @@ -1,6 +1,7 @@ ;;; smiley.el --- displaying smiley faces -;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: news mail multimedia diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el index 059c1819605..485cf177154 100644 --- a/lisp/gnus/smime.el +++ b/lisp/gnus/smime.el @@ -1,5 +1,7 @@ ;;; smime.el --- S/MIME support library -;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: SMIME X.509 PEM OpenSSL diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el index 8ac235d12f2..50a564885bb 100644 --- a/lisp/gnus/spam-report.el +++ b/lisp/gnus/spam-report.el @@ -1,4 +1,5 @@ ;;; spam-report.el --- Reporting spam + ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Teodor Zlatanov <tzz@lifelogs.com> @@ -95,7 +96,7 @@ undo that change.") (string-match spam-report-gmane-regex gnus-newsgroup-name))) (gnus-message 6 "Reporting spam article %d to spam.gmane.org..." article) (if spam-report-gmane-use-article-number - (spam-report-url-ping + (spam-report-url-ping "spam.gmane.org" (format "/%s:%d" (gnus-group-real-name gnus-newsgroup-name) diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index 18f16fd0946..c8870454be8 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el @@ -1,6 +1,6 @@ ;;; spam-stat.el --- detecting spam based on statistics -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Keywords: network @@ -123,6 +123,8 @@ ;;; Code: +(defvar gnus-original-article-buffer) + (defgroup spam-stat nil "Statistical spam detection for Emacs. Use the functions to build a dictionary of words and their statistical diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index e22ad1c2fa3..32de2f60e22 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el @@ -1,4 +1,5 @@ ;;; spam.el --- Identifying spam + ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el index 92a436ca865..67464395c76 100644 --- a/lisp/gnus/starttls.el +++ b/lisp/gnus/starttls.el @@ -1,7 +1,7 @@ ;;; starttls.el --- STARTTLS functions -;; Copyright (C) 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el index 5207e96aeae..d1eb6ee40dd 100644 --- a/lisp/gnus/utf7.el +++ b/lisp/gnus/utf7.el @@ -1,5 +1,7 @@ ;;; utf7.el --- UTF-7 encoding/decoding for Emacs -*-coding: iso-8859-1;-*- -;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Jon K Hellan <hellan@acm.org> ;; Maintainer: bugs@gnus.org diff --git a/lisp/gnus/uudecode.el b/lisp/gnus/uudecode.el index b4f4b74700f..c1fc56ad8bf 100644 --- a/lisp/gnus/uudecode.el +++ b/lisp/gnus/uudecode.el @@ -1,6 +1,7 @@ ;;; uudecode.el -- elisp native uudecode -;; Copyright (c) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: uudecode news diff --git a/lisp/gnus/webmail.el b/lisp/gnus/webmail.el index 51125897fe4..e9bc074f2cf 100644 --- a/lisp/gnus/webmail.el +++ b/lisp/gnus/webmail.el @@ -1,5 +1,7 @@ ;;; webmail.el --- interface of web mail -;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. + +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: hotmail netaddress my-deja netscape diff --git a/lisp/gnus/yenc.el b/lisp/gnus/yenc.el index 0d5ad3905be..37018d2fa19 100644 --- a/lisp/gnus/yenc.el +++ b/lisp/gnus/yenc.el @@ -1,5 +1,6 @@ ;;; yenc.el --- elisp native yenc decoder -;; Copyright (c) 2002 Free Software Foundation, Inc. + +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jesper Harder <harder@ifa.au.dk> ;; Keywords: yenc news diff --git a/lisp/gs.el b/lisp/gs.el index 7a8fb807ccd..8f9414f0e5f 100644 --- a/lisp/gs.el +++ b/lisp/gs.el @@ -1,6 +1,7 @@ ;;; gs.el --- interface to Ghostscript -;; Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el index f3321e437de..fcb431feba9 100644 --- a/lisp/help-at-pt.el +++ b/lisp/help-at-pt.el @@ -1,6 +1,6 @@ ;;; help-at-pt.el --- local help through the keyboard -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Luc Teirlinck <teirllm@auburn.edu> ;; Keywords: help diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 58a633e1797..ed58234ffad 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -1,7 +1,7 @@ ;;; help-fns.el --- Complex help functions -;; Copyright (C) 1985, 86, 93, 94, 98, 1999, 2000, 01, 02, 03, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal @@ -217,13 +217,13 @@ ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"." (intern (upcase name)))))) arglist))) -;;; Could be this, if we make symbol-file do the work below. -;;; (defun help-C-file-name (subr-or-var kind) -;;; "Return the name of the C file where SUBR-OR-VAR is defined. -;;; KIND should be `var' for a variable or `subr' for a subroutine." -;;; (symbol-file (if (symbolp subr-or-var) subr-or-var -;;; (subr-name subr-or-var)) -;;; (if (eq kind 'var) 'defvar 'defun))) +;; Could be this, if we make symbol-file do the work below. +;; (defun help-C-file-name (subr-or-var kind) +;; "Return the name of the C file where SUBR-OR-VAR is defined. +;; KIND should be `var' for a variable or `subr' for a subroutine." +;; (symbol-file (if (symbolp subr-or-var) subr-or-var +;; (subr-name subr-or-var)) +;; (if (eq kind 'var) 'defvar 'defun))) ;;;###autoload (defun help-C-file-name (subr-or-var kind) "Return the name of the C file where SUBR-OR-VAR is defined. @@ -724,5 +724,5 @@ BUFFER should be a buffer or a buffer name." (provide 'help-fns) -;;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3 +;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3 ;;; help-fns.el ends here diff --git a/lisp/help-macro.el b/lisp/help-macro.el index cf3e63d8d76..33ee42abe7e 100644 --- a/lisp/help-macro.el +++ b/lisp/help-macro.el @@ -1,6 +1,7 @@ ;;; help-macro.el --- makes command line help such as help-for-help -;; Copyright (C) 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lynn Slater <lrs@indetech.com> ;; Maintainer: FSF diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 3349bc058f3..eac7caad0ca 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -1,7 +1,7 @@ ;;; help-mode.el --- `help-mode' used by *Help* buffers -;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal @@ -631,5 +631,5 @@ For the cross-reference format, see `help-make-xrefs'." (provide 'help-mode) -;;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b +;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b ;;; help-mode.el ends here diff --git a/lisp/help.el b/lisp/help.el index bab0592160c..cb634e2bdad 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1,7 +1,7 @@ ;;; help.el --- help commands for Emacs -;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004, -;; 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal diff --git a/lisp/hexl.el b/lisp/hexl.el index 894633a1f34..45044da0985 100644 --- a/lisp/hexl.el +++ b/lisp/hexl.el @@ -1,6 +1,7 @@ ;;; hexl.el --- edit a file in a hex dump format using the hexl filter -;; Copyright (C) 1989, 1994, 1998, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1994, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Keith Gabryelski <ag@wheaties.ai.mit.edu> ;; Maintainer: FSF @@ -84,12 +85,12 @@ Quoting cannot be used, so the arguments cannot themselves contain spaces." :options '(hexl-follow-line hexl-activate-ruler turn-on-eldoc-mode) :group 'hexl) -(defface hexl-address-area +(defface hexl-address-region '((t (:inherit header-line))) "Face used in address are of hexl-mode buffer." :group 'hexl) -(defface hexl-ascii-area +(defface hexl-ascii-region '((t (:inherit header-line))) "Face used in ascii are of hexl-mode buffer." :group 'hexl) @@ -120,8 +121,8 @@ Quoting cannot be used, so the arguments cannot themselves contain spaces." (defvar hexl-font-lock-keywords '(("^\\([0-9a-f]+:\\).\\{40\\} \\(.+$\\)" ;; "^\\([0-9a-f]+:\\).+ \\(.+$\\)" - (1 'hexl-address-area t t) - (2 'hexl-ascii-area t t))) + (1 'hexl-address-region t t) + (2 'hexl-ascii-region t t))) "Font lock keywords used in `hexl-mode'.") ;; routines @@ -287,7 +288,7 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode. (set (make-local-variable 'eldoc-documentation-function) 'hexl-print-current-point-info) (eldoc-add-command-completions "hexl-") - (eldoc-remove-command "hexl-save-buffer" + (eldoc-remove-command "hexl-save-buffer" "hexl-current-address") (if hexl-follow-ascii (hexl-follow-ascii 1))) @@ -425,7 +426,7 @@ Ask the user for confirmation." (defun hexl-print-current-point-info () "Return current hexl-address in string. -This function is indented to be used as eldoc callback." +This function is intended to be used as eldoc callback." (let ((addr (hexl-current-address))) (format "Current address is %d/0x%08x" addr addr))) @@ -918,7 +919,7 @@ Customize the variable `hexl-follow-ascii' to disable this feature." (defun hexl-activate-ruler () "Activate `ruler-mode'" (require 'ruler-mode) - (set (make-local-variable 'ruler-mode-ruler-function) + (set (make-local-variable 'ruler-mode-ruler-function) 'hexl-mode-ruler) (ruler-mode 1)) @@ -929,12 +930,12 @@ Customize the variable `hexl-follow-ascii' to disable this feature." (with-no-warnings (set (make-local-variable 'hl-line-range-function) 'hexl-highlight-line-range) - (set (make-local-variable 'hl-line-face) + (set (make-local-variable 'hl-line-face) 'highlight)) (hl-line-mode 1)) (defun hexl-highlight-line-range () - "Return the range of address area for the point. + "Return the range of address region for the point. This function is assumed to be used as call back function for `hl-line-mode'." (cons (line-beginning-position) @@ -1009,7 +1010,8 @@ This function is assumed to be used as call back function for `hl-line-mode'." (define-key hexl-mode-map "\C-e" 'hexl-end-of-line) (define-key hexl-mode-map "\C-f" 'hexl-forward-char) - (if (not (eq (key-binding (char-to-string help-char)) 'help-command)) + (if (not (memq (key-binding (char-to-string help-char)) + '(help-command ehelp-command))) (define-key hexl-mode-map (char-to-string help-char) 'undefined)) (define-key hexl-mode-map "\C-k" 'undefined) diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index d7aec9112bc..14920cf93c2 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -1,6 +1,7 @@ ;;; hi-lock.el --- minor mode for interactive automatic highlighting -;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David M. Koppelman, koppel@ee.lsu.edu ;; Keywords: faces, minor-mode, matching, display diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el index 59468147cb7..7011ff37dd3 100644 --- a/lisp/hilit-chg.el +++ b/lisp/hilit-chg.el @@ -1,6 +1,7 @@ ;;; hilit-chg.el --- minor mode displaying buffer changes with special face -;; Copyright (C) 1998, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Richard Sharman <rsharman@pobox.com> ;; Keywords: faces @@ -81,11 +82,11 @@ ;; ;; Example usage: ;; (defun my-highlight-changes-enable-hook () -;; (add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces) +;; (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t) ;; ) ;; ;; (defun my-highlight-changes-disable-hook () -;; (remove-hook 'local-write-file-hooks 'highlight-changes-rotate-faces) +;; (remove-hook 'write-file-functions 'highlight-changes-rotate-faces t) ;; ) ;; ;; (add-hook 'highlight-changes-enable-hook 'my-highlight-changes-enable-hook) @@ -213,7 +214,7 @@ ;; indentation on inserts gets underlined (which can look pretty ugly!). (defface highlight-changes - '((((min-colors 88) (class color)) (:foreground "red1" )) + '((((min-colors 88) (class color)) (:foreground "red1")) (((class color)) (:foreground "red" )) (t (:inverse-video t))) "Face used for highlighting changes." @@ -270,7 +271,7 @@ This variable must be set to one of the symbols `active' or `passive'." (defcustom highlight-changes-global-initial-state 'passive "*What state `global-highlight-changes' should start in. This is used if `global-highlight-changes' is called with no argument. -This variable must be set to either `active' or `passive'" +This variable must be set to either `active' or `passive'." :type '(choice (const :tag "Active" active) (const :tag "Passive" passive)) :group 'highlight-changes) @@ -302,8 +303,8 @@ A list means the elements are major modes suitable for Highlight Changes mode, or a list whose first element is `not' followed by major modes which are not suitable. -t means the buffer is suitable if it is visiting a file and its name -does not begin with ` ' or `*'. +A value of t means the buffer is suitable if it is visiting a file and +its name does not begin with ` ' or `*'. A value of nil means no buffers are suitable for `global-highlight-changes' \(effectively disabling the mode). @@ -488,7 +489,7 @@ This is the opposite of `hilit-chg-display-changes'." "Fix change overlays in region between BEG and END. Ensure the overlays agree with the changes as determined from -the text properties of type `hilit-chg' ." +the text properties of type `hilit-chg'." ;; Remove or alter overlays in region beg..end (let (ov-start ov-end props q) ;; temp for debugging: @@ -641,12 +642,12 @@ Functions: \\[highlight-changes-remove-highlight] - remove the change face from the region \\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes \ through - various faces. + various faces Hook variables: -`highlight-changes-enable-hook' - when enabling Highlight Changes mode. +`highlight-changes-enable-hook' - when enabling Highlight Changes mode `highlight-changes-toggle-hook' - when entering active or passive state -`highlight-changes-disable-hook' - when turning off Highlight Changes mode." +`highlight-changes-disable-hook' - when turning off Highlight Changes mode" (interactive "P") (if (or (display-color-p) (and (fboundp 'x-display-grayscale-p) (x-display-grayscale-p))) @@ -672,6 +673,7 @@ Hook variables: (if new-highlight-changes-mode ;; mode is turned on -- but may be passive (progn + (add-to-list 'desktop-locals-to-save 'highlight-changes-mode) (hilit-chg-set new-highlight-changes-mode) (or was-on ;; run highlight-changes-enable-hook once @@ -781,11 +783,11 @@ of `highlight-changes-face-list', one level older changes are shown in face described by the second element, and so on. Very old changes remain shown in the last face in the list. -You can automatically rotate colors when the buffer is saved -by adding the following to `local-write-file-hooks', by evaling it in the -buffer to be saved): +You can automatically rotate colors when the buffer is saved by adding +this function to `write-file-functions' as a buffer-local value. To do +this, eval the following in the buffer to be saved: - \(add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)" + \(add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)" (interactive) ;; If not in active mode do nothing but don't complain because this ;; may be bound to a hook. @@ -800,8 +802,7 @@ buffer to be saved): ;; and display them all if active (if (eq highlight-changes-mode 'active) (hilit-chg-display-changes)))) - ;; This always returns nil so it is safe to use in - ;; local-write-file-hook + ;; This always returns nil so it is safe to use in write-file-functions nil) ;; ======================================================================== @@ -886,7 +887,7 @@ The default is the current buffer and the one in the next window. If either buffer is modified and is visiting a file, you are prompted to save the file. -Unless the buffer is unmodified and visiting a file, the buffer is +Unless the buffer is unmodified and visiting a file, the buffer is written to a temporary file for comparison. If a buffer is read-only, differences will be highlighted but no property @@ -1110,9 +1111,9 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil). A buffer is appropriate for Highlight Changes mode if all these are true: - the buffer is not a special buffer (one whose name begins with - `*' or ` ') + `*' or ` '), - the buffer's mode is suitable as per variable - `highlight-changes-global-modes' + `highlight-changes-global-modes', - Highlight Changes mode is not already on for this buffer. This function is called from `hilit-chg-update-all-buffers' or @@ -1154,6 +1155,16 @@ from `global-highlight-changes' when turning on global Highlight Changes mode." ))) (buffer-list))) +;;;; Desktop support. + +;; Called by `desktop-create-buffer' to restore `highlight-changes-mode'. +(defun hilit-chg-desktop-restore (desktop-buffer-locals) + (highlight-changes-mode + (or (cdr (assq 'highlight-changes-mode desktop-buffer-locals)) 1))) + +(add-to-list 'desktop-minor-mode-handlers + '(highlight-changes-mode . hilit-chg-desktop-restore)) + ;; ===================== debug ================== ;; For debug & test use: ;; diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el index cdbc03bd1f7..1210166305b 100644 --- a/lisp/hippie-exp.el +++ b/lisp/hippie-exp.el @@ -1,6 +1,6 @@ ;;; hippie-exp.el --- expand text trying various ways to find its expansion -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Anders Holst <aho@sans.kth.se> ;; Last change: 3 March 1998 diff --git a/lisp/hl-line.el b/lisp/hl-line.el index 85617eab680..3dd56f2f239 100644 --- a/lisp/hl-line.el +++ b/lisp/hl-line.el @@ -1,6 +1,7 @@ ;;; hl-line.el --- highlight the current line -;; Copyright (C) 1998, 2000, 2001, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: FSF diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 9aef1ed95be..e6fc1d67b8e 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -1,6 +1,7 @@ ;;; ibuf-ext.el --- extensions for ibuffer -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> @@ -221,8 +222,7 @@ Currently, this only applies to `ibuffer-saved-filters' and (ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates))))) (defun ibuffer-auto-update-changed () - (when ibuffer-auto-buffers-changed - (setq ibuffer-auto-buffers-changed nil) + (when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) (mapcar #'(lambda (buf) (ignore-errors (with-current-buffer buf @@ -242,10 +242,7 @@ With numeric ARG, enable auto-update if and only if ARG is positive." (if arg (plusp arg) (not ibuffer-auto-mode))) - (defadvice get-buffer-create (after ibuffer-notify-create activate) - (setq ibuffer-auto-buffers-changed t)) - (defadvice kill-buffer (after ibuffer-notify-kill activate) - (setq ibuffer-auto-buffers-changed t)) + (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed) (add-hook 'post-command-hook 'ibuffer-auto-update-changed) (ibuffer-update-mode-name)) diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index aebe923ee85..5274e3173ef 100644 --- a/lisp/ibuf-macs.el +++ b/lisp/ibuf-macs.el @@ -1,6 +1,7 @@ ;;; ibuf-macs.el --- macros for ibuffer -;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index dd0fba20914..7d6b72b06af 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -1,6 +1,7 @@ ;;; ibuffer.el --- operate on buffers like dired -;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> @@ -39,6 +40,21 @@ (require 'font-core) +;; These come from ibuf-ext.el, which can not be require'd at compile time +;; because it has a recursive dependency on ibuffer.el +(defvar ibuffer-auto-mode) +(defvar ibuffer-cached-filter-formats) +(defvar ibuffer-compiled-filter-formats) +(defvar ibuffer-filter-format-alist) +(defvar ibuffer-filter-group-kill-ring) +(defvar ibuffer-filter-groups) +(defvar ibuffer-filtering-qualifiers) +(defvar ibuffer-hidden-filter-groups) +(defvar ibuffer-inline-columns) +(defvar ibuffer-show-empty-filter-groups) +(defvar ibuffer-tmp-hide-regexps) +(defvar ibuffer-tmp-show-regexps) + (defgroup ibuffer nil "An advanced replacement for `buffer-menu'. @@ -193,11 +209,12 @@ view of the buffers." (defvar ibuffer-sorting-reversep nil) (defcustom ibuffer-elide-long-columns nil - "If non-nil, then elide column entries which exceed their max length. -This variable is deprecated; use the :elide argument of -`ibuffer-formats' to elide just certain columns." + "If non-nil, then elide column entries which exceed their max length." :type 'boolean :group 'ibuffer) +(make-obsolete-variable 'ibuffer-elide-long-columns + "use the :elide argument of `ibuffer-formats'." + "22.1") (defcustom ibuffer-eliding-string "..." "The string to use for eliding long columns." @@ -307,13 +324,15 @@ directory, like `default-directory'." "Hook run when `ibuffer' is called." :type 'hook :group 'ibuffer) -(defvaralias 'ibuffer-hooks 'ibuffer-hook) +(define-obsolete-variable-alias 'ibuffer-hooks + 'ibuffer-hook "22.1") (defcustom ibuffer-mode-hook nil "Hook run upon entry into `ibuffer-mode'." :type 'hook :group 'ibuffer) -(defvaralias 'ibuffer-mode-hooks 'ibuffer-mode-hook) +(define-obsolete-variable-alias 'ibuffer-mode-hooks + 'ibuffer-mode-hook "22.1") (defcustom ibuffer-load-hook nil "Hook run when Ibuffer is loaded." @@ -810,6 +829,11 @@ directory, like `default-directory'." (defvar ibuffer-did-modification nil) +(defvar ibuffer-compiled-formats nil) +(defvar ibuffer-cached-formats nil) +(defvar ibuffer-cached-eliding-string nil) +(defvar ibuffer-cached-elide-long-columns 0) + (defvar ibuffer-sorting-functions-alist nil "An alist of functions which describe how to sort buffers. @@ -838,7 +862,7 @@ width and the longest string in LIST." (while list (dotimes (i (1- columns)) (insert (concat (car list) (make-string (- max (length (car list))) - ? ))) + ?\s))) (setq list (cdr list))) (when (not (null list)) (insert (pop list))) @@ -861,7 +885,7 @@ width and the longest string in LIST." (let ((mark (ibuffer-current-mark))) (setq buffer-read-only nil) (if (eq mark ibuffer-marked-char) - (ibuffer-set-mark ? ) + (ibuffer-set-mark ?\s) (ibuffer-set-mark ibuffer-marked-char))))) (setq buffer-read-only t))) @@ -1153,7 +1177,7 @@ a new window in the current frame, splitting vertically." (if all (ibuffer-map-lines-nomodify #'(lambda (buf mark) - (not (char-equal mark ? )))) + (not (char-equal mark ?\s)))) (ibuffer-map-lines-nomodify #'(lambda (buf mark) (char-equal mark ibuffer-marked-char))))) @@ -1227,18 +1251,18 @@ a new window in the current frame, splitting vertically." ((char-equal mark ibuffer-marked-char) (ibuffer-map-marked-lines #'(lambda (buf mark) - (ibuffer-set-mark-1 ? ) + (ibuffer-set-mark-1 ?\s) t))) ((char-equal mark ibuffer-deletion-char) (ibuffer-map-deletion-lines #'(lambda (buf mark) - (ibuffer-set-mark-1 ? ) + (ibuffer-set-mark-1 ?\s) t))) (t (ibuffer-map-lines #'(lambda (buf mark) - (when (not (char-equal mark ? )) - (ibuffer-set-mark-1 ? )) + (when (not (char-equal mark ?\s)) + (ibuffer-set-mark-1 ?\s)) t))))) (ibuffer-redisplay t)) @@ -1255,9 +1279,9 @@ group." (ibuffer-map-lines #'(lambda (buf mark) (cond ((eq mark ibuffer-marked-char) - (ibuffer-set-mark-1 ? ) + (ibuffer-set-mark-1 ?\s) nil) - ((eq mark ? ) + ((eq mark ?\s) (ibuffer-set-mark-1 ibuffer-marked-char) t) (t @@ -1276,13 +1300,13 @@ If point is on a group name, this function operates on that group." "Unmark the buffer on this line, and move forward ARG lines. If point is on a group name, this function operates on that group." (interactive "P") - (ibuffer-mark-interactive arg ? 1)) + (ibuffer-mark-interactive arg ?\s 1)) (defun ibuffer-unmark-backward (arg) "Unmark the buffer on this line, and move backward ARG lines. If point is on a group name, this function operates on that group." (interactive "P") - (ibuffer-mark-interactive arg ? -1)) + (ibuffer-mark-interactive arg ?\s -1)) (defun ibuffer-mark-interactive (arg mark movement) (assert (eq major-mode 'ibuffer-mode)) @@ -1390,7 +1414,7 @@ If point is on a group name, this function operates on that group." (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p) (let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold))) - (if (or elide ibuffer-elide-long-columns) + (if (or elide (with-no-warnings ibuffer-elide-long-columns)) `(if (> strlen 5) ,(if from-end-p `(concat ,ellipsis @@ -1409,8 +1433,8 @@ If point is on a group name, this function operates on that group." `(substring ,strvar 0 ,maxvar))) (defun ibuffer-compile-make-format-form (strvar widthform alignment) - (let* ((left `(make-string tmp2 ? )) - (right `(make-string (- tmp1 tmp2) ? ))) + (let* ((left `(make-string tmp2 ?\s)) + (right `(make-string (- tmp1 tmp2) ?\s))) `(progn (setq tmp1 ,widthform tmp2 (/ tmp1 2)) @@ -1563,11 +1587,6 @@ If point is on a group name, this function operates on that group." '(tmp2))) ,@(nreverse result)))))))) -(defvar ibuffer-compiled-formats nil) -(defvar ibuffer-cached-formats nil) -(defvar ibuffer-cached-eliding-string nil) -(defvar ibuffer-cached-elide-long-columns 0) - (defun ibuffer-recompile-formats () "Recompile `ibuffer-formats'." (interactive) @@ -1599,7 +1618,7 @@ If point is on a group name, this function operates on that group." (not (equal ibuffer-cached-eliding-string ibuffer-eliding-string)) (eql 0 ibuffer-cached-elide-long-columns) (not (eql ibuffer-cached-elide-long-columns - ibuffer-elide-long-columns)) + (with-no-warnings ibuffer-elide-long-columns))) (and ext-loaded (not (eq ibuffer-cached-filter-formats ibuffer-filter-format-alist)) @@ -1609,7 +1628,7 @@ If point is on a group name, this function operates on that group." (ibuffer-recompile-formats) (setq ibuffer-cached-formats ibuffer-formats ibuffer-cached-eliding-string ibuffer-eliding-string - ibuffer-cached-elide-long-columns ibuffer-elide-long-columns) + ibuffer-cached-elide-long-columns (with-no-warnings ibuffer-elide-long-columns)) (when ext-loaded (setq ibuffer-cached-filter-formats ibuffer-filter-format-alist)) (message "Formats have changed, recompiling...done")))) @@ -1690,7 +1709,7 @@ If point is on a group name, this function operates on that group." (and (boundp 'dired-directory) (if (stringp dired-directory) dired-directory - (car dired-directory))) + (car dired-directory))) "")))) (define-ibuffer-column filename-and-process @@ -1724,8 +1743,8 @@ If point is on a group name, this function operates on that group." filename))) (defun ibuffer-format-column (str width alignment) - (let ((left (make-string (/ width 2) ? )) - (right (make-string (- width (/ width 2)) ? ))) + (let ((left (make-string (/ width 2) ?\s)) + (right (make-string (- width (/ width 2)) ?\s))) (case alignment (:right (concat left right str)) (:center (concat left str right)) @@ -1881,7 +1900,7 @@ the value of point at the beginning of the line for that buffer." (mapcar #'(lambda (buf) (let ((e (assq buf bufs))) (if e e - (cons buf ? )))) + (cons buf ?\s)))) curbufs))) (defun ibuffer-buf-matches-predicates (buf predicates) @@ -1989,10 +2008,10 @@ the value of point at the beginning of the line for that buffer." (buffer-substring (point) (line-end-position))))) (apply #'insert (mapcar #'(lambda (c) - (if (not (or (char-equal c ? ) + (if (not (or (char-equal c ?\s) (char-equal c ?\n))) ?- - ? )) + ?\s)) str))) (insert "\n")) (point)) @@ -2011,7 +2030,7 @@ the value of point at the beginning of the line for that buffer." (dolist (element format) (insert (if (stringp element) - (make-string (length element) ? ) + (make-string (length element) ?\s) (let ((sym (car element))) (let ((min (cadr element)) ;; (max (caddr element)) @@ -2023,7 +2042,7 @@ the value of point at the beginning of the line for that buffer." (funcall (get sym 'ibuffer-column-summarizer) (get sym 'ibuffer-column-summary)) (make-string (length (get sym 'ibuffer-column-name)) - ? ))) + ?\s))) (len (length summary))) (if (< len min) (ibuffer-format-column summary @@ -2241,22 +2260,22 @@ buffers which are visiting a file." ;;;###autoload (defun ibuffer (&optional other-window-p name qualifiers noselect shrink filter-groups formats) - "Begin using `ibuffer' to edit a list of buffers. + "Begin using Ibuffer to edit a list of buffers. Type 'h' after entering ibuffer for more information. -Optional argument OTHER-WINDOW-P says to use another window. -Optional argument NAME specifies the name of the buffer; it defaults -to \"*Ibuffer*\". -Optional argument QUALIFIERS is an initial set of filtering qualifiers -to use; see `ibuffer-filtering-qualifiers'. -Optional argument NOSELECT means don't select the Ibuffer buffer. -Optional argument SHRINK means shrink the buffer to minimal size. The -special value `onewindow' means always use another window. -Optional argument FILTER-GROUPS is an initial set of filtering -groups to use; see `ibuffer-filter-groups'. -Optional argument FORMATS is the value to use for `ibuffer-formats'. -If specified, then the variable `ibuffer-formats' will have that value -locally in this buffer." +All arguments are optional. +OTHER-WINDOW-P says to use another window. +NAME specifies the name of the buffer (defaults to \"*Ibuffer*\"). +QUALIFIERS is an initial set of filtering qualifiers to use; + see `ibuffer-filtering-qualifiers'. +NOSELECT means don't select the Ibuffer buffer. +SHRINK means shrink the buffer to minimal size. The special + value `onewindow' means always use another window. +FILTER-GROUPS is an initial set of filtering groups to use; + see `ibuffer-filter-groups'. +FORMATS is the value to use for `ibuffer-formats'. + If specified, then the variable `ibuffer-formats' will have + that value locally in this buffer." (interactive "P") (when ibuffer-use-other-window (setq other-window-p t)) @@ -2297,7 +2316,7 @@ locally in this buffer." (put 'ibuffer-mode 'mode-class 'special) (defun ibuffer-mode () "A major mode for viewing a list of buffers. -In ibuffer, you can conveniently perform many operations on the +In Ibuffer, you can conveniently perform many operations on the currently open buffers, in addition to filtering your view to a particular subset of them, and sorting by various criteria. diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 9e9662c1697..085c111d856 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -1,7 +1,7 @@ ;;; icomplete.el --- minibuffer completion incremental feedback -;; Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Ken Manheimer <klm@i.am> ;; Maintainer: Ken Manheimer <klm@i.am> @@ -243,13 +243,15 @@ and `minibuffer-setup-hook'." ;; embarking on computing completions: (sit-for icomplete-compute-delay))) (let ((text (while-no-input - (icomplete-completions - (field-string) - minibuffer-completion-table - minibuffer-completion-predicate - (not minibuffer-completion-confirm)))) + (list + (icomplete-completions + (field-string) + minibuffer-completion-table + minibuffer-completion-predicate + (not minibuffer-completion-confirm))))) (buffer-undo-list t)) - (if text (insert text))))))) + ;; Do nothing if while-no-input was aborted. + (if (consp text) (insert (car text)))))))) ;;;_ > icomplete-completions (name candidates predicate require-match) (defun icomplete-completions (name candidates predicate require-match) diff --git a/lisp/ido.el b/lisp/ido.el index d4d94164f3c..7c9d269417a 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -1,6 +1,7 @@ ;;; ido.el --- interactively do things with buffers and files. -;; Copyright (C) 1996-2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk> @@ -101,9 +102,9 @@ ;; The list in {...} are the matching buffers, most recent first ;; (buffers visible in the current frame are put at the end of the ;; list by default). At any time I can select the item at the head of -;; the list by pressing RET. I can also bring the put the first -;; element at the end of the list by pressing C-s or [right], or put -;; the last element at the head of the list by pressing C-r or [left]. +;; the list by pressing RET. I can also put the first element at the +;; end of the list by pressing C-s or [right], or bring the last +;; element to the head of the list by pressing C-r or [left]. ;; ;; The item in [...] indicates what can be added to my input by ;; pressing TAB. In this case, I will get "3" added to my input. @@ -210,8 +211,7 @@ ;; Example: ;; ;; If you have again two Buffers "123456" and "123" then hitting "2" does -;; not match because "2" is not a PREFIX in any of the buffer-names. This -;; is the only difference between the substring and prefix matching. +;; not match because "2" is not a PREFIX in any of the buffer-names. ;; Flexible matching ;; ----------------- @@ -236,14 +236,10 @@ ;; ;; There is limited provision for regexp matching within ido, ;; enabled through `ido-enable-regexp' (toggle with C-t). -;; This allows you to type `c$' for example and see all file names -;; ending in `c'. This facility is quite limited though in two -;; respects. First, you can't currently type in expressions like -;; `[0-9]' directly -- you have to type them in when ido-enable-regexp -;; is nil and then toggle on the regexp functionality. Likewise, -;; don't enter an expression containing `\' in regexp mode. If you -;; try, ido gets confused, so just hit C-g and try again. Secondly, -;; no completion mechanism is currently offered with regexp searching. +;; This allows you to type `[ch]$' for example and see all file names +;; ending in `c' or `h'. +;; +;; Note: ido-style completion is inhibited when you enable regexp matching. ;; Customization @@ -327,6 +323,8 @@ (provide 'ido) +(defvar cua-inhibit-cua-keys) + ;;; User Variables ;; ;; These are some things you might want to change. @@ -371,7 +369,7 @@ use either \\[customize] or the function `ido-mode'." Setting this variable directly does not work. Use `customize' or call the function `ido-everywhere'." :set #'(lambda (symbol value) - (ido-everywhere value)) + (ido-everywhere (if value 1 -1))) :initialize 'custom-initialize-default :type 'boolean :group 'ido) @@ -578,8 +576,12 @@ the `ido-work-directory-list' list." (defcustom ido-use-filename-at-point nil "*Non-nil means that ido shall look for a filename at point. +May use `ffap-guesser' to guess whether text at point is a filename. If found, use that as the starting point for filename selection." - :type 'boolean + :type '(choice + (const :tag "Disabled" nil) + (const :tag "Guess filename" guess) + (other :tag "Use literal filename" t)) :group 'ido) @@ -688,12 +690,17 @@ not provide the normal completion. To show the completions, use C-a." :type 'boolean :group 'ido) -(defcustom ido-enter-single-matching-directory 'slash - "*Automatically enter sub-directory if it is the only matching item, if non-nil. -If value is 'slash, only enter if typing final slash, else do it always." +(defcustom ido-enter-matching-directory 'only + "*Additional methods to enter sub-directory of first/only matching item. +If value is 'first, enter first matching sub-directory when typing a slash. +If value is 'only, typing a slash only enters the sub-directory if it is +the only matching item. +If value is t, automatically enter a sub-directory when it is the only +matching item, even without typing a slash." :type '(choice (const :tag "Never" nil) - (const :tag "When typing /" slash) - (other :tag "Always" t)) + (const :tag "Slash enters first directory" first) + (const :tag "Slash enters first and only directory" only) + (other :tag "Always enter unique directory" t)) :group 'ido) (defcustom ido-create-new-buffer 'prompt @@ -881,6 +888,12 @@ the file name using normal `read-file-name' style." :type '(repeat symbol) :group 'ido) +(defcustom ido-before-fallback-functions '() + "List of functions to call before calling a fallback command. +The fallback command is passed as an argument to the functions." + :type 'hook + :group 'ido) + ;;; Internal Variables ;; Persistent variables @@ -1356,7 +1369,8 @@ This function also adds a hook to the minibuffer." (define-key map [remap display-buffer] 'ido-display-buffer))))) (defun ido-everywhere (arg) - "Enable ido everywhere file and directory names are read." + "Toggle using ido speed-ups everywhere file and directory names are read. +With ARG, turn ido speed-up on if arg is positive, off otherwise." (interactive "P") (setq ido-everywhere (if arg (> (prefix-numeric-value arg) 0) @@ -1395,7 +1409,7 @@ This function also adds a hook to the minibuffer." (define-key map "\C-s" 'ido-next-match) (define-key map "\C-t" 'ido-toggle-regexp) (define-key map "\C-z" 'ido-undo-merge-work-directory) - (define-key map [(control ? )] 'ido-restrict-to-matches) + (define-key map [(control ?\s)] 'ido-restrict-to-matches) (define-key map [(control ?@)] 'ido-restrict-to-matches) (define-key map [right] 'ido-next-match) (define-key map [left] 'ido-prev-match) @@ -1426,7 +1440,7 @@ This function also adds a hook to the minibuffer." (define-key map [(meta ?m)] 'ido-make-directory) (define-key map [(meta ?n)] 'ido-next-work-directory) (define-key map [(meta ?o)] 'ido-prev-work-file) - (define-key map [(meta ?O)] 'ido-next-work-file) + (define-key map [(meta control ?o)] 'ido-next-work-file) (define-key map [(meta ?p)] 'ido-prev-work-directory) (define-key map [(meta ?s)] 'ido-merge-work-directories) ) @@ -1918,7 +1932,10 @@ If INITIAL is non-nil, it specifies the initial input string." (defun ido-buffer-internal (method &optional fallback prompt default initial switch-cmd) ;; Internal function for ido-switch-buffer and friends (if (not ido-mode) - (call-interactively (or fallback 'switch-to-buffer)) + (progn + (run-hook-with-args 'ido-before-fallback-functions + (or fallback 'switch-to-buffer)) + (call-interactively (or fallback 'switch-to-buffer))) (let* ((ido-context-switch-command switch-cmd) (ido-current-directory nil) (ido-directory-nonreadable nil) @@ -1937,6 +1954,8 @@ If INITIAL is non-nil, it specifies the initial input string." ((eq ido-exit 'fallback) (let ((read-buffer-function nil)) + (run-hook-with-args 'ido-before-fallback-functions + (or fallback 'switch-to-buffer)) (call-interactively (or fallback 'switch-to-buffer)))) ;; Check buf is non-nil. @@ -1948,7 +1967,9 @@ If INITIAL is non-nil, it specifies the initial input string." (if (eq method 'insert) (progn (ido-record-command 'insert-buffer buf) - (insert-buffer buf)) + (with-no-warnings + ;; we really want to run insert-buffer here + (insert-buffer buf))) (ido-visit-buffer buf method t))) ;; buffer doesn't exist @@ -2013,7 +2034,8 @@ If INITIAL is non-nil, it specifies the initial input string." (setq item 'file)) (let ((ido-current-directory (ido-expand-directory default)) (ido-context-switch-command switch-cmd) - ido-directory-nonreadable ido-directory-too-big + ido-directory-nonreadable ido-directory-too-big + (minibuffer-completing-file-name t) filename) (if (or (not ido-mode) (ido-is-slow-ftp-host)) @@ -2040,7 +2062,9 @@ If INITIAL is non-nil, it specifies the initial input string." filename t)) ((and ido-use-filename-at-point - (setq fn (ffap-string-at-point)) + (setq fn (if (eq ido-use-filename-at-point 'guess) + (with-no-warnings (ffap-guesser)) + (ffap-string-at-point))) (not (string-match "^http:/" fn)) (setq d (file-name-directory fn)) (file-directory-p d)) @@ -2068,6 +2092,8 @@ If INITIAL is non-nil, it specifies the initial input string." ;; we don't want to change directory of current buffer. (let ((default-directory ido-current-directory) (read-file-name-function nil)) + (run-hook-with-args 'ido-before-fallback-functions + (or fallback 'find-file)) (call-interactively (or fallback 'find-file)))) ((eq ido-exit 'switch-to-buffer) @@ -2134,6 +2160,7 @@ If INITIAL is non-nil, it specifies the initial input string." (setq filename (concat ido-current-directory filename)) (ido-record-command fallback filename) (ido-record-work-directory) + (run-hook-with-args 'ido-before-fallback-functions fallback) (funcall fallback filename)) ((eq method 'insert) @@ -2995,11 +3022,10 @@ for first matching file." (let (res) (message "Searching for `%s'...." text) (condition-case nil - (unless (catch 'input-pending-p - (let ((throw-on-input 'input-pending-p)) - (setq res (ido-make-merged-file-list-1 text auto wide)) - t)) - (setq res 'input-pending-p)) + (if (eq t (setq res + (while-no-input + (ido-make-merged-file-list-1 text auto wide)))) + (setq res 'input-pending-p)) (quit (setq res t ido-try-merged-list nil @@ -3342,38 +3368,37 @@ for first matching file." (or (member name ido-ignore-item-temp-list) (and ido-process-ignore-lists re-list - (let ((data (match-data)) - (ext-list (and ignore-ext ido-ignore-extensions + (save-match-data + (let ((ext-list (and ignore-ext ido-ignore-extensions completion-ignored-extensions)) - ignorep nextstr - (flen (length name)) slen) - (while ext-list - (setq nextstr (car ext-list)) - (if (cond - ((stringp nextstr) - (and (>= flen (setq slen (length nextstr))) - (string-equal (substring name (- flen slen)) nextstr))) - ((fboundp nextstr) (funcall nextstr name)) - (t nil)) - (setq ignorep t - ext-list nil - re-list nil) - (setq ext-list (cdr ext-list)))) - (while re-list - (setq nextstr (car re-list)) - (if (cond - ((stringp nextstr) (string-match nextstr name)) - ((fboundp nextstr) (funcall nextstr name)) - (t nil)) - (setq ignorep t - re-list nil) - (setq re-list (cdr re-list)))) - ;; return the result - (if ignorep - (setq ido-ignored-list (cons name ido-ignored-list))) - (set-match-data data) - ignorep)))) - + (case-fold-search ido-case-fold) + ignorep nextstr + (flen (length name)) slen) + (while ext-list + (setq nextstr (car ext-list)) + (if (cond + ((stringp nextstr) + (and (>= flen (setq slen (length nextstr))) + (string-equal (substring name (- flen slen)) nextstr))) + ((fboundp nextstr) (funcall nextstr name)) + (t nil)) + (setq ignorep t + ext-list nil + re-list nil) + (setq ext-list (cdr ext-list)))) + (while re-list + (setq nextstr (car re-list)) + (if (cond + ((stringp nextstr) (string-match nextstr name)) + ((fboundp nextstr) (funcall nextstr name)) + (t nil)) + (setq ignorep t + re-list nil) + (setq re-list (cdr re-list)))) + ;; return the result + (if ignorep + (setq ido-ignored-list (cons name ido-ignored-list))) + ignorep))))) ;; Private variable used by `ido-word-matching-substring'. (defvar ido-change-word-sub) @@ -3974,12 +3999,13 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." (ido-set-matches) (ido-trace "new " ido-matches) - (when (and ido-enter-single-matching-directory + (when (and ido-enter-matching-directory ido-matches - (null (cdr ido-matches)) + (or (eq ido-enter-matching-directory 'first) + (null (cdr ido-matches))) (ido-final-slash (car ido-matches)) (or try-single-dir-match - (eq ido-enter-single-matching-directory t))) + (eq ido-enter-matching-directory t))) (ido-trace "single match" (car ido-matches)) (ido-set-current-directory (concat ido-current-directory (car ido-matches))) @@ -4195,6 +4221,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." (put 'dired-do-rename 'ido 'ignore) (put 'ibuffer-find-file 'ido 'find-file) +(put 'dired-other-window 'ido 'dir) ;;;###autoload (defun ido-read-buffer (prompt &optional default require-match) @@ -4210,6 +4237,7 @@ If REQUIRE-MATCH is non-nil, an existing buffer must be selected." (buf (ido-read-internal 'buffer prompt 'ido-buffer-history default require-match))) (if (eq ido-exit 'fallback) (let ((read-buffer-function nil)) + (run-hook-with-args 'ido-before-fallback-functions 'read-buffer) (read-buffer prompt default require-match)) buf))) @@ -4234,6 +4262,7 @@ See `read-file-name' for additional parameters." (ido-context-switch-command (if (eq (get this-command 'ido) 'find-file) nil 'ignore)) (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) + (minibuffer-completing-file-name t) (ido-current-directory (ido-expand-directory dir)) (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) (ido-directory-too-big (and (not ido-directory-nonreadable) @@ -4256,6 +4285,7 @@ See `read-file-name' for additional parameters." (setq filename 'fallback))) (if (eq filename 'fallback) (let ((read-file-name-function nil)) + (run-hook-with-args 'ido-before-fallback-functions 'read-file-name) (read-file-name prompt dir default-filename mustmatch initial predicate)) filename))) @@ -4265,6 +4295,7 @@ See `read-file-name' for additional parameters." Read directory name, prompting with PROMPT and completing in directory DIR. See `read-directory-name' for additional parameters." (let* (filename + (minibuffer-completing-file-name t) (ido-context-switch-command 'ignore) ido-saved-vc-hb (ido-current-directory (ido-expand-directory dir)) diff --git a/lisp/ielm.el b/lisp/ielm.el index 66a1da39066..57354008b1b 100644 --- a/lisp/ielm.el +++ b/lisp/ielm.el @@ -1,6 +1,6 @@ ;;; ielm.el --- interaction mode for Emacs Lisp -;; Copyright (C) 1994, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: David Smith <maa036@lancaster.ac.uk> ;; Maintainer: FSF diff --git a/lisp/iimage.el b/lisp/iimage.el index b10679592b3..ace21702a0f 100644 --- a/lisp/iimage.el +++ b/lisp/iimage.el @@ -1,6 +1,6 @@ ;;; iimage.el --- Inline image minor mode. -;; Copyright (C) 2004, 2005 Free Software Foundation +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Author: KOSEKI Yoshinori <kose@meadowy.org> ;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org> diff --git a/lisp/image-file.el b/lisp/image-file.el index 8f74dd63c0a..94028b740f5 100644 --- a/lisp/image-file.el +++ b/lisp/image-file.el @@ -1,6 +1,7 @@ ;;; image-file.el --- support for visiting image files ;; -;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: multimedia @@ -118,6 +119,8 @@ the command `insert-file-contents'." (create-image data nil t)) (props `(display ,image + yank-handler + (image-file-yank-handler nil t) intangible ,image rear-nonsticky (display intangible) ;; This a cheap attempt to make the whole buffer @@ -135,6 +138,25 @@ the command `insert-file-contents'." (setq truncate-lines t)))) rval)) +;; We use a yank-handler to make yanked images unique, so that +;; yanking two copies of the same image next to each other are +;; recognized as two different images. +(defun image-file-yank-handler (string) + "Yank handler for inserting an image into a buffer." + (let ((len (length string)) + (image (get-text-property 0 'display string))) + (remove-text-properties 0 len yank-excluded-properties string) + (if (consp image) + (add-text-properties 0 + (or (next-single-property-change 0 'image-counter string) + (length string)) + `(display + ,(cons (car image) (cdr image)) + yank-handler + ,(cons 'image-file-yank-handler '(nil t))) + string)) + (insert string))) + (put 'image-file-handler 'safe-magic t) (defun image-file-handler (operation &rest args) "Filename handler for inserting image files. diff --git a/lisp/image.el b/lisp/image.el index 561e0ac0abf..b45b23db611 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -1,6 +1,7 @@ ;;; image.el --- image API -;; Copyright (C) 1998, 99, 2000, 01, 04 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: multimedia diff --git a/lisp/imenu.el b/lisp/imenu.el index a210b39c604..1a107ed8aea 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -1,7 +1,7 @@ ;;; imenu.el --- framework for mode-specific buffer indexes -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se> ;; Lars Lindberg <lli@sypro.cap.se> diff --git a/lisp/indent.el b/lisp/indent.el index 14488e79a62..9e84dfe13e0 100644 --- a/lisp/indent.el +++ b/lisp/indent.el @@ -1,6 +1,7 @@ ;;; indent.el --- indentation commands for Emacs -;; Copyright (C) 1985, 1995, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/info-look.el b/lisp/info-look.el index a408a7b2388..ad09df777cf 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el @@ -1,7 +1,8 @@ ;;; info-look.el --- major-mode-sensitive Info index lookup facility ;; An older version of this was known as libc.el. -;; Copyright (C) 1995,96,97,98,99,2001,03,04,05 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org> ;; (did not show signs of life (Nov 2001) -stef) diff --git a/lisp/info-xref.el b/lisp/info-xref.el index bffe5681cd0..18d64cf0a1c 100644 --- a/lisp/info-xref.el +++ b/lisp/info-xref.el @@ -1,6 +1,6 @@ ;;; info-xref.el --- check external references in an Info document -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kevin Ryde <user42@zip.com.au> ;; Keywords: docs @@ -138,19 +138,25 @@ should open up the purported top file and see what subfiles it says." ;; Some dynamic variables are used to share information with sub-functions ;; below. ;; -;; info-xref-filename - current top-level filename, eg. /usr/info/foo.info.gz -;; ;; info-xref-filename-header - a heading message for the current top-level ;; filename, or "" when it's been printed. ;; +(defvar info-xref-xfile-alist) +;; ;; info-xref-good - count of good cross references. ;; +(defvar info-xref-good) +;; ;; info-xref-bad - count of bad cross references. ;; +(defvar info-xref-bad) +;; ;; info-xref-xfile-alist - indexed by "(foo)" with value nil or t according ;; to whether "(foo)" exists or not. This is used to suppress duplicate ;; messages about foo not being available. (Duplicates within one ;; top-level file that is.) +;; +(defvar info-xref-filename-heading) (defun info-xref-check-list (filename-list) "Check external references in info documents in FILENAME-LIST." diff --git a/lisp/info.el b/lisp/info.el index 695d67c3647..4c40e187c03 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -1,7 +1,7 @@ ;;; info.el --- info package for Emacs ;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help @@ -25,7 +25,7 @@ ;;; Commentary: -;; Note that nowadays we expect info files to be made using makeinfo. +;; Note that nowadays we expect Info files to be made using makeinfo. ;; In particular we make these assumptions: ;; - a menu item MAY contain colons but not colon-space ": " ;; - a menu item ending with ": " (but not ":: ") is an index entry @@ -44,20 +44,20 @@ (defvar Info-history nil - "Stack of info nodes user has visited. + "Stack of Info nodes user has visited. Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).") (defvar Info-history-forward nil - "Stack of info nodes user has visited with `Info-history-back' command. + "Stack of Info nodes user has visited with `Info-history-back' command. Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).") (defvar Info-history-list nil - "List of all info nodes user has visited. + "List of all Info nodes user has visited. Each element of the list is a list (FILENAME NODENAME).") (defcustom Info-enable-edit nil "*Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node. -This is convenient if you want to write info files by hand. +This is convenient if you want to write Info files by hand. However, we recommend that you not do this. It is better to write a Texinfo file and generate the Info file from that, because that gives you a printed manual as well." @@ -76,11 +76,57 @@ The Lisp code is executed when the node is selected.") "Face for Info node names." :group 'info) -(defface info-menu-5 +(defface info-title-1 + '((((type tty pc) (class color) (background light)) + :foreground "green" :weight bold) + (((type tty pc) (class color) (background dark)) + :foreground "yellow" :weight bold) + (t :height 1.2 :inherit info-title-2)) + "Face for info titles at level 1." + :group 'info) +;; backward-compatibility alias +(put 'Info-title-1-face 'face-alias 'info-title-1) + +(defface info-title-2 + '((((type tty pc) (class color)) :foreground "lightblue" :weight bold) + (t :height 1.2 :inherit info-title-3)) + "Face for info titles at level 2." + :group 'info) +;; backward-compatibility alias +(put 'Info-title-2-face 'face-alias 'info-title-2) + +(defface info-title-3 + '((((type tty pc) (class color)) :weight bold) + (t :height 1.2 :inherit info-title-4)) + "Face for info titles at level 3." + :group 'info) +;; backward-compatibility alias +(put 'Info-title-3-face 'face-alias 'info-title-3) + +(defface info-title-4 + '((((type tty pc) (class color)) :weight bold) + (t :weight bold :inherit variable-pitch)) + "Face for info titles at level 4." + :group 'info) +;; backward-compatibility alias +(put 'Info-title-4-face 'face-alias 'info-title-4) + +(defface info-menu-header + '((((type tty pc)) + :underline t + :weight bold) + (t + :inherit variable-pitch + :weight bold)) + "Face for headers in Info menus." + :group 'info) + +(defface info-menu-star '((((class color)) :foreground "red1") (t :underline t)) "Face for every third `*' in an Info menu." :group 'info) +(put 'info-menu-5 'face-alias 'info-menu-star) (defface info-xref '((((min-colors 88) @@ -96,12 +142,12 @@ The Lisp code is executed when the node is selected.") (defface info-xref-visited '((default :inherit info-xref) (((class color) (background light)) :foreground "magenta4") - (((class color) (background dark)) :foreground "magenta3")) ;"violet"? + (((class color) (background dark)) :foreground "violet")) "Face for visited Info cross-references." :group 'info) (defcustom Info-fontify-visited-nodes t - "*Non-nil means to fontify visited nodes in a different face." + "*Non-nil to fontify references to visited nodes in `info-xref-visited' face." :version "22.1" :type 'boolean :group 'info) @@ -165,6 +211,7 @@ These directories are searched after those in `Info-directory-list'." (defcustom Info-scroll-prefer-subnodes nil "*If non-nil, \\<Info-mode-map>\\[Info-scroll-up] in a menu visits subnodes. + If this is non-nil, and you scroll far enough in a node that its menu appears on the screen, the next \\<Info-mode-map>\\[Info-scroll-up] moves to a subnode indicated by the following menu item. This means @@ -180,7 +227,8 @@ when you hit the end of the current node." (defcustom Info-hide-note-references t "*If non-nil, hide the tag and section reference in *note and * menu items. If value is non-nil but not `hide', also replaces the \"*note\" with \"see\". -If value is non-nil but not t or `hide', the reference section is still shown." +If value is non-nil but not t or `hide', the reference section is still shown. +`nil' completely disables this feature." :version "22.1" :type '(choice (const :tag "No hiding" nil) (const :tag "Replace tag and hide reference" t) @@ -190,7 +238,7 @@ If value is non-nil but not t or `hide', the reference section is still shown." (defcustom Info-refill-paragraphs nil "*If non-nil, attempt to refill paragraphs with hidden references. -This refilling may accidentally remove explicit line breaks in the info +This refilling may accidentally remove explicit line breaks in the Info file, so be prepared for a few surprises if you enable this feature." :version "22.1" :type 'boolean @@ -247,7 +295,7 @@ Can also be t when using `Info-on-current-buffer'.") (defvar Info-current-subfile nil "Info subfile that is actually in the *info* buffer now. -nil if current info file is not split into subfiles.") +nil if current Info file is not split into subfiles.") (defvar Info-current-node nil "Name of node that Info is now looking at, or nil.") @@ -357,7 +405,7 @@ be last in the list.") (not (file-directory-p filename)))) (defun info-insert-file-contents (filename &optional visit) - "Insert the contents of an info file in the current buffer. + "Insert the contents of an Info file in the current buffer. Do the right thing if the file has been compressed or zipped." (let* ((tail Info-suffix-list) (lfn (if (fboundp 'msdos-long-file-names) @@ -632,12 +680,12 @@ just return nil (no error)." filename))) (defun Info-find-node (filename nodename &optional no-going-back) - "Go to an info node specified as separate FILENAME and NODENAME. + "Go to an Info node specified as separate FILENAME and NODENAME. NO-GOING-BACK is non-nil if recovering from an error in this function; it says do not attempt further (recursive) error recovery." (info-initialize) (setq filename (Info-find-file filename)) - ;; Go into info buffer. + ;; Go into Info buffer. (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) ;; Record the node we are leaving. (if (and Info-current-file (not no-going-back)) @@ -647,7 +695,7 @@ it says do not attempt further (recursive) error recovery." (Info-find-node-2 filename nodename no-going-back)) (defun Info-on-current-buffer (&optional nodename) - "Use the `Info-mode' to browse the current info buffer. + "Use the `Info-mode' to browse the current Info buffer. If a prefix arg is provided, it queries for the NODENAME which else defaults to \"Top\"." (interactive @@ -665,7 +713,7 @@ else defaults to \"Top\"." ;; makeinfo-buffer) out of the way of normal operations. ;; (defun Info-revert-find-node (filename nodename) - "Go to an info node FILENAME and NODENAME, re-reading disk contents. + "Go to an Info node FILENAME and NODENAME, re-reading disk contents. When *info* is already displaying FILENAME and NODENAME, the window position is preserved, if possible." (pop-to-buffer "*info*") @@ -1028,7 +1076,7 @@ a case-insensitive match is tried." ;; Insert the entire original dir file as a start; note that we've ;; already saved its default directory to use as the default ;; directory for the whole concatenation. - (insert-buffer buffer) + (save-excursion (insert-buffer-substring buffer)) ;; Look at each of the other buffers one by one. (dolist (other others) @@ -1157,8 +1205,9 @@ a case-insensitive match is tried." (goto-char start) (while (re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)" limit 'move) - (let ((x (match-string 1))) - (if (member-ignore-case x seen) + ;; Fold case straight away; `member-ignore-case' here wasteful. + (let ((x (downcase (match-string 1)))) + (if (member x seen) (delete-region (match-beginning 0) (progn (re-search-forward "^[^ \t]" nil t) (match-beginning 0))) @@ -1286,7 +1335,7 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." (set-buffer-modified-p nil))) (defun Info-select-node () - "Select the info node that point is in." + "Select the Info node that point is in." ;; Bind this in case the user sets it to nil. (let ((case-fold-search t)) (save-excursion @@ -1342,20 +1391,20 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." ") " (or Info-current-node "")))))) -;; Go to an info node specified with a filename-and-nodename string +;; Go to an Info node specified with a filename-and-nodename string ;; of the sort that is found in pointers in nodes. ;; Don't autoload this function: the correct entry point for other packages ;; to use is `info'. --Stef ;; ;;;###autoload (defun Info-goto-node (nodename &optional fork) - "Go to info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME. + "Go to Info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME. If NODENAME is of the form (FILENAME)NODENAME, the node is in the Info file FILENAME; otherwise, NODENAME should be in the current Info file (or one of its sub-files). Completion is available, but only for node names in the current Info file. If FORK is non-nil (interactively with a prefix arg), show the node in -a new info buffer. +a new Info buffer. If FORK is a string, it is the name to use for the new buffer." (interactive (list (Info-read-node-name "Go to node: ") current-prefix-arg)) (info-initialize) @@ -1401,7 +1450,7 @@ PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)." ;; include it. (and (or (null (file-name-extension file)) (string-match suffix file)) - ;; But exclude subfiles of split info files. + ;; But exclude subfiles of split Info files. (not (string-match "-[0-9]+\\'" file)) ;; And exclude backup files. (not (string-match "~\\'" file)) @@ -1721,9 +1770,11 @@ If DIRECTION is `backward', search in the reverse direction." (lambda (string &optional bound noerror count) (if isearch-word (Info-search (concat "\\b" (replace-regexp-in-string - "\\W+" "\\\\W+" + "\\W+" "\\W+" (replace-regexp-in-string - "^\\W+\\|\\W+$" "" string)) "\\b") + "^\\W+\\|\\W+$" "" string) + nil t) + "\\b") bound noerror count (unless isearch-forward 'backward)) (Info-search (if isearch-regexp string (regexp-quote string)) @@ -1821,7 +1872,7 @@ If SAME-FILE is non-nil, do not move to a different Info file." (concat "\n\\* +\\(" (regexp-quote old-node) ":\\|[^:]+: +" (regexp-quote old-node) "\\)")) nil t)) - (beginning-of-line) + (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2))) (goto-char p) (Info-restore-point Info-history)))) @@ -2010,7 +2061,7 @@ Table of contents is created from the tree structure of menus." "Follow cross reference named FOOTNOTENAME to the node it refers to. FOOTNOTENAME may be an abbreviation of the reference name. If FORK is non-nil (interactively with a prefix arg), show the node in -a new info buffer. If FORK is a string, it is the name to use for the +a new Info buffer. If FORK is a string, it is the name to use for the new buffer." (interactive (let ((completion-ignore-case t) @@ -2221,7 +2272,7 @@ Because of ambiguities, this should be concatenated with something like The menu item should one of those listed in the current node's menu. Completion is allowed, and the default menu item is the one point is on. If FORK is non-nil (interactively with a prefix arg), show the node in -a new info buffer. If FORK is a string, it is the name to use for the +a new Info buffer. If FORK is a string, it is the name to use for the new buffer." (interactive (let ((completions '()) @@ -2546,7 +2597,9 @@ parent node." (if (looking-at "\\* Menu:") (if recur (error "No cross references in this node") - (Info-next-reference t))))) + (Info-next-reference t)) + (if (looking-at "^\\* ") + (forward-char 2))))) (defun Info-prev-reference (&optional recur) "Move cursor to the previous cross-reference or menu item in the node." @@ -2565,7 +2618,9 @@ parent node." (if (looking-at "\\* Menu:") (if recur (error "No cross references in this node") - (Info-prev-reference t))))) + (Info-prev-reference t)) + (if (looking-at "^\\* ") + (forward-char 2))))) (defvar Info-index-nodes nil "Alist of cached index node names of visited Info files. @@ -2799,25 +2854,29 @@ Build a menu of the possible matches." (goto-char (point-min)) (re-search-forward "\\* Menu: *\n" nil t) (while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t) - (add-to-list 'manuals (match-string 1))) - (dolist (manual manuals) + (setq manuals (cons (match-string 1) manuals))) + (dolist (manual (nreverse manuals)) (message "Searching %s" manual) - (if (setq nodes (Info-index-nodes (Info-find-file manual))) - (condition-case nil + (condition-case err + (if (setq nodes (Info-index-nodes (Info-find-file manual))) (save-excursion (Info-find-node manual (car nodes)) (while (progn (goto-char (point-min)) (while (re-search-forward pattern nil t) - (add-to-list 'matches - (list manual - (match-string-no-properties 1) - (match-string-no-properties 2) - (match-string-no-properties 3)))) + (setq matches + (cons (list manual + (match-string-no-properties 1) + (match-string-no-properties 2) + (match-string-no-properties 3)) + matches))) (setq nodes (cdr nodes) node (car nodes))) - (Info-goto-node node))) - (error nil))))) + (Info-goto-node node)))) + (error + (message "%s" (if (eq (car-safe err) 'error) + (nth 1 err) err)) + (sit-for 1 t))))) (Info-goto-node (concat "(" current-file ")" current-node)) (setq Info-history ohist Info-history-list ohist-list) @@ -2827,8 +2886,8 @@ Build a menu of the possible matches." (with-current-buffer (get-buffer-create " *info-apropos*") (erase-buffer) (insert "\n\^_\nFile: apropos, Node: Index, Up: (dir)\n") - (insert "* Menu: \nNodes whose indices contain \"" string "\"\n\n") - (dolist (entry matches) + (insert "* Menu: \nNodes whose indices contain `" string "':\n\n") + (dolist (entry (nreverse matches)) (insert (format "* %-38s (%s)%s.%s\n" (concat (nth 1 entry) " [" (nth 0 entry) "]:") @@ -3001,7 +3060,6 @@ if point is in a menu item description, follow that menu item." (define-key Info-mode-map "<" 'Info-top-node) (define-key Info-mode-map ">" 'Info-final-node) (define-key Info-mode-map "b" 'beginning-of-buffer) - (define-key Info-mode-map "c" 'Info-copy-current-node-name) (define-key Info-mode-map "d" 'Info-directory) (define-key Info-mode-map "e" 'Info-edit) (define-key Info-mode-map "f" 'Info-follow-reference) @@ -3023,8 +3081,11 @@ if point is in a menu item description, follow that menu item." (define-key Info-mode-map "t" 'Info-top-node) (define-key Info-mode-map "T" 'Info-toc) (define-key Info-mode-map "u" 'Info-up) - ;; For consistency with dired-copy-filename-as-kill. + ;; `w' for consistency with `dired-copy-filename-as-kill'. (define-key Info-mode-map "w" 'Info-copy-current-node-name) + (define-key Info-mode-map "c" 'Info-copy-current-node-name) + ;; `^' for consistency with `dired-up-directory'. + (define-key Info-mode-map "^" 'Info-up) (define-key Info-mode-map "," 'Info-index-next) (define-key Info-mode-map "\177" 'Info-scroll-down) (define-key Info-mode-map [mouse-2] 'Info-mouse-follow-nearest-node) @@ -3039,7 +3100,7 @@ if point is in a menu item description, follow that menu item." (easy-menu-define Info-mode-menu Info-mode-map - "Menu for info files." + "Menu for Info files." '("Info" ["Up" Info-up :active (Info-check-pointer "up") :help "Go up in the Info tree"] @@ -3061,8 +3122,6 @@ if point is in a menu item description, follow that menu item." ("Reference" ["You should never see this" report-emacs-bug t]) ["Search..." Info-search :help "Search for regular expression in this Info file"] - ["Search Case-Sensitively..." Info-search-case-sensitively - :help "Search for regular expression case sensitively"] ["Search Next" Info-search-next :help "Search for another occurrence of regular expression"] ["Go to Node..." Info-goto-node @@ -3174,12 +3233,12 @@ if point is in a menu item description, follow that menu item." (defun Info-copy-current-node-name (&optional arg) - "Put the name of the current info node into the kill ring. -The name of the info file is prepended to the node name in parentheses. + "Put the name of the current Info node into the kill ring. +The name of the Info file is prepended to the node name in parentheses. With a zero prefix arg, put the name inside a function call to `info'." (interactive "P") (unless Info-current-node - (error "No current info node")) + (error "No current Info node")) (let ((node (concat "(" (file-name-nondirectory (or (and (stringp Info-current-file) Info-current-file) @@ -3198,6 +3257,8 @@ With a zero prefix arg, put the name inside a function call to `info'." (defvar tool-bar-map) +;; Autoload cookie needed by desktop.el +;;;###autoload (defun Info-mode () "Info mode provides commands for browsing through the Info documentation tree. Documentation in Info is divided into \"nodes\", each of which discusses @@ -3245,7 +3306,7 @@ Moving within a node: \\[beginning-of-buffer] Go to beginning of node. Advanced commands: -\\[Info-copy-current-node-name] Put name of current info node in the kill ring. +\\[Info-copy-current-node-name] Put name of current Info node in the kill ring. \\[clone-buffer] Select a new cloned Info buffer in another window. \\[Info-edit] Edit contents of selected node. 1 .. 9 Pick first ... ninth item in node's menu. @@ -3355,7 +3416,7 @@ which returns to Info mode for browsing. Allowed only if variable `Info-enable-edit' is non-nil." (interactive) (or Info-enable-edit - (error "Editing info nodes is not enabled")) + (error "Editing Info nodes is not enabled")) (Info-edit-mode) (message "%s" (substitute-command-keys "Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info"))) @@ -3417,7 +3478,7 @@ in the first element of the returned list (which is treated specially in "\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\." "\\(?:[ \t\n]+(line +\\([0-9]+\\))\\)?")) (info-file "emacs")) ;default - ;; Determine which info file this command is documented in. + ;; Determine which Info file this command is documented in. (if (get command 'info-file) (setq info-file (get command 'info-file)) ;; If it doesn't say explicitly, test its name against @@ -3526,69 +3587,6 @@ the variable `Info-file-list-for-emacs'." (t (Info-goto-emacs-command-node command))))) -(defface info-title-1 - '((((type tty pc) (class color)) :foreground "green" :weight bold) - (t :height 1.2 :inherit info-title-2)) - "Face for info titles at level 1." - :group 'info) -;; backward-compatibility alias -(put 'Info-title-1-face 'face-alias 'info-title-1) - -(defface info-title-2 - '((((type tty pc) (class color)) :foreground "lightblue" :weight bold) - (t :height 1.2 :inherit info-title-3)) - "Face for info titles at level 2." - :group 'info) -;; backward-compatibility alias -(put 'Info-title-2-face 'face-alias 'info-title-2) - -(defface info-title-3 - '((((type tty pc) (class color)) :weight bold) - (t :height 1.2 :inherit info-title-4)) - "Face for info titles at level 3." - :group 'info) -;; backward-compatibility alias -(put 'Info-title-3-face 'face-alias 'info-title-3) - -(defface info-title-4 - '((((type tty pc) (class color)) :weight bold) - (t :weight bold :inherit variable-pitch)) - "Face for info titles at level 4." - :group 'info) -;; backward-compatibility alias -(put 'Info-title-4-face 'face-alias 'info-title-4) - -(defface info-menu-header - '((((type tty pc)) - :underline t - :weight bold) - (t - :inherit variable-pitch - :weight bold)) - "Face for headers in Info menus." - :group 'info) - -(defun Info-escape-percent (string) - "Double all occurrences of `%' in STRING. - -Return a new string with all `%' characters replaced by `%%'. -Preserve text properties." - (let ((start 0) - (end (length string)) - mb me m matches) - (save-match-data - (while (and (< start end) (string-match "%" string start)) - (setq mb (match-beginning 0) - me (1+ mb) - m (substring string mb me) - matches (cons m - (cons m - (cons (substring string start mb) - matches))) - start me)) - (push (substring string start end) matches) - (apply #'concat (nreverse matches))))) - (defvar Info-next-link-keymap (let ((keymap (make-sparse-keymap))) (define-key keymap [header-line mouse-1] 'Info-next) @@ -3680,7 +3678,11 @@ Preserve text properties." (buffer-substring (point) header-end))) (setq header (buffer-substring (point) header-end)))) (put-text-property (point-min) (1+ (point-min)) - 'header-line (Info-escape-percent header)) + 'header-line + (replace-regexp-in-string + "%" + ;; Preserve text properties on duplicated `%'. + (lambda (s) (concat s s)) header)) ;; Hide the part of the first line ;; that is in the header, if it is just part. (unless (bobp) @@ -3864,7 +3866,7 @@ Preserve text properties." (if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys (put-text-property (match-beginning 0) (1+ (match-beginning 0)) - 'font-lock-face 'info-menu-5))) + 'font-lock-face 'info-menu-star))) (when not-fontified-p (add-text-properties (match-beginning 1) (match-end 1) @@ -3958,7 +3960,7 @@ Preserve text properties." ;;; Speedbar support: ;; These functions permit speedbar to display the "tags" in the -;; current info node. +;; current Info node. (eval-when-compile (require 'speedbar)) (defvar Info-speedbar-key-map nil @@ -4000,7 +4002,7 @@ Preserve text properties." ;;; Info hierarchy display method ;;;###autoload (defun Info-speedbar-browser () - "Initialize speedbar to display an info node browser. + "Initialize speedbar to display an Info node browser. This will add a speedbar major display mode." (interactive) (require 'speedbar) @@ -4141,7 +4143,7 @@ BUFFER is the buffer speedbar is requesting buttons for." "^No `.*' in index$" "^No cross-reference named" "^No cross.references in this node$" - "^No current info node$" + "^No current Info node$" "^No menu in this node$" "^No more items in menu$" "^No more nodes$" @@ -4164,11 +4166,10 @@ BUFFER is the buffer speedbar is requesting buttons for." (if (not (member Info-current-file '("apropos" "history" "toc"))) (list Info-current-file Info-current-node))) -;;;###autoload (defun Info-restore-desktop-buffer (desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) - "Restore an info buffer specified in a desktop file." + "Restore an Info buffer specified in a desktop file." (let ((first (nth 0 desktop-buffer-misc)) (second (nth 1 desktop-buffer-misc))) (when (and first second) @@ -4178,6 +4179,9 @@ BUFFER is the buffer speedbar is requesting buttons for." (Info-find-node first second) (current-buffer)))) +(add-to-list 'desktop-buffer-mode-handlers + '(Info-mode . Info-restore-desktop-buffer)) + (provide 'info) ;; arch-tag: f2480fe2-2139-40c1-a49b-6314991164ac diff --git a/lisp/informat.el b/lisp/informat.el index f3688cb3668..c9198d93191 100644 --- a/lisp/informat.el +++ b/lisp/informat.el @@ -1,6 +1,6 @@ ;;; informat.el --- info support functions package for Emacs -;; Copyright (C) 1986 Free Software Foundation, Inc. +;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el index 0e3e675e387..df9853147c2 100644 --- a/lisp/international/code-pages.el +++ b/lisp/international/code-pages.el @@ -216,6 +216,7 @@ Return an updated `non-iso-charset-alist'." ;; Fixme: Do better for mode-line mnemonics? +;;;###autoload(autoload-coding-system 'cp437 '(require 'code-pages)) (cp-make-coding-system cp437 [?\Ç @@ -347,6 +348,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp737 '(require 'code-pages)) (cp-make-coding-system cp737 [?\Α @@ -479,6 +481,7 @@ Return an updated `non-iso-charset-alist'." ?\ ]) (coding-system-put 'cp737 'mime-charset nil) ; not in IANA list +;;;###autoload(autoload-coding-system 'cp775 '(require 'code-pages)) (cp-make-coding-system cp775 [?\Ć @@ -610,6 +613,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp850 '(require 'code-pages)) (cp-make-coding-system cp850 [?\Ç @@ -741,6 +745,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp851 '(require 'code-pages)) (cp-make-coding-system cp851 [?\Ç @@ -872,6 +877,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp852 '(require 'code-pages)) (cp-make-coding-system cp852 [?\Ç @@ -1003,6 +1009,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp855 '(require 'code-pages)) (cp-make-coding-system cp855 [?\Ñ’ @@ -1134,6 +1141,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp857 '(require 'code-pages)) (cp-make-coding-system cp857 [?\Ç @@ -1265,6 +1273,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp860 '(require 'code-pages)) (cp-make-coding-system cp860 [?\Ç @@ -1396,6 +1405,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp861 '(require 'code-pages)) (cp-make-coding-system cp861 [?\Ç @@ -1527,6 +1537,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp862 '(require 'code-pages)) (cp-make-coding-system cp862 [?\× @@ -1658,6 +1669,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp863 '(require 'code-pages)) (cp-make-coding-system cp863 [?\Ç @@ -1789,6 +1801,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp864 '(require 'code-pages)) (cp-make-coding-system cp864 [?\° @@ -1920,6 +1933,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp865 '(require 'code-pages)) (cp-make-coding-system cp865 [?\Ç @@ -2051,6 +2065,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp866 '(require 'code-pages)) (cp-make-coding-system cp866 [?\Ð @@ -2184,6 +2199,7 @@ Return an updated `non-iso-charset-alist'." "CP866 (Cyrillic)." ?A) +;;;###autoload(autoload-coding-system 'cp869 '(require 'code-pages)) (cp-make-coding-system cp869 [nil @@ -2315,6 +2331,7 @@ Return an updated `non-iso-charset-alist'." ?\â– ?\ ]) +;;;###autoload(autoload-coding-system 'cp874 '(require 'code-pages)) (cp-make-coding-system cp874 [?\€ @@ -3374,6 +3391,7 @@ Return an updated `non-iso-charset-alist'." ?\â‚« ?\ÿ]) +;;;###autoload(autoload-coding-system 'next '(require 'code-pages)) (cp-make-coding-system next [?\ @@ -3506,6 +3524,7 @@ Return an updated `non-iso-charset-alist'." nil] "NeXTstep encoding." ?N) +;;;###autoload(autoload-coding-system 'koi8-t '(require 'code-pages)) (cp-make-coding-system koi8-t ; used by glibc for tg_TJ [?\Ò› @@ -3774,6 +3793,7 @@ Return an updated `non-iso-charset-alist'." ;; Unicode-based alternative which has the possible advantage of ;; having its relative sparseness specified. +;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages)) (cp-make-coding-system ;; The base system uses arabic-iso-8bit, but that's not a MIME charset. iso-8859-6 @@ -4189,6 +4209,7 @@ Return an updated `non-iso-charset-alist'." nil ?G) (coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list +;;;###autoload(autoload-coding-system 'cp720 '(require 'code-pages)) ;; From http://www.microsoft.com/globaldev/reference/oem/720.htm (cp-make-coding-system cp720 @@ -4322,6 +4343,7 @@ Return an updated `non-iso-charset-alist'." ?\ ]) (coding-system-put 'cp720 'mime-charset nil) ; not in IANA list +;;;###autoload(autoload-coding-system 'cp1125 '(require 'code-pages)) ;; http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ibm-1125_P100-2000.ucm (cp-make-coding-system cp1125 @@ -4461,6 +4483,7 @@ Return an updated `non-iso-charset-alist'." ;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS ;; codepage. Table at ;; <URL:http://czyborra.com/charsets/bulgarian-mik.txt.gz>. +;;;###autoload(autoload-coding-system 'mik '(require 'code-pages)) (cp-make-coding-system mik [?Ð ?Б ?Ð’ ?Г ?Д ?Е ?Ж ?З ?И ?Й ?К ?Л ?Ðœ ?Ð ?О ?П ?Ð ?С ?Т ?У ?Ф ?Ð¥ ?Ц diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el index 46193d24d2c..1d0d50b01ac 100644 --- a/lisp/international/isearch-x.el +++ b/lisp/international/isearch-x.el @@ -98,9 +98,9 @@ (defun isearch-process-search-multibyte-characters (last-char) (if (eq this-command 'isearch-printing-char) (let ((overriding-terminal-local-map nil) - (prompt (concat (isearch-message-prefix))) + (prompt (isearch-message-prefix)) (minibuffer-local-map isearch-minibuffer-local-map) - str) + str junk-hist) (if isearch-input-method-function (let (;; Let input method work rather tersely. (input-method-verbose-flag nil)) @@ -108,8 +108,8 @@ (cons 'with-input-method (cons last-char unread-command-events)) ;; Inherit current-input-method in a minibuffer. - str (read-string prompt isearch-message nil nil t)) - (if (not str) + str (read-string prompt isearch-message 'junk-hist nil t)) + (if (or (not str) (< (length str) (length isearch-message))) ;; All inputs were deleted while the input method ;; was working. (setq str "") @@ -124,7 +124,7 @@ (setq unread-command-events (cons 'with-keyboard-coding (cons last-char unread-command-events)) - str (read-string prompt))) + str (read-string prompt nil 'junk-hist))) (if (and str (> (length str) 0)) (let ((unread-command-events nil)) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index e9c22a47d8e..336ec40325d 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -33,6 +33,9 @@ (defvar dos-codepage) (autoload 'widget-value "wid-edit")) +(defvar mac-system-coding-system) +(defvar mac-system-locale) + ;;; MULE related key bindings and menus. (defvar mule-keymap (make-sparse-keymap) @@ -820,7 +823,7 @@ returned without any user interaction. See also the command `prefer-coding-system'. However, the user is queried if the chosen coding system is -inconsistent with what would be selected by `set-auto-coding' from +inconsistent with what would be selected by `find-auto-coding' from coding cookies &c. if the contents of the region were read from a file. (That could lead to data corruption in a file subsequently re-visited and edited.) @@ -850,7 +853,33 @@ and TO is ignored." (not (listp default-coding-system))) (setq default-coding-system (list default-coding-system))) - (let ((no-other-defaults nil)) + (let ((no-other-defaults nil) + auto-cs) + (unless (or (stringp from) find-file-literally) + ;; Find an auto-coding that is specified for the the current + ;; buffer and file from the region FROM and TO. + (save-excursion + (save-restriction + (widen) + (goto-char from) + (setq auto-cs (find-auto-coding (or file buffer-file-name "") + (- to from))) + (if auto-cs + (if (coding-system-p (car auto-cs)) + (setq auto-cs (car auto-cs)) + (display-warning + :warning + (format "\ +Invalid coding system `%s' is specified +for the current buffer/file by the %s. +It is highly recommended to fix it before writing to a file." + (car auto-cs) + (if (eq (cdr auto-cs) :coding) ":coding tag" + (format "variable `%s'" (cdr auto-cs))))) + (or (yes-or-no-p "Really proceed with writing? ") + (error "Save aborted")) + (setq auto-cs nil)))))) + (if (eq (car default-coding-system) t) (setq no-other-defaults t default-coding-system (cdr default-coding-system))) @@ -860,6 +889,15 @@ and TO is ignored." (mapcar (function (lambda (x) (cons x (coding-system-base x)))) default-coding-system)) + (if (and auto-cs (not no-other-defaults)) + ;; If the file has a coding cookie, try to use it before anything + ;; else (i.e. before default-coding-system which will typically come + ;; from file-coding-system-alist). + (let ((base (coding-system-base auto-cs))) + (or (memq base '(nil undecided)) + (rassq base default-coding-system) + (push (cons auto-cs base) default-coding-system)))) + ;; From now on, the list of defaults is reversed. (setq default-coding-system (nreverse default-coding-system)) @@ -893,56 +931,49 @@ and TO is ignored." (coding-system-get preferred 'mime-charset) (not (rassq base default-coding-system)) (push (cons preferred base) - default-coding-system))))) - - (if select-safe-coding-system-accept-default-p - (setq accept-default-p select-safe-coding-system-accept-default-p)) - - (let ((codings (find-coding-systems-region from to)) - (coding-system nil) - safe rejected unsafe) - (if (eq (car codings) 'undecided) - ;; Any coding system is ok. - (setq coding-system t) - ;; Classify the defaults into safe, rejected, and unsafe. - (dolist (elt default-coding-system) - (if (memq (cdr elt) codings) - (if (and (functionp accept-default-p) - (not (funcall accept-default-p (cdr elt)))) - (push (car elt) rejected) - (push (car elt) safe)) - (push (car elt) unsafe))) - (if safe - (setq coding-system (car safe)))) - - ;; If all the defaults failed, ask a user. - (when (not coding-system) - (setq coding-system (select-safe-coding-system-interactively - from to codings unsafe rejected (car codings)))) - - (if (vectorp (coding-system-eol-type coding-system)) - (let ((eol (coding-system-eol-type buffer-file-coding-system))) - (if (numberp eol) - (setq coding-system - (coding-system-change-eol-conversion coding-system eol))))) - - (if (eq coding-system t) - (setq coding-system buffer-file-coding-system)) - ;; Check we're not inconsistent with what `coding:' spec &c would - ;; give when file is re-read. - ;; But don't do this if we explicitly ignored the cookie - ;; by using `find-file-literally'. - (unless (or (stringp from) - find-file-literally - (and coding-system - (memq (coding-system-type coding-system) '(0 5)))) - (let ((auto-cs (save-excursion - (save-restriction - (widen) - (narrow-to-region from to) - (goto-char (point-min)) - (set-auto-coding (or file buffer-file-name "") - (buffer-size)))))) + default-coding-system)))) + + (if select-safe-coding-system-accept-default-p + (setq accept-default-p select-safe-coding-system-accept-default-p)) + + (let ((codings (find-coding-systems-region from to)) + (coding-system nil) + safe rejected unsafe) + (if (eq (car codings) 'undecided) + ;; Any coding system is ok. + (setq coding-system t) + ;; Classify the defaults into safe, rejected, and unsafe. + (dolist (elt default-coding-system) + (if (memq (cdr elt) codings) + (if (and (functionp accept-default-p) + (not (funcall accept-default-p (cdr elt)))) + (push (car elt) rejected) + (push (car elt) safe)) + (push (car elt) unsafe))) + (if safe + (setq coding-system (car safe)))) + + ;; If all the defaults failed, ask a user. + (when (not coding-system) + (setq coding-system (select-safe-coding-system-interactively + from to codings unsafe rejected (car codings)))) + + (if (vectorp (coding-system-eol-type coding-system)) + (let ((eol (coding-system-eol-type buffer-file-coding-system))) + (if (numberp eol) + (setq coding-system + (coding-system-change-eol-conversion coding-system eol))))) + + (if (eq coding-system t) + (setq coding-system buffer-file-coding-system)) + ;; Check we're not inconsistent with what `coding:' spec &c would + ;; give when file is re-read. + ;; But don't do this if we explicitly ignored the cookie + ;; by using `find-file-literally'. + (when (and auto-cs + (not (and + coding-system + (memq (coding-system-type coding-system) '(0 5))))) ;; Merge coding-system and auto-cs as far as possible. (if (not coding-system) (setq coding-system auto-cs) @@ -974,8 +1005,8 @@ and TO is ignored." (format "Selected encoding %s disagrees with \ %s specified by file contents. Really save (else edit coding cookies \ and try again)? " coding-system auto-cs)) - (error "Save aborted"))))) - coding-system)) + (error "Save aborted")))) + coding-system))) (setq select-safe-coding-system-function 'select-safe-coding-system) @@ -999,10 +1030,19 @@ it asks the user to select a proper coding system." ;; We should never use no-conversion for outgoing mail. (setq coding nil)) (if (fboundp select-safe-coding-system-function) - (funcall select-safe-coding-system-function - (point-min) (point-max) coding - (function (lambda (x) (coding-system-get x 'mime-charset)))) - coding))) + (setq coding + (funcall select-safe-coding-system-function + (point-min) (point-max) coding + (function (lambda (x) + (coding-system-get x 'mime-charset)))))) + (if coding + ;; Be sure to use LF for end-of-line. + (setq coding (coding-system-change-eol-conversion coding 'unix)) + ;; No coding system is decided. Usually this is the case that + ;; the current buffer contains only ASCII. So, we hope + ;; iso-8859-1 works. + (setq coding 'iso-8859-1-unix)) + coding)) ;;; Language support stuff. @@ -2410,12 +2450,15 @@ See also `locale-charset-language-names', `locale-language-names', (= 0 (length locale))) ; nil or empty string (setq locale (server-getenv (pop vars)))))) - (unless (or locale (not (fboundp 'mac-get-preference))) - (setq locale (mac-get-preference "AppleLocale")) - (unless locale - (let ((languages (mac-get-preference "AppleLanguages"))) - (unless (= (length languages) 0) ; nil or empty vector - (setq locale (aref languages 0)))))) + (unless locale + ;; The two tests are kept separate so the byte-compiler sees + ;; that mac-get-preference is only called after checking its existence. + (when (fboundp 'mac-get-preference) + (setq locale (mac-get-preference "AppleLocale")) + (unless locale + (let ((languages (mac-get-preference "AppleLanguages"))) + (unless (= (length languages) 0) ; nil or empty vector + (setq locale (aref languages 0))))))) (unless (or locale (not (boundp 'mac-system-locale))) (setq locale mac-system-locale)) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 0c7c6f84480..aea8e094714 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1628,8 +1628,8 @@ This is used for loading and byte-compiling Emacs Lisp files.") (setq alist (cdr alist)))) coding-system)) -(defun set-auto-coding (filename size) - "Return coding system for a file FILENAME of which SIZE bytes follow point. +(defun find-auto-coding (filename size) + "Find a coding system for a file FILENAME of which SIZE bytes follow point. These bytes should include at least the first 1k of the file and the last 3k of the file, but the middle may be omitted. @@ -1643,12 +1643,21 @@ contents of the current buffer following point against succeed, it checks to see if any function in `auto-coding-functions' gives a match. -The return value is the specified coding system, or nil if nothing is -specified. +If a coding system is specifed, the return value is a +cons (CODING . SOURCE), where CODING is the specified coding +system and SOURCE is a symbol `auto-coding-alist', +`auto-coding-regexp-alist', `coding:', or `auto-coding-functions' +indicating by what CODING is specified. Note that the validity +of CODING is not checked; it's callers responsibility to check +it. + +If nothing is specified, the return value is nil. The variable `set-auto-coding-function' (which see) is set to this function by default." - (or (auto-coding-alist-lookup filename) + (or (let ((coding-system (auto-coding-alist-lookup filename))) + (if coding-system + (cons coding-system 'auto-coding-alist))) ;; Try using `auto-coding-regexp-alist'. (save-excursion (let ((alist auto-coding-regexp-alist) @@ -1658,7 +1667,8 @@ function by default." (when (re-search-forward regexp (+ (point) size) t) (setq coding-system (cdr (car alist))))) (setq alist (cdr alist))) - coding-system)) + (if coding-system + (cons coding-system 'auto-coding-regexp-alist)))) (let* ((case-fold-search t) (head-start (point)) (head-end (+ head-start (min size 1024))) @@ -1692,9 +1702,7 @@ function by default." (re-search-forward "\\(.*;\\)?[ \t]*coding:[ \t]*\\([^ ;]+\\)" head-end t)) - (setq coding-system (intern (match-string 2))) - (or (coding-system-p coding-system) - (setq coding-system nil))))) + (setq coding-system (intern (match-string 2)))))) ;; If no coding: tag in the head, check the tail. ;; Here we must pay attention to the case that the end-of-line @@ -1735,10 +1743,9 @@ function by default." (setq coding-system 'raw-text)) (when (and (not coding-system) (re-search-forward re-coding tail-end t)) - (setq coding-system (intern (match-string 1))) - (or (coding-system-p coding-system) - (setq coding-system nil)))))) - coding-system) + (setq coding-system (intern (match-string 1))))))) + (if coding-system + (cons coding-system :coding))) ;; Finally, try all the `auto-coding-functions'. (let ((funcs auto-coding-functions) (coding-system nil)) @@ -1748,7 +1755,16 @@ function by default." (goto-char (point-min)) (funcall (pop funcs) size)) (error nil)))) - coding-system))) + (if coding-system + (cons coding-system 'auto-coding-functions))))) + +(defun set-auto-coding (filename size) + "Return coding system for a file FILENAME of which SIZE bytes follow point. +See `find-auto-coding' for how the coding system is found. +Return nil if an invalid coding system is found." + (let ((found (find-auto-coding filename size))) + (if (and found (coding-system-p (car found))) + (car found)))) (setq set-auto-coding-function 'set-auto-coding) diff --git a/lisp/isearch.el b/lisp/isearch.el index e0c02f3ebab..df868e7abfc 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1,7 +1,7 @@ ;;; isearch.el --- incremental search minor mode -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999, -;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu> ;; Maintainer: FSF @@ -122,8 +122,8 @@ a tab, a carriage return (control-M), a newline, and `]+'." (defcustom search-invisible 'open "If t incremental search can match hidden text. -nil means don't match invisible text. -If the value is `open', if the text matched is made invisible by +A nil value means don't match invisible text. +When the value is `open', if the text matched is made invisible by an overlay having an `invisible' property and that overlay has a property `isearch-open-invisible', then incremental search will show the contents. \(This applies when using `outline.el' and `hideshow.el'.) @@ -154,7 +154,12 @@ command history." "Function(s) to call after starting up an incremental search.") (defvar isearch-mode-end-hook nil - "Function(s) to call after terminating an incremental search.") + "Function(s) to call after terminating an incremental search. +When these functions are called, `isearch-mode-end-hook-quit' +is non-nil if the user quit the search.") + +(defvar isearch-mode-end-hook-quit nil + "Non-nil while running `isearch-mode-end-hook' if user quit the search.") (defvar isearch-wrap-function nil "Function to call to wrap the search when search is failed. @@ -183,10 +188,10 @@ to the search status stack.") (defvar search-ring-yank-pointer nil "Index in `search-ring' of last string reused. -nil if none yet.") +It is nil if none yet.") (defvar regexp-search-ring-yank-pointer nil "Index in `regexp-search-ring' of last string reused. -nil if none yet.") +It is nil if none yet.") (defcustom search-ring-update nil "*Non-nil if advancing or retreating in the search ring should cause search. @@ -205,7 +210,7 @@ Default value, nil, means edit the string instead." '((((class color) (min-colors 88) (background light)) ;; The background must not be too dark, for that means ;; the character is hard to see when the cursor is there. - (:background "magenta2" :foreground "lightskyblue1")) + (:background "magenta3" :foreground "lightskyblue1")) (((class color) (min-colors 88) (background dark)) (:background "palevioletred2" :foreground "brown4")) (((class color) (min-colors 16)) @@ -241,22 +246,25 @@ If this is nil, extra highlighting can be \"manually\" removed with \\[lazy-highlight-cleanup]." :type 'boolean :group 'lazy-highlight) -(defvaralias 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup) -(make-obsolete-variable 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup "22.1") +(define-obsolete-variable-alias 'isearch-lazy-highlight-cleanup + 'lazy-highlight-cleanup + "22.1") (defcustom lazy-highlight-initial-delay 0.25 "*Seconds to wait before beginning to lazily highlight all matches." :type 'number :group 'lazy-highlight) -(defvaralias 'isearch-lazy-highlight-initial-delay 'lazy-highlight-initial-delay) -(make-obsolete-variable 'isearch-lazy-highlight-initial-delay 'lazy-highlight-initial-delay "22.1") +(define-obsolete-variable-alias 'isearch-lazy-highlight-initial-delay + 'lazy-highlight-initial-delay + "22.1") (defcustom lazy-highlight-interval 0 ; 0.0625 "*Seconds between lazily highlighting successive matches." :type 'number :group 'lazy-highlight) -(defvaralias 'isearch-lazy-highlight-interval 'lazy-highlight-interval) -(make-obsolete-variable 'isearch-lazy-highlight-interval 'lazy-highlight-interval "22.1") +(define-obsolete-variable-alias 'isearch-lazy-highlight-interval + 'lazy-highlight-interval + "22.1") (defcustom lazy-highlight-max-at-a-time 20 "*Maximum matches to highlight at a time (for `lazy-highlight'). @@ -266,8 +274,9 @@ A value of nil means highlight all matches." :type '(choice (const :tag "All" nil) (integer :tag "Some")) :group 'lazy-highlight) -(defvaralias 'isearch-lazy-highlight-max-at-a-time 'lazy-highlight-max-at-a-time) -(make-obsolete-variable 'isearch-lazy-highlight-max-at-a-time 'lazy-highlight-max-at-a-time "22.1") +(define-obsolete-variable-alias 'isearch-lazy-highlight-max-at-a-time + 'lazy-highlight-max-at-a-time + "22.1") (defface lazy-highlight '((((class color) (min-colors 88) (background light)) @@ -283,8 +292,9 @@ A value of nil means highlight all matches." :group 'lazy-highlight) (put 'isearch-lazy-highlight-face 'face-alias 'lazy-highlight) (defvar lazy-highlight-face 'lazy-highlight) -(defvaralias 'isearch-lazy-highlight-face 'lazy-highlight-face) -(make-obsolete-variable 'isearch-lazy-highlight-face 'lazy-highlight-face "22.1") +(define-obsolete-variable-alias 'isearch-lazy-highlight-face + 'lazy-highlight-face + "22.1") ;; Define isearch-mode keymap. @@ -307,12 +317,12 @@ A value of nil means highlight all matches." ;; We need these explicit definitions because, in a dense keymap, ;; the binding for t does not affect characters. ;; We use a dense keymap to save space. - (while (< i ?\ ) + (while (< i ?\s) (define-key map (make-string 1 i) 'isearch-other-control-char) (setq i (1+ i))) ;; Single-byte printing chars extend the search string by default. - (setq i ?\ ) + (setq i ?\s) (while (< i 256) (define-key map (vector i) 'isearch-printing-char) (setq i (1+ i))) @@ -356,13 +366,6 @@ A value of nil means highlight all matches." (define-key map "\M-\C-y" 'isearch-yank-char) (define-key map "\C-y" 'isearch-yank-line) - ;; Define keys for regexp chars * ? } |. - ;; Nothing special for + because it matches at least once. - (define-key map "*" 'isearch-*-char) - (define-key map "?" 'isearch-*-char) - (define-key map "}" 'isearch-}-char) - (define-key map "|" 'isearch-|-char) - ;; Turned off because I find I expect to get the global definition--rms. ;; ;; Instead bind C-h to special help command for isearch-mode. ;; (define-key map "\C-h" 'isearch-mode-help) @@ -533,7 +536,7 @@ Type \\[isearch-quote-char] to quote control character to search for it. Type \\[isearch-query-replace] to start `query-replace' with string to\ replace from last search string. Type \\[isearch-query-replace-regexp] to start `query-replace-regexp'\ - with string to replace from last search string.. + with string to replace from last search string. Type \\[isearch-toggle-case-fold] to toggle search case-sensitivity. Type \\[isearch-toggle-regexp] to toggle regular-expression mode. @@ -744,6 +747,12 @@ is treated as a regexp. See \\[isearch-forward] for more info." (setq disable-point-adjustment t)) (defun isearch-done (&optional nopush edit) + "Exit Isearch mode. +For successful search, pass no args. +For a failing search, NOPUSH is t. +For going to the minibuffer to edit the search string, +NOPUSH is t and EDIT is t." + (if isearch-resume-in-command-history (let ((command `(isearch-resume ,isearch-string ,isearch-regexp ,isearch-word ,isearch-forward @@ -795,7 +804,8 @@ is treated as a regexp. See \\[isearch-forward] for more info." ;; Update the ring data. (isearch-update-ring isearch-string isearch-regexp)) - (run-hooks 'isearch-mode-end-hook) + (let ((isearch-mode-end-hook-quit (and nopush (not edit)))) + (run-hooks 'isearch-mode-end-hook)) ;; If there was movement, mark the starting position. ;; Maybe should test difference between and set mark iff > threshold. @@ -1062,7 +1072,11 @@ If first char entered is \\[isearch-yank-word-or-char], then do word search inst (if isearch-nonincremental (progn ;; (sit-for 1) ;; needed if isearch-done does: (message "") - (isearch-done)))) + (isearch-done) + ;; The search done message is confusing when the string + ;; is empty, so erase it. + (if (equal isearch-string "") + (message ""))))) (quit ; handle abort-recursive-edit (isearch-abort) ;; outside of let to restore outside global values @@ -1137,7 +1151,8 @@ Use `isearch-exit' to quit without signaling." (funcall isearch-wrap-function) (goto-char (if isearch-forward (point-min) (point-max))))))) ;; C-s in reverse or C-r in forward, change direction. - (setq isearch-forward (not isearch-forward))) + (setq isearch-forward (not isearch-forward) + isearch-success t)) (setq isearch-barrier (point)) ; For subsequent \| if regexp. @@ -1404,14 +1419,14 @@ might return the position of the end of the line." Respects \\[isearch-repeat-forward] and \\[isearch-repeat-backward] by stopping at `isearch-barrier' as needed. -Do nothing if a backslash is escaping the liberalizing character. If -WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|). +Do nothing if a backslash is escaping the liberalizing character. +If WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|). -Do nothing if regexp has recently been invalid unless optional ALLOW-INVALID -non-nil. +Do nothing if regexp has recently been invalid unless optional +ALLOW-INVALID non-nil. -If optional TO-BARRIER non-nil, ignore previous matches and go exactly to the -barrier." +If optional TO-BARRIER non-nil, ignore previous matches and go exactly +to the barrier." ;; (eq (not a) (not b)) makes all non-nil values equivalent (when (and isearch-regexp (eq (not (isearch-backslash isearch-string)) (not want-backslash)) @@ -1457,26 +1472,7 @@ barrier." (goto-char (if isearch-forward (max last-other-end isearch-barrier) (min last-other-end isearch-barrier))) - (setq isearch-adjusted t)))))) - (isearch-process-search-char last-command-char)) - -;; * and ? are special when not preceded by \. -(defun isearch-*-char () - "Maybe back up to handle * and ? specially in regexps." - (interactive) - (isearch-fallback nil)) - -;; } is special when it is preceded by \. -(defun isearch-}-char () - "Handle \\} specially in regexps." - (interactive) - (isearch-fallback t t)) - -;; | is special when it is preceded by \. -(defun isearch-|-char () - "If in regexp search, jump to the barrier unless in a group." - (interactive) - (isearch-fallback t nil t)) + (setq isearch-adjusted t))))))) (defun isearch-unread-key-sequence (keylist) "Unread the given key-sequence KEYLIST. @@ -1672,7 +1668,7 @@ Isearch mode." ;; directly to avoid the input method and keyboard ;; coding system translating it. (if (and (integerp key) - (>= key ?\ ) (/= key 127) (< key 256)) + (>= key ?\s) (/= key 127) (< key 256)) (progn (isearch-process-search-char key) (setq keylist (cdr keylist))) @@ -1764,7 +1760,7 @@ Isearch mode." ;; Assume character codes 0200 - 0377 stand for characters in some ;; single-byte character set, and convert them to Emacs ;; characters. - (if (and isearch-regexp (= char ?\ )) + (if (and isearch-regexp (= char ?\s)) (if (subregexp-context-p isearch-string (length isearch-string)) (isearch-process-search-string "[ ]" " ") (isearch-process-search-char char)) @@ -1775,17 +1771,17 @@ Isearch mode." (isearch-process-search-char char)))) (defun isearch-return-char () - "Convert return into newline for incremental search. -Obsolete." + "Convert return into newline for incremental search." (interactive) (isearch-process-search-char ?\n)) +(make-obsolete 'isearch-return-char 'isearch-printing-char) (defun isearch-printing-char () "Add this ordinary printing character to the search string and search." (interactive) (let ((char last-command-char)) (if (= char ?\S-\ ) - (setq char ?\ )) + (setq char ?\s)) (if (and enable-multibyte-characters (>= char ?\200) (<= char ?\377)) @@ -1797,6 +1793,14 @@ Obsolete." (isearch-process-search-char char))))) (defun isearch-process-search-char (char) + ;; * and ? are special in regexps when not preceded by \. + ;; } and | are special in regexps when preceded by \. + ;; Nothing special for + because it matches at least once. + (cond + ((memq char '(?* ??)) (isearch-fallback nil)) + ((eq char ?\}) (isearch-fallback t t)) + ((eq char ?|) (isearch-fallback t nil t))) + ;; Append the char to the search string, update the message and re-search. (isearch-process-search-string (char-to-string char) @@ -2207,7 +2211,7 @@ since they have special meaning in a regexp." (defun isearch-text-char-description (c) (cond - ((< c ?\ ) (format "^%c" (+ c 64))) + ((< c ?\s) (format "^%c" (+ c 64))) ((= c ?\^?) "^?") (t (char-to-string c)))) @@ -2294,8 +2298,9 @@ is nil. This function is called when exiting an incremental search if (cancel-timer isearch-lazy-highlight-timer) (setq isearch-lazy-highlight-timer nil))) -(defalias 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup) -(make-obsolete 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup "22.1") +(define-obsolete-function-alias 'isearch-lazy-highlight-cleanup + 'lazy-highlight-cleanup + "22.1") (defun isearch-lazy-highlight-new-loop (&optional beg end) "Cleanup any previous `lazy-highlight' loop and begin a new one. diff --git a/lisp/isearchb.el b/lisp/isearchb.el index 3665311aaf6..0e7a20a57ec 100644 --- a/lisp/isearchb.el +++ b/lisp/isearchb.el @@ -1,6 +1,6 @@ ;;; isearchb --- a marriage between iswitchb and isearch -;; Copyright (C) 2004 John Wiegley +;; Copyright (C) 2004, 2005 John Wiegley ;; Author: John Wiegley <johnw@gnu.org> ;; Created: 16 Apr 2004 diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 408b17c9332..c2e08d3a466 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -1,7 +1,7 @@ ;;; iswitchb.el --- switch between buffers using substrings -;; Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stephen Eglen <stephen@gnu.org> ;; Maintainer: Stephen Eglen <stephen@gnu.org> diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d98e8791124..2f8fcba91d1 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -1,6 +1,7 @@ ;;; jit-lock.el --- just-in-time fontification -;; Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Keywords: faces files diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index 36775a25470..1967a5d6c1d 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el @@ -1,6 +1,7 @@ ;;; jka-cmpr-hook.el --- preloaded code to enable jka-compr.el -;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: jka@ece.cmu.edu (Jay K. Adams) ;; Maintainer: FSF diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index db18903e21f..b25d3865668 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el @@ -1,6 +1,7 @@ ;;; jka-compr.el --- reading/writing/loading compressed files -;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: jka@ece.cmu.edu (Jay K. Adams) ;; Maintainer: FSF diff --git a/lisp/kermit.el b/lisp/kermit.el index 1b22df1dbe2..73cac8f3bc8 100644 --- a/lisp/kermit.el +++ b/lisp/kermit.el @@ -1,6 +1,6 @@ ;;; kermit.el --- additions to shell mode for use with kermit -;; Copyright (C) 1988 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jeff Norden <jeff@colgate.csnet> ;; Maintainer: FSF diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 28e2c17c2a8..6bb1ab6f58d 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -1,6 +1,6 @@ ;;; kmacro.el --- enhanced keyboard macros -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard convenience diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el index e825bc62df4..fb70b2641d0 100644 --- a/lisp/language/ethio-util.el +++ b/lisp/language/ethio-util.el @@ -31,6 +31,9 @@ ;;; Code: +(defvar rmail-current-message) +(defvar rmail-message-vector) + ;; Information for exiting Ethiopic environment. (defvar exit-ethiopic-environment-data nil) @@ -432,7 +435,7 @@ The variable `ethio-primary-language' specifies the primary language and `ethio-secondary-language' specifies the secondary. If the 3rd parameter SECONDARY is given and non-nil, assume the region -begins begins with the secondary language; otherwise with the primary +begins with the secondary language; otherwise with the primary language. If the 4th parameter FORCE is given and non-nil, perform conversion diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el index 661ed75b513..2fabc56616d 100644 --- a/lisp/language/thai-util.el +++ b/lisp/language/thai-util.el @@ -28,6 +28,8 @@ ;;; Code: +(defvar thai-auto-composition-mode) + ;; Setting information of Thai characters. (defconst thai-category-table (make-category-table)) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 5c58dc001d0..ef54a899c64 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -4,7 +4,7 @@ ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" -;;;;;; "play/5x5.el" (17107 37380)) +;;;;;; "play/5x5.el" (17178 22152)) ;;; Generated autoloads from play/5x5.el (autoload (quote 5x5) "5x5" "\ @@ -64,7 +64,7 @@ should return a grid vector array that is the new solution. ;;;*** ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload (quote ada-add-extensions) "ada-mode" "\ @@ -125,7 +125,7 @@ If you use ada-xref.el: ;;;*** ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload (quote ada-header) "ada-stmt" "\ @@ -136,7 +136,7 @@ Insert a descriptive header at the top of the file. ;;;*** ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload (quote ada-find-file) "ada-xref" "\ @@ -151,7 +151,7 @@ Completion is available. ;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry ;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address ;;;;;; add-log-full-name add-log-current-defun-function) "add-log" -;;;;;; "add-log.el" (17107 37380)) +;;;;;; "add-log.el" (17178 22141)) ;;; Generated autoloads from add-log.el (defvar add-log-current-defun-function nil "\ @@ -168,7 +168,7 @@ This defaults to the value returned by the function `user-full-name'.") (custom-autoload (quote add-log-full-name) "add-log") (defvar add-log-mailing-address nil "\ -*Electronic mail addresses of user, for inclusion in ChangeLog headers. +*Email addresses of user, for inclusion in ChangeLog headers. This defaults to the value of `user-mail-address'. In addition to being a simple string, this value can also be a list. All elements will be recognized as referring to the same user; when creating a new @@ -270,7 +270,7 @@ Has a preference of looking backwards. \(fn)" nil nil) (autoload (quote change-log-merge) "add-log" "\ -Merge the contents of ChangeLog file OTHER-LOG with this buffer. +Merge the contents of change log file OTHER-LOG with this buffer. Both must be found in Change Log mode (since the merging depends on the appropriate motion commands). OTHER-LOG can be either a file name or a buffer. @@ -288,8 +288,8 @@ Fix any old-style date entries in the current log file to default format. ;;;*** ;;;### (autoloads (defadvice ad-add-advice ad-default-compilation-action -;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (17107 -;;;;;; 37381)) +;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action (quote warn) "\ @@ -388,7 +388,7 @@ See Info node `(elisp)Advising Functions' for comprehensive documentation. ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule ;;;;;; align-highlight-rule align-current align-entire align-regexp -;;;;;; align) "align" "align.el" (17107 37382)) +;;;;;; align) "align" "align.el" (17178 22141)) ;;; Generated autoloads from align.el (autoload (quote align) "align" "\ @@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning as it goes. ;;;*** -;;;### (autoloads (allout-init) "allout" "allout.el" (17107 37380)) +;;;### (autoloads (allout-init) "allout" "allout.el" (17178 22141)) ;;; Generated autoloads from allout.el (autoload (quote allout-init) "allout" "\ @@ -513,7 +513,7 @@ the following two lines in your Emacs init file: ;;;*** ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" -;;;;;; "net/ange-ftp.el" (17107 37379)) +;;;;;; "net/ange-ftp.el" (17178 22151)) ;;; Generated autoloads from net/ange-ftp.el (defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir)) @@ -535,7 +535,7 @@ Not documented ;;;*** ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) -;;;;;; "animate" "play/animate.el" (17107 37380)) +;;;;;; "animate" "play/animate.el" (17178 22152)) ;;; Generated autoloads from play/animate.el (autoload (quote animate-string) "animate" "\ @@ -563,7 +563,7 @@ You can specify the one's name by NAME; the default value is \"Sarah\". ;;;*** ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) -;;;;;; "ansi-color" "ansi-color.el" (17107 37380)) +;;;;;; "ansi-color" "ansi-color.el" (17178 22141)) ;;; Generated autoloads from ansi-color.el (autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\ @@ -589,7 +589,7 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) -;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17107 37381)) +;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17178 22152)) ;;; Generated autoloads from progmodes/antlr-mode.el (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\ @@ -628,7 +628,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add ;;;;;; appt-display-diary appt-display-duration appt-display-mode-line ;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time -;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17107 37380)) +;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17178 20480)) ;;; Generated autoloads from calendar/appt.el (defvar appt-issue-message t "\ @@ -716,7 +716,7 @@ ARG is positive, otherwise off. ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property ;;;;;; apropos-command apropos-variable) "apropos" "apropos.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22141)) ;;; Generated autoloads from apropos.el (autoload (quote apropos-variable) "apropos" "\ @@ -770,8 +770,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17107 -;;;;;; 37383)) +;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17178 +;;;;;; 22141)) ;;; Generated autoloads from arc-mode.el (autoload (quote archive-mode) "arc-mode" "\ @@ -791,7 +791,7 @@ archive. ;;;*** -;;;### (autoloads (array-mode) "array" "array.el" (17107 37382)) +;;;### (autoloads (array-mode) "array" "array.el" (17178 22141)) ;;; Generated autoloads from array.el (autoload (quote array-mode) "array" "\ @@ -804,7 +804,7 @@ NOT recognized as integers or real numbers. The array MUST reside at the top of the buffer. TABs are not respected, and may be converted into spaces at any time. -Setting the variable 'array-respect-tabs to non-nil will prevent TAB conversion, +Setting the variable `array-respect-tabs' to non-nil will prevent TAB conversion, but will cause many functions to give errors if they encounter one. Upon entering array mode, you will be prompted for the values of @@ -862,8 +862,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17178 +;;;;;; 22154)) ;;; Generated autoloads from textmodes/artist.el (autoload (quote artist-mode) "artist" "\ @@ -1068,8 +1068,8 @@ Keymap summary ;;;*** -;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload (quote asm-mode) "asm-mode" "\ @@ -1097,7 +1097,7 @@ Special commands: ;;;*** ;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from obsolete/auto-show.el (defvar auto-show-mode nil "\ @@ -1113,7 +1113,7 @@ This command is obsolete. ;;;*** ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22141)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ @@ -1170,7 +1170,7 @@ This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1' ;;;*** ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/autoconf.el (autoload (quote autoconf-mode) "autoconf" "\ @@ -1181,7 +1181,7 @@ Major mode for editing Autoconf configure.in files. ;;;*** ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) -;;;;;; "autoinsert" "autoinsert.el" (17107 37380)) +;;;;;; "autoinsert" "autoinsert.el" (17178 22141)) ;;; Generated autoloads from autoinsert.el (autoload (quote auto-insert) "autoinsert" "\ @@ -1221,7 +1221,7 @@ insert a template for the file depending on the mode of the buffer. ;;;### (autoloads (batch-update-autoloads update-directory-autoloads ;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22143)) ;;; Generated autoloads from emacs-lisp/autoload.el (autoload (quote update-file-autoloads) "autoload" "\ @@ -1256,7 +1256,7 @@ Calls `update-directory-autoloads' on the command line arguments. ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode ;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) -;;;;;; "autorevert" "autorevert.el" (17107 37380)) +;;;;;; "autorevert" "autorevert.el" (17178 22141)) ;;; Generated autoloads from autorevert.el (autoload (quote auto-revert-mode) "autorevert" "\ @@ -1326,7 +1326,7 @@ Use `auto-revert-mode' to revert a particular buffer. ;;;*** ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid" -;;;;;; "avoid.el" (17107 37380)) +;;;;;; "avoid.el" (17178 22141)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1367,7 +1367,7 @@ definition of \"random distance\".) ;;;*** ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22143)) ;;; Generated autoloads from emacs-lisp/backquote.el (autoload (quote backquote) "backquote" "\ @@ -1392,7 +1392,7 @@ Vectors work just like lists. Nested backquotes are permitted. ;;;*** ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el" -;;;;;; (17107 37398)) +;;;;;; (17178 22141)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1425,7 +1425,7 @@ seconds. ;;;*** ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run) -;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17107 37381)) +;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17178 22143)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload (quote benchmark-run) "benchmark" "\ @@ -1457,8 +1457,8 @@ non-interactive use see also `benchmark-run' and ;;;*** -;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17178 +;;;;;; 22154)) ;;; Generated autoloads from textmodes/bibtex.el (autoload (quote bibtex-mode) "bibtex" "\ @@ -1520,7 +1520,7 @@ if that value is non-nil. ;;;### (autoloads (binhex-decode-region binhex-decode-region-external ;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/binhex.el (defconst binhex-begin-line "^:...............................................................$") @@ -1543,8 +1543,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from play/blackbox.el (autoload (quote blackbox) "blackbox" "\ @@ -1666,7 +1666,7 @@ a reflection. ;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save ;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename ;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump -;;;;;; bookmark-set) "bookmark" "bookmark.el" (17107 37383)) +;;;;;; bookmark-set) "bookmark" "bookmark.el" (17178 22141)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-map "rb" 'bookmark-jump) (define-key ctl-x-map "rm" 'bookmark-set) @@ -1725,7 +1725,7 @@ bookmarks. See help on function `bookmark-load' for more about this. If the file pointed to by BOOKMARK no longer exists, you will be asked -if you wish to give the bookmark a new location, and bookmark-jump +if you wish to give the bookmark a new location, and `bookmark-jump' will then jump to the new location, as well as recording it in place of the old one in the permanent bookmark record. @@ -1795,8 +1795,8 @@ Saves by default in the file defined by the variable `bookmark-default-file'. With a prefix arg, save it in file FILE \(second argument). -If you are calling this from Lisp, the two arguments are PREFIX-ARG -and FILE, and if you just want it to write to the default file, then +If you are calling this from Lisp, the two arguments are PARG and +FILE, and if you just want it to write to the default file, then pass no arguments. Or pass in nil and FILE, and it will save in FILE instead. If you pass in one argument, and it is non-nil, then the user will be interactively queried for a file to save in. @@ -1856,7 +1856,7 @@ deletion, or > if it is flagged for displaying. ;;;;;; browse-url browse-url-of-region browse-url-of-dired-file ;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point ;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function) -;;;;;; "browse-url" "net/browse-url.el" (17107 37379)) +;;;;;; "browse-url" "net/browse-url.el" (17178 22151)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\ @@ -2187,8 +2187,8 @@ Default to the URL around or before point. ;;;*** -;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from play/bruce.el (autoload (quote bruce) "bruce" "\ @@ -2204,7 +2204,7 @@ Return a vector containing the lines from `bruce-phrases-file'. ;;;*** ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) -;;;;;; "bs" "bs.el" (17107 37380)) +;;;;;; "bs" "bs.el" (17178 22141)) ;;; Generated autoloads from bs.el (autoload (quote bs-cycle-next) "bs" "\ @@ -2245,8 +2245,8 @@ name of buffer configuration. ;;;*** ;;;### (autoloads (insert-text-button make-text-button insert-button -;;;;;; make-button define-button-type) "button" "button.el" (17107 -;;;;;; 37380)) +;;;;;; make-button define-button-type) "button" "button.el" (17178 +;;;;;; 22141)) ;;; Generated autoloads from button.el (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "
" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ @@ -2334,7 +2334,7 @@ Also see `make-text-button'. ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile) "bytecomp" "emacs-lisp/bytecomp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (autoload (quote byte-force-recompile) "bytecomp" "\ @@ -2426,7 +2426,7 @@ For example, invoke `emacs -batch -f batch-byte-recompile-directory .'. ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17107 37380)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17178 20480)) ;;; Generated autoloads from calendar/cal-dst.el (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t) @@ -2436,7 +2436,7 @@ For example, invoke `emacs -batch -f batch-byte-recompile-directory .'. ;;;*** ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22142)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\ @@ -2451,7 +2451,7 @@ from the cursor position. ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc ;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22142)) ;;; Generated autoloads from calc/calc.el (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\ @@ -2529,8 +2529,8 @@ Not documented ;;;*** -;;;### (autoloads (calculator) "calculator" "calculator.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (calculator) "calculator" "calculator.el" (17178 +;;;;;; 22142)) ;;; Generated autoloads from calculator.el (autoload (quote calculator) "calculator" "\ @@ -2558,7 +2558,7 @@ See the documentation for `calculator-mode' for more information. ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar ;;;;;; number-of-diary-entries view-diary-entries-initially calendar-offset) -;;;;;; "calendar" "calendar/calendar.el" (17107 37380)) +;;;;;; "calendar" "calendar/calendar.el" (17178 22143)) ;;; Generated autoloads from calendar/calendar.el (defvar calendar-offset 0 "\ @@ -3149,7 +3149,7 @@ movement commands will not work correctly.") ;;;*** ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock" -;;;;;; "gnus/canlock.el" (17107 37379)) +;;;;;; "gnus/canlock.el" (17178 22145)) ;;; Generated autoloads from gnus/canlock.el (autoload (quote canlock-insert-header) "canlock" "\ @@ -3166,9 +3166,21 @@ it fails. ;;;*** +;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" +;;;;;; (17178 22152)) +;;; Generated autoloads from progmodes/cc-engine.el + +(autoload (quote c-guess-basic-syntax) "cc-engine" "\ +Return the syntactic context of the current line. +This function does not do any hidden buffer changes. + +\(fn)" nil nil) + +;;;*** + ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload (quote c-initialize-cc-mode) "cc-mode" "\ @@ -3326,7 +3338,7 @@ Key bindings: ;;;*** ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" -;;;;;; "progmodes/cc-styles.el" (17107 37381)) +;;;;;; "progmodes/cc-styles.el" (17178 22152)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload (quote c-set-style) "cc-styles" "\ @@ -3383,7 +3395,7 @@ and exists only for compatibility reasons. ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program ;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from international/ccl.el (autoload (quote ccl-compile) "ccl" "\ @@ -3642,7 +3654,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** ;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22152)) ;;; Generated autoloads from progmodes/cfengine.el (autoload (quote cfengine-mode) "cfengine" "\ @@ -3664,7 +3676,7 @@ to the action header. ;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer ;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive ;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (autoload (quote checkdoc) "checkdoc" "\ @@ -3847,8 +3859,8 @@ checking of documentation strings. ;;;*** ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer -;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17107 -;;;;;; 37382)) +;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17178 +;;;;;; 20481)) ;;; Generated autoloads from language/china-util.el (autoload (quote decode-hz-region) "china-util" "\ @@ -3876,7 +3888,7 @@ Encode the text in the current buffer to HZ. ;;;*** ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) -;;;;;; "chistory" "chistory.el" (17107 37381)) +;;;;;; "chistory" "chistory.el" (17178 22143)) ;;; Generated autoloads from chistory.el (autoload (quote repeat-matching-complex-command) "chistory" "\ @@ -3915,7 +3927,7 @@ and runs the normal hook `command-history-hook'. ;;;*** -;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17107 37381)) +;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/cl.el (defvar custom-print-functions nil "\ @@ -3931,7 +3943,7 @@ a future Emacs interpreter will be able to use it.") ;;;*** ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload (quote common-lisp-indent-function) "cl-indent" "\ @@ -3942,7 +3954,7 @@ Not documented ;;;*** ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload (quote c-macro-expand) "cmacexp" "\ @@ -3951,8 +3963,9 @@ Normally display output in temp buffer, but prefix arg means replace the region with it. `c-macro-preprocessor' specifies the preprocessor to use. -Prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include') -if the user option `c-macro-prompt-flag' is non-nil. +Tf the user option `c-macro-prompt-flag' is non-nil +prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include'), +otherwise use `c-macro-cppflags'. Noninteractive args are START, END, SUBST. For use inside Lisp programs, see also `c-macro-expansion'. @@ -3961,16 +3974,20 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from cmuscheme.el (autoload (quote run-scheme) "cmuscheme" "\ -Run an inferior Scheme process, input and output via buffer *scheme*. +Run an inferior Scheme process, input and output via buffer `*scheme*'. If there is a process already running in `*scheme*', switch to that buffer. With argument, allows you to edit the command line (default is value -of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook' -\(after the `comint-mode-hook' is run). +of `scheme-program-name'). +If a file `~/.emacs_SCHEMENAME' exists, it is given as initial input. +Note that this may lose due to a timing error if the Scheme processor +discards input when it starts up. +Runs the hook `inferior-scheme-mode-hook' (after the `comint-mode-hook' +is run). \(Type \\[describe-mode] in the process buffer for a list of commands.) \(fn CMD)" t nil) @@ -3979,7 +3996,7 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook' ;;;*** ;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22146)) ;;; Generated autoloads from international/code-pages.el (autoload (quote cp-make-coding-system) "code-pages" "\ @@ -3991,6 +4008,23 @@ corresponding args of `make-coding-system'. If MNEMONIC isn't given, Return an updated `non-iso-charset-alist'. \(fn NAME V &optional DOC-STRING MNEMONIC)" nil (quote macro)) +(autoload-coding-system 'cp437 '(require 'code-pages)) +(autoload-coding-system 'cp737 '(require 'code-pages)) +(autoload-coding-system 'cp775 '(require 'code-pages)) +(autoload-coding-system 'cp850 '(require 'code-pages)) +(autoload-coding-system 'cp851 '(require 'code-pages)) +(autoload-coding-system 'cp852 '(require 'code-pages)) +(autoload-coding-system 'cp855 '(require 'code-pages)) +(autoload-coding-system 'cp857 '(require 'code-pages)) +(autoload-coding-system 'cp860 '(require 'code-pages)) +(autoload-coding-system 'cp861 '(require 'code-pages)) +(autoload-coding-system 'cp862 '(require 'code-pages)) +(autoload-coding-system 'cp863 '(require 'code-pages)) +(autoload-coding-system 'cp864 '(require 'code-pages)) +(autoload-coding-system 'cp865 '(require 'code-pages)) +(autoload-coding-system 'cp866 '(require 'code-pages)) +(autoload-coding-system 'cp869 '(require 'code-pages)) +(autoload-coding-system 'cp874 '(require 'code-pages)) (autoload-coding-system 'windows-1250 '(require 'code-pages)) (autoload-coding-system 'windows-1253 '(require 'code-pages)) (autoload-coding-system 'windows-1254 '(require 'code-pages)) @@ -3998,10 +4032,16 @@ Return an updated `non-iso-charset-alist'. (autoload-coding-system 'windows-1256 '(require 'code-pages)) (autoload-coding-system 'windows-1257 '(require 'code-pages)) (autoload-coding-system 'windows-1258 '(require 'code-pages)) +(autoload-coding-system 'next '(require 'code-pages)) +(autoload-coding-system 'koi8-t '(require 'code-pages)) (autoload-coding-system 'iso-8859-16 '(require 'code-pages)) +(autoload-coding-system 'iso-8859-6 '(require 'code-pages)) (autoload-coding-system 'iso-8859-10 '(require 'code-pages)) (autoload-coding-system 'iso-8859-13 '(require 'code-pages)) (autoload-coding-system 'georgian-ps '(require 'code-pages)) +(autoload-coding-system 'cp720 '(require 'code-pages)) +(autoload-coding-system 'cp1125 '(require 'code-pages)) +(autoload-coding-system 'mik '(require 'code-pages)) (autoload-coding-system 'pt154 '(require 'code-pages)) (autoload-coding-system 'iso-8859-11 '(require 'code-pages)) @@ -4009,7 +4049,7 @@ Return an updated `non-iso-charset-alist'. ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage ;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) -;;;;;; "codepage" "international/codepage.el" (17107 37380)) +;;;;;; "codepage" "international/codepage.el" (17178 20480)) ;;; Generated autoloads from international/codepage.el (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\ @@ -4068,7 +4108,7 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal. ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\ @@ -4084,7 +4124,7 @@ See also `comint-preoutput-filter-functions'. You can use `add-hook' to add functions to this list either globally or locally.") -(defvaralias (quote comint-use-prompt-regexp-instead-of-fields) (quote comint-use-prompt-regexp)) +(define-obsolete-variable-alias (quote comint-use-prompt-regexp-instead-of-fields) (quote comint-use-prompt-regexp) "22.1") (autoload (quote make-comint-in-buffer) "comint" "\ Make a Comint process NAME in BUFFER, running PROGRAM. @@ -4121,6 +4161,11 @@ See `make-comint' and `comint-exec'. \(fn PROGRAM)" t nil) +(defvar comint-file-name-prefix "" "\ +Prefix prepended to absolute file names taken from process input. +This is used by Comint's and shell's completion functions, and by shell's +directory tracking functions.") + (autoload (quote comint-redirect-send-command) "comint" "\ Send COMMAND to process in current buffer, with output to OUTPUT-BUFFER. With prefix arg ECHO, echo output in process buffer. @@ -4153,8 +4198,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** -;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from compare-w.el (autoload (quote compare-windows) "compare-w" "\ @@ -4188,13 +4233,14 @@ on third call it again advances points to the next difference and so on. ;;;*** ;;;### (autoloads (compilation-next-error-function compilation-minor-mode -;;;;;; compilation-shell-minor-mode compilation-mode compile compilation-search-path -;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) -;;;;;; "compile" "progmodes/compile.el" (17107 37381)) +;;;;;; compilation-shell-minor-mode compilation-mode compilation-start +;;;;;; compile compilation-search-path compilation-ask-about-save +;;;;;; compilation-window-height compilation-mode-hook) "compile" +;;;;;; "progmodes/compile.el" (17178 22153)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ -*List of hook functions run by `compilation-mode' (see `run-hooks').") +*List of hook functions run by `compilation-mode' (see `run-mode-hooks').") (custom-autoload (quote compilation-mode-hook) "compile") @@ -4268,13 +4314,31 @@ to a function that generates a unique name. \(fn COMMAND &optional COMINT)" t nil) +(autoload (quote compilation-start) "compile" "\ +Run compilation command COMMAND (low level interface). +If COMMAND starts with a cd command, that becomes the `default-directory'. +The rest of the arguments are optional; for them, nil means use the default. + +MODE is the major mode to set in the compilation buffer. Mode +may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'. +If NAME-FUNCTION is non-nil, call it with one argument (the mode name) +to determine the buffer name. + +If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight +the matching section of the visited source line; the default is to use the +global value of `compilation-highlight-regexp'. + +Returns the compilation buffer created. + +\(fn COMMAND &optional MODE NAME-FUNCTION HIGHLIGHT-REGEXP)" nil nil) + (autoload (quote compilation-mode) "compile" "\ Major mode for compilation log buffers. \\<compilation-mode-map>To visit the source for a line-numbered error, move point to the error message line and type \\[compile-goto-error]. To kill the compilation, type \\[kill-compilation]. -Runs `compilation-mode-hook' with `run-hooks' (which see). +Runs `compilation-mode-hook' with `run-mode-hooks' (which see). \\{compilation-mode-map} @@ -4310,7 +4374,7 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from complete.el (defvar partial-completion-mode nil "\ @@ -4347,7 +4411,7 @@ See also the variable `PC-include-file-path'. ;;;*** ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from completion.el (autoload (quote dynamic-completion-mode) "completion" "\ @@ -4360,7 +4424,7 @@ Enable dynamic word-completion. ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after ;;;;;; find-composition compose-chars decompose-string compose-string ;;;;;; decompose-region compose-region encode-composition-rule) -;;;;;; "composite" "composite.el" (17107 37380)) +;;;;;; "composite" "composite.el" (17178 22143)) ;;; Generated autoloads from composite.el (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\ @@ -4405,7 +4469,7 @@ follows (the point `*' corresponds to both reference points): (autoload (quote encode-composition-rule) "composite" "\ Encode composition rule RULE into an integer value. RULE is a cons of global and new reference point symbols -\(see reference-point-alist). +\(see `reference-point-alist'). \(fn RULE)" nil nil) @@ -4459,7 +4523,7 @@ The return value is STRING where `composition' property is put on all the characters in it. Optional 2nd and 3rd arguments START and END specify the range of -STRING to be composed. They defaults to the beginning and the end of +STRING to be composed. They default to the beginning and the end of STRING respectively. Optional 4th argument COMPONENTS, if non-nil, is a character or a @@ -4556,11 +4620,11 @@ The argument is a parameterized event of the form where N is the number of characters before point to compose, COMPONENTS, if non-nil, is the same as the argument to `compose-region' \(which see). If it is nil, `compose-chars-after' is called, -and that function find a proper rule to compose the target characters. +and that function finds a proper rule to compose the target characters. This function is intended to be used from input methods. The global keymap binds special event `compose-last-chars' to this function. Input method may generate an event (compose-last-chars N COMPONENTS) -after a sequence character events. +after a sequence of character events. \(fn ARGS)" t nil) (global-set-key [compose-last-chars] 'compose-last-chars) @@ -4581,7 +4645,7 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored. ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode ;;;;;; conf-space-mode conf-javaprop-mode conf-windows-mode conf-unix-mode -;;;;;; conf-mode) "conf-mode" "textmodes/conf-mode.el" (17107 37381)) +;;;;;; conf-mode) "conf-mode" "textmodes/conf-mode.el" (17178 22154)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload (quote conf-mode) "conf-mode" "\ @@ -4731,7 +4795,7 @@ For details see `conf-mode'. Example: ;;;*** ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) -;;;;;; "cookie1" "play/cookie1.el" (17107 37380)) +;;;;;; "cookie1" "play/cookie1.el" (17178 22152)) ;;; Generated autoloads from play/cookie1.el (autoload (quote cookie) "cookie1" "\ @@ -4763,7 +4827,7 @@ Randomly permute the elements of VECTOR (all permutations equally likely). ;;;*** ;;;### (autoloads (copyright copyright-fix-years copyright-update) -;;;;;; "copyright" "emacs-lisp/copyright.el" (17107 37381)) +;;;;;; "copyright" "emacs-lisp/copyright.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/copyright.el (autoload (quote copyright-update) "copyright" "\ @@ -4791,7 +4855,7 @@ Insert a copyright by $ORGANIZATION notice at cursor. ;;;*** ;;;### (autoloads (cperl-mode) "cperl-mode" "progmodes/cperl-mode.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/cperl-mode.el (autoload (quote cperl-mode) "cperl-mode" "\ @@ -4964,7 +5028,7 @@ or as help on variables `cperl-tips', `cperl-problems', ;;;*** ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/cpp.el (autoload (quote cpp-highlight-buffer) "cpp" "\ @@ -4983,7 +5047,7 @@ Edit display information for cpp conditionals. ;;;*** ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/crisp.el (defvar crisp-mode nil "\ @@ -5007,7 +5071,7 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise. ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload (quote completing-read-multiple) "crm" "\ @@ -5042,8 +5106,8 @@ INHERIT-INPUT-METHOD. ;;;*** -;;;### (autoloads (cua-mode) "cua-base" "emulation/cua-base.el" (17107 -;;;;;; 36868)) +;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el" +;;;;;; (17178 24780)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5058,12 +5122,33 @@ use either \\[customize] or the function `cua-mode'.") (autoload (quote cua-mode) "cua-base" "\ Toggle CUA key-binding mode. -When enabled, using shifted movement keys will activate the region (and -highlight the region using `transient-mark-mode'), and typed text replaces -the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and -paste (in addition to the normal Emacs bindings). +When enabled, using shifted movement keys will activate the +region (and highlight the region using `transient-mark-mode'), +and typed text replaces the active selection. + +Also when enabled, you can use C-z, C-x, C-c, and C-v to undo, +cut, copy, and paste in addition to the normal Emacs bindings. +The C-x and C-c keys only do cut and copy when the region is +active, so in most cases, they do not conflict with the normal +function of these prefix keys. + +If you really need to perform a command which starts with one of +the prefix keys even when the region is active, you have three +options: +- press the prefix key twice very quickly (within 0.2 seconds), +- press the prefix key and the following key within 0.2 seconds, or +- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c. + +You can customize `cua-enable-cua-keys' to completely disable the +CUA bindings, or `cua-prefix-override-inhibit-delay' to change +the prefix fallback behavior. \(fn &optional ARG)" t nil) + +(autoload (quote cua-selection-mode) "cua-base" "\ +Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. + +\(fn ARG)" t nil) (eval-after-load 'CUA-mode '(error (concat "\n\n" "CUA-mode is now part of the standard GNU Emacs distribution,\n" @@ -5076,15 +5161,15 @@ paste (in addition to the normal Emacs bindings). ;;;*** -;;;### (autoloads (customize-menu-create custom-menu-create custom-save-all -;;;;;; customize-save-customized custom-file customize-browse custom-buffer-create-other-window +;;;### (autoloads (customize-menu-create custom-menu-create customize-save-customized +;;;;;; custom-save-all custom-file customize-browse custom-buffer-create-other-window ;;;;;; custom-buffer-create customize-apropos-groups customize-apropos-faces ;;;;;; customize-apropos-options customize-apropos customize-saved ;;;;;; customize-rogue customize-customized customize-face-other-window ;;;;;; customize-face customize-changed-options customize-option-other-window ;;;;;; customize-option customize-group-other-window customize-group ;;;;;; customize-mode customize customize-save-variable customize-set-variable -;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (17107 37380)) +;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (17178 22143)) ;;; Generated autoloads from cus-edit.el (add-hook 'same-window-regexps "\\`\\*Customiz.*\\*\\'") @@ -5312,16 +5397,16 @@ and hence will not set `custom-file' to that file either.") (custom-autoload (quote custom-file) "cus-edit") -(autoload (quote customize-save-customized) "cus-edit" "\ -Save all user options which have been set in this session. - -\(fn)" t nil) - (autoload (quote custom-save-all) "cus-edit" "\ Save all customizations in `custom-file'. \(fn)" nil nil) +(autoload (quote customize-save-customized) "cus-edit" "\ +Save all user options which have been set in this session. + +\(fn)" t nil) + (autoload (quote custom-menu-create) "cus-edit" "\ Create menu for customization group SYMBOL. The menu is in a format applicable to `easy-menu-define'. @@ -5338,9 +5423,8 @@ The format is suitable for use with `easy-menu-define'. ;;;*** -;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value -;;;;;; custom-set-faces custom-declare-face) "cus-face" "cus-face.el" -;;;;;; (17107 37380)) +;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces +;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17178 22143)) ;;; Generated autoloads from cus-face.el (autoload (quote custom-declare-face) "cus-face" "\ @@ -5385,38 +5469,32 @@ COMMENT is a string comment about FACE. \(fn &rest ARGS)" nil nil) -(autoload (quote custom-theme-face-value) "cus-face" "\ -Return spec of FACE in THEME if THEME modifies FACE. -Value is nil otherwise. The association between theme and spec for FACE -is stored in FACE's property `theme-face'. The appropriate face -is retrieved using `custom-theme-value'. - -\(fn FACE THEME)" nil nil) - (autoload (quote custom-theme-reset-faces) "cus-face" "\ -Reset the value of the face to values previously defined. -Associate this setting with THEME. - -ARGS is a list of lists of the form +Reset the specs in THEME of some faces to their specs in other themes. +Each of the arguments ARGS has this form: - (FACE TO-THEME) + (FACE FROM-THEME) -This means reset FACE to its value in TO-THEME. +This means reset FACE to its value in FROM-THEME. \(fn THEME &rest ARGS)" nil nil) (autoload (quote custom-reset-faces) "cus-face" "\ -Reset the value of the face to values previously saved. -This is the setting assosiated the `user' theme. +Reset the specs of some faces to their specs in specified themes. +This creates settings in the `user' theme. + +Each of the arguments ARGS has this form: -ARGS is defined as for `custom-theme-reset-faces' + (FACE FROM-THEME) + +This means reset FACE to its value in FROM-THEME. \(fn &rest ARGS)" nil nil) ;;;*** ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22143)) ;;; Generated autoloads from cus-theme.el (autoload (quote customize-create-theme) "cus-theme" "\ @@ -5427,7 +5505,7 @@ Create a custom theme. ;;;*** ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from cvs-status.el (autoload (quote cvs-status-mode) "cvs-status" "\ @@ -5438,7 +5516,7 @@ Mode used for cvs status output. ;;;*** ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode) -;;;;;; "cwarn" "progmodes/cwarn.el" (17107 37381)) +;;;;;; "cwarn" "progmodes/cwarn.el" (17178 22153)) ;;; Generated autoloads from progmodes/cwarn.el (autoload (quote cwarn-mode) "cwarn" "\ @@ -5482,7 +5560,7 @@ in which `turn-on-cwarn-mode-if-enabled' turns it on. ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char ;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from language/cyril-util.el (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\ @@ -5511,7 +5589,7 @@ If the argument is nil, we return the display table to its standard state. ;;;*** ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from dabbrev.el (define-key esc-map "/" 'dabbrev-expand) (define-key esc-map [?\C-/] 'dabbrev-completion) @@ -5558,8 +5636,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** -;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload (quote dcl-mode) "dcl-mode" "\ @@ -5686,7 +5764,7 @@ There is some minimal font-lock support (see vars ;;;*** ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" -;;;;;; "emacs-lisp/debug.el" (17107 37381)) +;;;;;; "emacs-lisp/debug.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger (quote debug)) @@ -5730,7 +5808,7 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from play/decipher.el (autoload (quote decipher) "decipher" "\ @@ -5759,8 +5837,8 @@ The most useful commands are: ;;;*** ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region -;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17107 -;;;;;; 37383)) +;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from delim-col.el (autoload (quote delimit-columns-customize) "delim-col" "\ @@ -5784,8 +5862,8 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/delphi.el (autoload (quote delphi-mode) "delphi" "\ @@ -5835,8 +5913,8 @@ no args, if that value is non-nil. ;;;*** -;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from delsel.el (defalias (quote pending-delete-mode) (quote delete-selection-mode)) @@ -5866,7 +5944,7 @@ any selection. ;;;*** ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode) -;;;;;; "derived" "emacs-lisp/derived.el" (17107 37381)) +;;;;;; "derived" "emacs-lisp/derived.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload (quote define-derived-mode) "derived" "\ @@ -5931,7 +6009,7 @@ the first time the mode is used. ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" -;;;;;; "descr-text.el" (17107 37380)) +;;;;;; "descr-text.el" (17178 22143)) ;;; Generated autoloads from descr-text.el (autoload (quote describe-text-properties) "descr-text" "\ @@ -5955,8 +6033,8 @@ as well as widgets, buttons, overlays, and text properties. ;;;*** ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir -;;;;;; desktop-load-default desktop-read desktop-save-mode) "desktop" -;;;;;; "desktop.el" (17107 37383)) +;;;;;; desktop-load-default desktop-read desktop-locals-to-save +;;;;;; desktop-save-mode) "desktop" "desktop.el" (17178 22143)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -5975,26 +6053,116 @@ desktop is saved. \(fn &optional ARG)" t nil) +(defvar desktop-locals-to-save (quote (desktop-locals-to-save truncate-lines case-fold-search case-replace fill-column overwrite-mode change-log-default-name line-number-mode column-number-mode size-indication-mode buffer-file-coding-system indent-tabs-mode indicate-buffer-boundaries indicate-empty-lines show-trailing-whitespace)) "\ +List of local variables to save for each buffer. +The variables are saved only when they really are local. Conventional minor +modes are restored automatically; they should not be listed here.") + +(custom-autoload (quote desktop-locals-to-save) "desktop") + (defvar desktop-save-buffer nil "\ When non-nil, save buffer status in desktop file. This variable becomes buffer local when set. -If the value is a function, it called by `desktop-save' with argument -DESKTOP-DIRNAME to obtain auxiliary information to saved in the desktop +If the value is a function, it is called by `desktop-save' with argument +DESKTOP-DIRNAME to obtain auxiliary information to save in the desktop file along with the state of the buffer for which it was called. When file names are returned, they should be formatted using the call \"(desktop-file-name FILE-NAME DESKTOP-DIRNAME)\". -Later, when `desktop-read' calls a function in `desktop-buffer-mode-handlers' -to restore the buffer, the auxiliary information is passed as the argument -DESKTOP-BUFFER-MISC.") +Later, when `desktop-read' evaluates the desktop file, auxiliary information +is passed as the argument DESKTOP-BUFFER-MISC to functions in +`desktop-buffer-mode-handlers'.") + +(defvar desktop-buffer-mode-handlers nil "\ +Alist of major mode specific functions to restore a desktop buffer. +Functions listed are called by `desktop-create-buffer' when `desktop-read' +evaluates the desktop file. List elements must have the form + + (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). + +Buffers with a major mode not specified here, are restored by the default +handler `desktop-restore-file-buffer'. + +Handlers are called with argument list + + (DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC) + +Furthermore, they may use the following variables: + + desktop-file-version + desktop-buffer-major-mode + desktop-buffer-minor-modes + desktop-buffer-point + desktop-buffer-mark + desktop-buffer-read-only + desktop-buffer-locals + +If a handler returns a buffer, then the saved mode settings +and variable values for that buffer are copied into it. + +Modules that define a major mode that needs a special handler should contain +code like + + (defun foo-restore-desktop-buffer + ... + (add-to-list 'desktop-buffer-mode-handlers + '(foo-mode . foo-restore-desktop-buffer)) + +Furthermore the major mode function must be autoloaded.") + +(put (quote desktop-buffer-mode-handlers) (quote risky-local-variable) t) + +(defvar desktop-minor-mode-handlers nil "\ +Alist of functions to restore non-standard minor modes. +Functions are called by `desktop-create-buffer' to restore minor modes. +List elements must have the form + + (MINOR-MODE . RESTORE-FUNCTION). + +Minor modes not specified here, are restored by the standard minor mode +function. + +Handlers are called with argument list + + (DESKTOP-BUFFER-LOCALS) + +Furthermore, they may use the following variables: + + desktop-file-version + desktop-buffer-file-name + desktop-buffer-name + desktop-buffer-major-mode + desktop-buffer-minor-modes + desktop-buffer-point + desktop-buffer-mark + desktop-buffer-read-only + desktop-buffer-misc + +When a handler is called, the buffer has been created and the major mode has +been set, but local variables listed in desktop-buffer-locals has not yet been +created and set. + +Modules that define a minor mode that needs a special handler should contain +code like + + (defun foo-desktop-restore + ... + (add-to-list 'desktop-minor-mode-handlers + '(foo-mode . foo-desktop-restore)) + +Furthermore the minor mode function must be autoloaded. + +See also `desktop-minor-mode-table'.") + +(put (quote desktop-minor-mode-handlers) (quote risky-local-variable) t) (autoload (quote desktop-read) "desktop" "\ Read and process the desktop file in directory DIRNAME. Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in directories listed in `desktop-path'. If a desktop file is found, it -is processed and `desktop-after-read-hook' is run. If no desktop file +is processed and `desktop-after-read-hook' is run. If no desktop file is found, clear the desktop and run `desktop-no-desktop-file-hook'. This function is a no-op when Emacs is running in batch mode. It returns t if a desktop file was loaded, nil otherwise. @@ -6031,7 +6199,7 @@ Revert to the last loaded desktop. ;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines ;;;;;; gnus-outlook-display-hook gnus-outlook-deuglify-unwrap-max ;;;;;; gnus-outlook-deuglify-unwrap-min) "deuglify" "gnus/deuglify.el" -;;;;;; (17107 37379)) +;;;;;; (17178 20480)) ;;; Generated autoloads from gnus/deuglify.el (defvar gnus-outlook-deuglify-unwrap-min 45 "\ @@ -6080,7 +6248,7 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** ;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region) -;;;;;; "devan-util" "language/devan-util.el" (17107 37382)) +;;;;;; "devan-util" "language/devan-util.el" (17178 20481)) ;;; Generated autoloads from language/devan-util.el (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]") @@ -6098,7 +6266,7 @@ Not documented ;;;*** ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" -;;;;;; "calendar/diary-lib.el" (17107 37380)) +;;;;;; "calendar/diary-lib.el" (17178 22143)) ;;; Generated autoloads from calendar/diary-lib.el (autoload (quote diary) "diary-lib" "\ @@ -6144,7 +6312,7 @@ Major mode for editing the diary file. ;;;*** ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff" -;;;;;; "diff.el" (17107 37380)) +;;;;;; "diff.el" (17178 22143)) ;;; Generated autoloads from diff.el (defvar diff-switches "-c" "\ @@ -6178,7 +6346,7 @@ With prefix arg, prompt for diff switches. ;;;*** ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from diff-mode.el (autoload (quote diff-mode) "diff-mode" "\ @@ -6203,21 +6371,21 @@ Minor mode for viewing/editing context diffs. ;;;*** -;;;### (autoloads (dired-restore-desktop-buffer dired-noselect dired-other-frame -;;;;;; dired-other-window dired dired-copy-preserve-time dired-dwim-target -;;;;;; dired-keep-marker-symlink dired-keep-marker-hardlink dired-keep-marker-copy -;;;;;; dired-keep-marker-rename dired-trivial-filenames dired-ls-F-marks-symlinks -;;;;;; dired-listing-switches) "dired" "dired.el" (17107 37380)) +;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window +;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink +;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename +;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches) +;;;;;; "dired" "dired.el" (17178 22143)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches "-al" "\ -*Switches passed to `ls' for dired. MUST contain the `l' option. +*Switches passed to `ls' for Dired. MUST contain the `l' option. May contain all other options that don't contradict `-l'; may contain even `F', `b', `i' and `s'. See also the variable `dired-ls-F-marks-symlinks' concerning the `F' switch. On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp, some of the `ls' switches are not supported; see the doc string of -`insert-directory' on ls-lisp.el for more details.") +`insert-directory' on `ls-lisp.el' for more details.") (custom-autoload (quote dired-listing-switches) "dired") @@ -6225,7 +6393,7 @@ some of the `ls' switches are not supported; see the doc string of Name of chown command (usually `chown' or `/etc/chown').") (defvar dired-ls-F-marks-symlinks nil "\ -*Informs dired about how `ls -lF' marks symbolic links. +*Informs Dired about how `ls -lF' marks symbolic links. Set this to t if `ls' (or whatever program is specified by `insert-directory-program') with `-lF' marks the symbolic link itself with a trailing @ (usually the case under Ultrix). @@ -6277,7 +6445,7 @@ If a character, new links are unconditionally marked with that character.") (custom-autoload (quote dired-keep-marker-symlink) "dired") (defvar dired-dwim-target nil "\ -*If non-nil, dired tries to guess a default target directory. +*If non-nil, Dired tries to guess a default target directory. This means: if there is a dired buffer displayed in the next window, use its current subdir, instead of the current subdir of this dired buffer. @@ -6292,7 +6460,7 @@ The target is used in the prompt for file copy, rename etc.") (custom-autoload (quote dired-copy-preserve-time) "dired") (defvar dired-directory nil "\ -The directory name or wildcard spec that this Dired directory lists. +The directory name or wildcard spec that this dired directory lists. Local to each dired buffer. May be a list, in which case the car is the directory name and the cdr is the list of files to mention. The directory name must be absolute, but need not be fully expanded.") @@ -6309,7 +6477,7 @@ list of files to make directory entries for. \\<dired-mode-map>You can move around in it with the usual commands. You can flag files for deletion with \\[dired-flag-file-deletion] and then delete them by typing \\[dired-do-flagged-delete]. -Type \\[describe-mode] after entering dired for more info. +Type \\[describe-mode] after entering Dired for more info. If DIRNAME is already in a dired buffer, that buffer is used without refresh. @@ -6331,12 +6499,71 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh. Like `dired' but returns the dired buffer as value, does not select it. \(fn DIR-OR-LIST &optional SWITCHES)" nil nil) - (put 'dired-find-alternate-file 'disabled t) -(autoload (quote dired-restore-desktop-buffer) "dired" "\ -Restore a dired buffer specified in a desktop file. - -\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil) +(autoload (quote dired-mode) "dired" "\ +Mode for \"editing\" directory listings. +In Dired, you are \"editing\" a list of the files in a directory and + (optionally) its subdirectories, in the format of `ls -lR'. + Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise. +\"Editing\" means that you can run shell commands on files, visit, + compress, load or byte-compile them, change their file attributes + and insert subdirectories into the same buffer. You can \"mark\" + files for later commands or \"flag\" them for deletion, either file + by file or all files matching certain criteria. +You can move using the usual cursor motion commands.\\<dired-mode-map> +Letters no longer insert themselves. Digits are prefix arguments. +Instead, type \\[dired-flag-file-deletion] to flag a file for Deletion. +Type \\[dired-mark] to Mark a file or subdirectory for later commands. + Most commands operate on the marked files and use the current file + if no files are marked. Use a numeric prefix argument to operate on + the next ARG (or previous -ARG if ARG<0) files, or just `1' + to operate on the current file only. Prefix arguments override marks. + Mark-using commands display a list of failures afterwards. Type \\[dired-summary] + to see why something went wrong. +Type \\[dired-unmark] to Unmark a file or all files of a subdirectory. +Type \\[dired-unmark-backward] to back up one line and unflag. +Type \\[dired-do-flagged-delete] to eXecute the deletions requested. +Type \\[dired-advertised-find-file] to Find the current line's file + (or dired it in another buffer, if it is a directory). +Type \\[dired-find-file-other-window] to find file or dired directory in Other window. +Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer. +Type \\[dired-do-rename] to Rename a file or move the marked files to another directory. +Type \\[dired-do-copy] to Copy files. +Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches. +Type \\[revert-buffer] to read all currently expanded directories aGain. + This retains all marks and hides subdirs again that were hidden before. +SPC and DEL can be used to move down and up by lines. + +If Dired ever gets confused, you can either type \\[revert-buffer] to read the +directories again, type \\[dired-do-redisplay] to relist a single or the marked files or a +subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer +again for the directory tree. + +Customization variables (rename this buffer and type \\[describe-variable] on each line +for more info): + + `dired-listing-switches' + `dired-trivial-filenames' + `dired-shrink-to-fit' + `dired-marker-char' + `dired-del-marker' + `dired-keep-marker-rename' + `dired-keep-marker-copy' + `dired-keep-marker-hardlink' + `dired-keep-marker-symlink' + +Hooks (use \\[describe-variable] to see their documentation): + + `dired-before-readin-hook' + `dired-after-readin-hook' + `dired-mode-hook' + `dired-load-hook' + +Keybindings: +\\{dired-mode-map} + +\(fn &optional DIRNAME SWITCHES)" nil nil) + (put 'dired-find-alternate-file 'disabled t) ;;;*** @@ -6353,7 +6580,7 @@ Restore a dired buffer specified in a desktop file. ;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory ;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp ;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff -;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17107 37382)) +;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17178 22143)) ;;; Generated autoloads from dired-aux.el (autoload (quote dired-diff) "dired-aux" "\ @@ -6761,13 +6988,13 @@ true then the type of the file linked to by FILE is printed instead. ;;;*** -;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17107 37380)) +;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17178 22143)) ;;; Generated autoloads from dired-x.el (autoload (quote dired-jump) "dired-x" "\ Jump to dired buffer corresponding to current buffer. If in a file, dired the current directory and move to file's line. -If in dired already, pop up a level and goto old directory's line. +If in Dired already, pop up a level and goto old directory's line. In case the proper dired file line cannot be found, refresh the dired buffer and try again. @@ -6775,7 +7002,7 @@ buffer and try again. ;;;*** -;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17107 37383)) +;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17178 22143)) ;;; Generated autoloads from dirtrack.el (autoload (quote dirtrack) "dirtrack" "\ @@ -6794,8 +7021,8 @@ You can enable directory tracking by adding this function to ;;;*** -;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload (quote disassemble) "disass" "\ @@ -6813,7 +7040,7 @@ redefine OBJECT if it is a symbol. ;;;;;; standard-display-graphic standard-display-g1 standard-display-ascii ;;;;;; standard-display-default standard-display-8bit describe-current-display-table ;;;;;; describe-display-table set-display-table-slot display-table-slot -;;;;;; make-display-table) "disp-table" "disp-table.el" (17107 37380)) +;;;;;; make-display-table) "disp-table" "disp-table.el" (17178 22143)) ;;; Generated autoloads from disp-table.el (autoload (quote make-display-table) "disp-table" "\ @@ -6914,7 +7141,7 @@ for users who call this function in `.emacs'. ;;;*** ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from play/dissociate.el (autoload (quote dissociated-press) "dissociate" "\ @@ -6930,7 +7157,7 @@ Default is 2. ;;;*** -;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17107 37380)) +;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17178 22143)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file))) "\ @@ -6951,7 +7178,7 @@ if some action was made, or nil if the URL is ignored.") ;;;*** ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode" -;;;;;; "textmodes/dns-mode.el" (17107 37381)) +;;;;;; "textmodes/dns-mode.el" (17178 22154)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload (quote dns-mode) "dns-mode" "\ @@ -6974,7 +7201,7 @@ Locate SOA record and increment the serial field. ;;;*** -;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17107 37380)) +;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17178 22152)) ;;; Generated autoloads from play/doctor.el (autoload (quote doctor) "doctor" "\ @@ -6985,7 +7212,7 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** ;;;### (autoloads (double-mode double-mode) "double" "double.el" -;;;;;; (17107 37229)) +;;;;;; (17178 22143)) ;;; Generated autoloads from double.el (defvar double-mode nil "\ @@ -7006,7 +7233,7 @@ when pressed twice. See variable `double-map' for details. ;;;*** -;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17107 37380)) +;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17178 22152)) ;;; Generated autoloads from play/dunnet.el (autoload (quote dunnet) "dunnet" "\ @@ -7017,7 +7244,7 @@ Switch to *dungeon* buffer and start game. ;;;*** ;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/earcon.el (autoload (quote gnus-earcon-display) "earcon" "\ @@ -7029,7 +7256,7 @@ Play sounds in message buffers. ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap ;;;;;; define-global-minor-mode define-minor-mode) "easy-mmode" -;;;;;; "emacs-lisp/easy-mmode.el" (17107 37381)) +;;;;;; "emacs-lisp/easy-mmode.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode)) @@ -7115,8 +7342,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define -;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17107 -;;;;;; 37381)) +;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/easymenu.el (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun)) @@ -7261,7 +7488,7 @@ to implement dynamic menus. ;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file ;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer ;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" -;;;;;; "progmodes/ebnf2ps.el" (17107 37381)) +;;;;;; "progmodes/ebnf2ps.el" (17178 20481)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload (quote ebnf-customize) "ebnf2ps" "\ @@ -7520,8 +7747,8 @@ See `ebnf-style-database' documentation. ;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition ;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration ;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree -;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17107 -;;;;;; 37381)) +;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload (quote ebrowse-tree-mode) "ebrowse" "\ @@ -7672,7 +7899,7 @@ Display statistics for a class tree. ;;;*** ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from ebuff-menu.el (autoload (quote electric-buffer-list) "ebuff-menu" "\ @@ -7697,7 +7924,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** ;;;### (autoloads (Electric-command-history-redo-expression) "echistory" -;;;;;; "echistory.el" (17107 37382)) +;;;;;; "echistory.el" (17178 22143)) ;;; Generated autoloads from echistory.el (autoload (quote Electric-command-history-redo-expression) "echistory" "\ @@ -7709,7 +7936,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** ;;;### (autoloads (edebug-eval-top-level-form def-edebug-spec edebug-all-forms -;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (17107 37381)) +;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7772,7 +7999,7 @@ already is one.) ;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor ;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions ;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup -;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17107 37379)) +;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17178 22143)) ;;; Generated autoloads from ediff.el (autoload (quote ediff-files) "ediff" "\ @@ -7971,11 +8198,13 @@ buffer. If odd -- assume it is in a file. \(fn &optional ARG PATCH-BUF)" t nil) (autoload (quote ediff-patch-buffer) "ediff" "\ -Run Ediff by patching BUFFER-NAME. -Without prefix argument: asks if the patch is in some buffer and prompts for -the buffer or a file, depending on the answer. -With prefix arg=1: assumes the patch is in a file and prompts for the file. -With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer. +Run Ediff by patching the buffer specified at prompt. +Without the optional prefix ARG, asks if the patch is in some buffer and +prompts for the buffer or a file, depending on the answer. +With ARG=1, assumes the patch is in a file and prompts for the file. +With ARG=2, assumes the patch is in a buffer and prompts for the buffer. +PATCH-BUF is an optional argument, which specifies the buffer that contains the +patch. If not given, the user is prompted according to the prefix argument. \(fn &optional ARG PATCH-BUF)" t nil) @@ -8008,7 +8237,7 @@ With optional NODE, goes to that node. ;;;*** ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from ediff-help.el (autoload (quote ediff-customize) "ediff-help" "\ @@ -8018,7 +8247,7 @@ Not documented ;;;*** -;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17107 37380)) +;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17178 22143)) ;;; Generated autoloads from ediff-hook.el (defvar ediff-window-setup-function) @@ -8031,7 +8260,7 @@ Not documented ;;;*** ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from ediff-mult.el (autoload (quote ediff-show-registry) "ediff-mult" "\ @@ -8044,7 +8273,7 @@ Display Ediff's registry. ;;;*** ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) -;;;;;; "ediff-util" "ediff-util.el" (17107 37380)) +;;;;;; "ediff-util" "ediff-util.el" (17178 22143)) ;;; Generated autoloads from ediff-util.el (autoload (quote ediff-toggle-multiframe) "ediff-util" "\ @@ -8065,7 +8294,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro ;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" -;;;;;; (17107 37227)) +;;;;;; (17178 22143)) ;;; Generated autoloads from edmacro.el (defvar edmacro-eight-bits nil "\ @@ -8118,7 +8347,7 @@ or nil, use a compact 80-column format. ;;;*** ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" -;;;;;; "emulation/edt.el" (17107 37380)) +;;;;;; "emulation/edt.el" (17178 22144)) ;;; Generated autoloads from emulation/edt.el (autoload (quote edt-set-scroll-margins) "edt" "\ @@ -8136,7 +8365,7 @@ Turn on EDT Emulation. ;;;*** ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22143)) ;;; Generated autoloads from ehelp.el (autoload (quote with-electric-help) "ehelp" "\ @@ -8174,7 +8403,7 @@ Not documented ;;;*** ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) -;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17107 37381)) +;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string " ElDoc" "\ @@ -8212,8 +8441,8 @@ Emacs Lisp mode) that support Eldoc.") ;;;*** -;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17107 -;;;;;; 37400)) +;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from elide-head.el (autoload (quote elide-head) "elide-head" "\ @@ -8229,7 +8458,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;*** ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload (quote elint-initialize) "elint" "\ @@ -8240,8 +8469,8 @@ Initialize elint. ;;;*** ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list -;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17107 -;;;;;; 37381)) +;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload (quote elp-instrument-function) "elp" "\ @@ -8275,7 +8504,7 @@ displayed. ;;;*** ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22150)) ;;; Generated autoloads from mail/emacsbug.el (autoload (quote report-emacs-bug) "emacsbug" "\ @@ -8290,7 +8519,7 @@ Prompts for bug subject. Leaves you in a mail buffer. ;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote ;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor ;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" -;;;;;; "emerge.el" (17107 37379)) +;;;;;; "emerge.el" (17178 22144)) ;;; Generated autoloads from emerge.el (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge")) @@ -8368,7 +8597,7 @@ Not documented ;;;*** ;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el" -;;;;;; (17107 37229)) +;;;;;; (17178 21353)) ;;; Generated autoloads from international/encoded-kb.el (autoload (quote encoded-kbd-setup-display) "encoded-kb" "\ @@ -8381,7 +8610,7 @@ DISPLAY may be a display id, a frame, or nil for the selected frame's display. ;;;*** ;;;### (autoloads (enriched-decode enriched-encode enriched-mode) -;;;;;; "enriched" "textmodes/enriched.el" (17107 37381)) +;;;;;; "enriched" "textmodes/enriched.el" (17178 22154)) ;;; Generated autoloads from textmodes/enriched.el (autoload (quote enriched-mode) "enriched" "\ @@ -8411,8 +8640,8 @@ Not documented ;;;*** -;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from eshell/esh-mode.el (autoload (quote eshell-mode) "esh-mode" "\ @@ -8424,8 +8653,8 @@ Emacs shell interactive mode. ;;;*** -;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from eshell/esh-test.el (autoload (quote eshell-test) "esh-test" "\ @@ -8436,7 +8665,7 @@ Test Eshell to verify that it works as expected. ;;;*** ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command -;;;;;; eshell) "eshell" "eshell/eshell.el" (17107 37380)) +;;;;;; eshell) "eshell" "eshell/eshell.el" (17178 22144)) ;;; Generated autoloads from eshell/eshell.el (autoload (quote eshell) "eshell" "\ @@ -8481,8 +8710,8 @@ Please include any configuration details that might be involved. ;;;;;; find-tag find-tag-noselect tags-table-files visit-tags-table-buffer ;;;;;; visit-tags-table find-tag-default-function find-tag-hook ;;;;;; tags-add-tables tags-compression-info-list tags-table-list -;;;;;; tags-case-fold-search) "etags" "progmodes/etags.el" (17107 -;;;;;; 37381)) +;;;;;; tags-case-fold-search) "etags" "progmodes/etags.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -8779,7 +9008,7 @@ for \\[find-tag] (which see). ;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker ;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker ;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal) -;;;;;; "ethio-util" "language/ethio-util.el" (17107 37382)) +;;;;;; "ethio-util" "language/ethio-util.el" (17178 22147)) ;;; Generated autoloads from language/ethio-util.el (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\ @@ -8793,7 +9022,7 @@ The variable `ethio-primary-language' specifies the primary language and `ethio-secondary-language' specifies the secondary. If the 3rd parameter SECONDARY is given and non-nil, assume the region -begins begins with the secondary language; otherwise with the primary +begins with the secondary language; otherwise with the primary language. If the 4th parameter FORCE is given and non-nil, perform conversion @@ -8974,7 +9203,7 @@ Transcribe Ethiopic characters in ASCII depending on the file extension. ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline ;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22151)) ;;; Generated autoloads from net/eudc.el (autoload (quote eudc-set-server) "eudc" "\ @@ -9030,7 +9259,7 @@ This does nothing except loading eudc by autoload side-effect. ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline ;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary) -;;;;;; "eudc-bob" "net/eudc-bob.el" (17107 37379)) +;;;;;; "eudc-bob" "net/eudc-bob.el" (17178 22151)) ;;; Generated autoloads from net/eudc-bob.el (autoload (quote eudc-display-generic-binary) "eudc-bob" "\ @@ -9066,7 +9295,7 @@ Display a button for the JPEG DATA. ;;;*** ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb) -;;;;;; "eudc-export" "net/eudc-export.el" (17107 37379)) +;;;;;; "eudc-export" "net/eudc-export.el" (17178 22151)) ;;; Generated autoloads from net/eudc-export.el (autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\ @@ -9083,7 +9312,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22151)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\ @@ -9096,7 +9325,7 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p ;;;;;; executable-self-display executable-set-magic executable-interpret ;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/executable.el (autoload (quote executable-command-find-posix-p) "executable" "\ @@ -9138,7 +9367,7 @@ file modes. ;;;*** ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot -;;;;;; expand-add-abbrevs) "expand" "expand.el" (17107 37380)) +;;;;;; expand-add-abbrevs) "expand" "expand.el" (17178 22144)) ;;; Generated autoloads from expand.el (autoload (quote expand-add-abbrevs) "expand" "\ @@ -9181,7 +9410,7 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17107 37381)) +;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17178 22153)) ;;; Generated autoloads from progmodes/f90.el (autoload (quote f90-mode) "f90" "\ @@ -9250,7 +9479,7 @@ with no args, if that value is non-nil. ;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only ;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu ;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face) -;;;;;; "facemenu" "facemenu.el" (17107 37380)) +;;;;;; "facemenu" "facemenu.el" (17178 22144)) ;;; Generated autoloads from facemenu.el (define-key global-map "\M-o" 'facemenu-keymap) (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) @@ -9413,7 +9642,7 @@ argument BUFFER-NAME is nil, it defaults to *Colors*. ;;;*** ;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock" -;;;;;; "obsolete/fast-lock.el" (17107 37382)) +;;;;;; "obsolete/fast-lock.el" (17178 22151)) ;;; Generated autoloads from obsolete/fast-lock.el (autoload (quote fast-lock-mode) "fast-lock" "\ @@ -9454,7 +9683,7 @@ Unconditionally turn on Fast Lock mode. ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue ;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts -;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17107 37380)) +;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17178 20480)) ;;; Generated autoloads from mail/feedmail.el (autoload (quote feedmail-send-it) "feedmail" "\ @@ -9508,7 +9737,7 @@ you can set feedmail-queue-reminder-alist to nil. ;;;*** ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu -;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17107 37380)) +;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17178 22144)) ;;; Generated autoloads from ffap.el (autoload (quote ffap-next) "ffap" "\ @@ -9567,7 +9796,7 @@ Evaluate the forms in variable `ffap-bindings'. ;;;*** ;;;### (autoloads (file-cache-minibuffer-complete) "filecache" "filecache.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from filecache.el (autoload (quote file-cache-minibuffer-complete) "filecache" "\ @@ -9585,8 +9814,8 @@ the name is considered already unique; only the second substitution ;;;*** -;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from filesets.el (autoload (quote filesets-init) "filesets" "\ @@ -9599,7 +9828,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options ;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from find-dired.el (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\ @@ -9660,7 +9889,7 @@ Thus ARG can also contain additional grep options. ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file ;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (setq fname (buffer-substring (match-beginning 2) (match-end 2)))))) "\ @@ -9752,7 +9981,7 @@ Visit the file you click on in another window. ;;;;;; find-variable find-variable-noselect find-function-other-frame ;;;;;; find-function-other-window find-function find-function-noselect ;;;;;; find-function-search-for-symbol find-library) "find-func" -;;;;;; "emacs-lisp/find-func.el" (17107 37381)) +;;;;;; "emacs-lisp/find-func.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload (quote find-library) "find-func" "\ @@ -9901,7 +10130,7 @@ Define some key bindings for the find-function family of functions. ;;;*** ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories -;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17107 37380)) +;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17178 22144)) ;;; Generated autoloads from find-lisp.el (autoload (quote find-lisp-find-dired) "find-lisp" "\ @@ -9922,7 +10151,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP. ;;;*** ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) -;;;;;; "finder" "finder.el" (17107 37380)) +;;;;;; "finder" "finder.el" (17178 22144)) ;;; Generated autoloads from finder.el (autoload (quote finder-list-keywords) "finder" "\ @@ -9944,7 +10173,7 @@ Find packages matching a given keyword. ;;;*** ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" -;;;;;; "flow-ctrl.el" (17107 37381)) +;;;;;; "flow-ctrl.el" (17178 22144)) ;;; Generated autoloads from flow-ctrl.el (autoload (quote enable-flow-control) "flow-ctrl" "\ @@ -9966,7 +10195,7 @@ to get the effect of a C-q. ;;;*** ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/flow-fill.el (autoload (quote fill-flowed-encode) "flow-fill" "\ @@ -9982,7 +10211,7 @@ Not documented ;;;*** ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) -;;;;;; "flymake" "progmodes/flymake.el" (17107 37398)) +;;;;;; "flymake" "progmodes/flymake.el" (17178 22153)) ;;; Generated autoloads from progmodes/flymake.el (autoload (quote flymake-mode) "flymake" "\ @@ -10006,13 +10235,14 @@ Turn flymake mode off. ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; flyspell-mode flyspell-prog-mode) "flyspell" "textmodes/flyspell.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/flyspell.el (autoload (quote flyspell-prog-mode) "flyspell" "\ Turn on `flyspell-mode' for comments and strings. \(fn)" t nil) +(defvar flyspell-mode nil) (autoload (quote flyspell-mode) "flyspell" "\ Minor mode performing on-the-fly spelling checking. @@ -10064,7 +10294,7 @@ Flyspell whole buffer. ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from follow.el (autoload (quote turn-on-follow-mode) "follow" "\ @@ -10140,7 +10370,7 @@ in your `~/.emacs' file, replacing [f7] by your favourite key: ;;;### (autoloads (font-lock-fontify-buffer font-lock-remove-keywords ;;;;;; font-lock-add-keywords font-lock-mode-internal) "font-lock" -;;;;;; "font-lock.el" (17107 37380)) +;;;;;; "font-lock.el" (17178 22144)) ;;; Generated autoloads from font-lock.el (autoload (quote font-lock-mode-internal) "font-lock" "\ @@ -10212,8 +10442,8 @@ Fontify the current buffer the way the function `font-lock-mode' would. ;;;*** -;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from mail/footnote.el (autoload (quote footnote-mode) "footnote" "\ @@ -10234,7 +10464,7 @@ key binding ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) -;;;;;; "forms" "forms.el" (17107 37380)) +;;;;;; "forms" "forms.el" (17178 22144)) ;;; Generated autoloads from forms.el (autoload (quote forms-mode) "forms" "\ @@ -10271,7 +10501,7 @@ Visit a file in Forms mode in other window. ;;;*** ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran" -;;;;;; "progmodes/fortran.el" (17107 37381)) +;;;;;; "progmodes/fortran.el" (17178 22153)) ;;; Generated autoloads from progmodes/fortran.el (defvar fortran-tab-mode-default nil "\ @@ -10357,7 +10587,7 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region -;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17107 37380)) +;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17178 22152)) ;;; Generated autoloads from play/fortune.el (autoload (quote fortune-add-fortune) "fortune" "\ @@ -10406,8 +10636,8 @@ and choose the directory as the fortune-file. ;;;*** -;;;### (autoloads (fringe-indicators set-fringe-style fringe-mode -;;;;;; fringe-mode) "fringe" "fringe.el" (17107 37380)) +;;;### (autoloads (set-fringe-style fringe-mode fringe-mode) "fringe" +;;;;;; "fringe.el" (17178 22144)) ;;; Generated autoloads from fringe.el (defvar fringe-mode nil "\ @@ -10422,7 +10652,7 @@ To set this variable in a Lisp program, use `set-fringe-mode' to make it take real effect. Setting the variable with a customization buffer also takes effect. If you only want to modify the appearance of the fringe in one frame, -you can use the interactive function `toggle-fringe'") +you can use the interactive function `set-fringe-style'.") (custom-autoload (quote fringe-mode) "fringe") @@ -10475,15 +10705,10 @@ default appearance of fringes on all frames, see the command \(fn &optional MODE)" t nil) -(defvar fringe-indicators nil "\ -Visually indicate buffer boundaries and scrolling. -Setting this variable, changes `default-indicate-buffer-boundaries'.") - -(custom-autoload (quote fringe-indicators) "fringe") - ;;;*** -;;;### (autoloads (gdba) "gdb-ui" "progmodes/gdb-ui.el" (17107 37381)) +;;;### (autoloads (gdb-enable-debug-log gdba) "gdb-ui" "progmodes/gdb-ui.el" +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/gdb-ui.el (autoload (quote gdba) "gdb-ui" "\ @@ -10492,7 +10717,7 @@ The directory containing FILE becomes the initial working directory and source-file directory for your debugger. If `gdb-many-windows' is nil (the default value) then gdb just -pops up the GUD buffer unless `gdb-show-main' is t. In this case +pops up the GUD buffer unless `gdb-show-main' is t. In this case it starts with two windows: one displaying the GUD buffer and the other with the source file with the main routine of the inferior. @@ -10538,11 +10763,16 @@ detailed description of this mode. \(fn COMMAND-LINE)" t nil) +(defvar gdb-enable-debug-log nil "\ +Non-nil means record the process input and output in `gdb-debug-log'.") + +(custom-autoload (quote gdb-enable-debug-log) "gdb-ui") + ;;;*** ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal -;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17107 -;;;;;; 37381)) +;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -10617,7 +10847,7 @@ regular expression that can be used as an element of ;;;*** ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from progmodes/glasses.el (autoload (quote glasses-mode) "glasses" "\ @@ -10630,7 +10860,7 @@ at places they belong to. ;;;*** ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server -;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17107 37379)) +;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus.el (autoload (quote gnus-slave-no-server) "gnus" "\ @@ -10681,7 +10911,7 @@ prompt the user for the name of an NNTP server to use. ;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group ;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize ;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent" -;;;;;; "gnus/gnus-agent.el" (17107 37379)) +;;;;;; "gnus/gnus-agent.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload (quote gnus-unplugged) "gnus-agent" "\ @@ -10768,7 +10998,7 @@ If CLEAN, obsolete (ignore). ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-art.el (autoload (quote gnus-article-prepare-display) "gnus-art" "\ @@ -10779,7 +11009,7 @@ Make the current buffer look like a nice article. ;;;*** ;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-audio.el (autoload (quote gnus-audio-play) "gnus-audio" "\ @@ -10791,8 +11021,8 @@ Play a sound FILE through the speaker. ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group ;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active -;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17107 -;;;;;; 37379)) +;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17178 +;;;;;; 22145)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload (quote gnus-jog-cache) "gnus-cache" "\ @@ -10830,7 +11060,7 @@ next enabled. Depends upon the caller to determine whether group deletion is sup ;;;*** ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article) -;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17107 37379)) +;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-delay.el (defgroup gnus-delay nil "Arrange for sending postings later." :version "22.1" :group (quote gnus)) @@ -10868,7 +11098,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\ @@ -10879,7 +11109,7 @@ Convenience method to turn on gnus-dired-mode. ;;;*** ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload (quote gnus-draft-reminder) "gnus-draft" "\ @@ -10891,8 +11121,8 @@ Reminder user if there are unsent drafts. ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png ;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header -;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17107 -;;;;;; 37379)) +;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17178 +;;;;;; 22145)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload (quote gnus-random-x-face) "gnus-fun" "\ @@ -10931,7 +11161,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) -;;;;;; "gnus-group" "gnus/gnus-group.el" (17107 37379)) +;;;;;; "gnus-group" "gnus/gnus-group.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-group.el (autoload (quote gnus-fetch-group) "gnus-group" "\ @@ -10948,7 +11178,7 @@ Pop up a frame and enter GROUP. ;;;*** ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias (quote gnus-batch-kill) (quote gnus-batch-score)) @@ -10963,7 +11193,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate ;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\ @@ -10988,7 +11218,7 @@ Minor mode for providing mailing-list commands. ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update ;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\ @@ -11089,7 +11319,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** ;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-move.el (autoload (quote gnus-change-server) "gnus-move" "\ @@ -11101,7 +11331,7 @@ Update the .newsrc.eld file to reflect the change of nntp server. ;;;*** ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) -;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17107 37379)) +;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload (quote gnus-msg-mail) "gnus-msg" "\ @@ -11127,7 +11357,7 @@ Like `message-reply'. ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon ;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload (quote gnus-treat-from-picon) "gnus-picon" "\ @@ -11154,7 +11384,7 @@ If picons are already displayed, remove them. ;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection ;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement ;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range" -;;;;;; "gnus/gnus-range.el" (17107 37379)) +;;;;;; "gnus/gnus-range.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-range.el (autoload (quote gnus-sorted-difference) "gnus-range" "\ @@ -11222,7 +11452,7 @@ Add NUM into sorted LIST by side effect. ;;;*** ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) -;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17107 37379)) +;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17178 22145)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload (quote gnus-registry-initialize) "gnus-registry" "\ @@ -11238,8 +11468,8 @@ Install the registry hooks. ;;;*** ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate -;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17107 -;;;;;; 37379)) +;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17178 +;;;;;; 22145)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload (quote gnus-sieve-update) "gnus-sieve" "\ @@ -11267,7 +11497,7 @@ Not documented ;;;*** ;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-soup.el (autoload (quote gnus-batch-brew-soup) "gnus-soup" "\ @@ -11287,7 +11517,7 @@ Note -- this function hasn't been implemented yet. ;;;*** ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload (quote gnus-update-format) "gnus-spec" "\ @@ -11298,8 +11528,8 @@ Update the format specification near point. ;;;*** ;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news -;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17107 -;;;;;; 37379)) +;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17178 +;;;;;; 22145)) ;;; Generated autoloads from gnus/gnus-start.el (autoload (quote gnus-declare-backend) "gnus-start" "\ @@ -11315,7 +11545,7 @@ Not documented ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22145)) ;;; Generated autoloads from gnus/gnus-win.el (autoload (quote gnus-add-configuration) "gnus-win" "\ @@ -11325,7 +11555,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** -;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17107 37380)) +;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17178 22152)) ;;; Generated autoloads from play/gomoku.el (autoload (quote gomoku) "gomoku" "\ @@ -11352,7 +11582,7 @@ Use \\[describe-mode] for more info. ;;;*** ;;;### (autoloads (goto-address goto-address-at-point) "goto-addr" -;;;;;; "net/goto-addr.el" (17107 37379)) +;;;;;; "net/goto-addr.el" (17178 22151)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1") @@ -11378,9 +11608,9 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and ;;;*** -;;;### (autoloads (grep-tree grep-find grep grep-compute-defaults +;;;### (autoloads (grep-tree grep-find grep-mode grep grep-compute-defaults ;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command -;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17107 37381)) +;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17178 22153)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -11411,7 +11641,7 @@ List of hook functions run by `grep-process-setup' (see `run-hooks').") (custom-autoload (quote grep-setup-hook) "grep") -(defvar grep-regexp-alist (quote (("^\\(.+?\\)\\([: ]\\)+\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2" 1 (3 . 6) (5 . 7)) ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\\(\\[01;41m\\)\\(.*?\\)\\(\\[00m\\(?:\\[K\\)?\\)" 2 3 ((lambda nil (setq compilation-error-screen-columns nil) (- (match-beginning 5) (match-end 1) 8)) lambda nil (- (match-end 5) (match-end 1) 8)) nil 1) ("^Binary file \\(.+\\) matches$" 1 nil nil 1))) "\ +(defvar grep-regexp-alist (quote (("^\\(.+?\\)\\(:[ ]*\\)\\([0-9]+\\)\\2" 1 3) ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\\(\\[01;31m\\(?:\\[K\\)?\\)\\(.*?\\)\\(\\[[0-9]*m\\)" 2 3 ((lambda nil (setq compilation-error-screen-columns nil) (- (match-beginning 4) (match-end 1))) lambda nil (- (match-end 5) (match-end 1) (- (match-end 4) (match-beginning 4)))) nil 1) ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1))) "\ Regexp used to match grep hits. See `compilation-error-regexp-alist'.") (defvar grep-program "grep" "\ @@ -11464,6 +11694,11 @@ temporarily highlight in visited source lines. \(fn COMMAND-ARGS &optional HIGHLIGHT-REGEXP)" t nil) +(autoload (quote grep-mode) "grep" "\ +Sets `grep-last-buffer' and `compilation-window-height'. + +\(fn)" nil nil) + (autoload (quote grep-find) "grep" "\ Run grep via find, with user-specified args COMMAND-ARGS. Collect output in a buffer. @@ -11499,7 +11734,7 @@ those sub directories of DIR. ;;;*** -;;;### (autoloads (gs-load-image) "gs" "gs.el" (17107 37380)) +;;;### (autoloads (gs-load-image) "gs" "gs.el" (17178 22146)) ;;; Generated autoloads from gs.el (autoload (quote gs-load-image) "gs" "\ @@ -11512,8 +11747,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** -;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx -;;;;;; sdb gdb) "gud" "progmodes/gud.el" (17107 37398)) +;;;### (autoloads (gud-tooltip-mode gdb-script-mode bashdb jdb pdb +;;;;;; perldb xdb dbx sdb gdb) "gud" "progmodes/gud.el" (17178 22153)) ;;; Generated autoloads from progmodes/gud.el (autoload (quote gdb) "gud" "\ @@ -11592,10 +11827,25 @@ Major mode for editing GDB scripts \(fn)" t nil) +(defvar gud-tooltip-mode nil "\ +Non-nil if Gud-Tooltip mode is enabled. +See the command `gud-tooltip-mode' for a description of this minor-mode. +Setting this variable directly does not take effect; +use either \\[customize] or the function `gud-tooltip-mode'.") + +(custom-autoload (quote gud-tooltip-mode) "gud") + +(put (quote gud-tooltip-mode) (quote custom-set) (quote custom-set-minor-mode)) + +(autoload (quote gud-tooltip-mode) "gud" "\ +Toggle the display of GUD tooltips. + +\(fn &optional ARG)" t nil) + ;;;*** -;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from play/handwrite.el (autoload (quote handwrite) "handwrite" "\ @@ -11613,7 +11863,7 @@ Variables: handwrite-linespace (default 12) ;;;*** ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from play/hanoi.el (autoload (quote hanoi) "hanoi" "\ @@ -11643,7 +11893,7 @@ to be updated. ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region ;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer ;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string -;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17107 37380)) +;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17178 22146)) ;;; Generated autoloads from help-at-pt.el (autoload (quote help-at-pt-string) "help-at-pt" "\ @@ -11773,7 +12023,7 @@ different regions. With numeric argument ARG, behaves like ;;;### (autoloads (describe-categories describe-syntax describe-variable ;;;;;; variable-at-point describe-function-1 help-C-file-name describe-function ;;;;;; locate-library help-with-tutorial) "help-fns" "help-fns.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22146)) ;;; Generated autoloads from help-fns.el (autoload (quote help-with-tutorial) "help-fns" "\ @@ -11853,7 +12103,7 @@ BUFFER should be a buffer or a buffer name. ;;;*** ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22146)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ @@ -11869,7 +12119,7 @@ A value of nil means skip the middle step, so that ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button ;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup -;;;;;; help-mode) "help-mode" "help-mode.el" (17107 37380)) +;;;;;; help-mode) "help-mode" "help-mode.el" (17178 22146)) ;;; Generated autoloads from help-mode.el (autoload (quote help-mode) "help-mode" "\ @@ -11952,7 +12202,7 @@ Add xrefs for symbols in `pp's output between FROM and TO. ;;;*** ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" -;;;;;; "emacs-lisp/helper.el" (17107 37381)) +;;;;;; "emacs-lisp/helper.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload (quote Helper-describe-bindings) "helper" "\ @@ -11968,7 +12218,7 @@ Provide help for current mode. ;;;*** ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" -;;;;;; "hexl.el" (17107 37381)) +;;;;;; "hexl.el" (17178 22146)) ;;; Generated autoloads from hexl.el (autoload (quote hexl-mode) "hexl" "\ @@ -12063,8 +12313,8 @@ This discards the buffer's undo information. ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer ;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer -;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (17107 -;;;;;; 37398)) +;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from hi-lock.el (defvar hi-lock-mode nil "\ @@ -12175,7 +12425,7 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially -;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17107 37398)) +;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17178 22153)) ;;; Generated autoloads from progmodes/hideif.el (autoload (quote hide-ifdef-mode) "hideif" "\ @@ -12230,7 +12480,7 @@ how the hiding is done: ;;;*** ;;;### (autoloads (hs-minor-mode hs-hide-comments-when-hiding-all) -;;;;;; "hideshow" "progmodes/hideshow.el" (17107 37381)) +;;;;;; "hideshow" "progmodes/hideshow.el" (17178 22153)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-hide-comments-when-hiding-all t "\ @@ -12293,7 +12543,7 @@ Key bindings: ;;;;;; highlight-compare-buffers highlight-changes-rotate-faces ;;;;;; highlight-changes-previous-change highlight-changes-next-change ;;;;;; highlight-changes-mode highlight-changes-remove-highlight) -;;;;;; "hilit-chg" "hilit-chg.el" (17107 37380)) +;;;;;; "hilit-chg" "hilit-chg.el" (17178 22146)) ;;; Generated autoloads from hilit-chg.el (autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\ @@ -12327,12 +12577,12 @@ Functions: buffer with the contents of a file \\[highlight-changes-remove-highlight] - remove the change face from the region \\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes through - various faces. + various faces Hook variables: -`highlight-changes-enable-hook' - when enabling Highlight Changes mode. +`highlight-changes-enable-hook' - when enabling Highlight Changes mode `highlight-changes-toggle-hook' - when entering active or passive state -`highlight-changes-disable-hook' - when turning off Highlight Changes mode. +`highlight-changes-disable-hook' - when turning off Highlight Changes mode \(fn &optional ARG)" t nil) @@ -12354,11 +12604,11 @@ of `highlight-changes-face-list', one level older changes are shown in face described by the second element, and so on. Very old changes remain shown in the last face in the list. -You can automatically rotate colors when the buffer is saved -by adding the following to `local-write-file-hooks', by evaling it in the -buffer to be saved): +You can automatically rotate colors when the buffer is saved by adding +this function to `write-file-functions' as a buffer-local value. To do +this, eval the following in the buffer to be saved: - (add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces) + (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t) \(fn)" t nil) @@ -12370,7 +12620,7 @@ The default is the current buffer and the one in the next window. If either buffer is modified and is visiting a file, you are prompted to save the file. -Unless the buffer is unmodified and visiting a file, the buffer is +Unless the buffer is unmodified and visiting a file, the buffer is written to a temporary file for comparison. If a buffer is read-only, differences will be highlighted but no property @@ -12423,7 +12673,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil). ;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction ;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space ;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp" -;;;;;; "hippie-exp.el" (17107 37380)) +;;;;;; "hippie-exp.el" (17178 22146)) ;;; Generated autoloads from hippie-exp.el (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\ @@ -12496,7 +12746,7 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22146)) ;;; Generated autoloads from hl-line.el (autoload (quote hl-line-mode) "hl-line" "\ @@ -12538,7 +12788,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;*** ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from calendar/holidays.el (autoload (quote holidays) "holidays" "\ @@ -12562,7 +12812,7 @@ The optional LABEL is used to label the buffer created. ;;;*** ;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll) -;;;;;; "hscroll" "obsolete/hscroll.el" (17107 37382)) +;;;;;; "hscroll" "obsolete/hscroll.el" (17178 22152)) ;;; Generated autoloads from obsolete/hscroll.el (autoload (quote turn-on-hscroll) "hscroll" "\ @@ -12588,8 +12838,8 @@ Also see `automatic-hscrolling'. ;;;*** -;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17178 +;;;;;; 22145)) ;;; Generated autoloads from gnus/html2text.el (autoload (quote html2text) "html2text" "\ @@ -12620,7 +12870,7 @@ Convert HTML to plain text in the current buffer. ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode -;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17107 37380)) +;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17178 22146)) ;;; Generated autoloads from ibuf-ext.el (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\ @@ -12981,8 +13231,8 @@ defaults to one. ;;;*** ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter -;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17107 -;;;;;; 37380)) +;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from ibuf-macs.el (autoload (quote define-ibuffer-column) "ibuf-macs" "\ @@ -13068,7 +13318,7 @@ bound to the current value of the filter. ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) -;;;;;; "ibuffer" "ibuffer.el" (17107 37382)) +;;;;;; "ibuffer" "ibuffer.el" (17178 22146)) ;;; Generated autoloads from ibuffer.el (autoload (quote ibuffer-list-buffers) "ibuffer" "\ @@ -13086,22 +13336,22 @@ buffers which are visiting a file. \(fn &optional FILES-ONLY)" t nil) (autoload (quote ibuffer) "ibuffer" "\ -Begin using `ibuffer' to edit a list of buffers. +Begin using Ibuffer to edit a list of buffers. Type 'h' after entering ibuffer for more information. -Optional argument OTHER-WINDOW-P says to use another window. -Optional argument NAME specifies the name of the buffer; it defaults -to \"*Ibuffer*\". -Optional argument QUALIFIERS is an initial set of filtering qualifiers -to use; see `ibuffer-filtering-qualifiers'. -Optional argument NOSELECT means don't select the Ibuffer buffer. -Optional argument SHRINK means shrink the buffer to minimal size. The -special value `onewindow' means always use another window. -Optional argument FILTER-GROUPS is an initial set of filtering -groups to use; see `ibuffer-filter-groups'. -Optional argument FORMATS is the value to use for `ibuffer-formats'. -If specified, then the variable `ibuffer-formats' will have that value -locally in this buffer. +All arguments are optional. +OTHER-WINDOW-P says to use another window. +NAME specifies the name of the buffer (defaults to \"*Ibuffer*\"). +QUALIFIERS is an initial set of filtering qualifiers to use; + see `ibuffer-filtering-qualifiers'. +NOSELECT means don't select the Ibuffer buffer. +SHRINK means shrink the buffer to minimal size. The special + value `onewindow' means always use another window. +FILTER-GROUPS is an initial set of filtering groups to use; + see `ibuffer-filter-groups'. +FORMATS is the value to use for `ibuffer-formats'. + If specified, then the variable `ibuffer-formats' will have + that value locally in this buffer. \(fn &optional OTHER-WINDOW-P NAME QUALIFIERS NOSELECT SHRINK FILTER-GROUPS FORMATS)" t nil) @@ -13109,7 +13359,7 @@ locally in this buffer. ;;;### (autoloads (icalendar-import-buffer icalendar-import-file ;;;;;; icalendar-export-region icalendar-export-file) "icalendar" -;;;;;; "calendar/icalendar.el" (17107 37380)) +;;;;;; "calendar/icalendar.el" (17178 22143)) ;;; Generated autoloads from calendar/icalendar.el (autoload (quote icalendar-export-file) "icalendar" "\ @@ -13161,8 +13411,8 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ @@ -13183,7 +13433,7 @@ With a numeric argument, turn Icomplete mode on iff ARG is positive. ;;;*** -;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17107 37381)) +;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17178 22153)) ;;; Generated autoloads from progmodes/icon.el (autoload (quote icon-mode) "icon" "\ @@ -13224,7 +13474,7 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload (quote idlwave-shell) "idlw-shell" "\ @@ -13250,7 +13500,7 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from progmodes/idlwave.el (autoload (quote idlwave-mode) "idlwave" "\ @@ -13386,8 +13636,8 @@ The main features of this mode are ;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window -;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17107 -;;;;;; 37380)) +;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -13648,7 +13898,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads (ielm) "ielm" "ielm.el" (17107 37382)) +;;;### (autoloads (ielm) "ielm" "ielm.el" (17178 22146)) ;;; Generated autoloads from ielm.el (add-hook 'same-window-buffer-names "*ielm*") @@ -13661,7 +13911,7 @@ Switches to the buffer `*ielm*', or creates it if it does not exist. ;;;*** ;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22146)) ;;; Generated autoloads from iimage.el (autoload (quote turn-on-iimage-mode) "iimage" "\ @@ -13679,7 +13929,7 @@ Toggle inline image minor mode. ;;;### (autoloads (defimage find-image remove-images insert-sliced-image ;;;;;; insert-image put-image create-image image-type-available-p ;;;;;; image-type-from-file-header image-type-from-data) "image" -;;;;;; "image.el" (17107 37380)) +;;;;;; "image.el" (17178 22146)) ;;; Generated autoloads from image.el (autoload (quote image-type-from-data) "image" "\ @@ -13812,7 +14062,7 @@ Example: ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp ;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" -;;;;;; "image-file.el" (17107 37382)) +;;;;;; "image-file.el" (17178 22146)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\ @@ -13875,7 +14125,7 @@ Image files are those whose name has an extension in ;;;*** ;;;### (autoloads (image-mode-maybe image-minor-mode image-mode) -;;;;;; "image-mode" "image-mode.el" (17107 37382)) +;;;;;; "image-mode" "image-mode.el" (17178 20481)) ;;; Generated autoloads from image-mode.el (push '("\\.jpe?g\\'" . image-mode) auto-mode-alist) (push '("\\.png\\'" . image-mode) auto-mode-alist) @@ -13913,7 +14163,7 @@ information on these modes. ;;;*** ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar -;;;;;; imenu-sort-function) "imenu" "imenu.el" (17107 37381)) +;;;;;; imenu-sort-function) "imenu" "imenu.el" (17178 22146)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -14033,7 +14283,7 @@ for more information. ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion ;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) -;;;;;; "ind-util" "language/ind-util.el" (17107 37382)) +;;;;;; "ind-util" "language/ind-util.el" (17178 20481)) ;;; Generated autoloads from language/ind-util.el (autoload (quote indian-compose-region) "ind-util" "\ @@ -14076,7 +14326,7 @@ See also the function `indian-glyph-char'. ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command ;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp" -;;;;;; "progmodes/inf-lisp.el" (17107 37381)) +;;;;;; "progmodes/inf-lisp.el" (17178 22153)) ;;; Generated autoloads from progmodes/inf-lisp.el (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\ @@ -14140,10 +14390,10 @@ of `inferior-lisp-program'). Runs the hooks from ;;;*** -;;;### (autoloads (Info-restore-desktop-buffer Info-speedbar-browser -;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node -;;;;;; info-apropos Info-index Info-directory info-standalone info-emacs-manual -;;;;;; info info-other-window) "info" "info.el" (17107 37382)) +;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node +;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index +;;;;;; Info-directory info-standalone info-emacs-manual info info-other-window) +;;;;;; "info" "info.el" (17178 22146)) ;;; Generated autoloads from info.el (autoload (quote info-other-window) "info" "\ @@ -14206,6 +14456,71 @@ Grovel indices of all known Info files on your system for STRING. Build a menu of the possible matches. \(fn STRING)" t nil) + +(autoload (quote Info-mode) "info" "\ +Info mode provides commands for browsing through the Info documentation tree. +Documentation in Info is divided into \"nodes\", each of which discusses +one topic and contains references to other nodes which discuss related +topics. Info has commands to follow the references and show you other nodes. + +\\<Info-mode-map>\\[Info-help] Invoke the Info tutorial. +\\[Info-exit] Quit Info: reselect previously selected buffer. + +Selecting other nodes: +\\[Info-mouse-follow-nearest-node] + Follow a node reference you click on. + This works with menu items, cross references, and + the \"next\", \"previous\" and \"up\", depending on where you click. +\\[Info-follow-nearest-node] Follow a node reference near point, like \\[Info-mouse-follow-nearest-node]. +\\[Info-next] Move to the \"next\" node of this node. +\\[Info-prev] Move to the \"previous\" node of this node. +\\[Info-up] Move \"up\" from this node. +\\[Info-menu] Pick menu item specified by name (or abbreviation). + Picking a menu item causes another node to be selected. +\\[Info-directory] Go to the Info directory node. +\\[Info-follow-reference] Follow a cross reference. Reads name of reference. +\\[Info-history-back] Move back in history to the last node you were at. +\\[Info-history-forward] Move forward in history to the node you returned from after using \\[Info-history-back]. +\\[Info-history] Go to menu of visited nodes. +\\[Info-toc] Go to table of contents of the current Info file. +\\[Info-top-node] Go to the Top node of this file. +\\[Info-final-node] Go to the final node in this file. +\\[Info-backward-node] Go backward one node, considering all nodes as forming one sequence. +\\[Info-forward-node] Go forward one node, considering all nodes as forming one sequence. +\\[Info-index] Look up a topic in this file's Index and move to that node. +\\[Info-index-next] (comma) Move to the next match from a previous \\<Info-mode-map>\\[Info-index] command. +\\[info-apropos] Look for a string in the indices of all manuals. + +Moving within a node: +\\[Info-scroll-up] Normally, scroll forward a full screen. + Once you scroll far enough in a node that its menu appears on the + screen but after point, the next scroll moves into its first + subnode. When after all menu items (or if there is no menu), + move up to the parent node. +\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is + already visible, try to go to the previous menu entry, or up + if there is none. +\\[beginning-of-buffer] Go to beginning of node. + +Advanced commands: +\\[Info-copy-current-node-name] Put name of current Info node in the kill ring. +\\[clone-buffer] Select a new cloned Info buffer in another window. +\\[Info-edit] Edit contents of selected node. +1 .. 9 Pick first ... ninth item in node's menu. + Every third `*' is highlighted to help pick the right number. +\\[Info-goto-node] Move to node specified by name. + You may include a filename as well, as (FILENAME)NODENAME. +\\[universal-argument] \\[info] Move to new Info file with completion. +\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>. +\\[Info-search] Search through this Info file for specified regexp, + and select the node in which the next occurrence is found. +\\[Info-search-case-sensitively] Search through this Info file for specified regexp case-sensitively. +\\[Info-search-next] Search for another occurrence of regexp + from a previous \\<Info-mode-map>\\[Info-search] command. +\\[Info-next-reference] Move cursor to next cross-reference or menu item. +\\[Info-prev-reference] Move cursor to previous cross-reference or menu item. + +\(fn)" nil nil) (put 'Info-goto-emacs-command-node 'info-file "emacs") (autoload (quote Info-goto-emacs-command-node) "info" "\ @@ -14229,21 +14544,16 @@ the variable `Info-file-list-for-emacs'. \(fn KEY)" t nil) (autoload (quote Info-speedbar-browser) "info" "\ -Initialize speedbar to display an info node browser. +Initialize speedbar to display an Info node browser. This will add a speedbar major display mode. \(fn)" t nil) -(autoload (quote Info-restore-desktop-buffer) "info" "\ -Restore an info buffer specified in a desktop file. - -\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil) - ;;;*** ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file ;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22146)) ;;; Generated autoloads from info-look.el (autoload (quote info-lookup-reset) "info-look" "\ @@ -14291,7 +14601,7 @@ Perform completion on file preceding point. ;;;*** ;;;### (autoloads (info-xref-check-all-custom info-xref-check-all -;;;;;; info-xref-check) "info-xref" "info-xref.el" (17107 37380)) +;;;;;; info-xref-check) "info-xref" "info-xref.el" (17178 22146)) ;;; Generated autoloads from info-xref.el (autoload (quote info-xref-check) "info-xref" "\ @@ -14318,7 +14628,7 @@ quite a while. ;;;*** ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify) -;;;;;; "informat" "informat.el" (17107 37380)) +;;;;;; "informat" "informat.el" (17178 22146)) ;;; Generated autoloads from informat.el (autoload (quote Info-tagify) "informat" "\ @@ -14359,7 +14669,7 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method ;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22146)) ;;; Generated autoloads from international/isearch-x.el (autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\ @@ -14379,8 +14689,8 @@ Not documented ;;;*** -;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17178 +;;;;;; 22147)) ;;; Generated autoloads from isearchb.el (autoload (quote isearchb-activate) "isearchb" "\ @@ -14394,7 +14704,7 @@ accessed via isearchb. ;;;*** ;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el" -;;;;;; (17107 37228)) +;;;;;; (17178 22152)) ;;; Generated autoloads from obsolete/iso-acc.el (autoload (quote iso-accents-mode) "iso-acc" "\ @@ -14427,7 +14737,7 @@ and a negative argument disables it. ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only ;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso ;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" -;;;;;; "international/iso-cvt.el" (17107 37380)) +;;;;;; "international/iso-cvt.el" (17178 20480)) ;;; Generated autoloads from international/iso-cvt.el (autoload (quote iso-spanish) "iso-cvt" "\ @@ -14511,7 +14821,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (17107 37228)) +;;;;;; (17178 20504)) ;;; Generated autoloads from international/iso-transl.el (or key-translation-map (setq key-translation-map (make-sparse-keymap))) (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) @@ -14524,7 +14834,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist ;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/ispell.el (defvar ispell-personal-dictionary nil "\ @@ -14620,9 +14930,7 @@ and added as a submenu of the \"Edit\" menu.") (defvar ispell-menu-map-needed (and (not ispell-menu-map) (not (featurep (quote xemacs))) (quote reload))) -(if ispell-menu-map-needed (let ((dicts (if (fboundp (quote ispell-valid-dictionary-list)) (ispell-valid-dictionary-list) (mapcar (lambda (x) (or (car x) "default")) ispell-dictionary-alist))) (dict-map (make-sparse-keymap "Dictionaries"))) (setq ispell-menu-map (make-sparse-keymap "Spell")) (if (not dicts) (define-key ispell-menu-map [default] (quote ("Select Default Dict" "Dictionary for which Ispell was configured" lambda nil (interactive) (ispell-change-dictionary "default"))))) (fset (quote ispell-dict-map) dict-map) (define-key ispell-menu-map [dictionaries] (\` (menu-item "Select Dict" ispell-dict-map))) (dolist (name dicts) (define-key dict-map (vector (intern name)) (cons (concat "Select " (capitalize name) " Dict") (\` (lambda nil (interactive) (ispell-change-dictionary (\, name))))))))) - -(if ispell-menu-map-needed (progn (define-key ispell-menu-map [ispell-change-dictionary] (quote (menu-item "Change Dictionary..." ispell-change-dictionary :help "Supply explicit dictionary file name"))) (define-key ispell-menu-map [ispell-kill-ispell] (quote (menu-item "Kill Process" ispell-kill-ispell :enable (and (boundp (quote ispell-process)) ispell-process (eq (ispell-process-status) (quote run))) :help "Terminate Ispell subprocess"))) (define-key ispell-menu-map [ispell-pdict-save] (quote (menu-item "Save Dictionary" (lambda nil (interactive) (ispell-pdict-save t t)) :help "Save personal dictionary"))) (define-key ispell-menu-map [ispell-customize] (quote (menu-item "Customize..." (lambda nil (interactive) (customize-group (quote ispell))) :help "Customize spell checking options"))) (define-key ispell-menu-map [ispell-help] (quote (menu-item "Help" (lambda nil (interactive) (describe-function (quote ispell-help))) :help "Show standard Ispell keybindings and commands"))) (define-key ispell-menu-map [flyspell-mode] (quote (menu-item "Automatic spell checking (Flyspell)" flyspell-mode :help "Check spelling while you edit the text" :button (:toggle bound-and-true-p flyspell-mode)))) (define-key ispell-menu-map [ispell-complete-word] (quote (menu-item "Complete Word" ispell-complete-word :help "Complete word at cursor using dictionary"))) (define-key ispell-menu-map [ispell-complete-word-interior-frag] (quote (menu-item "Complete Word Fragment" ispell-complete-word-interior-frag :help "Complete word fragment at cursor"))))) +(if ispell-menu-map-needed (progn (setq ispell-menu-map (make-sparse-keymap "Spell")) (define-key ispell-menu-map [ispell-change-dictionary] (quote (menu-item "Change Dictionary..." ispell-change-dictionary :help "Supply explicit dictionary file name"))) (define-key ispell-menu-map [ispell-kill-ispell] (quote (menu-item "Kill Process" ispell-kill-ispell :enable (and (boundp (quote ispell-process)) ispell-process (eq (ispell-process-status) (quote run))) :help "Terminate Ispell subprocess"))) (define-key ispell-menu-map [ispell-pdict-save] (quote (menu-item "Save Dictionary" (lambda nil (interactive) (ispell-pdict-save t t)) :help "Save personal dictionary"))) (define-key ispell-menu-map [ispell-customize] (quote (menu-item "Customize..." (lambda nil (interactive) (customize-group (quote ispell))) :help "Customize spell checking options"))) (define-key ispell-menu-map [ispell-help] (quote (menu-item "Help" (lambda nil (interactive) (describe-function (quote ispell-help))) :help "Show standard Ispell keybindings and commands"))) (define-key ispell-menu-map [flyspell-mode] (quote (menu-item "Automatic spell checking (Flyspell)" flyspell-mode :help "Check spelling while you edit the text" :button (:toggle bound-and-true-p flyspell-mode)))) (define-key ispell-menu-map [ispell-complete-word] (quote (menu-item "Complete Word" ispell-complete-word :help "Complete word at cursor using dictionary"))) (define-key ispell-menu-map [ispell-complete-word-interior-frag] (quote (menu-item "Complete Word Fragment" ispell-complete-word-interior-frag :help "Complete word fragment at cursor"))))) (if ispell-menu-map-needed (progn (define-key ispell-menu-map [ispell-continue] (quote (menu-item "Continue Spell-Checking" ispell-continue :enable (and (boundp (quote ispell-region-end)) (marker-position ispell-region-end) (equal (marker-buffer ispell-region-end) (current-buffer))) :help "Continue spell checking last region"))) (define-key ispell-menu-map [ispell-word] (quote (menu-item "Spell-Check Word" ispell-word :help "Spell-check word at cursor"))) (define-key ispell-menu-map [ispell-comments-and-strings] (quote (menu-item "Spell-Check Comments" ispell-comments-and-strings :help "Spell-check only comments and strings"))))) @@ -14812,8 +15120,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** -;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17178 +;;;;;; 22147)) ;;; Generated autoloads from iswitchb.el (defvar iswitchb-mode nil "\ @@ -14839,7 +15147,7 @@ This mode enables switching between buffers using substrings. See ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region ;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku ;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) -;;;;;; "japan-util" "language/japan-util.el" (17107 37382)) +;;;;;; "japan-util" "language/japan-util.el" (17178 20481)) ;;; Generated autoloads from language/japan-util.el (autoload (quote setup-japanese-environment-internal) "japan-util" "\ @@ -14916,8 +15224,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** -;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (17107 -;;;;;; 37383)) +;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (17178 +;;;;;; 22147)) ;;; Generated autoloads from jit-lock.el (autoload (quote jit-lock-register) "jit-lock" "\ @@ -14931,7 +15239,7 @@ If non-nil, CONTEXTUAL means that a contextual fontification would be useful. ;;;*** ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr" -;;;;;; "jka-compr.el" (17107 37380)) +;;;;;; "jka-compr.el" (17178 22147)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -14956,7 +15264,7 @@ by `jka-compr-installed'. ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup ;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -15012,7 +15320,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from international/kinsoku.el (autoload (quote kinsoku) "kinsoku" "\ @@ -15033,8 +15341,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17178 +;;;;;; 20480)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -15059,7 +15367,7 @@ and the return value is the length of the conversion. ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro ;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter ;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro" -;;;;;; "kmacro.el" (17107 37381)) +;;;;;; "kmacro.el" (17178 22147)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -15166,7 +15474,7 @@ If kbd macro currently being defined end it before activating it. ;;;### (autoloads (kannada-post-read-conversion kannada-compose-string ;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from language/knd-util.el (defconst kannada-consonant "[\x51f75-\x51fb9]") @@ -15189,7 +15497,7 @@ Not documented ;;;*** ;;;### (autoloads (setup-korean-environment-internal) "korea-util" -;;;;;; "language/korea-util.el" (17107 37382)) +;;;;;; "language/korea-util.el" (17178 20481)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\ @@ -15204,7 +15512,7 @@ Not documented ;;;*** ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from play/landmark.el (defalias (quote landmark-repeat) (quote lm-test-run)) @@ -15238,8 +15546,8 @@ Use \\[describe-mode] for more info. ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion ;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao -;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17107 -;;;;;; 37382)) +;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17178 +;;;;;; 20481)) ;;; Generated autoloads from language/lao-util.el (autoload (quote lao-compose-string) "lao-util" "\ @@ -15288,7 +15596,7 @@ Not documented ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc ;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist) -;;;;;; "latexenc" "international/latexenc.el" (17107 37380)) +;;;;;; "latexenc" "international/latexenc.el" (17178 20480)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -15319,7 +15627,7 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) -;;;;;; "latin1-disp" "international/latin1-disp.el" (17107 37380)) +;;;;;; "latin1-disp" "international/latin1-disp.el" (17178 20480)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -15363,7 +15671,7 @@ use either \\[customize] or the function `latin1-display'.") ;;;*** ;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock" -;;;;;; "obsolete/lazy-lock.el" (17107 37382)) +;;;;;; "obsolete/lazy-lock.el" (17178 22152)) ;;; Generated autoloads from obsolete/lazy-lock.el (autoload (quote lazy-lock-mode) "lazy-lock" "\ @@ -15431,7 +15739,7 @@ Unconditionally turn on Lazy Lock mode. ;;;*** ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/ld-script.el (add-to-list (quote auto-mode-alist) (quote ("\\.lds" . ld-script-mode))) @@ -15444,7 +15752,7 @@ A major mode to edit GNU ld script files ;;;*** ;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22149)) ;;; Generated autoloads from ledit.el (defconst ledit-save-files t "\ @@ -15478,7 +15786,7 @@ Not documented ;;;*** -;;;### (autoloads (life) "life" "play/life.el" (17107 37380)) +;;;### (autoloads (life) "life" "play/life.el" (17178 22152)) ;;; Generated autoloads from play/life.el (autoload (quote life) "life" "\ @@ -15491,8 +15799,8 @@ generations (this defaults to 1). ;;;*** -;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from loadhist.el (autoload (quote unload-feature) "loadhist" "\ @@ -15515,7 +15823,7 @@ such as redefining an Emacs function. ;;;*** ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches) -;;;;;; "locate" "locate.el" (17107 37381)) +;;;;;; "locate" "locate.el" (17178 22150)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches "-al" "\ @@ -15540,7 +15848,7 @@ shown; this is often useful to constrain a big search. ;;;*** -;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17107 37380)) +;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17178 22150)) ;;; Generated autoloads from log-edit.el (autoload (quote log-edit) "log-edit" "\ @@ -15561,8 +15869,8 @@ If BUFFER is non-nil `log-edit' will jump to that buffer, use it to edit the ;;;*** -;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from log-view.el (autoload (quote log-view-mode) "log-view" "\ @@ -15572,8 +15880,8 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from longlines.el (autoload (quote longlines-mode) "longlines" "\ @@ -15594,8 +15902,8 @@ are indicated with a symbol. ;;;*** ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer -;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17107 -;;;;;; 37380)) +;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt)))) @@ -15689,7 +15997,7 @@ for further customization of the printer command. ;;;*** ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22150)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -15700,8 +16008,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17178 +;;;;;; 22143)) ;;; Generated autoloads from calendar/lunar.el (autoload (quote phases-of-moon) "lunar" "\ @@ -15714,8 +16022,8 @@ This function is suitable for execution in a .emacs file. ;;;*** -;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload (quote m4-mode) "m4-mode" "\ @@ -15727,7 +16035,7 @@ A major mode to edit m4 macro files. ;;;*** ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/macroexp.el (autoload (quote macroexpand-all) "macroexp" "\ @@ -15741,7 +16049,7 @@ definitions to shadow the loaded ones for use in file byte-compilation. ;;;*** ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro -;;;;;; name-last-kbd-macro) "macros" "macros.el" (17107 37380)) +;;;;;; name-last-kbd-macro) "macros" "macros.el" (17178 22150)) ;;; Generated autoloads from macros.el (autoload (quote name-last-kbd-macro) "macros" "\ @@ -15830,7 +16138,7 @@ and then select the region of un-tablified names and use ;;;*** ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" -;;;;;; "mail/mail-extr.el" (17107 37380)) +;;;;;; "mail/mail-extr.el" (17178 22150)) ;;; Generated autoloads from mail/mail-extr.el (autoload (quote mail-extract-address-components) "mail-extr" "\ @@ -15861,7 +16169,7 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history ;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22150)) ;;; Generated autoloads from mail/mail-hist.el (autoload (quote mail-hist-define-keys) "mail-hist" "\ @@ -15892,8 +16200,8 @@ This function normally would be called when the message is sent. ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region ;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p -;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17107 -;;;;;; 37380)) +;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -15945,7 +16253,7 @@ If 4th arg LIST is non-nil, return a list of all such fields. ;;;*** ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) -;;;;;; "mailabbrev" "mail/mailabbrev.el" (17107 37380)) +;;;;;; "mailabbrev" "mail/mailabbrev.el" (17178 22150)) ;;; Generated autoloads from mail/mailabbrev.el (autoload (quote mail-abbrevs-setup) "mailabbrev" "\ @@ -15968,8 +16276,8 @@ If DEFINITION contains multiple addresses, separate them with commas. ;;;*** ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases -;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17107 -;;;;;; 37379)) +;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17178 +;;;;;; 22150)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style (quote angles) "\ @@ -16016,7 +16324,7 @@ current header, calls `mail-complete-function' and passes prefix arg if any. ;;;### (autoloads (makefile-bsdmake-mode makefile-makepp-mode makefile-gmake-mode ;;;;;; makefile-automake-mode makefile-mode) "make-mode" "progmodes/make-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/make-mode.el (autoload (quote makefile-mode) "make-mode" "\ @@ -16128,8 +16436,8 @@ An adapted `makefile-mode' that knows about BSD make. ;;;*** -;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from makesum.el (autoload (quote make-command-summary) "makesum" "\ @@ -16140,7 +16448,7 @@ Previous contents of that buffer are killed first. ;;;*** -;;;### (autoloads (man-follow man) "man" "man.el" (17107 37380)) +;;;### (autoloads (man-follow man) "man" "man.el" (17178 22151)) ;;; Generated autoloads from man.el (defalias (quote manual-entry) (quote man)) @@ -16167,7 +16475,7 @@ Get a Un*x manual page of the item under point and put it in a buffer. ;;;*** -;;;### (autoloads (master-mode) "master" "master.el" (17107 37380)) +;;;### (autoloads (master-mode) "master" "master.el" (17178 22151)) ;;; Generated autoloads from master.el (autoload (quote master-mode) "master" "\ @@ -16189,8 +16497,8 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** -;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from menu-bar.el (put (quote menu-bar-mode) (quote standard-value) (quote (t))) @@ -16229,7 +16537,7 @@ turn on menu bars; otherwise, turn off menu bars. ;;;;;; message-signature message-indent-citation-function message-cite-function ;;;;;; message-yank-prefix message-citation-line-function message-send-mail-function ;;;;;; message-user-organization-file message-signature-separator -;;;;;; message-from-style) "message" "gnus/message.el" (17107 37379)) +;;;;;; message-from-style) "message" "gnus/message.el" (17178 22145)) ;;; Generated autoloads from gnus/message.el (defvar message-from-style (quote default) "\ @@ -16535,7 +16843,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload (quote metafont-mode) "meta-mode" "\ @@ -16562,7 +16870,7 @@ Turning on MetaPost mode calls the value of the variable ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body ;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22150)) ;;; Generated autoloads from mail/metamail.el (autoload (quote metamail-interpret-header) "metamail" "\ @@ -16606,8 +16914,8 @@ redisplayed as output is inserted. ;;;*** ;;;### (autoloads (mh-letter-mode mh-smail-other-window mh-user-agent-compose -;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (17107 -;;;;;; 37380)) +;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (17178 +;;;;;; 20480)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload (quote mh-smail) "mh-comp" "\ @@ -16681,8 +16989,8 @@ When a message is composed, the hooks `text-mode-hook' and ;;;*** -;;;### (autoloads (mh-restore-desktop-buffer mh-version mh-nmail -;;;;;; mh-rmail) "mh-e" "mh-e/mh-e.el" (17107 37380)) +;;;### (autoloads (mh-folder-mode mh-version mh-nmail mh-rmail) "mh-e" +;;;;;; "mh-e/mh-e.el" (17178 22151)) ;;; Generated autoloads from mh-e/mh-e.el (autoload (quote mh-rmail) "mh-e" "\ @@ -16704,18 +17012,63 @@ Display version information about MH-E and the MH mail handling system. \(fn)" t nil) -(autoload (quote mh-restore-desktop-buffer) "mh-e" "\ -Restore an MH folder buffer specified in a desktop file. -When desktop creates a buffer, DESKTOP-BUFFER-FILE-NAME holds the file name to -visit, DESKTOP-BUFFER-NAME holds the desired buffer name, and -DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the -`desktop-buffer-handlers' functions. +(autoload (quote mh-folder-mode) "mh-e" "\ +Major MH-E mode for \"editing\" an MH folder scan listing.\\<mh-folder-mode-map> + +You can show the message the cursor is pointing to, and step through the +messages. Messages can be marked for deletion or refiling into another +folder; these commands are executed all at once with a separate command. + +Options that control this mode can be changed with \\[customize-group]; +specify the \"mh\" group. In particular, please see the `mh-scan-format-file' +option if you wish to modify scan's format. + +When a folder is visited, the hook `mh-folder-mode-hook' is run. + +Ranges +====== +Many commands that operate on individual messages, such as `mh-forward' or +`mh-refile-msg' take a RANGE argument. This argument can be used in several +ways. + +If you provide the prefix argument (\\[universal-argument]) to these commands, +then you will be prompted for the message range. This can be any valid MH +range which can include messages, sequences, and the abbreviations (described +in the mh(1) man page): + +<num1>-<num2> + Indicates all messages in the range <num1> to <num2>, inclusive. The range + must be nonempty. + +`<num>:N' +`<num>:+N' +`<num>:-N' + Up to N messages beginning with (or ending with) message num. Num may be + any of the pre-defined symbols: first, prev, cur, next or last. -\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil) +`first:N' +`prev:N' +`next:N' +`last:N' + The first, previous, next or last messages, if they exist. + +`all' + All of the messages. + +For example, a range that shows all of these things is `1 2 3 5-10 last:5 +unseen'. + +If the option `transient-mark-mode' is set to t and you set a region in the +MH-Folder buffer, then the MH-E command will perform the operation on all +messages in that region. + +\\{mh-folder-mode-map} + +\(fn)" t nil) ;;;*** -;;;### (autoloads nil "mh-init" "mh-e/mh-init.el" (17107 37380)) +;;;### (autoloads nil "mh-init" "mh-e/mh-init.el" (17178 20480)) ;;; Generated autoloads from mh-e/mh-init.el (put (quote mh-progs) (quote risky-local-variable) t) @@ -16727,7 +17080,7 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the ;;;*** ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight" -;;;;;; "midnight.el" (17107 37380)) +;;;;;; "midnight.el" (17178 22151)) ;;; Generated autoloads from midnight.el (autoload (quote clean-buffer-list) "midnight" "\ @@ -16754,7 +17107,7 @@ to its second argument TM. ;;;*** ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" -;;;;;; "minibuf-eldef.el" (17107 37380)) +;;;;;; "minibuf-eldef.el" (17178 22151)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ @@ -16783,7 +17136,7 @@ Returns non-nil if the new state is enabled. ;;;*** ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/mixal-mode.el (autoload (quote mixal-mode) "mixal-mode" "\ @@ -16798,7 +17151,7 @@ Major mode for the mixal asm language. ;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion ;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el" -;;;;;; (17107 37382)) +;;;;;; (17178 20481)) ;;; Generated autoloads from language/mlm-util.el (autoload (quote malayalam-compose-region) "mlm-util" "\ @@ -16821,7 +17174,7 @@ PATTERN regexp. ;;;*** ;;;### (autoloads (mm-inline-external-body) "mm-extern" "gnus/mm-extern.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/mm-extern.el (autoload (quote mm-inline-external-body) "mm-extern" "\ @@ -16835,7 +17188,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/mm-partial.el (autoload (quote mm-inline-partial) "mm-partial" "\ @@ -16849,7 +17202,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents) -;;;;;; "mm-url" "gnus/mm-url.el" (17107 37379)) +;;;;;; "mm-url" "gnus/mm-url.el" (17178 22146)) ;;; Generated autoloads from gnus/mm-url.el (autoload (quote mm-url-insert-file-contents) "mm-url" "\ @@ -16865,8 +17218,8 @@ Insert file contents of URL using `mm-url-program'. ;;;*** -;;;### (autoloads (mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from gnus/mm-uu.el (autoload (quote mm-uu-dissect) "mm-uu" "\ @@ -16877,7 +17230,7 @@ Dissect the current buffer and return a list of uu handles. ;;;*** ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/mml1991.el (autoload (quote mml1991-encrypt) "mml1991" "\ @@ -16894,7 +17247,7 @@ Not documented ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt ;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt) -;;;;;; "mml2015" "gnus/mml2015.el" (17107 37379)) +;;;;;; "mml2015" "gnus/mml2015.el" (17178 22146)) ;;; Generated autoloads from gnus/mml2015.el (autoload (quote mml2015-decrypt) "mml2015" "\ @@ -16935,7 +17288,7 @@ Not documented ;;;*** ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el" -;;;;;; (17107 37381)) +;;;;;; (17178 20481)) ;;; Generated autoloads from progmodes/modula2.el (autoload (quote modula-2-mode) "modula2" "\ @@ -16967,7 +17320,7 @@ followed by the first character of the construct. ;;;*** ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from play/morse.el (autoload (quote morse-region) "morse" "\ @@ -16982,8 +17335,8 @@ Convert morse coded text in region to ordinary ASCII text. ;;;*** -;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from mouse-sel.el (defvar mouse-sel-mode nil "\ @@ -17036,7 +17389,7 @@ primary selection and region. ;;;*** -;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17107 37380)) +;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17178 22152)) ;;; Generated autoloads from play/mpuz.el (autoload (quote mpuz) "mpuz" "\ @@ -17046,7 +17399,7 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads (msb-mode) "msb" "msb.el" (17107 37380)) +;;;### (autoloads (msb-mode) "msb" "msb.el" (17178 22151)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ @@ -17074,7 +17427,7 @@ different buffer menu using the function `msb'. ;;;;;; describe-current-coding-system describe-current-coding-system-briefly ;;;;;; describe-coding-system describe-character-set list-charset-chars ;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from international/mule-diag.el (defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\ @@ -17247,7 +17600,7 @@ system which uses fontsets). ;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion ;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist ;;;;;; truncate-string-to-width store-substring string-to-sequence) -;;;;;; "mule-util" "international/mule-util.el" (17107 37380)) +;;;;;; "mule-util" "international/mule-util.el" (17178 20480)) ;;; Generated autoloads from international/mule-util.el (autoload (quote string-to-sequence) "mule-util" "\ @@ -17376,7 +17729,7 @@ basis, this may not be accurate. ;;;*** ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mwheel.el (defvar mouse-wheel-mode nil "\ @@ -17404,9 +17757,9 @@ Enable mouse wheel support. ;;;*** ;;;### (autoloads (network-connection network-connection-to-service -;;;;;; whois-reverse-lookup whois finger ftp dig dns-lookup-host +;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host ;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute) -;;;;;; "net-utils" "net/net-utils.el" (17107 37379)) +;;;;;; "net-utils" "net/net-utils.el" (17178 22151)) ;;; Generated autoloads from net/net-utils.el (autoload (quote traceroute) "net-utils" "\ @@ -17458,7 +17811,7 @@ Lookup the DNS information for HOST (name or IP address). \(fn HOST)" t nil) -(autoload (quote dig) "net-utils" "\ +(autoload (quote run-dig) "net-utils" "\ Run dig program. \(fn HOST)" t nil) @@ -17502,7 +17855,7 @@ Open a network connection to HOST on PORT. ;;;;;; comment-kill comment-set-column comment-indent comment-indent-default ;;;;;; comment-normalize-vars comment-multi-line comment-padding ;;;;;; comment-style comment-column) "newcomment" "newcomment.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22151)) ;;; Generated autoloads from newcomment.el (defalias (quote indent-for-comment) (quote comment-indent)) @@ -17684,7 +18037,7 @@ unless optional argument SOFT is non-nil. ;;;*** ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/nndiary.el (autoload (quote nndiary-generate-nov-databases) "nndiary" "\ @@ -17694,8 +18047,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from gnus/nndoc.el (autoload (quote nndoc-add-type) "nndoc" "\ @@ -17710,7 +18063,7 @@ symbol in the alist. ;;;*** ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/nnfolder.el (autoload (quote nnfolder-generate-active-file) "nnfolder" "\ @@ -17722,7 +18075,7 @@ This command does not work if you use short group names. ;;;*** ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/nnkiboze.el (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\ @@ -17734,7 +18087,7 @@ Finds out what articles are to be part of the nnkiboze groups. ;;;*** ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/nnml.el (autoload (quote nnml-generate-nov-databases) "nnml" "\ @@ -17745,7 +18098,7 @@ Generate NOV databases in all nnml directories. ;;;*** ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies) -;;;;;; "nnsoup" "gnus/nnsoup.el" (17107 37379)) +;;;;;; "nnsoup" "gnus/nnsoup.el" (17178 22146)) ;;; Generated autoloads from gnus/nnsoup.el (autoload (quote nnsoup-pack-replies) "nnsoup" "\ @@ -17766,15 +18119,14 @@ Revert posting and mailing methods to the standard Emacs methods. ;;;*** ;;;### (autoloads (disable-command enable-command disabled-command-function) -;;;;;; "novice" "novice.el" (17107 37381)) +;;;;;; "novice" "novice.el" (17178 22151)) ;;; Generated autoloads from novice.el (defvar disabled-command-function (quote disabled-command-function) "\ Function to call to handle disabled commands. If nil, the feature is disabled, i.e., all commands work normally.") -(defvaralias (quote disabled-command-hook) (quote disabled-command-function)) - (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1") +(define-obsolete-variable-alias (quote disabled-command-hook) (quote disabled-command-function) "22.1") (autoload (quote disabled-command-function) "novice" "\ Not documented @@ -17800,7 +18152,7 @@ to future sessions. ;;;*** ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload (quote nroff-mode) "nroff-mode" "\ @@ -17815,7 +18167,7 @@ closing requests for requests that are used in matched pairs. ;;;*** ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/octave-hlp.el (autoload (quote octave-help) "octave-hlp" "\ @@ -17829,7 +18181,7 @@ If KEY is not a string, prompt for it with completion. ;;;*** ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/octave-inf.el (autoload (quote inferior-octave) "octave-inf" "\ @@ -17852,7 +18204,7 @@ startup file, `~/.emacs-octave'. ;;;*** ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/octave-mod.el (autoload (quote octave-mode) "octave-mod" "\ @@ -17951,7 +18303,7 @@ including a reproducible test case and send the message. ;;;*** ;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22152)) ;;; Generated autoloads from obsolete/options.el (autoload (quote list-options) "options" "\ @@ -17974,8 +18326,8 @@ The Custom feature is intended to make this obsolete. ;;;### (autoloads (orgtbl-mode turn-on-orgtbl org-remember-handler ;;;;;; org-remember-annotation org-store-link org-diary org-agenda -;;;;;; org-agenda-mode org-mode) "org" "textmodes/org.el" (17107 -;;;;;; 37381)) +;;;;;; org-agenda-mode org-mode) "org" "textmodes/org.el" (17178 +;;;;;; 22154)) ;;; Generated autoloads from textmodes/org.el (autoload (quote org-mode) "org" "\ @@ -18133,7 +18485,7 @@ The `org-mode' table editor as a minor mode for use in other modes. ;;;*** ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from outline.el (autoload (quote outline-mode) "outline" "\ @@ -18188,7 +18540,7 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17107 37380)) +;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17178 22152)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -18214,7 +18566,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time. ;;;*** ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from calendar/parse-time.el (autoload (quote parse-time-string) "parse-time" "\ @@ -18226,8 +18578,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/pascal.el (autoload (quote pascal-mode) "pascal" "\ @@ -18280,7 +18632,7 @@ no args, if that value is non-nil. ;;;*** ;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/pc-mode.el (autoload (quote pc-bindings-mode) "pc-mode" "\ @@ -18298,7 +18650,7 @@ C-Escape does list-buffers. ;;;*** ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select" -;;;;;; "emulation/pc-select.el" (17107 37380)) +;;;;;; "emulation/pc-select.el" (17178 22144)) ;;; Generated autoloads from emulation/pc-select.el (defvar pc-selection-mode nil "\ @@ -18375,8 +18727,8 @@ you must modify it using \\[customize] or \\[pc-selection-mode].") ;;;*** -;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from pcmpl-cvs.el (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\ @@ -18387,7 +18739,7 @@ Completion rules for the `cvs' command. ;;;*** ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip) -;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17107 37380)) +;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17178 22152)) ;;; Generated autoloads from pcmpl-gnu.el (autoload (quote pcomplete/gzip) "pcmpl-gnu" "\ @@ -18415,7 +18767,7 @@ Completion for the GNU tar utility. ;;;*** ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill) -;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17107 37380)) +;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17178 22152)) ;;; Generated autoloads from pcmpl-linux.el (autoload (quote pcomplete/kill) "pcmpl-linux" "\ @@ -18435,8 +18787,8 @@ Completion for GNU/Linux `mount'. ;;;*** -;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from pcmpl-rpm.el (autoload (quote pcomplete/rpm) "pcmpl-rpm" "\ @@ -18452,7 +18804,7 @@ You can use \\[eshell-report-bug] to do so. ;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which ;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd) -;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17107 37381)) +;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17178 22152)) ;;; Generated autoloads from pcmpl-unix.el (autoload (quote pcomplete/cd) "pcmpl-unix" "\ @@ -18498,8 +18850,8 @@ Completion for the `chgrp' command. ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete -;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17107 -;;;;;; 37380)) +;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from pcomplete.el (autoload (quote pcomplete) "pcomplete" "\ @@ -18558,7 +18910,7 @@ Setup shell-mode to use pcomplete. ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status ;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" -;;;;;; "pcvs.el" (17107 37382)) +;;;;;; "pcvs.el" (17178 22152)) ;;; Generated autoloads from pcvs.el (autoload (quote cvs-checkout) "pcvs" "\ @@ -18635,7 +18987,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17107 37380)) +;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17178 22152)) ;;; Generated autoloads from pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m))) @@ -18643,7 +18995,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/perl-mode.el (autoload (quote perl-mode) "perl-mode" "\ @@ -18701,7 +19053,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key ;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt ;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-region) "pgg" -;;;;;; "gnus/pgg.el" (17107 37379)) +;;;;;; "gnus/pgg.el" (17178 22146)) ;;; Generated autoloads from gnus/pgg.el (autoload (quote pgg-encrypt-region) "pgg" "\ @@ -18789,7 +19141,7 @@ Import public keys in the current buffer. ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/picture.el (autoload (quote picture-mode) "picture" "\ @@ -18844,7 +19196,7 @@ You can manipulate rectangles with these commands: C-c C-r Draw a rectangular box around mark and point. \\[copy-rectangle-to-register] Copies a rectangle to a register. \\[advertised-undo] Can undo effects of rectangle overlay commands - commands if invoked soon enough. + if invoked soon enough. You can return to the previous mode with: C-c C-c Which also strips trailing whitespace from every line. Stripping is suppressed by supplying an argument. @@ -18861,7 +19213,7 @@ they are not defaultly assigned to keys. ;;;*** ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/po.el (autoload (quote po-find-file-coding-system) "po" "\ @@ -18872,7 +19224,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads (pong) "pong" "play/pong.el" (17107 37380)) +;;;### (autoloads (pong) "pong" "play/pong.el" (17178 22152)) ;;; Generated autoloads from play/pong.el (autoload (quote pong) "pong" "\ @@ -18889,7 +19241,7 @@ pong-mode keybindings:\\<pong-mode-map> ;;;*** ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer -;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17107 37381)) +;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload (quote pp-to-string) "pp" "\ @@ -18947,7 +19299,7 @@ Ignores leading comment characters. ;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview ;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript ;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22152)) ;;; Generated autoloads from printing.el (autoload (quote pr-interface) "printing" "\ @@ -19535,7 +19887,7 @@ are both set to t. ;;;*** ;;;### (autoloads (run-prolog prolog-mode) "prolog" "progmodes/prolog.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/prolog.el (autoload (quote prolog-mode) "prolog" "\ @@ -19555,7 +19907,7 @@ Run an inferior Prolog process, input and output via buffer *prolog*. ;;;*** -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17107 37381)) +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17178 22153)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\ @@ -19564,8 +19916,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/ps-mode.el (autoload (quote ps-mode) "ps-mode" "\ @@ -19614,7 +19966,7 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string ;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string ;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer) -;;;;;; "ps-mule" "ps-mule.el" (17107 37380)) +;;;;;; "ps-mule" "ps-mule.el" (17178 22153)) ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ @@ -19735,8 +20087,8 @@ Not documented ;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer ;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces ;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type -;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17107 -;;;;;; 37380)) +;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\ @@ -19889,10 +20241,10 @@ Extend face in ALIST-SYM. If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged with face extension in ALIST-SYM; otherwise, overrides. -If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist'; +If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used; otherwise, it should be an alist symbol. -The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'. +The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'. See `ps-extend-face' for documentation. @@ -19904,7 +20256,7 @@ Extend face in ALIST-SYM. If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged with face extensions in ALIST-SYM; otherwise, overrides. -If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist'; +If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used; otherwise, it should be an alist symbol. The elements of FACE-EXTENSION list have the form: @@ -19933,7 +20285,7 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/python.el (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) @@ -19997,7 +20349,7 @@ Runs `jython-mode-hook' after `python-mode-hook'. ;;;*** ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/qp.el (autoload (quote quoted-printable-decode-region) "qp" "\ @@ -20020,7 +20372,7 @@ them into characters should be done separately. ;;;;;; quail-defrule quail-install-decode-map quail-install-map ;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout ;;;;;; quail-define-package quail-use-package quail-title) "quail" -;;;;;; "international/quail.el" (17107 37380)) +;;;;;; "international/quail.el" (17178 20480)) ;;; Generated autoloads from international/quail.el (autoload (quote quail-title) "quail" "\ @@ -20251,8 +20603,8 @@ of each directory. ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url -;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17107 -;;;;;; 37379)) +;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -20323,8 +20675,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** -;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from net/rcompile.el (autoload (quote remote-compile) "rcompile" "\ @@ -20335,14 +20687,11 @@ See \\[compile]. ;;;*** -;;;### (autoloads (re-builder regexp-builder) "re-builder" "emacs-lisp/re-builder.el" -;;;;;; (17107 37381)) +;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/re-builder.el -(autoload (quote regexp-builder) "re-builder" "\ -Alias for `re-builder': Construct a regexp interactively. - -\(fn)" t nil) +(defalias (quote regexp-builder) (quote re-builder)) (autoload (quote re-builder) "re-builder" "\ Construct a regexp interactively. @@ -20351,7 +20700,7 @@ Construct a regexp interactively. ;;;*** -;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17107 37383)) +;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17178 22153)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ @@ -20379,8 +20728,8 @@ that were operated on recently. ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle ;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle ;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle -;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17107 -;;;;;; 37380)) +;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from rect.el (autoload (quote move-to-column-force) "rect" "\ @@ -20502,8 +20851,8 @@ rectangle which were empty. ;;;*** -;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17178 +;;;;;; 22154)) ;;; Generated autoloads from textmodes/refill.el (autoload (quote refill-mode) "refill" "\ @@ -20519,7 +20868,7 @@ refilling if they would cause auto-filling. ;;;*** ;;;### (autoloads (reftex-reset-scanning-information reftex-mode -;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17107 37381)) +;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17178 22154)) ;;; Generated autoloads from textmodes/reftex.el (autoload (quote turn-on-reftex) "reftex" "\ @@ -20569,7 +20918,7 @@ This enforces rescanning the buffer on next use. ;;;*** ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/reftex-cite.el (autoload (quote reftex-citation) "reftex-cite" "\ @@ -20599,7 +20948,7 @@ While entering the regexp, completion on knows citation keys is possible. ;;;*** ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/reftex-global.el (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\ @@ -20616,7 +20965,7 @@ With no argument, this command toggles ;;;*** ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/reftex-index.el (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ @@ -20649,7 +20998,7 @@ Here are all local bindings. ;;;*** ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/reftex-parse.el (autoload (quote reftex-all-document-files) "reftex-parse" "\ @@ -20662,7 +21011,7 @@ of master file. ;;;*** ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload (quote regexp-opt) "regexp-opt" "\ @@ -20689,7 +21038,7 @@ This means the number of non-shy regexp grouping constructs ;;;*** -;;;### (autoloads (repeat) "repeat" "repeat.el" (17107 37380)) +;;;### (autoloads (repeat) "repeat" "repeat.el" (17178 22153)) ;;; Generated autoloads from repeat.el (autoload (quote repeat) "repeat" "\ @@ -20707,7 +21056,7 @@ can be modified by the global variable `repeat-on-final-keystroke'. ;;;*** ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22150)) ;;; Generated autoloads from mail/reporter.el (autoload (quote reporter-submit-bug-report) "reporter" "\ @@ -20739,7 +21088,7 @@ mail-sending package is used for editing and sending the message. ;;;*** ;;;### (autoloads (reposition-window) "reposition" "reposition.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22153)) ;;; Generated autoloads from reposition.el (autoload (quote reposition-window) "reposition" "\ @@ -20766,8 +21115,8 @@ first comment line visible (if point is in a comment). ;;;*** -;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from resume.el (autoload (quote resume-suspend-hook) "resume" "\ @@ -20778,7 +21127,7 @@ Clear out the file used for transmitting args when Emacs resumes. ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22153)) ;;; Generated autoloads from reveal.el (autoload (quote reveal-mode) "reveal" "\ @@ -20815,7 +21164,7 @@ With zero or negative ARG turn mode off. ;;;### (autoloads (file-name-shadow-mode file-name-shadow-tty-properties ;;;;;; file-name-shadow-properties) "rfn-eshadow" "rfn-eshadow.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22153)) ;;; Generated autoloads from rfn-eshadow.el (defvar file-name-shadow-properties (quote (face file-name-shadow field shadow)) "\ @@ -20860,7 +21209,7 @@ Returns non-nil if the new state is enabled. ;;;*** ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload (quote ring-p) "ring" "\ @@ -20875,7 +21224,7 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17107 37379)) +;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17178 22151)) ;;; Generated autoloads from net/rlogin.el (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") @@ -20920,14 +21269,14 @@ variable. ;;;*** -;;;### (autoloads (rmail-restore-desktop-buffer rmail-set-remote-password -;;;;;; rmail-input rmail-mode rmail rmail-enable-mime rmail-show-message-hook -;;;;;; rmail-confirm-expunge rmail-secondary-file-regexp rmail-secondary-file-directory +;;;### (autoloads (rmail-set-remote-password rmail-input rmail-mode +;;;;;; rmail rmail-enable-mime rmail-show-message-hook rmail-confirm-expunge +;;;;;; rmail-secondary-file-regexp rmail-secondary-file-directory ;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names -;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17107 -;;;;;; 37379)) +;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from mail/rmail.el (autoload (quote rmail-movemail-variant-p) "rmail" "\ @@ -20950,8 +21299,9 @@ variable `rmail-dont-reply-to-names', for when the user does not set value is the user's email address and name.) It is useful to set this variable in the site customization file.") -(defvar rmail-ignored-headers (concat "^via:\\|^mail-from:\\|^origin:\\|^references:\\|^sender:" "\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:" "\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" "\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" "\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" "\\|^x-mailer:\\|^delivered-to:\\|^lines:\\|^mime-version:" "\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^errors-to:\\|^return-receipt-to:" "\\|^x-sign:\\|^x-beenthere:\\|^x-mailman-version:\\|^x-mailman-copy:" "\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:" "\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:" "\\|^content-type:\\|^content-length:" "\\|^x-attribution:\\|^x-disclaimer:\\|^x-trace:" "\\|^x-complaints-to:\\|^nntp-posting-date:\\|^user-agent" "\\|^importance:\\|^envelope-to:\\|^delivery-date" "\\|^x.*-priority:\\|^x-mimeole:\\|^x-archive:" "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization\\|^resent-openpgp" "\\|^openpgp:\\|^x-request-pgp:\\|^x-original.*:" "\\|^x-virus-scanned:\\|^x-spam-[^s].*:") "\ +(defvar rmail-ignored-headers (concat "^via:\\|^mail-from:\\|^origin:\\|^references:\\|^sender:" "\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:" "\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" "\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" "\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" "\\|^x-mailer:\\|^delivered-to:\\|^lines:" "\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^errors-to:\\|^return-receipt-to:" "\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:" "\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:" "\\|^content-length:\\|^nntp-posting-date:\\|^user-agent" "\\|^importance:\\|^envelope-to:\\|^delivery-date\\|^openpgp:" "\\|^mbox-line:\\|^cancel-lock:" "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization:\\|^resent-openpgp:" "\\|^x-.*:") "\ *Regexp to match header fields that Rmail should normally hide. +\(See also `rmail-nonignored-headers', which overrides this regexp.) This variable is used for reformatting the message header, which normally happens once for each message, when you view the message for the first time in Rmail. @@ -21124,7 +21474,8 @@ Rmail Mode is used by \\<rmail-mode-map>\\[rmail] for editing Rmail files. All normal editing commands are turned off. Instead, these commands are available: -\\[rmail-beginning-of-message] Move point to front of this message (same as \\[beginning-of-buffer]). +\\[rmail-beginning-of-message] Move point to front of this message. +\\[rmail-end-of-message] Move point to bottom of this message. \\[scroll-up] Scroll to next screen of this message. \\[scroll-down] Scroll to previous screen of this message. \\[rmail-next-undeleted-message] Move to Next non-deleted message. @@ -21180,15 +21531,10 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. \(fn PASSWORD)" t nil) -(autoload (quote rmail-restore-desktop-buffer) "rmail" "\ -Restore an rmail buffer specified in a desktop file. - -\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil) - ;;;*** ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mail/rmailedit.el (autoload (quote rmail-edit-current-message) "rmailedit" "\ @@ -21200,7 +21546,7 @@ Edit the contents of this message. ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message ;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd" -;;;;;; "mail/rmailkwd.el" (17107 37380)) +;;;;;; "mail/rmailkwd.el" (17178 22151)) ;;; Generated autoloads from mail/rmailkwd.el (autoload (quote rmail-add-label) "rmailkwd" "\ @@ -21239,7 +21585,7 @@ With prefix argument N moves forward N messages with these labels. ;;;*** ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mail/rmailmsc.el (autoload (quote set-rmail-inbox-list) "rmailmsc" "\ @@ -21253,7 +21599,7 @@ If FILE-NAME is empty, remove any existing inbox list. ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output ;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout" -;;;;;; "mail/rmailout.el" (17107 37379)) +;;;;;; "mail/rmailout.el" (17178 22151)) ;;; Generated autoloads from mail/rmailout.el (defvar rmail-output-file-alist nil "\ @@ -21320,8 +21666,8 @@ FILE-NAME defaults, interactively, from the Subject field of the message. ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent ;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject -;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17107 -;;;;;; 37380)) +;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17178 +;;;;;; 22151)) ;;; Generated autoloads from mail/rmailsort.el (autoload (quote rmail-sort-by-date) "rmailsort" "\ @@ -21373,7 +21719,7 @@ KEYWORDS is a comma-separated list of labels. ;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp ;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary ;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages) -;;;;;; "rmailsum" "mail/rmailsum.el" (17107 37379)) +;;;;;; "rmailsum" "mail/rmailsum.el" (17178 22151)) ;;; Generated autoloads from mail/rmailsum.el (defvar rmail-summary-scroll-between-messages t "\ @@ -21455,7 +21801,7 @@ Setting this variable has an effect only before reading a mail.") ;;;*** ;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22152)) ;;; Generated autoloads from obsolete/rnewspost.el (autoload (quote news-post-news) "rnewspost" "\ @@ -21468,7 +21814,7 @@ If NOQUERY is non-nil, we do not query before doing the work. ;;;*** ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region -;;;;;; rot13-string rot13) "rot13" "rot13.el" (17107 37380)) +;;;;;; rot13-string rot13) "rot13" "rot13.el" (17178 22153)) ;;; Generated autoloads from rot13.el (autoload (quote rot13) "rot13" "\ @@ -21509,7 +21855,7 @@ Toggle the use of rot 13 encoding for the current window. ;;;;;; resize-minibuffer-frame-max-height resize-minibuffer-frame ;;;;;; resize-minibuffer-window-exactly resize-minibuffer-window-max-height ;;;;;; resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22152)) ;;; Generated autoloads from obsolete/rsz-mini.el (defvar resize-minibuffer-mode nil "\ @@ -21549,8 +21895,8 @@ This function is obsolete. ;;;*** -;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from ruler-mode.el (autoload (quote ruler-mode) "ruler-mode" "\ @@ -21560,8 +21906,8 @@ Display a ruler in the header line if ARG > 0. ;;;*** -;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload (quote rx-to-string) "rx" "\ @@ -21869,7 +22215,7 @@ enclosed in `(and ...)'. ;;;*** ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/scheme.el (autoload (quote scheme-mode) "scheme" "\ @@ -21911,7 +22257,7 @@ that variable's value is a string. ;;;*** ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/score-mode.el (autoload (quote gnus-score-mode) "score-mode" "\ @@ -21924,8 +22270,8 @@ This mode is an extended emacs-lisp mode. ;;;*** -;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from obsolete/scribe.el (autoload (quote scribe-mode) "scribe" "\ @@ -21950,7 +22296,7 @@ Interesting variables: ;;;*** ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22153)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ @@ -21973,13 +22319,28 @@ apply to all visible windows in the same frame. ;;;*** +;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el" +;;;;;; (17178 22134)) +;;; Generated autoloads from scroll-lock.el + +(autoload (quote scroll-lock-mode) "scroll-lock" "\ +Minor mode for pager-like scrolling. +Keys which normally move point by line or paragraph will scroll +the buffer by the respective amount of lines instead and point +will be kept vertically fixed relative to window boundaries +during scrolling. + +\(fn &optional ARG)" t nil) + +;;;*** + ;;;### (autoloads (mail-other-frame mail-other-window mail mail-mailing-lists ;;;;;; mail-mode mail-default-directory mail-signature mail-citation-hook ;;;;;; mail-personal-alias-file mail-alias-file mail-default-reply-to ;;;;;; mail-archive-file-name mail-header-separator send-mail-function ;;;;;; mail-yank-ignored-headers mail-interactive mail-self-blind ;;;;;; mail-specify-envelope-from mail-from-style) "sendmail" "mail/sendmail.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style (quote angles) "\ @@ -22210,7 +22571,7 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** ;;;### (autoloads (server-mode server-start server-getenv) "server" -;;;;;; "server.el" (17107 37404)) +;;;;;; "server.el" (17178 22153)) ;;; Generated autoloads from server.el (autoload (quote server-getenv) "server" "\ @@ -22258,7 +22619,7 @@ Server mode runs a process that accepts commands from the ;;;*** -;;;### (autoloads (ses-mode) "ses" "ses.el" (17107 37381)) +;;;### (autoloads (ses-mode) "ses" "ses.el" (17178 22153)) ;;; Generated autoloads from ses.el (autoload (quote ses-mode) "ses" "\ @@ -22277,7 +22638,7 @@ These are active only in the minibuffer, when entering or editing a formula: ;;;*** ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload (quote sgml-mode) "sgml-mode" "\ @@ -22345,7 +22706,7 @@ To work around that, do: ;;;*** ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/sh-script.el (autoload (quote sh-mode) "sh-script" "\ @@ -22408,7 +22769,7 @@ with your script for an edit-interpret-debug cycle. ;;;*** -;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17107 37379)) +;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17178 22146)) ;;; Generated autoloads from gnus/sha1.el (autoload (quote sha1) "sha1" "\ @@ -22423,7 +22784,7 @@ If BINARY is non-nil, return a string in binary form. ;;;*** ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload (quote list-load-path-shadows) "shadow" "\ @@ -22470,8 +22831,8 @@ buffer called `*Shadows*'. Shadowings are located by calling the ;;;*** ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group -;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17107 -;;;;;; 37380)) +;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from shadowfile.el (autoload (quote shadow-define-cluster) "shadowfile" "\ @@ -22510,7 +22871,7 @@ Set up file shadowing. ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" -;;;;;; (17107 37383)) +;;;;;; (17178 22153)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\ @@ -22557,7 +22918,7 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** ;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage) -;;;;;; "sieve" "gnus/sieve.el" (17107 37379)) +;;;;;; "sieve" "gnus/sieve.el" (17178 22146)) ;;; Generated autoloads from gnus/sieve.el (autoload (quote sieve-manage) "sieve" "\ @@ -22578,7 +22939,7 @@ Not documented ;;;*** ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload (quote sieve-mode) "sieve-mode" "\ @@ -22593,8 +22954,8 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17107 -;;;;;; 37382)) +;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/simula.el (autoload (quote simula-mode) "simula" "\ @@ -22643,7 +23004,7 @@ with no arguments, if that value is non-nil. ;;;*** ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new -;;;;;; define-skeleton) "skeleton" "skeleton.el" (17107 37380)) +;;;;;; define-skeleton) "skeleton" "skeleton.el" (17178 22153)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter (quote identity) "\ @@ -22664,7 +23025,7 @@ on `skeleton-autowrap'. An ARG of M-0 will prevent this just for once. This command can also be an abbrev expansion (3rd and 4th columns in \\[edit-abbrevs] buffer: \"\" command-name). -Optional first argument STR may also be a string which will be the value +Optional second argument STR may also be a string which will be the value of `str' whereas the skeleton's interactor is then ignored. \(fn SKELETON &optional STR ARG)" nil nil) @@ -22753,7 +23114,7 @@ symmetrical ones, and the same character twice for the others. ;;;*** ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22153)) ;;; Generated autoloads from smerge-mode.el (autoload (quote smerge-ediff) "smerge-mode" "\ @@ -22772,7 +23133,7 @@ Minor mode to simplify editing output from the diff3 program. ;;;*** ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/smiley.el (autoload (quote smiley-region) "smiley" "\ @@ -22790,7 +23151,7 @@ interactively. If there's no argument, do it at the current buffer ;;;*** ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" -;;;;;; "mail/smtpmail.el" (17107 37380)) +;;;;;; "mail/smtpmail.el" (17178 22151)) ;;; Generated autoloads from mail/smtpmail.el (autoload (quote smtpmail-send-it) "smtpmail" "\ @@ -22805,7 +23166,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads (snake) "snake" "play/snake.el" (17107 37380)) +;;;### (autoloads (snake) "snake" "play/snake.el" (17178 22152)) ;;; Generated autoloads from play/snake.el (autoload (quote snake) "snake" "\ @@ -22829,7 +23190,7 @@ Snake mode keybindings: ;;;*** ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22151)) ;;; Generated autoloads from net/snmp-mode.el (autoload (quote snmp-mode) "snmp-mode" "\ @@ -22860,7 +23221,7 @@ then `snmpv2-mode-hook'. ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name ;;;;;; calendar-longitude calendar-latitude calendar-time-display-form) -;;;;;; "solar" "calendar/solar.el" (17107 37380)) +;;;;;; "solar" "calendar/solar.el" (17178 22143)) ;;; Generated autoloads from calendar/solar.el (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\ @@ -22931,8 +23292,8 @@ Requires floating point. ;;;*** -;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from play/solitaire.el (autoload (quote solitaire) "solitaire" "\ @@ -23009,7 +23370,7 @@ Pick your favourite shortcuts: ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields ;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs -;;;;;; sort-lines sort-subr) "sort" "sort.el" (17107 37380)) +;;;;;; sort-lines sort-subr) "sort" "sort.el" (17178 22153)) ;;; Generated autoloads from sort.el (autoload (quote sort-subr) "sort" "\ @@ -23151,8 +23512,8 @@ From a program takes two point or marker arguments, BEG and END. ;;;*** -;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17178 +;;;;;; 22146)) ;;; Generated autoloads from gnus/spam.el (autoload (quote spam-initialize) "spam" "\ @@ -23164,7 +23525,7 @@ Install the spam.el hooks and do other initialization ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file ;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report" -;;;;;; "gnus/spam-report.el" (17107 37379)) +;;;;;; "gnus/spam-report.el" (17178 22146)) ;;; Generated autoloads from gnus/spam-report.el (autoload (quote spam-report-process-queue) "spam-report" "\ @@ -23207,7 +23568,7 @@ Spam reports will be queued with the method used when ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" -;;;;;; "speedbar.el" (17107 37380)) +;;;;;; "speedbar.el" (17178 22153)) ;;; Generated autoloads from speedbar.el (defalias (quote speedbar) (quote speedbar-frame-mode)) @@ -23232,7 +23593,7 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** ;;;### (autoloads (spell-string spell-region spell-word spell-buffer) -;;;;;; "spell" "textmodes/spell.el" (17107 37381)) +;;;;;; "spell" "textmodes/spell.el" (17178 22154)) ;;; Generated autoloads from textmodes/spell.el (put (quote spell-filter) (quote risky-local-variable) t) @@ -23268,8 +23629,8 @@ Check spelling of string supplied as argument. ;;;*** -;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17178 +;;;;;; 22152)) ;;; Generated autoloads from play/spook.el (autoload (quote spook) "spook" "\ @@ -23287,8 +23648,8 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help -;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17107 -;;;;;; 37381)) +;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from progmodes/sql.el (autoload (quote sql-add-product-keywords) "sql" "\ @@ -23719,8 +24080,8 @@ input. See `sql-interactive-mode'. ;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes ;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke ;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke -;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17107 -;;;;;; 37380)) +;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from strokes.el (autoload (quote strokes-global-set-stroke) "strokes" "\ @@ -23740,7 +24101,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading. This function will display the stroke interactively as it is being entered in the strokes buffer if the variable `strokes-use-strokes-buffer' is non-nil. -Optional EVENT is acceptable as the starting event of the stroke +Optional EVENT is acceptable as the starting event of the stroke. \(fn &optional PROMPT EVENT)" nil nil) @@ -23750,7 +24111,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading. Note that a complex stroke allows the user to pen-up and pen-down. This is implemented by allowing the user to paint with button 1 or button 2 and then complete the stroke with button 3. -Optional EVENT is acceptable as the starting event of the stroke +Optional EVENT is acceptable as the starting event of the stroke. \(fn &optional PROMPT EVENT)" nil nil) @@ -23772,7 +24133,7 @@ Displays the command which STROKE maps to, reading STROKE interactively. \(fn STROKE)" t nil) (autoload (quote strokes-help) "strokes" "\ -Get instruction on using the `strokes' package. +Get instruction on using the Strokes package. \(fn)" t nil) @@ -23831,7 +24192,7 @@ Read a complex stroke and insert its glyph into the current buffer. ;;;*** ;;;### (autoloads (studlify-buffer studlify-word studlify-region) -;;;;;; "studly" "play/studly.el" (17107 37380)) +;;;;;; "studly" "play/studly.el" (17178 20480)) ;;; Generated autoloads from play/studly.el (autoload (quote studlify-region) "studly" "\ @@ -23852,7 +24213,7 @@ Studlify-case the current buffer. ;;;*** ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mail/supercite.el (autoload (quote sc-cite-original) "supercite" "\ @@ -23884,8 +24245,8 @@ before, and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/syntax.el (autoload (quote syntax-ppss) "syntax" "\ @@ -23898,7 +24259,7 @@ Point is at POS when this function returns. ;;;*** -;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17107 37383)) +;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17178 22153)) ;;; Generated autoloads from tabify.el (autoload (quote untabify) "tabify" "\ @@ -23933,7 +24294,7 @@ The variable `tab-width' controls the spacing of tab stops. ;;;;;; table-recognize table-insert-row-column table-insert-column ;;;;;; table-insert-row table-insert table-point-left-cell-hook ;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) -;;;;;; "table" "textmodes/table.el" (17107 37381)) +;;;;;; "table" "textmodes/table.el" (17178 22154)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ @@ -24521,7 +24882,7 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17107 37380)) +;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17178 22153)) ;;; Generated autoloads from talk.el (autoload (quote talk-connect) "talk" "\ @@ -24536,7 +24897,7 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17107 37380)) +;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17178 22153)) ;;; Generated autoloads from tar-mode.el (autoload (quote tar-mode) "tar-mode" "\ @@ -24560,7 +24921,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" -;;;;;; "progmodes/tcl.el" (17107 37381)) +;;;;;; "progmodes/tcl.el" (17178 20481)) ;;; Generated autoloads from progmodes/tcl.el (autoload (quote tcl-mode) "tcl" "\ @@ -24611,7 +24972,7 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17107 37379)) +;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17178 22151)) ;;; Generated autoloads from net/telnet.el (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") @@ -24638,8 +24999,8 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** -;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17178 +;;;;;; 22153)) ;;; Generated autoloads from term.el (autoload (quote make-term) "term" "\ @@ -24667,8 +25028,8 @@ Start a terminal-emulator in a new buffer. ;;;*** -;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17178 +;;;;;; 22154)) ;;; Generated autoloads from terminal.el (autoload (quote terminal-emulator) "terminal" "\ @@ -24705,7 +25066,7 @@ subprocess started. ;;;*** ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload (quote testcover-this-defun) "testcover" "\ @@ -24715,7 +25076,7 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17107 37380)) +;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17178 22152)) ;;; Generated autoloads from play/tetris.el (autoload (quote tetris) "tetris" "\ @@ -24746,7 +25107,7 @@ tetris-mode keybindings: ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -25048,7 +25409,7 @@ Major mode to edit DocTeX files. ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) -;;;;;; "texinfmt" "textmodes/texinfmt.el" (17107 37381)) +;;;;;; "texinfmt" "textmodes/texinfmt.el" (17178 22154)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload (quote texinfo-format-buffer) "texinfmt" "\ @@ -25088,7 +25449,7 @@ if large. You can use Info-split to do this manually. ;;;*** ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) -;;;;;; "texinfo" "textmodes/texinfo.el" (17107 37381)) +;;;;;; "texinfo" "textmodes/texinfo.el" (17178 22154)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote "``" "\ @@ -25175,7 +25536,7 @@ value of `texinfo-mode-hook'. ;;;### (autoloads (thai-auto-composition-mode thai-composition-function ;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string ;;;;;; thai-compose-region) "thai-util" "language/thai-util.el" -;;;;;; (17107 37382)) +;;;;;; (17178 22147)) ;;; Generated autoloads from language/thai-util.el (autoload (quote thai-compose-region) "thai-util" "\ @@ -25219,7 +25580,7 @@ Minor mode for automatically correct Thai character composition. ;;;### (autoloads (list-at-point number-at-point symbol-at-point ;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) -;;;;;; "thingatpt" "thingatpt.el" (17107 37381)) +;;;;;; "thingatpt" "thingatpt.el" (17178 22154)) ;;; Generated autoloads from thingatpt.el (autoload (quote forward-thing) "thingatpt" "\ @@ -25276,7 +25637,7 @@ Not documented ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show-all thumbs-dired-show-marked ;;;;;; thumbs-show-all-from-dir thumbs-find-thumb) "thumbs" "thumbs.el" -;;;;;; (17107 37383)) +;;;;;; (17178 22154)) ;;; Generated autoloads from thumbs.el (autoload (quote thumbs-find-thumb) "thumbs" "\ @@ -25315,7 +25676,7 @@ In dired, call the setroot program on the image at point. ;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region ;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan ;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util" -;;;;;; "language/tibet-util.el" (17107 37382)) +;;;;;; "language/tibet-util.el" (17178 20481)) ;;; Generated autoloads from language/tibet-util.el (autoload (quote tibetan-char-p) "tibet-util" "\ @@ -25394,7 +25755,7 @@ Not documented ;;;*** ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22154)) ;;; Generated autoloads from textmodes/tildify.el (autoload (quote tildify-region) "tildify" "\ @@ -25418,7 +25779,7 @@ This function performs no refilling of the changed text. ;;;*** ;;;### (autoloads (display-time-mode display-time display-time-day-and-date) -;;;;;; "time" "time.el" (17107 37380)) +;;;;;; "time" "time.el" (17178 22154)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -25461,8 +25822,8 @@ This runs the normal hook `display-time-hook' after each update. ;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year ;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract ;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds -;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17107 -;;;;;; 37380)) +;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17178 +;;;;;; 20480)) ;;; Generated autoloads from calendar/time-date.el (autoload (quote date-to-time) "time-date" "\ @@ -25548,7 +25909,7 @@ If DATE is malformed, return a time value of zeros. ;;;*** ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" -;;;;;; "time-stamp.el" (17107 37380)) +;;;;;; "time-stamp.el" (17178 22154)) ;;; Generated autoloads from time-stamp.el (autoload (quote time-stamp) "time-stamp" "\ @@ -25583,7 +25944,7 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out ;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in ;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el" -;;;;;; (17107 37380)) +;;;;;; (17178 20480)) ;;; Generated autoloads from calendar/timeclock.el (autoload (quote timeclock-modeline-display) "timeclock" "\ @@ -25684,7 +26045,7 @@ relative only to the time worked today, and not to past time. ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer ;;;;;; run-at-time cancel-function-timers cancel-timer) "timer" -;;;;;; "emacs-lisp/timer.el" (17107 37381)) +;;;;;; "emacs-lisp/timer.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/timer.el (defalias (quote disable-timeout) (quote cancel-timer)) @@ -25755,7 +26116,7 @@ be detected. ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" -;;;;;; "international/titdic-cnv.el" (17107 37380)) +;;;;;; "international/titdic-cnv.el" (17178 20480)) ;;; Generated autoloads from international/titdic-cnv.el (autoload (quote titdic-convert) "titdic-cnv" "\ @@ -25778,8 +26139,8 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** ;;;### (autoloads (tamil-composition-function tamil-post-read-conversion -;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17107 -;;;;;; 37382)) +;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17178 +;;;;;; 20481)) ;;; Generated autoloads from language/tml-util.el (autoload (quote tamil-compose-region) "tml-util" "\ @@ -25802,7 +26163,7 @@ PATTERN regexp. ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" -;;;;;; "tmm.el" (17107 37381)) +;;;;;; "tmm.el" (17178 22155)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [f10] 'tmm-menubar) @@ -25843,7 +26204,7 @@ Its value should be an event that has a binding in MENU. ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities ;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category) -;;;;;; "todo-mode" "calendar/todo-mode.el" (17107 37380)) +;;;;;; "todo-mode" "calendar/todo-mode.el" (17178 20480)) ;;; Generated autoloads from calendar/todo-mode.el (autoload (quote todo-add-category) "todo-mode" "\ @@ -25904,7 +26265,7 @@ Show TODO list. ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu ;;;;;; tool-bar-local-item tool-bar-add-item tool-bar-mode) "tool-bar" -;;;;;; "toolbar/tool-bar.el" (17107 37380)) +;;;;;; "toolbar/tool-bar.el" (17178 22155)) ;;; Generated autoloads from toolbar/tool-bar.el (defvar tool-bar-mode nil "\ @@ -25988,29 +26349,8 @@ MAP must contain appropriate binding for `[menu-bar]' which holds a keymap. ;;;*** -;;;### (autoloads (tooltip-mode) "tooltip" "tooltip.el" (17107 37380)) -;;; Generated autoloads from tooltip.el - -(defvar tooltip-mode (not (or noninteractive (and (boundp (quote emacs-quick-startup)) emacs-quick-startup) (not (and (fboundp (quote display-graphic-p)) (display-graphic-p))) (not (fboundp (quote x-show-tip))))) "\ -Non-nil if Tooltip mode is enabled. -See the command `tooltip-mode' for a description of this minor-mode. -Setting this variable directly does not take effect; -use either \\[customize] or the function `tooltip-mode'.") - -(custom-autoload (quote tooltip-mode) "tooltip") - -(put (quote tooltip-mode) (quote custom-set) (quote custom-set-minor-mode)) - -(autoload (quote tooltip-mode) "tooltip" "\ -Toggle Tooltip display. -With ARG, turn tooltip mode on if and only if ARG is positive. - -\(fn &optional ARG)" t nil) - -;;;*** - ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el" -;;;;;; (17107 37398)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/tpu-edt.el (defvar tpu-edt-mode nil "\ @@ -26038,7 +26378,7 @@ Turn on TPU/edt emulation. ;;;*** ;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins) -;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17107 37380)) +;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17178 22144)) ;;; Generated autoloads from emulation/tpu-extras.el (autoload (quote tpu-set-scroll-margins) "tpu-extras" "\ @@ -26058,7 +26398,7 @@ Constrain the cursor to the flow of the text. ;;;*** -;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17107 37381)) +;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload (quote tq-create) "tq" "\ @@ -26072,7 +26412,7 @@ to a tcp server on another machine. ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) -;;;;;; "trace" "emacs-lisp/trace.el" (17107 37381)) +;;;;;; "trace" "emacs-lisp/trace.el" (17178 22144)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -26105,7 +26445,7 @@ the window or buffer configuration at all. ;;;### (autoloads (tramp-completion-file-name-handler tramp-file-name-handler ;;;;;; tramp-completion-file-name-regexp tramp-file-name-regexp) -;;;;;; "tramp" "net/tramp.el" (17107 37379)) +;;;;;; "tramp" "net/tramp.el" (17178 22151)) ;;; Generated autoloads from net/tramp.el (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ @@ -26182,7 +26522,7 @@ Falls back to normal file name handler if no tramp file name handler exists. ;;;*** ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column" -;;;;;; "textmodes/two-column.el" (17107 37381)) +;;;;;; "textmodes/two-column.el" (17178 22154)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -26233,7 +26573,7 @@ First column's text sSs Second column's text ;;;;;; type-break type-break-mode type-break-keystroke-threshold ;;;;;; type-break-good-break-interval type-break-good-rest-interval ;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22155)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ @@ -26416,7 +26756,7 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** ;;;### (autoloads (ununderline-region underline-region) "underline" -;;;;;; "textmodes/underline.el" (17107 37381)) +;;;;;; "textmodes/underline.el" (17178 22154)) ;;; Generated autoloads from textmodes/underline.el (autoload (quote underline-region) "underline" "\ @@ -26437,7 +26777,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) -;;;;;; "undigest" "mail/undigest.el" (17107 37380)) +;;;;;; "undigest" "mail/undigest.el" (17178 22151)) ;;; Generated autoloads from mail/undigest.el (autoload (quote undigestify-rmail-message) "undigest" "\ @@ -26456,7 +26796,7 @@ following the containing message. ;;;*** ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22151)) ;;; Generated autoloads from mail/unrmail.el (autoload (quote batch-unrmail) "unrmail" "\ @@ -26475,8 +26815,8 @@ Convert Rmail file FILE to system inbox format file TO-FILE. ;;;*** -;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17107 -;;;;;; 37381)) +;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload (quote unsafep) "unsafep" "\ @@ -26488,7 +26828,7 @@ of symbols with local bindings. ;;;*** -;;;### (autoloads nil "url" "url/url.el" (17107 37379)) +;;;### (autoloads nil "url" "url/url.el" (17178 22157)) ;;; Generated autoloads from url/url.el (defvar url-configuration-directory "~/.url") @@ -26496,7 +26836,7 @@ of symbols with local bindings. ;;;*** ;;;### (autoloads (url-register-auth-scheme url-get-authentication) -;;;;;; "url-auth" "url/url-auth.el" (17107 37379)) +;;;;;; "url-auth" "url/url-auth.el" (17178 22155)) ;;; Generated autoloads from url/url-auth.el (autoload (quote url-get-authentication) "url-auth" "\ @@ -26538,8 +26878,8 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** ;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached -;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17107 -;;;;;; 37379)) +;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17178 +;;;;;; 22156)) ;;; Generated autoloads from url/url-cache.el (autoload (quote url-store-in-cache) "url-cache" "\ @@ -26564,7 +26904,7 @@ Return t iff a cached file has expired. ;;;*** -;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17107 37379)) +;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17178 22156)) ;;; Generated autoloads from url/url-cid.el (autoload (quote url-cid) "url-cid" "\ @@ -26576,8 +26916,8 @@ Not documented ;;;### (autoloads (url-cookie-setup-save-timer url-cookie-handle-set-cookie ;;;;;; url-cookie-generate-header-lines url-cookie-retrieve url-cookie-write-file -;;;;;; url-cookie-parse-file) "url-cookie" "url/url-cookie.el" (17107 -;;;;;; 37379)) +;;;;;; url-cookie-parse-file) "url-cookie" "url/url-cookie.el" (17178 +;;;;;; 22156)) ;;; Generated autoloads from url/url-cookie.el (autoload (quote url-cookie-parse-file) "url-cookie" "\ @@ -26613,7 +26953,7 @@ Reset the cookie saver timer. ;;;*** ;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav" -;;;;;; "url/url-dav.el" (17107 37379)) +;;;;;; "url/url-dav.el" (17178 22156)) ;;; Generated autoloads from url/url-dav.el (autoload (quote url-dav-supported-p) "url-dav" "\ @@ -26628,8 +26968,8 @@ Not documented ;;;*** -;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17178 +;;;;;; 22156)) ;;; Generated autoloads from url/url-file.el (autoload (quote url-file) "url-file" "\ @@ -26640,7 +26980,7 @@ Handle file: and ftp: URLs. ;;;*** ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw" -;;;;;; "url/url-gw.el" (17107 37379)) +;;;;;; "url/url-gw.el" (17178 22156)) ;;; Generated autoloads from url/url-gw.el (autoload (quote url-gateway-nslookup-host) "url-gw" "\ @@ -26658,8 +26998,8 @@ Will not make a connection if `url-gateway-unplugged' is non-nil. ;;;*** ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file -;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17107 -;;;;;; 37379)) +;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17178 +;;;;;; 22156)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -26705,7 +27045,7 @@ Not documented ;;;### (autoloads (url-history-save-history url-history-parse-history ;;;;;; url-history-setup-save-timer) "url-history" "url/url-history.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22156)) ;;; Generated autoloads from url/url-history.el (autoload (quote url-history-setup-save-timer) "url-history" "\ @@ -26729,7 +27069,7 @@ user for what type to save as. ;;;*** ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p -;;;;;; url-http) "url-http" "url/url-http.el" (17107 37379)) +;;;;;; url-http) "url-http" "url/url-http.el" (17178 22156)) ;;; Generated autoloads from url/url-http.el (autoload (quote url-http) "url-http" "\ @@ -26782,7 +27122,7 @@ p3p ;;;*** -;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17107 37379)) +;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17178 22156)) ;;; Generated autoloads from url/url-irc.el (autoload (quote url-irc) "url-irc" "\ @@ -26792,8 +27132,8 @@ Not documented ;;;*** -;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17107 -;;;;;; 37379)) +;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17178 +;;;;;; 22156)) ;;; Generated autoloads from url/url-ldap.el (autoload (quote url-ldap) "url-ldap" "\ @@ -26807,7 +27147,7 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22156)) ;;; Generated autoloads from url/url-mailto.el (autoload (quote url-mail) "url-mailto" "\ @@ -26823,7 +27163,7 @@ Handle the mailto: URL syntax. ;;;*** ;;;### (autoloads (url-data url-generic-emulator-loader url-info -;;;;;; url-man) "url-misc" "url/url-misc.el" (17107 37379)) +;;;;;; url-man) "url-misc" "url/url-misc.el" (17178 22156)) ;;; Generated autoloads from url/url-misc.el (autoload (quote url-man) "url-misc" "\ @@ -26855,7 +27195,7 @@ Fetch a data URL (RFC 2397). ;;;*** ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22156)) ;;; Generated autoloads from url/url-news.el (autoload (quote url-news) "url-news" "\ @@ -26872,7 +27212,7 @@ Not documented ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable ;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22156)) ;;; Generated autoloads from url/url-ns.el (autoload (quote isPlainHostName) "url-ns" "\ @@ -26913,7 +27253,7 @@ Not documented ;;;*** ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" -;;;;;; "url/url-parse.el" (17107 37379)) +;;;;;; "url/url-parse.el" (17178 22156)) ;;; Generated autoloads from url/url-parse.el (autoload (quote url-recreate-url) "url-parse" "\ @@ -26931,7 +27271,7 @@ Format is: ;;;*** ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22156)) ;;; Generated autoloads from url/url-privacy.el (autoload (quote url-setup-privacy-info) "url-privacy" "\ @@ -26947,7 +27287,7 @@ Not documented ;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date ;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string ;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22157)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -27032,7 +27372,7 @@ Return the base pathname of FILE, or the actual filename if X is true. (autoload (quote url-parse-query-string) "url-util" "\ Not documented -\(fn QUERY &optional DOWNCASE)" nil nil) +\(fn QUERY &optional DOWNCASE ALLOW-NEWLINES)" nil nil) (autoload (quote url-unhex-string) "url-util" "\ Remove %XX embedded spaces, etc in a url. @@ -27072,7 +27412,7 @@ This uses `url-current-object', set locally to the buffer. ;;;*** ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) -;;;;;; "userlock" "userlock.el" (17107 37380)) +;;;;;; "userlock" "userlock.el" (17178 22157)) ;;; Generated autoloads from userlock.el (autoload (quote ask-user-about-lock) "userlock" "\ @@ -27102,7 +27442,7 @@ The buffer in question is current when this function is called. ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal ;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el" -;;;;;; (17107 37379)) +;;;;;; (17178 22146)) ;;; Generated autoloads from gnus/uudecode.el (autoload (quote uudecode-decode-region-external) "uudecode" "\ @@ -27132,7 +27472,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window ;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file ;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook -;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17107 37380)) +;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17178 22157)) ;;; Generated autoloads from vc.el (defvar vc-checkout-hook nil "\ @@ -27419,7 +27759,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-arch" "vc-arch.el" (17107 37380)) +;;;### (autoloads nil "vc-arch" "vc-arch.el" (17178 22157)) ;;; Generated autoloads from vc-arch.el (defun vc-arch-registered (file) (if (vc-find-root file "{arch}/=tagging-method") @@ -27429,7 +27769,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17107 37380)) +;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17178 22157)) ;;; Generated autoloads from vc-cvs.el (defun vc-cvs-registered (f) (when (file-readable-p (expand-file-name @@ -27439,7 +27779,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17107 37380)) +;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17178 22157)) ;;; Generated autoloads from vc-mcvs.el (defun vc-mcvs-registered (file) (if (vc-find-root file "MCVS/CVS") @@ -27450,7 +27790,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22157)) ;;; Generated autoloads from vc-rcs.el (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -27463,7 +27803,7 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22157)) ;;; Generated autoloads from vc-sccs.el (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -27480,7 +27820,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-svn" "vc-svn.el" (17107 37381)) +;;;### (autoloads nil "vc-svn" "vc-svn.el" (17178 22157)) ;;; Generated autoloads from vc-svn.el (defun vc-svn-registered (f) (when (file-readable-p (expand-file-name @@ -27493,7 +27833,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload (quote vhdl-mode) "vhdl-mode" "\ @@ -27633,13 +27973,13 @@ Usage: symbols are surrounded by one space, and multiple spaces are eliminated. -| CODE FILLING: -| Code filling allows to condens code (e.g. sensitivity lists or port -| maps) by removing comments and newlines and re-wrapping so that all -| lines are maximally filled (block filling). `C-c C-f C-f' fills a list -| enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by -| blank lines, `C-c C-f C-i' a block of lines with same indent, and -| `C-c C-f M-f' an entire region. + CODE FILLING: + Code filling allows to condense code (e.g. sensitivity lists or port + maps) by removing comments and newlines and re-wrapping so that all + lines are maximally filled (block filling). `C-c C-f C-f' fills a list + enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by + blank lines, `C-c C-f C-i' a block of lines with same indent, and + `C-c C-f M-f' an entire region. CODE BEAUTIFICATION: @@ -27664,21 +28004,21 @@ Usage: A clause with several generic/port names on the same line can be flattened (`C-c C-p C-f') so that only one name per line exists. The -| direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become -| outputs and vice versa, which can be useful in testbenches. (This -| reversion is done on the internal data structure and is only reflected -| in subsequent paste operations.) + direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become + outputs and vice versa, which can be useful in testbenches. (This + reversion is done on the internal data structure and is only reflected + in subsequent paste operations.) Names for actual ports, instances, testbenches, and design-under-test instances can be derived from existing names according to options `vhdl-...-name'. See customization group `vhdl-port'. -| SUBPROGRAM TRANSLATION: -| Similar functionality exists for copying/pasting the interface of -| subprograms (function/procedure). A subprogram interface can be copied -| and then pasted as a subprogram declaration, body or call (uses -| association list with formals). + SUBPROGRAM TRANSLATION: + Similar functionality exists for copying/pasting the interface of + subprograms (function/procedure). A subprogram interface can be copied + and then pasted as a subprogram declaration, body or call (uses + association list with formals). TESTBENCH GENERATION: @@ -27734,38 +28074,54 @@ Usage: required by secondary units. -| STRUCTURAL COMPOSITION: -| Enables simple structural composition. `C-c C-c C-n' creates a skeleton -| for a new component. Subcomponents (i.e. component declaration and -| instantiation) can be automatically placed from a previously read port -| (`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally, -| all subcomponents can be automatically connected using internal signals -| and ports (`C-c C-c C-w') following these rules: -| - subcomponent actual ports with same name are considered to be -| connected by a signal (internal signal or port) -| - signals that are only inputs to subcomponents are considered as -| inputs to this component -> input port created -| - signals that are only outputs from subcomponents are considered as -| outputs from this component -> output port created -| - signals that are inputs to AND outputs from subcomponents are -| considered as internal connections -> internal signal created -| -| Component declarations can be placed in a components package (option -| `vhdl-use-components-package') which can be automatically generated for -| an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct -| component instantiation is also supported (option -| `vhdl-use-direct-instantiation'). + STRUCTURAL COMPOSITION: + Enables simple structural composition. `C-c C-c C-n' creates a skeleton + for a new component. Subcomponents (i.e. component declaration and + instantiation) can be automatically placed from a previously read port + (`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally, + all subcomponents can be automatically connected using internal signals + and ports (`C-c C-c C-w') following these rules: + - subcomponent actual ports with same name are considered to be + connected by a signal (internal signal or port) + - signals that are only inputs to subcomponents are considered as + inputs to this component -> input port created + - signals that are only outputs from subcomponents are considered as + outputs from this component -> output port created + - signals that are inputs to AND outputs from subcomponents are + considered as internal connections -> internal signal created + + Purpose: With appropriate naming conventions it is possible to + create higher design levels with only a few mouse clicks or key + strokes. A new design level can be created by simply generating a new + component, placing the required subcomponents from the hierarchy + browser, and wiring everything automatically. + + Note: Automatic wiring only works reliably on templates of new + components and component instantiations that were created by VHDL mode. + + Component declarations can be placed in a components package (option + `vhdl-use-components-package') which can be automatically generated for + an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct + component instantiation is also supported (option + `vhdl-use-direct-instantiation'). + +| Configuration declarations can automatically be generated either from +| the menu (`C-c C-c C-f') (for the architecture the cursor is in) or from +| the speedbar menu (for the architecture under the cursor). The +| configurations can optionally be hierarchical (i.e. include all +| component levels of a hierarchical design, option +| `vhdl-compose-configuration-hierarchical') or include subconfigurations +| (option `vhdl-compose-configuration-use-subconfiguration'). For +| subcomponents in hierarchical configurations, the most-recently-analyzed +| (mra) architecture is selected. If another architecture is desired, it +| can be marked as most-recently-analyzed (speedbar menu) before +| generating the configuration. | -| Purpose: With appropriate naming conventions it is possible to -| create higher design levels with only a few mouse clicks or key -| strokes. A new design level can be created by simply generating a new -| component, placing the required subcomponents from the hierarchy -| browser, and wiring everything automatically. -| -| Note: Automatic wiring only works reliably on templates of new -| components and component instantiations that were created by VHDL mode. -| -| See the options group `vhdl-compose' for all relevant user options. +| Note: Configurations of subcomponents (i.e. hierarchical configuration +| declarations) are currently not considered when displaying +| configurations in speedbar. + + See the options group `vhdl-compose' for all relevant user options. SOURCE FILE COMPILATION: @@ -28018,7 +28374,7 @@ Key bindings: ;;;*** -;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17107 37380)) +;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17178 20480)) ;;; Generated autoloads from emulation/vi.el (autoload (quote vi-mode) "vi" "\ @@ -28073,7 +28429,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs. ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion ;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer ;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" -;;;;;; "language/viet-util.el" (17107 37382)) +;;;;;; "language/viet-util.el" (17178 20481)) ;;; Generated autoloads from language/viet-util.el (autoload (quote viet-encode-viscii-char) "viet-util" "\ @@ -28119,8 +28475,8 @@ Not documented ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame ;;;;;; view-buffer-other-window view-buffer view-file-other-frame -;;;;;; view-file-other-window view-file) "view" "view.el" (17107 -;;;;;; 37381)) +;;;;;; view-file-other-window view-file) "view" "view.el" (17178 +;;;;;; 22157)) ;;; Generated autoloads from view.el (defvar view-mode nil "\ @@ -28327,8 +28683,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17107 -;;;;;; 37380)) +;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17178 +;;;;;; 22144)) ;;; Generated autoloads from emulation/vip.el (autoload (quote vip-setup) "vip" "\ @@ -28344,7 +28700,7 @@ Turn on VIP emulation of VI. ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/viper.el (autoload (quote toggle-viper-mode) "viper" "\ @@ -28354,14 +28710,14 @@ If Viper is enabled, turn it off. Otherwise, turn it on. \(fn)" t nil) (autoload (quote viper-mode) "viper" "\ -Turn on Viper emulation of Vi. +Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'. \(fn)" t nil) ;;;*** ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -28449,7 +28805,7 @@ this is equivalent to `display-warning', using ;;;*** ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22157)) ;;; Generated autoloads from wdired.el (autoload (quote wdired-change-to-wdired-mode) "wdired" "\ @@ -28465,7 +28821,7 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17107 37379)) +;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17178 22151)) ;;; Generated autoloads from net/webjump.el (autoload (quote webjump) "webjump" "\ @@ -28482,7 +28838,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22153)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -28516,7 +28872,7 @@ and off otherwise. ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22157)) ;;; Generated autoloads from whitespace.el (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ @@ -28608,7 +28964,7 @@ This is meant to be added buffer-locally to `write-file-functions'. ;;;*** ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse -;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17107 37381)) +;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17178 22157)) ;;; Generated autoloads from wid-browse.el (autoload (quote widget-browse-at) "wid-browse" "\ @@ -28635,8 +28991,8 @@ With arg, turn widget mode on if and only if arg is positive. ;;;*** ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create -;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17107 -;;;;;; 37380)) +;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17178 +;;;;;; 22157)) ;;; Generated autoloads from wid-edit.el (autoload (quote widgetp) "wid-edit" "\ @@ -28678,8 +29034,8 @@ Setup current buffer so editing string widgets works. ;;;*** ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right -;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17107 -;;;;;; 37380)) +;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17178 +;;;;;; 22157)) ;;; Generated autoloads from windmove.el (autoload (quote windmove-left) "windmove" "\ @@ -28732,11 +29088,11 @@ Default MODIFIER is 'shift. ;;;*** ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22157)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ -Toggle winner-mode. +Toggle Winner mode. Setting this variable directly does not take effect; use either \\[customize] or the function `winner-mode'.") @@ -28751,7 +29107,7 @@ With arg, turn Winner mode on if and only if arg is positive. ;;;*** ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" -;;;;;; "woman.el" (17107 37380)) +;;;;;; "woman.el" (17178 22157)) ;;; Generated autoloads from woman.el (autoload (quote woman) "woman" "\ @@ -28787,7 +29143,7 @@ decompress the file if appropriate. See the documentation for the ;;;*** ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" -;;;;;; (17107 37380)) +;;;;;; (17178 22144)) ;;; Generated autoloads from emulation/ws-mode.el (autoload (quote wordstar-mode) "ws-mode" "\ @@ -28900,7 +29256,7 @@ The key bindings are: ;;;*** ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" -;;;;;; (17107 37381)) +;;;;;; (17178 22157)) ;;; Generated autoloads from xml.el (autoload (quote xml-parse-file) "xml" "\ @@ -28925,8 +29281,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded. ;;;*** -;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17107 -;;;;;; 36805)) +;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17178 +;;;;;; 22157)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ @@ -28955,7 +29311,7 @@ down the SHIFT key while pressing the mouse button. ;;;*** ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc" -;;;;;; "gnus/yenc.el" (17107 37379)) +;;;;;; "gnus/yenc.el" (17178 22146)) ;;; Generated autoloads from gnus/yenc.el (autoload (quote yenc-decode-region) "yenc" "\ @@ -28971,7 +29327,7 @@ Extract file name from an yenc header. ;;;*** ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism -;;;;;; yow) "yow" "play/yow.el" (17107 37380)) +;;;;;; yow) "yow" "play/yow.el" (17178 22152)) ;;; Generated autoloads from play/yow.el (autoload (quote yow) "yow" "\ @@ -28997,7 +29353,7 @@ Zippy goes to the analyst. ;;;*** -;;;### (autoloads (zone) "zone" "play/zone.el" (17107 37380)) +;;;### (autoloads (zone) "zone" "play/zone.el" (17178 22152)) ;;; Generated autoloads from play/zone.el (autoload (quote zone) "zone" "\ @@ -29008,7 +29364,7 @@ Zone out, completely. ;;;*** ;;;### (autoloads (zone-mode zone-mode-update-serial-hook) "zone-mode" -;;;;;; "net/zone-mode.el" (17107 37379)) +;;;;;; "net/zone-mode.el" (17178 22151)) ;;; Generated autoloads from net/zone-mode.el (autoload (quote zone-mode-update-serial-hook) "zone-mode" "\ @@ -29110,7 +29466,7 @@ Zone-mode does two things: ;;;;;; "international/latin-9.el" "international/mule-cmds.el" "international/mule-conf.el" ;;;;;; "international/mule.el" "international/ogonek.el" "international/subst-big5.el" ;;;;;; "international/subst-gb2312.el" "international/subst-jis.el" -;;;;;; "international/subst-ksc.el" "international/swedish.el" "international/ucs-tables.el" +;;;;;; "international/subst-ksc.el" "international/ucs-tables.el" ;;;;;; "international/utf-16.el" "international/utf-7.el" "international/utf-8.el" ;;;;;; "isearch.el" "jka-cmpr-hook.el" "kermit.el" "language/chinese.el" ;;;;;; "language/cyrillic.el" "language/czech.el" "language/devanagari.el" @@ -29133,44 +29489,45 @@ Zone-mode does two things: ;;;;;; "net/eudcb-ldap.el" "net/eudcb-ph.el" "net/ldap.el" "net/netrc.el" ;;;;;; "net/tls.el" "net/tramp-ftp.el" "net/tramp-smb.el" "net/tramp-util.el" ;;;;;; "net/tramp-uu.el" "net/tramp-vc.el" "net/trampver.el" "obsolete/awk-mode.el" -;;;;;; "obsolete/float.el" "obsolete/hilit19.el" "obsolete/iso-swed.el" -;;;;;; "obsolete/keyswap.el" "obsolete/mlsupport.el" "obsolete/ooutline.el" -;;;;;; "obsolete/profile.el" "obsolete/rnews.el" "obsolete/sc.el" -;;;;;; "obsolete/sun-curs.el" "obsolete/sun-fns.el" "obsolete/uncompress.el" -;;;;;; "obsolete/x-apollo.el" "obsolete/x-menu.el" "patcomp.el" -;;;;;; "paths.el" "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el" -;;;;;; "play/gamegrid.el" "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" -;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" -;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-compat.el" "progmodes/cc-defs.el" -;;;;;; "progmodes/cc-engine.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" -;;;;;; "progmodes/cc-menus.el" "progmodes/cc-vars.el" "progmodes/ebnf-abn.el" -;;;;;; "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el" "progmodes/ebnf-ebx.el" -;;;;;; "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el" -;;;;;; "progmodes/idlw-complete-structtag.el" "progmodes/idlw-help.el" -;;;;;; "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" -;;;;;; "progmodes/xscheme.el" "register.el" "replace.el" "s-region.el" -;;;;;; "saveplace.el" "scroll-bar.el" "select.el" "simple.el" "soundex.el" -;;;;;; "startup.el" "subdirs.el" "subr.el" "tempo.el" "term/AT386.el" -;;;;;; "term/apollo.el" "term/bg-mouse.el" "term/bobcat.el" "term/internal.el" -;;;;;; "term/iris-ansi.el" "term/linux.el" "term/lk201.el" "term/mac-win.el" -;;;;;; "term/news.el" "term/pc-win.el" "term/rxvt.el" "term/sun-mouse.el" -;;;;;; "term/sun.el" "term/sup-mouse.el" "term/tty-colors.el" "term/tvi970.el" -;;;;;; "term/vt100.el" "term/vt102.el" "term/vt125.el" "term/vt200.el" -;;;;;; "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el" -;;;;;; "term/vt320.el" "term/vt400.el" "term/vt420.el" "term/w32-win.el" -;;;;;; "term/wyse50.el" "term/x-win.el" "term/xterm.el" "textmodes/bib-mode.el" -;;;;;; "textmodes/fill.el" "textmodes/makeinfo.el" "textmodes/page-ext.el" -;;;;;; "textmodes/page.el" "textmodes/paragraphs.el" "textmodes/refbib.el" -;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" -;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" -;;;;;; "textmodes/reftex-vars.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el" -;;;;;; "timezone.el" "tree-widget.el" "uniquify.el" "url/url-about.el" -;;;;;; "url/url-dired.el" "url/url-expand.el" "url/url-ftp.el" "url/url-https.el" -;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el" +;;;;;; "obsolete/bg-mouse.el" "obsolete/float.el" "obsolete/hilit19.el" +;;;;;; "obsolete/iso-swed.el" "obsolete/keyswap.el" "obsolete/mlsupport.el" +;;;;;; "obsolete/ooutline.el" "obsolete/profile.el" "obsolete/rnews.el" +;;;;;; "obsolete/sc.el" "obsolete/sun-curs.el" "obsolete/sun-fns.el" +;;;;;; "obsolete/swedish.el" "obsolete/uncompress.el" "obsolete/x-apollo.el" +;;;;;; "obsolete/x-menu.el" "patcomp.el" "paths.el" "pcvs-info.el" +;;;;;; "pcvs-parse.el" "pcvs-util.el" "play/gamegrid.el" "play/gametree.el" +;;;;;; "play/meese.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" +;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" +;;;;;; "progmodes/cc-compat.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el" +;;;;;; "progmodes/cc-langs.el" "progmodes/cc-menus.el" "progmodes/cc-vars.el" +;;;;;; "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el" +;;;;;; "progmodes/ebnf-ebx.el" "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" +;;;;;; "progmodes/ebnf-yac.el" "progmodes/idlw-complete-structtag.el" +;;;;;; "progmodes/idlw-help.el" "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el" +;;;;;; "progmodes/mantemp.el" "progmodes/xscheme.el" "register.el" +;;;;;; "replace.el" "s-region.el" "saveplace.el" "scroll-bar.el" +;;;;;; "select.el" "simple.el" "soundex.el" "startup.el" "subdirs.el" +;;;;;; "subr.el" "tempo.el" "term/AT386.el" "term/apollo.el" "term/bobcat.el" +;;;;;; "term/cygwin.el" "term/internal.el" "term/iris-ansi.el" "term/linux.el" +;;;;;; "term/lk201.el" "term/mac-win.el" "term/news.el" "term/pc-win.el" +;;;;;; "term/rxvt.el" "term/sun-mouse.el" "term/sun.el" "term/sup-mouse.el" +;;;;;; "term/tty-colors.el" "term/tvi970.el" "term/vt100.el" "term/vt102.el" +;;;;;; "term/vt125.el" "term/vt200.el" "term/vt201.el" "term/vt220.el" +;;;;;; "term/vt240.el" "term/vt300.el" "term/vt320.el" "term/vt400.el" +;;;;;; "term/vt420.el" "term/w32-win.el" "term/wyse50.el" "term/x-win.el" +;;;;;; "term/xterm.el" "textmodes/bib-mode.el" "textmodes/fill.el" +;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/page.el" +;;;;;; "textmodes/paragraphs.el" "textmodes/refbib.el" "textmodes/refer.el" +;;;;;; "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el" +;;;;;; "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/reftex-vars.el" +;;;;;; "textmodes/texnfo-upd.el" "textmodes/text-mode.el" "timezone.el" +;;;;;; "tree-widget.el" "uniquify.el" "url/url-about.el" "url/url-dired.el" +;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-https.el" "url/url-imap.el" +;;;;;; "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el" ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" -;;;;;; "x-dnd.el") (17107 40722 172960)) +;;;;;; "x-dnd.el") (17178 25595 473948)) ;;;*** diff --git a/lisp/ledit.el b/lisp/ledit.el index cab3c6c7d6c..bf17f3cad4f 100644 --- a/lisp/ledit.el +++ b/lisp/ledit.el @@ -1,6 +1,6 @@ ;;; ledit.el --- Emacs side of ledit interface -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: languages diff --git a/lisp/loadhist.el b/lisp/loadhist.el index bcdf47387da..61c4192387d 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el @@ -1,6 +1,7 @@ ;;; loadhist.el --- lisp functions for working with feature groups -;; Copyright (C) 1995, 1998, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF diff --git a/lisp/loadup.el b/lisp/loadup.el index 36ed511f584..e1d5e56e2a2 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -1,6 +1,7 @@ ;;; loadup.el --- load up standardly loaded Lisp files for Emacs -;; Copyright (C) 1985, 1986, 1992, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1992, 1994, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/locate.el b/lisp/locate.el index 4289d3e975c..cbf2e4866ab 100644 --- a/lisp/locate.el +++ b/lisp/locate.el @@ -1,6 +1,7 @@ ;;; locate.el --- interface to the locate command -;; Copyright (C) 1996, 1998, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Keywords: unix files diff --git a/lisp/log-edit.el b/lisp/log-edit.el index a3876df8cce..2b38dcadf52 100644 --- a/lisp/log-edit.el +++ b/lisp/log-edit.el @@ -1,6 +1,7 @@ ;;; log-edit.el --- Major mode for editing CVS commit messages -;; Copyright (C) 1999,2000,2003,2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs cvs commit log diff --git a/lisp/log-view.el b/lisp/log-view.el index 66e8b27c0ff..cd403a83145 100644 --- a/lisp/log-view.el +++ b/lisp/log-view.el @@ -1,6 +1,7 @@ ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output -;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: rcs sccs cvs log version-control @@ -36,6 +37,8 @@ (require 'pcvs-util) (autoload 'vc-version-diff "vc") +(defvar cvs-minor-wrap-function) + (defgroup log-view nil "Major mode for browsing log output of RCS/CVS/SCCS." :group 'pcl-cvs diff --git a/lisp/longlines.el b/lisp/longlines.el index 5d68c0a06a3..6ce5dfaebc4 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -1,6 +1,6 @@ ;;; longlines.el --- automatically wrap long lines -;; Copyright (C) 2000, 2001, 2004, 2005 by Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. ;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> ;; Alex Schroeder <alex@gnu.org> @@ -116,6 +116,7 @@ are indicated with a symbol." (add-hook 'window-configuration-change-hook 'longlines-window-change-function nil t)) (let ((buffer-undo-list t) + (inhibit-read-only t) (mod (buffer-modified-p))) ;; Turning off undo is OK since (spaces + newlines) is ;; conserved, except for a corner case in @@ -136,7 +137,8 @@ are indicated with a symbol." (setq buffer-file-format (delete 'longlines buffer-file-format)) (if longlines-showing (longlines-unshow-hard-newlines)) - (let ((buffer-undo-list t)) + (let ((buffer-undo-list t) + (inhibit-read-only t)) (longlines-encode-region (point-min) (point-max))) (remove-hook 'change-major-mode-hook 'longlines-mode-off t) (remove-hook 'before-kill-functions 'longlines-encode-region t) @@ -144,7 +146,11 @@ are indicated with a symbol." (remove-hook 'post-command-hook 'longlines-post-command-function t) (remove-hook 'window-configuration-change-hook 'longlines-window-change-function t) - (kill-local-variable 'fill-column))) + (when longlines-wrap-follows-window-size + (kill-local-variable 'fill-column)) + (kill-local-variable 'require-final-newline) + (kill-local-variable 'buffer-substring-filters) + (kill-local-variable 'use-hard-newlines))) (defun longlines-mode-off () "Turn off longlines mode. @@ -170,20 +176,20 @@ With optional argument ARG, make the hard newlines invisible again." "Make hard newlines between BEG and END visible." (let* ((pmin (min beg end)) (pmax (max beg end)) - (pos (text-property-any pmin pmax 'hard t))) + (pos (text-property-not-all pmin pmax 'hard nil))) (while pos (put-text-property pos (1+ pos) 'display (copy-sequence longlines-show-effect)) - (setq pos (text-property-any (1+ pos) pmax 'hard t))))) + (setq pos (text-property-not-all (1+ pos) pmax 'hard nil))))) (defun longlines-unshow-hard-newlines () "Make hard newlines invisible again." (interactive) (setq longlines-showing nil) - (let ((pos (text-property-any (point-min) (point-max) 'hard t))) + (let ((pos (text-property-not-all (point-min) (point-max) 'hard nil))) (while pos (remove-text-properties pos (1+ pos) '(display)) - (setq pos (text-property-any (1+ pos) (point-max) 'hard t))))) + (setq pos (text-property-not-all (1+ pos) (point-max) 'hard nil))))) ;; Wrapping the paragraphs. diff --git a/lisp/lpr.el b/lisp/lpr.el index 5714c746631..c44971e4f30 100644 --- a/lisp/lpr.el +++ b/lisp/lpr.el @@ -1,7 +1,7 @@ ;;; lpr.el --- print Emacs buffer on line printer -;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: unix diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index dee98a87823..feadbb5e2be 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el @@ -1,6 +1,7 @@ ;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp -;; Copyright (C) 1992, 1994, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> ;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk> diff --git a/lisp/macros.el b/lisp/macros.el index 79471ed905c..7075300ba18 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -1,6 +1,7 @@ ;;; macros.el --- non-primitive commands for keyboard macros -;; Copyright (C) 1985, 86, 87, 92, 94, 95, 04 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1995, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: abbrev diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el index c8bb2e729d2..01c52f82046 100644 --- a/lisp/mail/blessmail.el +++ b/lisp/mail/blessmail.el @@ -1,6 +1,6 @@ ;;; blessmail.el --- decide whether movemail needs special privileges -*- no-byte-compile: t -*- -;; Copyright (C) 1994 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index bc6060f40c4..bb88c447320 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -1,7 +1,7 @@ ;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list -;; Copyright (C) 1985, 1994, 1997, 1998, 2000, 2001, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 1997, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF @@ -125,9 +125,18 @@ usually do not have translators to read other languages for them.\n\n") (insert "\n\n") (setq user-point (point)) - (insert "\n\n\n") + (insert "\n\n") + + (insert "If emacs crashed, and you have the emacs process in the gdb debugger,\n" + "please include the output from the following gdb commands:\n" + " `bt full' and `xbacktrace'.\n") + + (let ((debug-file (expand-file-name "DEBUG" data-directory))) + (if (file-readable-p debug-file) + (insert "If you would like to further debug the crash, please read the file\n" + debug-file " for instructions.\n"))) - (insert "In " (emacs-version) "\n") + (insert "\n\nIn " (emacs-version) "\n") (if (fboundp 'x-server-vendor) (condition-case nil (insert "X server distributor `" (x-server-vendor) "', version " diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index e4c0cd10c13..58b6be4f5fc 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -1,6 +1,7 @@ ;;; footnote.el --- footnote support for message mode -*- coding: iso-latin-1;-*- -;; Copyright (C) 1997, 2000 by Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Steven L Baur <steve@xemacs.org> ;; Keywords: mail, news diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el index 15b8dd466ad..da5ec4bfda1 100644 --- a/lisp/mail/mail-extr.el +++ b/lisp/mail/mail-extr.el @@ -1,7 +1,7 @@ ;;; mail-extr.el --- extract full name and address from RFC 822 mail header -*- coding: utf-8 -*- -;; Copyright (C) 1991, 1992, 1993, 1994, 1997, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@cs.bu.edu> ;; Maintainer: FSF diff --git a/lisp/mail/mail-hist.el b/lisp/mail/mail-hist.el index 0540c484a89..3010e85d31b 100644 --- a/lisp/mail/mail-hist.el +++ b/lisp/mail/mail-hist.el @@ -1,6 +1,6 @@ ;;; mail-hist.el --- headers and message body history for outgoing mail -;; Copyright (C) 1994 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Created: March, 1994 diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el index 3b68506b48a..e76da171fbc 100644 --- a/lisp/mail/mail-utils.el +++ b/lisp/mail/mail-utils.el @@ -1,6 +1,7 @@ ;;; mail-utils.el --- utility functions used both by rmail and rnews -;; Copyright (C) 1985, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail, news diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el index 941dff7ca10..270d2cd6385 100644 --- a/lisp/mail/mailabbrev.el +++ b/lisp/mail/mailabbrev.el @@ -1,7 +1,7 @@ ;;; mailabbrev.el --- abbrev-expansion of mail aliases -;; Copyright (C) 1985, 86, 87, 92, 93, 96, 1997, 2000, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1996, 1997, 2000, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com>, now <jwz@jwz.org> ;; Maintainer: FSF diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el index 55c284dda7d..48f3494a0e6 100644 --- a/lisp/mail/mailalias.el +++ b/lisp/mail/mailalias.el @@ -1,6 +1,7 @@ ;;; mailalias.el --- expand and complete mailing address aliases -;; Copyright (C) 1985, 1987, 1995, 1996, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1995, 1996, 1997, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -261,6 +262,12 @@ By default, this is the file specified by `mail-personal-alias-file'." ((file-exists-p (setq file (concat "~/" file))) (insert-file-contents file)) (t (setq file nil))) + (goto-char (point-min)) + ;; Delete comments from the contents. + (while (search-forward "# " nil t) + (let ((p (- (point) 2))) + (end-of-line) + (delete-region p (point)))) ;; Don't lose if no final newline. (goto-char (point-max)) (or (eq (preceding-char) ?\n) (newline)) diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el index e7c4320cc48..1e9a24da341 100644 --- a/lisp/mail/mailheader.el +++ b/lisp/mail/mailheader.el @@ -1,6 +1,6 @@ ;;; mailheader.el --- mail header parsing, merging, formatting -;; Copyright (C) 1996 by Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc. ;; Author: Erik Naggum <erik@naggum.no> ;; Keywords: tools, mail, news diff --git a/lisp/mail/metamail.el b/lisp/mail/metamail.el index 0c5189e53e0..6d13bda9823 100644 --- a/lisp/mail/metamail.el +++ b/lisp/mail/metamail.el @@ -1,6 +1,7 @@ ;;; metamail.el --- Metamail interface for GNU Emacs -;; Copyright (C) 1993, 1996 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> ;; Keywords: mail, news, mime, multimedia @@ -35,6 +36,9 @@ ;;; Code: +(defvar rmail-current-message) +(defvar rmail-message-vector) + (defgroup metamail nil "Metamail interface for Emacs." :group 'mail diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el index d1a3072eee8..7a01a5e5361 100644 --- a/lisp/mail/mspools.el +++ b/lisp/mail/mspools.el @@ -1,6 +1,6 @@ ;;; mspools.el --- show mail spools waiting to be read -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stephen Eglen <stephen@gnu.org> ;; Maintainer: Stephen Eglen <stephen@gnu.org> @@ -110,6 +110,14 @@ ;;; Code: +(defvar rmail-inbox-list) +(defvar vm-crash-box) +(defvar vm-folder-directory) +(defvar vm-init-file) +(defvar vm-init-file-loaded) +(defvar vm-primary-inbox) +(defvar vm-spool-files) + ;;; User Variables (defgroup mspools nil diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el index 673cb14e255..058d0a83f23 100644 --- a/lisp/mail/reporter.el +++ b/lisp/mail/reporter.el @@ -1,6 +1,7 @@ ;;; reporter.el --- customizable bug reporting of lisp programs -;; Copyright (C) 1993,1994,1995,1996,1997,1998 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: 1993-1998 Barry A. Warsaw ;; Maintainer: FSF @@ -263,7 +264,7 @@ dumped." varlist) (lisp-indent-line) (insert ")\n")) - (insert-buffer elbuf)) + (insert-buffer-substring elbuf)) (error (insert "State could not be dumped due to the following error:\n\n" (format "%s" fault) diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el index d6864b664ed..a21deb394cf 100644 --- a/lisp/mail/rfc2368.el +++ b/lisp/mail/rfc2368.el @@ -3,7 +3,8 @@ ;; Author: Sen Nagata <sen@eccosys.com> ;; Keywords: mail -;; Copyright (C) 1998, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el index 4c7cfeeaa69..9e57226d7c2 100644 --- a/lisp/mail/rfc822.el +++ b/lisp/mail/rfc822.el @@ -1,6 +1,7 @@ ;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike -;; Copyright (C) 1986, 87, 1990 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 1990, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> ;; Maintainer: FSF diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el index 9cd2123e3c3..7be5146f722 100644 --- a/lisp/mail/rmail-spam-filter.el +++ b/lisp/mail/rmail-spam-filter.el @@ -1,7 +1,6 @@ ;;; rmail-spam-filter.el --- spam filter for rmail, the emacs mail reader. -;; Copyright (C) 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: email, spam, filter, rmail ;; Author: Eli Tziperman <eli AT deas.harvard.edu> @@ -87,6 +86,9 @@ (require 'rmailsum) (if (not (fboundp 'rmail-make-summary-line)) (load-library "rmailsum"))) +(defvar bbdb/mail_auto_create_p) +(defvar rmail-summary-mode-map) + ;; For find-if and other cool common lisp functions we may want to use. (eval-when-compile (require 'cl)) @@ -183,7 +185,7 @@ may be either 'this is spam' or 'another spam', use the regexp: 'this is spam\\|another spam' (without the single quotes). To specify that if the contents contain both this and that the message is spam, specify 'this\\&that' in the appropriate spam definition field." - :type '(repeat + :type '(repeat (list :format "%v" (cons :format "%v" :value (from . "") (const :format "" from) @@ -202,7 +204,7 @@ specify 'this\\&that' in the appropriate spam definition field." (string :tag "Contents" "")) (cons :format "%v" :value (action . output-and-delete) (const :format "" action) - (choice :tag "Action selection" + (choice :tag "Action selection" (const :tag "output to spam folder and delete" output-and-delete) (const :tag "delete spam" delete-spam) )) @@ -218,7 +220,7 @@ for interaction with `rsf-bbdb-auto-delete-spam-entries'") (defun check-field (field-symbol message-data definition result) "Check if field-symbol is in `rsf-definitions-alist'. Capture maybe-spam and this-is-a-spam-email in a cons in result, -where maybe-spam is in first and this-is-a-spam-email is in rest. +where maybe-spam is in first and this-is-a-spam-email is in rest. The values are returned by destructively changing result. If FIELD-SYMBOL field does not exist AND is not specified, this may still be spam due to another element... @@ -259,7 +261,7 @@ it from rmail file. Called for each new message retrieved by (save-current-msg) (rsf-saved-bbdb/mail_auto_create_p nil) ) - + ;; make sure bbdb does not create entries for messages while spam ;; filter is scanning the rmail file: (setq rsf-saved-bbdb/mail_auto_create_p 'bbdb/mail_auto_create_p) @@ -291,7 +293,7 @@ it from rmail file. Called for each new message retrieved by ;;; do we want to ignore case in spam definitions: (setq case-fold-search rsf-ignore-case) - + ;; Check for blind CC condition. Set vars such that while ;; loop will be bypassed and spam condition will trigger (if (and rsf-no-blind-cc @@ -339,7 +341,7 @@ it from rmail file. Called for each new message retrieved by ;; start scanning incoming message: ;;--------------------------------- - + ;; Maybe the different fields should also be done in a ;; loop to make the whole thing more flexible ;; if sender field is not specified in message being @@ -352,16 +354,16 @@ it from rmail file. Called for each new message retrieved by ;; next, if spam was not ruled out already, check subject: (check-field 'subject message-subject definition maybe-spam) ;; next, if spam was not ruled out already, check content-type: - (check-field 'content-type message-content-type + (check-field 'content-type message-content-type definition maybe-spam) ;; next, if spam was not ruled out already, check ;; contents: if contents field is not specified, this may ;; still be spam due to another element... - (check-field 'contents + (check-field 'contents (buffer-substring (rmail-msgbeg msg) (rmail-msgend msg)) definition maybe-spam) - + ;; if the search in rsf-definitions-alist found ;; that this email is spam, output the email to the spam ;; rmail file, mark the email for deletion, leave the @@ -378,7 +380,7 @@ it from rmail file. Called for each new message retrieved by (setq num-element (+ num-element 1))) ) ) - + ;; (BK) re-set originally used variables (setq this-is-a-spam-email (rest maybe-spam) maybe-spam (first maybe-spam)) @@ -610,9 +612,9 @@ automatically, no user input is required." (while definitions (setq current (car definitions)) (setq definitions (cdr definitions)) - (setq result + (setq result (append result - (list + (list (list (assoc 'from current) (assoc 'to current) (assoc 'subject current) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 4b10c937492..b84ea1f34d1 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -1,7 +1,7 @@ ;;; rmail.el --- main code of "RMAIL" mail reader for Emacs -;; Copyright (C) 1985,86,87,88,93,94,95,96,97,98,2000,01,2004,2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -42,6 +42,16 @@ (require 'mail-utils) (eval-when-compile (require 'mule-util)) ; for detect-coding-with-priority +(defvar deleted-head) +(defvar font-lock-fontified) +(defvar mail-abbrev-syntax-table) +(defvar mail-abbrevs) +(defvar messages-head) +(defvar rmail-use-spam-filter) +(defvar rsf-beep) +(defvar rsf-sleep-after-message) +(defvar total-messages) + ; These variables now declared in paths.el. ;(defvar rmail-spool-directory "/usr/spool/mail/" ; "This is the name of the directory used by the system mailer for\n\ @@ -108,7 +118,7 @@ Please use `rmail-remote-password' instead." :group 'rmail-obsolete) (defcustom rmail-pop-password-required nil - "*Non-nil if a password is required when reading mail from a POP server. + "*Non-nil if a password is required when reading mail from a POP server. Please use rmail-remote-password-required instead." :type 'boolean :group 'rmail-obsolete) @@ -251,21 +261,33 @@ It is useful to set this variable in the site customization file.") "\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" "\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" "\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" - "\\|^x-mailer:\\|^delivered-to:\\|^lines:\\|^mime-version:" + "\\|^x-mailer:\\|^delivered-to:\\|^lines:" "\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^errors-to:\\|^return-receipt-to:" - "\\|^x-sign:\\|^x-beenthere:\\|^x-mailman-version:\\|^x-mailman-copy:" "\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:" "\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:" - "\\|^content-type:\\|^content-length:" - "\\|^x-attribution:\\|^x-disclaimer:\\|^x-trace:" - "\\|^x-complaints-to:\\|^nntp-posting-date:\\|^user-agent" - "\\|^importance:\\|^envelope-to:\\|^delivery-date" - "\\|^x.*-priority:\\|^x-mimeole:\\|^x-archive:" - "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization\\|^resent-openpgp" - "\\|^openpgp:\\|^x-request-pgp:\\|^x-original.*:" - "\\|^x-virus-scanned:\\|^x-spam-[^s].*:") + "\\|^content-length:\\|^nntp-posting-date:\\|^user-agent" + "\\|^importance:\\|^envelope-to:\\|^delivery-date\\|^openpgp:" + "\\|^mbox-line:\\|^cancel-lock:" + "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization:\\|^resent-openpgp:" + + "\\|^x-.*:") "*Regexp to match header fields that Rmail should normally hide. +\(See also `rmail-nonignored-headers', which overrides this regexp.) +This variable is used for reformatting the message header, +which normally happens once for each message, +when you view the message for the first time in Rmail. +To make a change in this variable take effect +for a message that you have already viewed, +go to that message and type \\[rmail-toggle-header] twice." + :type 'regexp + :group 'rmail-headers) + +(defcustom rmail-nonignored-headers "^x-spam-status:" + "*Regexp to match X header fields that Rmail should show. +This regexp overrides `rmail-ignored-headers'; if both this regexp +and that one match a certain header field, Rmail shows the field. + This variable is used for reformatting the message header, which normally happens once for each message, when you view the message for the first time in Rmail. @@ -952,6 +974,7 @@ Note: it means the file has no messages in it.\n\^_"))) (define-key rmail-mode-map "w" 'rmail-output-body-to-file) (define-key rmail-mode-map "x" 'rmail-expunge) (define-key rmail-mode-map "." 'rmail-beginning-of-message) + (define-key rmail-mode-map "/" 'rmail-end-of-message) (define-key rmail-mode-map "<" 'rmail-first-message) (define-key rmail-mode-map ">" 'rmail-last-message) (define-key rmail-mode-map " " 'scroll-up) @@ -1096,7 +1119,8 @@ Note: it means the file has no messages in it.\n\^_"))) All normal editing commands are turned off. Instead, these commands are available: -\\[rmail-beginning-of-message] Move point to front of this message (same as \\[beginning-of-buffer]). +\\[rmail-beginning-of-message] Move point to front of this message. +\\[rmail-end-of-message] Move point to bottom of this message. \\[scroll-up] Scroll to next screen of this message. \\[scroll-down] Scroll to previous screen of this message. \\[rmail-next-undeleted-message] Move to Next non-deleted message. @@ -1634,7 +1658,7 @@ is non-nil if the user has supplied the password interactively. (pass (match-string 5 file)) (host (substring file (or (match-end 2) (+ 3 (match-end 1)))))) - + (if (not pass) (when rmail-remote-password-required (setq got-password (not (rmail-have-password))) @@ -1652,19 +1676,19 @@ is non-nil if the user has supplied the password interactively. (or (string-equal proto "pop") (string-equal proto "imap")) supplied-password got-password)))) - + ((string-match "^po:\\([^:]+\\)\\(:\\(.*\\)\\)?" file) (let (got-password supplied-password (proto "pop") (user (match-string 1 file)) (host (match-string 3 file))) - + (when rmail-remote-password-required (setq got-password (not (rmail-have-password))) (setq supplied-password (rmail-get-remote-password nil))) (list file "pop" supplied-password got-password))) - + (t (list file nil nil nil)))) @@ -2181,7 +2205,8 @@ If the optional argument IGNORED-HEADERS is non-nil, delete all header fields whose names match that regexp. Otherwise, if `rmail-displayed-headers' is non-nil, delete all header fields *except* those whose names match that regexp. -Otherwise, delete all header fields whose names match `rmail-ignored-headers'." +Otherwise, delete all header fields whose names match `rmail-ignored-headers' +unless they also match `rmail-nonignored-headers'." (when (search-forward "\n\n" nil t) (forward-char -1) (let ((case-fold-search t) @@ -2205,15 +2230,17 @@ Otherwise, delete all header fields whose names match `rmail-ignored-headers'." (or ignored-headers (setq ignored-headers rmail-ignored-headers)) (save-restriction (narrow-to-region (point-min) (point)) + (goto-char (point-min)) (while (and ignored-headers - (progn - (goto-char (point-min)) - (re-search-forward ignored-headers nil t))) + (re-search-forward ignored-headers nil t)) (beginning-of-line) - (delete-region (point) - (if (re-search-forward "\n[^ \t]" nil t) - (1- (point)) - (point-max))))))))) + (if (looking-at rmail-nonignored-headers) + (forward-line 1) + (delete-region (point) + (save-excursion + (if (re-search-forward "\n[^ \t]" nil t) + (1- (point)) + (point-max))))))))))) (defun rmail-msg-is-pruned () (rmail-maybe-set-message-counters) @@ -2604,7 +2631,19 @@ change the invisible header text." (defun rmail-beginning-of-message () "Show current message starting from the beginning." (interactive) - (rmail-show-message rmail-current-message)) + (let ((rmail-show-message-hook + (list (function (lambda () + (goto-char (point-min))))))) + (rmail-show-message rmail-current-message))) + +(defun rmail-end-of-message () + "Show bottom of current message." + (interactive) + (let ((rmail-show-message-hook + (list (function (lambda () + (goto-char (point-max)) + (recenter (1- (window-height)))))))) + (rmail-show-message rmail-current-message))) (defun rmail-unknown-mail-followup-to () "Handle a \"Mail-Followup-To\" header field with an unknown mailing list. @@ -2614,7 +2653,7 @@ Ask the user whether to add that list name to `mail-mailing-lists'." (let ((mail-followup-to (mail-fetch-field "mail-followup-to" nil t))) (when mail-followup-to (let ((addresses - (split-string + (split-string (mail-strip-quoted-names mail-followup-to) ",[[:space:]]+" t))) (dolist (addr addresses) @@ -3316,10 +3355,10 @@ See also user-option `rmail-confirm-expunge'." (narrow-to-region (- (buffer-size) omin) (- (buffer-size) omax))) (if (not dont-show) (rmail-show-message - (if (zerop rmail-current-message) 1 nil) - (if rmail-enable-mime - (goto-char (+ (point-min) opoint)) - (goto-char (+ (point) opoint)))))))) + (if (zerop rmail-current-message) 1 nil))) + (if rmail-enable-mime + (goto-char (+ (point-min) opoint)) + (goto-char (+ (point) opoint)))))) (defun rmail-expunge () "Erase deleted messages from Rmail file and summary buffer." @@ -3398,18 +3437,11 @@ use \\[mail-yank-original] to yank the original message into it." (progn (search-forward "\n*** EOOH ***\n") (beginning-of-line) (point))))) (setq from (mail-fetch-field "from") - reply-to (or (if just-sender - (mail-fetch-field "mail-reply-to" nil t) - (mail-fetch-field "mail-followup-to" nil t)) + reply-to (or (mail-fetch-field "mail-reply-to" nil t) (mail-fetch-field "reply-to" nil t) from) - cc (and (not just-sender) - ;; mail-followup-to, if given, overrides cc. - (not (mail-fetch-field "mail-followup-to" nil t)) - (mail-fetch-field "cc" nil t)) subject (mail-fetch-field "subject") date (mail-fetch-field "date") - to (or (mail-fetch-field "to" nil t) "") message-id (mail-fetch-field "message-id") references (mail-fetch-field "references" nil nil t) resent-reply-to (mail-fetch-field "resent-reply-to" nil t) @@ -3419,7 +3451,16 @@ use \\[mail-yank-original] to yank the original message into it." ;;; resent-subject (mail-fetch-field "resent-subject") ;;; resent-date (mail-fetch-field "resent-date") ;;; resent-message-id (mail-fetch-field "resent-message-id") - ))) + ) + (unless just-sender + (if (mail-fetch-field "mail-followup-to" nil t) + ;; If this header field is present, use it instead of the To and CC fields. + (setq to (mail-fetch-field "mail-followup-to" nil t)) + (setq cc (or (mail-fetch-field "cc" nil t) "") + to (or (mail-fetch-field "to" nil t) "")))) + + )) + ;; Merge the resent-to and resent-cc into the to and cc. (if (and resent-to (not (equal resent-to ""))) (if (not (equal to "")) @@ -4058,7 +4099,6 @@ encoded string (and the same mask) will decode the string." ;;;; Desktop support -;;;###autoload (defun rmail-restore-desktop-buffer (desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) @@ -4073,6 +4113,9 @@ encoded string (and the same mask) will decode the string." (kill-buffer (current-buffer)) nil))) +(add-to-list 'desktop-buffer-mode-handlers + '(rmail-mode . rmail-restore-desktop-buffer)) + (provide 'rmail) ;;; arch-tag: cff0a950-57fe-4f73-a86e-91ff75afd06c diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el index 40dba181d5c..75de9810a37 100644 --- a/lisp/mail/rmailedit.el +++ b/lisp/mail/rmailedit.el @@ -1,6 +1,7 @@ ;;; rmailedit.el --- "RMAIL edit mode" Edit the current message -;; Copyright (C) 1985, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el index fc57b2a4d5e..843c6fc80a3 100644 --- a/lisp/mail/rmailkwd.el +++ b/lisp/mail/rmailkwd.el @@ -1,6 +1,7 @@ ;;; rmailkwd.el --- part of the "RMAIL" mail reader for Emacs -;; Copyright (C) 1985, 1988, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1988, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -26,6 +27,13 @@ ;;; Code: +(defvar rmail-buffer) +(defvar rmail-current-message) +(defvar rmail-last-label) +(defvar rmail-last-multi-labels) +(defvar rmail-summary-vector) +(defvar rmail-total-messages) + ;; Global to all RMAIL buffers. It exists primarily for the sake of ;; completion. It is better to use strings with the label functions ;; and let them worry about making the label. diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el index 50626d714ce..26d61b56837 100644 --- a/lisp/mail/rmailmsc.el +++ b/lisp/mail/rmailmsc.el @@ -1,6 +1,6 @@ ;;; rmailmsc.el --- miscellaneous support functions for the RMAIL mail reader -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -26,6 +26,9 @@ ;;; Code: +(defvar rmail-current-message) +(defvar rmail-inbox-list) + ;;;###autoload (defun set-rmail-inbox-list (file-name) "Set the inbox list of the current RMAIL file to FILE-NAME. diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el index d3baf08c261..a3b46ddaedf 100644 --- a/lisp/mail/rmailout.el +++ b/lisp/mail/rmailout.el @@ -1,6 +1,7 @@ ;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file -;; Copyright (C) 1985, 1987, 1993, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el index 32188657c44..8bb8ab69278 100644 --- a/lisp/mail/rmailsort.el +++ b/lisp/mail/rmailsort.el @@ -1,6 +1,7 @@ ;;; rmailsort.el --- Rmail: sort messages -;; Copyright (C) 1990, 1993, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> ;; Maintainer: FSF diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index e3cb4ce1eb8..ad2c275a679 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -1,7 +1,7 @@ ;;; rmailsum.el --- make summary buffers for the mail reader -;; Copyright (C) 1985, 1993, 1994, 1995, 1996, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1993, 1994, 1995, 1996, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -31,6 +31,8 @@ ;;; Code: +(defvar msgnum) + ;; For rmail-select-summary (require 'rmail) @@ -898,6 +900,7 @@ Search, the `unseen' attribute is restored.") (define-key rmail-summary-mode-map "x" 'rmail-summary-expunge) (define-key rmail-summary-mode-map "w" 'rmail-summary-output-body) (define-key rmail-summary-mode-map "." 'rmail-summary-beginning-of-message) + (define-key rmail-summary-mode-map "/" 'rmail-summary-end-of-message) (define-key rmail-summary-mode-map "<" 'rmail-summary-first-message) (define-key rmail-summary-mode-map ">" 'rmail-summary-last-message) (define-key rmail-summary-mode-map " " 'rmail-summary-scroll-msg-up) @@ -1185,6 +1188,16 @@ move to the previous message." (defun rmail-summary-beginning-of-message () "Show current message from the beginning." (interactive) + (rmail-summary-show-message 'BEG)) + +(defun rmail-summary-end-of-message () + "Show bottom of current message." + (interactive) + (rmail-summary-show-message 'END)) + +(defun rmail-summary-show-message (where) + "Show current mail message. +Position it according to WHERE which can be BEG or END" (if (and (one-window-p) (not pop-up-frames)) ;; If there is just one window, put the summary on the top. (let ((buffer rmail-view-buffer)) @@ -1196,8 +1209,14 @@ move to the previous message." (or (eq buffer (window-buffer (next-window (frame-first-window)))) (delete-other-windows))) (pop-to-buffer rmail-view-buffer)) - (with-no-warnings - (beginning-of-buffer)) + (cond + ((eq where 'BEG) + (goto-char (point-min)) + (search-forward "\n\n")) + ((eq where 'END) + (goto-char (point-max)) + (recenter (1- (window-height)))) + ) (pop-to-buffer rmail-summary-buffer)) (defun rmail-summary-bury () diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 337301ebcfa..f2dec757520 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -1,7 +1,7 @@ ;;; sendmail.el --- mail sending commands for Emacs. -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 98, 2000, 2001, 2002, 03, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1998, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -1432,7 +1432,9 @@ and don't delete any header fields." ;; delete that window to save screen space. ;; t means don't alter other frames. (delete-windows-on original t) - (insert-buffer original) + (with-no-warnings + ;; We really want this to set mark. + (insert-buffer original)) (set-text-properties (point) (mark t) nil)) (if (consp arg) nil diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index 0c076011044..55a4d060fad 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el @@ -1,6 +1,6 @@ ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail -;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004 +;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp> @@ -207,7 +207,7 @@ This is relative to `smtpmail-queue-dir'.") (defvar smtpmail-queue-index (concat smtpmail-queue-dir smtpmail-queue-index-file)) -(defconst smtpmail-auth-supported '(cram-md5 login) +(defconst smtpmail-auth-supported '(cram-md5 plain login) "List of supported SMTP AUTH mechanisms.") ;;; @@ -559,8 +559,24 @@ This is relative to `smtpmail-queue-dir'.") (not (integerp (car ret))) (>= (car ret) 400)) (throw 'done nil))) + ((eq mech 'plain) + (smtpmail-send-command process "AUTH PLAIN") + (if (or (null (car (setq ret (smtpmail-read-response process)))) + (not (integerp (car ret))) + (not (equal (car ret) 334))) + (throw 'done nil)) + (smtpmail-send-command process (base64-encode-string + (concat "\0" + (smtpmail-cred-user cred) + "\0" + (smtpmail-cred-passwd cred)))) + (if (or (null (car (setq ret (smtpmail-read-response process)))) + (not (integerp (car ret))) + (not (equal (car ret) 235))) + (throw 'done nil))) + (t - (error "Mechanism %s not implemented" mech))) + (error "Mechanism %s not implemented" mech))) ;; Remember the password. (when (and (not (stringp smtpmail-auth-credentials)) (null (smtpmail-cred-passwd cred))) diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el index 5f219510b21..a180c6c67ce 100644 --- a/lisp/mail/supercite.el +++ b/lisp/mail/supercite.el @@ -1,6 +1,7 @@ ;;; supercite.el --- minor mode for citing mail and news replies -;; Copyright (C) 1993, 1997, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org> ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> @@ -642,8 +643,8 @@ the list should be unique." (prog1 quit-flag (setq quit-flag nil))) (progn (message "%s%s" p (single-key-description event)) - (and (fboundp 'deallocate-event) - (deallocate-event event)) + (if (fboundp 'deallocate-event) + (deallocate-event event)) (setq quit-flag nil) (signal 'quit '()))) (let ((char @@ -658,8 +659,8 @@ the list should be unique." ((setq elt (rassq char alist)) (message "%s%s" p (car elt)) (setq p (cdr elt))) - ((and (fboundp 'button-release-event-p) - (button-release-event-p event)) ; ignore them + ((if (fboundp 'button-release-event-p) + (button-release-event-p event)) ; ignore them nil) (t (message "%s%s" p (single-key-description event)) @@ -669,8 +670,8 @@ the list should be unique." (discard-input) (if (eq p prompt) (setq p (concat "Try again. " prompt))))))) - (and (fboundp 'deallocate-event) - (deallocate-event event)) + (if (fboundp 'deallocate-event) + (deallocate-event event)) p)) (defun sc-scan-info-alist (alist) @@ -1516,7 +1517,8 @@ non-nil." (progn (forward-line -1) (or (= (point) (mail-header-end)) (and (eq major-mode 'mh-letter-mode) - (mh-in-header-p))))) + (with-no-warnings + (mh-in-header-p)))))) (progn (forward-line) (let ((kill-lines-magic t)) (kill-line)))))) diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el index 14e613ac280..07c09765971 100644 --- a/lisp/mail/uce.el +++ b/lisp/mail/uce.el @@ -1,6 +1,7 @@ ;;; uce.el --- facilitate reply to unsolicited commercial email -;; Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: stanislav shalunov <shalunov@mccme.ru> ;; Created: 10 Dec 1996 @@ -114,6 +115,10 @@ ;;; Code: +(defvar gnus-original-article-buffer) +(defvar mail-reply-buffer) +(defvar rmail-current-message) + (require 'sendmail) ;; Those sections of code which are dependent upon ;; RMAIL are only evaluated if we have received a message with RMAIL... @@ -283,7 +288,7 @@ address, and postmaster of the mail relay used." (re-search-forward "^Lines:") (beginning-of-line)) ((eq uce-mail-reader 'rmail) - (beginning-of-buffer) + (goto-char (point-min)) (search-forward "*** EOOH ***\n") (beginning-of-line) (forward-line -1))) @@ -364,11 +369,7 @@ address, and postmaster of the mail relay used." (if (file-exists-p "~/.signature") (progn (insert "\n\n-- \n") - (insert-file "~/.signature") - ;; Function insert-file leaves point where it was, - ;; while we want to place signature in the ``middle'' - ;; of the message. - (exchange-point-and-mark)))) + (forward-char (cadr (insert-file-contents "~/.signature")))))) (uce-signature (insert "\n\n-- \n" uce-signature))) ;; And text of the original message. diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index b19c9a140dc..5588ecf9108 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el @@ -1,7 +1,7 @@ ;;; undigest.el --- digest-cracking support for the RMAIL mail reader -;; Copyright (C) 1985, 1986, 1994, 1996, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1994, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el index bcac0cee0d9..76764d21ed7 100644 --- a/lisp/mail/unrmail.el +++ b/lisp/mail/unrmail.el @@ -1,6 +1,6 @@ ;;; unrmail.el --- convert Rmail files to mailbox files -;;; Copyright (C) 1992, 2002 Free Software Foundation, Inc. +;;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/vms-pmail.el b/lisp/mail/vms-pmail.el index 881c4d95a61..b53b32be71a 100644 --- a/lisp/mail/vms-pmail.el +++ b/lisp/mail/vms-pmail.el @@ -1,6 +1,6 @@ ;;; vms-pmail.el --- use Emacs as the editor within VMS mail -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Roland B Roberts <roberts@panix.com> ;; Maintainer: FSF diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in index 8c6007af558..6d3cacecc6a 100644 --- a/lisp/makefile.w32-in +++ b/lisp/makefile.w32-in @@ -1,5 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. -# Copyright (c) 2000, 2001, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/lisp/makesum.el b/lisp/makesum.el index 985012f90d1..41ecb630f96 100644 --- a/lisp/makesum.el +++ b/lisp/makesum.el @@ -1,6 +1,6 @@ ;;; makesum.el --- generate key binding summary for Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help diff --git a/lisp/man.el b/lisp/man.el index cb62aa65e94..60fc7c009e1 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -1,7 +1,7 @@ ;;; man.el --- browse UNIX manual pages -*- coding: iso-8859-1 -*- -;; Copyright (C) 1993, 1994, 1996, 1997, 2001, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1996, 1997, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Barry A. Warsaw <bwarsaw@cen.com> ;; Maintainer: FSF @@ -352,6 +352,7 @@ Otherwise, the value is whatever the function (make-variable-buffer-local 'Man-page-mode-string) (make-variable-buffer-local 'Man-original-frame) (make-variable-buffer-local 'Man-arguments) +(put 'Man-arguments 'permanent-local t) (setq-default Man-sections-alist nil) (setq-default Man-refpages-alist nil) @@ -444,7 +445,7 @@ Otherwise, the value is whatever the function ;; utilities (defun Man-init-defvars () - "Used for initialising variables based on display's color support. + "Used for initializing variables based on display's color support. This is necessary if one wants to dump man.el with Emacs." ;; Avoid possible error in call-process by using a directory that must exist. @@ -552,8 +553,8 @@ This is necessary if one wants to dump man.el with Emacs." (defun Man-translate-references (ref) "Translates REF from \"chmod(2V)\" to \"2v chmod\" style. Leave it as is if already in that style. Possibly downcase and -translate the section (see the Man-downcase-section-letters-flag -and the Man-section-translations-alist variables)." +translate the section (see the `Man-downcase-section-letters-flag' +and the `Man-section-translations-alist' variables)." (let ((name "") (section "") (slist Man-section-translations-alist)) @@ -591,7 +592,7 @@ This option allows `man' to interpret command line arguments as local filenames. Return the value of the variable `Man-support-local-filenames' if it was set to nil or t before the call of this function. -If t, the man command supports `-l' option. If nil, it don't. +If t, the man command supports `-l' option. If nil, it doesn't. Otherwise, if the value of `Man-support-local-filenames' is neither t nor nil, then determine a new value, set it to the variable `Man-support-local-filenames' and return @@ -904,8 +905,8 @@ Same for the ANSI bold and normal escape sequences." (defun Man-highlight-references () "Highlight the references on mouse-over. -references include items in the SEE ALSO section, -header file(#include <foo.h>) and files in FILES" +References include items in the SEE ALSO section, +header file (#include <foo.h>) and files in FILES." (let ((dummy 0)) (Man-highlight-references0 Man-see-also-regexp Man-reference-regexp 1 dummy @@ -1005,8 +1006,15 @@ manpage command." (if Man-fontify-manpage-flag (Man-fontify-manpage) (Man-cleanup-manpage)) + (run-hooks 'Man-cooked-hook) - (Man-mode) + (Man-mode) + + (if (not Man-page-list) + (let ((args Man-arguments)) + (kill-buffer (current-buffer)) + (error "Can't find the %s manpage" args))) + (set-buffer-modified-p nil) )) ;; Restore case-fold-search before calling @@ -1082,7 +1090,7 @@ The following key bindings are currently in effect in the buffer: (Man-build-page-list) (Man-strip-page-headers) (Man-unindent) - (Man-goto-page 1) + (Man-goto-page 1 t) (run-mode-hooks 'Man-mode-hook)) (defsubst Man-build-section-alist () @@ -1342,35 +1350,32 @@ Specify which REFERENCE to use; default is based on word at point." (interactive) (quit-window)) -(defun Man-goto-page (page) +(defun Man-goto-page (page &optional noerror) "Go to the manual page on page PAGE." (interactive (if (not Man-page-list) - (let ((args Man-arguments)) - (kill-buffer (current-buffer)) - (error "Can't find the %s manpage" args)) + (error "Not a man page buffer") (if (= (length Man-page-list) 1) (error "You're looking at the only manpage in the buffer") (list (read-minibuffer (format "Go to manpage [1-%d]: " (length Man-page-list))))))) - (if (not Man-page-list) - (let ((args Man-arguments)) - (kill-buffer (current-buffer)) - (error "Can't find the %s manpage" args))) - (if (or (< page 1) - (> page (length Man-page-list))) - (error "No manpage %d found" page)) - (let* ((page-range (nth (1- page) Man-page-list)) - (page-start (car page-range)) - (page-end (car (cdr page-range)))) - (setq Man-current-page page - Man-page-mode-string (Man-make-page-mode-string)) - (widen) - (goto-char page-start) - (narrow-to-region page-start page-end) - (Man-build-section-alist) - (Man-build-references-alist) - (goto-char (point-min)))) + (if (and (not Man-page-list) (not noerror)) + (error "Not a man page buffer")) + (when Man-page-list + (if (or (< page 1) + (> page (length Man-page-list))) + (error "No manpage %d found" page)) + (let* ((page-range (nth (1- page) Man-page-list)) + (page-start (car page-range)) + (page-end (car (cdr page-range)))) + (setq Man-current-page page + Man-page-mode-string (Man-make-page-mode-string)) + (widen) + (goto-char page-start) + (narrow-to-region page-start page-end) + (Man-build-section-alist) + (Man-build-references-alist) + (goto-char (point-min))))) (defun Man-next-manpage () diff --git a/lisp/master.el b/lisp/master.el index bdc5144d63c..adf3e92dcbe 100644 --- a/lisp/master.el +++ b/lisp/master.el @@ -1,6 +1,6 @@ ;;; master.el --- make a buffer the master over another buffer -;; Copyright (C) 1999, 2000, 2001, 2005 Alexander Schroeder +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Alexander Schroeder ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Alex Schroeder <alex@gnu.org> diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index b6230189cc5..302ede8c8ff 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1,7 +1,7 @@ ;;; menu-bar.el --- define a default menu bar -;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: RMS ;; Maintainer: FSF @@ -99,13 +99,17 @@ A large number or nil slows down menu responsiveness." :help "Open a new frame")) (define-key menu-bar-file-menu [one-window] - '(menu-item "Unsplit Windows" delete-other-windows + '(menu-item "Remove Splits" delete-other-windows :enable (not (one-window-p t nil)) - :help "Make selected window fill its frame")) + :help "Selected window grows to fill the whole frame")) (define-key menu-bar-file-menu [split-window] '(menu-item "Split Window" split-window-vertically - :help "Split selected window in two")) + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame ) + (not (window-minibuffer-p + (frame-selected-window menu-updating-frame)))) + :help "Split selected window in two windows")) (define-key menu-bar-file-menu [separator-window] '(menu-item "--")) @@ -116,6 +120,8 @@ A large number or nil slows down menu responsiveness." :help "Pretty-print marked region in black and white to PostScript printer")) (define-key menu-bar-file-menu [ps-print-buffer] '(menu-item "Postscript Print Buffer (B+W)" ps-print-buffer + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Pretty-print current buffer in black and white to PostScript printer")) (define-key menu-bar-file-menu [ps-print-region-faces] '(menu-item "Postscript Print Region" ps-print-region-with-faces @@ -123,6 +129,8 @@ A large number or nil slows down menu responsiveness." :help "Pretty-print marked region to PostScript printer")) (define-key menu-bar-file-menu [ps-print-buffer-faces] '(menu-item "Postscript Print Buffer" ps-print-buffer-with-faces + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Pretty-print current buffer to PostScript printer")) (define-key menu-bar-file-menu [print-region] '(menu-item "Print Region" print-region @@ -130,6 +138,8 @@ A large number or nil slows down menu responsiveness." :help "Print region between mark and current position")) (define-key menu-bar-file-menu [print-buffer] '(menu-item "Print Buffer" print-buffer + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Print current buffer with page headings")) (define-key menu-bar-file-menu [separator-print] @@ -159,12 +169,14 @@ A large number or nil slows down menu responsiveness." (current-buffer)))))) :help "Re-read current buffer from its file")) (define-key menu-bar-file-menu [write-file] - '(menu-item "Save Buffer As..." write-file - :enable (not (window-minibuffer-p - (frame-selected-window menu-updating-frame))) + '(menu-item "Save As..." write-file + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame ) + (not (window-minibuffer-p + (frame-selected-window menu-updating-frame)))) :help "Write current buffer to another file")) (define-key menu-bar-file-menu [save-buffer] - '(menu-item "Save (current buffer)" save-buffer + '(menu-item "Save" save-buffer :enable (and (buffer-modified-p) (buffer-file-name) (not (window-minibuffer-p @@ -175,9 +187,9 @@ A large number or nil slows down menu responsiveness." '(menu-item "--")) (define-key menu-bar-file-menu [kill-buffer] - '(menu-item "Close (current buffer)" kill-this-buffer + '(menu-item "Close" kill-this-buffer :enable (kill-this-buffer-enabled-p) - :help "Discard current buffer")) + :help "Discard (kill) current buffer")) (define-key menu-bar-file-menu [insert-file] '(menu-item "Insert File..." insert-file :enable (not (window-minibuffer-p @@ -194,7 +206,7 @@ A large number or nil slows down menu responsiveness." (frame-selected-window menu-updating-frame))) :help "Read an existing file into an Emacs buffer")) (define-key menu-bar-file-menu [new-file] - '(menu-item "New File..." find-file + '(menu-item "Visit New File..." find-file :enable (not (window-minibuffer-p (frame-selected-window menu-updating-frame))) :help "Read or create a file and edit it")) @@ -641,7 +653,8 @@ by \"Save Options\" in Custom buffers.") ;; put on a customized-value property. (dolist (elt '(line-number-mode column-number-mode size-indication-mode cua-mode show-paren-mode transient-mark-mode - global-font-lock-mode blink-cursor-mode)) + global-font-lock-mode blink-cursor-mode + display-time-mode display-battery-mode)) (and (customize-mark-to-save elt) (setq need-save t))) ;; These are set with `customize-set-variable'. @@ -649,8 +662,8 @@ by \"Save Options\" in Custom buffers.") debug-on-quit debug-on-error tooltip-mode menu-bar-mode tool-bar-mode save-place uniquify-buffer-name-style fringe-mode - fringe-indicators case-fold-search - display-time-mode auto-compression-mode + indicate-empty-lines indicate-buffer-boundaries + case-fold-search current-language-environment default-input-method ;; Saving `text-mode-hook' is somewhat questionable, ;; as we might get more than we bargain for, if @@ -700,10 +713,16 @@ by \"Save Options\" in Custom buffers.") (define-key menu-bar-showhide-menu [linecolumn-separator] '("--")) +(define-key menu-bar-showhide-menu [showhide-battery] + (menu-bar-make-mm-toggle display-battery-mode + "Battery Status" + "Display battery status information in mode line")) + (define-key menu-bar-showhide-menu [showhide-date-time] (menu-bar-make-mm-toggle display-time-mode - "Date, Time and Mail" - "Display date, time, mail status in mode line")) + "Time, Load and Mail" + "Display time, system load averages and \ +mail status in mode line")) (define-key menu-bar-showhide-menu [datetime-separator] '("--")) @@ -717,88 +736,92 @@ by \"Save Options\" in Custom buffers.") (frame-visible-p (symbol-value 'speedbar-frame)))))) +(defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe")) -(defvar menu-bar-showhide-fringe-ind-menu (make-sparse-keymap "Indicators")) - -;; The real definition is in fringe.el. -;; This is to prevent errors in the :radio conditions below. -(setq fringe-indicators nil) +(defvar menu-bar-showhide-fringe-ind-menu + (make-sparse-keymap "Buffer boundaries")) -(defun menu-bar-showhide-fringe-ind-empty () - "Display empty line indicators in the left or right fringe." +(defun menu-bar-showhide-fringe-ind-customize () + "Show customization buffer for `indicate-buffer-boundaries'." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators 'empty)) + (customize-variable 'indicate-buffer-boundaries)) -(define-key menu-bar-showhide-fringe-ind-menu [empty] - '(menu-item "Empty lines only" menu-bar-showhide-fringe-ind-empty - :help "Show empty line indicators in fringe" - :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators 'empty)))) +(define-key menu-bar-showhide-fringe-ind-menu [customize] + '(menu-item "Other (Customize)" + menu-bar-showhide-fringe-ind-customize + :help "Additional choices available through Custom buffer" + :visible (display-graphic-p))) (defun menu-bar-showhide-fringe-ind-mixed () - "Display top and bottom indicators in opposite fringes, arrow in right." + "Display top and bottom indicators in opposite fringes, arrows in right." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators 'mixed)) + (customize-set-variable 'indicate-buffer-boundaries + '((t . right) (top . left)))) (define-key menu-bar-showhide-fringe-ind-menu [mixed] - '(menu-item "Opposite, arrows right" menu-bar-showhide-fringe-ind-mixed - :help "Show top/bottom indicators in opposite fringes, arrows in right" + '(menu-item "Opposite, Arrows Right" menu-bar-showhide-fringe-ind-mixed + :help + "Show top/bottom indicators in opposite fringes, arrows in right" :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators 'mixed)))) + :button (:radio . (eq indicate-buffer-boundaries + '((t . right) (top . left)))))) (defun menu-bar-showhide-fringe-ind-box () "Display top and bottom indicators in opposite fringes." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators 'box)) + (customize-set-variable 'indicate-buffer-boundaries + '((top . left) (bottom . right)))) (define-key menu-bar-showhide-fringe-ind-menu [box] - '(menu-item "Opposite, no arrows" menu-bar-showhide-fringe-ind-box + '(menu-item "Opposite, No Arrows" menu-bar-showhide-fringe-ind-box :help "Show top/bottom indicators in opposite fringes, no arrows" :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators 'box)))) + :button (:radio . (eq indicate-buffer-boundaries + '((top . left) (bottom . right)))))) (defun menu-bar-showhide-fringe-ind-right () - "Display fringe indicators in the right fringe." + "Display buffer boundaries and arrows in the right fringe." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators 'right)) + (customize-set-variable 'indicate-buffer-boundaries 'right)) (define-key menu-bar-showhide-fringe-ind-menu [right] - '(menu-item "In right fringe" menu-bar-showhide-fringe-ind-right - :help "Show indicators in right fringe" + '(menu-item "In Right Fringe" menu-bar-showhide-fringe-ind-right + :help "Show buffer boundaries and arrows in right fringe" :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators 'right)))) + :button (:radio . (eq indicate-buffer-boundaries 'right)))) (defun menu-bar-showhide-fringe-ind-left () - "Display fringe indicators in the left fringe." + "Display buffer boundaries and arrows in the left fringe." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators 'left)) + (customize-set-variable 'indicate-buffer-boundaries 'left)) (define-key menu-bar-showhide-fringe-ind-menu [left] - '(menu-item "In left fringe" menu-bar-showhide-fringe-ind-left - :help "Show indicators in left fringe" + '(menu-item "In Left Fringe" menu-bar-showhide-fringe-ind-left + :help "Show buffer boundaries and arrows in left fringe" :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators 'left)))) + :button (:radio . (eq indicate-buffer-boundaries 'left)))) (defun menu-bar-showhide-fringe-ind-none () - "Do not display any fringe indicators." + "Do not display any buffer boundary indicators." (interactive) - (require 'fringe) - (customize-set-variable 'fringe-indicators nil)) + (customize-set-variable 'indicate-buffer-boundaries nil)) (define-key menu-bar-showhide-fringe-ind-menu [none] - '(menu-item "No indicators" menu-bar-showhide-fringe-ind-none - :help "Hide all fringe indicators" + '(menu-item "No Indicators" menu-bar-showhide-fringe-ind-none + :help "Hide all buffer boundary indicators and arrows" :visible (display-graphic-p) - :button (:radio . (eq fringe-indicators nil)))) - + :button (:radio . (eq indicate-buffer-boundaries nil)))) +(define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind] + (list 'menu-item "Buffer Boundaries" menu-bar-showhide-fringe-ind-menu + :visible `(display-graphic-p) + :help "Indicate buffer boundaries in fringe")) -(defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe")) +(define-key menu-bar-showhide-fringe-menu [indicate-empty-lines] + (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines + "Empty Line Indicators" + "Indicating of empty lines %s" + "Indicate trailing empty lines in fringe")) (defun menu-bar-showhide-fringe-menu-customize () "Show customization buffer for `fringe-mode'." @@ -806,7 +829,7 @@ by \"Save Options\" in Custom buffers.") (customize-variable 'fringe-mode)) (define-key menu-bar-showhide-fringe-menu [customize] - '(menu-item "Customize" menu-bar-showhide-fringe-menu-customize + '(menu-item "Customize Fringe" menu-bar-showhide-fringe-menu-customize :help "Detailed customization of fringe" :visible (display-graphic-p))) @@ -815,15 +838,6 @@ by \"Save Options\" in Custom buffers.") (interactive) (customize-set-variable 'fringe-mode nil)) -(define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind] - (list 'menu-item "Indicators" menu-bar-showhide-fringe-ind-menu - :visible `(display-graphic-p) - :help "Select fringe mode")) - -;; The real definition is in fringe.el. -;; This is to prevent errors in the :radio conditions below. -(setq fringe-mode nil) - (define-key menu-bar-showhide-fringe-menu [default] '(menu-item "Default" menu-bar-showhide-fringe-menu-customize-reset :help "Default width fringe on both left and right side" @@ -975,13 +989,6 @@ by \"Save Options\" in Custom buffers.") (define-key menu-bar-options-menu [cursor-separator] '("--")) -(define-key menu-bar-options-menu [toggle-auto-compression] - '(menu-item "Automatic File De/compression" - auto-compression-mode - :help "Transparently decompress compressed files" - :button (:toggle . (rassq 'jka-compr-handler - file-name-handler-alist)))) - (define-key menu-bar-options-menu [save-place] (menu-bar-make-toggle toggle-save-place-globally save-place "Save Place in Files between Sessions" @@ -1007,7 +1014,7 @@ by \"Save Options\" in Custom buffers.") '("--")) (define-key menu-bar-options-menu [cua-mode] (menu-bar-make-mm-toggle cua-mode - "C-x/C-c/C-v cut and paste (CUA)" + "C-x/C-c/C-v Cut and Paste (CUA)" "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste")) (define-key menu-bar-options-menu [case-fold-search] @@ -1035,7 +1042,9 @@ by \"Save Options\" in Custom buffers.") '(menu-item "Truncate Long Lines in this Buffer" toggle-truncate-lines :help "Truncate long lines on the screen" - :button (:toggle . truncate-lines))) + :button (:toggle . truncate-lines) + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame)))) (define-key menu-bar-options-menu [highlight-separator] '("--")) @@ -1253,15 +1262,10 @@ by \"Save Options\" in Custom buffers.") '(menu-item "Describe Function..." describe-function :help "Display documentation of function/command")) (define-key menu-bar-describe-menu [describe-key-1] - '(menu-item "Describe Key..." describe-key - ;; Users typically don't identify keys and menu items... - :help "Display documentation of command bound to a \ -key (or menu-item)")) -(define-key menu-bar-describe-menu [describe-key] - '(menu-item "What's This? " describe-key + '(menu-item "Describe Key or Mouse Operation..." describe-key ;; Users typically don't identify keys and menu items... :help "Display documentation of command bound to a \ -key (or menu-item)")) +key, a click, or a menu-item")) (define-key menu-bar-describe-menu [describe-mode] '(menu-item "Describe Buffer Modes" describe-mode :help "Describe this buffer's major and minor mode")) diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index db3de56d8b4..82bedd7c2a6 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,13 @@ +2005-08-15 Dan Nicolaescu <dann@ics.uci.edu> + + * mh-customize.el: Do not use face-alias compatibility for + faces that did not appear in the previous Emacs release. + +2005-08-10 Lars Hansen <larsh@soem.dk> + * mh-e.el: Add handler to desktop-buffer-mode-handlers. + (mh-restore-desktop-buffer): Remove autoload cookie. + (mh-folder-mode): Add autoload cookie. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el index c2a86d4a731..4a9882b566c 100644 --- a/lisp/mh-e/mh-customize.el +++ b/lisp/mh-e/mh-customize.el @@ -2155,8 +2155,6 @@ will be removed from the unseen sequence." (t (:italic t))) "Face used to highlight body text in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-body-face 'face-alias 'mh-folder-body) (defvar mh-folder-cur-msg-face 'mh-folder-cur-msg "Face used for the current message line in MH-Folder buffers.") @@ -2172,8 +2170,6 @@ will be removed from the unseen sequence." (t (:underline t))) "Face used for the current message line in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-cur-msg-face 'face-alias 'mh-folder-cur-msg) (defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number "Face used to highlight the current message in MH-Folder buffers.") @@ -2186,8 +2182,6 @@ will be removed from the unseen sequence." (t (:bold t))) "Face used to highlight the current message in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-cur-msg-number-face 'face-alias 'mh-folder-cur-msg-number) (defvar mh-folder-date-face 'mh-folder-date "Face used to highlight the date in MH-Folder buffers.") @@ -2200,8 +2194,6 @@ will be removed from the unseen sequence." (:bold t))) "Face used to highlight the date in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-date-face 'face-alias 'mh-folder-date) (defvar mh-folder-followup-face 'mh-folder-followup "Face used to highlight Re: subject text in MH-Folder buffers.") @@ -2214,8 +2206,6 @@ will be removed from the unseen sequence." (:bold t))) "Face used to highlight Re: subject text in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-followup-face 'face-alias 'mh-folder-followup) (defvar mh-folder-msg-number-face 'mh-folder-msg-number "Face used to highlight the message number in MH-Folder buffers.") @@ -2228,8 +2218,6 @@ will be removed from the unseen sequence." (:bold t))) "Face used to highlight the message number in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-msg-number-face 'face-alias 'mh-folder-msg-number) (defvar mh-folder-deleted-face 'mh-folder-deleted "Face used to highlight deleted messages in MH-Folder buffers.") @@ -2248,8 +2236,6 @@ will be removed from the unseen sequence." (t (:bold t :italic t))) "Face used to highlight refiled messages in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-refiled-face 'face-alias 'mh-folder-refiled) (defvar mh-folder-subject-face 'mh-folder-subject "Face used to highlight subject text in MH-Folder buffers.") @@ -2264,8 +2250,6 @@ will be removed from the unseen sequence." (:bold t))) "Face used to highlight subject text in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-subject-face 'face-alias 'mh-folder-subject) (defface mh-folder-tick '((((class color) (background dark)) (:background "#dddf7e")) @@ -2273,8 +2257,6 @@ will be removed from the unseen sequence." (t (:underline t))) "Face used to show ticked messages." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-tick-face 'face-alias 'mh-folder-tick) (defvar mh-folder-address-face 'mh-folder-address "Face used to highlight the address in MH-Folder buffers.") @@ -2295,8 +2277,6 @@ will be removed from the unseen sequence." (t (:italic t))) "Face used to highlight the To: string in MH-Folder buffers." :group 'mh-folder-faces) -;; backward-compatibility alias -(put 'mh-folder-to-face 'face-alias 'mh-folder-to) @@ -2313,8 +2293,6 @@ will be removed from the unseen sequence." (:bold t))) "Face used to highlight folders in MH-Index buffers." :group 'mh-index-faces) -;; backward-compatibility alias -(put 'mh-index-folder-face 'face-alias 'mh-index-folder) @@ -2328,8 +2306,6 @@ will be removed from the unseen sequence." (t (:bold t))) "Face used to display header fields in draft buffers." :group 'mh-letter-faces) -;; backward-compatibility alias -(put 'mh-letter-header-field-face 'face-alias 'mh-letter-header-field) @@ -2348,8 +2324,6 @@ will be removed from the unseen sequence." (t (:bold t :italic t))) "Face used to highlight cc: header fields." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-cc-face 'face-alias 'mh-show-cc) (defvar mh-show-date-face 'mh-show-date "Face used to highlight the Date: header field.") @@ -2362,8 +2336,6 @@ will be removed from the unseen sequence." (t (:bold t :underline t))) "Face used to highlight the Date: header field." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-date-face 'face-alias 'mh-show-date) (defvar mh-show-header-face 'mh-show-header "Face used to deemphasize unspecified header fields.") @@ -2376,8 +2348,6 @@ will be removed from the unseen sequence." (t (:italic t))) "Face used to deemphasize unspecified header fields." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-header-face 'face-alias 'mh-show-header) (defvar mh-show-pgg-good-face 'mh-show-pgg-good "Face used to highlight a good PGG signature.") @@ -2385,8 +2355,6 @@ will be removed from the unseen sequence." '((t (:bold t :foreground "LimeGreen"))) "Face used to highlight a good PGG signature." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-pgg-good-face 'face-alias 'mh-show-pgg-good) (defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown "Face used to highlight a PGG signature whose status is unknown. @@ -2396,8 +2364,6 @@ This face is also used for a signature when the signer is untrusted.") "Face used to highlight a PGG signature whose status is unknown. This face is also used for a signature when the signer is untrusted." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-pgg-unknown-face 'face-alias 'mh-show-pgg-unknown) (defvar mh-show-pgg-bad-face 'mh-show-pgg-bad "Face used to highlight a bad PGG signature.") @@ -2405,15 +2371,11 @@ This face is also used for a signature when the signer is untrusted." '((t (:bold t :foreground "DeepPink1"))) "Face used to highlight a bad PGG signature." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-pgg-bad-face 'face-alias 'mh-show-pgg-bad) (defface mh-show-signature '((t (:italic t))) "Face used to highlight the message signature." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-signature-face 'face-alias 'mh-show-signature) (defvar mh-show-to-face 'mh-show-to "Face used to highlight the To: header field.") @@ -2429,8 +2391,6 @@ This face is also used for a signature when the signer is untrusted." (t (:underline t))) "Face used to highlight the To: header field." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-to-face 'face-alias 'mh-show-to) (defvar mh-show-from-face 'mh-show-from "Face used to highlight the From: header field.") @@ -2443,16 +2403,12 @@ This face is also used for a signature when the signer is untrusted." (:bold t))) "Face used to highlight the From: header field." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-from-face 'face-alias 'mh-show-from) (defface mh-show-xface '((t (:foreground "black" :background "white"))) "Face used to display the X-Face image. The background and foreground is used in the image." :group 'mh-show-faces) -;; backward-compatibility alias -(put 'mh-show-xface-face 'face-alias 'mh-show-xface) (defvar mh-show-subject-face 'mh-show-subject "Face used to highlight the Subject: header field.") @@ -2469,8 +2425,6 @@ The background and foreground is used in the image." (:foreground "light blue"))) "Face used for folders in the speedbar buffer." :group 'mh-speed-faces) -;; backward-compatibility alias -(put 'mh-speedbar-folder-face 'face-alias 'mh-speedbar-folder) (defface mh-speedbar-selected-folder '((((class color) (background light)) @@ -2480,22 +2434,16 @@ The background and foreground is used in the image." (t (:underline t))) "Face used for the current folder." :group 'mh-speed-faces) -;; backward-compatibility alias -(put 'mh-speedbar-selected-folder-face 'face-alias 'mh-speedbar-selected-folder) (defface mh-speedbar-folder-with-unseen-messages '((t (:inherit mh-speedbar-folder :bold t))) "Face used for folders in the speedbar buffer which have unread messages." :group 'mh-speed-faces) -;; backward-compatibility alias -(put 'mh-speedbar-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-folder-with-unseen-messages) (defface mh-speedbar-selected-folder-with-unseen-messages '((t (:inherit mh-speedbar-selected-folder :bold t))) "Face used for the current folder when it has unread messages." :group 'mh-speed-faces) -;; backward-compatibility alias -(put 'mh-speedbar-selected-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-selected-folder-with-unseen-messages) ;;; Local Variables: ;;; indent-tabs-mode: nil diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 12e77c6c833..3d917c16935 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el @@ -1507,6 +1507,8 @@ is used in previous versions and XEmacs." (not (member 'mh-folder-mode which-func-modes))) (push 'mh-folder-mode which-func-modes)) +;; Autoload cookie needed by desktop.el +;;;###autoload (define-derived-mode mh-folder-mode fundamental-mode "MH-Folder" "Major MH-E mode for \"editing\" an MH folder scan listing.\\<mh-folder-mode-map> @@ -1653,7 +1655,6 @@ messages in that region. (set (make-local-variable (car pairs)) (car (cdr pairs))) (setq pairs (cdr (cdr pairs))))) -;;;###autoload (defun mh-restore-desktop-buffer (desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) @@ -1666,6 +1667,9 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the (mh-visit-folder desktop-buffer-name) (current-buffer)) +(add-to-list 'desktop-buffer-mode-handlers + '(mh-folder-mode . mh-restore-desktop-buffer)) + (defun mh-scan-folder (folder range &optional dont-exec-pending) "Scan the FOLDER over the RANGE. If the optional argument DONT-EXEC-PENDING is non-nil then pending deletes and diff --git a/lisp/midnight.el b/lisp/midnight.el index 8bc00b83103..aa93c1b5bab 100644 --- a/lisp/midnight.el +++ b/lisp/midnight.el @@ -1,6 +1,6 @@ ;;; midnight.el --- run something every midnight, e.g., kill old buffers -;;; Copyright (C) 1998, 2004, 2005 Free Software Foundation, Inc. +;;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Sam Steingold <sds@usa.net> ;; Maintainer: Sam Steingold <sds@usa.net> diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el index f3b08be702f..0657baedd5f 100644 --- a/lisp/minibuf-eldef.el +++ b/lisp/minibuf-eldef.el @@ -1,6 +1,7 @@ ;;; minibuf-eldef.el --- Only show defaults in prompts when applicable ;; -;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: convenience diff --git a/lisp/misc.el b/lisp/misc.el index c081a8cd8c4..f906fb0db7b 100644 --- a/lisp/misc.el +++ b/lisp/misc.el @@ -1,6 +1,6 @@ ;;; misc.el --- some nonstandard basic editing commands for Emacs -;; Copyright (C) 1989, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el index 6279d4e1f46..f5034a1dac1 100644 --- a/lisp/mouse-copy.el +++ b/lisp/mouse-copy.el @@ -1,6 +1,6 @@ ;;; mouse-copy.el --- one-click text copy and move -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: John Heidemann <johnh@ISI.EDU> ;; Keywords: mouse diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el index 6971bdb9a89..11bacd6b8a2 100644 --- a/lisp/mouse-drag.el +++ b/lisp/mouse-drag.el @@ -1,6 +1,7 @@ ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling -;; Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Heidemann <johnh@ISI.EDU> ;; Keywords: mouse diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el index 1a271a5ab7d..ccd469200be 100644 --- a/lisp/mouse-sel.el +++ b/lisp/mouse-sel.el @@ -1,7 +1,7 @@ ;;; mouse-sel.el --- multi-click selection support for Emacs 19 -;; Copyright (C) 1993, 1994, 1995, 2001, 2002, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Mike Williams <mdub@bigfoot.com> ;; Keywords: mouse diff --git a/lisp/mouse.el b/lisp/mouse.el index 4fd81ced998..c928e04f8ed 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1,7 +1,7 @@ ;;; mouse.el --- window system-independent mouse support -;; Copyright (C) 1993, 94, 95, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: hardware, mouse diff --git a/lisp/msb.el b/lisp/msb.el index 945535267ff..8fa63d98051 100644 --- a/lisp/msb.el +++ b/lisp/msb.el @@ -1,7 +1,7 @@ ;;; msb.el --- customizable buffer-selection with multiple menus -;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003, -;; 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Lars Lindberg <lars.lindberg@home.se> ;; Maintainer: FSF diff --git a/lisp/mwheel.el b/lisp/mwheel.el index 27116c75e98..391ce3a5e04 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el @@ -1,6 +1,7 @@ ;;; mwheel.el --- Wheel mouse support -;; Copyright (C) 1998, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2001, 2002, 2002, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: William M. Perry <wmperry@gnu.org> ;; Keywords: mouse diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index e8647dfc221..5d205f575b8 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -1,7 +1,7 @@ ;;; ange-ftp.el --- transparent FTP support for GNU Emacs -;; Copyright (C) 1989,90,91,92,93,94,95,96,98, 2000, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Andy Norman (ange@hplb.hpl.hp.com) ;; Maintainer: FSF @@ -686,7 +686,7 @@ :prefix "ange-ftp-") (defcustom ange-ftp-name-format - '("^/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) + '("\\`/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) "*Format of a fully expanded remote file name. This is a list of the form \(REGEXP HOST USER NAME\), @@ -743,6 +743,21 @@ These mean that the FTP process should (or already has) been killed." :group 'ange-ftp :type 'regexp) +(defcustom ange-ftp-potential-error-msgs + ;; On Mac OS X we sometimes get things like: + ;; + ;; ftp> open ftp.nluug.nl + ;; Trying 2001:610:1:80aa:192:87:102:36... + ;; ftp: connect to address 2001:610:1:80aa:192:87:102:36: No route to host + ;; Trying 192.87.102.36... + ;; Connected to ftp.nluug.nl. + "^ftp: connect to address .*: No route to host" + "*Regular expression matching ftp messages that can indicate serious errors. +These mean that something went wrong, but they may be followed by more +messages indicating that the error was somehow corrected." + :group 'ange-ftp + :type 'regexp) + (defcustom ange-ftp-gateway-fatal-msgs "No route to host\\|Connection closed\\|No such host\\|Login incorrect" "*Regular expression matching login failure messages from rlogin/telnet." @@ -848,10 +863,11 @@ If nil, prompt the user for a password." string)) (defcustom ange-ftp-binary-file-name-regexp - (concat "\\.[zZ]$\\|\\.lzh$\\|\\.arc$\\|\\.zip$\\|\\.zoo$\\|\\.tar$\\|" - "\\.dvi$\\|\\.ps$\\|\\.elc$\\|TAGS$\\|\\.gif$\\|" - "\\.EXE\\(;[0-9]+\\)?$\\|\\.[zZ]-part-..$\\|\\.gz$\\|" - "\\.taz$\\|\\.tgz$") + (concat "TAGS\\'\\|\\.\\(?:" + (eval-when-compile + (regexp-opt '("z" "Z" "lzh" "arc" "zip" "zoo" "tar" "dvi" + "ps" "elc" "gif" "gz" "taz" "tgz"))) + "\\|EXE\\(;[0-9]+\\)?\\|[zZ]-part-..\\)\\'") "*If a file matches this regexp then it is transferred in binary mode." :group 'ange-ftp :type 'regexp) @@ -1071,6 +1087,7 @@ All HOST values should be in lower case.") (defvar ange-ftp-xfer-size nil) (defvar ange-ftp-process-string nil) (defvar ange-ftp-process-result-line nil) +(defvar ange-ftp-pending-error-line nil) (defvar ange-ftp-process-busy nil) (defvar ange-ftp-process-result nil) (defvar ange-ftp-process-multi-skip nil) @@ -1114,7 +1131,7 @@ If the optional parameter NEW is given and the non-directory parts match, only return the directory part of FILE." (save-match-data (if (and default-directory - (string-match (concat "^" + (string-match (concat "\\`" (regexp-quote default-directory) ".") file)) (setq file (substring file (1- (match-end 0))))) @@ -1184,7 +1201,7 @@ only return the directory part of FILE." (save-match-data (maphash (lambda (key value) - (if (string-match "^[^/]*\\(/\\).*$" key) + (if (string-match "\\`[^/]*\\(/\\).*\\'" key) (let ((host (substring key 0 (match-beginning 1)))) (if (and (string-equal user (substring key (match-end 1))) value) @@ -1399,7 +1416,7 @@ only return the directory part of FILE." (let (res) (maphash (lambda (key value) - (if (string-match "^[^/]*\\(/\\).*$" key) + (if (string-match "\\`[^/]*\\(/\\).*\\'" key) (let ((host (substring key 0 (match-beginning 1))) (user (substring key (match-end 1)))) (push (concat user "@" host ":") res)))) @@ -1544,6 +1561,7 @@ good, skip, fatal, or unknown." ((string-match ange-ftp-good-msgs line) (setq ange-ftp-process-busy nil ange-ftp-process-result t + ange-ftp-pending-error-line nil ange-ftp-process-result-line line)) ;; Check this before checking for errors. ;; Otherwise the last line of these three seems to be an error: @@ -1552,11 +1570,17 @@ good, skip, fatal, or unknown." ;; 230-"ftp.stsci.edu: unknown host", the new IP address will be... ((string-match ange-ftp-multi-msgs line) (setq ange-ftp-process-multi-skip t)) + ((string-match ange-ftp-potential-error-msgs line) + ;; This looks like an error, but we have to keep reading the output + ;; to see if it was fixed or not. E.g. it may indicate that IPv6 + ;; failed, but maybe a subsequent IPv4 fallback succeeded. + (set (make-local-variable 'ange-ftp-pending-error-line) line) + t) ((string-match ange-ftp-fatal-msgs line) (delete-process proc) (setq ange-ftp-process-busy nil ange-ftp-process-result-line line)) - (ange-ftp-process-multi-skip + (ange-ftp-process-multi-skip t) (t (setq ange-ftp-process-busy nil @@ -1632,7 +1656,7 @@ good, skip, fatal, or unknown." ;; handle hash mark printing (and ange-ftp-process-busy - (string-match "^#+$" str) + (string-match "\\`#+\\'" str) (setq str (ange-ftp-process-handle-hash str))) (comint-output-filter proc str) ;; Replace STR by the result of the comint processing. @@ -1651,12 +1675,21 @@ good, skip, fatal, or unknown." (string-match "\n" ange-ftp-process-string)) (let ((line (substring ange-ftp-process-string 0 - (match-beginning 0)))) + (match-beginning 0))) + (seen-prompt nil)) (setq ange-ftp-process-string (substring ange-ftp-process-string (match-end 0))) - (while (string-match "^ftp> *" line) + (while (string-match "\\`ftp> *" line) + (setq seen-prompt t) (setq line (substring line (match-end 0)))) - (ange-ftp-process-handle-line line proc))) + (if (not (and seen-prompt ange-ftp-pending-error-line)) + (ange-ftp-process-handle-line line proc) + ;; If we've seen a potential error message and it + ;; hasn't been cancelled by a good message before + ;; seeing a propt, then the error was real. + (delete-process proc) + (setq ange-ftp-process-busy nil + ange-ftp-process-result-line ange-ftp-pending-error-line)))) ;; has the ftp client finished? if so then do some clean-up ;; actions. @@ -1831,7 +1864,7 @@ been queued with no result. CONT will still be called, however." (move-marker comint-last-input-start (point)) ;; don't insert the password into the buffer on the USER command. (save-match-data - (if (string-match "^user \"[^\"]*\"" cmd) + (if (string-match "\\`user \"[^\"]*\"" cmd) (insert (substring cmd 0 (match-end 0)) " Turtle Power!\n") (insert cmd))) (move-marker comint-last-input-end (point)) @@ -1988,7 +2021,7 @@ on the gateway machine to do the ftp instead." (make-local-variable 'comint-password-prompt-regexp) ;; This is a regexp that can't match anything. ;; ange-ftp has its own ways of handling passwords. - (setq comint-password-prompt-regexp "^a\\'z") + (setq comint-password-prompt-regexp "\\`a\\`") (make-local-variable 'paragraph-start) (setq paragraph-start comint-prompt-regexp) (run-mode-hooks 'internal-ange-ftp-mode-hook)) @@ -2037,7 +2070,7 @@ host specified in `ange-ftp-gateway-host'." PROC is the process to the FTP-client. HOST may have an optional suffix of the form #PORT to specify a non-default port" (save-match-data - (string-match "^\\([^#]+\\)\\(#\\([0-9]+\\)\\)?\\'" host) + (string-match "\\`\\([^#]+\\)\\(#\\([0-9]+\\)\\)?\\'" host) (let* ((nshost (ange-ftp-nslookup-host (match-string 1 host))) (port (match-string 3 host)) (result (ange-ftp-raw-send-cmd @@ -2116,6 +2149,8 @@ suffix of the form #PORT to specify a non-default port" (or ange-ftp-binary-hash-mark-size (setq ange-ftp-binary-hash-mark-size size))))))))) +(defvar ange-ftp-process-startup-hook nil) + (defun ange-ftp-get-process (host user) "Return an FTP subprocess connected to HOST and logged in as USER. Create a new process if needed." @@ -2277,7 +2312,7 @@ and NOWAIT." ;; resolve symlinks to directories on SysV machines. (Sebastian will ;; be happy.) (and (eq host-type 'unix) - (string-match "/$" cmd1) + (string-match "/\\'" cmd1) (not (string-match "R" cmd3)) (setq cmd1 (concat cmd1 "."))) @@ -2294,7 +2329,19 @@ and NOWAIT." (unless (memq host-type ange-ftp-dumb-host-types) (setq cmd0 'ls) ;; We cd and then use `ls' with no directory argument. - ;; This works around a misfeature of some versions of netbsd ftpd. + ;; This works around a misfeature of some versions of netbsd ftpd + ;; where `ls' can only take one argument: either one set of flags + ;; or a file/directory name. + ;; FIXME: if we're trying to `ls' a single file, this fails since we + ;; can't cd to a file. We can't fix this problem here, tho, because + ;; at this point we don't know whether the argument is a file or + ;; a directory. Such an `ls' is only every used (apparently) from + ;; `insert-directory' when the `full-directory-p' argument is nil + ;; (which seems to only be used by dired when updating its display + ;; after operating on a set of files). We should change + ;; ange-ftp-insert-directory so that this case is handled by getting + ;; a full listing of the directory and extracting the line + ;; corresponding to the requested file. (unless (equal cmd1 ".") (setq result (ange-ftp-cd host user (nth 1 cmd) 'noerror))) (setq cmd1 cmd3))) @@ -2733,10 +2780,10 @@ The main reason for this alist is to deal with file versions in VMS.") ;; Some ls's with the F switch mark symlinks with an @ (ULTRIX) ;; and others don't. (sigh...) Beware, that some Unix's don't ;; seem to believe in the F-switch - (if (or (and symlink (string-match "@$" file)) - (and directory (string-match "/$" file)) - (and executable (string-match "*$" file)) - (and socket (string-match "=$" file))) + (if (or (and symlink (string-match "@\\'" file)) + (and directory (string-match "/\\'" file)) + (and executable (string-match "*\\'" file)) + (and socket (string-match "=\\'" file))) (setq file (substring file 0 -1))))) (puthash file (or symlink directory) tbl) (forward-line 1)) @@ -3080,18 +3127,24 @@ logged in as user USER and cd'd to directory DIR." ;; See if remote name is absolute. If so then just expand it and ;; replace the name component of the overall name. - (cond ((string-match "^/" name) + (cond ((string-match "\\`/" name) name) ;; Name starts with ~ or ~user. Resolve that part of the name ;; making it absolute then re-expand it. - ((string-match "^~[^/]*" name) + ((string-match "\\`~[^/]*" name) (let* ((tilda (match-string 0 name)) (rest (substring name (match-end 0))) (dir (ange-ftp-expand-dir host user tilda))) (if dir - (setq name (if (string-equal dir "/") - rest (concat dir rest))) + ;; C-x d /ftp:anonymous@ftp.gnu.org:~/ RET + ;; seems to cause `rest' to sometimes be empty. + ;; Maybe it's an error for `rest' to be empty here, + ;; but until we figure this out, this quick fix + ;; seems to do the trick. + (setq name (cond ((string-equal rest "") dir) + ((string-equal dir "/") rest) + (t (concat dir rest)))) (error "User \"%s\" is not known" (substring tilda 1))))) @@ -3105,19 +3158,18 @@ logged in as user USER and cd'd to directory DIR." (error "Unable to obtain CWD"))))) ;; If name starts with //, preserve that, for apollo system. - (if (not (string-match "^//" name)) - (progn - (if (not (eq system-type 'windows-nt)) - (setq name (ange-ftp-real-expand-file-name name)) - ;; Windows UNC default dirs do not make sense for ftp. - (if (string-match "^//" default-directory) - (setq name (ange-ftp-real-expand-file-name name "c:/")) - (setq name (ange-ftp-real-expand-file-name name))) - ;; Strip off possible drive specifier. - (if (string-match "^[a-zA-Z]:" name) - (setq name (substring name 2)))) - (if (string-match "^//" name) - (setq name (substring name 1))))) + (unless (string-match "\\`//" name) + (if (not (eq system-type 'windows-nt)) + (setq name (ange-ftp-real-expand-file-name name)) + ;; Windows UNC default dirs do not make sense for ftp. + (setq name (if (string-match "\\`//" default-directory) + (ange-ftp-real-expand-file-name name "c:/") + (ange-ftp-real-expand-file-name name))) + ;; Strip off possible drive specifier. + (if (string-match "\\`[a-zA-Z]:" name) + (setq name (substring name 2)))) + (if (string-match "\\`//" name) + (setq name (substring name 1)))) ;; Now substitute the expanded name back into the overall filename. (ange-ftp-replace-name-component n name)) @@ -3141,8 +3193,8 @@ logged in as user USER and cd'd to directory DIR." (eq (string-to-char name) ?\\)) (ange-ftp-canonize-filename name)) ((and (eq system-type 'windows-nt) - (or (string-match "^[a-zA-Z]:" name) - (string-match "^[a-zA-Z]:" default))) + (or (string-match "\\`[a-zA-Z]:" name) + (string-match "\\`[a-zA-Z]:" default))) (ange-ftp-real-expand-file-name name default)) ((zerop (length name)) (ange-ftp-canonize-filename default)) @@ -3175,7 +3227,7 @@ system TYPE.") (if parsed (let ((filename (nth 2 parsed))) (if (save-match-data - (string-match "^~[^/]*$" filename)) + (string-match "\\`~[^/]*\\'" filename)) name (ange-ftp-replace-name-component name @@ -3188,7 +3240,7 @@ system TYPE.") (if parsed (let ((filename (nth 2 parsed))) (if (save-match-data - (string-match "^~[^/]*$" filename)) + (string-match "\\`~[^/]*\\'" filename)) "" (ange-ftp-real-file-name-nondirectory filename))) (ange-ftp-real-file-name-nondirectory name)))) @@ -3930,7 +3982,7 @@ E.g., ;; Maybe we should use something more like ;; (equal dir (file-name-directory (directory-file-name dir))) -stef (or (and (eq system-type 'windows-nt) - (string-match "^[a-zA-Z]:[/\\]$" dir)) + (string-match "\\`[a-zA-Z]:[/\\]\\'" dir)) (string-equal "/" dir))) (defun ange-ftp-file-name-all-completions (file dir) @@ -3974,8 +4026,8 @@ E.g., (let* ((tbl (ange-ftp-get-files ange-ftp-this-dir)) (ange-ftp-completion-ignored-pattern (mapconcat (lambda (s) (if (stringp s) - (concat (regexp-quote s) "$") - "/")) ; / never in filename + (concat (regexp-quote s) "$") + "/")) ; / never in filename completion-ignored-extensions "\\|"))) (save-match-data @@ -4543,9 +4595,9 @@ NEWNAME should be the name to give the new compressed or uncompressed file.") (setq ange-ftp-ls-cache-file nil) ;Stop confusing Dired. 0) -;;; This is turned off because it has nothing properly to do -;;; with dired. It could be reasonable to adapt this to -;;; replace ange-ftp-copy-file. +;; This is turned off because it has nothing properly to do +;; with dired. It could be reasonable to adapt this to +;; replace ange-ftp-copy-file. ;;;;; ------------------------------------------------------------ ;;;;; Noddy support for async copy-file within dired. @@ -4898,7 +4950,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.") (defun ange-ftp-fix-name-for-vms (name &optional reverse) (save-match-data (if reverse - (if (string-match "^\\([^:]+:\\)?\\(\\[.*\\]\\)?\\([^][]*\\)$" name) + (if (string-match "\\`\\([^:]+:\\)?\\(\\[.*\\]\\)?\\([^][]*\\)\\'" name) (let (drive dir file) (setq drive (match-string 1 name)) (setq dir (match-string 2 name)) @@ -4912,7 +4964,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.") file)) (error "name %s didn't match" name)) (let (drive dir file tmp) - (if (string-match "^/[^:]+:/" name) + (if (string-match "\\`/[^:]+:/" name) (setq drive (substring name 1 (1- (match-end 0))) name (substring name (match-end 0)))) @@ -4950,7 +5002,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.") ;; them. (cond ((string-equal dir-name "/") (error "Cannot get listing for fictitious \"/\" directory")) - ((string-match "^/[-A-Z0-9_$]+:/$" dir-name) + ((string-match "\\`/[-A-Z0-9_$]+:/\\'" dir-name) (error "Cannot get listing for device")) ((ange-ftp-fix-name-for-vms dir-name)))) @@ -5004,7 +5056,7 @@ Other orders of $ and _ seem to all work just fine.") ;; deal with directories (puthash (substring file 0 (match-beginning 0)) t tbl) (puthash file nil tbl) - (if (string-match ";[0-9]+$" file) ; deal with extension + (if (string-match ";[0-9]+\\'" file) ; deal with extension ;; sans extension (puthash (substring file 0 (match-beginning 0)) nil tbl))) (forward-line 1)) @@ -5030,7 +5082,7 @@ Other orders of $ and _ seem to all work just fine.") (ange-ftp-internal-delete-file-entry name t) (save-match-data (let ((file (ange-ftp-get-file-part name))) - (if (string-match ";[0-9]+$" file) + (if (string-match ";[0-9]+\\'" file) ;; In VMS you can't delete a file without an explicit ;; version number, or wild-card (e.g. FOO;*) ;; For now, we give up on wildcards. @@ -5068,7 +5120,7 @@ Other orders of $ and _ seem to all work just fine.") (if files (let ((file (ange-ftp-get-file-part name))) (save-match-data - (if (string-match ";[0-9]+$" file) + (if (string-match ";[0-9]+\\'" file) (puthash (substring file 0 (match-beginning 0)) nil files) ;; Need to figure out what version of the file ;; is being added. @@ -5111,7 +5163,7 @@ Other orders of $ and _ seem to all work just fine.") (defun ange-ftp-vms-file-name-as-directory (name) (save-match-data - (if (string-match "\\.\\(DIR\\|dir\\)\\(;[0-9]+\\)?$" name) + (if (string-match "\\.\\(DIR\\|dir\\)\\(;[0-9]+\\)?\\'" name) (setq name (substring name 0 (match-beginning 0)))) (ange-ftp-real-file-name-as-directory name))) @@ -5232,15 +5284,15 @@ Other orders of $ and _ seem to all work just fine.") (defun ange-ftp-vms-make-compressed-filename (name &optional reverse) (cond - ((string-match "-Z;[0-9]+$" name) + ((string-match "-Z;[0-9]+\\'" name) (list nil (substring name 0 (match-beginning 0)))) - ((string-match ";[0-9]+$" name) + ((string-match ";[0-9]+\\'" name) (list nil (substring name 0 (match-beginning 0)))) - ((string-match "-Z$" name) + ((string-match "-Z\\'" name) (list nil (substring name 0 -2))) (t (list t - (if (string-match ";[0-9]+$" name) + (if (string-match ";[0-9]+\\'" name) (concat (substring name 0 (match-beginning 0)) "-Z") (concat name "-Z")))))) @@ -5273,7 +5325,7 @@ Other orders of $ and _ seem to all work just fine.") (defun ange-ftp-vms-sans-version (name &rest args) (save-match-data - (if (string-match ";[0-9]+$" name) + (if (string-match ";[0-9]+\\'" name) (substring name 0 (match-beginning 0)) name))) @@ -5429,14 +5481,14 @@ Other orders of $ and _ seem to all work just fine.") (defun ange-ftp-fix-name-for-mts (name &optional reverse) (save-match-data (if reverse - (if (string-match "^\\([^:]+:\\)?\\(.*\\)$" name) + (if (string-match "\\`\\([^:]+:\\)?\\(.*\\)\\'" name) (let (acct file) (setq acct (match-string 1 name)) (setq file (match-string 2 name)) (concat (and acct (concat "/" acct "/")) file)) (error "name %s didn't match" name)) - (if (string-match "^/\\([^:]+:\\)/\\(.*\\)$" name) + (if (string-match "\\`/\\([^:]+:\\)/\\(.*\\)\\'" name) (concat (match-string 1 name) (match-string 2 name)) ;; Let's hope that mts will recognize it anyway. name)))) @@ -5455,7 +5507,7 @@ Other orders of $ and _ seem to all work just fine.") (cond ((string-equal dir-name "") "?") - ((string-match ":$" dir-name) + ((string-match ":\\'" dir-name) (concat dir-name "?")) (dir-name))))) ; It's just a single file. @@ -5592,7 +5644,7 @@ Other orders of $ and _ seem to all work just fine.") ;; stores directories without the trailing /. Is this ;; consistent? (concat "/" name) - (if (string-match "^/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?$" + (if (string-match "\\`/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?\\'" name) (let ((minidisk (match-string 1 name))) (if (match-beginning 2) @@ -5637,7 +5689,7 @@ Other orders of $ and _ seem to all work just fine.") (cond ((string-equal "/" dir-name) (error "Cannot get listing for fictitious \"/\" directory")) - ((string-match "^/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?$" dir-name) + ((string-match "\\`/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?\\'" dir-name) (let* ((minidisk (match-string 1 dir-name)) ;; host and user are bound in the call to ange-ftp-send-cmd (proc (ange-ftp-get-process ange-ftp-this-host ange-ftp-this-user)) @@ -5795,7 +5847,7 @@ Other orders of $ and _ seem to all work just fine.") ;; ange-ftp-dired-move-to-end-of-filename-alist))) (defun ange-ftp-cms-make-compressed-filename (name &optional reverse) - (if (string-match "-Z$" name) + (if (string-match "-Z\\'" name) (list nil (substring name 0 -2)) (list t (concat name "-Z")))) @@ -6046,5 +6098,5 @@ be recognized automatically (they are all valid BS2000 hosts too)." (provide 'ange-ftp) -;;; arch-tag: 2987ef88-cb56-4ec1-87a9-79132572e316 +;; arch-tag: 2987ef88-cb56-4ec1-87a9-79132572e316 ;;; ange-ftp.el ends here diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 3b6cc279a1e..74bace58958 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -1,7 +1,7 @@ ;;; browse-url.el --- pass a URL to a WWW browser -;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Denis Howe <dbh@doc.ic.ac.uk> ;; Maintainer: FSF diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el index a4ad3044f43..668b9edfcda 100644 --- a/lisp/net/eudc-bob.el +++ b/lisp/net/eudc-bob.el @@ -1,6 +1,7 @@ ;;; eudc-bob.el --- Binary Objects Support for EUDC -;; Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> @@ -69,7 +70,7 @@ (defun eudc-jump-to-event (event) "Jump to the window and point where EVENT occurred." - (if eudc-xemacs-p + (if (fboundp 'event-closest-point) (goto-char (event-closest-point event)) (set-buffer (window-buffer (posn-window (event-start event)))) (goto-char (posn-point (event-start event))))) @@ -89,7 +90,7 @@ (defun eudc-bob-can-display-inline-images () "Return non-nil if we can display images inline." - (if eudc-xemacs-p + (if (fboundp 'console-type) (and (memq (console-type) '(x mswindows)) (fboundp 'make-glyph)) (and (fboundp 'display-graphic-p) @@ -120,7 +121,7 @@ LABEL." "Display the JPEG DATA at point. If INLINE is non-nil, try to inline the image otherwise simply display a button." - (cond (eudc-xemacs-p + (cond ((fboundp 'make-glyph) (let ((glyph (if (eudc-bob-can-display-inline-images) (make-glyph (list (vector 'jpeg :data data) [string :data "[JPEG Picture]"]))))) diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el index 52e09433a20..214481ce7fa 100644 --- a/lisp/net/eudc-export.el +++ b/lisp/net/eudc-export.el @@ -1,6 +1,7 @@ ;;; eudc-export.el --- functions to export EUDC query results -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el index f892bd6058e..a8e7f6e328f 100644 --- a/lisp/net/eudc-hotlist.el +++ b/lisp/net/eudc-hotlist.el @@ -1,6 +1,7 @@ ;;; eudc-hotlist.el --- hotlist management for EUDC -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> @@ -51,11 +52,11 @@ These are the special commands of this mode: (setq major-mode 'eudc-hotlist-mode) (setq mode-name "EUDC-Servers") (use-local-map eudc-hotlist-mode-map) - (setq mode-popup-menu eudc-hotlist-menu) - (when (and eudc-xemacs-p - (featurep 'menubar)) - (set-buffer-menubar current-menubar) - (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu))))) + (when (featurep 'xemacs) + (setq mode-popup-menu eudc-hotlist-menu) + (when (featurep 'menubar) + (set-buffer-menubar current-menubar) + (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu)))))) (setq buffer-read-only t) (run-mode-hooks 'eudc-hotlist-mode-hook)) diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el index 281daa3ac9f..ecff0564192 100644 --- a/lisp/net/eudc-vars.el +++ b/lisp/net/eudc-vars.el @@ -1,6 +1,7 @@ ;;; eudc-vars.el --- Emacs Unified Directory Client -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el index 96289922ccc..1c5fb7fbbcf 100644 --- a/lisp/net/eudc.el +++ b/lisp/net/eudc.el @@ -1,6 +1,7 @@ ;;; eudc.el --- Emacs Unified Directory Client -;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> @@ -75,6 +76,8 @@ (defvar eudc-form-widget-list nil) (defvar eudc-mode-map nil) +(defvar mode-popup-menu) + ;; List of known servers ;; Alist of (SERVER . PROTOCOL) (defvar eudc-server-hotlist nil) diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el index 2d3db7f74cb..8081cb1aacd 100644 --- a/lisp/net/eudcb-bbdb.el +++ b/lisp/net/eudcb-bbdb.el @@ -1,6 +1,7 @@ ;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el index 1890f345975..e28a044ba55 100644 --- a/lisp/net/eudcb-ldap.el +++ b/lisp/net/eudcb-ldap.el @@ -1,6 +1,7 @@ ;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el index ab9965efc17..3aea6030257 100644 --- a/lisp/net/eudcb-ph.el +++ b/lisp/net/eudcb-ph.el @@ -1,6 +1,7 @@ ;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el index 9ce73dba47b..98a8b0a29e1 100644 --- a/lisp/net/goto-addr.el +++ b/lisp/net/goto-addr.el @@ -1,6 +1,7 @@ ;;; goto-addr.el --- click to browse URL or to send to e-mail address -;; Copyright (C) 1995, 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eric Ding <ericding@alum.mit.edu> ;; Maintainer: FSF diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el index fc86688f568..f8e99abd182 100644 --- a/lisp/net/ldap.el +++ b/lisp/net/ldap.el @@ -1,6 +1,7 @@ ;;; ldap.el --- client interface to LDAP for Emacs -;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: FSF diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index 16bc93b6122..043c18fc0df 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el @@ -1,6 +1,7 @@ ;;; net-utils.el --- network functions -;; Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Sun Mar 16 1997 @@ -460,7 +461,7 @@ If your system's ping continues until interrupted, you can try setting ))) ;;;###autoload -(defun dig (host) +(defun run-dig (host) "Run dig program." (interactive (list diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el index 963fea444f0..228e02bf3a6 100644 --- a/lisp/net/netrc.el +++ b/lisp/net/netrc.el @@ -1,6 +1,6 @@ ;;; netrc.el --- .netrc parsing functionality -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el index a030275f735..81a2e8a09a5 100644 --- a/lisp/net/quickurl.el +++ b/lisp/net/quickurl.el @@ -1,6 +1,7 @@ ;;; quickurl.el --- insert an URL based on text at point in buffer -;; Copyright (C) 1999,2000,2001,2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Pearson <davep@davep.org> ;; Maintainer: Dave Pearson <davep@davep.org> diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el index 6693f902577..47ee84d42b8 100644 --- a/lisp/net/rcompile.el +++ b/lisp/net/rcompile.el @@ -1,6 +1,7 @@ ;;; rcompile.el --- run a compilation on a remote machine -;; Copyright (C) 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Albert <alon@milcse.rtsg.mot.com> ;; Maintainer: FSF diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el index 46a1847a7c2..693113203ba 100644 --- a/lisp/net/rlogin.el +++ b/lisp/net/rlogin.el @@ -1,6 +1,7 @@ ;;; rlogin.el --- remote login interface -;; Copyright (C) 1992, 93, 94, 95, 97, 1998, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Noah Friedman ;; Maintainer: Noah Friedman <friedman@splode.com> diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el index 723b73cd77a..31c600a2804 100644 --- a/lisp/net/snmp-mode.el +++ b/lisp/net/snmp-mode.el @@ -1,6 +1,7 @@ ;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode -;; Copyright (C) 1995, 1998, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Paul D. Smith <psmith@BayNetworks.com> ;; Keywords: data diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el index a28a74cc2ba..e4f91351c25 100644 --- a/lisp/net/telnet.el +++ b/lisp/net/telnet.el @@ -1,6 +1,7 @@ ;;; telnet.el --- run a telnet session from within an Emacs buffer -;; Copyright (C) 1985, 88, 1992, 94, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1988, 1992, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: William F. Schelter ;; Maintainer: FSF diff --git a/lisp/net/tls.el b/lisp/net/tls.el index f0b21383d61..ceebe4b33d5 100644 --- a/lisp/net/tls.el +++ b/lisp/net/tls.el @@ -1,6 +1,7 @@ ;;; tls.el --- TLS/SSL support via wrapper around GnuTLS -;; Copyright (C) 1996-1999, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: comm, tls, gnutls, ssl diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index 05beeb246e1..53cc392ad7a 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el @@ -1,8 +1,8 @@ -;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*- +;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*- ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -;; Author: Michael Albinus <Michael.Albinus@alcatel.de> +;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes ;; This file is part of GNU Emacs. diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 74e2796fdef..5644e081e6c 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -46,11 +46,6 @@ (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler (byte-compiler-options (warnings (- unused-vars)))))) -;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'. -(eval-when-compile - (unless (boundp 'last-coding-system-used) - (defvar last-coding-system-used nil))) - ;; Define SMB method ... (defcustom tramp-smb-method "smb" "*Method to connect SAMBA and M$ SMB servers." @@ -598,13 +593,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." (let ((share (tramp-smb-get-share localname)) (file (tramp-smb-get-localname localname t)) (curbuf (current-buffer)) - ;; We use this to save the value of `last-coding-system-used' - ;; after writing the tmp file. At the end of the function, - ;; we set `last-coding-system-used' to this saved value. - ;; This way, any intermediary coding systems used while - ;; talking to the remote shell or suchlike won't hose this - ;; variable. This approach was snarfed from ange-ftp.el. - coding-system-used tmpfil) ;; Write region into a tmp file. (setq tmpfil (tramp-make-temp-file)) @@ -616,9 +604,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." (if confirm ; don't pass this arg unless defined for backward compat. (list start end tmpfil append 'no-message lockname confirm) (list start end tmpfil append 'no-message lockname))) - ;; Now, `last-coding-system-used' has the right value. Remember it. - (when (boundp 'last-coding-system-used) - (setq coding-system-used last-coding-system-used)) (tramp-smb-maybe-open-connection user host share) (tramp-message-for-buffer @@ -636,10 +621,7 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows." (error "Buffer has changed from `%s' to `%s'" curbuf (current-buffer))) (when (eq visit t) - (set-visited-file-modtime)) - ;; Make `last-coding-system-used' have the right value. - (when (boundp 'last-coding-system-used) - (setq last-coding-system-used coding-system-used)))))) + (set-visited-file-modtime)))))) ;; Internal file name functions @@ -1000,7 +982,7 @@ Returns nil if an error message has appeared." (while (and (not found) (not err)) ;; Accept pending output. - (accept-process-output proc) + (tramp-accept-process-output proc) ;; Search for prompt. (goto-char (point-min)) diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el index 0b8e83080f2..e1e22af3cab 100644 --- a/lisp/net/tramp-uu.el +++ b/lisp/net/tramp-uu.el @@ -1,9 +1,9 @@ ;;; -*- coding: iso-2022-7bit; -*- ;;; tramp-uu.el --- uuencode in Lisp -;; Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> +;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> ;; Keywords: comm, terminals ;; This file is free software; you can redistribute it and/or modify diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el index 76563c33169..c1806a4be24 100644 --- a/lisp/net/tramp-vc.el +++ b/lisp/net/tramp-vc.el @@ -1,6 +1,7 @@ ;;; tramp-vc.el --- Version control integration for TRAMP.el -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daniel Pittman <daniel@danann.net> ;; Keywords: comm, processes diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 6d6e606e5e5..e721f3fb016 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1,9 +1,11 @@ ;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*- ;;; tramp.el --- Transparent Remote Access, Multiple Protocol -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. -;; Author: kai.grossjohann@gmx.net +;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> +;; Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes ;; This file is part of GNU Emacs. @@ -146,11 +148,6 @@ Nil means to use a separate filename syntax for Tramp.") (when (boundp 'byte-compile-not-obsolete-var) (setq byte-compile-not-obsolete-var 'directory-sep-char))) -;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'. -(eval-when-compile - (unless (boundp 'last-coding-system-used) - (defvar last-coding-system-used nil))) - ;;; User Customizable Internal Variables: (defgroup tramp nil @@ -1030,7 +1027,7 @@ Derived from `tramp-postfix-multi-hop-format'." :type 'regexp) (defcustom tramp-user-regexp - "[^:@/ \t]*" + "[^:/ \t]*" "*Regexp matching user names." :group 'tramp :type 'regexp) @@ -1859,6 +1856,7 @@ on the FILENAME argument, even if VISIT was a string.") (insert-file-contents . tramp-handle-insert-file-contents) (write-region . tramp-handle-write-region) (find-backup-file-name . tramp-handle-find-backup-file-name) + (make-auto-save-file-name . tramp-handle-make-auto-save-file-name) (unhandled-file-name-directory . tramp-handle-unhandled-file-name-directory) (dired-compress-file . tramp-handle-dired-compress-file) (dired-call-process . tramp-handle-dired-call-process) @@ -1866,7 +1864,7 @@ on the FILENAME argument, even if VISIT was a string.") . tramp-handle-dired-recursive-delete-directory) (set-visited-file-modtime . tramp-handle-set-visited-file-modtime) (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)) - "Alist of handler functions. + "Alist of handler functions. Operations not mentioned here will be handled by the normal Emacs functions.") ;; Handlers for partial tramp file names. For GNU Emacs just @@ -1913,7 +1911,9 @@ This function expects to be called from the tramp buffer only!" tramp-current-multi-method tramp-current-method tramp-current-user tramp-current-host)) (goto-char (point-max)) - (tramp-insert-with-face + (unless (bolp) + (insert "\n")) + (tramp-insert-with-face 'italic (concat "# " (apply #'format fmt-string args) "\n")))))) @@ -2095,7 +2095,7 @@ target of the symlink differ." file))) (unless noerror (when (not (file-exists-p file)) - (error "Cannot load nonexistant file `%s'" file))) + (error "Cannot load nonexistent file `%s'" file))) (if (not (file-exists-p file)) nil (unless nomessage @@ -2369,16 +2369,13 @@ target of the symlink differ." (buffer-name))) (if time-list (tramp-run-real-handler 'set-visited-file-modtime (list time-list)) - (let ((f (buffer-file-name)) - (coding-system-used nil)) + (let ((f (buffer-file-name))) (with-parsed-tramp-file-name f nil (let* ((attr (file-attributes f)) ;; '(-1 65535) means file doesn't exists yet. (modtime (or (nth 5 attr) '(-1 65535)))) ;; We use '(0 0) as a don't-know value. See also ;; `tramp-handle-file-attributes-with-ls'. - (when (boundp 'last-coding-system-used) - (setq coding-system-used last-coding-system-used)) (if (not (equal modtime '(0 0))) (tramp-run-real-handler 'set-visited-file-modtime (list modtime)) (save-excursion @@ -2391,9 +2388,7 @@ target of the symlink differ." (setq attr (buffer-substring (point) (progn (end-of-line) (point))))) (setq tramp-buffer-file-attributes attr)) - (when (boundp 'last-coding-system-used) - (setq last-coding-system-used coding-system-used)) - nil))))) + nil))))) ;; CCC continue here @@ -2411,7 +2406,7 @@ of." ;; recorded last modification time. (if (or (not (buffer-file-name)) (eq (visited-file-modtime) 0)) - t + t (let ((f (buffer-file-name))) (with-parsed-tramp-file-name f nil (let* ((attr (file-attributes f)) @@ -2446,12 +2441,6 @@ of." ;; if and only if that agrees with the buffer's record. (t (equal mt '(-1 65535)))))))))) -(defadvice clear-visited-file-modtime (after tramp activate) - "Set `tramp-buffer-file-attributes' back to nil. -Tramp uses this variable as an emulation for the actual modtime of the file, -if the remote host can't provide the modtime." - (setq tramp-buffer-file-attributes nil)) - (defun tramp-handle-set-file-modes (filename mode) "Like `set-file-modes' for tramp files." (with-parsed-tramp-file-name filename nil @@ -3136,8 +3125,7 @@ be a local filename. The method used must be an out-of-band method." tramp-current-method method tramp-current-user user tramp-current-host host) - (tramp-message - 5 "Transferring %s to file %s..." filename newname) + (message "Transferring %s to %s..." filename newname) ;; Use rcp-like program for file transfer. (let ((p (apply 'start-process (buffer-name trampbuf) trampbuf @@ -3146,8 +3134,7 @@ be a local filename. The method used must be an out-of-band method." (tramp-process-actions p multi-method method user host tramp-actions-copy-out-of-band)) (kill-buffer trampbuf) - (tramp-message - 5 "Transferring %s to file %s...done" filename newname) + (message "Transferring %s to %s...done" filename newname) ;; Set the mode. (unless keep-date @@ -3318,7 +3305,7 @@ This is like `dired-recursive-delete-directory' for tramp files." (filename switches &optional wildcard full-directory-p) "Like `insert-directory' for tramp files." (if (and (boundp 'ls-lisp-use-insert-directory-program) - (not ls-lisp-use-insert-directory-program)) + (not (symbol-value 'ls-lisp-use-insert-directory-program))) (tramp-run-real-handler 'insert-directory (list filename switches wildcard full-directory-p)) ;; For the moment, we assume that the remote "ls" program does not @@ -3504,7 +3491,7 @@ the result will be a local, non-Tramp, filename." ;; Remote commands. (defvar tramp-async-proc nil - "Global variable keeping asyncronous process object. + "Global variable keeping asynchronous process object. Used in `tramp-handle-shell-command'") (defun tramp-handle-shell-command (command &optional output-buffer error-buffer) @@ -3761,7 +3748,6 @@ This will break if COMMAND prints a newline, followed by the value of 'insert-file-contents) 'file-local-copy))) (file-local-copy filename))) - (coding-system-used nil) (result nil)) (when visit (setq buffer-file-name filename) @@ -3771,15 +3757,10 @@ This will break if COMMAND prints a newline, followed by the value of multi-method method user host 9 "Inserting local temp file `%s'..." local-copy) (setq result (insert-file-contents local-copy nil beg end replace)) - ;; Now `last-coding-system-used' has right value. Remember it. - (when (boundp 'last-coding-system-used) - (setq coding-system-used last-coding-system-used)) (tramp-message-for-buffer multi-method method user host 9 "Inserting local temp file `%s'...done" local-copy) (delete-file local-copy) - (when (boundp 'last-coding-system-used) - (setq last-coding-system-used coding-system-used)) (list (expand-file-name filename) (second result)))))) @@ -3827,6 +3808,41 @@ This will break if COMMAND prints a newline, followed by the value of (tramp-run-real-handler 'find-backup-file-name (list filename))))) +(defun tramp-handle-make-auto-save-file-name () + "Like `make-auto-save-file-name' for tramp files. +Returns a file name in `tramp-auto-save-directory' for autosaving this file." + (when tramp-auto-save-directory + (unless (file-exists-p tramp-auto-save-directory) + (make-directory tramp-auto-save-directory t))) + ;; jka-compr doesn't like auto-saving, so by appending "~" to the + ;; file name we make sure that jka-compr isn't used for the + ;; auto-save file. + (let ((buffer-file-name + (if tramp-auto-save-directory + (expand-file-name + (tramp-subst-strs-in-string + '(("_" . "|") + ("/" . "_a") + (":" . "_b") + ("|" . "__") + ("[" . "_l") + ("]" . "_r")) + (buffer-file-name)) + tramp-auto-save-directory) + (buffer-file-name)))) + ;; Run plain `make-auto-save-file-name'. There might be an advice when + ;; it is not a magic file name operation (since Emacs 22). + ;; We must deactivate it temporarily. + (if (not (ad-is-active 'make-auto-save-file-name)) + (tramp-run-real-handler + 'make-auto-save-file-name nil) + ;; else + (ad-deactivate 'make-auto-save-file-name) + (prog1 + (tramp-run-real-handler + 'make-auto-save-file-name nil) + (ad-activate 'make-auto-save-file-name))))) + ;; CCC grok APPEND, LOCKNAME, CONFIRM (defun tramp-handle-write-region @@ -3844,7 +3860,7 @@ This will break if COMMAND prints a newline, followed by the value of ;; (string= lockname filename)) ;; (error ;; "tramp-handle-write-region: LOCKNAME must be nil or equal FILENAME")) - ;; XEmacs takes a coding system as the sevent argument, not `confirm' + ;; XEmacs takes a coding system as the seventh argument, not `confirm' (when (and (not (featurep 'xemacs)) confirm (file-exists-p filename)) (unless (y-or-n-p (format "File %s exists; overwrite anyway? " @@ -3858,13 +3874,6 @@ This will break if COMMAND prints a newline, followed by the value of (loc-dec (tramp-get-local-decoding multi-method method user host)) (trampbuf (get-buffer-create "*tramp output*")) (modes (file-modes filename)) - ;; We use this to save the value of `last-coding-system-used' - ;; after writing the tmp file. At the end of the function, - ;; we set `last-coding-system-used' to this saved value. - ;; This way, any intermediary coding systems used while - ;; talking to the remote shell or suchlike won't hose this - ;; variable. This approach was snarfed from ange-ftp.el. - coding-system-used tmpfil) ;; Write region into a tmp file. This isn't really needed if we ;; use an encoding function, but currently we use it always @@ -3886,9 +3895,6 @@ This will break if COMMAND prints a newline, followed by the value of ;; the backup file. This case `save-buffer' handles ;; permissions. (when modes (set-file-modes tmpfil modes)) - ;; Now, `last-coding-system-used' has the right value. Remember it. - (when (boundp 'last-coding-system-used) - (setq coding-system-used last-coding-system-used)) ;; This is a bit lengthy due to the different methods possible for ;; file transfer. First, we check whether the method uses an rcp ;; program. If so, we call it. Otherwise, both encoding and @@ -3990,9 +3996,6 @@ This will break if COMMAND prints a newline, followed by the value of ;; We must pass modtime explicitely, because filename can be different ;; from (buffer-file-name), f.e. if `file-precious-flag' is set. (nth 5 (file-attributes filename)))) - ;; Make `last-coding-system-used' have the right value. - (when (boundp 'last-coding-system-used) - (setq last-coding-system-used coding-system-used)) (when (or (eq visit t) (eq visit nil) (stringp visit)) @@ -4119,8 +4122,9 @@ ARGS are the arguments OPERATION has been called with." (nth 2 args)) ; BUF ((member operation - (list 'set-visited-file-modtime 'verify-visited-file-modtime - ; XEmacs only + (list 'make-auto-save-file-name + 'set-visited-file-modtime 'verify-visited-file-modtime + ; XEmacs only 'backup-buffer)) (buffer-file-name (if (bufferp (nth 0 args)) (nth 0 args) (current-buffer)))) @@ -4300,7 +4304,7 @@ necessary anymore." (symbol-function 'PC-expand-many-files)) (defun PC-expand-many-files (name) (if (tramp-tramp-file-p name) - (expand-many-files name) + (funcall (symbol-function 'expand-many-files) name) (tramp-save-PC-expand-many-files name)))) ;; Why isn't eval-after-load sufficient? @@ -4824,12 +4828,11 @@ User may be nil." (defun tramp-completion-handle-expand-file-name (name &optional dir) "Like `expand-file-name' for tramp files." (let ((fullname (concat (or dir default-directory) name))) - (tramp-drop-volume-letter - (if (tramp-completion-mode fullname) - (tramp-run-real-handler - 'expand-file-name (list name dir)) - (tramp-completion-run-real-handler - 'expand-file-name (list name dir)))))) + (if (tramp-completion-mode fullname) + (tramp-run-real-handler + 'expand-file-name (list name dir)) + (tramp-completion-run-real-handler + 'expand-file-name (list name dir))))) ;;; Internal Functions: @@ -5126,12 +5129,9 @@ file exists and nonzero exit status otherwise." (tramp-send-command multi-method method user host (concat "PS1='$ ' exec " shell)) ; - (unless (tramp-wait-for-regexp - (get-buffer-process (current-buffer)) - 60 (format "\\(\\(%s\\)\\|\\(%s\\)\\)\\'" - tramp-shell-prompt-pattern shell-prompt-pattern)) - (pop-to-buffer (buffer-name)) - (error "Couldn't find remote `%s' prompt" shell)) + (tramp-barf-if-no-shell-prompt + (get-buffer-process (current-buffer)) + 60 "Couldn't find remote `%s' prompt" shell) (tramp-message 9 "Setting remote shell prompt...") ;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we @@ -5330,7 +5330,7 @@ The terminal type can be configured with `tramp-terminal-type'." (tramp-message 9 "Waiting 60s for prompt from remote shell") (with-timeout (60 (throw 'tramp-action 'timeout)) (while (not found) - (accept-process-output p 1) + (tramp-accept-process-output p 1) (goto-char (point-min)) (setq todo actions) (while todo @@ -5367,7 +5367,7 @@ The terminal type can be configured with `tramp-terminal-type'." (tramp-message 9 "Waiting 60s for prompt from remote shell") (with-timeout (60 (throw 'tramp-action 'timeout)) (while (not found) - (accept-process-output p 1) + (tramp-accept-process-output p 1) (setq todo actions) (goto-char (point-min)) (while todo @@ -5756,6 +5756,14 @@ character." ;; Utility functions. +(defun tramp-accept-process-output + (&optional process timeout timeout-msecs) + "Like `accept-process-output' for Tramp processes. +This is needed in order to hide `last-coding-system-used', which is set +for process communication also." + (let (last-coding-system-used) + (accept-process-output process timeout timeout-msecs))) + (defun tramp-wait-for-regexp (proc timeout regexp) "Wait for a REGEXP to appear from process PROC within TIMEOUT seconds. Expects the output of PROC to be sent to the current buffer. Returns @@ -5772,20 +5780,18 @@ nil." timeout)) (with-timeout (timeout) (while (not found) - (accept-process-output proc 1) + (tramp-accept-process-output proc 1) (unless (memq (process-status proc) '(run open)) (error "Process has died")) (goto-char (point-min)) - (setq found (when (re-search-forward regexp nil t) - (tramp-match-string-list))))))) + (setq found (re-search-forward regexp nil t)))))) (t (while (not found) - (accept-process-output proc 1) + (tramp-accept-process-output proc 1) (unless (memq (process-status proc) '(run open)) (error "Process has died")) (goto-char (point-min)) - (setq found (when (re-search-forward regexp nil t) - (tramp-match-string-list)))))) + (setq found (re-search-forward regexp nil t))))) (when tramp-debug-buffer (append-to-buffer (tramp-get-debug-buffer tramp-current-multi-method tramp-current-method @@ -6398,7 +6404,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt." timeout)) (with-timeout (timeout) (while (not found) - (accept-process-output proc 1) + (tramp-accept-process-output proc 1) (unless (memq (process-status proc) '(run open)) (error "Process has died")) (goto-char (point-max)) @@ -6406,7 +6412,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt." (setq found (looking-at end-of-output)))))) (t (while (not found) - (accept-process-output proc 1) + (tramp-accept-process-output proc 1) (unless (memq (process-status proc) '(run open)) (error "Process has died")) (goto-char (point-max)) @@ -6443,18 +6449,6 @@ Sends COMMAND, then waits 30 seconds for shell prompt." ;; Return value is whether end-of-output sentinel was found. found)) -(defun tramp-match-string-list (&optional string) - "Returns list of all match strings. -That is, (list (match-string 0) (match-string 1) ...), according to the -number of matches." - (let* ((nmatches (/ (length (match-data)) 2)) - (i (- nmatches 1)) - (res nil)) - (while (>= i 0) - (setq res (cons (match-string i string) res)) - (setq i (- i 1))) - res)) - (defun tramp-send-command-and-check (multi-method method user host command &optional subshell) "Run COMMAND and check its exit status. @@ -6555,7 +6549,7 @@ MULTI-METHOD, METHOD, USER, and HOST specify the connection." If `tramp-discard-garbage' is nil, just erase buffer." (if (not tramp-discard-garbage) (erase-buffer) - (while (prog1 (erase-buffer) (accept-process-output p 0.25)) + (while (prog1 (erase-buffer) (tramp-accept-process-output p 0.25)) (when tramp-debug-buffer (save-excursion (set-buffer (tramp-get-debug-buffer multi-method method user host)) @@ -6948,33 +6942,28 @@ as default." ;; Auto saving to a special directory. -(defun tramp-make-auto-save-file-name (fn) - "Returns a file name in `tramp-auto-save-directory' for autosaving this file." - (when tramp-auto-save-directory - (unless (file-exists-p tramp-auto-save-directory) - (make-directory tramp-auto-save-directory t))) - ;; jka-compr doesn't like auto-saving, so by appending "~" to the - ;; file name we make sure that jka-compr isn't used for the - ;; auto-save file. - (let ((buffer-file-name (expand-file-name - (tramp-subst-strs-in-string '(("_" . "|") - ("/" . "_a") - (":" . "_b") - ("|" . "__") - ("[" . "_l") - ("]" . "_r")) - fn) - tramp-auto-save-directory))) - (make-auto-save-file-name))) - -(defadvice make-auto-save-file-name - (around tramp-advice-make-auto-save-file-name () activate) - "Invoke `tramp-make-auto-save-file-name' for tramp files." - (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)) - tramp-auto-save-directory) - (setq ad-return-value - (tramp-make-auto-save-file-name (buffer-file-name))) - ad-do-it)) +(defun tramp-exists-file-name-handler (operation &rest args) + (let ((buffer-file-name "/") + (fnha file-name-handler-alist) + (check-file-name-operation operation) + (file-name-handler-alist + (list + (cons "/" + '(lambda (operation &rest args) + "Returns OPERATION if it is the one to be checked" + (if (equal check-file-name-operation operation) + operation + (let ((file-name-handler-alist fnha)) + (apply operation args)))))))) + (eq (apply operation args) operation))) + +(unless (tramp-exists-file-name-handler 'make-auto-save-file-name) + (defadvice make-auto-save-file-name + (around tramp-advice-make-auto-save-file-name () activate) + "Invoke `tramp-handle-make-auto-save-file-name' for tramp files." + (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name))) + (setq ad-return-value (tramp-handle-make-auto-save-file-name)) + ad-do-it))) ;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have ;; permission 0666 minus umask. This is a security threat. @@ -6992,7 +6981,7 @@ as default." ;; auto-saved file belonging to another original file. This could ;; be a security threat. (set-file-modes buffer-auto-save-file-name - (or (file-modes bfn) ?\600))))) + (or (file-modes bfn) #o600))))) (unless (or (> emacs-major-version 21) (and (featurep 'xemacs) @@ -7129,10 +7118,11 @@ it does the right thing." "Specify if query is needed for process when Emacs is exited. If the second argument flag is non-nil, Emacs will query the user before exiting if process is running." + (funcall (if (fboundp 'set-process-query-on-exit-flag) - (set-process-query-on-exit-flag process flag) - (funcall (symbol-function 'process-kill-without-query) - process flag))) + (symbol-function 'set-process-query-on-exit-flag) + (symbol-function 'process-kill-without-query)) + process flag)) ;; ------------------------------------------------------------ @@ -7212,20 +7202,19 @@ Only works for Bourne-like shells." ;; CCC: This check is now also really awful; we should search all ;; of the filename format, not just the prefix. (when (string-match "\\[" tramp-prefix-format) -(defadvice file-expand-wildcards (around tramp-fix activate) - (let ((name (ad-get-arg 0))) - (if (tramp-tramp-file-p name) - ;; If it's a Tramp file, dissect it and look if wildcards - ;; need to be expanded at all. - (let ((v (tramp-dissect-file-name name))) - (if (string-match "[[*?]" (tramp-file-name-localname v)) - (let ((res ad-do-it)) - (setq ad-return-value (or res (list name)))) - (setq ad-return-value (list name)))) - ;; If it is not a Tramp file, just run the original function. - (let ((res ad-do-it)) - (setq ad-return-value (or res (list name))))))) -) + (defadvice file-expand-wildcards (around tramp-fix activate) + (let ((name (ad-get-arg 0))) + (if (tramp-tramp-file-p name) + ;; If it's a Tramp file, dissect it and look if wildcards + ;; need to be expanded at all. + (let ((v (tramp-dissect-file-name name))) + (if (string-match "[[*?]" (tramp-file-name-localname v)) + (let ((res ad-do-it)) + (setq ad-return-value (or res (list name)))) + (setq ad-return-value (list name)))) + ;; If it is not a Tramp file, just run the original function. + (let ((res ad-do-it)) + (setq ad-return-value (or res (list name)))))))) ;; Tramp version is useful in a number of situations. @@ -7245,69 +7234,74 @@ Only works for Bourne-like shells." (interactive) (require 'reporter) (catch 'dont-send - (let ((reporter-prompt-for-summary-p t)) + (let ((reporter-prompt-for-summary-p t)) (reporter-submit-bug-report tramp-bug-report-address ; to-address (format "tramp (%s)" tramp-version) ; package name and version - `(;; Current state - tramp-ls-command - tramp-test-groks-nt - tramp-file-exists-command - tramp-current-multi-method - tramp-current-method - tramp-current-user - tramp-current-host - - ;; System defaults - tramp-auto-save-directory ; vars to dump - tramp-default-method - tramp-rsh-end-of-line - tramp-default-password-end-of-line - tramp-remote-path - tramp-login-prompt-regexp - tramp-password-prompt-regexp - tramp-wrong-passwd-regexp - tramp-yesno-prompt-regexp - tramp-yn-prompt-regexp - tramp-terminal-prompt-regexp - tramp-temp-name-prefix - tramp-file-name-structure - tramp-file-name-regexp - tramp-multi-file-name-structure - tramp-multi-file-name-hop-structure - tramp-multi-methods - tramp-multi-connection-function-alist - tramp-methods - tramp-end-of-output - tramp-coding-commands - tramp-actions-before-shell - tramp-actions-copy-out-of-band - tramp-multi-actions - tramp-terminal-type - tramp-shell-prompt-pattern - tramp-chunksize - ,(when (boundp 'tramp-backup-directory-alist) - 'tramp-backup-directory-alist) - ,(when (boundp 'tramp-bkup-backup-directory-info) - 'tramp-bkup-backup-directory-info) - - ;; Non-tramp variables of interest - shell-prompt-pattern - backup-by-copying - backup-by-copying-when-linked - backup-by-copying-when-mismatch - ,(when (boundp 'backup-by-copying-when-privileged-mismatch) - 'backup-by-copying-when-privileged-mismatch) - ,(when (boundp 'password-cache) - 'password-cache) - ,(when (boundp 'password-cache-expiry) - 'password-cache-expiry) - ,(when (boundp 'backup-directory-alist) - 'backup-directory-alist) - ,(when (boundp 'bkup-backup-directory-info) - 'bkup-backup-directory-info) - file-name-handler-alist) - nil ; pre-hook + (delq nil + `(;; Current state + tramp-ls-command + tramp-test-groks-nt + tramp-file-exists-command + tramp-current-multi-method + tramp-current-method + tramp-current-user + tramp-current-host + + ;; System defaults + tramp-auto-save-directory ; vars to dump + tramp-default-method + tramp-rsh-end-of-line + tramp-default-password-end-of-line + tramp-remote-path + tramp-login-prompt-regexp + ;; Mask non-7bit characters + (tramp-password-prompt-regexp . tramp-reporter-dump-variable) + tramp-wrong-passwd-regexp + tramp-yesno-prompt-regexp + tramp-yn-prompt-regexp + tramp-terminal-prompt-regexp + tramp-temp-name-prefix + tramp-file-name-structure + tramp-file-name-regexp + tramp-multi-file-name-structure + tramp-multi-file-name-hop-structure + tramp-multi-methods + tramp-multi-connection-function-alist + tramp-methods + tramp-end-of-output + tramp-coding-commands + tramp-actions-before-shell + tramp-actions-copy-out-of-band + tramp-multi-actions + tramp-terminal-type + ;; Mask non-7bit characters + (tramp-shell-prompt-pattern . tramp-reporter-dump-variable) + tramp-chunksize + ,(when (boundp 'tramp-backup-directory-alist) + 'tramp-backup-directory-alist) + ,(when (boundp 'tramp-bkup-backup-directory-info) + 'tramp-bkup-backup-directory-info) + + ;; Non-tramp variables of interest + ;; Mask non-7bit characters + (shell-prompt-pattern . tramp-reporter-dump-variable) + backup-by-copying + backup-by-copying-when-linked + backup-by-copying-when-mismatch + ,(when (boundp 'backup-by-copying-when-privileged-mismatch) + 'backup-by-copying-when-privileged-mismatch) + ,(when (boundp 'password-cache) + 'password-cache) + ,(when (boundp 'password-cache-expiry) + 'password-cache-expiry) + ,(when (boundp 'backup-directory-alist) + 'backup-directory-alist) + ,(when (boundp 'bkup-backup-directory-info) + 'bkup-backup-directory-info) + file-name-handler-alist)) + + 'tramp-load-report-modules ; pre-hook 'tramp-append-tramp-buffers ; post-hook "\ Enter your bug report in this message, including as much detail as you @@ -7326,8 +7320,43 @@ report. --bug report follows this line-- ")))) -(defun tramp-append-tramp-buffers () - "Append Tramp buffers into the bug report." +(defun tramp-reporter-dump-variable (varsym mailbuf) + "Pretty-print the value of the variable in symbol VARSYM. +Used for non-7bit chars in strings." + (let* ((reporter-eval-buffer (symbol-value 'reporter-eval-buffer)) + (val (with-current-buffer reporter-eval-buffer + (symbol-value varsym)))) + + ;; There are characters to be masked. + (when (and (boundp 'mm-7bit-chars) + (string-match + (concat "[^" (symbol-value 'mm-7bit-chars) "]") val)) + (with-current-buffer reporter-eval-buffer + (set varsym (concat "(base64-decode-string \"" + (base64-encode-string val) + "\")")))) + + ;; Dump variable. + (funcall (symbol-function 'reporter-dump-variable) varsym mailbuf) + + ;; Remove string quotation. + (forward-line -1) + (when (looking-at + (concat "\\(^.*\\)" "\"" ;; \1 " + "\\((base64-decode-string \\)" "\\\\" ;; \2 \ + "\\(\".*\\)" "\\\\" ;; \3 \ + "\\(\")\\)" "\"$")) ;; \4 " + (replace-match "\\1\\2\\3\\4") + (beginning-of-line) + (insert " ;; variable encoded due to non-printable characters\n")) + (forward-line 1) + + ;; Reset VARSYM to old value. + (with-current-buffer reporter-eval-buffer + (set varsym val)))) + +(defun tramp-load-report-modules () + "Load needed modules for reporting." ;; We load message.el and mml.el from Gnus. (if (featurep 'xemacs) @@ -7337,9 +7366,12 @@ report. (require 'message nil 'noerror) (require 'mml nil 'noerror)) (when (functionp 'message-mode) - (funcall 'message-mode)) + (funcall (symbol-function 'message-mode))) (when (functionp 'mml-mode) - (funcall 'mml-mode t)) + (funcall (symbol-function 'mml-mode) t))) + +(defun tramp-append-tramp-buffers () + "Append Tramp buffers into the bug report." (when (and (eq major-mode 'message-mode) @@ -7393,10 +7425,10 @@ Therefore, the contents of files might be included in the debug buffer(s).") (goto-char (point-max)) (insert "\n\n") (dolist (buffer buffer-list) - (mml-insert-empty-tag - 'part 'type "text/plain" 'encoding "base64" - 'disposition "attachment" 'buffer (buffer-name buffer) - 'description (buffer-name buffer))) + (funcall (symbol-function 'mml-insert-empty-tag) + 'part 'type "text/plain" 'encoding "base64" + 'disposition "attachment" 'buffer (buffer-name buffer) + 'description (buffer-name buffer))) (set-buffer-modified-p nil)) ;; Don't send. Delete the message buffer. diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index d928380b867..2ba9f7b3249 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -2,9 +2,9 @@ ;;; trampver.el --- Transparent Remote Access, Multiple Protocol ;;; lisp/trampver.el. Generated from trampver.el.in by configure. -;; Copyright (C) 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE +;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> ;; Keywords: comm, processes ;; This file is part of GNU Emacs. @@ -30,7 +30,7 @@ ;; are auto-frobbed from configure.ac, so you should edit that file and run ;; "autoconf && ./configure" to change them. -(defconst tramp-version "2.0.49" +(defconst tramp-version "2.0.50" "This version of Tramp.") (defconst tramp-bug-report-address "tramp-devel@gnu.org" diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el index 36625b4b0ee..fc7b23ae1ba 100644 --- a/lisp/net/webjump.el +++ b/lisp/net/webjump.el @@ -1,6 +1,7 @@ ;;; webjump.el --- programmable Web hotlist -;; Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Neil W. Van Dyke <nwv@acm.org> ;; Created: 09-Aug-1996 diff --git a/lisp/net/zone-mode.el b/lisp/net/zone-mode.el index ab00c0ce5af..9f6c9d1c778 100644 --- a/lisp/net/zone-mode.el +++ b/lisp/net/zone-mode.el @@ -1,6 +1,6 @@ ;;; zone-mode.el --- major mode for editing DNS zone files -;; Copyright (C) 1998, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: John Heidemann <johnh@isi.edu> ;; Keywords: DNS, languages diff --git a/lisp/newcomment.el b/lisp/newcomment.el index c0ad722c158..6d95d3ee16e 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -1,9 +1,10 @@ ;;; newcomment.el --- (un)comment regions of buffers -;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: code extracted from Emacs-20's simple.el -;; Maintainer: Stefan Monnier <monnier@cs.yale.edu> +;; Maintainer: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: comment uncomment ;; This file is part of GNU Emacs. diff --git a/lisp/novice.el b/lisp/novice.el index 6fd67d4ac1e..dfaf0b6c6d3 100644 --- a/lisp/novice.el +++ b/lisp/novice.el @@ -1,7 +1,7 @@ ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs -;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal, help @@ -42,8 +42,7 @@ If nil, the feature is disabled, i.e., all commands work normally.") ;;;###autoload -(defvaralias 'disabled-command-hook 'disabled-command-function) -;;;###autoload (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1") +(define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1") ;;;###autoload (defun disabled-command-function (&rest ignore) diff --git a/lisp/obsolete/awk-mode.el b/lisp/obsolete/awk-mode.el index 9603d768c7d..166986fd34e 100644 --- a/lisp/obsolete/awk-mode.el +++ b/lisp/obsolete/awk-mode.el @@ -1,6 +1,7 @@ ;;; awk-mode.el --- AWK code editing commands for Emacs -;; Copyright (C) 1988,94,96,2000 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1996, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: unix, languages diff --git a/lisp/term/bg-mouse.el b/lisp/obsolete/bg-mouse.el index 017a92d5770..687619a051b 100644 --- a/lisp/term/bg-mouse.el +++ b/lisp/obsolete/bg-mouse.el @@ -1,6 +1,6 @@ ;;; bg-mouse.el --- GNU Emacs code for BBN Bitgraph mouse -;; Copyright (C) 2001 Free Software Foundation, Inc. Oct 1985. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: John Robinson <jr@bbn-unix.arpa> ;; Stephen Gildea <gildea@bbn.com> @@ -50,6 +50,13 @@ ;;; semicolon screws up indenting, so use this instead (defconst semicolon ?\;) +(defvar bg-mouse-x) +(defvar bg-mouse-y) +(defvar bg-cursor-window) +;; This variable does not exist since 1991, so it's a safe bet +;; this package is not really used anymore. Still... +(defvar mouse-map) + ;;; Defuns: (defun bg-mouse-report (prefix-arg) diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el index 89754716292..495e95706ca 100644 --- a/lisp/obsolete/fast-lock.el +++ b/lisp/obsolete/fast-lock.el @@ -1,6 +1,7 @@ ;;; fast-lock.el --- automagic text properties caching for fast Font Lock mode -;; Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF @@ -186,6 +187,8 @@ (if (and (eq system-type 'ms-dos) (not (msdos-long-file-names))) (error "`fast-lock' was written for long file name systems")) +(defvar font-lock-face-list) + (eval-when-compile ;; ;; We don't do this at the top-level as we only use non-autoloaded macros. @@ -233,22 +236,27 @@ (defmacro defcustom (symbol value doc &rest args) `(defvar ,symbol ,value ,doc)))) -;(defun fast-lock-submit-bug-report () -; "Submit via mail a bug report on fast-lock.el." -; (interactive) -; (let ((reporter-prompt-for-summary-p t)) -; (reporter-submit-bug-report "simon@gnu.org" "fast-lock 3.14" -; '(fast-lock-cache-directories fast-lock-minimum-size -; fast-lock-save-others fast-lock-save-events fast-lock-save-faces -; fast-lock-verbose) -; nil nil -; (concat "Hi Si., -; -;I want to report a bug. I've read the `Bugs' section of `Info' on Emacs, so I -;know how to make a clear and unambiguous report. To reproduce the bug: -; -;Start a fresh editor via `" invocation-name " -no-init-file -no-site-file'. -;In the `*scratch*' buffer, evaluate:")))) +;;(defun fast-lock-submit-bug-report () +;; "Submit via mail a bug report on fast-lock.el." +;; (interactive) +;; (let ((reporter-prompt-for-summary-p t)) +;; (reporter-submit-bug-report "simon@gnu.org" "fast-lock 3.14" +;; '(fast-lock-cache-directories fast-lock-minimum-size +;; fast-lock-save-others fast-lock-save-events fast-lock-save-faces +;; fast-lock-verbose) +;; nil nil +;; (concat "Hi Si., +;; +;;I want to report a bug. I've read the `Bugs' section of `Info' on Emacs, so I +;;know how to make a clear and unambiguous report. To reproduce the bug: +;; +;;Start a fresh editor via `" invocation-name " -no-init-file -no-site-file'. +;;In the `*scratch*' buffer, evaluate:")))) + +(defgroup fast-lock nil + "Font Lock support mode to cache fontification." + :load 'fast-lock + :group 'font-lock) (defvar fast-lock-mode nil) ; Whether we are turned on. (defvar fast-lock-cache-timestamp nil) ; For saving/reading. @@ -371,8 +379,9 @@ For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events', (if arg (> (prefix-numeric-value arg) 0) (not fast-lock-mode)))) (if (and fast-lock-mode (not font-lock-mode)) ;; Turned on `fast-lock-mode' rather than `font-lock-mode'. - (let ((font-lock-support-mode 'fast-lock-mode)) - (font-lock-mode t)) + (progn + (message "Use font-lock-support-mode rather than calling fast-lock-mode") + (sit-for 2)) ;; Let's get down to business. (set (make-local-variable 'fast-lock-cache-timestamp) nil) (set (make-local-variable 'fast-lock-cache-filename) nil) @@ -859,5 +868,5 @@ See `fast-lock-get-face-properties'." (provide 'fast-lock) -;;; arch-tag: 638c431e-8cae-4538-80a1-963ff97d233e +;; arch-tag: 638c431e-8cae-4538-80a1-963ff97d233e ;;; fast-lock.el ends here diff --git a/lisp/obsolete/float.el b/lisp/obsolete/float.el index eb29f331ce7..400956ea232 100644 --- a/lisp/obsolete/float.el +++ b/lisp/obsolete/float.el @@ -1,6 +1,6 @@ ;;; float.el --- obsolete floating point arithmetic package -;; Copyright (C) 1986 Free Software Foundation, Inc. +;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Rosenblatt ;; Maintainer: FSF diff --git a/lisp/obsolete/hilit19.el b/lisp/obsolete/hilit19.el index 162d2984eb8..666c580098f 100644 --- a/lisp/obsolete/hilit19.el +++ b/lisp/obsolete/hilit19.el @@ -1,6 +1,7 @@ ;;; hilit19.el --- customizable highlighting for Emacs 19 -;; Copyright (c) 1993, 1994, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Jonathan Stigelman <stig@hackvan.com> ;; Maintainer: FSF diff --git a/lisp/obsolete/hscroll.el b/lisp/obsolete/hscroll.el index 1d727eb8d98..5e3d141f73b 100644 --- a/lisp/obsolete/hscroll.el +++ b/lisp/obsolete/hscroll.el @@ -1,5 +1,7 @@ ;;; hscroll.el --- automatically scroll truncated lines horizontally -;;; Copyright (C) 1992, 1993, 1995, 1996 Free Software Foundation, Inc. + +;; Copyright (C) 1992, 1993, 1995, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Wayne Mesard <wmesard@esd.sgi.com> ;; Keywords: display diff --git a/lisp/obsolete/iso-acc.el b/lisp/obsolete/iso-acc.el index 279548b81d6..6ff9e31d7fd 100644 --- a/lisp/obsolete/iso-acc.el +++ b/lisp/obsolete/iso-acc.el @@ -1,7 +1,7 @@ ;;; iso-acc.el --- minor mode providing electric accent keys -;; Copyright (C) 1993, 1994, 1996, 2001, 2002, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Johan Vromans ;; Maintainer: FSF diff --git a/lisp/obsolete/iso-swed.el b/lisp/obsolete/iso-swed.el index abe9dd9c472..ab5287bc97a 100644 --- a/lisp/obsolete/iso-swed.el +++ b/lisp/obsolete/iso-swed.el @@ -1,6 +1,6 @@ ;;; iso-swed.el --- set up char tables for ISO 8859/1 for Swedish/Finnish ttys -;; Copyright (C) 1987 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/obsolete/keyswap.el b/lisp/obsolete/keyswap.el index 9bb0b9c63d3..0ed70d61dee 100644 --- a/lisp/obsolete/keyswap.el +++ b/lisp/obsolete/keyswap.el @@ -1,6 +1,6 @@ ;;; keyswap.el --- swap BS and DEL keys -*- no-byte-compile: t -*- -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Keywords: terminals diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el index 558377289ed..eaef84a6ab4 100644 --- a/lisp/obsolete/lazy-lock.el +++ b/lisp/obsolete/lazy-lock.el @@ -1,7 +1,7 @@ ;;; lazy-lock.el --- lazy demand-driven fontification for fast Font Lock mode -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF @@ -299,6 +299,10 @@ until TEST returns nil." `(while (progn ,@body ,test))) (put 'do-while 'lisp-indent-function (get 'while 'lisp-indent-function))) +(defgroup lazy-lock nil + "Font Lock support mode to fontify lazily." + :group 'font-lock) + (defvar lazy-lock-mode nil) ; Whether we are turned on. (defvar lazy-lock-buffers nil) ; For deferral. (defvar lazy-lock-timers (cons nil nil)) ; For deferral and stealth. @@ -522,8 +526,8 @@ verbosity is controlled via the variable `lazy-lock-stealth-verbose'." (if arg (> (prefix-numeric-value arg) 0) (not was-on))))) (cond ((and now-on (not font-lock-mode)) ;; Turned on `lazy-lock-mode' rather than `font-lock-mode'. - (let ((font-lock-support-mode 'lazy-lock-mode)) - (font-lock-mode t))) + (message "Use font-lock-support-mode rather than calling lazy-lock-mode") + (sit-for 2)) (now-on ;; Turn ourselves on. (set (make-local-variable 'lazy-lock-mode) t) @@ -1050,5 +1054,5 @@ verbosity is controlled via the variable `lazy-lock-stealth-verbose'." (provide 'lazy-lock) -;;; arch-tag: c1776846-f046-4a45-9684-54b951b12fc9 +;; arch-tag: c1776846-f046-4a45-9684-54b951b12fc9 ;;; lazy-lock.el ends here diff --git a/lisp/obsolete/mlsupport.el b/lisp/obsolete/mlsupport.el index e36eae66942..22356f1df64 100644 --- a/lisp/obsolete/mlsupport.el +++ b/lisp/obsolete/mlsupport.el @@ -1,6 +1,6 @@ ;;; mlsupport.el --- run-time support for mocklisp code -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: extensions @@ -321,15 +321,15 @@ "Mocklisp compatibility variable; 1 means pass -f when calling csh.") (defun filter-region (command) - (let ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh")) - (csh (equal (file-name-nondirectory shell) "csh"))) + (let* ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh")) + (csh (equal (file-name-nondirectory shell) "csh"))) (call-process-region (point) (mark) shell t t nil (if (and csh use-csh-option-f) "-cf" "-c") (concat "exec " command)))) (defun execute-monitor-command (command) - (let ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh")) - (csh (equal (file-name-nondirectory shell) "csh"))) + (let* ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh")) + (csh (equal (file-name-nondirectory shell) "csh"))) (call-process shell nil t t (if (and csh use-csh-option-f) "-cf" "-c") (concat "exec " command)))) diff --git a/lisp/obsolete/ooutline.el b/lisp/obsolete/ooutline.el index fbba7709bb0..17374ba1781 100644 --- a/lisp/obsolete/ooutline.el +++ b/lisp/obsolete/ooutline.el @@ -1,6 +1,7 @@ ;;; ooutline.el --- outline mode commands for Emacs -;; Copyright (C) 1986, 1993, 1994, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1993, 1994, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: outlines diff --git a/lisp/obsolete/options.el b/lisp/obsolete/options.el index 4defa96f2ce..733e3740dc0 100644 --- a/lisp/obsolete/options.el +++ b/lisp/obsolete/options.el @@ -1,6 +1,6 @@ ;;; options.el --- edit Options command for Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/obsolete/profile.el b/lisp/obsolete/profile.el index c4a5b4a0359..3d5ea982b86 100644 --- a/lisp/obsolete/profile.el +++ b/lisp/obsolete/profile.el @@ -1,6 +1,7 @@ ;;; profile.el --- Emacs profiler (OBSOLETE; use elp.el instead) -;; Copyright (C) 1992, 1994, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boaz Ben-Zvi <boaz@lcs.mit.edu> ;; Created: 07 Feb 1992 diff --git a/lisp/obsolete/rnews.el b/lisp/obsolete/rnews.el index 98a52d4f830..e6ab3e8c872 100644 --- a/lisp/obsolete/rnews.el +++ b/lisp/obsolete/rnews.el @@ -1,6 +1,7 @@ ;;; rnews.el --- USENET news reader for GNU Emacs -;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: news @@ -58,6 +59,12 @@ (require 'mail-utils) (require 'sendmail) +(defvar caesar-translate-table) +(defvar minor-modes) +(defvar news-buffer-save) +(defvar news-group-name) +(defvar news-minor-modes) + (autoload 'rmail-output "rmailout" "Append this message to Unix mail file named FILE-NAME." t) @@ -886,7 +893,7 @@ Using ls was found to be too slow in a previous version." (progn (message "Added %s to your list of newsgroups." gp) - (end-of-buffer) + (goto-char (point-max)) (insert gp ": 1-1\n"))) (search-backward gp nil t) (let (start end endofline tem) diff --git a/lisp/obsolete/rnewspost.el b/lisp/obsolete/rnewspost.el index 6e08a66b74a..221f1a0e675 100644 --- a/lisp/obsolete/rnewspost.el +++ b/lisp/obsolete/rnewspost.el @@ -1,6 +1,7 @@ ;;; rnewspost.el --- USENET news poster/mailer for GNU Emacs -;; Copyright (C) 1985, 1986, 1987, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail, news @@ -59,6 +60,8 @@ (require 'sendmail) (require 'rnews) +(defvar mail-reply-buffer) + (defvar news-reply-mode-map () "Mode map used by news-reply.") (or news-reply-mode-map diff --git a/lisp/obsolete/rsz-mini.el b/lisp/obsolete/rsz-mini.el index 693c2987952..94b7e212279 100644 --- a/lisp/obsolete/rsz-mini.el +++ b/lisp/obsolete/rsz-mini.el @@ -1,6 +1,7 @@ ;;; rsz-mini.el --- dynamically resize minibuffer to display entire contents -;; Copyright (C) 1990, 1993, 1994, 1995, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1993, 1994, 1995, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Noah Friedman <friedman@splode.com> ;; Roland McGrath <roland@gnu.org> diff --git a/lisp/obsolete/scribe.el b/lisp/obsolete/scribe.el index 7d627df191d..1be01ebc5bb 100644 --- a/lisp/obsolete/scribe.el +++ b/lisp/obsolete/scribe.el @@ -1,6 +1,6 @@ ;;; scribe.el --- scribe mode, and its idiosyncratic commands -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp @@ -30,6 +30,8 @@ ;;; Code: +(defvar compile-command) + (defgroup scribe nil "Scribe mode." :prefix "scribe-" diff --git a/lisp/obsolete/sun-curs.el b/lisp/obsolete/sun-curs.el index 5fe18221b0c..769d4de868f 100644 --- a/lisp/obsolete/sun-curs.el +++ b/lisp/obsolete/sun-curs.el @@ -1,6 +1,6 @@ ;;; sun-curs.el --- cursor definitions for Sun windows -;; Copyright (C) 1987 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jeff Peck <peck@sun.com> ;; Keywords: hardware @@ -33,6 +33,15 @@ ;;; 9-dec-86 Jeff Peck, Sun Microsystems Inc. <peck@sun.com> (eval-when-compile (require 'cl)) + +(defvar *edit-icon*) +(defvar char) +;; These are from term/sun-mouse.el +(defvar *mouse-window*) +(defvar *mouse-x*) +(defvar *mouse-y*) +(defvar menu) + (require 'sun-fns) (eval-and-compile @@ -79,9 +88,11 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]" (if (symbolp icon) (setq icon (symbol-value icon))) (sun-change-cursor-icon icon)) +;; This does not make much sense... (make-local-variable '*edit-icon*) + +(defvar icon-edit nil) (make-variable-buffer-local 'icon-edit) -(setq-default icon-edit nil) (or (assq 'icon-edit minor-mode-alist) (push '(icon-edit " IconEdit") minor-mode-alist)) @@ -109,9 +120,6 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]" (insert char) (sc::goto-hotspot)) -(defun sc::menu-function (window x y) - (sun-menu-evaluate window (1+ x) y sc::menu)) - (defmenu sc::menu ("Cursor Menu") ("Pack & Use" sc::pack-buffer-to-cursor) @@ -127,6 +135,9 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]" ("Quit" sc::quit-edit) ) +(defun sc::menu-function (window x y) + (sun-menu-evaluate window (1+ x) y sc::menu)) + (defun sc::quit-edit () (interactive) (bury-buffer (current-buffer)) @@ -202,7 +213,7 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]" ) (defun sc::pack-one-line (dummy) - (let* (char chr1 chr2) + (let (char chr1 chr2) (setq char 0 chr1 (mapconcat 'sc::pack-one-char "12345678" "") chr1 char) (setq char 0 chr2 (mapconcat 'sc::pack-one-char "12345678" "") chr2 char) (forward-line 1) diff --git a/lisp/obsolete/sun-fns.el b/lisp/obsolete/sun-fns.el index 88241e813ec..614b352ad3a 100644 --- a/lisp/obsolete/sun-fns.el +++ b/lisp/obsolete/sun-fns.el @@ -1,6 +1,6 @@ ;;; sun-fns.el --- subroutines of Mouse handling for Sun windows -;; Copyright (C) 1987 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jeff Peck <peck@sun.com> ;; Maintainer: none @@ -85,7 +85,7 @@ (setq this-command 'mouse-yank-move)) ) -(defun mouse-set-mark (window x y) +(defun mouse-set-mark (&optional window x y) "Set mark at mouse cursor." (eval-in-window window ;; use this to get the unwind protect (let ((point (point))) @@ -137,7 +137,7 @@ and put the region in the stuff buffer." "Select window if not selected, otherwise do mouse-drag-move-point." (if (eq (selected-window) window) (mouse-drag-move-point window x y) - (mouse-select-window window x y))) + (mouse-select-window window))) ;;; ;;; esoterica: @@ -283,15 +283,15 @@ this command is insensitive to mouse location." "Split the window vertically at the mouse cursor." (eval-in-window window (split-window-vertically (1+ y)))) -(defun mouse-select-window (window x y) +(defun mouse-select-window (&optional window x y) "Selects the window, restoring point." (select-window window)) -(defun mouse-delete-other-windows (window x y) +(defun mouse-delete-other-windows (&optional window x y) "Deletes all windows except the one mouse is in." (delete-other-windows window)) -(defun mouse-delete-window (window x y) +(defun mouse-delete-window (window &optional x y) "Deletes the window mouse is in." (delete-window window)) diff --git a/lisp/international/swedish.el b/lisp/obsolete/swedish.el index 0deb1b3425d..65e109ec8b4 100644 --- a/lisp/international/swedish.el +++ b/lisp/obsolete/swedish.el @@ -33,6 +33,10 @@ (require 'latin-1) +(defvar mail-send-hook) +(defvar news-group-hook-alist) +(defvar news-inews-hook) + (defvar swedish-re "[ \t\n]\\(och\\|att\\|en\\|{r\\|\\[R\\|p}\\|P\\]\\|som\\|det\\|av\\|den\\|f|r\\|F\\\\R\\)[ \t\n.,?!:;'\")}]" "Regular expression for common Swedish words.") @@ -77,10 +81,9 @@ Leaves point just after the word that looks Swedish." (setq rmail-show-message-hook 'swascii-to-8859-buffer-maybe) -(or (boundp 'news-group-hook-alist) (setq news-group-hook-alist nil)) (setq news-group-hook-alist (append '(("^swnet." . swascii-to-8859-buffer-maybe)) - news-group-hook-alist)) + (bound-and-true-p news-group-hook-alist))) (defvar 8859-to-swascii-trans (let ((string (make-string 256 ? )) diff --git a/lisp/obsolete/uncompress.el b/lisp/obsolete/uncompress.el index 22bf08b2dd6..7ee25992218 100644 --- a/lisp/obsolete/uncompress.el +++ b/lisp/obsolete/uncompress.el @@ -1,6 +1,7 @@ ;;; uncompress.el --- auto-decompression hook for visiting .Z files -;; Copyright (C) 1992, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: files diff --git a/lisp/obsolete/x-apollo.el b/lisp/obsolete/x-apollo.el index e15516b40e7..edf3436aa96 100644 --- a/lisp/obsolete/x-apollo.el +++ b/lisp/obsolete/x-apollo.el @@ -1,6 +1,6 @@ ;;; x-apollo.el --- Apollo support functions -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/obsolete/x-menu.el b/lisp/obsolete/x-menu.el index bba20747f53..12427f803cc 100644 --- a/lisp/obsolete/x-menu.el +++ b/lisp/obsolete/x-menu.el @@ -1,6 +1,6 @@ ;;; x-menu.el --- menu support for X -;; Copyright (C) 1986 Free Software Foundation, Inc. +;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -23,6 +23,8 @@ ;;; Code: +(defvar x-process-mouse-hook) + (defun x-menu-mode () "Major mode for creating permanent menus for use with X. These menus are implemented entirely in Lisp; popup menus, implemented diff --git a/lisp/outline.el b/lisp/outline.el index 6b662664b58..012396c2eb0 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -1,7 +1,7 @@ ;;; outline.el --- outline mode commands for Emacs -;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 2000, 2001, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: outlines @@ -37,6 +37,9 @@ ;;; Code: +(defvar font-lock-warning-face) + + (defgroup outlines nil "Support for hierarchical outlining." :prefix "outline-" @@ -453,6 +456,20 @@ If INVISIBLE-OK is non-nil, an invisible heading line is ok too." (save-excursion (newline-and-indent))) (run-hooks 'outline-insert-heading-hook))) +(defun outline-invent-heading (head up) + (save-match-data + ;; Let's try to invent one by repeating or deleting the last char. + (let ((new-head (if up (substring head 0 -1) + (concat head (substring head -1))))) + (if (string-match (concat "\\`\\(?:" outline-regexp "\\)") + new-head) + ;; Why bother checking that it is indeed higher/lower level ? + new-head + ;; Didn't work, so ask what to do. + (read-string (format "%s heading for `%s': " + (if up "Parent" "Demoted") head) + head nil nil t))))) + (defun outline-promote (&optional children) "Promote headings higher up the tree. If prefix argument CHILDREN is given, promote also all the children. @@ -471,13 +488,18 @@ in the region." (save-excursion (outline-get-next-sibling) (point)))) (t (outline-back-to-heading t) - (let* ((head (match-string 0)) + (let* ((head (match-string-no-properties 0)) (level (save-match-data (funcall outline-level))) (up-head (or (outline-head-from-level (1- level) head) + ;; Use the parent heading, if it is really + ;; one level less. (save-excursion (save-match-data (outline-up-heading 1 t) - (match-string 0)))))) + (and (= (1- level) (funcall outline-level)) + (match-string-no-properties 0)))) + ;; Bummer!! There is no lower level heading. + (outline-invent-heading head 'up)))) (unless (rassoc level outline-heading-alist) (push (cons head level) outline-heading-alist)) @@ -501,7 +523,7 @@ in the region." (point) (save-excursion (outline-get-next-sibling) (point)))) (t - (let* ((head (match-string 0)) + (let* ((head (match-string-no-properties 0)) (level (save-match-data (funcall outline-level))) (down-head (or (outline-head-from-level (1+ level) head) @@ -516,21 +538,13 @@ in the region." (<= (funcall outline-level) level)))) (unless (eobp) (looking-at outline-regexp) - (match-string 0)))) - (save-match-data - ;; Bummer!! There is no lower heading in the buffer. - ;; Let's try to invent one by repeating the first char. - (let ((new-head (concat (substring head 0 1) head))) - (if (string-match (concat "\\`\\(?:" outline-regexp "\\)") - new-head) - ;; Why bother checking that it is indeed lower level ? - new-head - ;; Didn't work: keep it as is so it's still a heading. - head)))))) - - (unless (rassoc level outline-heading-alist) - (push (cons head level) outline-heading-alist)) - (replace-match down-head nil t))))) + (match-string-no-properties 0)))) + ;; Bummer!! There is no higher-level heading in the buffer. + (outline-invent-heading head nil)))) + + (unless (rassoc level outline-heading-alist) + (push (cons head level) outline-heading-alist)) + (replace-match down-head nil t))))) (defun outline-head-from-level (level head &optional alist) "Get new heading with level LEVEL from ALIST. @@ -593,12 +607,11 @@ the match data is set appropriately." (defun outline-move-subtree-down (&optional arg) "Move the currrent subtree down past ARG headlines of the same level." (interactive "p") - (let ((re (concat "^\\(?:" outline-regexp "\\)")) - (movfunc (if (> arg 0) 'outline-get-next-sibling + (let ((movfunc (if (> arg 0) 'outline-get-next-sibling 'outline-get-last-sibling)) (ins-point (make-marker)) (cnt (abs arg)) - beg end txt folded) + beg end folded) ;; Select the tree (outline-back-to-heading) (setq beg (point)) @@ -739,8 +752,8 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden." (defun hide-entry () "Hide the body directly following this heading." (interactive) - (outline-back-to-heading) (save-excursion + (outline-back-to-heading) (outline-end-of-heading) (outline-flag-region (point) (progn (outline-next-preface) (point)) t))) @@ -792,8 +805,8 @@ Show the heading too, if it is currently invisible." (defun hide-leaves () "Hide all body after this heading at deeper levels." (interactive) - (outline-back-to-heading) (save-excursion + (outline-back-to-heading) (outline-end-of-heading) (hide-region-body (point) (progn (outline-end-of-subtree) (point))))) @@ -850,11 +863,12 @@ Show the heading too, if it is currently invisible." (defun outline-toggle-children () "Show or hide the current subtree depending on its current state." (interactive) - (outline-back-to-heading) - (if (not (outline-invisible-p (line-end-position))) - (hide-subtree) - (show-children) - (show-entry))) + (save-excursion + (outline-back-to-heading) + (if (not (outline-invisible-p (line-end-position))) + (hide-subtree) + (show-children) + (show-entry)))) (defun outline-flag-subtree (flag) (save-excursion @@ -866,8 +880,7 @@ Show the heading too, if it is currently invisible." (defun outline-end-of-subtree () (outline-back-to-heading) - (let ((opoint (point)) - (first t) + (let ((first t) (level (funcall outline-level))) (while (and (not (eobp)) (or first (> (funcall outline-level) level))) @@ -1027,5 +1040,5 @@ convenient way to make a table of contents of the buffer." (provide 'outline) (provide 'noutline) -;;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874 +;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874 ;;; outline.el ends here diff --git a/lisp/paren.el b/lisp/paren.el index f0bf458a3ab..a1cc12712f7 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -1,6 +1,7 @@ ;;; paren.el --- highlight matching paren -;; Copyright (C) 1993, 1996, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: rms@gnu.org ;; Maintainer: FSF diff --git a/lisp/paths.el b/lisp/paths.el index b79e925aee3..f248eac9242 100644 --- a/lisp/paths.el +++ b/lisp/paths.el @@ -1,6 +1,7 @@ ;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*- -;; Copyright (C) 1986, 1988, 1994, 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1988, 1994, 1999, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -37,13 +38,13 @@ ;; DOC file rather than in memory. (defun prune-directory-list (dirs &optional keep reject) - "Returns a copy of DIRS with all non-existant directories removed. + "Returns a copy of DIRS with all non-existent directories removed. The optional argument KEEP is a list of directories to retain even if they don't exist, and REJECT is a list of directories to remove from DIRS, even if they exist; REJECT takes precedence over KEEP. Note that membership in REJECT and KEEP is checked using simple string -comparision." +comparison." (apply #'nconc (mapcar (lambda (dir) (and (not (member dir reject)) diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el index 54ab07e6e85..628ad8399ce 100644 --- a/lisp/pcmpl-cvs.el +++ b/lisp/pcmpl-cvs.el @@ -1,6 +1,7 @@ ;;; pcmpl-cvs.el --- functions for dealing with cvs completions -;; Copyright (C) 1999, 2000, 2002 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index 36713323075..bf7653618b8 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -1,6 +1,7 @@ ;;; pcmpl-gnu.el --- completions for GNU project tools -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el index bb77bf00231..02f840bee30 100644 --- a/lisp/pcmpl-linux.el +++ b/lisp/pcmpl-linux.el @@ -1,6 +1,7 @@ ;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el index 50c4906886f..5e9afcf51cb 100644 --- a/lisp/pcmpl-rpm.el +++ b/lisp/pcmpl-rpm.el @@ -1,6 +1,7 @@ ;;; pcmpl-rpm.el --- functions for dealing with rpm completions -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el index edbc1b28586..de9c143ae6f 100644 --- a/lisp/pcmpl-unix.el +++ b/lisp/pcmpl-unix.el @@ -1,6 +1,7 @@ ;;; pcmpl-unix.el --- standard UNIX completions -;; Copyright (C) 1999, 2000 Free Software Foundation +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index 3f0ffc54eeb..785c62290c4 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el @@ -1,6 +1,7 @@ ;;; pcomplete.el --- programmable completion -;; Copyright (C) 1999, 2000,01,02,03,04 Free Sofware Foundation +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +;; 2005 Free Sofware Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: processes abbrev diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el index 1e4c29f5583..3be6cbd9182 100644 --- a/lisp/pcvs-defs.el +++ b/lisp/pcvs-defs.el @@ -1,7 +1,7 @@ ;;; pcvs-defs.el --- variable definitions for PCL-CVS ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el index 0a48fc7d8e7..291e4ae85c4 100644 --- a/lisp/pcvs-info.el +++ b/lisp/pcvs-info.el @@ -1,7 +1,7 @@ ;;; pcvs-info.el --- internal representation of a fileinfo entry ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el index 1b08473d305..66c791db51c 100644 --- a/lisp/pcvs-parse.el +++ b/lisp/pcvs-parse.el @@ -1,7 +1,7 @@ ;;; pcvs-parse.el --- the CVS output parser ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2002, 2003, 2004 Free Software Foundation, Inc. +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el index 9531f06b3c6..1c4896435db 100644 --- a/lisp/pcvs-util.el +++ b/lisp/pcvs-util.el @@ -1,7 +1,7 @@ ;;; pcvs-util.el --- utility functions for PCL-CVS -*- byte-compile-dynamic: t -*- ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs @@ -188,7 +188,7 @@ arguments. If ARGS is not a list, no argument will be passed." "Concatenate the STRINGS, adding the SEPARATOR (default \" \"). This tries to quote the strings to avoid ambiguity such that (cvs-string->strings (cvs-strings->string strs)) == strs -Only some SEPARATOR will work properly." +Only some SEPARATORs will work properly." (let ((sep (or separator " "))) (mapconcat (lambda (str) @@ -277,7 +277,7 @@ The SEPARATOR regexp defaults to \"\\s-+\"." (defun cvs-flags-query (sym &optional desc arg) "Query flags based on SYM. -Optional argument DESC will be used for the prompt +Optional argument DESC will be used for the prompt. If ARG (or a prefix argument) is nil, just use the 0th default. If it is a non-negative integer, use the corresponding default. If it is a negative integer query for a new value of the corresponding @@ -382,7 +382,7 @@ If ARG is nil toggle the PREFIX's value between its 0th default and nil (defun cvs-prefix-get (sym &optional read-only) "Return the current value of the prefix SYM. -and reset it unless READ-ONLY is non-nil." +And reset it unless READ-ONLY is non-nil." (prog1 (symbol-value sym) (unless (or read-only (cvs-flags-persist (symbol-value (cvs-prefix-sym sym)))) diff --git a/lisp/pcvs.el b/lisp/pcvs.el index 34a93a1d659..f5564155ff7 100644 --- a/lisp/pcvs.el +++ b/lisp/pcvs.el @@ -1,7 +1,7 @@ ;;; pcvs.el --- a front-end to CVS ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com ;; (Per Cederqvist) ceder@lysator.liu.se diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index f76ad703fe7..855de92ffc0 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el @@ -1,6 +1,7 @@ ;;; 5x5.el --- simple little puzzle game -;; Copyright (C) 1999,2000,2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Dave Pearson <davep@davep.org> ;; Maintainer: Dave Pearson <davep@davep.org> diff --git a/lisp/play/animate.el b/lisp/play/animate.el index 8e45bafc51c..662adf119b7 100644 --- a/lisp/play/animate.el +++ b/lisp/play/animate.el @@ -1,6 +1,6 @@ ;;; animate.el --- make text dance -;; Copyright (C) 2001,2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: Richard Stallman <rms@gnu.org> ;; Keywords: games diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el index ccb90f3b664..ffde5c46021 100644 --- a/lisp/play/blackbox.el +++ b/lisp/play/blackbox.el @@ -1,6 +1,7 @@ ;;; blackbox.el --- blackbox game in Emacs Lisp -;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: F. Thomas May <uw-nsr!uw-warp!tom@beaver.cs.washington.edu> ;; Adapted-By: ESR diff --git a/lisp/play/bruce.el b/lisp/play/bruce.el index f91484d4c2d..7774e29f2a4 100644 --- a/lisp/play/bruce.el +++ b/lisp/play/bruce.el @@ -1,7 +1,8 @@ ;;; bruce.el --- bruce phrase utility for overloading the Communications -*- no-byte-compile: t -*- ;;; Decency Act snoops, if any. -;; Copyright (C) 1988, 1993, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el index 3ff307562ed..7f17274a68d 100644 --- a/lisp/play/cookie1.el +++ b/lisp/play/cookie1.el @@ -1,6 +1,6 @@ ;;; cookie1.el --- retrieve random phrases from fortune cookie files -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el index 263ee14652a..6471e23b5f2 100644 --- a/lisp/play/decipher.el +++ b/lisp/play/decipher.el @@ -1,6 +1,7 @@ ;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers ;; -;; Copyright (C) 1995, 1996, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Christopher J. Madsen <chris_madsen@geocities.com> ;; Keywords: games diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el index e2ed98ec730..cd19a716864 100644 --- a/lisp/play/dissociate.el +++ b/lisp/play/dissociate.el @@ -1,6 +1,6 @@ ;;; dissociate.el --- scramble text amusingly for Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index d2b8156b15a..ea502646e61 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el @@ -1,6 +1,7 @@ ;;; doctor.el --- psychological help for frustrated users -;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games @@ -45,6 +46,36 @@ ;;; Code: +(eval-when-compile + (defvar **mad**) (defvar *debug*) (defvar *print-space*) + (defvar *print-upcase*) (defvar abuselst) (defvar abusewords) + (defvar account) (defvar afraidof) (defvar arerelated) + (defvar areyou) (defvar bak) (defvar beclst) + (defvar bother) (defvar bye) (defvar canyou) + (defvar chatlst) (defvar continue) (defvar deathlst) + (defvar describe) (defvar drnk) (defvar drugs) + (defvar eliza-flag) (defvar elizalst) (defvar famlst) + (defvar feared) (defvar fears) (defvar feelings-about) + (defvar foullst) (defvar found) (defvar hello) + (defvar history) (defvar howareyoulst) (defvar howdyflag) + (defvar huhlst) (defvar ibelieve) (defvar improve) + (defvar inter) (defvar isee) (defvar isrelated) + (defvar lincount) (defvar longhuhlst) (defvar lover) + (defvar machlst) (defvar mathlst) (defvar maybe) + (defvar moods) (defvar neglst) (defvar obj) + (defvar object) (defvar owner) (defvar please) + (defvar problems) (defvar qlist) (defvar random-adjective) + (defvar relation) (defvar remlst) (defvar repetitive-shortness) + (defvar replist) (defvar rms-flag) (defvar schoollst) + (defvar sent) (defvar sexlst) (defvar shortbeclst) + (defvar shortlst) (defvar something) (defvar sportslst) + (defvar stallmanlst) (defvar states) (defvar subj) + (defvar suicide-flag) (defvar sure) (defvar things) + (defvar thlst) (defvar toklst) (defvar typos) + (defvar verb) (defvar want) (defvar whatwhen) + (defvar whereoutp) (defvar whysay) (defvar whywant) + (defvar zippy-flag) (defvar zippylst)) + (defun doc// (x) x) (defmacro doc$ (what) @@ -1369,7 +1400,7 @@ Hack on previous word, setting global variable OWNER to correct result." (cond ((or (string-match "^[.,;:?! ]" word) (not *print-space*)) (insert word)) - (t (insert ?\ word))) + (t (insert ?\s word))) (and auto-fill-function (> (current-column) fill-column) (apply auto-fill-function nil)) diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el index 1d1adb81bf8..62a30d34191 100644 --- a/lisp/play/dunnet.el +++ b/lisp/play/dunnet.el @@ -1,6 +1,7 @@ ;;; dunnet.el --- text adventure for Emacs -;; Copyright (C) 1992, 1993, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ron Schnell <ronnie@driver-aces.com> ;; Created: 25 Jul 1992 diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el index f6c5ec3571f..3524eeb5294 100644 --- a/lisp/play/fortune.el +++ b/lisp/play/fortune.el @@ -1,6 +1,7 @@ ;;; fortune.el --- use fortune to create signatures -;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Holger Schauer <Holger.Schauer@gmx.de> ;; Keywords: games utils mail diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index df68343ddc2..ee64c178414 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -1,6 +1,7 @@ ;;; gamegrid.el --- library for implementing grid-based games on Emacs -;; Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Version: 1.02 @@ -179,9 +180,7 @@ static unsigned char gamegrid_bits[] = { (defun gamegrid-make-mono-tty-face () (let ((face (make-face 'gamegrid-mono-tty-face))) - (condition-case nil - (set-face-property face 'reverse t) - (error nil)) + (set-face-inverse-video-p face t) face)) (defun gamegrid-make-color-tty-face (color) @@ -298,7 +297,7 @@ static unsigned char gamegrid_bits[] = { 'emacs-tty))) (defun gamegrid-set-display-table () - (if (fboundp 'specifierp) + (if (featurep 'xemacs) (add-spec-to-specifier current-display-table gamegrid-display-table (current-buffer) @@ -409,7 +408,7 @@ static unsigned char gamegrid_bits[] = { (defun gamegrid-set-timer (delay) (if gamegrid-timer - (if (featurep 'itimer) + (if (fboundp 'set-itimer-restart) (set-itimer-restart gamegrid-timer delay) (timer-set-time gamegrid-timer (list (aref gamegrid-timer 1) @@ -475,25 +474,27 @@ FILE is created there." ;; FILE in the user's home directory. There is presumably no ;; shared game directory. +(defvar gamegrid-shared-game-dir) + (defun gamegrid-add-score-with-update-game-score (file score) (let* ((result nil) ;; What is this good for? -- os - (have-shared-game-dir + (gamegrid-shared-game-dir (not (zerop (logand (file-modes (expand-file-name "update-game-score" exec-directory)) #o4000))))) (cond ((file-name-absolute-p file) (gamegrid-add-score-insecure file score)) - ((and have-shared-game-dir + ((and gamegrid-shared-game-dir (file-exists-p (expand-file-name file shared-game-score-directory))) ;; Use the setuid "update-game-score" program to update a ;; system-wide score file. - (gamegrid-add-score-with-update-game-score-1 + (gamegrid-add-score-with-update-game-score-1 file (expand-file-name file shared-game-score-directory) score)) ;; Else: Add the score to a score file in the user's home ;; directory. - (have-shared-game-dir - ;; If `have-shared-game-dir' is non-nil, then + (gamegrid-shared-game-dir + ;; If `gamegrid-shared-game-dir' is non-nil, then ;; "update-gamescore" program is setuid, so don't use it. (unless (file-exists-p (directory-file-name gamegrid-user-score-file-directory)) @@ -509,9 +510,9 @@ FILE is created there." (setq f (expand-file-name file f)) (unless (file-exists-p f) (write-region "" nil f nil 'silent nil 'excl))) - (gamegrid-add-score-with-update-game-score-1 f score)))))) + (gamegrid-add-score-with-update-game-score-1 file f score)))))) -(defun gamegrid-add-score-with-update-game-score-1 (target score) +(defun gamegrid-add-score-with-update-game-score-1 (file target score) (let ((default-directory "/") (errbuf (generate-new-buffer " *update-game-score loss*"))) (apply @@ -521,7 +522,7 @@ FILE is created there." (expand-file-name "update-game-score" exec-directory) nil errbuf nil "-m" (int-to-string gamegrid-score-file-length) - "-d" (if have-shared-game-dir + "-d" (if gamegrid-shared-game-dir (expand-file-name shared-game-score-directory) (file-name-directory target)) file diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el index 78add5932f3..9e80024c90b 100644 --- a/lisp/play/gametree.el +++ b/lisp/play/gametree.el @@ -1,6 +1,7 @@ ;;; gametree.el --- manage game analysis trees in Emacs -;; Copyright (C) 1997, 1999 Free Software Foundation, Inc +;; Copyright (C) 1997, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ian T Zimmerman <itz@rahul.net> ;; Created: Wed Dec 10 07:41:46 PST 1997 @@ -573,9 +574,9 @@ Useful to postal and email chess (and, it is hoped, also checkers, go, shogi, etc.) players, it is a slightly modified version of Outline mode. \\{gametree-mode-map}" -(auto-fill-mode 0) -(make-variable-buffer-local 'write-contents-hooks) -(add-hook 'write-contents-hooks 'gametree-save-and-hack-layout)) + (auto-fill-mode 0) + (make-local-variable 'write-contents-hooks) + (add-hook 'write-contents-hooks 'gametree-save-and-hack-layout)) ;;;; Key bindings diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el index 74ddfd3539c..e9f7a07abe9 100644 --- a/lisp/play/gomoku.el +++ b/lisp/play/gomoku.el @@ -1,6 +1,7 @@ ;;; gomoku.el --- Gomoku game between you and Emacs -;; Copyright (C) 1988, 1994, 1996, 2001, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> ;; Maintainer: FSF @@ -164,15 +165,11 @@ One useful value to include is `turn-on-font-lock' to highlight the pieces." '((((class color)) (:foreground "red" :weight bold))) "Face to use for Emacs' O." :group 'gomoku) -;; backward-compatibility alias -(put 'gomoku-font-lock-O-face 'face-alias 'gomoku-O) (defface gomoku-X '((((class color)) (:foreground "green" :weight bold))) "Face to use for your X." :group 'gomoku) -;; backward-compatibility alias -(put 'gomoku-font-lock-X-face 'face-alias 'gomoku-X) (defvar gomoku-font-lock-keywords '(("O" . 'gomoku-O) diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el index 2d668f84485..066832e7eb3 100644 --- a/lisp/play/handwrite.el +++ b/lisp/play/handwrite.el @@ -1,6 +1,6 @@ ;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*- -;; (C) Copyright 1996, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Danny Roozendaal (was: <danny@tvs.kun.nl>) ;; Created: October 21 1996 @@ -69,6 +69,9 @@ ;;; Code: +(defvar ps-printer-name) +(defvar ps-lpr-command) + ;; Variables diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el index feab5de1bc3..4da291d4505 100644 --- a/lisp/play/landmark.el +++ b/lisp/play/landmark.el @@ -1,6 +1,7 @@ ;;; landmark.el --- neural-network robot that learns landmarks -;; Copyright (c) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Terrence Brannon (was: <brannon@rana.usc.edu>) ;; Created: December 16, 1996 - first release to usenet diff --git a/lisp/play/life.el b/lisp/play/life.el index df678d9ecdf..56f10ff2581 100644 --- a/lisp/play/life.el +++ b/lisp/play/life.el @@ -1,6 +1,7 @@ ;;; life.el --- John Horton Conway's `Life' game for GNU Emacs -;; Copyright (C) 1988, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kyle Jones <kyleuunet.uu.net> ;; Maintainer: FSF diff --git a/lisp/play/morse.el b/lisp/play/morse.el index 1e3c43cbf80..ae3533227e4 100644 --- a/lisp/play/morse.el +++ b/lisp/play/morse.el @@ -1,6 +1,6 @@ ;;; morse.el --- convert text to morse code and back -*- coding: utf-8 -*- -;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Rick Farnbach <rick_farnbach@MENTORG.COM> ;; Keywords: games diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el index 22d4216ab0e..948ae126ffa 100644 --- a/lisp/play/mpuz.el +++ b/lisp/play/mpuz.el @@ -1,6 +1,6 @@ ;;; mpuz.el --- multiplication puzzle for GNU Emacs -;; Copyright (C) 1990, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> ;; Overhauled: Daniel Pfeiffer <occitan@esperanto.org> @@ -62,31 +62,23 @@ t means never ding, and `error' means only ding on wrong input." (t (:bold t))) "*Face to use for letters to be solved." :group 'mpuz) -;; backward-compatibility alias -(put 'mpuz-unsolved-face 'face-alias 'mpuz-unsolved) (defface mpuz-solved '((((class color)) (:foreground "green1" :bold t)) (t (:bold t))) "*Face to use for solved digits." :group 'mpuz) -;; backward-compatibility alias -(put 'mpuz-solved-face 'face-alias 'mpuz-solved) (defface mpuz-trivial '((((class color)) (:foreground "blue" :bold t)) (t (:bold t))) "*Face to use for trivial digits solved for you." :group 'mpuz) -;; backward-compatibility alias -(put 'mpuz-trivial-face 'face-alias 'mpuz-trivial) (defface mpuz-text '((t (:inherit variable-pitch))) "*Face to use for text on right." :group 'mpuz) -;; backward-compatibility alias -(put 'mpuz-text-face 'face-alias 'mpuz-text) ;; Mpuz mode and keymaps diff --git a/lisp/play/pong.el b/lisp/play/pong.el index 00f740a5f08..e4931c63088 100644 --- a/lisp/play/pong.el +++ b/lisp/play/pong.el @@ -1,6 +1,7 @@ ;;; pong.el --- classical implementation of pong -;; Copyright 1999, 2000, 2001, 2005 by Free Software Foundation, Inc. +;; Copyright 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Benjamin Drieu <bdrieu@april.org> ;; Keywords: games diff --git a/lisp/play/snake.el b/lisp/play/snake.el index 8909f3fada2..9f2f9c62098 100644 --- a/lisp/play/snake.el +++ b/lisp/play/snake.el @@ -1,6 +1,6 @@ ;;; snake.el --- implementation of Snake for Emacs -;; Copyright (C) 1997, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Created: 1997-09-10 @@ -370,15 +370,16 @@ Snake mode keybindings: (setq major-mode 'snake-mode) (setq mode-name "Snake") - (setq mode-popup-menu - '("Snake Commands" - ["Start new game" snake-start-game] - ["End game" snake-end-game - (snake-active-p)] - ["Pause" snake-pause-game - (and (snake-active-p) (not snake-paused))] - ["Resume" snake-pause-game - (and (snake-active-p) snake-paused)])) + (unless (featurep 'emacs) + (setq mode-popup-menu + '("Snake Commands" + ["Start new game" snake-start-game] + ["End game" snake-end-game + (snake-active-p)] + ["Pause" snake-pause-game + (and (snake-active-p) (not snake-paused))] + ["Resume" snake-pause-game + (and (snake-active-p) snake-paused)]))) (setq gamegrid-use-glyphs snake-use-glyphs-flag) (setq gamegrid-use-color snake-use-color-flag) diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el index 3c36b0e0464..2e20a737e08 100644 --- a/lisp/play/solitaire.el +++ b/lisp/play/solitaire.el @@ -1,6 +1,6 @@ ;;; solitaire.el --- game of solitaire in Emacs Lisp -;; Copyright (C) 1994, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jan Schormann <Jan.Schormann@rechen-gilde.de> ;; Created: Fri afternoon, Jun 3, 1994 diff --git a/lisp/play/spook.el b/lisp/play/spook.el index a19140e9657..0979f6a0043 100644 --- a/lisp/play/spook.el +++ b/lisp/play/spook.el @@ -1,6 +1,7 @@ ;;; spook.el --- spook phrase utility for overloading the NSA line eater -;; Copyright (C) 1988, 1993 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index 7ef997a9865..839046a9613 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el @@ -1,6 +1,6 @@ ;;; tetris.el --- implementation of Tetris for Emacs -;; Copyright (C) 1997, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Version: 2.01 @@ -601,15 +601,16 @@ tetris-mode keybindings: (setq major-mode 'tetris-mode) (setq mode-name "Tetris") - (setq mode-popup-menu - '("Tetris Commands" - ["Start new game" tetris-start-game] - ["End game" tetris-end-game - (tetris-active-p)] - ["Pause" tetris-pause-game - (and (tetris-active-p) (not tetris-paused))] - ["Resume" tetris-pause-game - (and (tetris-active-p) tetris-paused)])) + (unless (featurep 'emacs) + (setq mode-popup-menu + '("Tetris Commands" + ["Start new game" tetris-start-game] + ["End game" tetris-end-game + (tetris-active-p)] + ["Pause" tetris-pause-game + (and (tetris-active-p) (not tetris-paused))] + ["Resume" tetris-pause-game + (and (tetris-active-p) tetris-paused)]))) (setq gamegrid-use-glyphs tetris-use-glyphs) (setq gamegrid-use-color tetris-use-color) diff --git a/lisp/play/yow.el b/lisp/play/yow.el index 794271fd952..2809e3ec620 100644 --- a/lisp/play/yow.el +++ b/lisp/play/yow.el @@ -1,6 +1,7 @@ ;;; yow.el --- quote random zippyisms -;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Author: Richard Mlynarik diff --git a/lisp/play/zone.el b/lisp/play/zone.el index a075729ab99..876490b1f9a 100644 --- a/lisp/play/zone.el +++ b/lisp/play/zone.el @@ -1,6 +1,7 @@ ;;; zone.el --- idle display hacks -;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Victor Zandy <zandy@cs.wisc.edu> ;; Maintainer: Thien-Thi Nguyen <ttn@gnu.org> @@ -622,7 +623,7 @@ If the element is a function or a list of a function and a number, (sit-for 3) (erase-buffer) (sit-for 3) - (insert-buffer "*Messages*") + (insert-buffer-substring "*Messages*") (message "") (goto-char (point-max)) (recenter -1) diff --git a/lisp/printing.el b/lisp/printing.el index c73242961cf..eabca64f085 100644 --- a/lisp/printing.el +++ b/lisp/printing.el @@ -1,7 +1,6 @@ ;;; printing.el --- printing utilities -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index fdb1a9d69f7..3b6a6d611d2 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el @@ -1,7 +1,7 @@ ;;; ada-mode.el --- major-mode for editing Ada sources -;; Copyright (C) 1994, 95, 97, 98, 99, 2000, 2001, 2002, 03, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rolf Ebert <ebert@inf.enst.fr> ;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> @@ -133,6 +133,9 @@ (require 'which-func nil t) (require 'compile nil t)) +(defvar compile-auto-highlight) +(defvar skeleton-further-elements) + ;; this function is needed at compile time (eval-and-compile (defun ada-check-emacs-version (major minor &optional is-xemacs) @@ -1280,7 +1283,7 @@ If you use ada-xref.el: (progn (add-to-list 'align-dq-string-modes 'ada-mode) (add-to-list 'align-open-comment-modes 'ada-mode) - (set (make-variable-buffer-local 'align-region-separate) + (set (make-local-variable 'align-region-separate) ada-align-region-separate) ;; Exclude comments alone on line from alignment. @@ -5349,7 +5352,8 @@ spec buffer in here and modify it to make it a body. This function typically is to be hooked into `ff-file-created-hooks'." (interactive) (delete-region (point-min) (point-max)) - (insert-buffer (car (cdr (buffer-list)))) + (insert-buffer-substring (car (cdr (buffer-list)))) + (goto-char (point-min)) (ada-mode) (let (found ada-procedure-or-package-start-regexp) diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el index 05d965be887..91adf1ed187 100644 --- a/lisp/progmodes/ada-prj.el +++ b/lisp/progmodes/ada-prj.el @@ -1,6 +1,7 @@ ;;; ada-prj.el --- easy editing of project files for the ada-mode -;; Copyright (C) 1998, 99, 2000-2003 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Emmanuel Briot <briot@gnat.com> ;; Keywords: languages, ada, project file @@ -476,7 +477,8 @@ connect to the target when working with cross-environments" t) (widget-insert "\n\n") (widget-setup) - (beginning-of-buffer) + (with-no-warnings + (beginning-of-buffer)) ) diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el index 362ec87ba04..87825b1d624 100644 --- a/lisp/progmodes/ada-stmt.el +++ b/lisp/progmodes/ada-stmt.el @@ -1,7 +1,7 @@ ;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates -;; Copyright(C) 1987, 93, 94, 96, 97, 98, 99, 2000 -;; Free Software Foundation, Inc. +;; Copyright(C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el index 4210bfd68fe..74b5694e8c3 100644 --- a/lisp/progmodes/ada-xref.el +++ b/lisp/progmodes/ada-xref.el @@ -1,7 +1,7 @@ ;;; ada-xref.el --- for lookup and completion in Ada mode -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> ;; Rolf Ebert <ebert@inf.enst.fr> diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index c2a8d7a4c57..229bec56dd5 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -1,6 +1,7 @@ ;;; antlr-mode.el --- major mode for ANTLR grammar files -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; ;; Author: Christoph.Wedler@sap.com ;; Keywords: languages, ANTLR, code generator @@ -828,7 +829,7 @@ in the grammar's actions and semantic predicates, see `antlr-font-lock-maximum-decoration'.") (defvar antlr-default-face 'antlr-default) -(defface antlr-default +(defface antlr-default nil "Face to prevent strings from language dependent highlighting. Do not change." :group 'antlr) @@ -924,7 +925,7 @@ group. The string matched by the first group is highlighted with ("\\$\\sw+" (0 keyword-face)) ;; the tokens are already fontified as string/docstrings: (,(lambda (limit) - (if antlr-literal-regexp + (if antlr-font-lock-literal-regexp (antlr-re-search-forward antlr-font-lock-literal-regexp limit))) (1 antlr-literal-face t) :XEMACS (0 nil)) ; XEmacs bug workaround @@ -2240,9 +2241,8 @@ called interactively, the buffers are always saved, see also variable (interactive (antlr-run-tool-interactive)) (or saved (save-some-buffers (not antlr-ask-about-save))) (let ((default-directory (file-name-directory file))) - (require 'compile) ; only `compile' autoload - (compile-internal (concat command " " (file-name-nondirectory file)) - "No more errors" "Antlr-Run"))) + (compilation-start (concat command " " (file-name-nondirectory file)) + nil #'(lambda (mode-name) "*Antlr-Run*")))) (defun antlr-run-tool-interactive () ;; code in `interactive' is not compiled diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el index 94ac76c0686..dc3984e089e 100644 --- a/lisp/progmodes/asm-mode.el +++ b/lisp/progmodes/asm-mode.el @@ -1,6 +1,7 @@ ;;; asm-mode.el --- mode for editing assembler code -;; Copyright (C) 1991, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF @@ -204,7 +205,8 @@ repeatedly until you are satisfied with the kind of comment." (let (comempty comment) (save-excursion (beginning-of-line) - (setq comment (comment-search-forward (line-end-position) t)) + (with-no-warnings + (setq comment (comment-search-forward (line-end-position) t))) (setq comempty (looking-at "[ \t]*$"))) (cond diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el index 75b969d9350..2949b2da92f 100644 --- a/lisp/progmodes/autoconf.el +++ b/lisp/progmodes/autoconf.el @@ -1,6 +1,7 @@ ;;; autoconf.el --- mode for editing Autoconf configure.in files -;; Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: languages @@ -37,6 +38,8 @@ ;;; Code: +(defvar font-lock-syntactic-keywords) + (defvar autoconf-mode-map (make-sparse-keymap)) (defvar autoconf-mode-hook nil diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el index 849e98053ad..36b4fd2545c 100644 --- a/lisp/progmodes/cc-align.el +++ b/lisp/progmodes/cc-align.el @@ -1,6 +1,6 @@ ;;; cc-align.el --- custom indentation functions for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index 5a770a9bcb2..995dc48c1ae 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el @@ -1,6 +1,7 @@ ;;; cc-awk.el --- AWK specific code within cc-mode. -;; Copyright (C) 1988,94,96,2000,01,02,03 Free Software Foundation, Inc. +;; Copyright (C) 1988, 94, 96, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el) ;; Maintainer: FSF diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el index 78393e93fc9..ae7adb92edb 100644 --- a/lisp/progmodes/cc-bytecomp.el +++ b/lisp/progmodes/cc-bytecomp.el @@ -1,6 +1,7 @@ ;;; cc-bytecomp.el --- compile time setup for proper compilation -;; Copyright (C) 2000, 01, 02, 03 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Martin Stjernholm ;; Maintainer: bug-cc-mode@gnu.org diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index d46281b726d..039ef3ccebf 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el @@ -1,6 +1,6 @@ ;;; cc-cmds.el --- user level commands for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-compat.el b/lisp/progmodes/cc-compat.el index 8458ab9d605..60dcbd135d8 100644 --- a/lisp/progmodes/cc-compat.el +++ b/lisp/progmodes/cc-compat.el @@ -1,6 +1,6 @@ ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1994-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 96e7a093f55..a78fd8f7f74 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el @@ -1,6 +1,6 @@ ;;; cc-defs.el --- compile time definitions for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index e9ed474e792..71dc39a56e9 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -1,6 +1,6 @@ ;;; cc-engine.el --- core syntax guessing engine for CC mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw @@ -5599,6 +5599,7 @@ brace." containing-sexp paren-state)) ))) +;;;###autoload (defun c-guess-basic-syntax () "Return the syntactic context of the current line. This function does not do any hidden buffer changes." diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 410637237cd..95e4e5226f0 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1,6 +1,6 @@ ;;; cc-fonts.el --- font lock support for CC Mode -;; Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 2002- Martin Stjernholm diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index b080b3eac75..27753aa69c9 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -1,6 +1,6 @@ ;;; cc-langs.el --- language specific settings for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el index 27ce9d6deb7..6de4aa8c79c 100644 --- a/lisp/progmodes/cc-menus.el +++ b/lisp/progmodes/cc-menus.el @@ -1,6 +1,6 @@ ;;; cc-menus.el --- imenu support for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 0f17a003ef4..8f5670ed57b 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -1,6 +1,6 @@ ;;; cc-mode.el --- major mode for editing C and similar languages -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el index c48956295b8..f0a7a2c4b7c 100644 --- a/lisp/progmodes/cc-styles.el +++ b/lisp/progmodes/cc-styles.el @@ -1,6 +1,6 @@ ;;; cc-styles.el --- support for styles in CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index f8d4d6e125d..b6a3c404957 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -1,6 +1,6 @@ ;;; cc-vars.el --- user customization variables for CC Mode -;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el index fd64a59c996..a4b0389ab86 100644 --- a/lisp/progmodes/cfengine.el +++ b/lisp/progmodes/cfengine.el @@ -1,6 +1,6 @@ ;;; cfengine.el --- mode for editing Cfengine files -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: languages diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index a49b9c3ac7a..e2bcf984586 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el @@ -1,6 +1,7 @@ ;;; cmacexp.el --- expand C macros in a region -;; Copyright (C) 1992, 1994, 1996, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004 +;; Free Software Foundation, Inc. ;; Author: Francesco Potorti` <pot@gnu.org> ;; Adapted-By: ESR @@ -92,6 +93,9 @@ (provide 'cmacexp) +(defvar msdos-shells) + + (defgroup c-macro nil "Expand C macros in a region." :group 'c) @@ -146,8 +150,9 @@ Normally display output in temp buffer, but prefix arg means replace the region with it. `c-macro-preprocessor' specifies the preprocessor to use. -Prompt for arguments to the preprocessor \(e.g. `-DDEBUG -I ./include') -if the user option `c-macro-prompt-flag' is non-nil. +Tf the user option `c-macro-prompt-flag' is non-nil +prompt for arguments to the preprocessor \(e.g. `-DDEBUG -I ./include'), +otherwise use `c-macro-cppflags'. Noninteractive args are START, END, SUBST. For use inside Lisp programs, see also `c-macro-expansion'." diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 21e7c74e965..6321216dcce 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1,7 +1,7 @@ ;;; compile.el --- run compiler as inferior of Emacs, parse error messages ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: Roland McGrath <roland@gnu.org>, ;; Daniel Pfeiffer <occitan@esperanto.org> @@ -70,6 +70,12 @@ (eval-when-compile (require 'cl)) +(defvar font-lock-extra-managed-props) +(defvar font-lock-keywords) +(defvar font-lock-maximum-size) +(defvar font-lock-support-mode) + + (defgroup compilation nil "Run compiler as inferior of Emacs, parse error messages." :group 'tools @@ -78,7 +84,7 @@ ;;;###autoload (defcustom compilation-mode-hook nil - "*List of hook functions run by `compilation-mode' (see `run-hooks')." + "*List of hook functions run by `compilation-mode' (see `run-mode-hooks')." :type 'hook :group 'compilation) @@ -287,11 +293,11 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" \\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3)) (gcov-file - "^ +-: \\(0\\):Source:\\(.+\\)$" 2 1 nil 0) + "^ +-: \\(0\\):Source:\\(.+\\)$" 2 1 nil 0) (gcov-bb-file - "^ +-: \\(0\\):Object:\\(?:.+\\)$" nil 1 nil 0) + "^ +-: \\(0\\):Object:\\(?:.+\\)$" nil 1 nil 0) (gcov-never-called-line - "^ +\\(#####\\): +\\([0-9]+\\):.+$" nil 2 nil 2 nil + "^ +\\(#####\\): +\\([0-9]+\\):.+$" nil 2 nil 2 nil (1 compilation-error-face)) (gcov-called-line "^ +[-0-9]+: +\\([1-9]\\|[0-9]\\{2,\\}\\):.*$" nil 1 nil 0) @@ -382,8 +388,11 @@ you may also want to change `compilation-page-delimiter'.") ("^\\([[:alnum:]_/.+-]+\\)\\(\\[\\([0-9]+\\)\\]\\)?[ \t]*:" (1 font-lock-function-name-face) (3 compilation-line-face nil t)) (" --?o\\(?:utfile\\|utput\\)?[= ]?\\(\\S +\\)" . 1) - ("^Compilation finished" . compilation-info-face) - ("^Compilation exited abnormally" . compilation-error-face)) + ("^Compilation \\(finished\\)" + (1 compilation-info-face)) + ("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?" + (1 compilation-error-face) + (2 compilation-error-face nil t))) "Additional things to highlight in Compilation mode. This gets tacked on the end of the generated expressions.") @@ -443,6 +452,14 @@ You might also use mode hooks to specify it in certain modes, like this: :type 'string :group 'compilation) +(defcustom compilation-disable-input nil + "*If non-nil, send end-of-file as compilation process input. +This only affects platforms that support asynchronous processes (see +`start-process'); synchronous compilation processes never accept input." + :type 'boolean + :group 'compilation + :version "22.1") + ;; A weak per-compilation-buffer hash indexed by (FILENAME . DIRECTORY). Each ;; value is a FILE-STRUCTURE as described above, with the car eq to the hash ;; key. This holds the tree seen from root, for storing new nodes. @@ -468,6 +485,12 @@ starting the compilation process.") ;; History of compile commands. (defvar compile-history nil) +(defface compilation-error + '((t :inherit font-lock-warning-face)) + "Face used to highlight compiler errors." + :group 'font-lock-highlighting-faces + :version "22.1") + (defface compilation-warning '((((class color) (min-colors 16)) (:foreground "Orange" :weight bold)) (((class color)) (:foreground "cyan" :weight bold)) @@ -475,8 +498,6 @@ starting the compilation process.") "Face used to highlight compiler warnings." :group 'font-lock-highlighting-faces :version "22.1") -;; backward-compatibility alias -(put 'compilation-warning-face 'face-alias 'compilation-warning) (defface compilation-info '((((class color) (min-colors 16) (background light)) @@ -487,74 +508,49 @@ starting the compilation process.") (:foreground "Green" :weight bold)) (((class color)) (:foreground "green" :weight bold)) (t (:weight bold))) - "Face used to highlight compiler warnings." - :group 'font-lock-highlighting-faces - :version "22.1") -;; backward-compatibility alias -(put 'compilation-info-face 'face-alias 'compilation-info) - -(defface compilation-error-file-name - '((default :inherit font-lock-warning-face) - (((supports :underline t)) :underline t)) - "Face for displaying file names in compilation errors." - :group 'font-lock-highlighting-faces - :version "22.1") - -(defface compilation-warning-file-name - '((default :inherit font-lock-warning-face) - (((supports :underline t)) :underline t)) - "Face for displaying file names in compilation errors." - :group 'font-lock-highlighting-faces - :version "22.1") - -(defface compilation-info-file-name - '((default :inherit compilation-info) - (((supports :underline t)) :underline t)) - "Face for displaying file names in compilation errors." + "Face used to highlight compiler information." :group 'font-lock-highlighting-faces :version "22.1") (defface compilation-line-number - '((default :inherit font-lock-variable-name-face) - (((supports :underline t)) :underline t)) - "Face for displaying file names in compilation errors." + '((t :inherit font-lock-variable-name-face)) + "Face for displaying line numbers in compiler messages." :group 'font-lock-highlighting-faces :version "22.1") (defface compilation-column-number - '((default :inherit font-lock-type-face) - (((supports :underline t)) :underline t)) - "Face for displaying file names in compilation errors." + '((t :inherit font-lock-type-face)) + "Face for displaying column numbers in compiler messages." :group 'font-lock-highlighting-faces :version "22.1") -(defvar compilation-message-face nil +(defvar compilation-message-face 'underline "Face name to use for whole messages. Faces `compilation-error-face', `compilation-warning-face', `compilation-info-face', `compilation-line-face' and `compilation-column-face' get prepended to this, when applicable.") -(defvar compilation-error-face 'compilation-error-file-name +(defvar compilation-error-face 'compilation-error "Face name to use for file name in error messages.") -(defvar compilation-warning-face 'compilation-warning-file-name +(defvar compilation-warning-face 'compilation-warning "Face name to use for file name in warning messages.") -(defvar compilation-info-face 'compilation-info-file-name +(defvar compilation-info-face 'compilation-info "Face name to use for file name in informational messages.") (defvar compilation-line-face 'compilation-line-number - "Face name to use for line number in message.") + "Face name to use for line numbers in compiler messages.") (defvar compilation-column-face 'compilation-column-number - "Face name to use for column number in message.") + "Face name to use for column numbers in compiler messages.") ;; same faces as dired uses (defvar compilation-enter-directory-face 'font-lock-function-name-face - "Face name to use for column number in message.") + "Face name to use for entering directory messages.") (defvar compilation-leave-directory-face 'font-lock-type-face - "Face name to use for column number in message.") + "Face name to use for leaving directory messages.") @@ -921,6 +917,7 @@ Otherwise, construct a buffer name from MODE-NAME." (compilation-start command nil name-function highlight-regexp))) (make-obsolete 'compile-internal 'compilation-start) +;;;###autoload (defun compilation-start (command &optional mode name-function highlight-regexp) "Run compilation command COMMAND (low level interface). If COMMAND starts with a cd command, that becomes the `default-directory'. @@ -928,7 +925,8 @@ The rest of the arguments are optional; for them, nil means use the default. MODE is the major mode to set in the compilation buffer. Mode may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'. -NAME-FUNCTION is a function called to name the buffer. +If NAME-FUNCTION is non-nil, call it with one argument (the mode name) +to determine the buffer name. If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight the matching section of the visited source line; the default is to use the @@ -987,7 +985,11 @@ Returns the compilation buffer created." ;; Output a mode setter, for saving and later reloading this buffer. (insert "-*- mode: " name-of-mode "; default-directory: " (prin1-to-string default-directory) - " -*-\n" command "\n") + " -*-\n" + (format "%s started at %s\n\n" + mode-name + (substring (current-time-string) 0 19)) + command "\n") (setq thisdir default-directory)) (set-buffer-modified-p nil)) ;; If we're already in the compilation buffer, go to the end @@ -1039,6 +1041,11 @@ Returns the compilation buffer created." (set-process-sentinel proc 'compilation-sentinel) (set-process-filter proc 'compilation-filter) (set-marker (process-mark proc) (point) outbuf) + (when compilation-disable-input + (condition-case nil + (process-send-eof proc) + ;; The process may have exited already. + (error nil))) (setq compilation-in-progress (cons proc compilation-in-progress))) ;; No asynchronous processes available. @@ -1158,6 +1165,8 @@ exited abnormally with code %d\n" (define-key map "\M-p" 'compilation-previous-error) (define-key map "\M-{" 'compilation-previous-file) (define-key map "\M-}" 'compilation-next-file) + (define-key map "\t" 'compilation-next-error) + (define-key map [backtab] 'compilation-previous-error) (define-key map " " 'scroll-up) (define-key map "\^?" 'scroll-down) @@ -1171,7 +1180,7 @@ exited abnormally with code %d\n" (define-key map [menu-bar compilation compilation-separator2] '("----" . nil)) (define-key map [menu-bar compilation compilation-grep] - '("Search Files (grep)" . grep)) + '("Search Files (grep)..." . grep)) (define-key map [menu-bar compilation compilation-recompile] '("Recompile" . recompile)) (define-key map [menu-bar compilation compilation-compile] @@ -1213,7 +1222,7 @@ from a different message." move point to the error message line and type \\[compile-goto-error]. To kill the compilation, type \\[kill-compilation]. -Runs `compilation-mode-hook' with `run-hooks' (which see). +Runs `compilation-mode-hook' with `run-mode-hooks' (which see). \\{compilation-mode-map}" (interactive) @@ -1230,9 +1239,9 @@ Runs `compilation-mode-hook' with `run-hooks' (which see). (defmacro define-compilation-mode (mode name doc &rest body) "This is like `define-derived-mode' without the PARENT argument. The parent is always `compilation-mode' and the customizable `compilation-...' -variables are also set from the name of the mode you have chosen, by replacing -the fist word, e.g `compilation-scroll-output' from `grep-scroll-output' if that -variable exists." +variables are also set from the name of the mode you have chosen, +by replacing the first word, e.g `compilation-scroll-output' from +`grep-scroll-output' if that variable exists." (let ((mode-name (replace-regexp-in-string "-mode\\'" "" (symbol-name mode)))) `(define-derived-mode ,mode compilation-mode ,name ,doc @@ -1511,7 +1520,7 @@ Prefix arg N says how many files to move backwards (or forwards, if negative)." (let ((buffer (compilation-find-buffer))) (if (get-buffer-process buffer) (interrupt-process (get-buffer-process buffer)) - (error "The compilation process is not running")))) + (error "The %s process is not running" (downcase mode-name))))) (defalias 'compile-mouse-goto-error 'compile-goto-error) @@ -1756,8 +1765,8 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user." marker) (let ((name (expand-file-name (read-file-name - (format "Find this error in: (default %s) " - filename) + (format "Find this %s in: (default %s) " + compilation-error filename) dir filename t)))) (if (file-directory-p name) (setq name (expand-file-name filename name))) diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 480c0a41602..f25d5c29081 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -1,6 +1,7 @@ ;;; cperl-mode.el --- Perl code editing commands for Emacs -;; Copyright (C) 1985,86,87,91,92,93,94,95,96,97,98,99,2000,03,2004,2005 +;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Ilya Zakharevich and Bob Olson @@ -67,6 +68,9 @@ ;;; Code: +(defvar vc-rcs-header) +(defvar vc-sccs-header) + ;; Some macros are needed for `defcustom' (eval-when-compile (condition-case nil @@ -1774,7 +1778,7 @@ char is \"{\", insert extra newline before only if (save-excursion (skip-chars-backward "$") (looking-at "\\(\\$\\$\\)*\\$\\([^\\$]\\|$\\)")) - (insert ?\ )) + (insert ?\s)) ;; Check whether we are in comment (if (and (save-excursion @@ -1870,7 +1874,7 @@ to nil." (let ((beg (save-excursion (beginning-of-line) (point))) (dollar (and (eq last-command-char ?$) (eq this-command 'self-insert-command))) - (delete (and (memq last-command-char '(?\ ?\n ?\t ?\f)) + (delete (and (memq last-command-char '(?\s ?\n ?\t ?\f)) (memq this-command '(self-insert-command newline)))) my do) (and (save-excursion @@ -1945,7 +1949,7 @@ to nil." (defun cperl-electric-pod () "Insert a POD chunk appropriate after a =POD directive." - (let ((delete (and (memq last-command-char '(?\ ?\n ?\t ?\f)) + (let ((delete (and (memq last-command-char '(?\s ?\n ?\t ?\f)) (memq this-command '(self-insert-command newline)))) head1 notlast name p really-delete over) (and (save-excursion @@ -2223,7 +2227,7 @@ key. Will untabify if `cperl-electric-backspace-untabify' is non-nil." (memq last-command '(cperl-electric-semi cperl-electric-terminator cperl-electric-lbrace)) - (memq (preceding-char) '(?\ ?\t ?\n))) + (memq (preceding-char) '(?\s ?\t ?\n))) (let (p) (if (eq last-command 'cperl-electric-lbrace) (skip-chars-forward " \t\n")) @@ -2235,7 +2239,7 @@ key. Will untabify if `cperl-electric-backspace-untabify' is non-nil." (setq this-command 'cperl-electric-else-really)) (if (and cperl-auto-newline (eq last-command 'cperl-electric-else-really) - (memq (preceding-char) '(?\ ?\t ?\n))) + (memq (preceding-char) '(?\s ?\t ?\n))) (let (p) (skip-chars-forward " \t\n") (setq p (point)) @@ -3038,7 +3042,7 @@ Returns true if comment is found." (progn (setq i (point) i2 i) (if ender - (if (memq (following-char) '(?\ ?\t ?\n ?\f)) + (if (memq (following-char) '(?\s ?\t ?\n ?\f)) (progn (if (looking-at "[ \t\n\f]+\\(#[^\n]*\n[ \t\n\f]*\\)+") (goto-char (match-end 0)) @@ -4030,7 +4034,7 @@ Returns some position at the last line." (setq p (point)) (skip-chars-forward " \t\n") (delete-region p (point)) - (insert (make-string cperl-indent-region-fix-constructs ?\ )) + (insert (make-string cperl-indent-region-fix-constructs ?\s)) (beginning-of-line))) ;; Looking at: ;; } else @@ -4038,7 +4042,7 @@ Returns some position at the last line." (progn (search-forward "}") (delete-horizontal-space) - (insert (make-string cperl-indent-region-fix-constructs ?\ )) + (insert (make-string cperl-indent-region-fix-constructs ?\s)) (beginning-of-line))) ;; Looking at: ;; else { @@ -4047,7 +4051,7 @@ Returns some position at the last line." (progn (forward-word 1) (delete-horizontal-space) - (insert (make-string cperl-indent-region-fix-constructs ?\ )) + (insert (make-string cperl-indent-region-fix-constructs ?\s)) (beginning-of-line))) ;; Looking at: ;; foreach my $var @@ -4056,7 +4060,7 @@ Returns some position at the last line." (progn (forward-word 2) (delete-horizontal-space) - (insert (make-string cperl-indent-region-fix-constructs ?\ )) + (insert (make-string cperl-indent-region-fix-constructs ?\s)) (beginning-of-line))) ;; Looking at: ;; foreach my $var ( @@ -4066,7 +4070,7 @@ Returns some position at the last line." (forward-sexp 3) (delete-horizontal-space) (insert - (make-string cperl-indent-region-fix-constructs ?\ )) + (make-string cperl-indent-region-fix-constructs ?\s)) (beginning-of-line))) ;; Looking at: ;; } foreach my $var () { @@ -4110,7 +4114,7 @@ Returns some position at the last line." (cperl-fix-line-spacing end parse-data) (setq ret (point))))) (insert - (make-string cperl-indent-region-fix-constructs ?\ )))) + (make-string cperl-indent-region-fix-constructs ?\s)))) ((and (looking-at "[ \t]*\n") (not (if ml cperl-extra-newline-before-brace-multiline @@ -4119,7 +4123,7 @@ Returns some position at the last line." (skip-chars-forward " \t\n") (delete-region pp (point)) (insert - (make-string cperl-indent-region-fix-constructs ?\ )))) + (make-string cperl-indent-region-fix-constructs ?\s)))) ;; Now we are before `{' (if (looking-at "[ \t\n]*{[ \t]*[^ \t\n#]") (progn @@ -4296,7 +4300,7 @@ indentation and initial hashes. Behaves usually outside of comment." (looking-at "#+[ \t]*") (setq start (point) c (current-column) comment-fill-prefix - (concat (make-string (current-column) ?\ ) + (concat (make-string (current-column) ?\s) (buffer-substring (match-beginning 0) (match-end 0))) spaces (progn (skip-chars-backward " \t") (buffer-substring (point) start)) @@ -5448,7 +5452,7 @@ Will not move the position at the start to the left." (setq e (point)) (skip-chars-backward " \t") (delete-region (point) e) - (indent-to-column col) ;(make-string (- col (current-column)) ?\ )) + (indent-to-column col) ;(make-string (- col (current-column)) ?\s)) (beginning-of-line 2) (and (< (point) end) (re-search-forward search end t) diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el index 41ccc641223..c615082814a 100644 --- a/lisp/progmodes/cpp.el +++ b/lisp/progmodes/cpp.el @@ -1,6 +1,7 @@ ;;; cpp.el --- highlight or hide text according to cpp conditionals -;; Copyright (C) 1994, 1995, 2003 Free Software Foundation +;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: c, faces, tools diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el index 2cc4d1bda77..9ffc1497271 100644 --- a/lisp/progmodes/cwarn.el +++ b/lisp/progmodes/cwarn.el @@ -1,6 +1,7 @@ ;;; cwarn.el --- highlight suspicious C and C++ constructions -;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Keywords: c, languages, faces diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index 90a4e0a959f..c7115eed2ae 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el @@ -1,6 +1,7 @@ ;;; dcl-mode.el --- major mode for editing DCL command files -;; Copyright (c) 1997 Free Software Foundation, Inc. +;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Odd Gripenstam <gripenstamol@decus.se> ;; Maintainer: Odd Gripenstam <gripenstamol@decus.se> diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el index 3a558fdb0cd..0c94120a0f8 100644 --- a/lisp/progmodes/delphi.el +++ b/lisp/progmodes/delphi.el @@ -1,6 +1,7 @@ ;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs -;; Copyright (C) 1998, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Ray Blaak <blaak@infomatch.com> ;; Keywords: languages diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el index c95959c709f..a1b3658c0b4 100644 --- a/lisp/progmodes/ebnf-abn.el +++ b/lisp/progmodes/ebnf-abn.el @@ -1,6 +1,6 @@ ;;; ebnf-abn.el --- parser for ABNF (Augmented BNF) -;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el index 43c0ca20efb..4a596154c43 100644 --- a/lisp/progmodes/ebnf-dtd.el +++ b/lisp/progmodes/ebnf-dtd.el @@ -1,6 +1,6 @@ ;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML) -;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el index c42ab70f747..ada523c6c34 100644 --- a/lisp/progmodes/ebnf-ebx.el +++ b/lisp/progmodes/ebnf-ebx.el @@ -1,6 +1,6 @@ ;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX) -;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el index d450addca5d..4beeaa8ad8f 100644 --- a/lisp/progmodes/ebnf-otz.el +++ b/lisp/progmodes/ebnf-otz.el @@ -1,6 +1,6 @@ ;;; ebnf-otz.el --- syntactic chart OpTimiZer -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 ;; Free Sofware Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index 075e7fa9f17..49d0207882c 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -1,7 +1,8 @@ ;;; ebrowse.el --- Emacs C++ class browser & tags facility -;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2005 -;; Free Software Foundation Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +;; 2002, 2003, 2004, 2005 +;; Free Software Foundation Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: FSF diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 02fa54d0a3e..54b4cda9d18 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1,6 +1,7 @@ ;;; etags.el --- etags facility for Emacs -;; Copyright (C) 1985, 86, 88, 89, 92, 93, 94, 95, 96, 98, 2000, 2001 +;; Copyright (C) 1985, 1986, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998, +;; 2000, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index fd291ef4375..615e9d0ae93 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -1,6 +1,7 @@ ;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1994, 1995, 1996, 2000, 2003, 2004 by Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: languages, unix diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index 99d33553f53..5e2a3705ef3 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el @@ -1,6 +1,7 @@ ;;; f90.el --- Fortran-90 mode (free format) -;; Copyright (C) 1995, 1996, 1997, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se> ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> @@ -1790,7 +1791,8 @@ Any other key combination is executed normally." (let (char event) (if (fboundp 'next-command-event) ; XEmacs (setq event (next-command-event) - char (event-to-character event)) + char (and (fboundp 'event-to-character) + (event-to-character event))) (setq event (read-event) char event)) ;; Insert char if not equal to `?', or if abbrev-mode is off. diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 4c5f3ad12b9..d137284f795 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1,6 +1,6 @@ ;;; flymake.el -- a universal on-the-fly syntax checker -;; Copyright (C) 2003, 2005 Free Software Foundation +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation ;; Author: Pavel Kobiakov <pk_at_work@yahoo.com> ;; Maintainer: Pavel Kobiakov <pk_at_work@yahoo.com> @@ -806,11 +806,13 @@ line number outside the file being compiled." (defun flymake-highlight-err-lines (buffer err-info-list) "Highlight error lines in BUFFER using info from ERR-INFO-LIST." (with-current-buffer buffer + (save-excursion (let* ((idx 0) (count (length err-info-list))) (while (< idx count) - (flymake-highlight-line (car (nth idx err-info-list)) (nth 1 (nth idx err-info-list))) - (setq idx (1+ idx)))))) + (flymake-highlight-line (car (nth idx err-info-list)) + (nth 1 (nth idx err-info-list))) + (setq idx (1+ idx))))))) (defun flymake-overlay-p (ov) "Determine whether overlay OV was created by flymake." @@ -858,16 +860,12 @@ Return t if it has at least one flymake overlay, nil if no overlay." (t (:bold t))) "Face used for marking error lines." :group 'flymake) -;; backward-compatibility alias -(put 'flymake-errline-face 'face-alias 'flymake-errline) (defface flymake-warnline '((((class color)) (:background "LightBlue2")) (t (:bold t))) "Face used for marking warning lines." :group 'flymake) -;; backward-compatibility alias -(put 'flymake-warnline-face 'face-alias 'flymake-warnline) (defun flymake-highlight-line (line-no line-err-info-list) "Highlight line LINE-NO in current buffer. diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el index 371cc610912..3b6c77fef29 100644 --- a/lisp/progmodes/fortran.el +++ b/lisp/progmodes/fortran.el @@ -1,7 +1,7 @@ ;;; fortran.el --- Fortran mode for GNU Emacs ;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael D. Prange <prange@erl.mit.edu> ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> @@ -55,6 +55,8 @@ (eval-when-compile ; silence compiler (defvar dabbrev-case-fold-search) + (defvar font-lock-syntactic-keywords) + (defvar gud-find-expr-function) (defvar imenu-case-fold-search) (defvar imenu-syntax-alist)) @@ -1646,7 +1648,7 @@ notes: 1) A non-zero/non-blank character in column 5 indicates a continuation (let* ((char (if (stringp fortran-comment-indent-char) (aref fortran-comment-indent-char 0) fortran-comment-indent-char)) - (chars (string ? ?\t char))) + (chars (string ?\s ?\t char))) (goto-char (match-end 0)) (skip-chars-backward chars) (delete-region (point) (progn (skip-chars-forward chars) @@ -1656,7 +1658,7 @@ notes: 1) A non-zero/non-blank character in column 5 indicates a continuation (if indent-tabs-mode (goto-char (match-end 0)) (delete-char 2) - (insert-char ? 5) + (insert-char ?\s 5) (insert fortran-continuation-string)) (if (looking-at " \\{5\\}[^ 0\n]") (if indent-tabs-mode diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 584b0ae8144..6c960c4c5d5 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -50,6 +50,19 @@ ;; still under development and is part of a process to migrate Emacs from ;; annotations to GDB/MI. ;; +;; Windows Platforms: +;; +;; If you are using Emacs and GDB on Windows you will need to flush the buffer +;; explicitly in your program if you want timely display of I/O in Emacs. +;; Alternatively you can make the output stream unbuffered, for example, by +;; using a macro: +;; +;; #ifdef UNBUFFERED +;; setvbuf (stdout, (char *) NULL, _IONBF, 0); +;; #endif +;; +;; and compiling with -DUNBUFFERED while debugging. +;; ;; Known Bugs: ;; ;; TODO: @@ -66,7 +79,9 @@ (require 'gud) -(defvar gdb-frame-address "main" "Initialisation for Assembler buffer.") +(defvar tool-bar-map) + +(defvar gdb-frame-address "main" "Initialization for Assembler buffer.") (defvar gdb-previous-frame-address nil) (defvar gdb-memory-address "main") (defvar gdb-previous-frame nil) @@ -74,7 +89,7 @@ (defvar gdb-frame-number nil) (defvar gdb-current-language nil) (defvar gdb-var-list nil "List of variables in watch window.") -(defvar gdb-var-changed nil "Non-nil means that gdb-var-list has changed.") +(defvar gdb-var-changed nil "Non-nil means that `gdb-var-list' has changed.") (defvar gdb-main-file nil "Source file from which program execution begins.") (defvar gdb-buffer-type nil) (defvar gdb-overlay-arrow-position nil) @@ -105,7 +120,7 @@ Possible values are these symbols: `user' -- gdb output should be copied to the GUD buffer for the user to see. - `inferior' -- gdb output should be copied to the inferior-io buffer + `inferior' -- gdb output should be copied to the inferior-io buffer. `pre-emacs' -- output should be ignored util the post-prompt annotation is received. Then the output-sink @@ -117,7 +132,7 @@ Possible values are these symbols: `post-emacs' -- ignore output until the prompt annotation is received, then go to USER disposition. -gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two +gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two \(`user' and `emacs').") (defvar gdb-current-item nil @@ -136,7 +151,7 @@ The directory containing FILE becomes the initial working directory and source-file directory for your debugger. If `gdb-many-windows' is nil (the default value) then gdb just -pops up the GUD buffer unless `gdb-show-main' is t. In this case +pops up the GUD buffer unless `gdb-show-main' is t. In this case it starts with two windows: one displaying the GUD buffer and the other with the source file with the main routine of the inferior. @@ -188,6 +203,7 @@ detailed description of this mode. (defvar gdb-debug-log nil) +;;;###autoload (defcustom gdb-enable-debug-log nil "Non-nil means record the process input and output in `gdb-debug-log'." :type 'boolean @@ -203,7 +219,7 @@ detailed description of this mode. (defcustom gdb-cpp-define-alist-program "gcc -E -dM -" "Shell command for generating a list of defined macros in a source file. This list is used to display the #define directive associated -with an identifier as a tooltip. It works in a debug session with +with an identifier as a tooltip. It works in a debug session with GDB, when gud-tooltip-mode is t. Set `gdb-cpp-define-alist-flags' for any include paths or @@ -266,7 +282,7 @@ Also display the main routine in the disassembly buffer if present." 'gdb-tooltip-print)))))) (defun gdb-set-gud-minor-mode (buffer) - "Set gud-minor-mode from find-file if appropriate." + "Set `gud-minor-mode' from find-file if appropriate." (goto-char (point-min)) (unless (search-forward "No source file named " nil t) (condition-case nil @@ -490,15 +506,11 @@ Also display the main routine in the disassembly buffer if present." (setq gdb-var-list (nreverse var-list)))))) (defun gdb-var-update () - (if (not (member 'gdb-var-update gdb-pending-triggers)) - (progn - (gdb-enqueue-input - (list - (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) - "server interpreter mi \"-var-update *\"\n" - "-var-update *\n") - 'gdb-var-update-handler)) - (push 'gdb-var-update gdb-pending-triggers)))) + (when (not (member 'gdb-var-update gdb-pending-triggers)) + (gdb-enqueue-input + (list "server interpreter mi \"-var-update *\"\n" + 'gdb-var-update-handler)) + (push 'gdb-var-update gdb-pending-triggers))) (defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"") @@ -509,19 +521,15 @@ Also display the main routine in the disassembly buffer if present." (let ((varnum (match-string 1))) (gdb-enqueue-input (list - (if (with-current-buffer gud-comint-buffer - (eq gud-minor-mode 'gdba)) - (concat "server interpreter mi \"-var-evaluate-expression " - varnum "\"\n") - (concat "-var-evaluate-expression " varnum "\n")) - `(lambda () (gdb-var-evaluate-expression-handler - ,varnum t))))))) + (concat "server interpreter mi \"-var-evaluate-expression " + varnum "\"\n") + `(lambda () (gdb-var-evaluate-expression-handler ,varnum t))))))) (setq gdb-pending-triggers (delq 'gdb-var-update gdb-pending-triggers)) (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) - ;; dummy command to update speedbar at right time + ;; Dummy command to update speedbar at right time. (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn)) - ;; keep gdb-pending-triggers non-nil till end + ;; Keep gdb-pending-triggers non-nil till end. (push 'gdb-speedbar-timer gdb-pending-triggers))) (defun gdb-speedbar-timer-fn () @@ -531,9 +539,10 @@ Also display the main routine in the disassembly buffer if present." (speedbar-timer-fn))) (defun gdb-var-delete () - "Delete watched expression from the speedbar." + "Delete watch expression at point from the speedbar." (interactive) - (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (if (with-current-buffer + gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba))) (let ((text (speedbar-line-text))) (string-match "\\(\\S-+\\)" text) (let* ((expr (match-string 1 text)) @@ -582,7 +591,9 @@ INDENT is the current indentation depth." (cond ((string-match "+" text) ;expand this node (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) (gdb-var-list-children token) - (gdbmi-var-list-children token))) + (progn + (gdbmi-var-update) + (gdbmi-var-list-children token)))) ((string-match "-" text) ;contract this node (dolist (var gdb-var-list) (if (string-match (concat token "\\.") (nth 1 var)) @@ -695,6 +706,13 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." (gdb-display-buffer (gdb-get-create-buffer 'gdb-inferior-io)))) +(defconst gdb-frame-parameters + '((height . 14) (width . 80) + (unsplittable . t) + (tool-bar-lines . nil) + (menu-bar-lines . nil) + (minibuffer . nil))) + (defun gdb-frame-inferior-io-buffer () "Display IO of inferior in a new frame." (interactive) @@ -964,7 +982,7 @@ being debugged." (defun gdb-exited (ignored) "An annotation handler for `exited' and `signalled'. They say that I/O for the subprocess is now GDB, not the program -being debugged and that the program is no longer running. This +being debugged and that the program is no longer running. This function is used to change the focus of GUD tooltips to #define directives." (setq gdb-active-process nil) @@ -1015,7 +1033,7 @@ happens to be appropriate." (gdb-invalidate-threads) (unless (eq system-type 'darwin) ;Breaks on Darwin's GDB-5.3. ;; FIXME: with GDB-6 on Darwin, this might very well work. - ;; only needed/used with speedbar/watch expressions + ;; Only needed/used with speedbar/watch expressions. (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) (setq gdb-var-changed t) ; force update (dolist (var gdb-var-list) @@ -1035,9 +1053,9 @@ happens to be appropriate." (if gdb-flush-pending-output nil (if gdb-enable-debug-log (push (cons 'recv string) gdb-debug-log)) - ;; Recall the left over gud-marker-acc from last time + ;; Recall the left over gud-marker-acc from last time. (setq gud-marker-acc (concat gud-marker-acc string)) - ;; Start accumulating output for the GUD buffer + ;; Start accumulating output for the GUD buffer. (let ((output "")) ;; ;; Process all the complete markers in this chunk. @@ -1287,7 +1305,7 @@ static char *magick[] = { :weight bold)) "Face for enabled breakpoint icon in fringe." :group 'gud) -;; compatibility alias for old name +;; Compatibility alias for old name. (put 'breakpoint-enabled-bitmap-face 'face-alias 'breakpoint-enabled) (defface breakpoint-disabled @@ -1298,13 +1316,11 @@ static char *magick[] = { (((background light)) :foreground "grey40")) "Face for disabled breakpoint icon in fringe." :group 'gud) -;; compatibility alias for old name -(put 'breakpoint-disabled-bitmap-face 'face-alias 'breakpoint-disabled) -;;-put breakpoint icons in relevant margins (even those set in the GUD buffer) +;; Put breakpoint icons in relevant margins (even those set in the GUD buffer). (defun gdb-info-breakpoints-custom () (let ((flag) (bptno)) - ;; remove all breakpoint-icons in source buffers but not assembler buffer + ;; Remove all breakpoint-icons in source buffers but not assembler buffer. (dolist (buffer (buffer-list)) (with-current-buffer buffer (if (and (eq gud-minor-mode 'gdba) @@ -1334,13 +1350,14 @@ static char *magick[] = { (setq file (cdr (assoc bptno gdb-location-alist)))) (if (and file (not (string-equal file "File not found"))) - (with-current-buffer (find-file-noselect file) + (with-current-buffer + (find-file-noselect file 'nowarn) (set (make-local-variable 'gud-minor-mode) 'gdba) (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) - ;; only want one breakpoint icon at each - ;; location + ;; Only want one breakpoint icon at each + ;; location. (save-excursion (goto-line (string-to-number line)) (gdb-put-breakpoint-icon (eq flag ?y) bptno))) @@ -1380,11 +1397,7 @@ static char *magick[] = { (with-selected-window (posn-window posn) (save-excursion (goto-char (posn-point posn)) - (if -; (or - (posn-object posn) -; (eq (car (fringe-bitmaps-at-pos (posn-point posn))) -; 'breakpoint)) + (if (posn-object posn) (gdb-enqueue-input (list (let ((bptno (get-text-property @@ -1406,13 +1419,6 @@ static char *magick[] = { (gdb-display-buffer (gdb-get-create-buffer 'gdb-breakpoints-buffer))) -(defconst gdb-frame-parameters - '((height . 14) (width . 80) - (unsplittable . t) - (tool-bar-lines . nil) - (menu-bar-lines . nil) - (minibuffer . nil))) - (defun gdb-frame-breakpoints-buffer () "Display status of user-settable breakpoints in a new frame." (interactive) @@ -1972,7 +1978,7 @@ corresponding to the mode line clicked." 'mouse-1 #'(lambda () (interactive) (let ((gdb-memory-address - ;; let GDB do the arithmetic + ;; Let GDB do the arithmetic. (concat gdb-memory-address " - " (number-to-string @@ -2186,6 +2192,7 @@ corresponding to the mode line clicked." (define-key gud-menu-map [ui] `(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba))) (define-key menu [gdb-use-inferior-io] + ;; See defadvice below. (menu-bar-make-toggle toggle-gdb-use-inferior-io-buffer gdb-use-inferior-io-buffer "Separate inferior IO" "Use separate IO %s" @@ -2198,6 +2205,7 @@ corresponding to the mode line clicked." '(menu-item "Restore Window Layout" gdb-restore-windows :help "Restore standard layout for debug session."))) +;; This function is defined above through a macro. (defadvice toggle-gdb-use-inferior-io-buffer (after gdb-kill-io-buffer activate) (unless gdb-use-inferior-io-buffer (kill-buffer (gdb-inferior-io-name)))) @@ -2220,7 +2228,7 @@ corresponding to the mode line clicked." (set-window-dedicated-p (selected-window) t)) (defun gdb-setup-windows () - "Layout the window pattern for gdb-many-windows." + "Layout the window pattern for `gdb-many-windows'." (gdb-display-locals-buffer) (gdb-display-stack-buffer) (delete-other-windows) @@ -2374,7 +2382,7 @@ of the current session." (defun gdb-put-string (putstring pos &optional dprop) "Put string PUTSTRING in front of POS in the current buffer. PUTSTRING is displayed by putting an overlay into the current buffer with a -`before-string' STRING that has a `display' property whose value is +`before-string' string that has a `display' property whose value is PUTSTRING." (let ((string (make-string 1 ?x)) (buffer (current-buffer))) @@ -2479,7 +2487,7 @@ BUFFER nil or omitted means use the current buffer." (def-gdb-auto-updated-buffer gdb-assembler-buffer gdb-invalidate-assembler - (concat gdb-server-prefix "disassemble " + (concat gdb-server-prefix "disassemble " (if (member gdb-frame-address '(nil "main")) nil "0x") gdb-frame-address "\n") gdb-assembler-handler diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 0f1045eeb5a..48d1c09d138 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -1,7 +1,7 @@ ;;; grep.el --- run Grep as inferior of Emacs, parse match messages ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Maintainer: FSF @@ -33,6 +33,9 @@ (require 'compile) +(defvar font-lock-lines-before) + + (defgroup grep nil "Run compiler as inferior of Emacs, parse error messages." :group 'tools @@ -187,16 +190,13 @@ See `compilation-error-screen-columns'" (define-key map "\^?" 'scroll-down) (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) - ;; This is intolerable -- rms -;;; (define-key map [remap next-line] 'compilation-next-error) -;;; (define-key map [remap previous-line] 'compilation-previous-error) - (define-key map "\r" 'compile-goto-error) ;; ? (define-key map "n" 'next-error-no-select) (define-key map "p" 'previous-error-no-select) (define-key map "{" 'compilation-previous-file) (define-key map "}" 'compilation-next-file) - (define-key map "\t" 'compilation-next-file) + (define-key map "\t" 'compilation-next-error) + (define-key map [backtab] 'compilation-previous-error) ;; Set up the menu-bar (define-key map [menu-bar grep] @@ -209,7 +209,7 @@ See `compilation-error-screen-columns'" (define-key map [menu-bar grep compilation-compile] '("Compile..." . compile)) (define-key map [menu-bar grep compilation-grep] - '("Another grep" . grep)) + '("Another grep..." . grep)) (define-key map [menu-bar grep compilation-recompile] '("Repeat grep" . recompile)) (define-key map [menu-bar grep compilation-separator2] @@ -247,24 +247,24 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies ;;;###autoload (defvar grep-regexp-alist - ;; rms: I removed the code to match parens around the line number - ;; because it causes confusion and so we will find out if anyone needs it. - ;; It causes confusion with a file name that contains a number in parens. - '(("^\\(.+?\\)\\([: \t]\\)+\ -\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\ -\\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2" - 1 (3 . 6) (5 . 7)) + '(("^\\(.+?\\)\\(:[ \t]*\\)\\([0-9]+\\)\\2" + 1 3) + ;; Rule to match column numbers is commented out since no known grep + ;; produces them + ;; ("^\\(.+?\\)\\(:[ \t]*\\)\\([0-9]+\\)\\2\\(?:\\([0-9]+\\)\\(?:-\\([0-9]+\\)\\)?\\2\\)?" + ;; 1 3 (4 . 5)) ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\ -\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)" +\\(\033\\[01;31m\\(?:\033\\[K\\)?\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)" 2 3 ;; Calculate column positions (beg . end) of first grep match on a line ((lambda () - (setq compilation-error-screen-columns nil) - (- (match-beginning 5) (match-end 1) 8)) + (setq compilation-error-screen-columns nil) + (- (match-beginning 4) (match-end 1))) . - (lambda () (- (match-end 5) (match-end 1) 8))) + (lambda () (- (match-end 5) (match-end 1) + (- (match-end 4) (match-beginning 4))))) nil 1) - ("^Binary file \\(.+\\) matches$" 1 nil nil 1)) + ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1)) "Regexp used to match grep hits. See `compilation-error-regexp-alist'.") (defvar grep-error "grep hit" @@ -275,38 +275,48 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies (defvar grep-hit-face compilation-info-face "Face name to use for grep hits.") -(defvar grep-error-face compilation-error-face +(defvar grep-error-face 'compilation-error "Face name to use for grep error messages.") (defvar grep-match-face 'match "Face name to use for grep matches.") +(defvar grep-context-face 'shadow + "Face name to use for grep context lines.") + (defvar grep-mode-font-lock-keywords '(;; Command output lines. ("^\\([A-Za-z_0-9/\.+-]+\\)[ \t]*:" 1 font-lock-function-name-face) (": \\(.+\\): \\(?:Permission denied\\|No such \\(?:file or directory\\|device or address\\)\\)$" 1 grep-error-face) ;; remove match from grep-regexp-alist before fontifying + ("^Grep started.*" + (0 '(face nil message nil help-echo nil mouse-face nil) t)) ("^Grep finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*" (0 '(face nil message nil help-echo nil mouse-face nil) t) - (1 grep-hit-face nil t) - (2 grep-error-face nil t)) - ("^Grep \\(exited abnormally\\) with code \\([0-9]+\\).*" + (1 compilation-info-face nil t) + (2 compilation-warning-face nil t)) + ("^Grep \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*" (0 '(face nil message nil help-echo nil mouse-face nil) t) - (1 compilation-warning-face) - (2 compilation-line-face)) + (1 grep-error-face) + (2 grep-error-face nil t)) + ("^.+?-[0-9]+-.*\n" (0 grep-context-face)) ;; Highlight grep matches and delete markers - ("\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)" + ("\\(\033\\[01;31m\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)" ;; Refontification does not work after the markers have been ;; deleted. So we use the font-lock-face property here as Font ;; Lock does not clear that. (2 (list 'face nil 'font-lock-face grep-match-face)) - ((lambda (p)) + ((lambda (bound)) (progn ;; Delete markers with `replace-match' because it updates ;; the match-data, whereas `delete-region' would render it obsolete. (replace-match "" t t nil 3) - (replace-match "" t t nil 1))))) + (replace-match "" t t nil 1)))) + ("\\(\033\\[[0-9;]*[mK]\\)" + ;; Delete all remaining escape sequences + ((lambda (bound)) + (replace-match "" t t nil 1)))) "Additional things to highlight in grep output. This gets tacked on the end of the generated expressions.") @@ -354,7 +364,10 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." (when (eq grep-highlight-matches t) ;; Modify `process-environment' locally bound in `compilation-start' (setenv "GREP_OPTIONS" (concat (getenv "GREP_OPTIONS") " --color=always")) - (setenv "GREP_COLOR" "01;41")) + ;; for GNU grep 2.5.1 + (setenv "GREP_COLOR" "01;31") + ;; for GNU grep 2.5.1-cvs + (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne")) (set (make-local-variable 'compilation-exit-message-function) (lambda (status code msg) (if (eq status 'exit) @@ -508,12 +521,12 @@ temporarily highlight in visited source lines." ;; Setting process-setup-function makes exit-message-function work ;; even when async processes aren't supported. - (let ((compilation-process-setup-function 'grep-process-setup)) - (compilation-start (if (and grep-use-null-device null-device) - (concat command-args " " null-device) - command-args) - 'grep-mode nil highlight-regexp))) + (compilation-start (if (and grep-use-null-device null-device) + (concat command-args " " null-device) + command-args) + 'grep-mode nil highlight-regexp)) +;;;###autoload (define-compilation-mode grep-mode "Grep" "Sets `grep-last-buffer' and `compilation-window-height'." (setq grep-last-buffer (current-buffer)) @@ -521,6 +534,9 @@ temporarily highlight in visited source lines." grep-hit-face) (set (make-local-variable 'compilation-error-regexp-alist) grep-regexp-alist) + (set (make-local-variable 'compilation-process-setup-function) + 'grep-process-setup) + (set (make-local-variable 'compilation-disable-input) t) ;; Set `font-lock-lines-before' to 0 to not refontify the previous ;; line where grep markers may be already removed. (set (make-local-variable 'font-lock-lines-before) 0)) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 50644383667..1486825b07a 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -4,7 +4,8 @@ ;; Maintainer: FSF ;; Keywords: unix, tools -;; Copyright (C) 1992,93,94,95,96,1998,2000,02,03,04,05 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -42,9 +43,17 @@ (eval-when-compile (require 'cl)) ; for case macro (require 'comint) -(require 'etags) (require 'font-lock) +(defvar gdb-active-process) +(defvar gdb-define-alist) +(defvar gdb-macro-info) +(defvar gdb-server-prefix) +(defvar gdb-show-changed-values) +(defvar gdb-var-changed) +(defvar gdb-var-list) +(defvar tool-bar-map) + ;; ====================================================================== ;; GUD commands must be visible in C buffers visited by GUD @@ -352,10 +361,10 @@ t means that there is no stack, and we are in display-file mode.") (not (memq gud-minor-mode '(gdbmi gdba))))] ["Edit value" speedbar-edit-line (with-current-buffer gud-comint-buffer - (not (memq gud-minor-mode '(gdbmi gdba))))] + (memq gud-minor-mode '(gdbmi gdba)))] ["Delete expression" gdb-var-delete (with-current-buffer gud-comint-buffer - (not (memq gud-minor-mode '(gdbmi gdba))))]) + (memq gud-minor-mode '(gdbmi gdba)))]) "Additional menu items to add to the speedbar frame.") ;; Make sure our special speedbar mode is loaded @@ -508,9 +517,9 @@ off the specialized speedbar mode." ;; to return - we don't include the marker in this text. output (concat output (substring gud-marker-acc 0 (match-beginning 0))) - + ;; Set the accumulator to the remaining text. - + gud-marker-acc (substring gud-marker-acc (match-end 0))) (if (string-equal match "error-begin") (put-text-property 0 (length gud-marker-acc) @@ -586,7 +595,9 @@ and source-file directory for your debugger." (gud-def gud-nexti "nexti %p" nil "Step one instruction (skip functions).") (gud-def gud-cont "cont" "\C-r" "Continue with display.") (gud-def gud-finish "finish" "\C-f" "Finish executing current function.") - (gud-def gud-jump "tbreak %f:%l\njump %f:%l" "\C-j" "Relocate execution address to line at point in source buffer.") + (gud-def gud-jump + (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l")) + "\C-j" "Set execution address to current line.") (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).") (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).") @@ -833,6 +844,7 @@ The directory containing FILE becomes the initial working directory and source-file directory for your debugger." (interactive (list (gud-query-cmdline 'sdb))) + (if gud-sdb-needs-tags (require 'etags)) (if (and gud-sdb-needs-tags (not (and (boundp 'tags-file-name) (stringp tags-file-name) @@ -2595,7 +2607,7 @@ It is saved for when this flag is not set.") (defun gud-kill-buffer-hook () (setq gud-minor-mode-type gud-minor-mode) (condition-case nil - (kill-process (get-buffer-process gud-comint-buffer)) + (kill-process (get-buffer-process (current-buffer))) (error nil))) (defun gud-reset () @@ -2862,12 +2874,12 @@ the character after the end of the expr." If `->' is found, return `?.'. If `.' is found, return `?.'. If any other punctuation is found, return `??'. If no punctuation is found, return `? '." - (let ((result ?\ ) + (let ((result ?\s) (syntax)) (while (< span-start span-end) (setq syntax (char-syntax (char-after span-start))) (cond - ((= syntax ?\ ) t) + ((= syntax ?\s) t) ((= syntax ?.) (setq syntax (char-after span-start)) (cond ((= syntax ?.) (setq result ?.)) @@ -2899,7 +2911,7 @@ Link exprs of the form: ((= (car first) (car second)) nil) ((= (cdr first) (cdr second)) nil) ((= syntax ?.) t) - ((= syntax ?\ ) + ((= syntax ?\s) (setq span-start (char-after (- span-start 1))) (setq span-end (char-after span-end)) (cond @@ -3209,6 +3221,7 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.") (define-obsolete-function-alias 'tooltip-gud-toggle-dereference 'toggle-gud-tooltip-dereference "22.1") +;;;###autoload (define-minor-mode gud-tooltip-mode "Toggle the display of GUD tooltips." :global t @@ -3225,7 +3238,11 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.") (remove-hook 'tooltip-hook 'gud-tooltip-tips) (define-key global-map [mouse-movement] 'ignore))) (gud-tooltip-activate-mouse-motions-if-enabled) - (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (if (and + gud-comint-buffer + (buffer-name gud-comint-buffer); gud-comint-buffer might be kille + (with-current-buffer gud-comint-buffer + (memq gud-minor-mode '(gdbmi gdba)))) (if gud-tooltip-mode (progn (dolist (buffer (buffer-list)) diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 35524b4a363..1f843dea03c 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -1,6 +1,7 @@ ;;; hideif.el --- hides selected code within ifdef -;; Copyright (C) 1988, 1994, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004 2005 +;; Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Maintainer: FSF diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 0acb995d2f0..8f08311ceae 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -1,6 +1,7 @@ ;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks -;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01 Free Software Foundation +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +;; 2004, 2005 Free Software Foundation ;; Author: Thien-Thi Nguyen <ttn@gnu.org> ;; Dan Nicolaescu <dann@ics.uci.edu> diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el index 66869d8e6de..aad5686c69e 100644 --- a/lisp/progmodes/icon.el +++ b/lisp/progmodes/icon.el @@ -1,6 +1,7 @@ ;;; icon.el --- mode for editing Icon code -;; Copyright (C) 1989 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Chris Smith <csmith@convex.com> ;; Created: 15 Feb 89 diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el index e8020937485..bc659666a08 100644 --- a/lisp/progmodes/idlw-complete-structtag.el +++ b/lisp/progmodes/idlw-complete-structtag.el @@ -1,5 +1,5 @@ ;;; idlw-complete-structtag.el --- Completion of structure tags. -;; Copyright (c) 2001,2002 Free Software Foundation +;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> @@ -53,10 +53,10 @@ ;; ;; INSTALLATION ;; ============ -;; Put this file on the emacs load path and load it with the following +;; Put this file on the emacs load path and load it with the following ;; line in your .emacs file: ;; -;; (add-hook 'idlwave-load-hook +;; (add-hook 'idlwave-load-hook ;; (lambda () (require 'idlw-complete-structtag))) ;; ;; DESCRIPTION @@ -87,6 +87,7 @@ ;; - You can force an update of the tag list with the usual command ;; to update routine info in IDLWAVE: C-c C-i +(defvar idlwave-completion-help-info) ;; Some variables to identify the previously used structure (defvar idlwave-current-tags-var nil) @@ -144,9 +145,9 @@ an up-to-date completion list." (not (equal start idlwave-current-tags-completion-pos))) (idlwave-prepare-structure-tag-completion var)) (setq idlwave-current-tags-completion-pos start) - (setq idlwave-completion-help-info + (setq idlwave-completion-help-info (list 'idlwave-complete-structure-tag-help)) - (idlwave-complete-in-buffer 'structtag 'structtag + (idlwave-complete-in-buffer 'structtag 'structtag idlwave-current-struct-tags nil "Select a structure tag" "structure tag") t) ; we did the completion: return t to skip other completions @@ -165,7 +166,7 @@ an up-to-date completion list." (if (eq major-mode 'idlwave-shell-mode) ;; OK, we are in the shell, do it dynamically (progn - (message "preparing shell tags") + (message "preparing shell tags") ;; The following call puts the tags into `idlwave-current-struct-tags' (idlwave-complete-structure-tag-query-shell var) ;; initialize @@ -187,7 +188,7 @@ an up-to-date completion list." ;; Find possible definitions of the structure. (while (idlwave-find-structure-definition var nil 'all) (let ((tags (idlwave-struct-tags))) - (when tags + (when tags ;; initialize (setq idlwave-sint-structtags nil idlwave-current-tags-buffer (current-buffer) diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index f038149aaad..0a848128032 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el @@ -1,7 +1,7 @@ ;;; idlw-help.el --- HTML Help code for IDLWAVE ;; Copyright (c) 2000 Carsten Dominik ;; Copyright (c) 2001, 2002 J.D. Smith -;; Copyright (c) 2003,2004,2005 Free Software Foundation +;; Copyright (c) 2003, 2004, 2005, Free Software Foundation ;; ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> ;; Carsten Dominik <dominik@science.uva.nl> @@ -36,11 +36,13 @@ ;; information, at: ;; ;; http://idlwave.org -;; +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Code: +(defvar browse-url-generic-args) + (defvar idlwave-help-browse-url-available nil "Whether browse-url is available") @@ -58,10 +60,10 @@ :group 'idlwave-online-help :type 'boolean) -(defvar idlwave-html-link-sep +(defvar idlwave-html-link-sep (if idlwave-html-help-pre-v6 "#" "#wp")) -(defcustom idlwave-html-help-location +(defcustom idlwave-html-help-location (if (memq system-type '(ms-dos windows-nt)) nil "/usr/local/etc/") @@ -89,7 +91,7 @@ Defaults to `browse-url-browser-function', which see." :group 'idlwave-online-help :type 'string) -(defcustom idlwave-help-browser-generic-args +(defcustom idlwave-help-browser-generic-args (if (boundp 'browse-url-generic-args) browse-url-generic-args "") "Program args to use if using browse-url-generic-program." @@ -193,12 +195,10 @@ support." (t (:weight bold))) "Face for highlighting links into IDLWAVE online help." :group 'idlwave-online-help) -;; backward-compatibility alias -(put 'idlwave-help-link-face 'face-alias 'idlwave-help-link) (defvar idlwave-help-activate-links-aggressively nil "Obsolete variable.") - + (defvar idlwave-completion-help-info) (defvar idlwave-help-frame nil @@ -326,7 +326,7 @@ It collects and prints the diagnostics messages." (setq idlwave-last-context-help-pos marker) (idlwave-do-context-help1 arg) (if idlwave-help-diagnostics - (message "%s" (mapconcat 'identity + (message "%s" (mapconcat 'identity (nreverse idlwave-help-diagnostics) "; ")))))) @@ -339,7 +339,7 @@ It collects and prints the diagnostics messages." (defun idlwave-do-context-help1 (&optional arg) "The work-horse version of `idlwave-context-help', which see." (save-excursion - (if (equal (char-after) ?/) + (if (equal (char-after) ?/) (forward-char 1) (if (equal (char-before) ?=) (backward-char 1))) @@ -349,7 +349,7 @@ It collects and prints the diagnostics messages." (beg (save-excursion (skip-chars-backward chars) (point))) (end (save-excursion (skip-chars-forward chars) (point))) (this-word (buffer-substring-no-properties beg end)) - (st-ass (assoc (downcase this-word) + (st-ass (assoc (downcase this-word) idlwave-help-special-topic-words)) (classtag (and (string-match "self\\." this-word) (< beg (- end 4)))) @@ -357,7 +357,7 @@ It collects and prints the diagnostics messages." (string-match "\\`\\([^.]+\\)\\." this-word) (< beg (- end 4)))) module keyword cw mod1 mod2 mod3) - (if (or arg + (if (or arg (and (not st-ass) (not classtag) (not structtag) @@ -376,15 +376,15 @@ It collects and prints the diagnostics messages." (setq module (list "init" 'fun (match-string 1 str)) idlwave-current-obj_new-class (match-string 1 str)) ))))) - (cond + (cond (arg (setq mod1 module)) - + ;; A special topic -- only system help (st-ass (setq mod1 (list (cdr st-ass)))) - + ;; A system variable -- only system help - ((string-match - "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?" + ((string-match + "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?" this-word) (let* ((word (match-string-no-properties 1 this-word)) (entry (assq (idlwave-sintern-sysvar word) @@ -396,10 +396,10 @@ It collects and prints the diagnostics messages." (cdr (assq 'tags entry)))))) (link (nth 1 (assq 'link entry)))) (if tag-target - (setq link (idlwave-substitute-link-target link + (setq link (idlwave-substitute-link-target link tag-target))) (setq mod1 (list link)))) - + ;; An executive command -- only system help ((string-match "^\\.\\([A-Z_]+\\)" this-word) (let* ((word (match-string 1 this-word)) @@ -407,7 +407,7 @@ It collects and prints the diagnostics messages." word idlwave-executive-commands-alist t)))) (setq mod1 (list link)))) - + ;; A class -- system OR in-text help (via class__define). ((and (eq cw 'class) (or (idlwave-in-quote) ; e.g. obj_new @@ -421,28 +421,28 @@ It collects and prints the diagnostics messages." (name (concat (downcase this-word) "__define")) (link (nth 1 (assq 'link entry)))) (setq mod1 (list link name 'pro)))) - + ;; A class structure tag (self.BLAH) -- only in-text help available (classtag (let ((tag (substring this-word (match-end 0))) class-with found-in) - (when (setq class-with + (when (setq class-with (idlwave-class-or-superclass-with-tag (nth 2 (idlwave-current-routine)) tag)) (setq found-in (idlwave-class-found-in class-with)) - (if (assq (idlwave-sintern-class class-with) + (if (assq (idlwave-sintern-class class-with) idlwave-system-class-info) (error "No help available for system class tags")) (setq idlwave-help-do-class-struct-tag t) - (setq mod1 (list nil + (setq mod1 (list nil (if found-in (cons (concat found-in "__define") class-with) (concat class-with "__define")) 'pro nil ; no class.... it's a procedure! tag))))) - + ;; A regular structure tag -- only in text, and if ;; optional `complete-structtag' loaded. (structtag @@ -453,7 +453,7 @@ It collects and prints the diagnostics messages." (setq idlwave-help-do-struct-tag idlwave-structtag-struct-location mod1 (list nil nil nil nil tag)))) - + ;; A routine keyword -- in text or system help ((and (memq cw '(function-keyword procedure-keyword)) (stringp this-word) @@ -495,7 +495,7 @@ It collects and prints the diagnostics messages." (setq mod1 (append (list t) module (list keyword)) mod2 (list t this-word 'fun nil) mod3 (append (list t) module))))) - + ;; Everything else (t (setq mod1 (append (list t) module)))) @@ -528,14 +528,14 @@ Needs additional info stored in global `idlwave-completion-help-info'." word link) (mouse-set-point ev) - + ;; See if we can also find help somewhere, e.g. for multiple classes (setq word (idlwave-this-word)) (if (string= word "") (error "No help item selected")) (setq link (get-text-property 0 'link word)) (select-window cw) - (cond + (cond ;; Routine name ((memq what '(procedure function routine)) (setq name word) @@ -546,9 +546,9 @@ Needs additional info stored in global `idlwave-completion-help-info'." type))) (setq link t) ; No specific link valid yet (if sclasses - (setq classes (idlwave-members-only + (setq classes (idlwave-members-only classes (cons class sclasses)))) - (setq class (idlwave-popup-select ev classes + (setq class (idlwave-popup-select ev classes "Select Class" 'sort)))) ;; XXX is this necessary, given all-method-classes? @@ -568,7 +568,7 @@ Needs additional info stored in global `idlwave-completion-help-info'." type))) (setq link t) ; Link can't be correct yet (if sclasses - (setq classes (idlwave-members-only + (setq classes (idlwave-members-only classes (cons class sclasses)))) (setq class (idlwave-popup-select ev classes "Select Class" 'sort)) @@ -580,14 +580,14 @@ Needs additional info stored in global `idlwave-completion-help-info'." (if (string= (downcase name) "obj_new") (setq class idlwave-current-obj_new-class name "Init")))) - + ;; Class name ((eq what 'class) (setq class word word nil)) - + ;; A special named function to call which sets some of our variables - ((and (symbolp what) + ((and (symbolp what) (fboundp what)) (funcall what 'set word)) @@ -602,7 +602,7 @@ Needs additional info stored in global `idlwave-completion-help-info'." "Highlight all completions for which help is available and attach link. Those words in `idlwave-completion-help-links' have links. The `idlwave-help-link' face is used for this." - (if idlwave-highlight-help-links-in-completion + (if idlwave-highlight-help-links-in-completion (with-current-buffer (get-buffer "*Completions*") (save-excursion (let* ((case-fold-search t) @@ -618,7 +618,7 @@ Those words in `idlwave-completion-help-links' have links. The (setq beg (match-beginning 1) end (match-end 1) word (match-string 1) doit nil) ;; Call special completion function test - (if (and (symbolp what) + (if (and (symbolp what) (fboundp what)) (setq doit (funcall what 'test word)) ;; Look for special link property passed in help-links @@ -649,13 +649,13 @@ Those words in `idlwave-completion-help-links' have links. The ;; Try to select the return frame. ;; This can crash on slow network connections, obviously when ;; we kill the help frame before the return-frame is selected. - ;; To protect the workings, we wait for up to one second + ;; To protect the workings, we wait for up to one second ;; and check if the return-frame *is* now selected. ;; This is marked "eperimental" since we are not sure when its OK. (let ((maxtime 1.0) (time 0.) (step 0.1)) (select-frame idlwave-help-return-frame) (while (and (sit-for step) - (not (eq (selected-frame) + (not (eq (selected-frame) idlwave-help-return-frame)) (< (setq time (+ time step)) maxtime))))) (delete-frame idlwave-help-frame)) @@ -668,7 +668,7 @@ Those words in `idlwave-completion-help-links' have links. The (defvar default-toolbar-visible-p) (defun idlwave-help-display-help-window (&optional pos-or-func) - "Display the help window. + "Display the help window. Move window start to POS-OR-FUNC, if passed as a position, or call it if passed as a function. See `idlwave-help-use-dedicated-frame'." (let ((cw (selected-window)) @@ -679,13 +679,13 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'." (switch-to-buffer buf)) ;; Do it in this frame and save the window configuration (if (not (get-buffer-window buf nil)) - (setq idlwave-help-window-configuration + (setq idlwave-help-window-configuration (current-window-configuration))) (display-buffer buf nil (selected-frame)) (select-window (get-buffer-window buf))) (raise-frame) - (if pos-or-func - (if (functionp pos-or-func) + (if pos-or-func + (if (functionp pos-or-func) (funcall pos-or-func) (goto-char pos-or-func) (recenter 0))) @@ -707,31 +707,31 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'." (select-frame idlwave-help-return-frame))) (defun idlwave-online-help (link &optional name type class keyword) - "Display HTML or other special help on a certain topic. + "Display HTML or other special help on a certain topic. Either loads an HTML link, if LINK is non-nil, or gets special-help on the optional arguments, if any special help is defined. If LINK is `t', first look up the optional arguments in the routine info list to see if a link is set for it. Try extra help functions if necessary." ;; Lookup link - (if (eq link t) - (let ((entry (idlwave-best-rinfo-assoc name type class + (if (eq link t) + (let ((entry (idlwave-best-rinfo-assoc name type class (idlwave-routines) nil t))) (cond ;; Try keyword link - ((and keyword + ((and keyword (setq link (cdr (idlwave-entry-find-keyword entry keyword))))) ;; Default, regular entry link (t (setq link (idlwave-entry-has-help entry)))))) (cond ;; An explicit link - ((stringp link) + ((stringp link) (idlwave-help-html-link link)) - + ;; Any extra help (idlwave-extra-help-function (idlwave-help-get-special-help name type class keyword)) - + ;; Nothing worked (t (idlwave-help-error name type class keyword)))) @@ -742,7 +742,7 @@ see if a link is set for it. Try extra help functions if necessary." (help-pos (save-excursion (set-buffer (idlwave-help-get-help-buffer)) (let ((buffer-read-only nil)) - (funcall idlwave-extra-help-function + (funcall idlwave-extra-help-function name type class keyword))))) (if help-pos (idlwave-help-display-help-window help-pos) @@ -756,7 +756,7 @@ see if a link is set for it. Try extra help functions if necessary." (browse-url-generic-program idlwave-help-browser-generic-program) ;(browse-url-generic-args idlwave-help-browser-generic-args) full-link) - + (unless idlwave-help-browse-url-available (error "browse-url is not available -- install it to use HTML help.")) @@ -774,12 +774,12 @@ see if a link is set for it. Try extra help functions if necessary." ;; Just a regular file name (+ anchor name) (unless (and (stringp help-loc) (file-directory-p help-loc)) - (error + (error "Invalid help location; customize `idlwave-html-help-location'.")) - (setq full-link (concat + (setq full-link (concat "file://" - (expand-file-name - link + (expand-file-name + link (expand-file-name "idl_html_help" help-loc))))) ;; Check for a local browser @@ -814,7 +814,7 @@ This function can be used as `idlwave-extra-help-function'." (if class-only ;Help with class? Using "Init" as source. (setq name "Init" type 'fun)) - (if (not struct-tag) + (if (not struct-tag) (setq file (idlwave-routine-source-file (nth 3 (idlwave-best-rinfo-assoc @@ -827,7 +827,7 @@ This function can be used as `idlwave-extra-help-function'." (if (or struct-tag (stringp file)) (progn (setq in-buf ; structure-tag completion is always in current buffer - (if struct-tag + (if struct-tag idlwave-current-tags-buffer (idlwave-get-buffer-visiting file))) ;; see if file is in a visited buffer, insert those contents @@ -835,7 +835,8 @@ This function can be used as `idlwave-extra-help-function'." (progn (setq file (buffer-file-name in-buf)) (erase-buffer) - (insert-buffer in-buf)) + (insert-buffer-substring in-buf) + (goto-char (point-min))) (if (file-exists-p file) ;; otherwise just load the file (progn (erase-buffer) @@ -849,19 +850,19 @@ This function can be used as `idlwave-extra-help-function'." ;; Try to find a good place to display (setq def-pos ;; Find the class structure tag if that's what we're after - (cond + (cond ;; Class structure tags: find the class or named structure ;; definition (class-struct-tag - (save-excursion + (save-excursion (setq class - (if (string-match "[a-zA-Z0-9]\\(__\\)" name) + (if (string-match "[a-zA-Z0-9]\\(__\\)" name) (substring name 0 (match-beginning 1)) idlwave-current-tags-class)) (and (idlwave-find-class-definition class nil real-class) (idlwave-find-struct-tag keyword)))) - + ;; Generic structure tags: the structure definition ;; location within the file has been recorded in ;; `struct-tag' @@ -871,14 +872,14 @@ This function can be used as `idlwave-extra-help-function'." (integerp struct-tag) (goto-char struct-tag) (idlwave-find-struct-tag keyword)))) - + ;; Just find the routine definition (t (if class-only (point-min) (idlwave-help-find-routine-definition name type class keyword)))) idlwave-help-def-pos def-pos) - (if (and idlwave-help-source-try-header + (if (and idlwave-help-source-try-header (not (or struct-tag class-struct-tag))) ;; Check if we can find the header (save-excursion @@ -888,7 +889,7 @@ This function can be used as `idlwave-extra-help-function'." idlwave-help-in-header header-pos))) (if (or header-pos def-pos) - (progn + (progn (if (boundp 'idlwave-help-min-frame-width) (setq idlwave-help-min-frame-width 80)) (goto-char (or header-pos def-pos))) @@ -902,7 +903,7 @@ This function can be used as `idlwave-extra-help-function'." KEYWORD is ignored. Returns the point of match if successful, nil otherwise." (save-excursion (goto-char (point-max)) - (if (re-search-backward + (if (re-search-backward (concat "^[ \t]*" (if (eq type 'pro) "pro" (if (eq type 'fun) "function" @@ -948,22 +949,22 @@ with spaces allowed between the keyword and the following dash or equal sign. If there is a match, we assume it is the keyword description." (let* ((case-fold-search t) (rname (if (stringp class) - (concat + (concat "\\(" ;; Traditional name or class::name "\\(" "\\(" (regexp-quote (downcase class)) "::\\)?" (regexp-quote (downcase name)) "\\>\\)" - (concat + (concat "\\|" ;; class__define or just class (regexp-quote (downcase class)) "\\(__define\\)?") "\\)") (regexp-quote (downcase name)))) - + ;; NAME tag plus the routine name. The new version is from JD. - (name-re (concat + (name-re (concat "\\(^;+\\*?[ \t]*" idlwave-help-doclib-name "\\([ \t]*:\\|[ \t]*$\\)[ \t]*\\(\n;+[ \t]*\\)*" @@ -998,7 +999,7 @@ If there is a match, we assume it is the keyword description." (regexp-quote (upcase keyword)) "\\>"))) dstart dend name-pos kwds-pos kwd-pos) - (catch 'exit + (catch 'exit (save-excursion (goto-char (point-min)) (while (and (setq dstart (re-search-forward idlwave-doclib-start nil t)) @@ -1006,7 +1007,7 @@ If there is a match, we assume it is the keyword description." ;; found a routine header (goto-char dstart) (if (setq name-pos (re-search-forward name-re dend t)) - (progn + (progn (if keyword ;; We do need a keyword (progn @@ -1088,7 +1089,7 @@ When DING is non-nil, ring the bell as well." (idlwave-help-find-first-header nil) (setq idlwave-help-in-header nil) (idlwave-help-toggle-header-match-and-def arg 'top))) - + (defun idlwave-help-toggle-header-match-and-def (arg &optional top) (interactive "P") (let ((args idlwave-help-args) @@ -1100,7 +1101,7 @@ When DING is non-nil, ring the bell as well." (setq pos idlwave-help-def-pos)) ;; Try to display header (setq pos (apply 'idlwave-help-find-in-doc-header - (if top + (if top (list (car args) (nth 1 args) (nth 2 args) nil) args))) (if pos @@ -1134,7 +1135,7 @@ Useful when source code is displayed as help. See the option (font-lock-fontify-buffer)) (set-syntax-table syntax-table))))) - + (defun idlwave-help-error (name type class keyword) (error "Can't find help on %s%s %s" (or (and (or class name) (idlwave-make-full-name class name)) diff --git a/lisp/progmodes/idlw-rinfo.el b/lisp/progmodes/idlw-rinfo.el index cfd5db3392a..367de774bcf 100644 --- a/lisp/progmodes/idlw-rinfo.el +++ b/lisp/progmodes/idlw-rinfo.el @@ -1,6 +1,7 @@ ;;; idlw-rinfo.el --- Routine Information for IDLWAVE ;; Copyright (c) 1999 Carsten Dominik -;; Copyright (c) 1999, 2000, 2001,2002,2003,2004,2005 Free Software Foundation +;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation ;; Author: J.D. Smith <jdsmith@as.arizona.edu> ;; Version: 5.7_22 @@ -1898,7 +1899,7 @@ ) "1850 builtin routines with 7685 keywords for IDL version 6.1.") -(setq idlwave-system-variables-alist +(defvar idlwave-system-variables-alist '( ("C" (link "sysvars7.html#wp997337")) ("CPU" (tags ("HW_VECTOR") ("VECTOR_ENABLE") ("HW_NCPU") ("TPOOL_NTHREADS") ("TPOOL_MIN_ELTS") ("TPOOL_MAX_ELTS")) (link "sysvars6.html#wp1014201")) @@ -1931,7 +1932,7 @@ ("Z" (tags ("TITLE" . 997839) ("TYPE" . 997842) ("STYLE" . 997742) ("TICKS" . 999577) ("TICKLEN" . 1012793) ("THICK" . 997798) ("RANGE" . 997713) ("CRANGE" . 997670) ("S" . 997736) ("MARGIN" . 997689) ("OMARGIN" . 997702) ("WINDOW" . 997845) ("REGION" . 997724) ("CHARSIZE" . 1012787) ("MINOR" . 997699) ("TICKV" . 997833) ("TICKNAME" . 997811) ("GRIDSTYLE" . 998134) ("TICKFORMAT" . 997801) ("TICKINTERVAL" . 997808) ("TICKLAYOUT" . 1012924) ("TICKUNITS" . 1012962)) (link "sysvars7.html#wp997657")))) -(setq idlwave-system-class-info +(defvar idlwave-system-class-info '( ("IDLgrContour" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRCONTOUR_TOP" "IDLGRCONTOURVERSION" "AM_PM" "ANISOTROPY" "DATA_FORMAT" "DATA" "DAYS_OF_WEEK" "GEOM_FORMAT" "GEOM" "CONTOURFLAGS" "C_COLOR" "C_FILLPATTERN" "C_LABEL_INTERVAL" "C_LABEL_NOGAPS" "C_LABEL_OBJECTS" "C_LABEL_SHOW" "C_LINESTYLE" "C_THICK" "C_USE_LABEL_COLOR" "C_USE_LABEL_ORIENTATION" "C_VALUE" "LABEL_DEFAULTS" "LABEL_FONT" "LABEL_FORMAT" "LABEL_FRMTDATA" "LABEL_UNITS" "LABEL_UNIT_CODE" "MAXVAL" "MINVAL" "MONTHS" "NLEVELS" "POLYGONS" "SHADERANGE" "SHADING" "TICKINTERVAL" "TICKLEN" "PRECISIONDATA" "PRECISIONGEOM" "PRECISIONGRAPH" "LEVELINFO" "CFILL1" "DEPTHOFFSET" "MAPINFO" "IDLGRCONTOUR_BOTTOM") (inherits "IDLitComponent") (link "objects_gr43.html")) ("IDLgrAxis" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRAXIS_TOP" "IDLGRAXISVERSION" "AM_PM" "AXIS_TYPE" "CALCFLAGS" "DAYS_OF_WEEK" "DIRECTION" "AXISFLAGS" "GRIDSTYLE" "LOCATION" "MAJOR" "MINOR" "MONTHS" "OUTRANGE" "RANGE" "SUBTICKLEN" "TEXTALIGNMENTS" "TEXTBASELINE" "TEXTUPDIR" "THICK" "TICKDIR" "TICKFORMAT" "ARRAY_TICKFORMAT" "TICKFRMTDATA" "TICKINTERVAL" "TICKLAYOUT" "TICKLEN" "TICKTEXT" "TICKUNITCODES" "TICKUNITS" "TICKVALUES" "TITLE" "CURRENT_LEVEL" "LEVEL_DATA" "STEPRANGEUNITS" "STEPRANGE" "IDLGRAXIS_BOTTOM") (inherits "IDLitComponent") (link "objects_gr3.html")) @@ -2013,7 +2014,7 @@ ("IDLjavaObject" (link "objects_misc28.html")))) -(setq idlwave-executive-commands-alist '( +(defvar idlwave-executive-commands-alist '( ("RESET_SESSION" . "symbols8.html") ("TRACE" . "symbols15.html") ("RNEW" . "symbols10.html") diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index 08c95e5bdd5..cc706195cc2 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el @@ -1,5 +1,6 @@ ;; idlw-shell.el --- run IDL as an inferior process of Emacs. -;; Copyright (c) 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation +;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> ;; Carsten Dominik <dominik@astro.uva.nl> @@ -532,9 +533,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." '((((class color)) (:foreground "Black" :background "Pink")) (t (:underline t))) "Face for highlighting lines with breakpoints." - :group 'idlwave-shell-highlighting-and-faces) - ;; backward-compatibility alias - (put 'idlwave-shell-bp-face 'face-alias 'idlwave-shell-bp)) + :group 'idlwave-shell-highlighting-and-faces)) (defcustom idlwave-shell-disabled-breakpoint-face 'idlwave-shell-disabled-bp @@ -552,10 +551,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." '((((class color)) (:foreground "Black" :background "gray")) (t (:underline t))) "Face for highlighting lines with breakpoints." - :group 'idlwave-shell-highlighting-and-faces) - ;; backward-compatibility alias - (put 'idlwave-shell-disabled-bp-face 'face-alias 'idlwave-shell-disabled-bp)) - + :group 'idlwave-shell-highlighting-and-faces)) (defcustom idlwave-shell-expression-face 'secondary-selection "*The face for `idlwave-shell-expression-overlay'. @@ -2760,13 +2756,14 @@ Runs to the last statement and then steps 1 statement. Use the .out command." t) (defun idlwave-xemacs-hack-mouse-track (event) - (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button))) - (unwind-protect - (progn - (fset 'default-mouse-track-event-is-with-button - 'idlwave-default-mouse-track-event-is-with-button) - (mouse-track event)) - (fset 'default-mouse-track-event-is-with-button oldfunc)))) + (if (featurep 'xemacs) + (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button))) + (unwind-protect + (progn + (fset 'default-mouse-track-event-is-with-button + 'idlwave-default-mouse-track-event-is-with-button) + (mouse-track event)) + (fset 'default-mouse-track-event-is-with-button oldfunc))))) ;;; End terrible hack section (defun idlwave-shell-mouse-print (event) diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el index 8d4a8e1f025..08dd08335bb 100644 --- a/lisp/progmodes/idlw-toolbar.el +++ b/lisp/progmodes/idlw-toolbar.el @@ -1,5 +1,6 @@ ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE -;; Copyright (c) 1999, 2000, 2001,2002,2004 Free Software Foundation +;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation ;; Author: Carsten Dominik <dominik@astro.uva.nl> ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> @@ -43,6 +44,9 @@ (list 'image :type 'xpm :data image))) (defvar default-toolbar) +(defvar idlwave-toolbar) +(defvar idlwave-toolbar-is-possible) + (if (not (or (and (featurep 'xemacs) ; This is XEmacs (featurep 'xpm) ; need xpm (featurep 'toolbar)) ; ... and the toolbar diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 5bf7d1b70a6..64845e38aea 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -1,6 +1,7 @@ ;;; inf-lisp.el --- an inferior-lisp mode -;; Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Keywords: processes, lisp diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el index e326d11c65d..a2449b6817e 100644 --- a/lisp/progmodes/ld-script.el +++ b/lisp/progmodes/ld-script.el @@ -1,6 +1,6 @@ ;;; ld-script.el --- GNU linker script editing mode for Emacs -;; Copyright (C) 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Masatake YAMATO<jet@gyve.org> ;; Keywords: languages, faces @@ -39,8 +39,6 @@ '((t (:weight bold :inherit font-lock-builtin-face))) "Face for location counter in GNU ld script." :group 'ld-script) -;; backward-compatibility alias -(put 'ld-script-location-counter-face 'face-alias 'ld-script-location-counter) ;; Syntax rules (defvar ld-script-mode-syntax-table diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index 3ad3c1de421..f131576d240 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el @@ -1,6 +1,7 @@ ;;; m4-mode.el --- m4 code editing commands for Emacs -;;; Copyright (C) 1996, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Andrew Csillag <drew_csillag@geocities.com> ;; Maintainer: Andrew Csillag <drew_csillag@geocities.com> diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 04f83a4d530..b8336691307 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el @@ -1,6 +1,7 @@ ;;; make-mode.el --- makefile editing commands for Emacs -;; Copyright (C) 1992,94,99,2000,2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Thomas Neumann <tom@smart.bo.open.de> ;; Eric S. Raymond <esr@snark.thyrsus.com> diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el index 83caccbe0f5..71791ef965b 100644 --- a/lisp/progmodes/mantemp.el +++ b/lisp/progmodes/mantemp.el @@ -1,6 +1,7 @@ ;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Tom Houlder <thoulder@icor.fr> ;; Created: 10 Dec 1996 diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el index f89fd8c7fad..9ae3e5a5935 100644 --- a/lisp/progmodes/meta-mode.el +++ b/lisp/progmodes/meta-mode.el @@ -1,6 +1,7 @@ ;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> ;; Version: 1.0 diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el index 73b87bbfa43..fd494324303 100644 --- a/lisp/progmodes/mixal-mode.el +++ b/lisp/progmodes/mixal-mode.el @@ -1,6 +1,6 @@ ;;; mixal-mode.el --- Major mode for the mix asm language. -;; Copyright (C) 2003 Free Software Foundation +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -55,6 +55,8 @@ ;;; Code: +(defvar compile-command) + ;;; Key map (defvar mixal-mode-map (let ((map (make-sparse-keymap))) diff --git a/lisp/progmodes/octave-hlp.el b/lisp/progmodes/octave-hlp.el index 38e1bcfd617..f9654ef71cb 100644 --- a/lisp/progmodes/octave-hlp.el +++ b/lisp/progmodes/octave-hlp.el @@ -1,10 +1,11 @@ ;;; octave-hlp.el --- getting help on Octave symbols using info -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. -;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Author: John Eaton <jwe@bevo.che.wisc.edu> -;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Keywords: languages ;; This file is part of GNU Emacs. diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el index 4cd8bc764fd..917016cf159 100644 --- a/lisp/progmodes/octave-inf.el +++ b/lisp/progmodes/octave-inf.el @@ -1,10 +1,11 @@ ;;; octave-inf.el --- running Octave as an inferior Emacs process -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. -;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Author: John Eaton <jwe@bevo.che.wisc.edu> -;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Keywords: languages ;; This file is part of GNU Emacs. diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el index 2053dd8f9c2..e37f3b14a15 100644 --- a/lisp/progmodes/octave-mod.el +++ b/lisp/progmodes/octave-mod.el @@ -1,10 +1,11 @@ ;;; octave-mod.el --- editing Octave source files under Emacs -;; Copyright (C) 1997, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. -;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Author: John Eaton <jwe@bevo.che.wisc.edu> -;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> +;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Keywords: languages ;; This file is part of GNU Emacs. @@ -51,7 +52,7 @@ (defvar inferior-octave-receive-in-progress nil) (defconst octave-maintainer-address - "Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>, bug-gnu-emacs@gnu.org" + "Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>, bug-gnu-emacs@gnu.org" "Current maintainer of the Emacs Octave package.") (defvar octave-abbrev-table nil diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el index ebe37bc1d46..47b36db6539 100644 --- a/lisp/progmodes/pascal.el +++ b/lisp/progmodes/pascal.el @@ -1,6 +1,7 @@ ;;; pascal.el --- major mode for editing pascal source in Emacs -;; Copyright (C) 1993, 94, 95, 96, 97, 98, 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Espen Skoglund <esk@gnu.org> ;; Keywords: languages @@ -1493,12 +1494,12 @@ The default is a name found in the buffer around point." (if pascal-outline-map nil - (if (boundp 'set-keymap-name) + (if (fboundp 'set-keymap-name) (set-keymap-name pascal-outline-map 'pascal-outline-map)) - (if (not (boundp 'set-keymap-parent)) - (setq pascal-outline-map (copy-keymap pascal-mode-map)) - (setq pascal-outline-map (make-sparse-keymap)) - (set-keymap-parent pascal-outline-map pascal-mode-map)) + (if (fboundp 'set-keymap-parent) + (set-keymap-parent (setq pascal-outline-map (make-sparse-keymap)) + pascal-mode-map) + (setq pascal-outline-map (copy-keymap pascal-mode-map))) (define-key pascal-outline-map "\M-\C-a" 'pascal-outline-prev-defun) (define-key pascal-outline-map "\M-\C-e" 'pascal-outline-next-defun) (define-key pascal-outline-map "\C-c\C-d" 'pascal-outline-goto-defun) @@ -1533,7 +1534,7 @@ Pascal Outline mode provides some additional commands. (interactive "P") (setq pascal-outline-mode (if (null arg) (not pascal-outline-mode) t)) - (if (boundp 'redraw-mode-line) + (if (fboundp 'redraw-mode-line) (redraw-mode-line)) (if pascal-outline-mode (progn diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index ce966d4d1bb..7991f1fd1b4 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -1,6 +1,7 @@ ;;; perl-mode.el --- Perl code editing commands for GNU Emacs -;; Copyright (C) 1990, 1994, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: William F. Mann ;; Maintainer: FSF @@ -106,6 +107,10 @@ (eval-when-compile (require 'cl)) +(defvar font-lock-comment-face) +(defvar font-lock-doc-face) +(defvar font-lock-string-face) + (defgroup perl nil "Major mode for editing Perl code." :prefix "perl-" diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 8d34dd54b3f..d23dbad0762 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el @@ -1,6 +1,7 @@ ;;; prolog.el --- major mode for editing and running Prolog under Emacs -;; Copyright (C) 1986, 1987, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> ;; Keywords: languages @@ -30,6 +31,9 @@ ;;; Code: +(defvar comint-prompt-regexp) + + (defgroup prolog nil "Major mode for editing and running Prolog under Emacs." :group 'languages) diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el index 1a5d393df31..fecf1f07eb5 100644 --- a/lisp/progmodes/ps-mode.el +++ b/lisp/progmodes/ps-mode.el @@ -1,6 +1,7 @@ ;;; ps-mode.el --- PostScript mode for GNU Emacs -;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Peter Kleiweg <p.c.j.kleiweg@rug.nl> ;; Maintainer: Peter Kleiweg <p.c.j.kleiweg@rug.nl> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index f5431431902..433476f7957 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -67,7 +67,6 @@ (eval-when-compile (require 'compile) (autoload 'info-lookup-maybe-add-help "info-look")) -(autoload 'compilation-start "compile") (defgroup python nil "Silly walks in the Python language." diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 3f31f4e2667..712f967fcbc 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -1,6 +1,6 @@ ;;; scheme.el --- Scheme (and DSSSL) editing mode -;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2005 +;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Bill Rozas <jinx@martigny.ai.mit.edu> diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 3261f7bcc98..4f702186685 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -199,6 +199,9 @@ (require 'comint)) (require 'executable) +(defvar font-lock-comment-face) +(defvar font-lock-set-defaults) +(defvar font-lock-string-face) (defgroup sh nil @@ -815,7 +818,7 @@ See `sh-feature'.") :group 'sh-script :version "22.1") -(defvar sh-font-lock-keywords +(defvar sh-font-lock-keywords-var '((csh sh-append shell ("\\${?[#?]?\\([A-Za-z_][A-Za-z0-9_]*\\|0\\)" 1 font-lock-variable-name-face)) @@ -838,7 +841,7 @@ See `sh-feature'.") 1 font-lock-negation-char-face)) ;; The next entry is only used for defining the others - (shell sh-append executable-font-lock-keywords + (shell ;; Using font-lock-string-face here confuses sh-get-indent-info. ("\\(^\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\)$" 3 'sh-escaped-newline) ("\\\\[^A-Za-z0-9]" 0 font-lock-string-face) @@ -850,11 +853,11 @@ See `sh-feature'.") ("^\\(\\sw+\\):" 1 font-lock-variable-name-face))) "Default expressions to highlight in Shell Script modes. See `sh-feature'.") -(defvar sh-font-lock-keywords-1 +(defvar sh-font-lock-keywords-var-1 '((sh "[ \t]in\\>")) "Subdued level highlighting for Shell Script modes.") -(defvar sh-font-lock-keywords-2 () +(defvar sh-font-lock-keywords-var-2 () "Gaudy level highlighting for Shell Script modes.") ;; These are used for the syntax table stuff (derived from cperl-mode). @@ -1364,9 +1367,12 @@ with your script for an edit-interpret-debug cycle." paragraph-start (concat page-delimiter "\\|$") paragraph-separate paragraph-start comment-start "# " + comment-start-skip "#+[\t ]*" + local-abbrev-table sh-mode-abbrev-table comint-dynamic-complete-functions sh-dynamic-complete-functions ;; we can't look if previous line ended with `\' comint-prompt-regexp "^[ \t]*" + imenu-case-fold-search nil font-lock-defaults `((sh-font-lock-keywords sh-font-lock-keywords-1 sh-font-lock-keywords-2) @@ -1403,13 +1409,14 @@ with your script for an edit-interpret-debug cycle." (defun sh-font-lock-keywords (&optional keywords) "Function to get simple fontification based on `sh-font-lock-keywords'. This adds rules for comments and assignments." - (sh-feature sh-font-lock-keywords + (sh-feature sh-font-lock-keywords-var (when (stringp (sh-feature sh-assignment-regexp)) (lambda (list) `((,(sh-feature sh-assignment-regexp) 1 font-lock-variable-name-face) ,@keywords - ,@list))))) + ,@list + ,@executable-font-lock-keywords))))) (defun sh-font-lock-keywords-1 (&optional builtins) "Function to get better fontification including keywords." @@ -1426,10 +1433,10 @@ This adds rules for comments and assignments." "\\>") (2 font-lock-keyword-face nil t) (6 font-lock-builtin-face)) - ,@(sh-feature sh-font-lock-keywords-2))) + ,@(sh-feature sh-font-lock-keywords-var-2))) (,(concat keywords "\\)\\>") 2 font-lock-keyword-face) - ,@(sh-feature sh-font-lock-keywords-1))))) + ,@(sh-feature sh-font-lock-keywords-var-1))))) (defun sh-font-lock-keywords-2 () "Function to get better fontification including keywords and builtins." @@ -1491,6 +1498,7 @@ This adds rules for comments and assignments." ("case" sh-handle-this-rc-case sh-handle-prev-rc-case)))) + (defun sh-set-shell (shell &optional no-query-flag insert-flag) "Set this buffer's shell to SHELL (a string). When used interactively, insert the proper starting #!-line, @@ -1523,13 +1531,10 @@ Calls the value of `sh-set-shell-hook' if set." (if (eq tem t) (setq require-final-newline mode-require-final-newline))) (setq - comment-start-skip "#+[\t ]*" - local-abbrev-table sh-mode-abbrev-table mode-line-process (format "[%s]" sh-shell) sh-shell-variables nil sh-shell-variables-initialized nil - imenu-generic-expression (sh-feature sh-imenu-generic-expression) - imenu-case-fold-search nil) + imenu-generic-expression (sh-feature sh-imenu-generic-expression)) (make-local-variable 'sh-mode-syntax-table) (let ((tem (sh-feature sh-mode-syntax-table-input))) (setq sh-mode-syntax-table @@ -1557,10 +1562,13 @@ Calls the value of `sh-set-shell-hook' if set." (message "Indentation setup for shell type %s" sh-shell)) (message "No indentation for this shell type.") (setq indent-line-function 'sh-basic-indent-line)) + (when font-lock-mode + (setq font-lock-set-defaults nil) + (font-lock-set-defaults) + (font-lock-fontify-buffer)) (run-hooks 'sh-set-shell-hook)) - (defun sh-feature (alist &optional function) "Index ALIST by the current shell. If ALIST isn't a list where every element is a cons, it is returned as is. @@ -1578,39 +1586,38 @@ Else indexing follows an inheritance logic which works in two ways: one shell to be derived from another shell. The value thus determined is physically replaced into the alist. -Optional FUNCTION is applied to the determined value and the result is cached -in ALIST." +If FUNCTION is non-nil, it is called with one argument, +the value thus obtained, and the result is used instead." (or (if (consp alist) + ;; Check for something that isn't a valid alist. (let ((l alist)) (while (and l (consp (car l))) (setq l (cdr l))) (if l alist))) - (if function - (cdr (assoc (setq function (cons sh-shell function)) alist))) - (let ((sh-shell sh-shell) - elt val) - (while (and sh-shell - (not (setq elt (assq sh-shell alist)))) - (setq sh-shell (cdr (assq sh-shell sh-ancestor-alist)))) - ;; If the shell is not known, treat it as sh. - (unless elt - (setq elt (assq 'sh alist))) - (if (and (consp (setq val (cdr elt))) - (memq (car val) '(sh-append sh-modify))) - (setcdr elt - (setq val - (apply (car val) - (let ((sh-shell (car (cdr val)))) - (if (assq sh-shell alist) - (sh-feature alist) - (eval sh-shell))) - (cddr val))))) - (if function - (nconc alist - (list (cons function - (setq sh-shell (car function) - val (funcall (cdr function) val)))))) - val))) + + (let ((orig-sh-shell sh-shell)) + (let ((sh-shell sh-shell) + elt val) + (while (and sh-shell + (not (setq elt (assq sh-shell alist)))) + (setq sh-shell (cdr (assq sh-shell sh-ancestor-alist)))) + ;; If the shell is not known, treat it as sh. + (unless elt + (setq elt (assq 'sh alist))) + (setq val (cdr elt)) + (if (and (consp val) + (memq (car val) '(sh-append sh-modify))) + (setq val + (apply (car val) + ;; Refer to the value for a different shell, + ;; as a kind of inheritance. + (let ((sh-shell (car (cdr val)))) + (sh-feature alist)) + (cddr val)))) + (if function + (setq sh-shell orig-sh-shell + val (funcall function val))) + val)))) @@ -2033,11 +2040,20 @@ STRING This is ignored for the purposes of calculating ;; Continuation lines are handled specially (if (sh-this-is-a-continuation) (progn - ;; We assume the line being continued is already - ;; properly indented... - ;; (setq prev-line-end (sh-prev-line)) - (setq align-point (sh-prev-line nil)) - (setq result (list '(+ sh-indent-for-continuation))) + (setq result + (if (save-excursion + (beginning-of-line) + (not (memq (char-before (- (point) 2)) '(?\s ?\t)))) + ;; By convention, if the continuation \ is not + ;; preceded by a SPC or a TAB it means that the line + ;; is cut at a place where spaces cannot be freely + ;; added/removed. I.e. do not indent the line. + (list '(= nil)) + ;; We assume the line being continued is already + ;; properly indented... + ;; (setq prev-line-end (sh-prev-line)) + (setq align-point (sh-prev-line nil)) + (list '(+ sh-indent-for-continuation)))) (setq have-result t)) (beginning-of-line) (skip-chars-forward " \t") @@ -2130,10 +2146,9 @@ STRING This is ignored for the purposes of calculating (sh-debug "result is now: %s" result) (or result - (if prev-line-end - (setq result (list (list t prev-line-end))) - (setq result (list (list '= 'sh-first-lines-indent))) - )) + (setq result (list (if prev-line-end + (list t prev-line-end) + (list '= 'sh-first-lines-indent))))) (if (eq result t) (setq result nil)) @@ -2695,11 +2710,9 @@ unless optional argument ARG (the prefix when interactive) is non-nil." (defun sh-mark-init (buffer) "Initialize a BUFFER to be used by `sh-mark-line'." - (save-excursion - (set-buffer (get-buffer-create buffer)) + (with-current-buffer (get-buffer-create buffer) (erase-buffer) - (occur-mode) - )) + (occur-mode))) (defun sh-mark-line (message point buffer &optional add-linenum occur-point) @@ -2972,8 +2985,7 @@ This command can often take a long time to run." (let ((var (car learned-var))) (sh-mark-line (format " %s %s" var (symbol-value var)) (nth 2 learned-var) out-buffer))) - (save-excursion - (set-buffer out-buffer) + (with-current-buffer out-buffer (goto-char (point-min)) (insert (format "Indentation values for buffer %s.\n" name) @@ -3244,8 +3256,7 @@ nil means to return the best completion of STRING, or nil if there is none. t means to return a list of all possible completions of STRING. `lambda' means to return t if STRING is a valid completion as it stands." (let ((sh-shell-variables - (save-excursion - (set-buffer sh-add-buffer) + (with-current-buffer sh-add-buffer (or sh-shell-variables-initialized (sh-shell-initialize-variables)) (nconc (mapcar (lambda (var) diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el index 46bdb493348..395bee1b226 100644 --- a/lisp/progmodes/simula.el +++ b/lisp/progmodes/simula.el @@ -1,6 +1,7 @@ ;;; simula.el --- SIMULA 87 code editing commands for Emacs -;; Copyright (C) 1992, 1994, 1996 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no> ;; Maintainer: simula-mode@ifi.uio.no diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index cbb33739c3e..6d73abb1432 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -1,6 +1,7 @@ ;;; sql.el --- specialized comint.el for SQL interpreters -;; Copyright (C) 1998,99,2000,01,02,03,04 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Michael Mauger <mmaug@yahoo.com> @@ -218,6 +219,10 @@ (eval-when-compile ;; needed in Emacs 19, 20 (setq max-specpdl-size 2000)) +(defvar font-lock-keyword-face) +(defvar font-lock-set-defaults) +(defvar font-lock-string-face) + ;;; Allow customization (defgroup SQL nil @@ -735,10 +740,11 @@ Used by `sql-rename-buffer'.") (defvar sql-interactive-mode-map (let ((map (make-sparse-keymap))) - (if (functionp 'set-keymap-parent) + (if (fboundp 'set-keymap-parent) (set-keymap-parent map comint-mode-map); Emacs - (set-keymap-parents map (list comint-mode-map))); XEmacs - (if (functionp 'set-keymap-name) + (if (fboundp 'set-keymap-parents) + (set-keymap-parents map (list comint-mode-map)))); XEmacs + (if (fboundp 'set-keymap-name) (set-keymap-name map 'sql-interactive-mode-map)); XEmacs (define-key map (kbd "C-j") 'sql-accumulate-and-indent) (define-key map (kbd "C-c C-w") 'sql-copy-column) @@ -1900,16 +1906,8 @@ appended to the SQLi buffer without disturbing your SQL buffer." (describe-function 'sql-help)) (defun sql-read-passwd (prompt &optional default) - "Read a password using PROMPT. -Optional DEFAULT is password to start with. This function calls -`read-passwd' if it is available. If not, function -`ange-ftp-read-passwd' is called. This should always be available, -even in old versions of Emacs." - (if (fboundp 'read-passwd) - (read-passwd prompt nil default) - (unless (fboundp 'ange-ftp-read-passwd) - (autoload 'ange-ftp-read-passwd "ange-ftp")) - (ange-ftp-read-passwd prompt default))) + "Read a password using PROMPT. Optional DEFAULT is password to start with." + (read-passwd prompt nil default)) (defun sql-get-login (&rest what) "Get username, password and database from the user. @@ -2305,7 +2303,7 @@ hooks on `comint-input-filter-functions' are run. After each SQL interpreter output, the hooks on `comint-output-filter-functions' are run. -Variable `sql-input-ring-file-name' controls the initialisation of the +Variable `sql-input-ring-file-name' controls the initialization of the input ring history. Variables `comint-output-filter-functions', a hook, and diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 0e4b13647d8..1caaa1f35b6 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -1,6 +1,6 @@ ;;; vhdl-mode.el --- major mode for editing VHDL code -;; Copyright (C) 1992-2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992-2003, 2004, 2005 Free Software Foundation, Inc. ;; Authors: Reto Zimmermann <reto@gnu.org> ;; Rodney J. Whitby <software.vhdl-mode@rwhitby.net> @@ -8,10 +8,10 @@ ;; Keywords: languages vhdl ;; WWW: http://opensource.ethz.ch/emacs/vhdl-mode.html -(defconst vhdl-version "3.32.12" +(defconst vhdl-version "3.33.6" "VHDL Mode version number.") -(defconst vhdl-time-stamp "2003-02-28" +(defconst vhdl-time-stamp "2005-08-30" "VHDL Mode time stamp for last update.") ;; This file is part of GNU Emacs. @@ -44,6 +44,8 @@ ;; - Insertion of file headers ;; - Insertion of user-specified models ;; - Port translation / testbench generation +;; - Structural composition +;; - Configuration generation ;; - Sensitivity list updating ;; - File browser ;; - Design hierarchy browser @@ -67,13 +69,13 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Emacs Versions -;; supported: GNU Emacs 20.X/21.X, XEmacs 20.X/21.X +;; supported: GNU Emacs 20.X/21.X/22.X, XEmacs 20.X/21.X ;; tested on: GNU Emacs 20.4, XEmacs 21.1 (marginally) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Installation -;; Prerequisites: GNU Emacs 20.X/21.X, XEmacs 20.X/21.X. +;; Prerequisites: GNU Emacs 20.X/21.X/22.X, XEmacs 20.X/21.X. ;; Put `vhdl-mode.el' into the `site-lisp' directory of your Emacs installation ;; or into an arbitrary directory that is added to the load path by the @@ -125,9 +127,17 @@ ;; XEmacs handling (defconst vhdl-xemacs (string-match "XEmacs" emacs-version) "Non-nil if XEmacs is used.") -;; Emacs 21 handling -(defconst vhdl-emacs-21 (and (= emacs-major-version 21) (not vhdl-xemacs)) - "Non-nil if Emacs 21 is used.") +;; Emacs 21+ handling +(defconst vhdl-emacs-21 (and (<= 21 emacs-major-version) (not vhdl-xemacs)) + "Non-nil if GNU Emacs 21, 22, ... is used.") +(defconst vhdl-emacs-22 (and (<= 22 emacs-major-version) (not vhdl-xemacs)) + "Non-nil if GNU Emacs 22, ... is used.") + +(defvar compilation-file-regexp-alist) +(defvar itimer-version) +(defvar lazy-lock-defer-contextually) +(defvar lazy-lock-defer-on-scrolling) +(defvar lazy-lock-defer-on-the-fly) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -175,7 +185,7 @@ Examples: "Customizations for VHDL Mode." :prefix "vhdl-" :group 'languages -; :version "20.4" ; comment out for XEmacs +; :version "21.2" ; comment out for XEmacs ) (defgroup vhdl-mode nil @@ -223,7 +233,8 @@ Overrides local variable `indent-tabs-mode'." ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl" ("ncvhdl_p: \\*E,\\w+ (\\(.+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) - nil) + ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db" + "\\1/package/pc.db" "\\1/body/pc.db" downcase)) ;; Ikos Voyager: analyze test.vhd ;; analyze test.vhd ;; E L4/C5: this library unit is inaccessible @@ -338,7 +349,7 @@ Compiler: Makefile name : name of Makefile (default is \"Makefile\") ID string : compiler identification string (see `vhdl-project-alist') Error message: - Regexp : regular expression to match error messages + Regexp : regular expression to match error messages (*) File subexp index: index of subexpression that matches the file name Line subexp index: index of subexpression that matches the line number Column subexp idx: index of subexpression that matches the column number @@ -351,6 +362,9 @@ Unit-to-file name mapping: mapping of library unit names to names of files \"\\2\" inserts the entity name for architectures) Case adjustment : adjust case of inserted unit names +\(*) The regular expression must match the error message starting from the + beginning of the line (but not necessarily to the end of the line). + Compile options allows insertion of the library name (see `vhdl-project-alist') in order to set the compilers library option (e.g. \"vcom -work my_lib\"). @@ -380,8 +394,8 @@ assigning its name to option `vhdl-compiler'. Please send any missing or erroneous compiler properties to the maintainer for updating. -NOTE: Reflect the new setting in the choice list of option `vhdl-compiler' - by restarting Emacs." +NOTE: Activate new error and file message regexps and reflect the new setting + in the choice list of option `vhdl-compiler' by restarting Emacs." :type '(repeat (list :tag "Compiler" :indent 2 (string :tag "Compiler name ") @@ -421,7 +435,7 @@ NOTE: Reflect the new setting in the choice list of option `vhdl-compiler' (const :tag "Upcase" upcase) (const :tag "Downcase" downcase)))))) :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-update-mode-menu)) + (vhdl-custom-set variable value 'vhdl-update-mode-menu)) :group 'vhdl-compile) (defcustom vhdl-compiler "ModelSim" @@ -584,7 +598,7 @@ NOTE: Reflect the new setting in the choice list of option `vhdl-project' (string :tag "Description: (type `C-j' for newline)" :format "%t\n%v\n"))) :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-update-mode-menu 'vhdl-speedbar-refresh)) :group 'vhdl-project) @@ -661,7 +675,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry (const :tag "VHDL-AMS" ams) (const :tag "Math packages" math))) :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-template-map-init 'vhdl-mode-abbrev-table-init 'vhdl-template-construct-alist-init @@ -681,7 +695,7 @@ This value is used by + and - symbols in `vhdl-offsets-alist'." This is done when typed or expanded or by the fix case functions." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) + (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) :group 'vhdl-style) (defcustom vhdl-upper-case-types nil @@ -689,7 +703,7 @@ This is done when typed or expanded or by the fix case functions." This is done when expanded or by the fix case functions." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) + (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) :group 'vhdl-style) (defcustom vhdl-upper-case-attributes nil @@ -697,7 +711,7 @@ This is done when expanded or by the fix case functions." This is done when expanded or by the fix case functions." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) + (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) :group 'vhdl-style) (defcustom vhdl-upper-case-enum-values nil @@ -705,7 +719,7 @@ This is done when expanded or by the fix case functions." This is done when expanded or by the fix case functions." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) + (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) :group 'vhdl-style) (defcustom vhdl-upper-case-constants t @@ -713,7 +727,7 @@ This is done when expanded or by the fix case functions." This is done when expanded." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) + (vhdl-custom-set variable value 'vhdl-abbrev-list-init)) :group 'vhdl-style) (defcustom vhdl-use-direct-instantiation 'standard @@ -748,9 +762,22 @@ taken from the file name of the current buffer." "*Specifies how the architecture file name is obtained. The architecture file name can be obtained by modifying the entity and/or architecture name (e.g. attaching or stripping off a substring). The -string that is matched against the regexp is the concatenation of the entity -and the architecture name separated by a space. This gives access to both -names (see default setting as example)." +file extension is automatically taken from the file name of the current +buffer. The string that is matched against the regexp is the concatenation +of the entity and the architecture name separated by a space. This gives +access to both names (see default setting as example)." + vhdl-name-doc-string) + :type '(cons (regexp :tag "From regexp") + (string :tag "To string ")) + :group 'vhdl-naming + :group 'vhdl-compose) + +(defcustom vhdl-configuration-file-name '(".*" . "\\&") + (concat + "*Specifies how the configuration file name is obtained. +The configuration file name can be obtained by modifying the configuration +name (e.g. attaching or stripping off a substring). The file extension is +automatically taken from the file name of the current buffer." vhdl-name-doc-string) :type '(cons (regexp :tag "From regexp") (string :tag "To string ")) @@ -762,7 +789,9 @@ names (see default setting as example)." "*Specifies how the package file name is obtained. The package file name can be obtained by modifying the package name (e.g. attaching or stripping off a substring). The file extension is automatically -taken from the file name of the current buffer." +taken from the file name of the current buffer. Package files can be created +in a different directory by prepending a relative or absolute path to the +file name." vhdl-name-doc-string) :type '(cons (regexp :tag "From regexp") (string :tag "To string ")) @@ -796,7 +825,7 @@ follows: :type '(set (const :tag "VHDL keywords" vhdl) (const :tag "User model keywords" user)) :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-mode-abbrev-table-init)) + (vhdl-custom-set variable value 'vhdl-mode-abbrev-table-init)) :group 'vhdl-template) (defcustom vhdl-optional-labels 'process @@ -1030,7 +1059,7 @@ begin -- process <label> <cursor> elsif <clock>'event and <clock> = '1' then -- rising clock edge if <enable> = '1' then -- synchronous load - + end if; end if; end process <label>;" @@ -1070,7 +1099,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry (sexp :tag "Key binding" x) (string :tag "Keyword " :format "%t: %v\n"))) :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-model-map-init 'vhdl-model-defun 'vhdl-mode-abbrev-table-init @@ -1078,6 +1107,99 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry :group 'vhdl-model) +(defgroup vhdl-compose nil + "Customizations for structural composition." + :group 'vhdl) + +(defcustom vhdl-compose-architecture-name '(".*" . "str") + (concat + "*Specifies how the component architecture name is obtained. +The component architecture name can be obtained by modifying the entity name +\(e.g. attaching or stripping off a substring). +If TO STRING is empty, the architecture name is queried." + vhdl-name-doc-string) + :type '(cons (regexp :tag "From regexp") + (string :tag "To string ")) + :group 'vhdl-compose) + +(defcustom vhdl-compose-configuration-name + '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg") + (concat + "*Specifies how the configuration name is obtained. +The configuration name can be obtained by modifying the entity and/or +architecture name (e.g. attaching or stripping off a substring). The string +that is matched against the regexp is the concatenation of the entity and the +architecture name separated by a space. This gives access to both names (see +default setting as example)." + vhdl-name-doc-string) + :type '(cons (regexp :tag "From regexp") + (string :tag "To string ")) + :group 'vhdl-compose) + +(defcustom vhdl-components-package-name + '((".*" . "\\&_components") . "components") + (concat + "*Specifies how the name for the components package is obtained. +The components package is a package containing all component declarations for +the current design. It's name can be obtained by modifying the project name +\(e.g. attaching or stripping off a substring). If no project is defined, the +DIRECTORY entry is chosen." + vhdl-name-doc-string) + :type '(cons (cons :tag "Project" :indent 2 + (regexp :tag "From regexp") + (string :tag "To string ")) + (string :tag "Directory:\n String ")) + :group 'vhdl-compose) + +(defcustom vhdl-use-components-package nil + "*Non-nil means use a separate components package for component declarations. +Otherwise, component declarations are inserted and searched for in the +architecture declarative parts." + :type 'boolean + :group 'vhdl-compose) + +(defcustom vhdl-compose-include-header t + "*Non-nil means include a header in automatically generated files." + :type 'boolean + :group 'vhdl-compose) + +(defcustom vhdl-compose-create-files 'single + "*Specifies whether new files should be created for the new component. +The component's entity and architecture are inserted: + None : in current buffer + Single file : in new single file + Separate files: in two separate files +The file names are obtained from variables `vhdl-entity-file-name' and +`vhdl-architecture-file-name'." + :type '(choice (const :tag "None" none) + (const :tag "Single file" single) + (const :tag "Separate files" separate)) + :group 'vhdl-compose) + +(defcustom vhdl-compose-configuration-create-file nil + "*Specifies whether a new file should be created for the configuration. +If non-nil, a new file is created for the configuration. +The file name is obtained from variable `vhdl-configuration-file-name'." + :type 'boolean + :group 'vhdl-compose) + +(defcustom vhdl-compose-configuration-hierarchical t + "*Specifies whether hierarchical configurations should be created. +If non-nil, automatically created configurations are hierarchical and include +the whole hierarchy of subcomponents. Otherwise the configuration only +includes one level of subcomponents." + :type 'boolean + :group 'vhdl-compose) + +(defcustom vhdl-compose-configuration-use-subconfiguration t + "*Specifies whether subconfigurations should be used inside configurations. +If non-nil, automatically created configurations use configurations in binding +indications for subcomponents, if such configurations exist. Otherwise, +entities are used in binding indications for subcomponents." + :type 'boolean + :group 'vhdl-compose) + + (defgroup vhdl-port nil "Customizations for port translation functions." :group 'vhdl @@ -1157,8 +1279,7 @@ If TO STRING is empty, the architecture name is queried." (string :tag "To string ")) :group 'vhdl-testbench) -(defcustom vhdl-testbench-configuration-name - '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg") +(defcustom vhdl-testbench-configuration-name vhdl-compose-configuration-name (concat "*Specifies how the testbench configuration name is obtained. The configuration name of a testbench can be obtained by modifying the entity @@ -1207,7 +1328,7 @@ Type `C-j' for newlines." WaveGen_Proc: process begin -- insert signal assignments here - + wait until Clk = '1'; end process WaveGen_Proc; " @@ -1240,67 +1361,40 @@ testbench entity and architecture are inserted: None : in current buffer Single file : in new single file Separate files: in two separate files -Note that the files have the same name as the contained design unit." +The file names are obtained from variables `vhdl-testbench-entity-file-name' +and `vhdl-testbench-architecture-file-name'." :type '(choice (const :tag "None" none) (const :tag "Single file" single) (const :tag "Separate files" separate)) :group 'vhdl-testbench) - -(defgroup vhdl-compose nil - "Customizations for structural composition." - :group 'vhdl) - -(defcustom vhdl-compose-create-files 'single - "*Specifies whether new files should be created for the new component. -The component's entity and architecture are inserted: - None : in current buffer - Single file : in new single file - Separate files: in two separate files -The file names are obtained from variables `vhdl-entity-file-name' and -`vhdl-architecture-file-name'." - :type '(choice (const :tag "None" none) - (const :tag "Single file" single) - (const :tag "Separate files" separate)) - :group 'vhdl-compose) - -(defcustom vhdl-compose-include-header t - "*Non-nil means include a header in automatically generated files." - :type 'boolean - :group 'vhdl-compose) - -(defcustom vhdl-compose-architecture-name '(".*" . "str") +(defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name (concat - "*Specifies how the component architecture name is obtained. -The component architecture name can be obtained by modifying the entity name -\(e.g. attaching or stripping off a substring). -If TO STRING is empty, the architecture name is queried." + "*Specifies how the testbench entity file name is obtained. +The entity file name can be obtained by modifying the testbench entity name +\(e.g. attaching or stripping off a substring). The file extension is +automatically taken from the file name of the current buffer. Testbench +files can be created in a different directory by prepending a relative or +absolute path to the file name." vhdl-name-doc-string) :type '(cons (regexp :tag "From regexp") (string :tag "To string ")) - :group 'vhdl-compose) + :group 'vhdl-testbench) -(defcustom vhdl-components-package-name - '((".*" . "\\&_components") . "components") +(defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name (concat - "*Specifies how the name for the components package is obtained. -The components package is a package containing all component declarations for -the current design. Its name can be obtained by modifying the project name -\(e.g. attaching or stripping off a substring). If no project is defined, the -DIRECTORY entry is chosen." + "*Specifies how the testbench architecture file name is obtained. +The architecture file name can be obtained by modifying the testbench entity +and/or architecture name (e.g. attaching or stripping off a substring). The +string that is matched against the regexp is the concatenation of the entity +and the architecture name separated by a space. This gives access to both +names (see default setting as example). Testbench files can be created in +a different directory by prepending a relative or absolute path to the file +name." vhdl-name-doc-string) - :type '(cons (cons :tag "Project" :indent 2 - (regexp :tag "From regexp") - (string :tag "To string ")) - (string :tag "Directory:\n String ")) - :group 'vhdl-compose) - -(defcustom vhdl-use-components-package nil - "*Non-nil means use a separate components package for component declarations. -Otherwise, component declarations are inserted and searched for in the -architecture declarative parts." - :type 'boolean - :group 'vhdl-compose) + :type '(cons (regexp :tag "From regexp") + (string :tag "To string ")) + :group 'vhdl-testbench) (defgroup vhdl-comment nil @@ -1379,17 +1473,17 @@ Option `vhdl-align-groups' still applies within these blocks." (defcustom vhdl-highlight-keywords t "*Non-nil means highlight VHDL keywords and other standardized words. The following faces are used: - `font-lock-keyword-face' : keywords - `font-lock-type' : standardized types - `vhdl-attribute' : standardized attributes - `vhdl-enumvalue' : standardized enumeration values - `vhdl-function' : standardized function and package names + `font-lock-keyword-face' : keywords + `font-lock-type-face' : standardized types + `vhdl-font-lock-attribute-face': standardized attributes + `vhdl-font-lock-enumvalue-face': standardized enumeration values + `vhdl-font-lock-function-face' : standardized function and package names NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-font-lock-init)) + (vhdl-custom-set variable value 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-highlight-names t @@ -1398,7 +1492,7 @@ The following faces are used: `font-lock-function-name-face' : names in declarations of units, subprograms, components, as well as labels of VHDL constructs `font-lock-type-face' : names in type/nature declarations - `vhdl-attribute' : names in attribute declarations + `vhdl-font-lock-attribute-face': names in attribute declarations `font-lock-variable-name-face' : names in declarations of signals, variables, constants, subprogram parameters, generics, and ports @@ -1406,7 +1500,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-font-lock-init)) + (vhdl-custom-set variable value 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-highlight-special-words nil @@ -1419,34 +1513,34 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-font-lock-init)) + (vhdl-custom-set variable value 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-highlight-forbidden-words nil "*Non-nil means highlight forbidden words. The reserved words specified in option `vhdl-forbidden-words' or having the syntax specified in option `vhdl-forbidden-syntax' are highlighted in a -warning color (face `vhdl-reserved-word') to indicate not to +warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to use them. NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-words-init 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-highlight-verilog-keywords nil "*Non-nil means highlight Verilog keywords as reserved words. Verilog keywords are highlighted in a warning color (face -`vhdl-reserved-word') to indicate not to use them. +`vhdl-font-lock-reserved-words-face') to indicate not to use them. NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-words-init 'vhdl-font-lock-init)) :group 'vhdl-highlight) @@ -1454,14 +1548,14 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu "*Non-nil means background-highlight code excluded from translation. That is, all code between \"-- pragma translate_off\" and \"-- pragma translate_on\" is highlighted using a different background color -\(face `vhdl-translate-off'). +\(face `vhdl-font-lock-translate-off-face'). Note: this might slow down on-the-fly fontification (and thus editing). NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-font-lock-init)) + (vhdl-custom-set variable value 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-highlight-case-sensitive nil @@ -1501,7 +1595,7 @@ different kinds of signals (e.g. \"Clk50\", \"Rst_n\") or objects (e.g. \"Signal_s\", \"Variable_v\", \"Constant_c\") by distinguishing them using common substrings or name suffices. For each entry, a new face is generated with the specified colors and name -\"vhdl-\" + name. +\"vhdl-font-lock-\" + name + \"-face\". NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\"). All other changes require restarting Emacs." @@ -1511,7 +1605,7 @@ NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu (string :tag "Color (light)") (string :tag "Color (dark) "))) :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-font-lock-init)) + (vhdl-custom-set variable value 'vhdl-font-lock-init)) :group 'vhdl-highlight) (defcustom vhdl-forbidden-words '() @@ -1523,7 +1617,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type '(repeat (string :format "%v")) :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-words-init 'vhdl-font-lock-init)) :group 'vhdl-highlight) @@ -1538,7 +1632,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu entry \"Fontify Buffer\")." :type 'regexp :set (lambda (variable value) - (vhdl-custom-set variable value + (vhdl-custom-set variable value 'vhdl-words-init 'vhdl-font-lock-init)) :group 'vhdl-highlight) @@ -1734,7 +1828,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry \"Activate Options\"." :type 'boolean :set (lambda (variable value) - (vhdl-custom-set variable value 'vhdl-mode-syntax-table-init)) + (vhdl-custom-set variable value 'vhdl-mode-syntax-table-init)) :group 'vhdl-misc) @@ -1780,24 +1874,25 @@ reported and the syntactic symbol is ignored.") "*If non-nil, syntactic info is echoed when the line is indented.") (defconst vhdl-offsets-alist-default - '((string . -1000) - (block-open . 0) - (block-close . 0) - (statement . 0) - (statement-cont . vhdl-lineup-statement-cont) + '((string . -1000) + (cpp-macro . -1000) + (block-open . 0) + (block-close . 0) + (statement . 0) + (statement-cont . vhdl-lineup-statement-cont) (statement-block-intro . +) (statement-case-intro . +) - (case-alternative . +) - (comment . vhdl-lineup-comment) - (arglist-intro . +) - (arglist-cont . 0) + (case-alternative . +) + (comment . vhdl-lineup-comment) + (arglist-intro . +) + (arglist-cont . 0) (arglist-cont-nonempty . vhdl-lineup-arglist) - (arglist-close . vhdl-lineup-arglist) - (entity . 0) - (configuration . 0) - (package . 0) - (architecture . 0) - (package-body . 0) + (arglist-close . vhdl-lineup-arglist) + (entity . 0) + (configuration . 0) + (package . 0) + (architecture . 0) + (package-body . 0) ) "Default settings for offsets of syntactic elements. Do not change this constant! See the variable `vhdl-offsets-alist' for @@ -2031,6 +2126,10 @@ Ignore byte-compiler warnings you might see." (setq dirs (cdr dirs))) contents))) +;; `member-ignore-case' undefined (XEmacs) +(unless (fboundp 'member-ignore-case) + (defalias 'member-ignore-case 'member)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Compatibility with older VHDL Mode versions @@ -2570,25 +2669,25 @@ STRING are replaced by `-' and substrings are converted to lower case." "Initialize `vhdl-mode-map'." (setq vhdl-mode-map (make-sparse-keymap)) ;; template key bindings - (define-key vhdl-mode-map "\C-c\C-t" vhdl-template-map) + (define-key vhdl-mode-map "\C-c\C-t" vhdl-template-map) ;; model key bindings - (define-key vhdl-mode-map "\C-c\C-m" vhdl-model-map) + (define-key vhdl-mode-map "\C-c\C-m" vhdl-model-map) ;; standard key bindings - (define-key vhdl-mode-map "\M-a" 'vhdl-beginning-of-statement) - (define-key vhdl-mode-map "\M-e" 'vhdl-end-of-statement) - (define-key vhdl-mode-map "\M-\C-f" 'vhdl-forward-sexp) - (define-key vhdl-mode-map "\M-\C-b" 'vhdl-backward-sexp) - (define-key vhdl-mode-map "\M-\C-u" 'vhdl-backward-up-list) - (define-key vhdl-mode-map "\M-\C-a" 'vhdl-backward-same-indent) - (define-key vhdl-mode-map "\M-\C-e" 'vhdl-forward-same-indent) + (define-key vhdl-mode-map "\M-a" 'vhdl-beginning-of-statement) + (define-key vhdl-mode-map "\M-e" 'vhdl-end-of-statement) + (define-key vhdl-mode-map "\M-\C-f" 'vhdl-forward-sexp) + (define-key vhdl-mode-map "\M-\C-b" 'vhdl-backward-sexp) + (define-key vhdl-mode-map "\M-\C-u" 'vhdl-backward-up-list) + (define-key vhdl-mode-map "\M-\C-a" 'vhdl-backward-same-indent) + (define-key vhdl-mode-map "\M-\C-e" 'vhdl-forward-same-indent) (unless vhdl-xemacs ; would override `M-backspace' in XEmacs - (define-key vhdl-mode-map "\M-\C-h" 'vhdl-mark-defun)) - (define-key vhdl-mode-map "\M-\C-q" 'vhdl-indent-sexp) - (define-key vhdl-mode-map "\M-^" 'vhdl-delete-indentation) + (define-key vhdl-mode-map "\M-\C-h" 'vhdl-mark-defun)) + (define-key vhdl-mode-map "\M-\C-q" 'vhdl-indent-sexp) + (define-key vhdl-mode-map "\M-^" 'vhdl-delete-indentation) ;; backspace/delete key bindings - (define-key vhdl-mode-map [backspace] 'backward-delete-char-untabify) + (define-key vhdl-mode-map [backspace] 'backward-delete-char-untabify) (unless (boundp 'delete-key-deletes-forward) ; XEmacs variable - (define-key vhdl-mode-map [delete] 'delete-char) + (define-key vhdl-mode-map [delete] 'delete-char) (define-key vhdl-mode-map [(meta delete)] 'kill-word)) ;; mode specific key bindings (define-key vhdl-mode-map "\C-c\C-m\C-e" 'vhdl-electric-mode) @@ -2598,7 +2697,7 @@ STRING are replaced by `-' and substrings are converted to lower case." (define-key vhdl-mode-map "\C-c\C-p\C-m" 'vhdl-import-project) (define-key vhdl-mode-map "\C-c\C-p\C-x" 'vhdl-export-project) (define-key vhdl-mode-map "\C-c\C-s\C-k" 'vhdl-set-compiler) - (define-key vhdl-mode-map "\C-c\C-k" 'vhdl-compile) + (define-key vhdl-mode-map "\C-c\C-k" 'vhdl-compile) (define-key vhdl-mode-map "\C-c\M-\C-k" 'vhdl-make) (define-key vhdl-mode-map "\C-c\M-k" 'vhdl-generate-makefile) (define-key vhdl-mode-map "\C-c\C-p\C-w" 'vhdl-port-copy) @@ -2624,13 +2723,14 @@ STRING are replaced by `-' and substrings are converted to lower case." (define-key vhdl-mode-map "\C-c\C-c\C-n" 'vhdl-compose-new-component) (define-key vhdl-mode-map "\C-c\C-c\C-p" 'vhdl-compose-place-component) (define-key vhdl-mode-map "\C-c\C-c\C-w" 'vhdl-compose-wire-components) + (define-key vhdl-mode-map "\C-c\C-c\C-f" 'vhdl-compose-configuration) (define-key vhdl-mode-map "\C-c\C-c\C-k" 'vhdl-compose-components-package) (define-key vhdl-mode-map "\C-cc" 'vhdl-comment-uncomment-region) - (define-key vhdl-mode-map "\C-c-" 'vhdl-comment-append-inline) - (define-key vhdl-mode-map "\C-c\M--" 'vhdl-comment-display-line) + (define-key vhdl-mode-map "\C-c-" 'vhdl-comment-append-inline) + (define-key vhdl-mode-map "\C-c\M--" 'vhdl-comment-display-line) (define-key vhdl-mode-map "\C-c\C-i\C-l" 'indent-according-to-mode) (define-key vhdl-mode-map "\C-c\C-i\C-g" 'vhdl-indent-group) - (define-key vhdl-mode-map "\M-\C-\\" 'vhdl-indent-region) + (define-key vhdl-mode-map "\M-\C-\\" 'vhdl-indent-region) (define-key vhdl-mode-map "\C-c\C-i\C-b" 'vhdl-indent-buffer) (define-key vhdl-mode-map "\C-c\C-a\C-g" 'vhdl-align-group) (define-key vhdl-mode-map "\C-c\C-a\C-a" 'vhdl-align-group) @@ -2660,38 +2760,35 @@ STRING are replaced by `-' and substrings are converted to lower case." (define-key vhdl-mode-map "\C-c\C-x\C-c" 'vhdl-fix-case-buffer) (define-key vhdl-mode-map "\C-c\C-x\M-w" 'vhdl-fixup-whitespace-region) (define-key vhdl-mode-map "\C-c\C-x\C-w" 'vhdl-fixup-whitespace-buffer) - (define-key vhdl-mode-map "\C-c\M-b" 'vhdl-beautify-region) - (define-key vhdl-mode-map "\C-c\C-b" 'vhdl-beautify-buffer) + (define-key vhdl-mode-map "\C-c\M-b" 'vhdl-beautify-region) + (define-key vhdl-mode-map "\C-c\C-b" 'vhdl-beautify-buffer) (define-key vhdl-mode-map "\C-c\C-u\C-s" 'vhdl-update-sensitivity-list-process) (define-key vhdl-mode-map "\C-c\C-u\M-s" 'vhdl-update-sensitivity-list-buffer) - (define-key vhdl-mode-map "\C-cf" 'vhdl-fontify-buffer) - (define-key vhdl-mode-map "\C-cs" 'vhdl-statistics-buffer) - (define-key vhdl-mode-map "\C-c\M-m" 'vhdl-show-messages) - (define-key vhdl-mode-map "\C-c\C-h" 'vhdl-doc-mode) - (define-key vhdl-mode-map "\C-c\C-v" 'vhdl-version) - (define-key vhdl-mode-map "\M-\t" 'insert-tab) + (define-key vhdl-mode-map "\C-cf" 'vhdl-fontify-buffer) + (define-key vhdl-mode-map "\C-cs" 'vhdl-statistics-buffer) + (define-key vhdl-mode-map "\C-c\M-m" 'vhdl-show-messages) + (define-key vhdl-mode-map "\C-c\C-h" 'vhdl-doc-mode) + (define-key vhdl-mode-map "\C-c\C-v" 'vhdl-version) + (define-key vhdl-mode-map "\M-\t" 'insert-tab) ;; insert commands bindings (define-key vhdl-mode-map "\C-c\C-i\C-t" 'vhdl-template-insert-construct) (define-key vhdl-mode-map "\C-c\C-i\C-p" 'vhdl-template-insert-package) (define-key vhdl-mode-map "\C-c\C-i\C-d" 'vhdl-template-insert-directive) (define-key vhdl-mode-map "\C-c\C-i\C-m" 'vhdl-model-insert) ;; electric key bindings - (define-key vhdl-mode-map " " 'vhdl-electric-space) - (if vhdl-intelligent-tab - (define-key vhdl-mode-map "\t" 'vhdl-electric-tab) - ;; The default binding of TAB already calls `indent-according-to-mode'. - ;; (define-key vhdl-mode-map "\t" 'indent-according-to-mode) - ) - (define-key vhdl-mode-map "\r" 'vhdl-electric-return) - (define-key vhdl-mode-map "-" 'vhdl-electric-dash) - (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket) - (define-key vhdl-mode-map "]" 'vhdl-electric-close-bracket) - (define-key vhdl-mode-map "'" 'vhdl-electric-quote) - (define-key vhdl-mode-map ";" 'vhdl-electric-semicolon) - (define-key vhdl-mode-map "," 'vhdl-electric-comma) - (define-key vhdl-mode-map "." 'vhdl-electric-period) + (define-key vhdl-mode-map " " 'vhdl-electric-space) + (when vhdl-intelligent-tab + (define-key vhdl-mode-map "\t" 'vhdl-electric-tab)) + (define-key vhdl-mode-map "\r" 'vhdl-electric-return) + (define-key vhdl-mode-map "-" 'vhdl-electric-dash) + (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket) + (define-key vhdl-mode-map "]" 'vhdl-electric-close-bracket) + (define-key vhdl-mode-map "'" 'vhdl-electric-quote) + (define-key vhdl-mode-map ";" 'vhdl-electric-semicolon) + (define-key vhdl-mode-map "," 'vhdl-electric-comma) + (define-key vhdl-mode-map "." 'vhdl-electric-period) (when (vhdl-standard-p 'ams) - (define-key vhdl-mode-map "=" 'vhdl-electric-equal))) + (define-key vhdl-mode-map "=" 'vhdl-electric-equal))) ;; initialize mode map for VHDL Mode (vhdl-mode-map-init) @@ -2796,134 +2893,134 @@ STRING are replaced by `-' and substrings are converted to lower case." (when (memq 'vhdl vhdl-electric-keywords) ;; VHDL'93 keywords '( - ("--" "" vhdl-template-display-comment-hook 0 t) - ("abs" "" vhdl-template-default-hook 0 t) - ("access" "" vhdl-template-default-hook 0 t) - ("after" "" vhdl-template-default-hook 0 t) - ("alias" "" vhdl-template-alias-hook 0 t) - ("all" "" vhdl-template-default-hook 0 t) - ("and" "" vhdl-template-default-hook 0 t) - ("arch" "" vhdl-template-architecture-hook 0 t) - ("architecture" "" vhdl-template-architecture-hook 0 t) - ("array" "" vhdl-template-default-hook 0 t) - ("assert" "" vhdl-template-assert-hook 0 t) - ("attr" "" vhdl-template-attribute-hook 0 t) - ("attribute" "" vhdl-template-attribute-hook 0 t) - ("begin" "" vhdl-template-default-indent-hook 0 t) - ("block" "" vhdl-template-block-hook 0 t) - ("body" "" vhdl-template-default-hook 0 t) - ("buffer" "" vhdl-template-default-hook 0 t) - ("bus" "" vhdl-template-default-hook 0 t) - ("case" "" vhdl-template-case-hook 0 t) - ("comp" "" vhdl-template-component-hook 0 t) - ("component" "" vhdl-template-component-hook 0 t) - ("cond" "" vhdl-template-conditional-signal-asst-hook 0 t) - ("conditional" "" vhdl-template-conditional-signal-asst-hook 0 t) - ("conf" "" vhdl-template-configuration-hook 0 t) - ("configuration" "" vhdl-template-configuration-hook 0 t) - ("cons" "" vhdl-template-constant-hook 0 t) - ("constant" "" vhdl-template-constant-hook 0 t) - ("disconnect" "" vhdl-template-disconnect-hook 0 t) - ("downto" "" vhdl-template-default-hook 0 t) - ("else" "" vhdl-template-else-hook 0 t) - ("elseif" "" vhdl-template-elsif-hook 0 t) - ("elsif" "" vhdl-template-elsif-hook 0 t) - ("end" "" vhdl-template-default-indent-hook 0 t) - ("entity" "" vhdl-template-entity-hook 0 t) - ("exit" "" vhdl-template-exit-hook 0 t) - ("file" "" vhdl-template-file-hook 0 t) - ("for" "" vhdl-template-for-hook 0 t) - ("func" "" vhdl-template-function-hook 0 t) - ("function" "" vhdl-template-function-hook 0 t) - ("generic" "" vhdl-template-generic-hook 0 t) - ("group" "" vhdl-template-group-hook 0 t) - ("guarded" "" vhdl-template-default-hook 0 t) - ("if" "" vhdl-template-if-hook 0 t) - ("impure" "" vhdl-template-default-hook 0 t) - ("in" "" vhdl-template-default-hook 0 t) - ("inertial" "" vhdl-template-default-hook 0 t) - ("inout" "" vhdl-template-default-hook 0 t) - ("inst" "" vhdl-template-instance-hook 0 t) - ("instance" "" vhdl-template-instance-hook 0 t) - ("is" "" vhdl-template-default-hook 0 t) - ("label" "" vhdl-template-default-hook 0 t) - ("library" "" vhdl-template-library-hook 0 t) - ("linkage" "" vhdl-template-default-hook 0 t) - ("literal" "" vhdl-template-default-hook 0 t) - ("loop" "" vhdl-template-bare-loop-hook 0 t) - ("map" "" vhdl-template-map-hook 0 t) - ("mod" "" vhdl-template-default-hook 0 t) - ("nand" "" vhdl-template-default-hook 0 t) - ("new" "" vhdl-template-default-hook 0 t) - ("next" "" vhdl-template-next-hook 0 t) - ("nor" "" vhdl-template-default-hook 0 t) - ("not" "" vhdl-template-default-hook 0 t) - ("null" "" vhdl-template-default-hook 0 t) - ("of" "" vhdl-template-default-hook 0 t) - ("on" "" vhdl-template-default-hook 0 t) - ("open" "" vhdl-template-default-hook 0 t) - ("or" "" vhdl-template-default-hook 0 t) - ("others" "" vhdl-template-others-hook 0 t) - ("out" "" vhdl-template-default-hook 0 t) - ("pack" "" vhdl-template-package-hook 0 t) - ("package" "" vhdl-template-package-hook 0 t) - ("port" "" vhdl-template-port-hook 0 t) - ("postponed" "" vhdl-template-default-hook 0 t) - ("procedure" "" vhdl-template-procedure-hook 0 t) - ("process" "" vhdl-template-process-hook 0 t) - ("pure" "" vhdl-template-default-hook 0 t) - ("range" "" vhdl-template-default-hook 0 t) - ("record" "" vhdl-template-default-hook 0 t) - ("register" "" vhdl-template-default-hook 0 t) - ("reject" "" vhdl-template-default-hook 0 t) - ("rem" "" vhdl-template-default-hook 0 t) - ("report" "" vhdl-template-report-hook 0 t) - ("return" "" vhdl-template-return-hook 0 t) - ("rol" "" vhdl-template-default-hook 0 t) - ("ror" "" vhdl-template-default-hook 0 t) - ("select" "" vhdl-template-selected-signal-asst-hook 0 t) - ("severity" "" vhdl-template-default-hook 0 t) - ("shared" "" vhdl-template-default-hook 0 t) - ("sig" "" vhdl-template-signal-hook 0 t) - ("signal" "" vhdl-template-signal-hook 0 t) - ("sla" "" vhdl-template-default-hook 0 t) - ("sll" "" vhdl-template-default-hook 0 t) - ("sra" "" vhdl-template-default-hook 0 t) - ("srl" "" vhdl-template-default-hook 0 t) - ("subtype" "" vhdl-template-subtype-hook 0 t) - ("then" "" vhdl-template-default-hook 0 t) - ("to" "" vhdl-template-default-hook 0 t) - ("transport" "" vhdl-template-default-hook 0 t) - ("type" "" vhdl-template-type-hook 0 t) - ("unaffected" "" vhdl-template-default-hook 0 t) - ("units" "" vhdl-template-default-hook 0 t) - ("until" "" vhdl-template-default-hook 0 t) - ("use" "" vhdl-template-use-hook 0 t) - ("var" "" vhdl-template-variable-hook 0 t) - ("variable" "" vhdl-template-variable-hook 0 t) - ("wait" "" vhdl-template-wait-hook 0 t) - ("when" "" vhdl-template-when-hook 0 t) - ("while" "" vhdl-template-while-loop-hook 0 t) - ("with" "" vhdl-template-with-hook 0 t) - ("xnor" "" vhdl-template-default-hook 0 t) - ("xor" "" vhdl-template-default-hook 0 t) + ("--" "" vhdl-template-display-comment-hook 0) + ("abs" "" vhdl-template-default-hook 0) + ("access" "" vhdl-template-default-hook 0) + ("after" "" vhdl-template-default-hook 0) + ("alias" "" vhdl-template-alias-hook 0) + ("all" "" vhdl-template-default-hook 0) + ("and" "" vhdl-template-default-hook 0) + ("arch" "" vhdl-template-architecture-hook 0) + ("architecture" "" vhdl-template-architecture-hook 0) + ("array" "" vhdl-template-default-hook 0) + ("assert" "" vhdl-template-assert-hook 0) + ("attr" "" vhdl-template-attribute-hook 0) + ("attribute" "" vhdl-template-attribute-hook 0) + ("begin" "" vhdl-template-default-indent-hook 0) + ("block" "" vhdl-template-block-hook 0) + ("body" "" vhdl-template-default-hook 0) + ("buffer" "" vhdl-template-default-hook 0) + ("bus" "" vhdl-template-default-hook 0) + ("case" "" vhdl-template-case-hook 0) + ("comp" "" vhdl-template-component-hook 0) + ("component" "" vhdl-template-component-hook 0) + ("cond" "" vhdl-template-conditional-signal-asst-hook 0) + ("conditional" "" vhdl-template-conditional-signal-asst-hook 0) + ("conf" "" vhdl-template-configuration-hook 0) + ("configuration" "" vhdl-template-configuration-hook 0) + ("cons" "" vhdl-template-constant-hook 0) + ("constant" "" vhdl-template-constant-hook 0) + ("disconnect" "" vhdl-template-disconnect-hook 0) + ("downto" "" vhdl-template-default-hook 0) + ("else" "" vhdl-template-else-hook 0) + ("elseif" "" vhdl-template-elsif-hook 0) + ("elsif" "" vhdl-template-elsif-hook 0) + ("end" "" vhdl-template-default-indent-hook 0) + ("entity" "" vhdl-template-entity-hook 0) + ("exit" "" vhdl-template-exit-hook 0) + ("file" "" vhdl-template-file-hook 0) + ("for" "" vhdl-template-for-hook 0) + ("func" "" vhdl-template-function-hook 0) + ("function" "" vhdl-template-function-hook 0) + ("generic" "" vhdl-template-generic-hook 0) + ("group" "" vhdl-template-group-hook 0) + ("guarded" "" vhdl-template-default-hook 0) + ("if" "" vhdl-template-if-hook 0) + ("impure" "" vhdl-template-default-hook 0) + ("in" "" vhdl-template-default-hook 0) + ("inertial" "" vhdl-template-default-hook 0) + ("inout" "" vhdl-template-default-hook 0) + ("inst" "" vhdl-template-instance-hook 0) + ("instance" "" vhdl-template-instance-hook 0) + ("is" "" vhdl-template-default-hook 0) + ("label" "" vhdl-template-default-hook 0) + ("library" "" vhdl-template-library-hook 0) + ("linkage" "" vhdl-template-default-hook 0) + ("literal" "" vhdl-template-default-hook 0) + ("loop" "" vhdl-template-bare-loop-hook 0) + ("map" "" vhdl-template-map-hook 0) + ("mod" "" vhdl-template-default-hook 0) + ("nand" "" vhdl-template-default-hook 0) + ("new" "" vhdl-template-default-hook 0) + ("next" "" vhdl-template-next-hook 0) + ("nor" "" vhdl-template-default-hook 0) + ("not" "" vhdl-template-default-hook 0) + ("null" "" vhdl-template-default-hook 0) + ("of" "" vhdl-template-default-hook 0) + ("on" "" vhdl-template-default-hook 0) + ("open" "" vhdl-template-default-hook 0) + ("or" "" vhdl-template-default-hook 0) + ("others" "" vhdl-template-others-hook 0) + ("out" "" vhdl-template-default-hook 0) + ("pack" "" vhdl-template-package-hook 0) + ("package" "" vhdl-template-package-hook 0) + ("port" "" vhdl-template-port-hook 0) + ("postponed" "" vhdl-template-default-hook 0) + ("procedure" "" vhdl-template-procedure-hook 0) + ("process" "" vhdl-template-process-hook 0) + ("pure" "" vhdl-template-default-hook 0) + ("range" "" vhdl-template-default-hook 0) + ("record" "" vhdl-template-default-hook 0) + ("register" "" vhdl-template-default-hook 0) + ("reject" "" vhdl-template-default-hook 0) + ("rem" "" vhdl-template-default-hook 0) + ("report" "" vhdl-template-report-hook 0) + ("return" "" vhdl-template-return-hook 0) + ("rol" "" vhdl-template-default-hook 0) + ("ror" "" vhdl-template-default-hook 0) + ("select" "" vhdl-template-selected-signal-asst-hook 0) + ("severity" "" vhdl-template-default-hook 0) + ("shared" "" vhdl-template-default-hook 0) + ("sig" "" vhdl-template-signal-hook 0) + ("signal" "" vhdl-template-signal-hook 0) + ("sla" "" vhdl-template-default-hook 0) + ("sll" "" vhdl-template-default-hook 0) + ("sra" "" vhdl-template-default-hook 0) + ("srl" "" vhdl-template-default-hook 0) + ("subtype" "" vhdl-template-subtype-hook 0) + ("then" "" vhdl-template-default-hook 0) + ("to" "" vhdl-template-default-hook 0) + ("transport" "" vhdl-template-default-hook 0) + ("type" "" vhdl-template-type-hook 0) + ("unaffected" "" vhdl-template-default-hook 0) + ("units" "" vhdl-template-default-hook 0) + ("until" "" vhdl-template-default-hook 0) + ("use" "" vhdl-template-use-hook 0) + ("var" "" vhdl-template-variable-hook 0) + ("variable" "" vhdl-template-variable-hook 0) + ("wait" "" vhdl-template-wait-hook 0) + ("when" "" vhdl-template-when-hook 0) + ("while" "" vhdl-template-while-loop-hook 0) + ("with" "" vhdl-template-with-hook 0) + ("xnor" "" vhdl-template-default-hook 0) + ("xor" "" vhdl-template-default-hook 0) )) ;; VHDL-AMS keywords (when (and (memq 'vhdl vhdl-electric-keywords) (vhdl-standard-p 'ams)) '( - ("across" "" vhdl-template-default-hook 0 t) - ("break" "" vhdl-template-break-hook 0 t) - ("limit" "" vhdl-template-limit-hook 0 t) - ("nature" "" vhdl-template-nature-hook 0 t) - ("noise" "" vhdl-template-default-hook 0 t) - ("procedural" "" vhdl-template-procedural-hook 0 t) - ("quantity" "" vhdl-template-quantity-hook 0 t) - ("reference" "" vhdl-template-default-hook 0 t) - ("spectrum" "" vhdl-template-default-hook 0 t) - ("subnature" "" vhdl-template-subnature-hook 0 t) - ("terminal" "" vhdl-template-terminal-hook 0 t) - ("through" "" vhdl-template-default-hook 0 t) - ("tolerance" "" vhdl-template-default-hook 0 t) + ("across" "" vhdl-template-default-hook 0) + ("break" "" vhdl-template-break-hook 0) + ("limit" "" vhdl-template-limit-hook 0) + ("nature" "" vhdl-template-nature-hook 0) + ("noise" "" vhdl-template-default-hook 0) + ("procedural" "" vhdl-template-procedural-hook 0) + ("quantity" "" vhdl-template-quantity-hook 0) + ("reference" "" vhdl-template-default-hook 0) + ("spectrum" "" vhdl-template-default-hook 0) + ("subnature" "" vhdl-template-subnature-hook 0) + ("terminal" "" vhdl-template-terminal-hook 0) + ("through" "" vhdl-template-default-hook 0) + ("tolerance" "" vhdl-template-default-hook 0) )) ;; user model keywords (when (memq 'user vhdl-electric-keywords) @@ -2935,7 +3032,7 @@ STRING are replaced by `-' and substrings are converted to lower case." (setq abbrev-list (cons (list keyword "" (vhdl-function-name - "vhdl-model" (nth 0 (car alist)) "hook") 0 t) + "vhdl-model" (nth 0 (car alist)) "hook") 0) abbrev-list))) (setq alist (cdr alist))) abbrev-list))))) @@ -3089,6 +3186,7 @@ STRING are replaced by `-' and substrings are converted to lower case." (vhdl-menu-split menu-list "Project")) '("--" "--" ["Select Project..." vhdl-set-project t] + ["Set As Default Project" vhdl-set-default-project t] "--" ["Duplicate Project" vhdl-duplicate-project vhdl-project] ["Import Project..." vhdl-import-project @@ -3275,9 +3373,11 @@ STRING are replaced by `-' and substrings are converted to lower case." :style toggle :selected vhdl-port-reversed-direction :active vhdl-port-list]) ("Compose" ["New Component" vhdl-compose-new-component t] + ["Copy Component" vhdl-port-copy t] ["Place Component" vhdl-compose-place-component vhdl-port-list] ["Wire Components" vhdl-compose-wire-components t] "--" + ["Generate Configuration" vhdl-compose-configuration t] ["Generate Components Package" vhdl-compose-components-package t]) ("Subprogram" ["Copy" vhdl-subprog-copy t] @@ -3521,6 +3621,8 @@ STRING are replaced by `-' and substrings are converted to lower case." ["Entity File Name..." (customize-option 'vhdl-entity-file-name) t] ["Architecture File Name..." (customize-option 'vhdl-architecture-file-name) t] + ["Configuration File Name..." + (customize-option 'vhdl-configuration-file-name) t] ["Package File Name..." (customize-option 'vhdl-package-file-name) t] ("File Name Case" ["As Is" @@ -3690,11 +3792,29 @@ STRING are replaced by `-' and substrings are converted to lower case." :style radio :selected (eq 'single vhdl-testbench-create-files)] ["Separate" (customize-set-variable 'vhdl-testbench-create-files 'separate) - :style radio :selected (eq 'separate vhdl-testbench-create-files)])) + :style radio :selected (eq 'separate vhdl-testbench-create-files)]) + ["Testbench Entity File Name..." + (customize-option 'vhdl-testbench-entity-file-name) t] + ["Testbench Architecture File Name..." + (customize-option 'vhdl-testbench-architecture-file-name) t]) "--" ["Customize Group..." (customize-group 'vhdl-port) t]) ("Compose" - ("Create Files" + ["Architecture Name..." + (customize-option 'vhdl-compose-architecture-name) t] + ["Configuration Name..." + (customize-option 'vhdl-compose-configuration-name) t] + ["Components Package Name..." + (customize-option 'vhdl-components-package-name) t] + ["Use Components Package" + (customize-set-variable 'vhdl-use-components-package + (not vhdl-use-components-package)) + :style toggle :selected vhdl-use-components-package] + ["Include Header" + (customize-set-variable 'vhdl-compose-include-header + (not vhdl-compose-include-header)) + :style toggle :selected vhdl-compose-include-header] + ("Create Entity/Architecture Files" ["None" (customize-set-variable 'vhdl-compose-create-files 'none) :style radio :selected (eq 'none vhdl-compose-create-files)] @@ -3704,18 +3824,18 @@ STRING are replaced by `-' and substrings are converted to lower case." ["Separate" (customize-set-variable 'vhdl-compose-create-files 'separate) :style radio :selected (eq 'separate vhdl-compose-create-files)]) - ["Include Header" - (customize-set-variable 'vhdl-compose-include-header - (not vhdl-compose-include-header)) - :style toggle :selected vhdl-compose-include-header] - ["Architecture Name..." - (customize-option 'vhdl-compose-architecture-name) t] - ["Components Package Name..." - (customize-option 'vhdl-components-package-name) t] - ["Use Components Package" - (customize-set-variable 'vhdl-use-components-package - (not vhdl-use-components-package)) - :style toggle :selected vhdl-use-components-package] + ["Create Configuration File" + (customize-set-variable 'vhdl-compose-configuration-create-file + (not vhdl-compose-configuration-create-file)) + :style toggle :selected vhdl-compose-configuration-create-file] + ["Hierarchical Configuration" + (customize-set-variable 'vhdl-compose-configuration-hierarchical + (not vhdl-compose-configuration-hierarchical)) + :style toggle :selected vhdl-compose-configuration-hierarchical] + ["Use Subconfiguration" + (customize-set-variable 'vhdl-compose-configuration-use-subconfiguration + (not vhdl-compose-configuration-use-subconfiguration)) + :style toggle :selected vhdl-compose-configuration-use-subconfiguration] "--" ["Customize Group..." (customize-group 'vhdl-compose) t]) ("Comment" @@ -4167,13 +4287,13 @@ Usage: symbols are surrounded by one space, and multiple spaces are eliminated. -| CODE FILLING: -| Code filling allows to condens code (e.g. sensitivity lists or port -| maps) by removing comments and newlines and re-wrapping so that all -| lines are maximally filled (block filling). `C-c C-f C-f' fills a list -| enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by -| blank lines, `C-c C-f C-i' a block of lines with same indent, and -| `C-c C-f M-f' an entire region. + CODE FILLING: + Code filling allows to condense code (e.g. sensitivity lists or port + maps) by removing comments and newlines and re-wrapping so that all + lines are maximally filled (block filling). `C-c C-f C-f' fills a list + enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by + blank lines, `C-c C-f C-i' a block of lines with same indent, and + `C-c C-f M-f' an entire region. CODE BEAUTIFICATION: @@ -4198,21 +4318,21 @@ Usage: A clause with several generic/port names on the same line can be flattened (`C-c C-p C-f') so that only one name per line exists. The -| direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become -| outputs and vice versa, which can be useful in testbenches. (This -| reversion is done on the internal data structure and is only reflected -| in subsequent paste operations.) + direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become + outputs and vice versa, which can be useful in testbenches. (This + reversion is done on the internal data structure and is only reflected + in subsequent paste operations.) Names for actual ports, instances, testbenches, and design-under-test instances can be derived from existing names according to options `vhdl-...-name'. See customization group `vhdl-port'. -| SUBPROGRAM TRANSLATION: -| Similar functionality exists for copying/pasting the interface of -| subprograms (function/procedure). A subprogram interface can be copied -| and then pasted as a subprogram declaration, body or call (uses -| association list with formals). + SUBPROGRAM TRANSLATION: + Similar functionality exists for copying/pasting the interface of + subprograms (function/procedure). A subprogram interface can be copied + and then pasted as a subprogram declaration, body or call (uses + association list with formals). TESTBENCH GENERATION: @@ -4268,38 +4388,54 @@ Usage: required by secondary units. -| STRUCTURAL COMPOSITION: -| Enables simple structural composition. `C-c C-c C-n' creates a skeleton -| for a new component. Subcomponents (i.e. component declaration and -| instantiation) can be automatically placed from a previously read port -| \(`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally, -| all subcomponents can be automatically connected using internal signals -| and ports (`C-c C-c C-w') following these rules: -| - subcomponent actual ports with same name are considered to be -| connected by a signal (internal signal or port) -| - signals that are only inputs to subcomponents are considered as -| inputs to this component -> input port created -| - signals that are only outputs from subcomponents are considered as -| outputs from this component -> output port created -| - signals that are inputs to AND outputs from subcomponents are -| considered as internal connections -> internal signal created -| -| Component declarations can be placed in a components package (option -| `vhdl-use-components-package') which can be automatically generated for -| an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct -| component instantiation is also supported (option -| `vhdl-use-direct-instantiation'). -| -| Purpose: With appropriate naming conventions it is possible to -| create higher design levels with only a few mouse clicks or key -| strokes. A new design level can be created by simply generating a new -| component, placing the required subcomponents from the hierarchy -| browser, and wiring everything automatically. -| -| Note: Automatic wiring only works reliably on templates of new -| components and component instantiations that were created by VHDL mode. + STRUCTURAL COMPOSITION: + Enables simple structural composition. `C-c C-c C-n' creates a skeleton + for a new component. Subcomponents (i.e. component declaration and + instantiation) can be automatically placed from a previously read port + \(`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally, + all subcomponents can be automatically connected using internal signals + and ports (`C-c C-c C-w') following these rules: + - subcomponent actual ports with same name are considered to be + connected by a signal (internal signal or port) + - signals that are only inputs to subcomponents are considered as + inputs to this component -> input port created + - signals that are only outputs from subcomponents are considered as + outputs from this component -> output port created + - signals that are inputs to AND outputs from subcomponents are + considered as internal connections -> internal signal created + + Purpose: With appropriate naming conventions it is possible to + create higher design levels with only a few mouse clicks or key + strokes. A new design level can be created by simply generating a new + component, placing the required subcomponents from the hierarchy + browser, and wiring everything automatically. + + Note: Automatic wiring only works reliably on templates of new + components and component instantiations that were created by VHDL mode. + + Component declarations can be placed in a components package (option + `vhdl-use-components-package') which can be automatically generated for + an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct + component instantiation is also supported (option + `vhdl-use-direct-instantiation'). + +| Configuration declarations can automatically be generated either from +| the menu (`C-c C-c C-f') (for the architecture the cursor is in) or from +| the speedbar menu (for the architecture under the cursor). The +| configurations can optionally be hierarchical (i.e. include all +| component levels of a hierarchical design, option +| `vhdl-compose-configuration-hierarchical') or include subconfigurations +| (option `vhdl-compose-configuration-use-subconfiguration'). For +| subcomponents in hierarchical configurations, the most-recently-analyzed +| (mra) architecture is selected. If another architecture is desired, it +| can be marked as most-recently-analyzed (speedbar menu) before +| generating the configuration. | -| See the options group `vhdl-compose' for all relevant user options. +| Note: Configurations of subcomponents (i.e. hierarchical configuration +| declarations) are currently not considered when displaying +| configurations in speedbar. + + See the options group `vhdl-compose' for all relevant user options. SOURCE FILE COMPILATION: @@ -4563,12 +4699,13 @@ Key bindings: (set (make-local-variable 'paragraph-separate) paragraph-start) (set (make-local-variable 'paragraph-ignore-fill-prefix) t) (set (make-local-variable 'require-final-newline) - mode-require-final-newline) + (if vhdl-emacs-22 mode-require-final-newline t)) (set (make-local-variable 'parse-sexp-ignore-comments) t) (set (make-local-variable 'indent-line-function) 'vhdl-indent-line) (set (make-local-variable 'comment-start) "--") (set (make-local-variable 'comment-end) "") - (set (make-local-variable 'comment-padding) "") + (when vhdl-emacs-21 + (set (make-local-variable 'comment-padding) "")) (set (make-local-variable 'comment-column) vhdl-inline-comment-column) (set (make-local-variable 'end-comment-column) vhdl-end-comment-column) (set (make-local-variable 'comment-start-skip) "--+\\s-*") @@ -4621,7 +4758,9 @@ Key bindings: (if noninteractive "" " See menu for documentation and release notes.")) ;; run hooks - (run-mode-hooks 'vhdl-mode-hook)) + (if vhdl-emacs-22 + (run-mode-hooks 'vhdl-mode-hook) + (run-hooks 'vhdl-mode-hook))) (defun vhdl-activate-customizations () "Activate all customizations on local variables." @@ -5230,6 +5369,7 @@ the offset is simply returned." (cond ((nth 3 state) 'string) ((nth 4 state) 'comment) + ((vhdl-beginning-of-macro) 'pound) (t nil))))) (defun vhdl-forward-comment (&optional direction) @@ -5312,14 +5452,19 @@ negative, skip forward otherwise." (defun vhdl-forward-syntactic-ws (&optional lim) "Forward skip of syntactic whitespace." - (save-restriction - (let* ((lim (or lim (point-max))) - (here lim) - (hugenum (point-max))) - (narrow-to-region lim (point)) - (while (/= here (point)) - (setq here (point)) - (vhdl-forward-comment hugenum))))) + (let* ((here (point-max)) + (hugenum (point-max))) + (while (/= here (point)) + (setq here (point)) + (vhdl-forward-comment hugenum) + ;; skip preprocessor directives + (when (and (eq (char-after) ?#) + (= (vhdl-point 'boi) (point))) + (while (and (eq (char-before (vhdl-point 'eol)) ?\\) + (= (forward-line 1) 0))) + (end-of-line))) + (if lim (goto-char (min (point) lim))))) + ;; This is the best we can do in Win-Emacs. (defun vhdl-win-fsws (&optional lim) @@ -5337,18 +5482,28 @@ negative, skip forward otherwise." (and (string-match "Win-Emacs" emacs-version) (fset 'vhdl-forward-syntactic-ws 'vhdl-win-fsws)) +(defun vhdl-beginning-of-macro (&optional lim) + "Go to the beginning of a cpp macro definition (nicked from `cc-engine')." + (let ((here (point))) + (beginning-of-line) + (while (eq (char-before (1- (point))) ?\\) + (forward-line -1)) + (back-to-indentation) + (if (and (<= (point) here) + (eq (char-after) ?#)) + t + (goto-char here) + nil))) + (defun vhdl-backward-syntactic-ws (&optional lim) "Backward skip over syntactic whitespace." - (save-restriction - (let* ((lim (or lim (point-min))) - (here lim) - (hugenum (- (point-max)))) - (if (< lim (point)) - (progn - (narrow-to-region lim (point)) - (while (/= here (point)) - (setq here (point)) - (vhdl-forward-comment hugenum))))))) + (let* ((here (point-min)) + (hugenum (- (point-max)))) + (while (/= here (point)) + (setq here (point)) + (vhdl-forward-comment hugenum) + (vhdl-beginning-of-macro)) + (if lim (goto-char (max (point) lim))))) ;; This is the best we can do in Win-Emacs. (defun vhdl-win-bsws (&optional lim) @@ -5598,7 +5753,8 @@ keyword." (save-excursion (re-search-backward ";\\|\\bwhen\\b[^_]" lim 'move) (or (eq (following-char) ?\;) - (eq (point) lim))))) + (eq (point) lim) + (vhdl-in-literal))))) (defun vhdl-corresponding-begin (&optional lim) "If the word at the current position corresponds to an \"end\" @@ -5667,15 +5823,15 @@ of an identifier that just happens to contain an \"end\" keyword." ;; return an alist of (statement . keyword) mappings '( ;; "begin ... end [id]": - ("begin" . nil) + ("begin" . nil) ;; "architecture ... is ... begin ... end [id]": - ("architecture" . "is") + ("architecture" . "is") ;; "configuration ... is ... end [id]": ("configuration" . "is") ;; "entity ... is ... end [id]": - ("entity" . "is") + ("entity" . "is") ;; "package ... is ... end [id]": - ("package" . "is") + ("package" . "is") ;; "procedure ... is ... begin ... end [id]": ("procedure" . "is") ;; "function ... is ... begin ... end [id]": @@ -5716,7 +5872,7 @@ of an identifier that just happens to contain an \"end\" keyword." ))) (defconst vhdl-trailer-re - "\\b\\(is\\|then\\|generate\\|loop\\)\\b[^_]") + "\\b\\(is\\|then\\|generate\\|loop\\|record\\)\\b[^_]") (defconst vhdl-statement-fwd-re "\\b\\(if\\|for\\|while\\)\\b\\([^_]\\|\\'\\)" @@ -6071,8 +6227,8 @@ Returns the location of the corresponding begin keyword, unless search stops due to beginning or end of buffer." ;; Note that if point is between the "defun" keyword and the ;; corresponding "begin" keyword, then that defun will not be - ;; recognised, and the search will continue backwards. If point is - ;; at the "begin" keyword, then the defun will be recognised. The + ;; recognized, and the search will continue backwards. If point is + ;; at the "begin" keyword, then the defun will be recognized. The ;; returned point is at the first character of the "defun" keyword. (interactive "p") (let ((count (or count 1)) @@ -6133,8 +6289,8 @@ one. If within a string or comment, or next to a comment (only whitespace between), move by sentences instead of statements. When called from a program, this function takes 3 optional args: the -prefix arg, and a buffer position limit which is the farthest back to -search, and something whose meaning I don't understand." +prefix arg, a buffer position limit which is the farthest back to +search, and an argument indicating an interactive call." (interactive "p\np") (let ((count (or count 1)) (case-fold-search t) @@ -6693,6 +6849,8 @@ is not moved." (skip-chars-forward " \t") (if (looking-at "--") (vhdl-add-syntax 'comment)) + (if (eq literal 'pound) + (vhdl-add-syntax 'cpp-macro)) ;; return the syntax vhdl-syntactic-context)))) @@ -6768,7 +6926,7 @@ only-lines." vhdl-comment-only-line-offset) (or (cdr-safe vhdl-comment-only-line-offset) (car-safe vhdl-comment-only-line-offset) - -1000 ;jam it against the left side + -1000 ;jam it against the left side ))))) (defun vhdl-lineup-statement-cont (langelem) @@ -7462,35 +7620,29 @@ end of line, do nothing in comments and strings." (setq end (point-marker)) ;; have no space before and one space after `,' and ';' (goto-char beg) - (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\(\\s-*\\([,;]\\)\\)" end t) + (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\(\\s-*\\([,;]\\)\\)" end t) (if (match-string 1) (goto-char (match-end 1)) (replace-match "\\3 " nil nil nil 3))) ;; have no space after `(' (goto-char beg) - (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\((\\)\\s-+" end t) + (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\((\\)\\s-+" end t) (if (match-string 1) (goto-char (match-end 1)) (replace-match "\\2"))) ;; have no space before `)' (goto-char beg) - (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|^\\s-+\\)\\|\\s-+\\()\\)" end t) + (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|^\\s-+\\)\\|\\s-+\\()\\)" end t) (if (match-string 1) (goto-char (match-end 1)) (replace-match "\\2"))) ;; surround operator symbols by one space (goto-char beg) - (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\(\\([^/:<>=]\\)\\(:\\|=\\|<\\|>\\|:=\\|<=\\|>=\\|=>\\|/=\\)\\([^=>]\\|$\\)\\)" end t) + (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\(\\([^/:<>=]\\)\\(:\\|=\\|<\\|>\\|:=\\|<=\\|>=\\|=>\\|/=\\)\\([^=>]\\|$\\)\\)" end t) (if (match-string 1) (goto-char (match-end 1)) - (save-excursion - (goto-char (match-beginning 4)) - (unless (eq (preceding-char) ?\ ) - (insert " ")) - (goto-char (match-end 4)) - (unless (eq (following-char) ?\ ) - (insert " "))) - (goto-char (match-end 4)))) + (replace-match "\\3 \\4 \\5") + (goto-char (match-end 2)))) ;; eliminate multiple spaces and spaces at end of line (goto-char beg) (while (or (and (looking-at "--.*\n") (re-search-forward "--.*\n" end t)) @@ -7504,7 +7656,8 @@ end of line, do nothing in comments and strings." (progn (replace-match " " nil nil) t)) (and (looking-at "\\s-+") (re-search-forward "\\s-+" end t) (progn (replace-match " " nil nil) t)) - (re-search-forward "[^ \t-]+" end t)))) +; (re-search-forward "[^ \t-]+" end t)))) + (re-search-forward "[^ \t\"-]+" end t)))) (unless no-message (message "Fixing up whitespace...done"))) (defun vhdl-fixup-whitespace-buffer () @@ -7622,7 +7775,7 @@ buffer." (message "Updating sensitivity lists...") (while (re-search-forward "^\\s-*\\(\\w+[ \t\n]*:[ \t\n]*\\)?process\\>" nil t) (goto-char (match-beginning 0)) - (condition-case nil (vhdl-update-sensitivity-list) (error))) + (condition-case nil (vhdl-update-sensitivity-list) (error ""))) (message "Updating sensitivity lists...done")))) (defun vhdl-update-sensitivity-list () @@ -7666,8 +7819,10 @@ buffer." ((re-search-forward "^\\s-*case\\>" proc-end t) (re-search-forward "\\<is\\>" proc-end t)) ;; parameter list of procedure call - ((re-search-forward "^\\s-*\\w+[ \t\n]*(" proc-end t) - (progn (backward-char) (forward-sexp) (point))))) + ((and (re-search-forward "^\\s-*\\w+[ \t\n]*(" proc-end t) + (1- (point))) + (progn (backward-char) (forward-sexp) + (while (looking-at "(") (forward-sexp)) (point))))) name read-list sens-list signal-list sens-beg sens-end beg end margin) ;; scan for signals in old sensitivity list @@ -7708,10 +7863,16 @@ buffer." (< (point) (caar tmp-list))) (setq tmp-list (cdr tmp-list))) (and tmp-list (< (point) (cdar tmp-list)))))) - (while (vhdl-re-search-forward "[^'\"]\\<\\([a-zA-Z]\\w*\\)\\>" end t) + (while (vhdl-re-search-forward "[^'\"]\\<\\([a-zA-Z]\\w*\\)\\>[ \t\n]*\\('\\(\\w+\\)\\|\\(=>\\)\\)?" end t) (setq name (match-string 1)) - (when (member (downcase name) signal-list) - (add-to-list 'read-list name))))) + (when (and (not (match-string 4)) ; not when formal parameter + (not (and (match-string 3) ; not event attribute + (not (member (downcase (match-string 3)) + '("event" "last_event" "transaction"))))) + (member (downcase name) signal-list)) + (unless (member-ignore-case name read-list) + (setq read-list (cons name read-list)))) + (goto-char (match-end 1))))) (setq scan-regions-list (cdr scan-regions-list))) ;; update sensitivity list (goto-char sens-beg) @@ -7735,65 +7896,94 @@ buffer." (defun vhdl-get-visible-signals () "Get all signals visible in the current block." - (save-excursion - (let (beg end signal-list entity-name file-name) - ;; search for signals declared in surrounding block declarative parts - (save-excursion - (while (and (progn (while (and (setq beg (re-search-backward "^\\s-*\\(\\w+\\s-*:\\s-*block\\|\\(end\\)\\s-+block\\)\\>" nil t)) - (match-string 2)) - (goto-char (match-end 2)) - (vhdl-backward-sexp) - (re-search-backward "^\\s-*\\w+\\s-*:\\s-*block\\>" nil t)) - beg) - (setq end (re-search-forward "^\\s-*begin\\>" nil t))) - ;; scan for all declared signal names - (goto-char beg) - (while (re-search-forward "^\\s-*signal\\>" end t) - (while (and (not (looking-at "[ \t\n]*:")) - (re-search-forward "[ \t\n,]+\\(\\w+\\)" end t)) - (setq signal-list - (cons (downcase (match-string 1)) signal-list)))) - (goto-char beg))) - ;; search for signals declared in architecture declarative part - (if (not (and (setq beg (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t)) + (let (beg end signal-list entity-name file-name) + (vhdl-prepare-search-2 + ;; get entity name + (save-excursion + (unless (and (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t) (not (equal "END" (upcase (match-string 1)))) - (setq entity-name (match-string 2)) - (setq end (re-search-forward "^begin\\>" nil t)))) - (error "ERROR: No architecture declarative part found") - ;; scan for all declared signal names - (goto-char beg) - (while (re-search-forward "^\\s-*signal\\>" end t) - (while (and (not (looking-at "[ \t\n]*:")) - (re-search-forward "[ \t\n,]+\\(\\w+\\)" end t)) - (setq signal-list - (cons (downcase (match-string 1)) signal-list))))) - ;; search for signals declared in entity port clause - (goto-char (point-min)) - (unless (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t) - (setq file-name - (concat (vhdl-replace-string vhdl-entity-file-name entity-name) - "." (file-name-extension (buffer-file-name))))) - (vhdl-visit-file - file-name t - (vhdl-prepare-search-2 - (goto-char (point-min)) - (if (not (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t)) - (error "ERROR: Entity \"%s\" not found:\n --> see option `vhdl-entity-file-name'" entity-name) - (when (setq beg (re-search-forward - "^\\s-*port[ \t\n]*(" - (save-excursion - (re-search-forward "^end\\>" nil t)) t)) - (setq end (save-excursion - (backward-char) (forward-sexp) (point))) - (vhdl-forward-syntactic-ws) - (while (< (point) end) - (while (and (not (looking-at "[ \t\n]*:")) - (re-search-forward "[ \t\n,]*\\(\\w+\\)" end t)) - (setq signal-list - (cons (downcase (match-string 1)) signal-list))) - (re-search-forward ";" end 1) - (vhdl-forward-syntactic-ws)))))) - signal-list))) + (setq entity-name (match-string 2))) + (error "ERROR: Not within an architecture"))) + ;; search for signals declared in entity port clause + (save-excursion + (goto-char (point-min)) + (unless (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t) + (setq file-name + (concat (vhdl-replace-string vhdl-entity-file-name entity-name t) + "." (file-name-extension (buffer-file-name))))) + (vhdl-visit-file + file-name t + (vhdl-prepare-search-2 + (goto-char (point-min)) + (if (not (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t)) + (error "ERROR: Entity \"%s\" not found:\n --> see option `vhdl-entity-file-name'" entity-name) + (when (setq beg (re-search-forward + "^\\s-*port[ \t\n]*(" + (save-excursion + (re-search-forward "^end\\>" nil t)) t)) + (setq end (save-excursion + (backward-char) (forward-sexp) (point))) + (vhdl-forward-syntactic-ws) + (while (< (point) end) + (when (looking-at "signal[ \t\n]+") + (goto-char (match-end 0))) + (while (looking-at "\\(\\w+\\)[ \t\n,]+") + (setq signal-list + (cons (downcase (match-string 1)) signal-list)) + (goto-char (match-end 0)) + (vhdl-forward-syntactic-ws)) + (re-search-forward ";" end 1) + (vhdl-forward-syntactic-ws))))))) + ;; search for signals declared in architecture declarative part + (save-excursion + (if (not (and (setq beg (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t)) + (not (equal "END" (upcase (match-string 1)))) + (setq end (re-search-forward "^begin\\>" nil t)))) + (error "ERROR: No architecture declarative part found") + ;; scan for all declared signal and alias names + (goto-char beg) + (while (re-search-forward "^\\s-*\\(\\(signal\\)\\|alias\\)\\>" end t) + (when (= 0 (nth 0 (parse-partial-sexp beg (point)))) + (if (match-string 2) + ;; scan signal name + (while (looking-at "[ \t\n,]+\\(\\w+\\)") + (setq signal-list + (cons (downcase (match-string 1)) signal-list)) + (goto-char (match-end 0))) + ;; scan alias name, check is alias of (declared) signal + (when (and (looking-at "[ \t\n]+\\(\\w+\\)[^;]*\\<is[ \t\n]+\\(\\w+\\)") + (member (downcase (match-string 2)) signal-list)) + (setq signal-list + (cons (downcase (match-string 1)) signal-list)) + (goto-char (match-end 0)))) + (setq beg (point)))))) + ;; search for signals declared in surrounding block declarative parts + (save-excursion + (while (and (progn (while (and (setq beg (re-search-backward "^\\s-*\\(\\w+\\s-*:\\s-*block\\|\\(end\\)\\s-+block\\)\\>" nil t)) + (match-string 2)) + (goto-char (match-end 2)) + (vhdl-backward-sexp) + (re-search-backward "^\\s-*\\w+\\s-*:\\s-*block\\>" nil t)) + beg) + (setq end (re-search-forward "^\\s-*begin\\>" nil t))) + ;; scan for all declared signal names + (goto-char beg) + (while (re-search-forward "^\\s-*\\(\\(signal\\)\\|alias\\)\\>" end t) + (when (= 0 (nth 0 (parse-partial-sexp beg (point)))) + (if (match-string 2) + ;; scan signal name + (while (looking-at "[ \t\n,]+\\(\\w+\\)") + (setq signal-list + (cons (downcase (match-string 1)) signal-list)) + (goto-char (match-end 0))) + ;; scan alias name, check is alias of (declared) signal + (when (and (looking-at "[ \t\n]+\\(\\w+\\)[^;]*\\<is[ \t\n]+\\(\\w+\\)") + (member (downcase (match-string 2)) signal-list)) + (setq signal-list + (cons (downcase (match-string 1)) signal-list)) + (goto-char (match-end 0)))))) + (goto-char beg))) + signal-list))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Generic/port clause fixing @@ -9615,11 +9805,14 @@ specification, if not already there." (match-string 2)))) (equal (downcase library) "work")) (vhdl-insert-keyword "LIBRARY ") - (insert library ";\n") - (indent-to margin)) - (vhdl-insert-keyword "USE ") - (insert library "." package) - (vhdl-insert-keyword ".ALL;")))) + (insert library ";") + (when package + (insert "\n") + (indent-to margin))) + (when package + (vhdl-insert-keyword "USE ") + (insert library "." package) + (vhdl-insert-keyword ".ALL;"))))) (defun vhdl-template-package-math-complex () "Insert specification of `math_complex' package." @@ -10318,7 +10511,10 @@ else insert tab (used for word completion in VHDL minibuffer)." (save-match-data (save-excursion (goto-char (match-end 5)) - (forward-word 1) (forward-sexp) + (forward-word 1) + (vhdl-forward-syntactic-ws) + (when (looking-at "(") + (forward-sexp)) (re-search-forward "\\<is\\>\\|\\(;\\)" nil t)) (match-string 1))) ;; not consider configuration specifications @@ -10678,12 +10874,14 @@ but not if inside a comment or quote)." (vhdl-current-line) string))) nil)) -(defun vhdl-replace-string (regexp-cons string) +(defun vhdl-replace-string (regexp-cons string &optional adjust-case) "Replace STRING from car of REGEXP-CONS to cdr of REGEXP-CONS." (vhdl-prepare-search-1 (if (string-match (car regexp-cons) string) - (funcall vhdl-file-name-case - (replace-match (cdr regexp-cons) t nil string)) + (if adjust-case + (funcall vhdl-file-name-case + (replace-match (cdr regexp-cons) t nil string)) + (replace-match (cdr regexp-cons) t nil string)) string))) (defun vhdl-parse-group-comment () @@ -10692,6 +10890,7 @@ but not if inside a comment or quote)." string) (vhdl-forward-comment (point-max)) (setq string (buffer-substring-no-properties start (point))) + (vhdl-forward-syntactic-ws) ;; strip off leading blanks and first newline (while (string-match "^\\(\\s-+\\)" string) (setq string (concat (substring string 0 (match-beginning 1)) @@ -10717,11 +10916,13 @@ with INDENT." "Indicates whether a port has been flattened.") (defun vhdl-port-flatten (&optional as-alist) - "Flatten port list so that only one generic/port exists per line." + "Flatten port list so that only one generic/port exists per line. +This operation is performed on an internally stored port and is only +reflected in a subsequent paste operation." (interactive) (if (not vhdl-port-list) (error "ERROR: No port has been read") - (message "Flattening port...") + (message "Flattening port for next paste...") (let ((new-vhdl-port-list (list (car vhdl-port-list))) (old-vhdl-port-list (cdr vhdl-port-list)) old-port-list new-port-list old-port new-port names) @@ -10744,17 +10945,19 @@ with INDENT." (setq vhdl-port-list (append new-vhdl-port-list (list old-vhdl-port-list)) vhdl-port-flattened t) - (message "Flattening port...done")))) + (message "Flattening port for next paste...done")))) (defvar vhdl-port-reversed-direction nil "Indicates whether port directions are reversed.") (defun vhdl-port-reverse-direction () - "Reverse direction for all ports (useful in testbenches)." + "Reverse direction for all ports (useful in testbenches). +This operation is performed on an internally stored port and is only +reflected in a subsequent paste operation." (interactive) (if (not vhdl-port-list) (error "ERROR: No port has been read") - (message "Reversing port directions...") + (message "Reversing port directions for next paste...") (let ((port-list (nth 2 vhdl-port-list)) port-dir-car port-dir) ;; traverse port list and reverse directions @@ -10767,7 +10970,7 @@ with INDENT." (t port-dir))) (setq port-list (cdr port-list))) (setq vhdl-port-reversed-direction (not vhdl-port-reversed-direction)) - (message "Reversing port directions...done")))) + (message "Reversing port directions for next paste...done")))) (defun vhdl-port-copy () "Get generic and port information from an entity or component declaration." @@ -10798,8 +11001,8 @@ with INDENT." (setq group-comment (vhdl-parse-group-comment)) (setq end-of-list (vhdl-parse-string ")[ \t\n]*;[ \t\n]*" t)) (while (not end-of-list) - ;; parse names - (vhdl-parse-string "\\(\\w+\\)[ \t\n]*") + ;; parse names (accept extended identifiers) + (vhdl-parse-string "\\(\\w+\\|\\\\[^\\]+\\\\\\)[ \t\n]*") (setq names (list (match-string-no-properties 1))) (while (vhdl-parse-string ",[ \t\n]*\\(\\w+\\)[ \t\n]*" t) (setq names @@ -10865,7 +11068,7 @@ with INDENT." (while (not end-of-list) ;; parse object (setq object - (and (vhdl-parse-string "\\(signal\\|quantity\\|terminal\\)[ \t\n]*" t) + (and (vhdl-parse-string "\\<\\(signal\\|quantity\\|terminal\\)\\>[ \t\n]*" t) (match-string-no-properties 1))) ;; parse names (accept extended identifiers) (vhdl-parse-string "\\(\\w+\\|\\\\[^\\]+\\\\\\)[ \t\n]*") @@ -10875,7 +11078,7 @@ with INDENT." ;; parse direction (vhdl-parse-string ":[ \t\n]*") (setq direct - (and (vhdl-parse-string "\\(in\\|out\\|inout\\|buffer\\|linkage\\)[ \t\n]+" t) + (and (vhdl-parse-string "\\<\\(in\\|out\\|inout\\|buffer\\|linkage\\)\\>[ \t\n]+" t) (match-string-no-properties 1))) ;; parse type (vhdl-parse-string "\\([^();\n]+\\)") @@ -11092,7 +11295,10 @@ with INDENT." (car (nth 0 (car generic-list))) (or (nth 2 (car generic-list)) " "))) (setq generic-list (cdr generic-list)) - (insert (if generic-list ", " ")"))) + (insert (if generic-list ", " ")")) + (when (and (not generic-list) secondary + (null (nth 2 vhdl-port-list))) + (insert ";"))) (unless vhdl-argument-list-indent (insert "\n") (indent-to (+ margin vhdl-basic-offset))) (setq list-margin (current-column)) @@ -11108,6 +11314,9 @@ with INDENT." (or (nth 2 generic) ""))) (setq generic-list (cdr generic-list)) (insert (if generic-list "," ")")) + (when (and (not generic-list) secondary + (null (nth 2 vhdl-port-list))) + (insert ";")) ;; paste comment (when (or vhdl-include-type-comments (and vhdl-include-port-comments (nth 3 generic))) @@ -11135,7 +11344,7 @@ with INDENT." (insert (vhdl-replace-string vhdl-actual-port-name (car (nth 0 (car port-list))))) (setq port-list (cdr port-list)) - (insert (if port-list ", " ");"))) + (insert (if port-list ", " ")"))) (unless vhdl-argument-list-indent (insert "\n") (indent-to (+ margin vhdl-basic-offset))) (setq list-margin (current-column)) @@ -11215,6 +11424,8 @@ with INDENT." (when (nth 2 vhdl-port-list) (insert "\n") (indent-to (+ margin vhdl-basic-offset)) (vhdl-port-paste-port-map)) + (unless (or (nth 1 vhdl-port-list) (nth 2 vhdl-port-list)) + (insert ";")) (message "Pasting port as instantiation \"%s\"...done" name)) (setq vhdl-port-list orig-vhdl-port-list)))) @@ -11356,7 +11567,9 @@ with INDENT." ;; open entity file (unless (eq vhdl-testbench-create-files 'none) (setq ent-file-name - (concat ent-name "." (file-name-extension (buffer-file-name)))) + (concat (vhdl-replace-string vhdl-testbench-entity-file-name + ent-name t) + "." (file-name-extension (buffer-file-name)))) (if (file-exists-p ent-file-name) (if (y-or-n-p (concat "File \"" ent-file-name "\" exists; overwrite? ")) @@ -11403,8 +11616,9 @@ with INDENT." (insert "\n") (setq ent-buffer (current-buffer)) (setq arch-file-name - (concat ent-name "_" arch-name "." - (file-name-extension (buffer-file-name)))) + (concat (vhdl-replace-string vhdl-testbench-architecture-file-name + (concat ent-name " " arch-name) t) + "." (file-name-extension (buffer-file-name)))) (when (and (file-exists-p arch-file-name) (not (y-or-n-p (concat "File \"" arch-file-name "\" exists; overwrite? ")))) @@ -11709,7 +11923,7 @@ with INDENT." (vhdl-paste-group-comment (nth 5 vhdl-subprog-list) list-margin)) ;; paste return type (insert "return " (nth 3 vhdl-subprog-list)) - (if (eq kind 'decl) (insert ";") (vhdl-insert-keyword " is")) + (if (eq kind 'decl) (insert ";") (vhdl-insert-keyword " is")) (when (and vhdl-include-port-comments (nth 4 vhdl-subprog-list)) (vhdl-comment-insert-inline (nth 4 vhdl-subprog-list) t))) ;; align parameter list @@ -11933,7 +12147,9 @@ options vhdl-upper-case-{keywords,types,attributes,enum-values}." "Return the line number of the line containing point." (save-restriction (widen) - (1+ (count-lines (point-min) (line-beginning-position))))) + (save-excursion + (beginning-of-line) + (1+ (count-lines 1 (point)))))) (defun vhdl-line-kill-entire (&optional arg) "Delete entire line." @@ -12060,7 +12276,8 @@ File statistics: \"%s\"\n\ # statements : %5d\n\ # code lines : %5d\n\ # total lines : %5d\n\ " - (buffer-file-name) no-stats no-code-lines no-lines))) + (buffer-file-name) no-stats no-code-lines no-lines) + (unless vhdl-emacs-21 (vhdl-show-messages)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Help functions @@ -12103,6 +12320,12 @@ File statistics: \"%s\"\n\ (vhdl-warning (format "Unknown VHDL project: \"%s\"" name)))) (vhdl-speedbar-update-current-project)) +(defun vhdl-set-default-project () + "Set current project as default on startup." + (interactive) + (customize-set-variable 'vhdl-project vhdl-project) + (customize-save-customized)) + (defun vhdl-toggle-project (name token indent) "Set current project to NAME or unset if NAME is current project." (vhdl-set-project (if (equal name vhdl-project) "" name))) @@ -12160,7 +12383,7 @@ File statistics: \"%s\"\n\ (load-file file-name) (when (/= (length (aget vhdl-project-alist vhdl-project t)) 10) (adelete 'vhdl-project-alist vhdl-project) - (error)) + (error "")) (when not-make-current (setq vhdl-project current-project)) (vhdl-update-mode-menu) @@ -12368,8 +12591,8 @@ File statistics: \"%s\"\n\ (save-match-data (goto-char (match-end 1)) ;; move to next item - (if (looking-at "\\s-*,") - (goto-char (match-end 0)) + (if (looking-at "\\(\\s-*,\\)") + (goto-char (match-end 1)) (end-of-line) t)))) (error t))) @@ -12417,7 +12640,7 @@ This does highlighting of keywords and standard identifiers.") "postponed\\|process\\|" (when (vhdl-standard-p 'ams) "procedural\\|") "with\\|while" - "\\)\\>\\|\\w+\\s-*\\(([^\n]*)\\)*\\s-*<=\\)") + "\\)\\>\\|\\w+\\s-*\\(([^\n]*)\\|\\.\\w+\\)*\\s-*<=\\)") 1 'font-lock-function-name-face) ;; highlight label and component name of component instantiations @@ -12484,7 +12707,7 @@ This does highlighting of keywords and standard identifiers.") (list (concat "^\\s-*attribute\\s-+\\(\\w+\\)") - 1 'vhdl-attribute) + 1 'vhdl-font-lock-attribute-face) ;; highlight type/nature name in (sub)type/(sub)nature declarations (list @@ -12516,7 +12739,7 @@ This does highlighting of keywords and standard identifiers.") (while (= (preceding-char) ?\)) (backward-sexp)) (skip-syntax-backward "w_") (skip-syntax-backward " ") - (when (memq (preceding-char) '(?n ?N)) + (when (memq (preceding-char) '(?n ?N ?|)) (goto-char (point-max)))) (goto-char (match-end 1)) (1 font-lock-variable-name-face))) @@ -12542,39 +12765,40 @@ This does highlighting of additional reserved words.") (defconst vhdl-font-lock-keywords-5 ;; background highlight translate-off regions - '((vhdl-match-translate-off (0 vhdl-translate-off-face append))) + '((vhdl-match-translate-off (0 vhdl-font-lock-translate-off-face append))) "For consideration as a value of `vhdl-font-lock-keywords'. This does background highlighting of translate-off regions.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Font and color definitions -(defvar vhdl-prompt-face 'vhdl-prompt +(defvar vhdl-font-lock-prompt-face 'vhdl-font-lock-prompt-face "Face name to use for prompts.") -(defvar vhdl-attribute-face 'vhdl-attribute +(defvar vhdl-font-lock-attribute-face 'vhdl-font-lock-attribute-face "Face name to use for standardized attributes.") -(defvar vhdl-enumvalue-face 'vhdl-enumvalue +(defvar vhdl-font-lock-enumvalue-face 'vhdl-font-lock-enumvalue-face "Face name to use for standardized enumeration values.") -(defvar vhdl-function-face 'vhdl-function +(defvar vhdl-font-lock-function-face 'vhdl-font-lock-function-face "Face name to use for standardized functions and packages.") -(defvar vhdl-directive-face 'vhdl-directive +(defvar vhdl-font-lock-directive-face 'vhdl-font-lock-directive-face "Face name to use for directives.") -(defvar vhdl-reserved-words-face 'vhdl-reserved-words +(defvar vhdl-font-lock-reserved-words-face 'vhdl-font-lock-reserved-words-face "Face name to use for additional reserved words.") -(defvar vhdl-translate-off-face 'vhdl-translate-off +(defvar vhdl-font-lock-translate-off-face 'vhdl-font-lock-translate-off-face "Face name to use for translate-off regions.") ;; face names to use for words with special syntax. (let ((syntax-alist vhdl-special-syntax-alist) name) (while syntax-alist - (setq name (vhdl-function-name "vhdl" (nth 0 (car syntax-alist)))) + (setq name (vhdl-function-name + "vhdl-font-lock" (nth 0 (car syntax-alist)) "face")) (eval `(defvar ,name ',name ,(concat "Face name to use for " (nth 0 (car syntax-alist)) "."))) @@ -12598,7 +12822,7 @@ This does background highlighting of translate-off regions.") (custom-add-to-group 'vhdl-highlight-faces 'font-lock-variable-name-face 'custom-face) -(defface vhdl-prompt +(defface vhdl-font-lock-prompt-face '((((min-colors 88) (class color) (background light)) (:foreground "Red1" :bold t)) (((class color) (background light)) (:foreground "Red" :bold t)) @@ -12607,50 +12831,40 @@ This does background highlighting of translate-off regions.") "Font lock mode face used to highlight prompts." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-prompt-face 'face-alias 'vhdl-prompt) -(defface vhdl-attribute +(defface vhdl-font-lock-attribute-face '((((class color) (background light)) (:foreground "Orchid")) (((class color) (background dark)) (:foreground "LightSteelBlue")) (t (:italic t :bold t))) "Font lock mode face used to highlight standardized attributes." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-attribute-face 'face-alias 'vhdl-attribute) -(defface vhdl-enumvalue +(defface vhdl-font-lock-enumvalue-face '((((class color) (background light)) (:foreground "SaddleBrown")) (((class color) (background dark)) (:foreground "BurlyWood")) (t (:italic t :bold t))) "Font lock mode face used to highlight standardized enumeration values." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-enumvalue-face 'face-alias 'vhdl-enumvalue) -(defface vhdl-function +(defface vhdl-font-lock-function-face '((((class color) (background light)) (:foreground "Cyan4")) (((class color) (background dark)) (:foreground "Orchid1")) (t (:italic t :bold t))) "Font lock mode face used to highlight standardized functions and packages." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-function-face 'face-alias 'vhdl-function) -(defface vhdl-directive +(defface vhdl-font-lock-directive-face '((((class color) (background light)) (:foreground "CadetBlue")) (((class color) (background dark)) (:foreground "Aquamarine")) (t (:italic t :bold t))) "Font lock mode face used to highlight directives." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-directive-face 'face-alias 'vhdl-directive) -(defface vhdl-reserved-word +(defface vhdl-font-lock-reserved-words-face '((((class color) (background light)) (:foreground "Orange" :bold t)) (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1" :bold t)) @@ -12659,23 +12873,20 @@ This does background highlighting of translate-off regions.") "Font lock mode face used to highlight additional reserved words." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-reserved-words-face 'face-alias 'vhdl-reserved-word) -(defface vhdl-translate-off +(defface vhdl-font-lock-translate-off-face '((((class color) (background light)) (:background "LightGray")) (((class color) (background dark)) (:background "DimGray")) (t ())) "Font lock mode face used to background highlight translate-off regions." :group 'vhdl-highlight-faces :group 'font-lock-highlighting-faces) -;; backward-compatibility alias -(put 'vhdl-font-lock-translate-off-face 'face-alias 'vhdl-translate-off) ;; font lock mode faces used to highlight words with special syntax. (let ((syntax-alist vhdl-special-syntax-alist)) (while syntax-alist - (eval `(defface ,(vhdl-function-name "vhdl" (caar syntax-alist)) + (eval `(defface ,(vhdl-function-name + "vhdl-font-lock" (caar syntax-alist) "face") '((((class color) (background light)) (:foreground ,(nth 2 (car syntax-alist)))) (((class color) (background dark)) @@ -12692,23 +12903,28 @@ This does background highlighting of translate-off regions.") (defun vhdl-font-lock-init () "Initialize fontification." - ;; highlight template prompts and directives + ;; highlight template prompts and directives (setq vhdl-font-lock-keywords-0 (list (list (concat "\\(^\\|[ \t(.']\\)\\(<" vhdl-template-prompt-syntax ">\\)") - 2 'vhdl-prompt t) + 2 'vhdl-font-lock-prompt-face t) (list (concat "--\\s-*" vhdl-directive-keywords-regexp "\\s-+\\(.*\\)$") - 2 'vhdl-directive t))) + 2 'vhdl-font-lock-directive-face t) + ;; highlight c-preprocessor directives + (list "^#[ \t]*\\(\\w+\\)\\([ \t]+\\(\\w+\\)\\)?" + '(1 font-lock-builtin-face) + '(3 font-lock-variable-name-face nil t)))) ;; highlight keywords and standardized types, attributes, enumeration ;; values, and subprograms (setq vhdl-font-lock-keywords-1 (list - (list (concat "'" vhdl-attributes-regexp) 1 'vhdl-attribute) + (list (concat "'" vhdl-attributes-regexp) + 1 'vhdl-font-lock-attribute-face) (list vhdl-types-regexp 1 'font-lock-type-face) - (list vhdl-functions-regexp 1 'vhdl-function) - (list vhdl-packages-regexp 1 'vhdl-function) - (list vhdl-enum-values-regexp 1 'vhdl-enumvalue) + (list vhdl-functions-regexp 1 'vhdl-font-lock-function-face) + (list vhdl-packages-regexp 1 'vhdl-font-lock-function-face) + (list vhdl-enum-values-regexp 1 'vhdl-font-lock-enumvalue-face) (list vhdl-keywords-regexp 1 'font-lock-keyword-face))) ;; highlight words with special syntax. (setq vhdl-font-lock-keywords-3 @@ -12719,13 +12935,14 @@ This does background highlighting of translate-off regions.") (cons (cons (concat "\\<\\(" (nth 1 (car syntax-alist)) "\\)\\>") (vhdl-function-name - "vhdl" (nth 0 (car syntax-alist)))) + "vhdl-font-lock" (nth 0 (car syntax-alist)) "face")) keywords)) (setq syntax-alist (cdr syntax-alist))) keywords)) ;; highlight additional reserved words (setq vhdl-font-lock-keywords-4 - (list (list vhdl-reserved-words-regexp 1 'vhdl-reserved-word))) + (list (list vhdl-reserved-words-regexp 1 + 'vhdl-font-lock-reserved-words-face))) ;; highlight everything together (setq vhdl-font-lock-keywords (append @@ -12750,7 +12967,7 @@ This does background highlighting of translate-off regions.") '(font-lock-syntactic-keywords . vhdl-font-lock-syntactic-keywords))) (when (fboundp 'font-lock-unset-defaults) (font-lock-unset-defaults)) ; not implemented in XEmacs - (font-lock-set-defaults) ;What for? --Stef + (font-lock-set-defaults) (font-lock-mode nil) (font-lock-mode t)) @@ -12763,12 +12980,18 @@ This does background highlighting of translate-off regions.") (unless (or (not vhdl-print-customize-faces) ps-print-color-p) (set (make-local-variable 'ps-bold-faces) - '(font-lock-keyword-face font-lock-type-face - vhdl-attribute vhdl-enumvalue vhdl-directive)) + '(font-lock-keyword-face + font-lock-type-face + vhdl-font-lock-attribute-face + vhdl-font-lock-enumvalue-face + vhdl-font-lock-directive-face)) (set (make-local-variable 'ps-italic-faces) '(font-lock-comment-face - font-lock-function-name-face font-lock-type-face - vhdl-attribute vhdl-enumvalue vhdl-directive)) + font-lock-function-name-face + font-lock-type-face + vhdl-font-lock-attribute-face + vhdl-font-lock-enumvalue-face + vhdl-font-lock-directive-face)) (set (make-local-variable 'ps-underlined-faces) '(font-lock-string-face)) (setq ps-always-build-face-reference t)) @@ -12812,9 +13035,9 @@ project/directory.") ;; (ent-key ent-name ent-file ent-line ;; (arch-key arch-name arch-file arch-line ;; (inst-key inst-name inst-file inst-line inst-comp-name inst-ent-key -;; inst-arch-key inst-conf-key inst-lib-key) -;; (lib-name pack-key)) -;; (lib-name pack-key)) +;; inst-arch-key inst-conf-key inst-lib-key inst-path) +;; (lib-name pack-key)) +;; mra-key (lib-name pack-key)) (defvar vhdl-config-alist nil "Cache with configurations for each project/directory.") @@ -12822,7 +13045,7 @@ project/directory.") ;; (cache-key ;; (conf-key conf-name conf-file conf-line ent-key arch-key ;; (inst-key inst-comp-name inst-ent-key inst-arch-key -;; inst-conf-key inst-lib-key) +;; inst-conf-key inst-lib-key) ;; (lib-name pack-key))) (defvar vhdl-package-alist nil @@ -12847,7 +13070,7 @@ project/directory.") ;; structure: (parenthesised expression means list of such entries) ;; (cache-key ;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list) -;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list)) +;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list)) (defvar vhdl-directory-alist nil "Cache with source directories for each project.") @@ -12980,7 +13203,6 @@ hierarchy otherwise.") (let* ((ent-name (match-string-no-properties 1)) (ent-key (downcase ent-name)) (ent-entry (aget ent-alist ent-key t)) - (arch-alist (nth 3 ent-entry)) (lib-alist (vhdl-scan-context-clause))) (if (nth 1 ent-entry) (vhdl-warning-when-idle @@ -12990,10 +13212,11 @@ hierarchy otherwise.") (setq ent-list (cons ent-key ent-list)) (aput 'ent-alist ent-key (list ent-name file-name (vhdl-current-line) - arch-alist lib-alist))))) + (nth 3 ent-entry) (nth 4 ent-entry) + lib-alist))))) ;; scan for architectures (goto-char (point-min)) - (while (re-search-forward "^[ \t]*architecture[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t) + (while (re-search-forward "^[ \t]*architecture[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t) (let* ((arch-name (match-string-no-properties 1)) (arch-key (downcase arch-name)) (ent-name (match-string-no-properties 2)) @@ -13016,7 +13239,7 @@ hierarchy otherwise.") (list (or (nth 0 ent-entry) ent-name) (nth 1 ent-entry) (nth 2 ent-entry) (vhdl-sort-alist arch-alist) - (nth 4 ent-entry)))))) + arch-key (nth 5 ent-entry)))))) ;; scan for configurations (goto-char (point-min)) (while (re-search-forward "^[ \t]*configuration[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t) @@ -13133,47 +13356,61 @@ hierarchy otherwise.") (beg-of-unit (point)) (end-of-unit (vhdl-get-end-of-unit)) (inst-no 0) - inst-alist) + inst-alist inst-path) ;; scan for contained instantiations (while (and (re-search-forward (concat "^[ \t]*\\(\\w+\\)[ \t\n]*:[ \t\n]*\\(" "\\(\\w+\\)[ \t\n]+\\(--[^\n]*\n[ \t\n]*\\)*\\(generic\\|port\\)[ \t\n]+map\\>\\|" "component[ \t\n]+\\(\\w+\\)\\|" - "\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?\\)") end-of-unit t) + "\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?\\|" + "\\(\\(for\\|if\\)\\>[^;:]+\\<generate\\>\\|block\\>\\)\\)\\|" + "\\(^[ \t]*end[ \t\n]+\\(generate\\|block\\)\\>\\)") end-of-unit t) (or (not limit-hier-inst-no) (<= (setq inst-no (1+ inst-no)) limit-hier-inst-no))) - (let* ((inst-name (match-string-no-properties 1)) - (inst-key (downcase inst-name)) - (inst-comp-name - (or (match-string-no-properties 3) - (match-string-no-properties 6))) - (inst-ent-key - (or (and (match-string 8) - (vhdl-match-string-downcase 11)) - (and inst-comp-name - (downcase inst-comp-name)))) - (inst-arch-key (vhdl-match-string-downcase 13)) - (inst-conf-key - (and (not (match-string 8)) - (vhdl-match-string-downcase 11))) - (inst-lib-key (vhdl-match-string-downcase 10))) - (goto-char (match-end 1)) - (setq inst-list (cons inst-key inst-list) - inst-ent-list (cons inst-ent-key inst-ent-list)) - (setq inst-alist - (append - inst-alist - (list (list inst-key inst-name file-name - (vhdl-current-line) inst-comp-name - inst-ent-key inst-arch-key - inst-conf-key inst-lib-key)))))) + (cond + ;; block/generate beginning found + ((match-string 14) + (setq inst-path + (cons (match-string-no-properties 1) inst-path))) + ;; block/generate end found + ((match-string 16) + (setq inst-path (cdr inst-path))) + ;; instantiation found + (t + (let* ((inst-name (match-string-no-properties 1)) + (inst-key (downcase inst-name)) + (inst-comp-name + (or (match-string-no-properties 3) + (match-string-no-properties 6))) + (inst-ent-key + (or (and (match-string 8) + (vhdl-match-string-downcase 11)) + (and inst-comp-name + (downcase inst-comp-name)))) + (inst-arch-key (vhdl-match-string-downcase 13)) + (inst-conf-key + (and (not (match-string 8)) + (vhdl-match-string-downcase 11))) + (inst-lib-key (vhdl-match-string-downcase 10))) + (goto-char (match-end 1)) + (setq inst-list (cons inst-key inst-list) + inst-ent-list + (cons inst-ent-key inst-ent-list)) + (setq inst-alist + (append + inst-alist + (list (list inst-key inst-name file-name + (vhdl-current-line) inst-comp-name + inst-ent-key inst-arch-key + inst-conf-key inst-lib-key + (reverse inst-path))))))))) ;; scan for contained configuration specifications (goto-char beg-of-unit) (while (re-search-forward (concat "^[ \t]*for[ \t\n]+\\(\\w+\\([ \t\n]*,[ \t\n]*\\w+\\)*\\)[ \t\n]*:[ \t\n]*\\(\\w+\\)[ \t\n]+\\(--[^\n]*\n[ \t\n]*\\)*" "use[ \t\n]+\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?") end-of-unit t) - (let* ((inst-comp-name (match-string-no-properties 3)) + (let* ((inst-comp-name (match-string-no-properties 3)) (inst-ent-key (and (match-string 6) (vhdl-match-string-downcase 9))) @@ -13217,7 +13454,7 @@ hierarchy otherwise.") (aput 'ent-alist ent-key (list (nth 0 ent-entry) (nth 1 ent-entry) (nth 2 ent-entry) (vhdl-sort-alist arch-alist) - (nth 4 ent-entry))) + (nth 4 ent-entry) (nth 5 ent-entry))) (when (and limit-hier-inst-no (> inst-no limit-hier-inst-no)) (message "WARNING: Scan limit (hierarchy: instances per architecture) reached in file:\n \"%s\"" file-name) @@ -13410,7 +13647,7 @@ of PROJECT." (if (or (nth 1 entry) arch-alist) (aput 'ent-alist ent-key (list (nth 0 entry) (nth 1 entry) (nth 2 entry) - arch-alist (nth 4 entry))) + arch-alist (nth 4 entry) (nth 5 entry))) (adelete 'ent-alist ent-key))) (setq arch-list (cdr arch-list) arch-ent-list (cdr arch-ent-list))) @@ -13474,6 +13711,7 @@ of PROJECT." updated)) (setq file-list (cdr file-list))) (setq vhdl-modified-file-list nil) + (vhdl-speedbar-update-current-unit) (when updated (message "Updating hierarchy...done"))))) ;; structure (parenthesised expression means list of such entries) @@ -13528,17 +13766,18 @@ entity ENT-KEY." (setq inst-ent-entry (aget ent-alist inst-ent-key t)) ;; determine architecture (setq inst-arch-key - (or (nth 3 (car tmp-list)) ; from configuration - (nth 4 inst-conf-entry) ; from subconfiguration - (nth 6 inst-entry) ; from direct instantiation + (or (nth 3 (car tmp-list)) ; from configuration + (nth 4 inst-conf-entry) ; from subconfiguration + (nth 6 inst-entry) ; from direct instantiation (nth 4 (aget conf-alist (nth 7 inst-entry))) - ; from configuration spec. - (caar (nth 3 inst-ent-entry)))) ; random (simplified MRA) + ; from configuration spec. + (nth 4 inst-ent-entry) ; MRA + (caar (nth 3 inst-ent-entry)))) ; first alphabetically (setq inst-arch-entry (aget (nth 3 inst-ent-entry) inst-arch-key t)) ;; set library (setq inst-lib-key - (or (nth 5 (car tmp-list)) ; from configuration - (nth 8 inst-entry))) ; from direct instantiation + (or (nth 5 (car tmp-list)) ; from configuration + (nth 8 inst-entry))) ; from direct instantiation ;; gather information for this instance (setq comp-entry (list (nth 1 inst-entry) @@ -13710,7 +13949,7 @@ entity ENT-KEY." (progn (load-file file-dir-name) (string< (mapconcat (lambda (a) (format "%3d" (string-to-number a))) - (split-string "3.31.14" "\\.") "") + (split-string "3.33" "\\.") "") (mapconcat (lambda (a) (format "%3d" (string-to-number a))) (split-string vhdl-cache-version "\\.") ""))) @@ -13770,6 +14009,8 @@ if required." (define-key vhdl-speedbar-key-map "_" 'vhdl-speedbar-contract-all) (define-key vhdl-speedbar-key-map "C" 'vhdl-speedbar-port-copy) (define-key vhdl-speedbar-key-map "P" 'vhdl-speedbar-place-component) + (define-key vhdl-speedbar-key-map "F" 'vhdl-speedbar-configuration) + (define-key vhdl-speedbar-key-map "A" 'vhdl-speedbar-select-mra) (define-key vhdl-speedbar-key-map "K" 'vhdl-speedbar-make-design) (define-key vhdl-speedbar-key-map "R" 'vhdl-speedbar-rescan-hierarchy) (define-key vhdl-speedbar-key-map "S" 'vhdl-save-caches) @@ -13811,6 +14052,10 @@ if required." (vhdl-speedbar-check-unit 'subprogram))] ["Place Component" vhdl-speedbar-place-component (vhdl-speedbar-check-unit 'entity)] + ["Generate Configuration" vhdl-speedbar-configuration + (vhdl-speedbar-check-unit 'architecture)] + ["Select as MRA" vhdl-speedbar-select-mra + (vhdl-speedbar-check-unit 'architecture)] ["Make" vhdl-speedbar-make-design (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))] ["Generate Makefile" vhdl-speedbar-generate-makefile @@ -13977,7 +14222,7 @@ otherwise use cached data." 'bracket ?+ 'vhdl-speedbar-expand-entity (nth 0 ent-entry) (nth 1 ent-entry) 'vhdl-speedbar-find-file (cons (nth 2 ent-entry) (nth 3 ent-entry)) - 'vhdl-speedbar-entity depth) + 'vhdl-speedbar-entity-face depth) (unless (nth 2 ent-entry) (end-of-line 0) (insert "!") (forward-char 1)) (unless (member (nth 0 ent-entry) ent-inst-list) @@ -13991,7 +14236,7 @@ otherwise use cached data." 'bracket ?+ 'vhdl-speedbar-expand-config (nth 0 conf-entry) (nth 1 conf-entry) 'vhdl-speedbar-find-file (cons (nth 2 conf-entry) (nth 3 conf-entry)) - 'vhdl-speedbar-configuration depth) + 'vhdl-speedbar-configuration-face depth) (setq conf-alist (cdr conf-alist))) ;; insert packages (when pack-alist (vhdl-speedbar-make-title-line "Packages:" depth)) @@ -14160,7 +14405,8 @@ otherwise use cached data." (ent-entry (aget ent-alist token t)) (arch-alist (nth 3 ent-entry)) (inst-alist (vhdl-get-instantiations token indent)) - (subpack-alist (nth 4 ent-entry)) + (subpack-alist (nth 5 ent-entry)) + (multiple-arch (> (length arch-alist) 1)) arch-entry inst-entry) (if (not (or arch-alist inst-alist subpack-alist)) (speedbar-change-expand-button-char ??) @@ -14182,7 +14428,10 @@ otherwise use cached data." (cons token (nth 0 arch-entry)) (nth 1 arch-entry) 'vhdl-speedbar-find-file (cons (nth 2 arch-entry) (nth 3 arch-entry)) - 'vhdl-speedbar-architecture (1+ indent)) + 'vhdl-speedbar-architecture-face (1+ indent)) + (when (and multiple-arch + (equal (nth 0 arch-entry) (nth 4 ent-entry))) + (end-of-line 0) (insert " (mra)") (forward-char 1)) (setq arch-alist (cdr arch-alist))) ;; insert instantiations (when inst-alist @@ -14365,7 +14614,7 @@ otherwise use cached data." (cons token (nth 0 comp-entry)) (nth 1 comp-entry) 'vhdl-speedbar-find-file (cons (nth 2 comp-entry) (nth 3 comp-entry)) - 'vhdl-speedbar-entity (1+ indent)) + 'vhdl-speedbar-entity-face (1+ indent)) (setq comp-alist (cdr comp-alist))) ;; insert subprograms (when func-alist @@ -14415,7 +14664,8 @@ otherwise use cached data." (setq pack-entry (aget pack-alist pack-key t)) (vhdl-speedbar-make-subpack-line (or (nth 0 pack-entry) pack-key) lib-name - (cons (nth 1 pack-entry) (nth 2 pack-entry)) indent) + (cons (nth 1 pack-entry) (nth 2 pack-entry)) + (cons (nth 6 pack-entry) (nth 7 pack-entry)) indent) (setq subpack-alist (cdr subpack-alist))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -14481,43 +14731,43 @@ NO-POSITION non-nil means do not re-position cursor." (let* ((file-entry (aget file-alist speedbar-last-selected-file t))) (vhdl-speedbar-update-units "\\[.\\] " (nth 0 file-entry) - speedbar-last-selected-file 'vhdl-speedbar-entity) + speedbar-last-selected-file 'vhdl-speedbar-entity-face) (vhdl-speedbar-update-units "{.} " (nth 1 file-entry) - speedbar-last-selected-file 'vhdl-speedbar-architecture) + speedbar-last-selected-file 'vhdl-speedbar-architecture-face) (vhdl-speedbar-update-units "\\[.\\] " (nth 3 file-entry) - speedbar-last-selected-file 'vhdl-speedbar-configuration) + speedbar-last-selected-file 'vhdl-speedbar-configuration-face) (vhdl-speedbar-update-units "[]>] " (nth 4 file-entry) - speedbar-last-selected-file 'vhdl-speedbar-package) + speedbar-last-selected-file 'vhdl-speedbar-package-face) (vhdl-speedbar-update-units "\\[.\\].+(" '("body") - speedbar-last-selected-file 'vhdl-speedbar-package) + speedbar-last-selected-file 'vhdl-speedbar-package-face) (vhdl-speedbar-update-units "> " (nth 6 file-entry) - speedbar-last-selected-file 'vhdl-speedbar-instantiation)) + speedbar-last-selected-file 'vhdl-speedbar-instantiation-face)) ;; highlight current units (let* ((file-entry (aget file-alist file-name t))) (setq pos (vhdl-speedbar-update-units "\\[.\\] " (nth 0 file-entry) - file-name 'vhdl-speedbar-entity-selected pos) + file-name 'vhdl-speedbar-entity-selected-face pos) pos (vhdl-speedbar-update-units "{.} " (nth 1 file-entry) - file-name 'vhdl-speedbar-architecture-selected pos) + file-name 'vhdl-speedbar-architecture-selected-face pos) pos (vhdl-speedbar-update-units "\\[.\\] " (nth 3 file-entry) - file-name 'vhdl-speedbar-configuration-selected pos) + file-name 'vhdl-speedbar-configuration-selected-face pos) pos (vhdl-speedbar-update-units "[]>] " (nth 4 file-entry) - file-name 'vhdl-speedbar-package-selected pos) + file-name 'vhdl-speedbar-package-selected-face pos) pos (vhdl-speedbar-update-units "\\[.\\].+(" '("body") - file-name 'vhdl-speedbar-package-selected pos) + file-name 'vhdl-speedbar-package-selected-face pos) pos (vhdl-speedbar-update-units "> " (nth 6 file-entry) - file-name 'vhdl-speedbar-instantiation-selected pos)))))) + file-name 'vhdl-speedbar-instantiation-selected-face pos)))))) ;; move speedbar so the first highlighted unit is visible (when (and pos (not no-position)) (goto-char pos) @@ -14568,21 +14818,21 @@ NO-POSITION non-nil means do not re-position cursor." (insert "(top)") (insert inst-name) (speedbar-make-button - start (point) 'vhdl-speedbar-instantiation 'speedbar-highlight-face + start (point) 'vhdl-speedbar-instantiation-face 'speedbar-highlight-face 'vhdl-speedbar-find-file inst-file-marker)) (insert delimiter) (when ent-name (setq start (point)) (insert ent-name) (speedbar-make-button - start (point) 'vhdl-speedbar-entity 'speedbar-highlight-face + start (point) 'vhdl-speedbar-entity-face 'speedbar-highlight-face 'vhdl-speedbar-find-file ent-file-marker) (when arch-name (insert " (") (setq start (point)) (insert arch-name) (speedbar-make-button - start (point) 'vhdl-speedbar-architecture 'speedbar-highlight-face + start (point) 'vhdl-speedbar-architecture-face 'speedbar-highlight-face 'vhdl-speedbar-find-file arch-file-marker) (insert ")")) (when conf-name @@ -14590,14 +14840,14 @@ NO-POSITION non-nil means do not re-position cursor." (setq start (point)) (insert conf-name) (speedbar-make-button - start (point) 'vhdl-speedbar-configuration 'speedbar-highlight-face + start (point) 'vhdl-speedbar-configuration-face 'speedbar-highlight-face 'vhdl-speedbar-find-file conf-file-marker) (insert ")"))) (when (and lib-name (not (equal lib-name (downcase (vhdl-work-library))))) (setq start (point)) (insert " (" lib-name ")") (put-text-property (+ 2 start) (1- (point)) 'face - 'vhdl-speedbar-library)) + 'vhdl-speedbar-library-face)) (insert-char ?\n 1) (put-text-property visible-start (point) 'invisible nil))) @@ -14621,7 +14871,7 @@ NO-POSITION non-nil means do not re-position cursor." (setq start (point)) (insert pack-name) (speedbar-make-button - start (point) 'vhdl-speedbar-package 'speedbar-highlight-face + start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face 'vhdl-speedbar-find-file pack-file-marker) (unless (car pack-file-marker) (insert "!")) @@ -14630,14 +14880,14 @@ NO-POSITION non-nil means do not re-position cursor." (setq start (point)) (insert "body") (speedbar-make-button - start (point) 'vhdl-speedbar-package 'speedbar-highlight-face + start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face 'vhdl-speedbar-find-file body-file-marker) (insert ")")) (insert-char ?\n 1) (put-text-property visible-start (point) 'invisible nil))) (defun vhdl-speedbar-make-subpack-line (pack-name lib-name pack-file-marker - depth) + pack-body-file-marker depth) "Insert used package entry." (let ((start (point)) visible-start) @@ -14654,12 +14904,20 @@ NO-POSITION non-nil means do not re-position cursor." (setq start (point)) (insert pack-name) (speedbar-make-button - start (point) 'vhdl-speedbar-package 'speedbar-highlight-face + start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face 'vhdl-speedbar-find-file pack-file-marker) + (when (car pack-body-file-marker) + (insert " (") + (setq start (point)) + (insert "body") + (speedbar-make-button + start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face + 'vhdl-speedbar-find-file pack-body-file-marker) + (insert ")")) (setq start (point)) (insert " (" lib-name ")") (put-text-property (+ 2 start) (1- (point)) 'face - 'vhdl-speedbar-library) + 'vhdl-speedbar-library-face) (insert-char ?\n 1) (put-text-property visible-start (point) 'invisible nil))) @@ -14682,14 +14940,14 @@ NO-POSITION non-nil means do not re-position cursor." (setq start (point)) (insert func-name) (speedbar-make-button - start (point) 'vhdl-speedbar-subprogram 'speedbar-highlight-face + start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face 'vhdl-speedbar-find-file func-file-marker) (when (car func-body-file-marker) (insert " (") (setq start (point)) (insert "body") (speedbar-make-button - start (point) 'vhdl-speedbar-subprogram 'speedbar-highlight-face + start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face 'vhdl-speedbar-find-file func-body-file-marker) (insert ")")) (insert-char ?\n 1) @@ -14777,22 +15035,22 @@ NO-POSITION non-nil means do not re-position cursor." (message "%s \"%s\" in \"%s\"" ;; design unit kind - (cond ((or (eq face 'vhdl-speedbar-entity) - (eq face 'vhdl-speedbar-entity-selected)) + (cond ((or (eq face 'vhdl-speedbar-entity-face) + (eq face 'vhdl-speedbar-entity-selected-face)) (if (equal (match-string 2) ">") "Component" "Entity")) - ((or (eq face 'vhdl-speedbar-architecture) - (eq face 'vhdl-speedbar-architecture-selected)) + ((or (eq face 'vhdl-speedbar-architecture-face) + (eq face 'vhdl-speedbar-architecture-selected-face)) "Architecture") - ((or (eq face 'vhdl-speedbar-configuration) - (eq face 'vhdl-speedbar-configuration-selected)) + ((or (eq face 'vhdl-speedbar-configuration-face) + (eq face 'vhdl-speedbar-configuration-selected-face)) "Configuration") - ((or (eq face 'vhdl-speedbar-package) - (eq face 'vhdl-speedbar-package-selected)) + ((or (eq face 'vhdl-speedbar-package-face) + (eq face 'vhdl-speedbar-package-selected-face)) "Package") - ((or (eq face 'vhdl-speedbar-instantiation) - (eq face 'vhdl-speedbar-instantiation-selected)) + ((or (eq face 'vhdl-speedbar-instantiation-face) + (eq face 'vhdl-speedbar-instantiation-selected-face)) "Instantiation") - ((eq face 'vhdl-speedbar-subprogram) + ((eq face 'vhdl-speedbar-subprogram-face) "Subprogram") (t "")) ;; design unit name @@ -14812,6 +15070,18 @@ NO-POSITION non-nil means do not re-position cursor." (set-text-properties 0 (length string) nil string) string)) +(defun vhdl-speedbar-higher-text () + "Get speedbar-line-text of higher level." + (let (depth string) + (save-excursion + (beginning-of-line) + (looking-at "^\\([0-9]+\\):") + (setq depth (string-to-number (match-string 1))) + (when (re-search-backward (format "^%d: *[[<{][-+?][]>}] \\([^ \n]+\\)" (1- depth)) nil t) + (setq string (match-string 1)) + (set-text-properties 0 (length string) nil string) + string)))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Help functions @@ -14936,6 +15206,31 @@ is already shown in a buffer." (vhdl-compose-place-component) (select-frame speedbar-frame))) +(defun vhdl-speedbar-configuration () + "Generate configuration for the architecture under the cursor." + (interactive) + (if (not (vhdl-speedbar-check-unit 'architecture)) + (error "ERROR: No architecture under cursor") + (let ((arch-name (vhdl-speedbar-line-text)) + (ent-name (vhdl-speedbar-higher-text))) + (if (fboundp 'speedbar-select-attached-frame) + (speedbar-select-attached-frame) + (select-frame speedbar-attached-frame)) + (vhdl-compose-configuration ent-name arch-name)))) + +(defun vhdl-speedbar-select-mra () + "Select the architecture under the cursor as MRA." + (interactive) + (if (not (vhdl-speedbar-check-unit 'architecture)) + (error "ERROR: No architecture under cursor") + (let* ((arch-key (downcase (vhdl-speedbar-line-text))) + (ent-key (downcase (vhdl-speedbar-higher-text))) + (ent-alist (aget vhdl-entity-alist + (or (vhdl-project-p) default-directory) t)) + (ent-entry (aget ent-alist ent-key t))) + (setcar (cddr (cddr ent-entry)) arch-key) ; (nth 4 ent-entry) + (speedbar-refresh)))) + (defun vhdl-speedbar-make-design () "Make (compile) design unit or directory/project under the cursor." (interactive) @@ -14968,11 +15263,15 @@ expansion function)." (speedbar-position-cursor-on-line) (cond ((eq design-unit 'entity) (memq (get-text-property (match-end 0) 'face) - '(vhdl-speedbar-entity - vhdl-speedbar-entity-selected))) + '(vhdl-speedbar-entity-face + vhdl-speedbar-entity-selected-face))) + ((eq design-unit 'architecture) + (memq (get-text-property (match-end 0) 'face) + '(vhdl-speedbar-architecture-face + vhdl-speedbar-architecture-selected-face))) ((eq design-unit 'subprogram) (eq (get-text-property (match-end 0) 'face) - 'vhdl-speedbar-subprogram)) + 'vhdl-speedbar-subprogram-face)) (t nil)))) (defun vhdl-speedbar-set-depth (depth) @@ -14983,106 +15282,82 @@ expansion function)." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Fontification -(defface vhdl-speedbar-entity +(defface vhdl-speedbar-entity-face '((((class color) (background light)) (:foreground "ForestGreen")) (((class color) (background dark)) (:foreground "PaleGreen"))) "Face used for displaying entity names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-entity-face 'face-alias 'vhdl-speedbar-entity) -(defface vhdl-speedbar-architecture +(defface vhdl-speedbar-architecture-face '((((min-colors 88) (class color) (background light)) (:foreground "Blue1")) (((class color) (background light)) (:foreground "Blue")) + (((class color) (background dark)) (:foreground "LightSkyBlue"))) "Face used for displaying architecture names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-architecture-face 'face-alias 'vhdl-speedbar-architecture) -(defface vhdl-speedbar-configuration +(defface vhdl-speedbar-configuration-face '((((class color) (background light)) (:foreground "DarkGoldenrod")) (((class color) (background dark)) (:foreground "Salmon"))) "Face used for displaying configuration names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-configuration-face 'face-alias 'vhdl-speedbar-configuration) -(defface vhdl-speedbar-package +(defface vhdl-speedbar-package-face '((((class color) (background light)) (:foreground "Grey50")) (((class color) (background dark)) (:foreground "Grey80"))) "Face used for displaying package names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-package-face 'face-alias 'vhdl-speedbar-package) -(defface vhdl-speedbar-library +(defface vhdl-speedbar-library-face '((((class color) (background light)) (:foreground "Purple")) (((class color) (background dark)) (:foreground "Orchid1"))) "Face used for displaying library names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-library-face 'face-alias 'vhdl-speedbar-library) -(defface vhdl-speedbar-instantiation +(defface vhdl-speedbar-instantiation-face '((((class color) (background light)) (:foreground "Brown")) (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1")) (((class color) (background dark)) (:foreground "Yellow"))) "Face used for displaying instantiation names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-instantiation-face 'face-alias 'vhdl-speedbar-instantiation) -(defface vhdl-speedbar-subprogram +(defface vhdl-speedbar-subprogram-face '((((class color) (background light)) (:foreground "Orchid4")) (((class color) (background dark)) (:foreground "BurlyWood2"))) "Face used for displaying subprogram names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-subprogram-face 'face-alias 'vhdl-speedbar-subprogram) -(defface vhdl-speedbar-entity-selected +(defface vhdl-speedbar-entity-selected-face '((((class color) (background light)) (:foreground "ForestGreen" :underline t)) (((class color) (background dark)) (:foreground "PaleGreen" :underline t))) "Face used for displaying entity names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-entity-selected-face 'face-alias 'vhdl-speedbar-entity-selected) -(defface vhdl-speedbar-architecture-selected - '((((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t)) - (((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t)) +(defface vhdl-speedbar-architecture-selected-face + '((((min-colors 88) (class color) (background light)) (:foreground + "Blue1" :underline t)) (((class color) (background light)) (:foreground "Blue" :underline t)) (((class color) (background dark)) (:foreground "LightSkyBlue" :underline t))) "Face used for displaying architecture names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-architecture-selected-face 'face-alias 'vhdl-speedbar-architecture-selected) -(defface vhdl-speedbar-configuration-selected +(defface vhdl-speedbar-configuration-selected-face '((((class color) (background light)) (:foreground "DarkGoldenrod" :underline t)) (((class color) (background dark)) (:foreground "Salmon" :underline t))) "Face used for displaying configuration names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-configuration-selected-face 'face-alias 'vhdl-speedbar-configuration-selected) -(defface vhdl-speedbar-package-selected +(defface vhdl-speedbar-package-selected-face '((((class color) (background light)) (:foreground "Grey50" :underline t)) (((class color) (background dark)) (:foreground "Grey80" :underline t))) "Face used for displaying package names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-package-selected-face 'face-alias 'vhdl-speedbar-package-selected) -(defface vhdl-speedbar-instantiation-selected +(defface vhdl-speedbar-instantiation-selected-face '((((class color) (background light)) (:foreground "Brown" :underline t)) - (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1" :underline t)) (((class color) (background dark)) (:foreground "Yellow" :underline t))) "Face used for displaying instantiation names." :group 'speedbar-faces) -;; backward-compatibility alias -(put 'vhdl-speedbar-instantiation-selected-face 'face-alias 'vhdl-speedbar-instantiation-selected) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Initialization @@ -15134,7 +15409,7 @@ expansion function)." ;; open entity file (unless (eq vhdl-compose-create-files 'none) (setq ent-file-name - (concat (vhdl-replace-string vhdl-entity-file-name ent-name) + (concat (vhdl-replace-string vhdl-entity-file-name ent-name t) "." (file-name-extension (buffer-file-name)))) (when (and (file-exists-p ent-file-name) (not (y-or-n-p (concat "File \"" ent-file-name @@ -15175,7 +15450,7 @@ expansion function)." (setq ent-buffer (current-buffer)) (setq arch-file-name (concat (vhdl-replace-string vhdl-architecture-file-name - (concat ent-name " " arch-name)) + (concat ent-name " " arch-name) t) "." (file-name-extension (buffer-file-name)))) (when (and (file-exists-p arch-file-name) (not (y-or-n-p (concat "File \"" arch-file-name @@ -15212,7 +15487,7 @@ expansion function)." (vhdl-insert-keyword "END ") (unless (vhdl-standard-p '87) (vhdl-insert-keyword "ARCHITECTURE ")) (insert arch-name ";\n\n") - ;; insert footer + ;; insert footer and save (if (and vhdl-compose-include-header (not (equal vhdl-file-footer ""))) (vhdl-template-footer) (vhdl-comment-display-line) (insert "\n")) @@ -15240,7 +15515,7 @@ component instantiation." (error "ERROR: No architecture found")) (let* ((ent-name (match-string 1)) (ent-file-name - (concat (vhdl-replace-string vhdl-entity-file-name ent-name) + (concat (vhdl-replace-string vhdl-entity-file-name ent-name t) "." (file-name-extension (buffer-file-name)))) (orig-buffer (current-buffer))) (message "Placing component \"%s\"..." (nth 0 vhdl-port-list)) @@ -15292,14 +15567,14 @@ component instantiation." (error "ERROR: No architecture found")) (let* ((ent-name (match-string 1)) (ent-file-name - (concat (vhdl-replace-string vhdl-entity-file-name ent-name) + (concat (vhdl-replace-string vhdl-entity-file-name ent-name t) "." (file-name-extension (buffer-file-name)))) (arch-decl-pos (point-marker)) (arch-stat-pos (re-search-forward "^begin\\>" nil)) (arch-end-pos (re-search-forward "^end\\>" nil)) (pack-name (vhdl-get-components-package-name)) (pack-file-name - (concat (vhdl-replace-string vhdl-package-file-name pack-name) + (concat (vhdl-replace-string vhdl-package-file-name pack-name t) "." (file-name-extension (buffer-file-name)))) inst-name comp-name comp-ent-name comp-ent-file-name has-generic port-alist generic-alist inst-alist @@ -15335,7 +15610,7 @@ component instantiation." (vhdl-port-copy))) ;; ... from entity declaration (direct instantiation) (setq comp-ent-file-name - (concat (vhdl-replace-string vhdl-entity-file-name comp-ent-name) + (concat (vhdl-replace-string vhdl-entity-file-name comp-ent-name t) "." (file-name-extension (buffer-file-name)))) (vhdl-visit-file comp-ent-file-name t @@ -15346,7 +15621,8 @@ component instantiation." (vhdl-port-copy)))) (vhdl-port-flatten t) (setq generic-alist (nth 1 vhdl-port-list) - port-alist (nth 2 vhdl-port-list)) + port-alist (nth 2 vhdl-port-list) + vhdl-port-list nil) (setq constant-alist nil signal-alist nil) (when has-generic @@ -15615,7 +15891,7 @@ current project/directory." (let* ((project (vhdl-project-p)) (pack-name (vhdl-get-components-package-name)) (pack-file-name - (concat (vhdl-replace-string vhdl-package-file-name pack-name) + (concat (vhdl-replace-string vhdl-package-file-name pack-name t) "." (file-name-extension (buffer-file-name)))) (ent-alist (aget vhdl-entity-alist (or project default-directory) t)) @@ -15674,6 +15950,178 @@ current project/directory." (message "Generating components package \"%s\"...done\n File created: \"%s\"" pack-name pack-file-name))) +(defun vhdl-compose-configuration-architecture (ent-name arch-name inst-alist + &optional insert-conf) + "Generate block configuration for architecture." + (let ((margin (current-indentation)) + (beg (save-excursion (beginning-of-line) (point))) + ent-entry inst-entry inst-path inst-prev-path cons-key tmp-alist) + ;; insert block configuration (for architecture) + (vhdl-insert-keyword "FOR ") (insert arch-name "\n") + (setq margin (+ margin vhdl-basic-offset)) + ;; process all instances + (while inst-alist + (setq inst-entry (car inst-alist)) + ;; is component? + (when (nth 4 inst-entry) + (setq insert-conf t) + (setq inst-path (nth 9 inst-entry)) + ;; skip common path with previous instance + (while (and inst-path (equal (car inst-path) (car inst-prev-path))) + (setq inst-path (cdr inst-path) + inst-prev-path (cdr inst-prev-path))) + ;; insert block configuration end (for previous block/generate) + (while inst-prev-path + (setq margin (- margin vhdl-basic-offset)) + (indent-to margin) + (vhdl-insert-keyword "END FOR;\n") + (setq inst-prev-path (cdr inst-prev-path))) + ;; insert block configuration beginning (for current block/generate) + (indent-to margin) + (while inst-path + (setq margin (+ margin vhdl-basic-offset)) + (vhdl-insert-keyword "FOR ") + (insert (car inst-path) "\n") + (indent-to margin) + (setq inst-path (cdr inst-path))) + ;; insert component configuration beginning + (vhdl-insert-keyword "FOR ") + (insert (nth 1 inst-entry) " : " (nth 4 inst-entry) "\n") + ;; find subconfiguration + (setq conf-key (nth 7 inst-entry)) + (setq tmp-alist conf-alist) + ;; use first configuration found for instance's entity + (while (and tmp-alist (null conf-key)) + (when (equal (nth 5 inst-entry) (nth 4 (car tmp-alist))) + (setq conf-key (nth 0 (car tmp-alist)))) + (setq tmp-alist (cdr tmp-alist))) + (setq conf-entry (aget conf-alist conf-key t)) + ;; insert binding indication ... + ;; ... with subconfiguration (if exists) + (if (and vhdl-compose-configuration-use-subconfiguration conf-entry) + (progn + (indent-to (+ margin vhdl-basic-offset)) + (vhdl-insert-keyword "USE CONFIGURATION ") + (insert (vhdl-work-library) "." (nth 0 conf-entry)) + (insert ";\n")) + ;; ... with entity (if exists) + (setq ent-entry (aget ent-alist (nth 5 inst-entry) t)) + (when ent-entry + (indent-to (+ margin vhdl-basic-offset)) + (vhdl-insert-keyword "USE ENTITY ") + (insert (vhdl-work-library) "." (nth 0 ent-entry)) + ;; insert architecture name (if architecture exists) + (when (nth 3 ent-entry) + (setq arch-name + ;; choose architecture name a) from configuration, + ;; b) from mra, or c) from first architecture + (or (nth 0 (aget (nth 3 ent-entry) + (or (nth 6 inst-entry) + (nth 4 ent-entry)) t)) + (nth 1 (car (nth 3 ent-entry))))) + (insert "(" arch-name ")")) + (insert ";\n") + ;; insert block configuration (for architecture of subcomponent) + (when (and vhdl-compose-configuration-hierarchical + (nth 3 ent-entry)) + (indent-to (+ margin vhdl-basic-offset)) + (vhdl-compose-configuration-architecture + (nth 0 ent-entry) arch-name + (nth 3 (aget (nth 3 ent-entry) (downcase arch-name) t)))))) + ;; insert component configuration end + (indent-to margin) + (vhdl-insert-keyword "END FOR;\n") + (setq inst-prev-path (nth 9 inst-entry))) + (setq inst-alist (cdr inst-alist))) + ;; insert block configuration end (for block/generate) + (while inst-prev-path + (setq margin (- margin vhdl-basic-offset)) + (indent-to margin) + (vhdl-insert-keyword "END FOR;\n") + (setq inst-prev-path (cdr inst-prev-path))) + (indent-to (- margin vhdl-basic-offset)) + ;; insert block configuration end or remove beginning (for architecture) + (if insert-conf + (vhdl-insert-keyword "END FOR;\n") + (delete-region beg (point))))) + +(defun vhdl-compose-configuration (&optional ent-name arch-name) + "Generate configuration declaration." + (interactive) + (vhdl-require-hierarchy-info) + (let ((ent-alist (aget vhdl-entity-alist + (or (vhdl-project-p) default-directory) t)) + (conf-alist (aget vhdl-config-alist + (or (vhdl-project-p) default-directory) t)) + (from-speedbar ent-name) + inst-alist conf-name conf-file-name pos) + (vhdl-prepare-search-2 + ;; get entity and architecture name + (unless ent-name + (save-excursion + (unless (and (re-search-backward "^\\(architecture\\s-+\\(\\w+\\)\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t) + (not (equal "END" (upcase (match-string 1)))) + (setq ent-name (match-string-no-properties 3)) + (setq arch-name (match-string-no-properties 2))) + (error "ERROR: Not within an architecture")))) + (setq conf-name (vhdl-replace-string + vhdl-compose-configuration-name + (concat ent-name " " arch-name))) + (setq inst-alist + (nth 3 (aget (nth 3 (aget ent-alist (downcase ent-name) t)) + (downcase arch-name) t)))) + (message "Generating configuration \"%s\"..." conf-name) + (if vhdl-compose-configuration-create-file + ;; open configuration file + (progn + (setq conf-file-name + (concat (vhdl-replace-string vhdl-configuration-file-name + conf-name t) + "." (file-name-extension (buffer-file-name)))) + (when (and (file-exists-p conf-file-name) + (not (y-or-n-p (concat "File \"" conf-file-name + "\" exists; overwrite? ")))) + (error "ERROR: Creating configuration...aborted")) + (find-file conf-file-name) + (erase-buffer) + (set-buffer-modified-p nil) + ;; insert header + (if vhdl-compose-include-header + (progn (vhdl-template-header + (concat "Configuration declaration for design \"" + ent-name "(" arch-name ")\"")) + (goto-char (point-max))) + (vhdl-comment-display-line) (insert "\n\n"))) + ;; goto end of architecture + (unless from-speedbar + (re-search-forward "^end\\>" nil) + (end-of-line) (insert "\n\n") + (vhdl-comment-display-line) (insert "\n\n"))) + ;; insert library clause + (setq pos (point)) + (vhdl-template-standard-package (vhdl-work-library) nil) + (when (/= pos (point)) + (insert "\n\n")) + ;; insert configuration + (vhdl-insert-keyword "CONFIGURATION ") (insert conf-name) + (vhdl-insert-keyword " OF ") (insert ent-name) + (vhdl-insert-keyword " IS\n") + (indent-to vhdl-basic-offset) + ;; insert block configuration (for architecture) + (vhdl-compose-configuration-architecture ent-name arch-name inst-alist t) + (vhdl-insert-keyword "END ") (insert conf-name ";") + (when conf-file-name + ;; insert footer and save + (insert "\n\n") + (if (and vhdl-compose-include-header (not (equal vhdl-file-footer ""))) + (vhdl-template-footer) + (vhdl-comment-display-line) (insert "\n")) + (save-buffer)) + (message + (concat (format "Generating configuration \"%s\"...done" conf-name) + (and conf-file-name + (format "\n File created: \"%s\"" conf-file-name)))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Compilation / Makefile generation @@ -15854,11 +16302,17 @@ do not print any file names." (compile (concat command " " options " " file-name))) (vhdl-warning "Your project settings tell me not to compile this file")))) +(defvar vhdl-make-target "all" + "Default target for `vhdl-make' command.") + (defun vhdl-make (&optional target) "Call make command for compilation of all updated source files (requires `Makefile'). Optional argument TARGET allows to compile the design specified by a target." (interactive) + (setq vhdl-make-target + (or target (read-from-minibuffer "Target: " vhdl-make-target + vhdl-minibuffer-local-map))) (vhdl-compile-init) (let* ((project (aget vhdl-project-alist vhdl-project)) (compiler (or (aget vhdl-compiler-alist vhdl-compiler) @@ -15870,7 +16324,7 @@ specified by a target." (error "ERROR: Compile directory does not exist: \"%s\"" default-directory)) ;; run make (compile (concat (if (equal command "") "make" command) - " " options " " target)))) + " " options " " vhdl-make-target)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Makefile generation @@ -15949,7 +16403,7 @@ specified by a target." (setq ent-file-name (file-relative-name (nth 2 ent-entry) compile-directory) arch-alist (nth 4 ent-entry) - lib-alist (nth 5 ent-entry) + lib-alist (nth 6 ent-entry) rule (aget rule-alist ent-file-name) target-list (nth 0 rule) depend-list (nth 1 rule) @@ -16219,7 +16673,8 @@ specified by a target." (insert " \\\n\t\t$(UNIT-" work-library "-" (car second-list) ")") (setq second-list (cdr second-list))) (while subcomp-list - (when (assoc (car subcomp-list) unit-list) + (when (and (assoc (car subcomp-list) unit-list) + (not (equal unit-key (car subcomp-list)))) (insert " \\\n\t\t" (car subcomp-list))) (setq subcomp-list (cdr subcomp-list))) (insert "\n") @@ -16324,8 +16779,10 @@ specified by a target." 'vhdl-upper-case-enum-values 'vhdl-upper-case-constants 'vhdl-use-direct-instantiation + 'vhdl-compose-configuration-name 'vhdl-entity-file-name 'vhdl-architecture-file-name + 'vhdl-configuration-file-name 'vhdl-package-file-name 'vhdl-file-name-case 'vhdl-electric-keywords @@ -16368,7 +16825,12 @@ specified by a target." 'vhdl-testbench-include-library 'vhdl-testbench-include-configuration 'vhdl-testbench-create-files + 'vhdl-testbench-entity-file-name + 'vhdl-testbench-architecture-file-name 'vhdl-compose-create-files + 'vhdl-compose-configuration-create-file + 'vhdl-compose-configuration-hierarchical + 'vhdl-compose-configuration-use-subconfiguration 'vhdl-compose-include-header 'vhdl-compose-architecture-name 'vhdl-components-package-name @@ -16431,102 +16893,34 @@ specified by a target." (defconst vhdl-doc-release-notes nil "\ -Release Notes for VHDL Mode 3.32 +Release Notes for VHDL Mode 3.33 ================================ - New Features - - Enhanced Features - User Options - - Remarks New Features ------------ -STRUCTURAL COMPOSITION: - - Enables simple structural composition similar to graphical editors. - Simplifies the creation of higher design levels where subcomponents - are simply sticked together: - 1. Create a skeleton for a new component - 2. Place subcomponents in it directly from the hierarchy browser - 3. Automatically connect all subcomponents and create the ports - for the new component (based on names of actual ports) - - Automatic generation of a components package (package containing - component declarations for all entities). - - Find more information in the online documentation (`C-c C-h'). - -PORT TRANSLATION: - - Reverse direction of ports (useful for testbenches). - -SUBPROGRAM TRANSLATION: - - Copy/paste of subprogram interfaces (similar to port translation). - -CODE FILLING: - - Condense code using code-sensitive block filling. - -CODE STATISTICS: - - Calculate number of code lines and statements in a buffer. - - -Enhanced Features ------------------ - -TESTBENCH GENERATION: - - Enhanced templates and user option default values. - -Emacs 21 compatibility/enhancements: - - `lazy-lock-mode' is not used anymore (built-in `jit-lock-mode' is faster). - -And many other minor fixes and enhancements. +CONFIGURATION DECLARATION GENERATION: + - Automatic generation of a configuration declaration for a design. + (See documentation (`C-c C-h') in section on STRUCTURAL COMPOSITION.) User Options ------------ -`vhdl-project-file-name': (enhanced) - Include user name in project setup file name. -`vhdl-speedbar-cache-file-name': (enhanced, changed default) - Include user name in cache file name. -`vhdl-default-library': (new) - Default working library if no project is active. -`vhdl-architecture-file-name': (new) - Specify how the architecture file name is obtained. -`vhdl-package-file-name': (new) - Specify how the package file name is obtained. -`vhdl-file-name-case': (new) - Allows to change case when deriving file names. -`vhdl-compose-create-files': (new) - Specify whether new files should be created for a new component. -`vhdl-compose-include-header': (new) - Specify whether a header is included in a new component's file. -`vhdl-compose-architecture-name': (new) - Specify how a new component's architecture name is obtained. -`vhdl-components-package-name': (new) - Specify how the name for the components package is obtained. -`vhdl-use-components-package': (new) - Specify whether component declarations go in a components package. -`vhdl-use-direct-instantiation': (new) - Specify whether to use VHDL'93 direct component instantiation. -`vhdl-instance-name': (changed default) - Allows insertion of a running number to generate unique instance names. -`vhdl-testbench-entity-header', `vhdl-testbench-architecture-header':(obsolete) - Headers are now automatically derived from the standard header. -`vhdl-testbench-include-header': (new) - Specify whether a header is included in testbench files. -`vhdl-testbench-declaration', `vhdl-testbench-statements': (changed default) - Non-empty default values for more complete testbench templates. - - -Remarks -------- - -- Changed key binding for `vhdl-comment-uncomment-region': `C-c c' - (`C-c C-c ...' is now used for structural composition). - -- Automatic buffer highlighting (font-lock) is now controlled by option - `global-font-lock-mode' in GNU Emacs (`font-lock-auto-fontify' in XEmacs). - \(Important: You MUST customize this option in order to turn automatic - buffer highlighting on.) +`vhdl-configuration-file-name': (new) + Specify how the configuration file name is obtained. +`vhdl-compose-configuration-name': (new) + Specify how the configuration name is optained. +`vhdl-compose-configuration-create-file': (new) + Specify whether a new file should be created for a configuration. +`vhdl-compose-configuration-hierarchical': (new) + Specify whether hierarchical configurations should be created. +`vhdl-compose-configuration-use-subconfiguration': (new) + Specify whether subconfigurations should be used inside configurations. ") @@ -16596,7 +16990,8 @@ to visually support naming conventions.") (interactive) (unless vhdl-xemacs (help-setup-xref (list #'vhdl-doc-variable variable) (interactive-p))) - (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*") + (with-output-to-temp-buffer + (if (fboundp 'help-buffer) (help-buffer) "*Help*") (princ (documentation-property variable 'variable-documentation)) (with-current-buffer standard-output (help-mode)) @@ -16607,7 +17002,8 @@ to visually support naming conventions.") (interactive) (unless vhdl-xemacs (help-setup-xref (list #'vhdl-doc-mode) (interactive-p))) - (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*") + (with-output-to-temp-buffer + (if (fboundp 'help-buffer) (help-buffer) "*Help*") (princ mode-name) (princ " mode:\n") (princ (documentation 'vhdl-mode)) diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index 059218942ad..66d91dce3da 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el @@ -1,6 +1,6 @@ ;;; which-func.el --- print current function in mode line -;; Copyright (C) 1994, 1997, 1998, 2001, 2003, 2005 +;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Author: Alex Rezinsky <alexr@msil.sps.mot.com> @@ -139,8 +139,6 @@ Zero means compute the Imenu menu regardless of size." :foreground "LightSkyBlue")) "Face used to highlight mode line function names." :group 'which-func) -;; backward-compatibility alias -(put 'which-func-face 'face-alias 'which-func) (defcustom which-func-format `("[" diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el index 0075dac1d07..d568bca5b75 100644 --- a/lisp/progmodes/xscheme.el +++ b/lisp/progmodes/xscheme.el @@ -1,6 +1,6 @@ ;;; xscheme.el --- run MIT Scheme under Emacs -;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2004, 2005 +;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -33,6 +33,85 @@ ;;; Code: (require 'scheme) + +;;;; Internal Variables + +(defvar xscheme-previous-mode) +(defvar xscheme-previous-process-state) +(defvar xscheme-last-input-end) + +(defvar xscheme-process-command-line nil + "Command used to start the most recent Scheme process.") + +(defvar xscheme-process-name "scheme" + "Name of xscheme process that we're currently interacting with.") + +(defvar xscheme-buffer-name "*scheme*" + "Name of xscheme buffer that we're currently interacting with.") + +(defvar xscheme-expressions-ring-max 30 + "*Maximum length of Scheme expressions ring.") + +(defvar xscheme-expressions-ring nil + "List of expressions recently transmitted to the Scheme process.") + +(defvar xscheme-expressions-ring-yank-pointer nil + "The tail of the Scheme expressions ring whose car is the last thing yanked.") + +(defvar xscheme-running-p nil + "This variable, if nil, indicates that the scheme process is +waiting for input. Otherwise, it is busy evaluating something.") + +(defconst xscheme-control-g-synchronization-p t + "If non-nil, insert markers in the scheme input stream to indicate when +control-g interrupts were signaled. Do not allow more control-g's to be +signaled until the scheme process acknowledges receipt.") + +(defvar xscheme-control-g-disabled-p nil + "This variable, if non-nil, indicates that a control-g is being processed +by the scheme process, so additional control-g's are to be ignored.") + +(defvar xscheme-string-receiver nil + "Procedure to send the string argument from the scheme process.") + +(defconst default-xscheme-runlight + '(": " xscheme-runlight-string) + "Default global (shared) xscheme-runlight modeline format.") + +(defvar xscheme-runlight "") +(defvar xscheme-runlight-string nil) + +(defvar xscheme-process-filter-state 'idle + "State of scheme process escape reader state machine: +idle waiting for an escape sequence +reading-type received an altmode but nothing else +reading-string reading prompt string") + +(defvar xscheme-allow-output-p t + "This variable, if nil, prevents output from the scheme process +from being inserted into the process-buffer.") + +(defvar xscheme-prompt "" + "The current scheme prompt string.") + +(defvar xscheme-string-accumulator "" + "Accumulator for the string being received from the scheme process.") + +(defvar xscheme-mode-string nil) +(setq-default scheme-mode-line-process + '("" xscheme-runlight)) + +(mapcar 'make-variable-buffer-local + '(xscheme-expressions-ring + xscheme-expressions-ring-yank-pointer + xscheme-process-filter-state + xscheme-running-p + xscheme-control-g-disabled-p + xscheme-allow-output-p + xscheme-prompt + xscheme-string-accumulator + xscheme-mode-string + scheme-mode-line-process)) (defgroup xscheme nil "Major mode for editing Scheme and interacting with MIT's C-Scheme." @@ -355,6 +434,9 @@ with no args, if that value is non-nil. (if (eq (process-sentinel process) 'xscheme-process-sentinel) (set-process-sentinel process (cdr previous-state)))))))) +(defvar scheme-interaction-mode-commands-alist nil) +(defvar scheme-interaction-mode-map nil) + (defun scheme-interaction-mode-initialize () (use-local-map scheme-interaction-mode-map) (setq major-mode 'scheme-interaction-mode) @@ -368,7 +450,7 @@ with no args, if that value is non-nil. (car (cdr (car entries)))) (setq entries (cdr entries))))) -(defvar scheme-interaction-mode-commands-alist nil) +;; Initialize the command alist (setq scheme-interaction-mode-commands-alist (append scheme-interaction-mode-commands-alist '(("\C-c\C-m" xscheme-send-current-line) @@ -378,7 +460,7 @@ with no args, if that value is non-nil. ("\ep" xscheme-yank-pop) ("\en" xscheme-yank-push)))) -(defvar scheme-interaction-mode-map nil) +;; Initialize the mode map (if (not scheme-interaction-mode-map) (progn (setq scheme-interaction-mode-map (make-keymap)) @@ -411,18 +493,20 @@ Commands: \\{scheme-debugger-mode-map}" (error "Invalid entry to scheme-debugger-mode")) +(defvar scheme-debugger-mode-map nil) + (defun scheme-debugger-mode-initialize () (use-local-map scheme-debugger-mode-map) (setq major-mode 'scheme-debugger-mode) (setq mode-name "Scheme Debugger")) (defun scheme-debugger-mode-commands (keymap) - (let ((char ? )) + (let ((char ?\s)) (while (< char 127) (define-key keymap (char-to-string char) 'scheme-debugger-self-insert) (setq char (1+ char))))) -(defvar scheme-debugger-mode-map nil) +;; Initialize the debugger mode map (if (not scheme-debugger-mode-map) (progn (setq scheme-debugger-mode-map (make-keymap)) @@ -675,6 +759,9 @@ Useful for working with debugging Scheme under adb." (interactive) (process-send-string xscheme-process-name "(proceed)\n")) +(defconst xscheme-control-g-message-string + "Sending C-G interrupt to Scheme...") + (defun xscheme-send-control-g-interrupt () "Cause the Scheme processor to halt and flush input. Control returns to the top level rep loop." @@ -695,9 +782,6 @@ Control returns to the top level rep loop." (sleep-for 0.1) (xscheme-send-char 0))))) -(defconst xscheme-control-g-message-string - "Sending C-G interrupt to Scheme...") - (defun xscheme-send-control-u-interrupt () "Cause the Scheme process to halt, returning to previous rep loop." (interactive) @@ -722,82 +806,6 @@ Control returns to the top level rep loop." (if (and mark-p xscheme-control-g-synchronization-p) (xscheme-send-char 0))) -;;;; Internal Variables - -(defvar xscheme-process-command-line nil - "Command used to start the most recent Scheme process.") - -(defvar xscheme-process-name "scheme" - "Name of xscheme process that we're currently interacting with.") - -(defvar xscheme-buffer-name "*scheme*" - "Name of xscheme buffer that we're currently interacting with.") - -(defvar xscheme-expressions-ring-max 30 - "*Maximum length of Scheme expressions ring.") - -(defvar xscheme-expressions-ring nil - "List of expressions recently transmitted to the Scheme process.") - -(defvar xscheme-expressions-ring-yank-pointer nil - "The tail of the Scheme expressions ring whose car is the last thing yanked.") - -(defvar xscheme-last-input-end) - -(defvar xscheme-process-filter-state 'idle - "State of scheme process escape reader state machine: -idle waiting for an escape sequence -reading-type received an altmode but nothing else -reading-string reading prompt string") - -(defvar xscheme-running-p nil - "This variable, if nil, indicates that the scheme process is -waiting for input. Otherwise, it is busy evaluating something.") - -(defconst xscheme-control-g-synchronization-p t - "If non-nil, insert markers in the scheme input stream to indicate when -control-g interrupts were signaled. Do not allow more control-g's to be -signaled until the scheme process acknowledges receipt.") - -(defvar xscheme-control-g-disabled-p nil - "This variable, if non-nil, indicates that a control-g is being processed -by the scheme process, so additional control-g's are to be ignored.") - -(defvar xscheme-allow-output-p t - "This variable, if nil, prevents output from the scheme process -from being inserted into the process-buffer.") - -(defvar xscheme-prompt "" - "The current scheme prompt string.") - -(defvar xscheme-string-accumulator "" - "Accumulator for the string being received from the scheme process.") - -(defvar xscheme-string-receiver nil - "Procedure to send the string argument from the scheme process.") - -(defconst default-xscheme-runlight - '(": " xscheme-runlight-string) - "Default global (shared) xscheme-runlight modeline format.") - -(defvar xscheme-runlight "") -(defvar xscheme-runlight-string nil) -(defvar xscheme-mode-string nil) -(setq-default scheme-mode-line-process - '("" xscheme-runlight)) - -(mapcar 'make-variable-buffer-local - '(xscheme-expressions-ring - xscheme-expressions-ring-yank-pointer - xscheme-process-filter-state - xscheme-running-p - xscheme-control-g-disabled-p - xscheme-allow-output-p - xscheme-prompt - xscheme-string-accumulator - xscheme-mode-string - scheme-mode-line-process)) - ;;;; Basic Process Control (defun xscheme-start-process (command-line the-process the-buffer) @@ -880,6 +888,61 @@ from being inserted into the process-buffer.") "True iff the current buffer is the Scheme process buffer." (eq (xscheme-process-buffer) (current-buffer))) +;;;; Process Filter Operations + +(defvar xscheme-process-filter-alist + '((?A xscheme-eval + xscheme-process-filter:string-action-noexcursion) + (?D xscheme-enter-debugger-mode + xscheme-process-filter:string-action) + (?E xscheme-eval + xscheme-process-filter:string-action) + (?P xscheme-set-prompt-variable + xscheme-process-filter:string-action) + (?R xscheme-enter-interaction-mode + xscheme-process-filter:simple-action) + (?b xscheme-start-gc + xscheme-process-filter:simple-action) + (?c xscheme-unsolicited-read-char + xscheme-process-filter:simple-action) + (?e xscheme-finish-gc + xscheme-process-filter:simple-action) + (?f xscheme-exit-input-wait + xscheme-process-filter:simple-action) + (?g xscheme-enable-control-g + xscheme-process-filter:simple-action) + (?i xscheme-prompt-for-expression + xscheme-process-filter:string-action) + (?m xscheme-message + xscheme-process-filter:string-action) + (?n xscheme-prompt-for-confirmation + xscheme-process-filter:string-action) + (?o xscheme-output-goto + xscheme-process-filter:simple-action) + (?p xscheme-set-prompt + xscheme-process-filter:string-action) + (?s xscheme-enter-input-wait + xscheme-process-filter:simple-action) + (?v xscheme-write-value + xscheme-process-filter:string-action) + (?w xscheme-cd + xscheme-process-filter:string-action) + (?z xscheme-display-process-buffer + xscheme-process-filter:simple-action)) + "Table used to decide how to handle process filter commands. +Value is a list of entries, each entry is a list of three items. + +The first item is the character that the process filter dispatches on. +The second item is the action to be taken, a function. +The third item is the handler for the entry, a function. + +When the process filter sees a command whose character matches a +particular entry, it calls the handler with two arguments: the action +and the string containing the rest of the process filter's input +stream. It is the responsibility of the handler to invoke the action +with the appropriate arguments, and to reenter the process filter with +the remaining input.") + ;;;; Process Filter (defun xscheme-process-sentinel (proc reason) @@ -1037,61 +1100,6 @@ from being inserted into the process-buffer.") (rplaca (nthcdr 3 xscheme-runlight) runlight) (force-mode-line-update t)) -;;;; Process Filter Operations - -(defvar xscheme-process-filter-alist - '((?A xscheme-eval - xscheme-process-filter:string-action-noexcursion) - (?D xscheme-enter-debugger-mode - xscheme-process-filter:string-action) - (?E xscheme-eval - xscheme-process-filter:string-action) - (?P xscheme-set-prompt-variable - xscheme-process-filter:string-action) - (?R xscheme-enter-interaction-mode - xscheme-process-filter:simple-action) - (?b xscheme-start-gc - xscheme-process-filter:simple-action) - (?c xscheme-unsolicited-read-char - xscheme-process-filter:simple-action) - (?e xscheme-finish-gc - xscheme-process-filter:simple-action) - (?f xscheme-exit-input-wait - xscheme-process-filter:simple-action) - (?g xscheme-enable-control-g - xscheme-process-filter:simple-action) - (?i xscheme-prompt-for-expression - xscheme-process-filter:string-action) - (?m xscheme-message - xscheme-process-filter:string-action) - (?n xscheme-prompt-for-confirmation - xscheme-process-filter:string-action) - (?o xscheme-output-goto - xscheme-process-filter:simple-action) - (?p xscheme-set-prompt - xscheme-process-filter:string-action) - (?s xscheme-enter-input-wait - xscheme-process-filter:simple-action) - (?v xscheme-write-value - xscheme-process-filter:string-action) - (?w xscheme-cd - xscheme-process-filter:string-action) - (?z xscheme-display-process-buffer - xscheme-process-filter:simple-action)) - "Table used to decide how to handle process filter commands. -Value is a list of entries, each entry is a list of three items. - -The first item is the character that the process filter dispatches on. -The second item is the action to be taken, a function. -The third item is the handler for the entry, a function. - -When the process filter sees a command whose character matches a -particular entry, it calls the handler with two arguments: the action -and the string containing the rest of the process filter's input -stream. It is the responsibility of the handler to invoke the action -with the appropriate arguments, and to reenter the process filter with -the remaining input.") - (defun xscheme-process-filter:simple-action (action) (setq xscheme-process-filter-state 'idle) (funcall action)) @@ -1196,10 +1204,6 @@ the remaining input.") (defun xscheme-prompt-for-confirmation (prompt-string) (xscheme-send-char (if (y-or-n-p prompt-string) ?y ?n))) -(defun xscheme-prompt-for-expression (prompt-string) - (xscheme-send-string-2 - (read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map))) - (defvar xscheme-prompt-for-expression-map nil) (if (not xscheme-prompt-for-expression-map) (progn @@ -1209,6 +1213,10 @@ the remaining input.") 'xscheme-prompt-for-expression-exit xscheme-prompt-for-expression-map))) +(defun xscheme-prompt-for-expression (prompt-string) + (xscheme-send-string-2 + (read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map))) + (defun xscheme-prompt-for-expression-exit () (interactive) (if (eq (xscheme-region-expression-p (point-min) (point-max)) 'one) diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index 056438a2bc5..6cc23f7bf6b 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el @@ -272,18 +272,20 @@ CODE, where N and CODE are in the following relation: (while (search-forward "\nSTARTCHAR" nil t) (setq offset (line-beginning-position)) (search-forward "\nENCODING") - (setq code (read (current-buffer)) - code0 (lsh code -8) - code1 (logand code 255) - min-code (min min-code code) - max-code (max max-code code) - min-code0 (min min-code0 code0) - max-code0 (max max-code0 code0) - min-code1 (min min-code1 code1) - max-code1 (max max-code1 code1)) - (search-forward "ENDCHAR") - (setq maxlen (max maxlen (- (point) offset)) - glyph-list (cons (cons code offset) glyph-list))) + (setq code (read (current-buffer))) + (if (< code 0) + (search-forward "ENDCHAR") + (setq code0 (lsh code -8) + code1 (logand code 255) + min-code (min min-code code) + max-code (max max-code code) + min-code0 (min min-code0 code0) + max-code0 (max max-code0 code0) + min-code1 (min min-code1 code1) + max-code1 (max max-code1 code1)) + (search-forward "ENDCHAR") + (setq maxlen (max maxlen (- (point) offset)) + glyph-list (cons (cons code offset) glyph-list)))) (setq code-range (vector min-code0 max-code0 min-code1 max-code1 diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el index 3f28771f3a0..748cfd560b4 100644 --- a/lisp/ps-mule.el +++ b/lisp/ps-mule.el @@ -1,7 +1,7 @@ ;;; ps-mule.el --- provide multi-byte character facility to ps-print -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <vinicius@cpqd.com.br> ;; Kenichi Handa <handa@etl.go.jp> (multi-byte characters) @@ -1039,9 +1039,12 @@ the sequence." /BOTTOM LLY def currentfont /RelativeCompose known { /relative currentfont /RelativeCompose get def + relative false eq { + %% Disable relative composition by setting sufficiently low + %% and high positions. + /relative [ -100000 100000 ] def + } if } { - %% Disable relative composition by setting sufficiently low - %% and high positions. /relative [ -100000 100000 ] def } ifelse [ elt 0 0 ] @@ -1236,7 +1239,7 @@ NewBitmapDict } ifelse /FirstCode -1 store - bmp 0 get SpaceWidthRatio ratio div mul size div 0 % wx wy + bmp 0 get size div 0 % wx wy setcharwidth % We can't use setcachedevice here. bmp 1 get 0 gt bmp 2 get 0 gt and { diff --git a/lisp/ps-print.el b/lisp/ps-print.el index 484c207e074..94f1f5839a2 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -1,7 +1,7 @@ ;;; ps-print.el --- print text from the buffer as PostScript -;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) ;; Jacques Duthen (was <duthen@cegelec-red.fr>) @@ -2269,7 +2269,7 @@ programming like EPS. FILENAME is ignored, if it doesn't exist or is read protected. X and Y are relative positions on paper to put the image. -If X and Y are nil, the image is centralized on paper. +If X and Y are nil, the image is centered on paper. XSCALE and YSCALE are scale factor to be applied to image before printing. If XSCALE and YSCALE are nil, the original size is used. @@ -3031,7 +3031,7 @@ Valid values are: Where RED, GREEN and BLUE are reals between 0.0 (no color) and 1.0 (full color). -Any other value is ignored and it's used the black color. +Any other value is ignored and black will be used. It's used only when `ps-print-color-p' is non-nil." :type '(choice :menu-tag "Default Foreground Gray/Color" @@ -3071,7 +3071,7 @@ Valid values are: Where RED, GREEN and BLUE are reals between 0.0 (no color) and 1.0 (full color). -Any other value is ignored and it's used the white color. +Any other value is ignored and white will be used. It's used only when `ps-print-color-p' is non-nil. @@ -4137,10 +4137,10 @@ Each symbol correspond to one bit in a bit vector.") If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged with face extension in ALIST-SYM; otherwise, overrides. -If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist'; +If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used; otherwise, it should be an alist symbol. -The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'. +The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'. See `ps-extend-face' for documentation." (while face-extension-list @@ -4155,7 +4155,7 @@ See `ps-extend-face' for documentation." If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged with face extensions in ALIST-SYM; otherwise, overrides. -If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist'; +If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used; otherwise, it should be an alist symbol. The elements of FACE-EXTENSION list have the form: @@ -5004,7 +5004,7 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th "PrintHeight 2 div BottomMargin add") "\nBeginBackImage\n") (ps-insert-file image-file) - ;; coordinate adjustment to centralize image + ;; coordinate adjustment to center image ;; around x and y position (let ((box (ps-get-boundingbox))) (save-excursion diff --git a/lisp/recentf.el b/lisp/recentf.el index 57280a7b4bc..524d00d389d 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el @@ -1,7 +1,7 @@ ;;; recentf.el --- setup a menu of recently opened files -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Created: July 19 1999 @@ -65,7 +65,7 @@ You should define the options of your own filters in this group." (defcustom recentf-max-saved-items 20 "*Maximum number of items of the recent list that will be saved. -nil means to save the whole list. +A nil value means to save the whole list. See the command `recentf-save-list'." :group 'recentf :type 'integer) @@ -145,7 +145,7 @@ The default is to call `find-file' to edit the selected file." (defcustom recentf-menu-filter nil "*Function used to filter files displayed in the recentf menu. -nil means no filter. The following functions are predefined: +A nil value means no filter. The following functions are predefined: - `recentf-sort-ascending' Sort menu items in ascending order. @@ -199,16 +199,14 @@ elements (see `recentf-make-menu-element' for menu element form)." :set 'recentf-menu-customization-changed) (defcustom recentf-menu-append-commands-flag t - "*non-nil means to append command items to the menu." + "*Non-nil means to append command items to the menu." :group 'recentf :type 'boolean :set 'recentf-menu-customization-changed) -(defvaralias 'recentf-menu-append-commands-p - 'recentf-menu-append-commands-flag) -(make-obsolete-variable 'recentf-menu-append-commands-p - 'recentf-menu-append-commands-flag - "22.1") +(define-obsolete-variable-alias 'recentf-menu-append-commands-p + 'recentf-menu-append-commands-flag + "22.1") (defcustom recentf-auto-cleanup 'mode "*Define when to automatically cleanup the recent list. @@ -244,7 +242,7 @@ cleanup the list." (recentf-auto-cleanup)))) (defcustom recentf-initialize-file-name-history t - "*non-nil means to initialize `file-name-history' with the recent list. + "*Non-nil means to initialize `file-name-history' with the recent list. If `file-name-history' is not empty, do nothing." :group 'recentf :type 'boolean) @@ -350,8 +348,8 @@ filenames." (defsubst recentf-expand-file-name (name) "Convert filename NAME to absolute, and canonicalize it. See also the function `expand-file-name'. -If defined, call the function `recentf-filename-handler' to post -process the canonical name." +If defined, call the function `recentf-filename-handler' +to postprocess the canonical name." (let* ((filename (expand-file-name name))) (or (and recentf-filename-handler (funcall recentf-filename-handler filename)) @@ -557,7 +555,7 @@ menu-elements (no sub-menu)." (defun recentf-clear-data () "Clear data used to build the recentf menu. -This force a rebuild of the menu." +This forces a rebuild of the menu." (easy-menu-remove-item (recentf-menu-bar) recentf-menu-path recentf-menu-title) (setq recentf-data-cache nil)) @@ -703,7 +701,7 @@ defined." (defcustom recentf-arrange-by-rule-subfilter nil "*Function called by a rule based filter to filter sub-menu elements. -nil means no filter. See also `recentf-menu-filter'. +A nil value means no filter. See also `recentf-menu-filter'. You can't use another rule based filter here." :group 'recentf-filters :type '(choice (const nil) function) diff --git a/lisp/rect.el b/lisp/rect.el index 08b601c050e..d7ae6592f74 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -1,6 +1,7 @@ ;;; rect.el --- rectangle functions for GNU Emacs -;; Copyright (C) 1985, 1999, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1999, 2000, 2001, 2002, 2003, 2004 +;; 2005 Free Software Foundation, Inc. ;; Maintainer: Didier Verna <didier@xemacs.org> ;; Keywords: internal diff --git a/lisp/register.el b/lisp/register.el index 4789047b0af..14d7494633a 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -1,6 +1,7 @@ ;;; register.el --- register commands for Emacs -;; Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/repeat.el b/lisp/repeat.el index b1b8cc40aa8..adaf8a4bb9a 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -1,6 +1,6 @@ ;;; repeat.el --- convenient way to repeat the previous command -;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Will Mengarini <seldon@eskimo.com> ;; Created: Mo 02 Mar 98 diff --git a/lisp/replace.el b/lisp/replace.el index a8ef61e828d..33162b02d3c 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1,7 +1,7 @@ ;;; replace.el --- replace commands for Emacs -;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, 2002, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -88,7 +88,7 @@ is highlighted lazily using isearch lazy highlighting (see (defun query-replace-descr (string) (mapconcat 'isearch-text-char-description string "")) -(defun query-replace-read-from (string regexp-flag) +(defun query-replace-read-from (prompt regexp-flag) "Query and return the `from' argument of a query-replace operation. The return value can also be a pair (FROM . TO) indicating that the user wants to replace FROM with TO." @@ -107,10 +107,10 @@ wants to replace FROM with TO." query-replace-from-history-variable)))) (read-from-minibuffer (if (and lastto lastfrom) - (format "%s (default %s -> %s): " string + (format "%s (default %s -> %s): " prompt (query-replace-descr lastfrom) (query-replace-descr lastto)) - (format "%s: " string)) + (format "%s: " prompt)) nil nil nil query-replace-from-history-variable nil t t)))) @@ -173,22 +173,22 @@ the original string if not." to)) -(defun query-replace-read-to (from string regexp-flag) +(defun query-replace-read-to (from prompt regexp-flag) "Query and return the `to' argument of a query-replace operation." (query-replace-compile-replacement (save-excursion (read-from-minibuffer - (format "%s %s with: " string (query-replace-descr from)) + (format "%s %s with: " prompt (query-replace-descr from)) nil nil nil query-replace-to-history-variable from t t)) regexp-flag)) -(defun query-replace-read-args (string regexp-flag &optional noerror) +(defun query-replace-read-args (prompt regexp-flag &optional noerror) (unless noerror (barf-if-buffer-read-only)) - (let* ((from (query-replace-read-from string regexp-flag)) + (let* ((from (query-replace-read-from prompt regexp-flag)) (to (if (consp from) (prog1 (cdr from) (setq from (car from))) - (query-replace-read-to from string regexp-flag)))) + (query-replace-read-to from prompt regexp-flag)))) (list from to current-prefix-arg))) (defun query-replace (from-string to-string &optional delimited start end) @@ -847,7 +847,7 @@ Compatibility function for \\[next-error] invocations." '((((class color) (min-colors 88) (background light)) :background "Tan") (((class color) (min-colors 88) (background dark)) - :background "RoyalBlue4") + :background "RoyalBlue3") (((class color) (min-colors 8)) :background "blue" :foreground "white") (((type tty) (class mono)) @@ -1061,6 +1061,8 @@ See also `multi-occur'." title-face prefix-face match-face keep-props) (with-current-buffer out-buf (let ((globalcount 0) + ;; Don't generate undo entries for creation of the initial contents. + (buffer-undo-list t) (coding nil)) ;; Map over all the buffers (dolist (buf buffers) diff --git a/lisp/reposition.el b/lisp/reposition.el index 41283ce251a..7a6ea277b02 100644 --- a/lisp/reposition.el +++ b/lisp/reposition.el @@ -1,6 +1,7 @@ ;;; reposition.el --- center a Lisp function or comment on the screen -;; Copyright (C) 1991, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu> ;; Created: Jan 1991 diff --git a/lisp/resume.el b/lisp/resume.el index db21a4bab4c..29ce253e4a2 100644 --- a/lisp/resume.el +++ b/lisp/resume.el @@ -1,6 +1,6 @@ ;;; resume.el --- process command line args from within a suspended Emacs job -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@bucsf.bu.edu> ;; Adapted-By: ESR diff --git a/lisp/reveal.el b/lisp/reveal.el index 402fa7c4f49..41b7c4268c2 100644 --- a/lisp/reveal.el +++ b/lisp/reveal.el @@ -1,6 +1,7 @@ ;;; reveal.el --- Automatically reveal hidden text at point -;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: outlines diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el index 5c7865d864f..9141b5220e8 100644 --- a/lisp/rfn-eshadow.el +++ b/lisp/rfn-eshadow.el @@ -1,6 +1,7 @@ ;;; rfn-eshadow.el --- Highlight `shadowed' part of read-file-name input text ;; -;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: convenience minibuffer diff --git a/lisp/rot13.el b/lisp/rot13.el index 99b34ef9d17..664e2cfadc6 100644 --- a/lisp/rot13.el +++ b/lisp/rot13.el @@ -1,6 +1,6 @@ ;;; rot13.el --- display a buffer in rot13 -;; Copyright (C) 1988,2002 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index 783e511d0b2..4763072a424 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el @@ -221,8 +221,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Default face used by the ruler." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-default-face 'face-alias 'ruler-mode-default) (defface ruler-mode-pad '((((type tty)) @@ -235,8 +233,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to pad inactive ruler areas." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-pad-face 'face-alias 'ruler-mode-pad) (defface ruler-mode-margins '((t @@ -245,8 +241,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight margin areas." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-margins-face 'face-alias 'ruler-mode-margins) (defface ruler-mode-fringes '((t @@ -255,8 +249,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight fringes areas." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-fringes-face 'face-alias 'ruler-mode-fringes) (defface ruler-mode-column-number '((t @@ -265,8 +257,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight number graduations." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-column-number-face 'face-alias 'ruler-mode-column-number) (defface ruler-mode-fill-column '((t @@ -275,8 +265,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight the fill column character." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-fill-column-face 'face-alias 'ruler-mode-fill-column) (defface ruler-mode-comment-column '((t @@ -285,8 +273,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight the comment column character." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-comment-column-face 'face-alias 'ruler-mode-comment-column) (defface ruler-mode-goal-column '((t @@ -295,8 +281,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight the goal column character." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-goal-column-face 'face-alias 'ruler-mode-goal-column) (defface ruler-mode-tab-stop '((t @@ -305,8 +289,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight tab stop characters." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-tab-stop-face 'face-alias 'ruler-mode-tab-stop) (defface ruler-mode-current-column '((t @@ -316,8 +298,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or ))) "Face used to highlight the `current-column' character." :group 'ruler-mode) -;; backward-compatibility alias -(put 'ruler-mode-current-column-face 'face-alias 'ruler-mode-current-column) (defsubst ruler-mode-full-window-width () diff --git a/lisp/s-region.el b/lisp/s-region.el index d3fa6b1f307..06b5bb3f926 100644 --- a/lisp/s-region.el +++ b/lisp/s-region.el @@ -1,6 +1,7 @@ ;;; s-region.el --- set region using shift key -;; Copyright (C) 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> ;; Keywords: terminals @@ -63,12 +64,12 @@ (error "Non-vector key: %S" key))) (defun s-region-move-p1 (&rest arg) - "This is an overlay function to point-moving keys that are interactive \"p\"" + "This is an overlay function to point-moving keys that are interactive \"p\"." (interactive "p") (apply (function s-region-move) arg)) (defun s-region-move-p2 (&rest arg) - "This is an overlay function to point-moving keys that are interactive \"P\"" + "This is an overlay function to point-moving keys that are interactive \"P\"." (interactive "P") (apply (function s-region-move) arg)) @@ -83,10 +84,10 @@ (delete-overlay s-region-overlay)) (defun s-region-bind (keylist &optional map) - "Bind shifted keys in KEYLIST to s-region-move-p1 or s-region-move-p2. -Each key in KEYLIST is shifted and bound to one of the s-region-move + "Bind shifted keys in KEYLIST to `s-region-move-p1' or `s-region-move-p2'. +Each key in KEYLIST is shifted and bound to one of the `s-region-move' functions provided it is already bound to some command or other. -Optional third argument MAP specifies keymap to add binding to, defaulting +Optional second argument MAP specifies keymap to add binding to, defaulting to global keymap." (let ((p2 (list 'scroll-up 'scroll-down 'beginning-of-buffer 'end-of-buffer))) diff --git a/lisp/saveplace.el b/lisp/saveplace.el index afb10ede9d5..645b298ee66 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el @@ -1,6 +1,7 @@ ;;; saveplace.el --- automatically save place in files -;; Copyright (C) 1993, 1994, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Maintainer: FSF diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el index 2c0636d69d2..f2a953f7a21 100644 --- a/lisp/scroll-all.el +++ b/lisp/scroll-all.el @@ -1,6 +1,6 @@ ;;; scroll-all.el --- scroll all buffers together minor mode -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Gary D. Foster <Gary.Foster@corp.sun.com> ;; Keywords: scroll crisp brief lock diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index 64429ba4da5..1fabb78dc49 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el @@ -1,7 +1,7 @@ ;;; scroll-bar.el --- window system-independent scroll bar support -;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: hardware diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el new file mode 100644 index 00000000000..e5fca2d1c6e --- /dev/null +++ b/lisp/scroll-lock.el @@ -0,0 +1,129 @@ +;;; scroll-lock.el --- Scroll lock scrolling. + +;; Copyright (C) 2005 Free Software Foundation, Inc. + +;; Author: Ralf Angeli <angeli@iwi.uni-sb.de> +;; Maintainer: FSF +;; Created: 2005-06-18 + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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. + +;; GNU Emacs 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; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;; By activating Scroll Lock mode, keys for moving point by line or +;; paragraph will scroll the buffer by the respective amount of lines +;; instead. Point will be kept vertically fixed relative to window +;; boundaries. + +;;; Code: + +(defvar scroll-lock-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [remap next-line] 'scroll-lock-next-line) + (define-key map [remap previous-line] 'scroll-lock-previous-line) + (define-key map [remap forward-paragraph] 'scroll-lock-forward-paragraph) + (define-key map [remap backward-paragraph] 'scroll-lock-backward-paragraph) + map) + "Keymap for Scroll Lock mode.") + +(defvar scroll-lock-preserve-screen-pos-save scroll-preserve-screen-position + "Used for saving the state of `scroll-preserve-screen-position'.") +(make-variable-buffer-local 'scroll-lock-preserve-screen-pos-save) + +(defvar scroll-lock-temporary-goal-column 0 + "Like `temporary-goal-column' but for scroll-lock-* commands.") + +;;;###autoload +(define-minor-mode scroll-lock-mode + "Minor mode for pager-like scrolling. +Keys which normally move point by line or paragraph will scroll +the buffer by the respective amount of lines instead and point +will be kept vertically fixed relative to window boundaries +during scrolling." + :lighter " ScrLck" + :keymap scroll-lock-mode-map + (if scroll-lock-mode + (progn + (setq scroll-lock-preserve-screen-pos-save + scroll-preserve-screen-position) + (set (make-local-variable 'scroll-preserve-screen-position) 'always)) + (setq scroll-preserve-screen-position + scroll-lock-preserve-screen-pos-save))) + +(defun scroll-lock-update-goal-column () + "Update `scroll-lock-temporary-goal-column' if necessary." + (unless (memq last-command '(scroll-lock-next-line + scroll-lock-previous-line + scroll-lock-forward-paragraph + scroll-lock-backward-paragraph)) + (setq scroll-lock-temporary-goal-column (current-column)))) + +(defun scroll-lock-move-to-column (column) + "Like `move-to-column' but cater for wrapped lines." + (if (or (bolp) + ;; Start of a screen line. + (not (zerop (mod (- (point) (line-beginning-position)) + (window-width))))) + (move-to-column column) + (forward-char (min column (- (line-end-position) (point)))))) + +(defun scroll-lock-next-line (&optional arg) + "Scroll up ARG lines keeping point fixed." + (interactive "p") + (or arg (setq arg 1)) + (scroll-lock-update-goal-column) + (if (pos-visible-in-window-p (point-max)) + (next-line arg) + (scroll-up arg)) + (scroll-lock-move-to-column scroll-lock-temporary-goal-column)) + +(defun scroll-lock-previous-line (&optional arg) + "Scroll up ARG lines keeping point fixed." + (interactive "p") + (or arg (setq arg 1)) + (scroll-lock-update-goal-column) + (condition-case nil + (scroll-down arg) + (beginning-of-buffer (previous-line arg))) + (scroll-lock-move-to-column scroll-lock-temporary-goal-column)) + +(defun scroll-lock-forward-paragraph (&optional arg) + "Scroll down ARG paragraphs keeping point fixed." + (interactive "p") + (or arg (setq arg 1)) + (scroll-lock-update-goal-column) + (scroll-up (count-screen-lines (point) (save-excursion + (forward-paragraph arg) + (point)))) + (scroll-lock-move-to-column scroll-lock-temporary-goal-column)) + +(defun scroll-lock-backward-paragraph (&optional arg) + "Scroll up ARG paragraphs keeping point fixed." + (interactive "p") + (or arg (setq arg 1)) + (scroll-lock-update-goal-column) + (let ((goal (save-excursion (backward-paragraph arg) (point)))) + (condition-case nil + (scroll-down (count-screen-lines goal (point))) + (beginning-of-buffer (goto-char goal)))) + (scroll-lock-move-to-column scroll-lock-temporary-goal-column)) + +(provide 'scroll-lock) + +;; arch-tag: 148fc8e8-67e0-4638-bb34-3291595ab7e1 +;;; scroll-lock.el ends here diff --git a/lisp/select.el b/lisp/select.el index 46f9fd7fab3..1d8d13208fa 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -3,7 +3,8 @@ ;; Maintainer: FSF ;; Keywords: internal -;; Copyright (c) 1993, 1994, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Based partially on earlier release by Lucid. ;; This file is part of GNU Emacs. diff --git a/lisp/server.el b/lisp/server.el index 0c6175d1ee6..0104e2787fe 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1,7 +1,7 @@ ;;; server.el --- Lisp code for GNU Emacs running as server process -;; Copyright (C) 1986,87,92,94,95,96,97,98,99,2000,01,02,03,2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: William Sommerfeld <wesommer@athena.mit.edu> ;; Maintainer: FSF @@ -1049,7 +1049,7 @@ only these files will be asked to be saved." (server-delete-client proc)) (save-buffers-kill-emacs)))) -(global-set-key "\C-x#" 'server-edit) +(define-key ctl-x-map "#" 'server-edit) (defun server-unload-hook () "Unload the server library." diff --git a/lisp/ses.el b/lisp/ses.el index f7de1ddb50a..e4124de9fb5 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -1,6 +1,6 @@ ;;; ses.el -- Simple Emacs Spreadsheet -*- coding: utf-8 -*- -;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el index 2e5943db0f5..990049afff1 100644 --- a/lisp/shadowfile.el +++ b/lisp/shadowfile.el @@ -1,6 +1,7 @@ ;;; shadowfile.el --- automatic file copying -;; Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: comm files diff --git a/lisp/shell.el b/lisp/shell.el index 2684ee30a65..0f71d8d8205 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -1,6 +1,7 @@ ;;; shell.el --- specialized comint.el for running the shell -;; Copyright (C) 1988, 93, 94, 95, 96, 1997, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 1994, 1995, 1996, 1997, 2000, +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Simon Marshall <simon@gnu.org> @@ -411,7 +412,7 @@ Variable `shell-completion-fignore' is used to initialize the value of `comint-completion-fignore'. Variables `comint-input-ring-file-name' and `comint-input-autoexpand' control -the initialisation of the input ring history, and history expansion. +the initialization of the input ring history, and history expansion. Variables `comint-output-filter-functions', a hook, and `comint-scroll-to-bottom-on-input' and `comint-scroll-to-bottom-on-output' @@ -790,7 +791,7 @@ line output and parses it to form the new directory stack. DON'T issue this command unless the buffer is at a shell prompt. Also, note that if some other subprocess decides to do output immediately after the query, its output will be taken as the -new directory stack -- you lose. If this happens, just do the +new directory stack -- you lose. If this happens, just do the command again." (interactive) (let* ((proc (get-buffer-process (current-buffer))) diff --git a/lisp/simple.el b/lisp/simple.el index c620b80f3ee..c6837ecabba 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1,8 +1,7 @@ ;;; simple.el --- basic editing commands for Emacs ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -35,6 +34,8 @@ (autoload 'widget-convert "wid-edit") (autoload 'shell-mode "shell")) +(defvar compilation-current-error) + (defcustom idle-update-delay 0.5 "*Idle time delay before updating various things on the screen. Various Emacs features that update auxiliary information when point moves @@ -74,7 +75,7 @@ wait this many seconds after Emacs becomes idle before doing an update." ;;; next-error support framework (defgroup next-error nil - "next-error support framework." + "`next-error' support framework." :group 'compilation :version "22.1") @@ -86,8 +87,8 @@ wait this many seconds after Emacs becomes idle before doing an update." (defcustom next-error-highlight 0.1 "*Highlighting of locations in selected source buffers. -If number, highlight the locus in next-error face for given time in seconds. -If t, use persistent overlays fontified in next-error face. +If number, highlight the locus in `next-error' face for given time in seconds. +If t, use persistent overlays fontified in `next-error' face. If nil, don't highlight the locus in the source buffer. If `fringe-arrow', indicate the locus by the fringe arrow." :type '(choice (number :tag "Delay") @@ -99,8 +100,8 @@ If `fringe-arrow', indicate the locus by the fringe arrow." (defcustom next-error-highlight-no-select 0.1 "*Highlighting of locations in non-selected source buffers. -If number, highlight the locus in next-error face for given time in seconds. -If t, use persistent overlays fontified in next-error face. +If number, highlight the locus in `next-error' face for given time in seconds. +If t, use persistent overlays fontified in `next-error' face. If nil, don't highlight the locus in the source buffer. If `fringe-arrow', indicate the locus by the fringe arrow." :type '(choice (number :tag "Delay") @@ -110,6 +111,11 @@ If `fringe-arrow', indicate the locus by the fringe arrow." :group 'next-error :version "22.1") +(defcustom next-error-hook nil + "*List of hook functions run by `next-error' after visiting source file." + :type 'hook + :group 'next-error) + (defvar next-error-highlight-timer nil) (defvar next-error-overlay-arrow-position nil) @@ -117,7 +123,7 @@ If `fringe-arrow', indicate the locus by the fringe arrow." (add-to-list 'overlay-arrow-variable-list 'next-error-overlay-arrow-position) (defvar next-error-last-buffer nil - "The most recent next-error buffer. + "The most recent `next-error' buffer. A buffer becomes most recent when its compilation, grep, or similar mode is started, or when it is used with \\[next-error] or \\[compile-goto-error].") @@ -138,7 +144,7 @@ to navigate in it.") &optional avoid-current extra-test-inclusive extra-test-exclusive) - "Test if BUFFER is a next-error capable buffer. + "Test if BUFFER is a `next-error' capable buffer. If AVOID-CURRENT is non-nil, treat the current buffer as an absolute last resort only. @@ -165,7 +171,7 @@ that buffer is rejected." (defun next-error-find-buffer (&optional avoid-current extra-test-inclusive extra-test-exclusive) - "Return a next-error capable buffer. + "Return a `next-error' capable buffer. If AVOID-CURRENT is non-nil, treat the current buffer as an absolute last resort only. @@ -218,7 +224,7 @@ that buffer is rejected." (error "No next-error capable buffer found"))) (defun next-error (&optional arg reset) - "Visit next next-error message and corresponding source code. + "Visit next `next-error' message and corresponding source code. If all the error messages parsed so far have been processed already, the message buffer is checked for new ones. @@ -240,9 +246,10 @@ To specify use of a particular buffer for error messages, type \\[next-error] in that buffer when it is the only one displayed in the current frame. -Once \\[next-error] has chosen the buffer for error messages, -it stays with that buffer until you use it in some other buffer which -uses Compilation mode or Compilation Minor mode. +Once \\[next-error] has chosen the buffer for error messages, it +runs `next-error-hook' with `run-hooks', and stays with that buffer +until you use it in some other buffer which uses Compilation mode +or Compilation Minor mode. See variables `compilation-parse-errors-function' and \`compilation-error-regexp-alist' for customization ideas." @@ -251,13 +258,14 @@ See variables `compilation-parse-errors-function' and (when (setq next-error-last-buffer (next-error-find-buffer)) ;; we know here that next-error-function is a valid symbol we can funcall (with-current-buffer next-error-last-buffer - (funcall next-error-function (prefix-numeric-value arg) reset)))) + (funcall next-error-function (prefix-numeric-value arg) reset) + (run-hooks 'next-error-hook)))) (defalias 'goto-next-locus 'next-error) (defalias 'next-match 'next-error) (defun previous-error (&optional n) - "Visit previous next-error message and corresponding source code. + "Visit previous `next-error' message and corresponding source code. Prefix arg N says how many error messages to move backwards (or forwards, if negative). @@ -275,7 +283,7 @@ This operates on the output from the \\[compile] command, for instance." (next-error n t)) (defun next-error-no-select (&optional n) - "Move point to the next error in the next-error buffer and highlight match. + "Move point to the next error in the `next-error' buffer and highlight match. Prefix arg N says how many error messages to move forwards (or backwards, if negative). Finds and highlights the source line like \\[next-error], but does not @@ -286,7 +294,7 @@ select the source buffer." (pop-to-buffer next-error-last-buffer)) (defun previous-error-no-select (&optional n) - "Move point to the previous error in the next-error buffer and highlight match. + "Move point to the previous error in the `next-error' buffer and highlight match. Prefix arg N says how many error messages to move backwards (or forwards, if negative). Finds and highlights the source line like \\[previous-error], but does not @@ -302,11 +310,11 @@ select the source buffer." When turned on, cursor motion in the compilation, grep, occur or diff buffer causes automatic display of the corresponding source code location." - :group 'next-error :init-value " Fol" + :group 'next-error :init-value nil :lighter " Fol" (if (not next-error-follow-minor-mode) (remove-hook 'post-command-hook 'next-error-follow-mode-post-command-hook t) (add-hook 'post-command-hook 'next-error-follow-mode-post-command-hook nil t) - (make-variable-buffer-local 'next-error-follow-last-line))) + (make-local-variable 'next-error-follow-last-line))) ;;; Used as a `post-command-hook' by `next-error-follow-mode' ;;; for the *Compilation* *grep* and *Occur* buffers. @@ -419,8 +427,8 @@ than the value of `fill-column' and ARG is nil." (defun open-line (n) "Insert a newline and leave point before it. -If there is a fill prefix and/or a left-margin, insert them on the new line -if the line would have been blank. +If there is a fill prefix and/or a `left-margin', insert them +on the new line if the line would have been blank. With arg N, insert N newlines." (interactive "*p") (let* ((do-fill-prefix (and fill-prefix (bolp))) @@ -442,7 +450,7 @@ With arg N, insert N newlines." (defun split-line (&optional arg) "Split current line, moving portion beyond point vertically down. If the current line starts with `fill-prefix', insert it on the new -line as well. With prefix ARG, don't insert fill-prefix on new line. +line as well. With prefix ARG, don't insert `fill-prefix' on new line. When called from Lisp code, ARG may be a prefix string to copy." (interactive "*P") @@ -640,7 +648,7 @@ Leave one space or none, according to the context." (save-excursion (forward-char -1) (looking-at "$\\|\\s(\\|\\s'"))) nil - (insert ?\ )))) + (insert ?\s)))) (defun delete-horizontal-space (&optional backward-only) "Delete all spaces and tabs around point. @@ -664,9 +672,9 @@ If BACKWARD-ONLY is non-nil, only delete spaces before point." (skip-chars-backward " \t") (constrain-to-field nil orig-pos) (dotimes (i (or n 1)) - (if (= (following-char) ?\ ) + (if (= (following-char) ?\s) (forward-char 1) - (insert ?\ ))) + (insert ?\s))) (delete-region (point) (progn @@ -1267,7 +1275,7 @@ by the new completion." ;; For compatibility with the old subr of the same name. (defun minibuffer-prompt-width () "Return the display width of the minibuffer prompt. -Return 0 if current buffer is not a mini-buffer." +Return 0 if current buffer is not a minibuffer." ;; Return the width of everything before the field at the end of ;; the buffer; this should be 0 for normal buffers. (1- (minibuffer-prompt-end))) @@ -2342,7 +2350,7 @@ handler, if non-nil, is stored as a `yank-handler' text property on STRING). When the yank handler has a non-nil PARAM element, the original STRING argument is not used by `insert-for-yank'. However, since Lisp code -may access and use elements from the kill-ring directly, the STRING +may access and use elements from the kill ring directly, the STRING argument should still be a \"useful\" string for such uses." (if (> (length string) 0) (if yank-handler @@ -2681,7 +2689,7 @@ and KILLP is t if a prefix arg was specified." (let ((col (current-column))) (forward-char -1) (setq col (- col (current-column))) - (insert-char ?\ col) + (insert-char ?\s col) (delete-char 1))) (forward-char -1) (setq count (1- count)))))) @@ -3238,8 +3246,8 @@ as a fallback, and won't change the buffer bounds.") (or (and (>= position (point-min)) (<= position (point-max))) (if widen-automatically - (error "Global mark position is outside accessible part of buffer") - (widen))) + (widen) + (error "Global mark position is outside accessible part of buffer"))) (goto-char position) (switch-to-buffer buffer))) @@ -3437,51 +3445,41 @@ Outline mode sets this." ;; Now move a line. (end-of-line) ;; If there's no invisibility here, move over the newline. - (let ((pos-before (point)) - line-done) - (if (eobp) - (if (not noerror) - (signal 'end-of-buffer nil) - (setq done t))) - (when (and (not done) - (not (integerp selective-display)) - (not (line-move-invisible-p (point)))) - (unless (overlays-in (max (1- pos-before) (point-min)) - (min (1+ (point)) (point-max))) - ;; We avoid vertical-motion when possible - ;; because that has to fontify. - (forward-line 1) - (setq line-done t))) - (and (not done) (not line-done) - ;; Otherwise move a more sophisticated way. - (zerop (vertical-motion 1)) - (if (not noerror) - (signal 'end-of-buffer nil) - (setq done t)))) + (cond + ((eobp) + (if (not noerror) + (signal 'end-of-buffer nil) + (setq done t))) + ((and (> arg 1) ;; Use vertical-motion for last move + (not (integerp selective-display)) + (not (line-move-invisible-p (point)))) + ;; We avoid vertical-motion when possible + ;; because that has to fontify. + (forward-line 1)) + ;; Otherwise move a more sophisticated way. + ((zerop (vertical-motion 1)) + (if (not noerror) + (signal 'end-of-buffer nil) + (setq done t)))) (unless done (setq arg (1- arg)))) ;; The logic of this is the same as the loop above, ;; it just goes in the other direction. (while (and (< arg 0) (not done)) (beginning-of-line) - (let ((pos-before (point)) - line-done) - (if (bobp) - (if (not noerror) - (signal 'beginning-of-buffer nil) - (setq done t))) - (when (and (not done) - (not (integerp selective-display)) - (not (line-move-invisible-p (1- (point))))) - (unless (overlays-in (max (1- (point)) (point-min)) - (min (1+ pos-before) (point-max))) - (forward-line -1) - (setq line-done t))) - (and (not done) (not line-done) - (zerop (vertical-motion -1)) - (if (not noerror) - (signal 'beginning-of-buffer nil) - (setq done t)))) + (cond + ((bobp) + (if (not noerror) + (signal 'beginning-of-buffer nil) + (setq done t))) + ((and (< arg -1) ;; Use vertical-motion for last move + (not (integerp selective-display)) + (not (line-move-invisible-p (1- (point))))) + (forward-line -1)) + ((zerop (vertical-motion -1)) + (if (not noerror) + (signal 'beginning-of-buffer nil) + (setq done t)))) (unless done (setq arg (1+ arg)) (while (and ;; Don't move over previous invis lines @@ -3498,8 +3496,8 @@ Outline mode sets this." ;; at least go to end of line. (end-of-line)) ((< arg 0) - ;; If we did not move down as far as desired, - ;; at least go to end of line. + ;; If we did not move up as far as desired, + ;; at least go to beginning of line. (beginning-of-line)) (t (line-move-finish (or goal-column temporary-goal-column) @@ -4082,7 +4080,7 @@ Just \\[universal-argument] as argument means to use the current column." (setq arg (current-column))) (if (not (integerp arg)) ;; Disallow missing argument; it's probably a typo for C-x C-f. - (error "Set-fill-column requires an explicit argument") + (error "set-fill-column requires an explicit argument") (message "Fill column set to %d (was %d)" arg fill-column) (setq fill-column arg))) @@ -4162,7 +4160,7 @@ with the character typed. typing characters do. Note that binary overwrite mode is not its own minor mode; it is a -specialization of overwrite-mode, entered by setting the +specialization of overwrite mode, entered by setting the `overwrite-mode' variable to `overwrite-mode-binary'." (interactive "P") (setq overwrite-mode @@ -4215,8 +4213,9 @@ when it is off screen)." :group 'paren-blinking) (defcustom blink-matching-paren-distance (* 25 1024) - "*If non-nil, is maximum distance to search for matching open-paren." - :type 'integer + "*If non-nil, maximum distance to search backwards for matching open-paren. +If nil, search stops at the beginning of the accessible portion of the buffer." + :type '(choice (const nil) integer) :group 'paren-blinking) (defcustom blink-matching-delay 1 @@ -5006,7 +5005,7 @@ PREFIX is the string that represents this modifier in an event type symbol." (define-key function-key-map (vector keypad) (vector normal)))) '((kp-0 ?0) (kp-1 ?1) (kp-2 ?2) (kp-3 ?3) (kp-4 ?4) (kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9) - (kp-space ?\ ) + (kp-space ?\s) (kp-tab ?\t) (kp-enter ?\r) (kp-multiply ?*) @@ -5147,7 +5146,7 @@ or by incrementing the N in an existing suffix. DISPLAY-FLAG non-nil means show the new buffer with `pop-to-buffer'. This is always done when called interactively. -Optional last arg NORECORD non-nil means do not put this buffer at the +Optional third arg NORECORD non-nil means do not put this buffer at the front of the list of recently selected ones." (interactive (progn diff --git a/lisp/skeleton.el b/lisp/skeleton.el index f854621cc85..26d6613d1bf 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el @@ -1,6 +1,7 @@ ;;; skeleton.el --- Lisp language extension for writing statement skeletons -;; Copyright (C) 1993, 1994, 1995, 1996, 2003 by Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Maintainer: FSF @@ -154,7 +155,7 @@ on `skeleton-autowrap'. An ARG of M-0 will prevent this just for once. This command can also be an abbrev expansion (3rd and 4th columns in \\[edit-abbrevs] buffer: \"\" command-name). -Optional first argument STR may also be a string which will be the value +Optional second argument STR may also be a string which will be the value of `str' whereas the skeleton's interactor is then ignored." (skeleton-insert (funcall skeleton-filter skeleton) ;; Pretend C-x a e passed its prefix arg to us diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el index 45e68750cb3..4b677edc36a 100644 --- a/lisp/smerge-mode.el +++ b/lisp/smerge-mode.el @@ -1,6 +1,7 @@ ;;; smerge-mode.el --- Minor mode to resolve diff3 conflicts -;; Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: revision-control merge diff3 cvs conflict @@ -52,7 +53,7 @@ (defvar smerge-mode) (defgroup smerge () - "Minor mode to resolve diff3 conflicts." + "Minor mode to highlight and resolve diff3 conflicts." :group 'tools :prefix "smerge-") @@ -68,13 +69,13 @@ (defcustom smerge-diff-switches (append '("-d" "-b") (if (listp diff-switches) diff-switches (list diff-switches))) - "*A list of strings specifying switches to be passed to diff. + "A list of strings specifying switches to be passed to diff. Used in `smerge-diff-base-mine' and related functions." :group 'smerge :type '(repeat string)) (defcustom smerge-auto-leave t - "*Non-nil means to leave `smerge-mode' when the last conflict is resolved." + "Non-nil means to leave `smerge-mode' when the last conflict is resolved." :group 'smerge :type 'boolean) @@ -128,6 +129,11 @@ Used in `smerge-diff-base-mine' and related functions." (put 'smerge-markers-face 'face-alias 'smerge-markers) (defvar smerge-markers-face 'smerge-markers) +(defface smerge-refined-change + '((t :background "yellow")) + "Face used for char-based changes shown by `smerge-refine'." + :group 'smerge) + (easy-mmode-defmap smerge-basic-map `(("n" . smerge-next) ("p" . smerge-prev) @@ -137,6 +143,8 @@ Used in `smerge-diff-base-mine' and related functions." ("o" . smerge-keep-other) ("m" . smerge-keep-mine) ("E" . smerge-ediff) + ("C" . smerge-combine-with-next) + ("R" . smerge-refine) ("\C-m" . smerge-keep-current) ("=" . ,(make-sparse-keymap "Diff")) ("=<" "base-mine" . smerge-diff-base-mine) @@ -256,6 +264,8 @@ Can be nil if the style is undecided, or else: (when (and smerge-auto-leave (save-excursion (goto-char (point-min)) (not (re-search-forward smerge-begin-re nil t)))) + (when (and (listp buffer-undo-list) smerge-mode) + (push (list 'apply 'smerge-mode 1) buffer-undo-list)) (smerge-mode -1))) @@ -273,6 +283,7 @@ Can be nil if the style is undecided, or else: (smerge-auto-leave))) (defun smerge-keep-n (n) + (smerge-remove-props (match-beginning 0) (match-end 0)) ;; We used to use replace-match, but that did not preserve markers so well. (delete-region (match-end n) (match-end 0)) (delete-region (match-beginning 0) (match-beginning n))) @@ -315,17 +326,16 @@ Can be nil if the style is undecided, or else: "Mode-specific merge function. The function is called with no argument and with the match data set according to `smerge-match-conflict'.") +(add-to-list 'debug-ignored-errors "Don't know how to resolve") (defvar smerge-text-properties `(help-echo "merge conflict: mouse-3 shows a menu" ;; mouse-face highlight keymap (keymap (down-mouse-3 . smerge-popup-context-menu)))) -(defun smerge-remove-props (&optional beg end) - (remove-text-properties - (or beg (match-beginning 0)) - (or end (match-end 0)) - smerge-text-properties)) +(defun smerge-remove-props (beg end) + (remove-overlays beg end 'smerge 'refine) + (remove-overlays beg end 'smerge 'conflict)) (defun smerge-popup-context-menu (event) "Pop up the Smerge mode context menu under mouse." @@ -367,8 +377,16 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." ;; Trivial diff3 -A non-conflicts. ((and (eq (match-end 1) (match-end 3)) (eq (match-beginning 1) (match-beginning 3))) - ;; FIXME: Add "if [ diff -b MINE OTHER ]; then select OTHER; fi" (smerge-keep-n 3)) + ;; Mode-specific conflict resolution. + ((condition-case nil + (atomic-change-group + (funcall smerge-resolve-function) + t) + (error nil)) + ;; Nothing to do: the resolution function has done it already. + nil) + ;; FIXME: Add "if [ diff -b MINE OTHER ]; then select OTHER; fi" ((and (match-end 2) ;; FIXME: Add "diff -b BASE MINE | patch OTHER". ;; FIXME: Add "diff -b BASE OTHER | patch MINE". @@ -379,8 +397,7 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." nil) ) (t - ;; Mode-specific conflict resolution. - (funcall smerge-resolve-function))) + (error "Don't know how to resolve"))) (smerge-auto-leave)) (defun smerge-keep-base () @@ -388,7 +405,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." (interactive) (smerge-match-conflict) (smerge-ensure-match 2) - (smerge-remove-props) (smerge-keep-n 2) (smerge-auto-leave)) @@ -397,7 +413,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." (interactive) (smerge-match-conflict) ;;(smerge-ensure-match 3) - (smerge-remove-props) (smerge-keep-n 3) (smerge-auto-leave)) @@ -406,7 +421,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." (interactive) (smerge-match-conflict) ;;(smerge-ensure-match 1) - (smerge-remove-props) (smerge-keep-n 1) (smerge-auto-leave)) @@ -424,7 +438,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." (smerge-match-conflict) (let ((i (smerge-get-current))) (if (<= i 0) (error "Not inside a version") - (smerge-remove-props) (smerge-keep-n i) (smerge-auto-leave)))) @@ -434,7 +447,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." (smerge-match-conflict) (let ((i (smerge-get-current))) (if (<= i 0) (error "Not inside a version") - (smerge-remove-props) (let ((left nil)) (dolist (n '(3 2 1)) (if (and (match-end n) (/= (match-end n) (match-end i))) @@ -499,6 +511,10 @@ An error is raised if not inside a conflict." (re-search-forward smerge-begin-re end t)) ;; There's a nested conflict and we're after the the beginning ;; of the outer one but before the beginning of the inner one. + ;; Of course, maybe this is not a nested conflict but in that + ;; case it can only be something nastier that we don't know how + ;; to handle, so may as well arbitrarily decide to treat it as + ;; a nested conflict. --Stef (error "There is a nested conflict")) ((re-search-backward smerge-base-re start t) @@ -523,13 +539,6 @@ An error is raised if not inside a conflict." (setq mine-start other-start) (setq mine-end other-end))) - (let ((inhibit-read-only t) - (inhibit-modification-hooks t) - (m (buffer-modified-p))) - (unwind-protect - (add-text-properties start end smerge-text-properties) - (restore-buffer-modified-p m))) - (store-match-data (list start end mine-start mine-end base-start base-end @@ -539,17 +548,138 @@ An error is raised if not inside a conflict." t) (search-failed (error "Point not in conflict region"))))) +(defun smerge-conflict-overlay (pos) + "Return the conflict overlay at POS if any." + (let ((ols (overlays-at pos)) + conflict) + (dolist (ol ols) + (if (and (eq (overlay-get ol 'smerge) 'conflict) + (> (overlay-end ol) pos)) + (setq conflict ol))) + conflict)) + (defun smerge-find-conflict (&optional limit) "Find and match a conflict region. Intended as a font-lock MATCHER. The submatches are the same as in `smerge-match-conflict'. -Returns non-nil if a match is found between the point and LIMIT. -The point is moved to the end of the conflict." - (when (re-search-forward smerge-begin-re limit t) - (condition-case err - (progn - (smerge-match-conflict) - (goto-char (match-end 0))) - (error (smerge-find-conflict limit))))) +Returns non-nil if a match is found between point and LIMIT. +Point is moved to the end of the conflict." + (let ((found nil) + (pos (point)) + conflict) + ;; First check to see if point is already inside a conflict, using + ;; the conflict overlays. + (while (and (not found) (setq conflict (smerge-conflict-overlay pos))) + ;; Check the overlay's validity and kill it if it's out of date. + (condition-case nil + (progn + (goto-char (overlay-start conflict)) + (smerge-match-conflict) + (goto-char (match-end 0)) + (if (<= (point) pos) + (error "Matching backward!") + (setq found t))) + (error (smerge-remove-props + (overlay-start conflict) (overlay-end conflict)) + (goto-char pos)))) + ;; If we're not already inside a conflict, look for the next conflict + ;; and add/update its overlay. + (while (and (not found) (re-search-forward smerge-begin-re limit t)) + (condition-case nil + (progn + (smerge-match-conflict) + (goto-char (match-end 0)) + (let ((conflict (smerge-conflict-overlay (1- (point))))) + (if conflict + ;; Update its location, just in case it got messed up. + (move-overlay conflict (match-beginning 0) (match-end 0)) + (setq conflict (make-overlay (match-beginning 0) (match-end 0) + nil 'front-advance nil)) + (overlay-put conflict 'evaporate t) + (overlay-put conflict 'smerge 'conflict) + (let ((props smerge-text-properties)) + (while props + (overlay-put conflict (pop props) (pop props)))))) + (setq found t)) + (error nil))) + found)) + +(defun smerge-refine-chopup-region (beg end file) + "Chopup the region into small elements, one per line." + ;; ediff chops up into words, where the definition of a word is + ;; customizable. Instead we here keep only one char per line. + ;; The advantages are that there's nothing to configure, that we get very + ;; fine results, and that it's trivial to map the line numbers in the + ;; output of diff back into buffer positions. The disadvantage is that it + ;; can take more time to compute the diff and that the result is sometimes + ;; too fine. I'm not too concerned about the slowdown because conflicts + ;; are usually significantly smaller than the whole file. As for the + ;; problem of too-fine-refinement, I have found it to be unimportant + ;; especially when you consider the cases where the fine-grain is just + ;; what you want. + (let ((buf (current-buffer))) + (with-temp-buffer + (insert-buffer-substring buf beg end) + (goto-char (point-min)) + (while (not (eobp)) + (forward-char 1) + (unless (eq (char-before) ?\n) (insert ?\n))) + (let ((coding-system-for-write 'emacs-mule)) + (write-region (point-min) (point-max) file nil 'nomessage))))) + +(defun smerge-refine-highlight-change (buf beg match-num1 match-num2) + (let* ((startline (string-to-number (match-string match-num1))) + (ol (make-overlay + (+ beg startline -1) + (+ beg (if (match-end match-num2) + (string-to-number (match-string match-num2)) + startline)) + buf + 'front-advance nil))) + (overlay-put ol 'smerge 'refine) + (overlay-put ol 'evaporate t) + (overlay-put ol 'face 'smerge-refined-change))) + + +(defun smerge-refine () + "Highlight the parts of the conflict that are different." + (interactive) + ;; FIXME: make it work with 3-way conflicts. + (smerge-match-conflict) + (remove-overlays (match-beginning 0) (match-end 0) 'smerge 'refine) + (smerge-ensure-match 1) + (smerge-ensure-match 3) + (let ((buf (current-buffer)) + ;; Read them before the match-data gets clobbered. + (beg1 (match-beginning 1)) (end1 (match-end 1)) + (beg2 (match-beginning 3)) (end2 (match-end 3)) + (file1 (make-temp-file "smerge1")) + (file2 (make-temp-file "smerge2"))) + + ;; Chop up regions into smaller elements and save into files. + (smerge-refine-chopup-region beg1 end1 file1) + (smerge-refine-chopup-region beg2 end2 file2) + + ;; Call diff on those files. + (unwind-protect + (with-temp-buffer + (let ((coding-system-for-read 'emacs-mule)) + (call-process diff-command nil t nil file1 file2)) + ;; Process diff's output. + (goto-char (point-min)) + (while (not (eobp)) + (if (not (looking-at "\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?\\([acd]\\)\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?$")) + (error "Unexpected patch hunk header: %s" + (buffer-substring (point) (line-end-position))) + (let ((op (char-after (match-beginning 3)))) + (when (memq op '(?d ?c)) + (smerge-refine-highlight-change buf beg1 1 2)) + (when (memq op '(?a ?c)) + (smerge-refine-highlight-change buf beg2 4 5))) + (forward-line 1) ;Skip hunk header. + (and (re-search-forward "^[0-9]" nil 'move) ;Skip hunk body. + (goto-char (match-beginning 0)))))) + (delete-file file1) + (delete-file file2)))) (defun smerge-diff (n1 n2) (smerge-match-conflict) @@ -565,7 +695,12 @@ The point is moved to the end of the conflict." (file1 (make-temp-file "smerge1")) (file2 (make-temp-file "smerge2")) (dir default-directory) - (file (file-relative-name buffer-file-name)) + (file (if buffer-file-name (file-relative-name buffer-file-name))) + ;; We would want to use `emacs-mule-unix' for read&write, but we + ;; bump into problems with the coding-system used by diff to write + ;; the file names and the time stamps in the header. + ;; `buffer-file-coding-system' is not always correct either, but if + ;; the OS/user uses only one coding-system, then it works. (coding-system-for-read buffer-file-coding-system)) (write-region beg1 end1 file1 nil 'nomessage) (write-region beg2 end2 file2 nil 'nomessage) @@ -593,6 +728,8 @@ The point is moved to the end of the conflict." (defvar ediff-buffer-A) (defvar ediff-buffer-B) (defvar ediff-buffer-C) +(defvar ediff-ancestor-buffer) +(defvar ediff-quit-hook) ;;;###autoload (defun smerge-ediff (&optional name-mine name-other name-base) @@ -670,7 +807,7 @@ buffer names." (ediff-cleanup-mess) (with-current-buffer buf (erase-buffer) - (insert-buffer buffer-C) + (insert-buffer-substring buffer-C) (kill-buffer buffer-A) (kill-buffer buffer-B) (kill-buffer buffer-C) @@ -686,7 +823,6 @@ buffer names." \\{smerge-mode-map}" :group 'smerge :lighter " SMerge" (when (and (boundp 'font-lock-mode) font-lock-mode) - (set (make-local-variable 'font-lock-multiline) t) (save-excursion (if smerge-mode (font-lock-add-keywords nil smerge-font-lock-keywords 'append) @@ -694,7 +830,9 @@ buffer names." (goto-char (point-min)) (while (smerge-find-conflict) (save-excursion - (font-lock-fontify-region (match-beginning 0) (match-end 0) nil)))))) + (font-lock-fontify-region (match-beginning 0) (match-end 0) nil))))) + (unless smerge-mode + (smerge-remove-props (point-min) (point-max)))) (provide 'smerge-mode) diff --git a/lisp/sort.el b/lisp/sort.el index e2fe806c430..6a008b82425 100644 --- a/lisp/sort.el +++ b/lisp/sort.el @@ -1,6 +1,7 @@ ;;; sort.el --- commands to sort text in an Emacs buffer -;; Copyright (C) 1986, 1987, 1994, 1995, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 1994, 1995, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Howie Kaye ;; Maintainer: FSF diff --git a/lisp/soundex.el b/lisp/soundex.el index 2ed79b29455..58ba1872503 100644 --- a/lisp/soundex.el +++ b/lisp/soundex.el @@ -1,6 +1,6 @@ ;;; soundex.el --- implement Soundex algorithm -;; Copyright (C) 1993 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Christian Plaunt <chris@bliss.berkeley.edu> ;; Maintainer: FSF diff --git a/lisp/speedbar.el b/lisp/speedbar.el index 188304bce74..434025ec07c 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el @@ -1,7 +1,7 @@ ;;; speedbar.el --- quick access to files and tags in a frame -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2005 -;; Free Software Foundation +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.11a @@ -180,6 +180,12 @@ (require 'image) (error nil)) +(defvar ange-ftp-path-format) +(defvar efs-path-regexp) +(defvar font-lock-keywords) +(defvar x-pointer-hand2) +(defvar x-pointer-top-left-arrow) + (defvar speedbar-xemacsp (string-match "XEmacs" emacs-version) "Non-nil if we are running in the XEmacs environment.") (defvar speedbar-xemacs20p (and speedbar-xemacsp diff --git a/lisp/startup.el b/lisp/startup.el index 2340711a98b..5ca9d2ca2fa 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1,7 +1,7 @@ ;;; startup.el --- process Emacs shell arguments ;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -;; 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -191,9 +191,9 @@ This is because we already did so.") (defvar keyboard-type nil "The brand of keyboard you are using. -This variable is used to define -the proper function and keypad keys for use under X. It is used in a -fashion analogous to the environment variable TERM.") +This variable is used to define the proper function and keypad +keys for use under X. It is used in a fashion analogous to the +environment variable TERM.") (defvar window-setup-hook nil "Normal hook run to initialize window system display. @@ -241,7 +241,7 @@ is less convenient. This variable is defined for customization so as to make it visible in the relevant context. However, actually customizing it is not allowed, since it would not work anyway. The only way to set -this variable usefully is to set it during while building and dumping Emacs." +this variable usefully is to set it while building and dumping Emacs." :type '(choice (const :tag "none" nil) string) :group 'initialization :initialize 'custom-initialize-default @@ -579,7 +579,7 @@ opening the first frame (e.g. open a connection to an X server).") ;; Choose a reasonable location for temporary files. (custom-reevaluate-setting 'temporary-file-directory) - (custom-reevaluate-setting 'small-emporary-file-directory) + (custom-reevaluate-setting 'small-temporary-file-directory) (custom-reevaluate-setting 'auto-save-file-name-transforms) ;; See if we should import version-control from the environment variable. @@ -670,9 +670,9 @@ opening the first frame (e.g. open a connection to an X server).") ;; processed. This is consistent with the way main in emacs.c ;; does things. (while (and (not done) args) - (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--user") - ("--debug-init") ("--iconic") ("--icon-type") - ("--no-blinking-cursor") ("--bare-bones"))) + (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--debug-init") + ("--user") ("--iconic") ("--icon-type") ("--quick") + ("--no-blinking-cursor") ("--basic-display"))) (argi (pop args)) (orig-argi argi) argval) @@ -758,15 +758,7 @@ opening the first frame (e.g. open a connection to an X server).") ;; are not set. (custom-reevaluate-setting 'blink-cursor-mode) (custom-reevaluate-setting 'normal-erase-is-backspace) - - ;; If you change the code below, you need to also change the - ;; corresponding code in the tooltip-mode defcustom. The two need - ;; to be equivalent under all conditions, or Custom will get confused. - (unless (or noninteractive - emacs-basic-display - (not (display-graphic-p)) - (not (fboundp 'x-show-tip))) - (tooltip-mode 1)) + (custom-reevaluate-setting 'tooltip-mode) ;; Register default TTY colors for the case the terminal hasn't a ;; terminal init file. @@ -997,7 +989,13 @@ opening the first frame (e.g. open a connection to an X server).") (setq term (if (setq hyphend (string-match "[-_][^-_]+$" term)) (substring term 0 hyphend) - nil))))) + nil))) + (when term + ;; The terminal file has been loaded, now call the terminal + ;; specific initialization function. + (let ((term-init-func (intern (concat "terminal-init-" term)))) + (when (fboundp term-init-func) + (funcall term-init-func)))))) ;; Update the out-of-memory error message based on user's key bindings ;; for save-some-buffers. @@ -1070,6 +1068,7 @@ Read the Emacs Manual\tView the Emacs manual using Info :face variable-pitch "\ Copying Conditions\tConditions for redistributing and changing Emacs +Getting New Versions\tHow to obtain the latest version of Emacs More Manuals / Ordering Manuals Buying printed manuals from the FSF\n") (:face variable-pitch "You can do basic editing with the menu bar and scroll bar \ @@ -1355,20 +1354,20 @@ You can do basic editing with the menu bar and scroll bar using the mouse. Useful File menu items: Exit Emacs (or type Control-x followed by Control-c) -Recover Session recover files you were editing before a crash +Recover Crashed Session Recover files you were editing before a crash Important Help menu items: -Emacs Tutorial Learn-by-doing tutorial for using Emacs efficiently. +Emacs Tutorial Learn how to use Emacs efficiently Emacs FAQ Frequently asked questions and answers Read the Emacs Manual View the Emacs manual using Info \(Non)Warranty GNU Emacs comes with ABSOLUTELY NO WARRANTY -Copying Conditions Conditions for redistributing and changing Emacs. -Getting New Versions How to obtain the latest version of Emacs. -More Manuals / Ordering Manuals How to order printed manuals from the FSF. +Copying Conditions Conditions for redistributing and changing Emacs +Getting New Versions How to obtain the latest version of Emacs +More Manuals / Ordering Manuals How to order printed manuals from the FSF ") (insert "\n\n" (emacs-version) " -Copyright (C) 2004 Free Software Foundation, Inc.")) +Copyright (C) 2005 Free Software Foundation, Inc.")) ;; No mouse menus, so give help using kbd commands. @@ -1416,7 +1415,7 @@ If you have no Meta key, you may instead type ESC followed by the character.)") (insert "\n\n" (emacs-version) " -Copyright (C) 2004 Free Software Foundation, Inc.") +Copyright (C) 2005 Free Software Foundation, Inc.") (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) (eq (key-binding "\C-h\C-d") 'describe-distribution) @@ -1641,6 +1640,15 @@ normal otherwise." (setq file file-ex)) (load file nil t))) + ;; This is used to handle -script. It's not clear + ;; we need to document it. + ((member argi '("-scriptload")) + (let* ((file (command-line-normalize-file-name + (or argval (pop command-line-args-left)))) + ;; Take file from default dir. + (file-ex (expand-file-name file))) + (load file-ex nil t t))) + ((equal argi "-insert") (setq tem (or argval (pop command-line-args-left))) (or (stringp tem) @@ -1721,11 +1729,7 @@ normal otherwise." ;; Maybe display a startup screen. (unless (or inhibit-startup-message noninteractive - emacs-quick-startup - ;; Don't display startup screen if init file - ;; has started some sort of server. - (and (fboundp 'process-list) - (process-list))) + emacs-quick-startup) ;; Display a startup screen, after some preparations. ;; If there are no switches to process, we might as well diff --git a/lisp/strokes.el b/lisp/strokes.el index bb99591d1e1..a432191b18a 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el @@ -1,6 +1,7 @@ ;;; strokes.el --- control Emacs through mouse strokes -;; Copyright (C) 1997, 2000, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David Bakhash <cadet@alum.mit.edu> ;; Maintainer: FSF @@ -243,9 +244,9 @@ ones, then strokes should NOT pick the one that came closest." (defcustom strokes-grid-resolution 9 "*Integer defining dimensions of the stroke grid. -The grid is a square grid, where STROKES-GRID-RESOLUTION defaults to +The grid is a square grid, where `strokes-grid-resolution' defaults to `9', making a 9x9 grid whose coordinates go from (0 . 0) on the top -left to ((STROKES-GRID-RESOLUTION - 1) . (STROKES-GRID-RESOLUTION - 1)) +left to ((strokes-grid-resolution - 1) . (strokes-grid-resolution - 1)) on the bottom right. The greater the resolution, the more intricate your strokes can be. NOTE: This variable should be odd and MUST NOT be less than 3 and need @@ -259,7 +260,7 @@ WARNING: Changing the value of this variable will gravely affect the :group 'strokes) (defcustom strokes-file (convert-standard-filename "~/.strokes") - "*File containing saved strokes for stroke-mode (default is ~/.strokes)." + "*File containing saved strokes for Strokes mode (default is ~/.strokes)." :type 'file :group 'strokes) @@ -284,17 +285,17 @@ This is set properly in the function `strokes-update-window-configuration'.") "Last stroke entered by the user. Its value gets set every time the function `strokes-fill-stroke' gets called, -since that is the best time to set the variable") +since that is the best time to set the variable.") (defvar strokes-global-map '() "Association list of strokes and their definitions. Each entry is (STROKE . COMMAND) where STROKE is itself a list of coordinates (X . Y) where X and Y are lists of positions on the normalized stroke grid, with the top left at (0 . 0). COMMAND is the -corresponding interactive function") +corresponding interactive function.") (defvar strokes-load-hook nil - "Function or functions to be called when `strokes' is loaded.") + "Functions to be called when Strokes is loaded.") ;;; ### NOT IMPLEMENTED YET ### ;;(defvar edit-strokes-menu @@ -473,10 +474,10 @@ Compare `strokes-global-set-stroke'." (defun strokes-get-grid-position (stroke-extent position &optional grid-resolution) "Map POSITION to a new grid position. -Do so based on its STROKE-EXTENT and GRID-RESOLUTION. +Do so based on its STROKE-EXTENT and GRID-RESOLUTION. STROKE-EXTENT as a list \(\(XMIN . YMIN\) \(XMAX . YMAX\)\). If POSITION is a `strokes-lift', then it is itself returned. -Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION. +Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'. The grid is a square whose dimension is [0,GRID-RESOLUTION)." (cond ((consp position) ; actual pixel location (let ((grid-resolution (or grid-resolution strokes-grid-resolution)) @@ -566,7 +567,7 @@ The return value is a list ((XMIN . YMIN) (XMAX . YMAX))." (defun strokes-renormalize-to-grid (positions &optional grid-resolution) "Map POSITIONS to a new grid whose dimensions are based on GRID-RESOLUTION. POSITIONS is a list of positions and stroke-lifts. -Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION. +Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'. The grid is a square whose dimension is [0,GRID-RESOLUTION)." (or grid-resolution (setq grid-resolution strokes-grid-resolution)) (let ((stroke-extent (strokes-get-stroke-extent positions))) @@ -726,7 +727,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading. This function will display the stroke interactively as it is being entered in the strokes buffer if the variable `strokes-use-strokes-buffer' is non-nil. -Optional EVENT is acceptable as the starting event of the stroke" +Optional EVENT is acceptable as the starting event of the stroke." (save-excursion (let ((pix-locs nil) (grid-locs nil) @@ -790,7 +791,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading. Note that a complex stroke allows the user to pen-up and pen-down. This is implemented by allowing the user to paint with button 1 or button 2 and then complete the stroke with button 3. -Optional EVENT is acceptable as the starting event of the stroke" +Optional EVENT is acceptable as the starting event of the stroke." (save-excursion (save-window-excursion (set-window-configuration strokes-window-configuration) @@ -892,11 +893,12 @@ This must be bound to a mouse event." ;;;###autoload (defun strokes-help () - "Get instruction on using the `strokes' package." + "Get instruction on using the Strokes package." (interactive) (with-output-to-temp-buffer "*Help with Strokes*" (princ - "This is help for the strokes package. + (substitute-command-keys + "This is help for the strokes package. ------------------------------------------------------------ @@ -986,7 +988,7 @@ You can change this location by setting the variable `strokes-file'. You will be prompted to save them when you exit Emacs, or you can save them with -> M-x strokes-save-strokes +> M-x strokes-prompt-user-save-strokes Your strokes get loaded automatically when you enable `strokes-mode'. You can also load in your user-defined strokes with @@ -1024,7 +1026,7 @@ o Strokes are a bit computer-dependent in that they depend somewhat on variable which many people wanted to see was `strokes-use-strokes-buffer' which allows the user to use strokes silently--without displaying the strokes. All variables can be set - by customizing the group `strokes' via \[customize-group].") + by customizing the group `strokes' via \\[customize-group].")) (set-buffer standard-output) (help-mode) (print-help-return-message))) @@ -1422,8 +1424,6 @@ Encode/decode your strokes with \\[strokes-encode-buffer], "Face for strokes characters." :version "21.1" :group 'strokes) -;; backward-compatibility alias -(put 'strokes-char-face 'face-alias 'strokes-char) (put 'strokes 'char-table-extra-slots 0) (defconst strokes-char-table (make-char-table 'strokes) ; diff --git a/lisp/subr.el b/lisp/subr.el index 666dc8e671d..61340283c96 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1,7 +1,7 @@ ;;; subr.el --- basic lisp subroutines for Emacs ;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -1598,7 +1598,7 @@ Strip text properties from the inserted text according to If STRING has a non-nil `yank-handler' property on the first character, the normal insert behavior is modified in various ways. The value of -the yank-handler property must be a list with one to five elements +the yank-handler property must be a list with one to four elements with the following format: (FUNCTION PARAM NOEXCLUDE UNDO). When FUNCTION is present and non-nil, it is called instead of `insert' to insert the string. FUNCTION takes one argument--the object to insert. @@ -1846,14 +1846,14 @@ is allowed once again." (defmacro while-no-input (&rest body) "Execute BODY only as long as there's no pending input. If input arrives, that ends the execution of BODY, -and `while-no-input' returns nil. If BODY finishes, -`while-no-input' returns whatever value BODY produced." +and `while-no-input' returns t. Quitting makes it return nil. +If BODY finishes, `while-no-input' returns whatever value BODY produced." (declare (debug t) (indent 0)) (let ((catch-sym (make-symbol "input"))) `(with-local-quit (catch ',catch-sym (let ((throw-on-input ',catch-sym)) - (when (sit-for 0 0 t) + (or (not (sit-for 0 0 t)) ,@body)))))) (defmacro combine-after-change-calls (&rest body) @@ -2180,9 +2180,10 @@ arguments with the same names of function `replace-match'. If START is non-nil, start replacements at that index in STRING. REP is either a string used as the NEWTEXT arg of `replace-match' or a -function. If it is a function it is applied to each match to generate -the replacement passed to `replace-match'; the match-data at this -point are such that match 0 is the function's argument. +function. If it is a function, it is called with the actual text of each +match, and its value is used as the replacement text. When REP is called, +the match-data are the result of matching REGEXP against a substring +of STRING. To replace only the first match (if any), make REGEXP match up to \\' and replace a sub-expression, e.g. @@ -2669,9 +2670,9 @@ don't change the volume setting of the sound device. :device DEVICE - play sound on DEVICE. If not specified, a system-dependent default device name is used." - (unless (fboundp 'play-sound-internal) - (error "This Emacs binary lacks sound support")) - (play-sound-internal sound)) + (if (fboundp 'play-sound-internal) + (play-sound-internal sound) + (error "This Emacs binary lacks sound support"))) (defun define-mail-user-agent (symbol composefunc sendfunc &optional abortfunc hookvar) @@ -2864,5 +2865,210 @@ convenience wrapper around `make-progress-reporter' and friends. (progress-reporter-done ,temp2) nil ,@(cdr (cdr spec))))) + +;;;; Compare Version Strings + +(defvar version-separator "." + "*Specify the string used to separate the version elements. + +Usually the separator is \".\", but it can be any other string.") + + +(defvar version-regexp-alist + '(("^a\\(lpha\\)?$" . -3) + ("^b\\(eta\\)?$" . -2) + ("^\\(pre\\|rc\\)$" . -1)) + "*Specify association between non-numeric version part and a priority. + +This association is used to handle version string like \"1.0pre2\", +\"0.9alpha1\", etc. It's used by `version-to-list' (which see) to convert the +non-numeric part to an integer. For example: + + String Version Integer List Version + \"1.0pre2\" (1 0 -1 2) + \"1.0PRE2\" (1 0 -1 2) + \"22.8beta3\" (22 8 -2 3) + \"22.8Beta3\" (22 8 -2 3) + \"0.9alpha1\" (0 9 -3 1) + \"0.9AlphA1\" (0 9 -3 1) + \"0.9alpha\" (0 9 -3) + +Each element has the following form: + + (REGEXP . PRIORITY) + +Where: + +REGEXP regexp used to match non-numeric part of a version string. + +PRIORITY negative integer which indicate the non-numeric priority.") + + +(defun version-to-list (ver) + "Convert version string VER into an integer list. + +The version syntax is given by the following EBNF: + + VERSION ::= NUMBER ( SEPARATOR NUMBER )*. + + NUMBER ::= (0|1|2|3|4|5|6|7|8|9)+. + + SEPARATOR ::= `version-separator' (which see) + | `version-regexp-alist' (which see). + +As an example of valid version syntax: + + 1.0pre2 1.0.7.5 22.8beta3 0.9alpha1 + +As an example of invalid version syntax: + + 1.0prepre2 1.0..7.5 22.8X3 alpha3.2 .5 + +As an example of version convertion: + + String Version Integer List Version + \"1.0.7.5\" (1 0 7 5) + \"1.0pre2\" (1 0 -1 2) + \"1.0PRE2\" (1 0 -1 2) + \"22.8beta3\" (22 8 -2 3) + \"22.8Beta3\" (22 8 -2 3) + \"0.9alpha1\" (0 9 -3 1) + \"0.9AlphA1\" (0 9 -3 1) + \"0.9alpha\" (0 9 -3) + +See documentation for `version-separator' and `version-regexp-alist'." + (or (and (stringp ver) (not (string= ver ""))) + (error "Invalid version string: '%s'" ver)) + (save-match-data + (let ((i 0) + case-fold-search ; ignore case in matching + lst s al) + (while (and (setq s (string-match "[0-9]+" ver i)) + (= s i)) + ;; handle numeric part + (setq lst (cons (string-to-number (substring ver i (match-end 0))) + lst) + i (match-end 0)) + ;; handle non-numeric part + (when (and (setq s (string-match "[^0-9]+" ver i)) + (= s i)) + (setq s (substring ver i (match-end 0)) + i (match-end 0)) + ;; handle alpha, beta, pre, etc. separator + (unless (string= s version-separator) + (setq al version-regexp-alist) + (while (and al (not (string-match (caar al) s))) + (setq al (cdr al))) + (or al (error "Invalid version syntax: '%s'" ver)) + (setq lst (cons (cdar al) lst))))) + (if (null lst) + (error "Invalid version syntax: '%s'" ver) + (nreverse lst))))) + + +(defun version-list-< (l1 l2) + "Return t if integer list L1 is lesser than L2. + +Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), +etc. That is, the trailing zeroes are irrelevant. Also, integer +list (1) is greater than (1 -1) which is greater than (1 -2) +which is greater than (1 -3)." + (while (and l1 l2 (= (car l1) (car l2))) + (setq l1 (cdr l1) + l2 (cdr l2))) + (cond + ;; l1 not null and l2 not null + ((and l1 l2) (< (car l1) (car l2))) + ;; l1 null and l2 null ==> l1 length = l2 length + ((and (null l1) (null l2)) nil) + ;; l1 not null and l2 null ==> l1 length > l2 length + (l1 (< (version-list-not-zero l1) 0)) + ;; l1 null and l2 not null ==> l2 length > l1 length + (t (< 0 (version-list-not-zero l2))))) + + +(defun version-list-= (l1 l2) + "Return t if integer list L1 is equal to L2. + +Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), +etc. That is, the trailing zeroes are irrelevant. Also, integer +list (1) is greater than (1 -1) which is greater than (1 -2) +which is greater than (1 -3)." + (while (and l1 l2 (= (car l1) (car l2))) + (setq l1 (cdr l1) + l2 (cdr l2))) + (cond + ;; l1 not null and l2 not null + ((and l1 l2) nil) + ;; l1 null and l2 null ==> l1 length = l2 length + ((and (null l1) (null l2))) + ;; l1 not null and l2 null ==> l1 length > l2 length + (l1 (zerop (version-list-not-zero l1))) + ;; l1 null and l2 not null ==> l2 length > l1 length + (t (zerop (version-list-not-zero l2))))) + + +(defun version-list-<= (l1 l2) + "Return t if integer list L1 is lesser than or equal to L2. + +Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), +etc. That is, the trailing zeroes are irrelevant. Also, integer +list (1) is greater than (1 -1) which is greater than (1 -2) +which is greater than (1 -3)." + (while (and l1 l2 (= (car l1) (car l2))) + (setq l1 (cdr l1) + l2 (cdr l2))) + (cond + ;; l1 not null and l2 not null + ((and l1 l2) (< (car l1) (car l2))) + ;; l1 null and l2 null ==> l1 length = l2 length + ((and (null l1) (null l2))) + ;; l1 not null and l2 null ==> l1 length > l2 length + (l1 (<= (version-list-not-zero l1) 0)) + ;; l1 null and l2 not null ==> l2 length > l1 length + (t (<= 0 (version-list-not-zero l2))))) + +(defun version-list-not-zero (lst) + "Return the first non-zero element of integer list LST. + +If all LST elements are zeroes or LST is nil, return zero." + (while (and lst (zerop (car lst))) + (setq lst (cdr lst))) + (if lst + (car lst) + ;; there is no element different of zero + 0)) + + +(defun version< (v1 v2) + "Return t if version V1 is lesser than V2. + +Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", +etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" +is greater than \"1pre\" which is greater than \"1beta\" which is greater than +\"1alpha\"." + (version-list-< (version-to-list v1) (version-to-list v2))) + + +(defun version<= (v1 v2) + "Return t if version V1 is lesser than or equal to V2. + +Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", +etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" +is greater than \"1pre\" which is greater than \"1beta\" which is greater than +\"1alpha\"." + (version-list-<= (version-to-list v1) (version-to-list v2))) + +(defun version= (v1 v2) + "Return t if version V1 is equal to V2. + +Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", +etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" +is greater than \"1pre\" which is greater than \"1beta\" which is greater than +\"1alpha\"." + (version-list-= (version-to-list v1) (version-to-list v2))) + + + ;; arch-tag: f7e0e6e5-70aa-4897-ae72-7a3511ec40bc ;;; subr.el ends here diff --git a/lisp/tabify.el b/lisp/tabify.el index 78ee80bee1b..84809839883 100644 --- a/lisp/tabify.el +++ b/lisp/tabify.el @@ -1,6 +1,7 @@ ;;; tabify.el --- tab conversion commands for Emacs -;; Copyright (C) 1985, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/talk.el b/lisp/talk.el index 771beff6825..a008a0ef3fd 100644 --- a/lisp/talk.el +++ b/lisp/talk.el @@ -1,6 +1,6 @@ ;;; talk.el --- allow several users to talk to each other through Emacs -;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: comm, frames diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 041f0fddc1a..4362e97af0b 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -1,7 +1,7 @@ ;;; tar-mode.el --- simple editing of tar files from GNU emacs -;; Copyright (C) 1990,91,93,94,95,96,97,98,99,2000,01,2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Maintainer: FSF @@ -1120,7 +1120,7 @@ to make your changes permanent." (descriptor tar-superior-descriptor) subfile-size) ;; We must make the current buffer unibyte temporarily to avoid - ;; multibyte->unibyte conversion in `insert-buffer'. + ;; multibyte->unibyte conversion in `insert-buffer-substring'. (set-buffer-multibyte nil) (setq subfile-size (buffer-size)) (set-buffer tar-superior-buffer) @@ -1144,7 +1144,7 @@ to make your changes permanent." (delete-region data-start data-end) ;; insert the new data... (goto-char data-start) - (insert-buffer subfile) + (insert-buffer-substring subfile) (setq subfile-size (encode-coding-region data-start (+ data-start subfile-size) coding)) diff --git a/lisp/tempo.el b/lisp/tempo.el index 3f5687d0d08..4939715a31c 100644 --- a/lisp/tempo.el +++ b/lisp/tempo.el @@ -1,6 +1,7 @@ ;;; tempo.el --- Flexible template insertion -;; Copyright (C) 1994, 1995, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: David K}gedal <davidk@lysator.liu.se> ;; Created: 16 Feb 1994 @@ -117,7 +118,7 @@ (defcustom tempo-interactive nil "*Prompt user for strings in templates. If this variable is non-nil, `tempo-insert' prompts the -user for text to insert in the templates" +user for text to insert in the templates." :type 'boolean :group 'tempo) @@ -133,7 +134,7 @@ In Transient Mark mode, this option is unused." (defcustom tempo-show-completion-buffer t "*If non-nil, show a buffer with possible completions, when only -a partial completion can be found" +a partial completion can be found." :type 'boolean :group 'tempo) @@ -148,17 +149,17 @@ disappears at the next keypress; otherwise, it remains forever." (defvar tempo-insert-string-functions nil "List of functions to run when inserting a string. Each function is called with a single arg, STRING and should return -another string. This could be used for making all strings upcase by +another string. This could be used for making all strings upcase by setting it to '(upcase), for example.") (defvar tempo-tags nil - "An association list with tags and corresponding templates") + "An association list with tags and corresponding templates.") (defvar tempo-local-tags '((tempo-tags . nil)) "A list of locally installed tag completion lists. It is a association list where the car of every element is a symbol -whose variable value is a template list. The cdr part, if non-nil, is a -function or a regexp that defines the string to match. See the +whose variable value is a template list. The cdr part, if non-nil, +is a function or a regexp that defines the string to match. See the documentation for the function `tempo-complete-tag' for more info. `tempo-tags' is always in the last position in this list.") @@ -175,8 +176,8 @@ documentation for the function `tempo-complete-tag' for more info. (defvar tempo-match-finder "\\b\\([[:word:]]+\\)\\=" "The regexp or function used to find the string to match against tags. -If `tempo-match-finder is a string, it should contain a regular -expression with at least one \\( \\) pair. When searching for tags, +If `tempo-match-finder' is a string, it should contain a regular +expression with at least one \\( \\) pair. When searching for tags, `tempo-complete-tag' calls `re-search-backward' with this string, and the string between the first \\( and \\) is used for matching against each string in the tag list. If one is found, the whole text between @@ -229,51 +230,50 @@ NAME is a string that contains the name of the template, ELEMENTS is a list of elements in the template, TAG is the tag used for completion, DOCUMENTATION is the documentation string for the insertion command created, and TAGLIST (a symbol) is the tag list that TAG (if provided) -should be added to). If TAGLIST is nil and TAG is non-nil, TAG is -added to `tempo-tags' +should be added to. If TAGLIST is nil and TAG is non-nil, TAG is +added to `tempo-tags'. The elements in ELEMENTS can be of several types: - - A string. It is sent to the hooks in `tempo-insert-string-functions', + - A string: It is sent to the hooks in `tempo-insert-string-functions', and the result is inserted. - - The symbol 'p. This position is saved in `tempo-marks'. - - The symbol 'r. If `tempo-insert' is called with ON-REGION non-nil - the current region is placed here. Otherwise it works like 'p. - - (p PROMPT <NAME> <NOINSERT>) If `tempo-interactive' is non-nil, the + - The symbol `p': This position is saved in `tempo-marks'. + - The symbol `r': If `tempo-insert' is called with ON-REGION non-nil + the current region is placed here. Otherwise it works like `p'. + - (p PROMPT <NAME> <NOINSERT>): If `tempo-interactive' is non-nil, the user is prompted in the minibuffer with PROMPT for a string to be - inserted. If the optional parameter NAME is non-nil, the text is - saved for later insertion with the `s' tag. If there already is + inserted. If the optional parameter NAME is non-nil, the text is + saved for later insertion with the `s' tag. If there already is something saved under NAME that value is used instead and no - prompting is made. If NOINSERT is provided and non-nil, nothing is - inserted, but text is still saved when a NAME is provided. For - clarity, the symbol 'noinsert should be used as argument. - - (P PROMPT <NAME> <NOINSERT>) Works just like the previous tag, but - forces tempo-interactive to be true. - - (r PROMPT <NAME> <NOINSERT>) like the previous, but if + prompting is made. If NOINSERT is provided and non-nil, nothing is + inserted, but text is still saved when a NAME is provided. For + clarity, the symbol `noinsert' should be used as argument. + - (P PROMPT <NAME> <NOINSERT>): Works just like the previous tag, but + forces `tempo-interactive' to be true. + - (r PROMPT <NAME> <NOINSERT>): Like the previous tag, but if `tempo-interactive' is nil and `tempo-insert' is called with - ON-REGION non-nil, the current region is placed here. This usually + ON-REGION non-nil, the current region is placed here. This usually happens when you call the template function with a prefix argument. - - (s NAME) Inserts text previously read with the (p ..) construct. - Finds the insertion saved under NAME and inserts it. Acts like 'p + - (s NAME): Inserts text previously read with the (p ..) construct. + Finds the insertion saved under NAME and inserts it. Acts like `p' if tempo-interactive is nil. - - '& If there is only whitespace between the line start and point, - nothing happens. Otherwise a newline is inserted. - - '% If there is only whitespace between point and end-of-line - nothing happens. Otherwise a newline is inserted. - - 'n inserts a newline. - - '> The line is indented using `indent-according-to-mode'. Note that - you often should place this item after the text you want on the - line. - - 'r> Like r, but it also indents the region. - - 'n> Inserts a newline and indents line. - - 'o Like '% but leaves the point before the newline. - - nil. It is ignored. - - Anything else. It is evaluated and the result is treated as an - element to be inserted. One additional tag is useful for these - cases. If an expression returns a list '(l foo bar), the elements - after 'l will be inserted according to the usual rules. This makes + - `&': If there is only whitespace between the line start and point, + nothing happens. Otherwise a newline is inserted. + - `%': If there is only whitespace between point and end of line, + nothing happens. Otherwise a newline is inserted. + - `n': Inserts a newline. + - `>': The line is indented using `indent-according-to-mode'. Note + that you often should place this item after the text you want on + the line. + - `r>': Like `r', but it also indents the region. + - `n>': Inserts a newline and indents line. + - `o': Like `%' but leaves the point before the newline. + - nil: It is ignored. + - Anything else: It is evaluated and the result is treated as an + element to be inserted. One additional tag is useful for these + cases. If an expression returns a list '(l foo bar), the elements + after `l' will be inserted according to the usual rules. This makes it possible to return several elements from one expression." - (let* ((template-name (intern (concat "tempo-template-" name))) (command-name template-name)) @@ -296,15 +296,15 @@ The elements in ELEMENTS can be of several types: (defun tempo-insert-template (template on-region) "Insert a template. TEMPLATE is the template to be inserted. If ON-REGION is non-nil the -`r' elements are replaced with the current region. In Transient Mark +`r' elements are replaced with the current region. In Transient Mark mode, ON-REGION is ignored and assumed true if the region is active." (unwind-protect (progn (if (or (and (boundp 'transient-mark-mode) ; For Emacs transient-mark-mode mark-active) - (and (boundp 'zmacs-regions) ; For XEmacs - zmacs-regions (mark))) + (if (featurep 'xemacs) + (and zmacs-regions (mark)))) (setq on-region t)) (and on-region (set-marker tempo-region-start (min (mark) (point))) @@ -399,9 +399,9 @@ possible." ;;; tempo-insert-prompt (defun tempo-insert-prompt-compat (prompt) - "Compatibility hack for tempo-insert-prompt. + "Compatibility hack for `tempo-insert-prompt'. PROMPT can be either a prompt string, or a list of arguments to -tempo-insert-prompt, or nil." +`tempo-insert-prompt', or nil." (if (consp prompt) ; not nil either (apply 'tempo-insert-prompt prompt) (tempo-insert-prompt prompt))) @@ -410,12 +410,12 @@ tempo-insert-prompt, or nil." "Prompt for a text string and insert it in the current buffer. If the variable `tempo-interactive' is non-nil the user is prompted for a string in the minibuffer, which is then inserted in the current -buffer. If `tempo-interactive' is nil, the current point is placed on +buffer. If `tempo-interactive' is nil, the current point is placed on `tempo-mark'. PROMPT is the prompt string, SAVE-NAME is a name to save the inserted -text under. If the optional argument NO-INSERT is non-nil, no text i -inserted. This can be useful when there is a SAVE-NAME. +text under. If the optional argument NO-INSERT is non-nil, no text is +inserted. This can be useful when there is a SAVE-NAME. If there already is a value for SAVE-NAME, it is used and the user is never prompted." @@ -448,8 +448,7 @@ never prompted." ;;; tempo-is-user-element (defun tempo-is-user-element (element) - "Tries all the user-defined element handlers in -`tempo-user-elements'" + "Tries all the user-defined element handlers in `tempo-user-elements'." ;; Sigh... I need (some list) (catch 'found (mapcar (function (lambda (handler) @@ -531,7 +530,7 @@ and insert the results." ;;; tempo-insert-mark (defun tempo-insert-mark (mark) - "Insert a mark `tempo-marks' while keeping it sorted" + "Insert a mark `tempo-marks' while keeping it sorted." (cond ((null tempo-marks) (setq tempo-marks (list mark))) ((< mark (car tempo-marks)) (setq tempo-marks (cons mark tempo-marks))) (t (let ((lp tempo-marks)) @@ -603,8 +602,8 @@ TAG-LIST is a symbol whose variable value is a tag list created with COMPLETION-FUNCTION is an obsolete option for specifying an optional function or string that is used by `\\[tempo-complete-tag]' to find a -string to match the tag against. It has the same definition as the -variable `tempo-match-finder'. In this version, supplying a +string to match the tag against. It has the same definition as the +variable `tempo-match-finder'. In this version, supplying a COMPLETION-FUNCTION just sets `tempo-match-finder' locally." (let ((old (assq tag-list tempo-local-tags))) (if old @@ -647,7 +646,7 @@ If `tempo-dirty-collection' is nil, the old collection is reused." (defun tempo-find-match-string (finder) "Find a string to be matched against a tag list. -FINDER is a function or a string. Returns (STRING . POS), or nil +FINDER is a function or a string. Returns (STRING . POS), or nil if no reasonable string is found." (cond ((stringp finder) (let (successful) @@ -671,7 +670,7 @@ if no reasonable string is found." All the tags in the tag lists in `tempo-local-tags' \(this includes `tempo-tags') are searched for a match for the text before the point. The way the string to match for is determined can -be altered with the variable `tempo-match-finder'. If +be altered with the variable `tempo-match-finder'. If `tempo-match-finder' returns nil, then the results are the same as no match at all. diff --git a/lisp/term.el b/lisp/term.el index 047db5708af..9d6ee5a4e93 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1,6 +1,7 @@ ;;; term.el --- general command interpreter in a window stuff -;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Bothner <per@bothner.com> ;; Maintainer: Dan Nicolaescu <dann@ics.uci.edu>, Per Bothner <per@bothner.com> @@ -1102,6 +1103,8 @@ Entry to this mode runs the hooks on `term-mode-hook'." (make-local-variable 'term-current-face) (make-local-variable 'term-pending-frame) (setq term-pending-frame nil) + ;; Cua-mode's keybindings interfere with the term keybindings, disable it. + (set (make-local-variable 'cua-mode) nil) (run-mode-hooks 'term-mode-hook) (term-if-xemacs (set-buffer-menubar diff --git a/lisp/term/AT386.el b/lisp/term/AT386.el index fc86e8bcaf0..7e3ed15ce2e 100644 --- a/lisp/term/AT386.el +++ b/lisp/term/AT386.el @@ -3,7 +3,7 @@ ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Keywords: terminals -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -28,34 +28,36 @@ ;;; Code: -(if (boundp 'AT386-keypad-map) - nil - ;; The terminal initialization should already have set up some keys - (setq AT386-keypad-map (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[")) - (if (not (keymapp AT386-keypad-map)) - (error "What? Your AT386 termcap/terminfo has no keycaps in it")) - - ;; Equivalents of these are set up automatically by termcap/terminfo - ;; (define-key AT386-keypad-map "A" [up]) - ;; (define-key AT386-keypad-map "B" [down]) - ;; (define-key AT386-keypad-map "C" [right]) - ;; (define-key AT386-keypad-map "D" [left]) - - ;; These would be set up by terminfo, but not termcap - (define-key AT386-keypad-map "H" [home]) - (define-key AT386-keypad-map "Y" [end]) - (define-key AT386-keypad-map "U" [next]) ;; PgDn - (define-key AT386-keypad-map "V" [prior]) ;; PgUp - (define-key AT386-keypad-map "@" [insert]) ;; Ins key - - ;; These are not normally set up by either - (define-key AT386-keypad-map "G" [kp-5]) ;; Unlabeled center key - (define-key AT386-keypad-map "S" [kp-subtract]) - (define-key AT386-keypad-map "T" [kp-add]) - - ;; Arrange for the ALT key to be equivalent to ESC - (define-key (terminal-local-value 'local-function-key-map nil) "\eN" [27]) ; ALT map - ) +(defun terminal-init-AT386 () + "Terminal initialization function for AT386." + (if (boundp 'AT386-keypad-map) + nil + ;; The terminal initialization should already have set up some keys + (setq AT386-keypad-map (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[")) + (if (not (keymapp AT386-keypad-map)) + (error "What? Your AT386 termcap/terminfo has no keycaps in it")) + + ;; Equivalents of these are set up automatically by termcap/terminfo + ;; (define-key AT386-keypad-map "A" [up]) + ;; (define-key AT386-keypad-map "B" [down]) + ;; (define-key AT386-keypad-map "C" [right]) + ;; (define-key AT386-keypad-map "D" [left]) + + ;; These would be set up by terminfo, but not termcap + (define-key AT386-keypad-map "H" [home]) + (define-key AT386-keypad-map "Y" [end]) + (define-key AT386-keypad-map "U" [next]) ;; PgDn + (define-key AT386-keypad-map "V" [prior]) ;; PgUp + (define-key AT386-keypad-map "@" [insert]) ;; Ins key + + ;; These are not normally set up by either + (define-key AT386-keypad-map "G" [kp-5]) ;; Unlabeled center key + (define-key AT386-keypad-map "S" [kp-subtract]) + (define-key AT386-keypad-map "T" [kp-add]) + + ;; Arrange for the ALT key to be equivalent to ESC + (define-key (terminal-local-value 'local-function-key-map nil) "\eN" [27]) ; ALT map + )) ;;; arch-tag: abec1b03-582f-49f8-b8cb-e2fd52ea4bd7 ;;; AT386.el ends here diff --git a/lisp/term/README b/lisp/term/README index 76c64435af1..581f321d3ba 100644 --- a/lisp/term/README +++ b/lisp/term/README @@ -8,7 +8,12 @@ that exists, the last hyphen and what follows it is stripped. If that doesn't yield a file that exists, the previous hyphen is stripped, and so on until all hyphens are gone. For example, if the terminal type is `aaa-48-foo', Emacs will try first `term/aaa-48-foo.el', then `term/aaa-48.el' and finally -`term/aaa.el'. +`term/aaa.el'. Each terminal specific file should contain a function +named terminal-init-TERMINALNAME (eg terminal-init-aaa-48 for +term/aaa-48.el) that Emacs will call in order to initialize the +terminal. The terminal files should not contain any top level forms +that are executed when the file is loaded, all the initialization +actions are performed by the terminal-init-TERMINALNAME functions. When writing terminal packages, there are some things it is good to keep in mind. diff --git a/lisp/term/apollo.el b/lisp/term/apollo.el index 1d04fd35245..1e0e6f0a1f1 100644 --- a/lisp/term/apollo.el +++ b/lisp/term/apollo.el @@ -1,6 +1,7 @@ ;; -*- no-byte-compile: t -*- - -(load "term/vt100" nil t) +(defun terminal-init-apollo () + "Terminal initialization function for apollo." + (terminal-init-vt100)) ;;; arch-tag: c72f446f-e6b7-4749-90a4-bd68632adacf ;;; apollo.el ends here diff --git a/lisp/term/bobcat.el b/lisp/term/bobcat.el index b11a4ff8309..82401f7bf71 100644 --- a/lisp/term/bobcat.el +++ b/lisp/term/bobcat.el @@ -1,7 +1,10 @@ ;; -*- no-byte-compile: t -*- -;;; HP terminals usually encourage using ^H as the rubout character -(keyboard-translate ?\177 ?\^h) -(keyboard-translate ?\^h ?\177) + +(defun terminal-init-bobcat () + "Terminal initialization function for bobcat." + ;; HP terminals usually encourage using ^H as the rubout character + (keyboard-translate ?\177 ?\^h) + (keyboard-translate ?\^h ?\177)) ;;; arch-tag: 754e4520-0a3e-4e6e-8ca5-9481b1f85cf7 ;;; bobcat.el ends here diff --git a/lisp/term/cygwin.el b/lisp/term/cygwin.el new file mode 100644 index 00000000000..3bdd5d3aa05 --- /dev/null +++ b/lisp/term/cygwin.el @@ -0,0 +1,10 @@ +;;; cygwin.el --- support for the Cygwin terminal -*- no-byte-compile: t -*- + +;;; The Cygwin terminal can't really display underlines. + +(defun terminal-init-cygwin () + "Terminal initialization function for cygwin." + (tty-no-underline)) + +;; arch-tag: ca81ce67-3c41-4883-a29b-4c3d64a21191 +;;; cygwin.el ends here diff --git a/lisp/term/internal.el b/lisp/term/internal.el index 398d848aeb1..bbc19bb1b3c 100644 --- a/lisp/term/internal.el +++ b/lisp/term/internal.el @@ -1,6 +1,7 @@ ;;; internal.el --- support for PC internal terminal -*- coding: raw-text; no-byte-compile: t -*- -;; Copyright (C) 1993, 1994, 1998, 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1998, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el index 4d99c3a355b..42f0912ed2f 100644 --- a/lisp/term/iris-ansi.el +++ b/lisp/term/iris-ansi.el @@ -1,6 +1,6 @@ ;;; iris-ansi.el --- configure Emacs for SGI xwsh and winterm apps -*- no-byte-compile: t -*- -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dan Nicolaescu <dann@ics.uci.edu> @@ -135,10 +135,10 @@ (define-key iris-function-map "\e[070q" [?\M-=]) ;; I don't know what to do with those. - ;(define-key iris-function-map "^H" [<del>]) - ;(define-key iris-function-map "^H" [S-<del>]) - ;(define-key iris-function-map "\177" [C-<del>]) - ;(define-key iris-function-map "\e[071q" [M-<del>]) + ;;(define-key iris-function-map "^H" [<del>]) + ;;(define-key iris-function-map "^H" [S-<del>]) + ;;(define-key iris-function-map "\177" [C-<del>]) + ;;(define-key iris-function-map "\e[071q" [M-<del>]) (define-key iris-function-map "\e[Z" [?\S-\t]) (define-key iris-function-map "\e[072q" [?\C-\t]) @@ -329,12 +329,14 @@ (define-key iris-function-map "\e[196q" [C-delete]) (define-key iris-function-map "\e[197q" [M-delete])) -;; Use inheritance to let the main keymap override these defaults. -;; This way we don't override terminfo-derived settings or settings -;; made in the .emacs file. -(let ((m (copy-keymap iris-function-map))) - (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) - (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) +(defun terminal-init-iris-ansi () + "Terminal initialization function for iris-ansi." + ;; Use inheritance to let the main keymap override these defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (let ((m (copy-keymap iris-function-map))) + (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) + (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))) ;;; arch-tag: b1d0e73a-bb7d-47be-9fb2-6fb126469a1b ;;; iris-ansi.el ends here diff --git a/lisp/term/linux.el b/lisp/term/linux.el index 71b9e0d4bcf..7fa9a96e9bd 100644 --- a/lisp/term/linux.el +++ b/lisp/term/linux.el @@ -1,19 +1,21 @@ ;; -*- no-byte-compile: t -*- ;; The Linux console handles Latin-1 by default. -(unless (terminal-coding-system) - (set-terminal-coding-system 'iso-latin-1)) +(defun terminal-init-linux () + "Terminal initialization function for linux." + (unless (terminal-coding-system) + (set-terminal-coding-system 'iso-latin-1)) -;; It can't really display underlines. -(tty-no-underline) + ;; It can't really display underlines. + (tty-no-underline) -;; Make Latin-1 input characters work, too. -;; Meta will continue to work, because the kernel -;; turns that into Escape. + ;; Make Latin-1 input characters work, too. + ;; Meta will continue to work, because the kernel + ;; turns that into Escape. -(let ((value (current-input-mode))) - ;; The third arg only matters in that it is not t or nil. - (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value))) + (let ((value (current-input-mode))) + ;; The third arg only matters in that it is not t or nil. + (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value)))) ;;; arch-tag: 5d0c4f63-739b-4862-abf3-041fe42adb8f ;;; linux.el ends here diff --git a/lisp/term/lk201.el b/lisp/term/lk201.el index 84d5660cb57..960793ce996 100644 --- a/lisp/term/lk201.el +++ b/lisp/term/lk201.el @@ -75,12 +75,13 @@ (define-key lk201-function-map "\eOx" [kp-8]) (define-key lk201-function-map "\eOy" [kp-9])) -;; Use inheritance to let the main keymap override these defaults. -;; This way we don't override terminfo-derived settings or settings -;; made in the .emacs file. -(let ((m (copy-keymap lk201-function-map))) - (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) - (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) +(defun terminal-init-lk201 () + ;; Use inheritance to let the main keymap override these defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (let ((m (copy-keymap lk201-function-map))) + (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) + (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))) ;;; arch-tag: 7ffb4444-6a23-43e1-b457-43cf4f673c0d ;;; lk201.el ends here diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 8b538050b26..3762b13d80c 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -1,7 +1,7 @@ ;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 1999, 2000, 2002, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Andrew Choi <akochoi@mac.com> ;; Keywords: terminals @@ -79,6 +79,9 @@ (require 'fontset) (require 'dnd) +(defvar mac-charset-info-alist) +(defvar mac-services-selection) +(defvar mac-system-script-code) (defvar x-invocation-args) (defvar x-command-line-resources nil) @@ -1378,6 +1381,17 @@ in `selection-converter-alist', which see." (save-buffer) ; It pops up the save dialog. ) +(defun mac-services-mail-selection () + (interactive) + (compose-mail) + (rfc822-goto-eoh) + (forward-line 1) + (insert (x-selection-value mac-services-selection) "\n")) + +(defun mac-services-mail-to () + (interactive) + (compose-mail (x-selection-value mac-services-selection))) + (defun mac-services-insert-text () (interactive) (let ((text (x-selection-value mac-services-selection))) @@ -1394,6 +1408,10 @@ in `selection-converter-alist', which see." 'mac-services-open-file) (define-key mac-application-menu-map [services perform open-selection] 'mac-services-open-selection) +(define-key mac-application-menu-map [services perform mail-selection] + 'mac-services-mail-selection) +(define-key mac-application-menu-map [services perform mail-to] + 'mac-services-mail-to) (define-key mac-application-menu-map [services paste] 'mac-services-insert-text) (define-key mac-application-menu-map [preferences] 'customize) @@ -1487,7 +1505,7 @@ in `selection-converter-alist', which see." (char-table-extra-slot translation-table 0))) (let - ((encoding-vector + ((encoding-vector (vconcat (make-vector 32 nil) ;; mac-dingbats (32..126) -> emacs-mule mapping @@ -1547,54 +1565,52 @@ in `selection-converter-alist', which see." (if mac-encoded (aset table c mac-encoded)))))))) +;; We assume none of official dim2 charsets (0x90..0x99) are encoded +;; to these fonts. + (define-ccl-program ccl-encode-mac-roman-font `(0 - (if (r0 != ,(charset-id 'ascii)) - (if (r0 <= ?\x8f) - (translate-character mac-roman-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-roman-encoder r0 r1))))) + (if (r0 <= ?\xef) + (translate-character mac-roman-encoder r0 r1) + ((r1 <<= 7) + (r1 |= r2) + (translate-character mac-roman-encoder r0 r1)))) "CCL program for Mac Roman font") (define-ccl-program ccl-encode-mac-centraleurroman-font `(0 - (if (r0 != ,(charset-id 'ascii)) - (if (r0 <= ?\x8f) - (translate-character encode-mac-centraleurroman r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character encode-mac-centraleurroman r0 r1))))) + (if (r0 <= ?\xef) + (translate-character encode-mac-centraleurroman r0 r1) + ((r1 <<= 7) + (r1 |= r2) + (translate-character encode-mac-centraleurroman r0 r1)))) "CCL program for Mac Central European Roman font") (define-ccl-program ccl-encode-mac-cyrillic-font `(0 - (if (r0 != ,(charset-id 'ascii)) - (if (r0 <= ?\x8f) - (translate-character encode-mac-cyrillic r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character encode-mac-cyrillic r0 r1))))) + (if (r0 <= ?\xef) + (translate-character encode-mac-cyrillic r0 r1) + ((r1 <<= 7) + (r1 |= r2) + (translate-character encode-mac-cyrillic r0 r1)))) "CCL program for Mac Cyrillic font") (define-ccl-program ccl-encode-mac-symbol-font `(0 - (if (r0 != ,(charset-id 'ascii)) - (if (r0 <= ?\x8f) - (translate-character mac-symbol-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-symbol-encoder r0 r1))))) + (if (r0 <= ?\xef) + (translate-character mac-symbol-encoder r0 r1) + ((r1 <<= 7) + (r1 |= r2) + (translate-character mac-symbol-encoder r0 r1)))) "CCL program for Mac Symbol font") (define-ccl-program ccl-encode-mac-dingbats-font `(0 - (if (r0 != ,(charset-id 'ascii)) - (if (r0 <= ?\x8f) - (translate-character mac-dingbats-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-dingbats-encoder r0 r1))))) + (if (r0 <= ?\xef) + (translate-character mac-dingbats-encoder r0 r1) + ((r1 <<= 7) + (r1 |= r2) + (translate-character mac-dingbats-encoder r0 r1)))) "CCL program for Mac Dingbats font") @@ -1604,35 +1620,80 @@ in `selection-converter-alist', which see." mac-font-encoder-list) font-ccl-encoder-alist)) +(defconst mac-char-fontspec-list + ;; Directly operate on a char-table instead of a fontset so that it + ;; may not create a dummy fontset. + (let ((template (make-char-table 'fontset))) + (dolist + (font-encoder + (nreverse + (mapcar (lambda (lst) + (cons (cons (nth 3 lst) (nth 0 lst)) (nth 1 lst))) + mac-font-encoder-list))) + (let ((font (car font-encoder)) + (encoder (cdr font-encoder))) + (map-char-table + (lambda (key val) + (or (null val) + (generic-char-p key) + (memq (char-charset key) + '(ascii eight-bit-control eight-bit-graphic)) + (aset template key font))) + (get encoder 'translation-table)))) + + ;; Like fontset-info, but extend a range only if its "to" part is + ;; the predecessor of the current char. + (let* ((last '((0 nil))) + (accumulator last) + last-char-or-range last-char last-elt) + (map-char-table + (lambda (char elt) + (when elt + (setq last-char-or-range (car (car last)) + last-char (if (consp last-char-or-range) + (cdr last-char-or-range) + last-char-or-range) + last-elt (cdr (car last))) + (if (and (eq elt last-elt) + (= char (1+ last-char)) + (eq (char-charset char) (char-charset last-char))) + (if (consp last-char-or-range) + (setcdr last-char-or-range char) + (setcar (car last) (cons last-char char))) + (setcdr last (list (cons char elt))) + (setq last (cdr last))))) + template) + (cdr accumulator)))) + (defun fontset-add-mac-fonts (fontset &optional base-family) + "Add font-specs for Mac fonts to FONTSET. +The added font-specs are determined by BASE-FAMILY and the value +of `mac-char-fontspec-list', which is a list +of (CHARACTER-OR-RANGE . (FAMILY-FORMAT . REGISTRY)). If +BASE-FAMILY is nil, the font family in the added font-specs is +also nil. If BASE-FAMILY is a string, `%s' in FAMILY-FORMAT is +replaced with the string. Otherwise, `%s' in FAMILY-FORMAT is +replaced with the ASCII font family name in FONTSET." (if base-family - (setq base-family (downcase base-family)) - (let ((ascii-font - (downcase (x-resolve-font-name - (fontset-font fontset (charset-id 'ascii)))))) - (setq base-family (aref (x-decompose-font-name ascii-font) - xlfd-regexp-family-subnum)))) -;; (if (not (string-match "^fontset-" fontset)) -;; (setq fontset -;; (concat "fontset-" (aref (x-decompose-font-name fontset) -;; xlfd-regexp-encoding-subnum)))) - (dolist - (font-encoder - (nreverse - (mapcar (lambda (lst) - (cons (cons (format (nth 3 lst) base-family) (nth 0 lst)) - (nth 1 lst))) - mac-font-encoder-list))) - (let ((font (car font-encoder)) - (encoder (cdr font-encoder))) - (map-char-table - (lambda (key val) - (or (null val) - (generic-char-p key) - (memq (char-charset key) - '(ascii eight-bit-control eight-bit-graphic)) - (set-fontset-font fontset key font))) - (get encoder 'translation-table))))) + (if (stringp base-family) + (setq base-family (downcase base-family)) + (let ((ascii-font (fontset-font fontset (charset-id 'ascii)))) + (if ascii-font + (setq base-family + (aref (x-decompose-font-name + (downcase (x-resolve-font-name ascii-font))) + xlfd-regexp-family-subnum)))))) + (let (fontspec-cache fontspec) + (dolist (char-fontspec mac-char-fontspec-list) + (setq fontspec (cdr (assq (cdr char-fontspec) fontspec-cache))) + (when (null fontspec) + (setq fontspec + (cons (and base-family + (format (car (cdr char-fontspec)) base-family)) + (cdr (cdr char-fontspec)))) + (setq fontspec-cache (cons (cons (cdr char-fontspec) fontspec) + fontspec-cache))) + (set-fontset-font fontset (car char-fontspec) fontspec)))) (defun create-fontset-from-mac-roman-font (font &optional resolved-font fontset-name) @@ -1649,11 +1710,14 @@ an appropriate name is generated automatically. It returns a name of the created fontset." (let ((fontset (create-fontset-from-ascii-font font resolved-font fontset-name))) - (fontset-add-mac-fonts fontset) + (fontset-add-mac-fonts fontset t) fontset)) ;; Setup the default fontset. (setup-default-fontset) +;; Add Mac-encoding fonts unless ETL fonts are installed. +(unless (x-list-fonts "*-iso8859-1") + (fontset-add-mac-fonts "fontset-default")) ;; Create a fontset that uses mac-roman font. With this fontset, ;; characters decoded from mac-roman encoding (ascii, latin-iso8859-1, @@ -1661,7 +1725,7 @@ It returns a name of the created fontset." (create-fontset-from-fontset-spec "-etl-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-mac, ascii:-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman") -(fontset-add-mac-fonts "fontset-mac") +(fontset-add-mac-fonts "fontset-mac" t) ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...). (create-fontset-from-x-resource) diff --git a/lisp/term/news.el b/lisp/term/news.el index d5afab190dc..2a62a85d5b7 100644 --- a/lisp/term/news.el +++ b/lisp/term/news.el @@ -1,6 +1,7 @@ ;;; news.el --- keypad and function key bindings for the Sony NEWS keyboard -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals @@ -28,47 +29,49 @@ ;;; Code: -(if (boundp 'news-fkey-prefix) - nil - ;; The terminal initialization should already have set up some keys - (setq news-fkey-prefix (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO")) - (if (not (keymapp news-fkey-prefix)) - (error "What? Your news termcap/terminfo has no keycaps in it")) +(defun terminal-init-news () + "Terminal initialization function for news." + (if (boundp 'news-fkey-prefix) + nil + ;; The terminal initialization should already have set up some keys + (setq news-fkey-prefix (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO")) + (if (not (keymapp news-fkey-prefix)) + (error "What? Your news termcap/terminfo has no keycaps in it")) - ;; Termcap or terminfo will set these - ;; (define-key news-fkey-prefix "P" [f1]) - ;; (define-key news-fkey-prefix "Q" [f2]) - ;; (define-key news-fkey-prefix "R" [f3]) - ;; (define-key news-fkey-prefix "S" [f4]) - ;; (define-key news-fkey-prefix "T" [f5]) - ;; (define-key news-fkey-prefix "U" [f6]) - ;; (define-key news-fkey-prefix "V" [f7]) - ;; (define-key news-fkey-prefix "W" [f8]) - ;; (define-key news-fkey-prefix "X" [f9]) - ;; (define-key news-fkey-prefix "Y" [f10]) + ;; Termcap or terminfo will set these + ;; (define-key news-fkey-prefix "P" [f1]) + ;; (define-key news-fkey-prefix "Q" [f2]) + ;; (define-key news-fkey-prefix "R" [f3]) + ;; (define-key news-fkey-prefix "S" [f4]) + ;; (define-key news-fkey-prefix "T" [f5]) + ;; (define-key news-fkey-prefix "U" [f6]) + ;; (define-key news-fkey-prefix "V" [f7]) + ;; (define-key news-fkey-prefix "W" [f8]) + ;; (define-key news-fkey-prefix "X" [f9]) + ;; (define-key news-fkey-prefix "Y" [f10]) - ;; Terminfo will set these - (define-key news-fkey-prefix "a" [execute]) - (define-key news-fkey-prefix "b" [select]) - (define-key news-fkey-prefix "c" [cancel]) - (define-key news-fkey-prefix "M" [kp-enter]) - (define-key news-fkey-prefix "q" [kp-1]) - (define-key news-fkey-prefix "s" [kp-3]) - (define-key news-fkey-prefix "u" [kp-5]) - (define-key news-fkey-prefix "w" [kp-7]) - (define-key news-fkey-prefix "y" [kp-9]) + ;; Terminfo will set these + (define-key news-fkey-prefix "a" [execute]) + (define-key news-fkey-prefix "b" [select]) + (define-key news-fkey-prefix "c" [cancel]) + (define-key news-fkey-prefix "M" [kp-enter]) + (define-key news-fkey-prefix "q" [kp-1]) + (define-key news-fkey-prefix "s" [kp-3]) + (define-key news-fkey-prefix "u" [kp-5]) + (define-key news-fkey-prefix "w" [kp-7]) + (define-key news-fkey-prefix "y" [kp-9]) - ;; These aren't in either termcap or terminfo's repertoire - (define-key news-fkey-prefix "m" [kp-subtract]) - (define-key news-fkey-prefix "k" [kp-add]) - (define-key news-fkey-prefix "l" [kp-separator]) - (define-key news-fkey-prefix "n" [kp-decimal]) - (define-key news-fkey-prefix "p" [kp-0]) - (define-key news-fkey-prefix "r" [kp-2]) - (define-key news-fkey-prefix "t" [kp-4]) - (define-key news-fkey-prefix "v" [kp-6]) - (define-key news-fkey-prefix "x" [kp-8]) - ) + ;; These aren't in either termcap or terminfo's repertoire + (define-key news-fkey-prefix "m" [kp-subtract]) + (define-key news-fkey-prefix "k" [kp-add]) + (define-key news-fkey-prefix "l" [kp-separator]) + (define-key news-fkey-prefix "n" [kp-decimal]) + (define-key news-fkey-prefix "p" [kp-0]) + (define-key news-fkey-prefix "r" [kp-2]) + (define-key news-fkey-prefix "t" [kp-4]) + (define-key news-fkey-prefix "v" [kp-6]) + (define-key news-fkey-prefix "x" [kp-8]) + )) ;;; arch-tag: bfe141a0-623b-4b42-b753-5d9353776c5e ;;; news.el ends here diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 529903d06b0..bdaef8813e7 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -1,6 +1,7 @@ ;;; pc-win.el --- setup support for `PC windows' (whatever that is) -;; Copyright (C) 1994, 1996, 1997, 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1996, 1997, 1999, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> ;; Maintainer: FSF diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el index bb85c79f219..017dad2e7af 100644 --- a/lisp/term/rxvt.el +++ b/lisp/term/rxvt.el @@ -1,6 +1,6 @@ ;;; rxvt.el --- define function key sequences and standard colors for rxvt -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Keywords: terminals @@ -56,8 +56,10 @@ (define-key rxvt-function-map "\e[19~" [f8]) (define-key rxvt-function-map "\e[20~" [f9]) (define-key rxvt-function-map "\e[21~" [f10]) - (define-key rxvt-function-map "\e[23~" [f11]) - (define-key rxvt-function-map "\e[24~" [f12]) + ;; The strings emitted by f11 and f12 are the same as the strings + ;; emitted by S-f1 and S-f2, so don't define f11 and f12. + ;; (define-key rxvt-function-map "\e[23~" [f11]) + ;; (define-key rxvt-function-map "\e[24~" [f12]) (define-key rxvt-function-map "\e[29~" [print]) (define-key rxvt-function-map "\e[11^" [C-f1]) @@ -70,23 +72,42 @@ (define-key rxvt-function-map "\e[19^" [C-f8]) (define-key rxvt-function-map "\e[20^" [C-f9]) (define-key rxvt-function-map "\e[21^" [C-f10]) - (define-key rxvt-function-map "\e[23^" [C-f11]) - (define-key rxvt-function-map "\e[24^" [C-f12]) - (define-key rxvt-function-map "\e[29~" [print]) - - (define-key rxvt-function-map "\e[2;2~" [S-insert]) - (define-key rxvt-function-map "\e[3$" [S-delete]) + (define-key rxvt-function-map "\e[23~" [S-f1]) + (define-key rxvt-function-map "\e[24~" [S-f2]) + (define-key rxvt-function-map "\e[25~" [S-f3]) + (define-key rxvt-function-map "\e[26~" [S-f4]) + (define-key rxvt-function-map "\e[28~" [S-f5]) + (define-key rxvt-function-map "\e[29~" [S-f6]) + (define-key rxvt-function-map "\e[31~" [S-f7]) + (define-key rxvt-function-map "\e[32~" [S-f8]) + (define-key rxvt-function-map "\e[33~" [S-f9]) + (define-key rxvt-function-map "\e[34~" [S-f10]) + + (define-key rxvt-function-map "\e[23^" [C-S-f1]) + (define-key rxvt-function-map "\e[24^" [C-S-f2]) + (define-key rxvt-function-map "\e[25^" [C-S-f3]) + (define-key rxvt-function-map "\e[26^" [C-S-f4]) + (define-key rxvt-function-map "\e[28^" [C-S-f5]) + (define-key rxvt-function-map "\e[29^" [C-S-f6]) + (define-key rxvt-function-map "\e[31^" [C-S-f7]) + (define-key rxvt-function-map "\e[32^" [C-S-f8]) + (define-key rxvt-function-map "\e[33^" [C-S-f9]) + (define-key rxvt-function-map "\e[34^" [C-S-f10]) (define-key rxvt-function-map "\e[2^" [C-insert]) (define-key rxvt-function-map "\e[3^" [C-delete]) (define-key rxvt-function-map "\e[5^" [C-prior]) (define-key rxvt-function-map "\e[6^" [C-next]) + (define-key rxvt-function-map "\e[7^" [C-home]) + (define-key rxvt-function-map "\e[8^" [C-end]) (define-key rxvt-function-map "\eOd" [C-left]) (define-key rxvt-function-map "\eOc" [C-right]) (define-key rxvt-function-map "\eOa" [C-up]) (define-key rxvt-function-map "\eOb" [C-down]) + (define-key rxvt-function-map "\e[2;2~" [S-insert]) + (define-key rxvt-function-map "\e[3$" [S-delete]) (define-key rxvt-function-map "\e[5$" [S-prior]) (define-key rxvt-function-map "\e[6$" [S-next]) (define-key rxvt-function-map "\e[8$" [S-end]) @@ -96,13 +117,61 @@ (define-key rxvt-function-map "\e[a" [S-up]) (define-key rxvt-function-map "\e[b" [S-down])) -;; Use inheritance to let the main keymap override those defaults. -;; This way we don't override terminfo-derived settings or settings -;; made in the .emacs file. -(let ((m (copy-keymap rxvt-function-map))) - (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) - (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) - +(defun terminal-init-rxvt () + "Terminal initialization function for rxvt." + ;; The terminal intialization C code file might have initialized + ;; function keys F11->F42 from the termcap/terminfo information. On + ;; a PC-style keyboard these keys correspond to + ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C-, C-S-. The + ;; code here subsitutes the corresponding defintions in + ;; function-key-map. This substitution is needed because if a key + ;; definition if found in function-key-map, there are no further + ;; lookups in other keymaps. + (substitute-key-definition [f11] [S-f1] function-key-map) + (substitute-key-definition [f12] [S-f2] function-key-map) + (substitute-key-definition [f13] [S-f3] function-key-map) + (substitute-key-definition [f14] [S-f4] function-key-map) + (substitute-key-definition [f15] [S-f5] function-key-map) + (substitute-key-definition [f16] [S-f6] function-key-map) + (substitute-key-definition [f17] [S-f7] function-key-map) + (substitute-key-definition [f18] [S-f8] function-key-map) + (substitute-key-definition [f19] [S-f9] function-key-map) + (substitute-key-definition [f20] [S-f10] function-key-map) + + (substitute-key-definition [f23] [C-f1] function-key-map) + (substitute-key-definition [f24] [C-f2] function-key-map) + (substitute-key-definition [f25] [C-f3] function-key-map) + (substitute-key-definition [f26] [C-f4] function-key-map) + (substitute-key-definition [f27] [C-f5] function-key-map) + (substitute-key-definition [f28] [C-f6] function-key-map) + (substitute-key-definition [f29] [C-f7] function-key-map) + (substitute-key-definition [f30] [C-f8] function-key-map) + (substitute-key-definition [f31] [C-f9] function-key-map) + (substitute-key-definition [f32] [C-f10] function-key-map) + + (substitute-key-definition [f33] [C-S-f1] function-key-map) + (substitute-key-definition [f34] [C-S-f2] function-key-map) + (substitute-key-definition [f35] [C-S-f3] function-key-map) + (substitute-key-definition [f36] [C-S-f4] function-key-map) + (substitute-key-definition [f37] [C-S-f5] function-key-map) + (substitute-key-definition [f38] [C-S-f6] function-key-map) + (substitute-key-definition [f39] [C-S-f7] function-key-map) + (substitute-key-definition [f40] [C-S-f8] function-key-map) + (substitute-key-definition [f41] [C-S-f9] function-key-map) + (substitute-key-definition [f42] [C-S-f10] function-key-map) + + ;; Use inheritance to let the main keymap override those defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (let ((m (copy-keymap rxvt-function-map))) + (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) + (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) + + ;; Initialize colors and background mode. + (rxvt-register-default-colors) + (rxvt-set-background-mode) + ;; This recomputes all the default faces given the colors we've just set up. + (tty-set-up-initial-frame-faces)) ;; Set up colors, for those versions of rxvt that support it. (defvar rxvt-standard-colors @@ -176,11 +245,5 @@ for the currently selected frame." (setq default-frame-background-mode 'dark))) (frame-set-background-mode (selected-frame)))) -;; Do it! -(rxvt-register-default-colors) -(rxvt-set-background-mode) -;; This recomputes all the default faces given the colors we've just set up. -(tty-set-up-initial-frame-faces) - ;;; arch-tag: 20cf2fb6-6318-4bab-9dbf-1d15048f2257 ;;; rxvt.el ends here diff --git a/lisp/term/sun-mouse.el b/lisp/term/sun-mouse.el index d0126404a2b..a55c8902320 100644 --- a/lisp/term/sun-mouse.el +++ b/lisp/term/sun-mouse.el @@ -1,6 +1,6 @@ ;;; sun-mouse.el --- mouse handling for Sun windows -;; Copyright (C) 1987 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jeff Peck ;; Maintainer: FSF @@ -58,6 +58,11 @@ Setting to nil limits the scrollbar to the edge or vertical dividing bar.") "Returns a new mousemap." (cons 'mousemap nil)) +;;; initialize mouse maps +(defvar current-global-mousemap (make-mousemap)) +(defvar current-local-mousemap nil) +(make-variable-buffer-local 'current-local-mousemap) + (defun copy-mousemap (mousemap) "Return a copy of mousemap." (copy-alist mousemap)) @@ -668,13 +673,6 @@ just close the window, and wait for reopening." (if stuffstring (send-string-to-terminal stuffstring)) (send-string-to-terminal "\033[2t") ; To close EmacsTool window. (run-hooks 'suspend-resume-hook)) -;;; -;;; initialize mouse maps -;;; - -(make-variable-buffer-local 'current-local-mousemap) -(setq-default current-local-mousemap nil) -(defvar current-global-mousemap (make-mousemap)) (provide 'sun-mouse) (provide 'term/sun-mouse) ; have to (require 'term/sun-mouse) diff --git a/lisp/term/sun.el b/lisp/term/sun.el index 17018475514..38134d2cd49 100644 --- a/lisp/term/sun.el +++ b/lisp/term/sun.el @@ -1,6 +1,7 @@ ;;; sun.el --- keybinding for standard default sunterm keys -;; Copyright (C) 1987, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Jeff Peck <peck@sun.com> ;; Keywords: terminals @@ -93,58 +94,6 @@ ;; (defvar sun-raw-prefix (make-sparse-keymap)) -(define-key (terminal-local-value 'local-function-key-map nil) "\e[" sun-raw-prefix) - -(define-key sun-raw-prefix "210z" [r3]) -(define-key sun-raw-prefix "213z" [r6]) -(define-key sun-raw-prefix "214z" [r7]) -(define-key sun-raw-prefix "216z" [r9]) -(define-key sun-raw-prefix "218z" [r11]) -(define-key sun-raw-prefix "220z" [r13]) -(define-key sun-raw-prefix "222z" [r15]) -(define-key sun-raw-prefix "193z" [redo]) -(define-key sun-raw-prefix "194z" [props]) -(define-key sun-raw-prefix "195z" [undo]) -;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down -;; (define-key sun-raw-prefix "197z" [put]) -;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down -;; (define-key sun-raw-prefix "199z" [get]) -(define-key sun-raw-prefix "200z" [find]) -;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete -(define-key sun-raw-prefix "224z" [f1]) -(define-key sun-raw-prefix "225z" [f2]) -(define-key sun-raw-prefix "226z" [f3]) -(define-key sun-raw-prefix "227z" [f4]) -(define-key sun-raw-prefix "228z" [f5]) -(define-key sun-raw-prefix "229z" [f6]) -(define-key sun-raw-prefix "230z" [f7]) -(define-key sun-raw-prefix "231z" [f8]) -(define-key sun-raw-prefix "232z" [f9]) -(define-key sun-raw-prefix "233z" [f10]) -(define-key sun-raw-prefix "234z" [f11]) -(define-key sun-raw-prefix "235z" [f12]) -(define-key sun-raw-prefix "A" [up]) ; R8 -(define-key sun-raw-prefix "B" [down]) ; R14 -(define-key sun-raw-prefix "C" [right]) ; R12 -(define-key sun-raw-prefix "D" [left]) ; R10 - -(global-set-key [r3] 'backward-page) -(global-set-key [r6] 'forward-page) -(global-set-key [r7] 'beginning-of-buffer) -(global-set-key [r9] 'scroll-down) -(global-set-key [r11] 'recenter) -(global-set-key [r13] 'end-of-buffer) -(global-set-key [r15] 'scroll-up) -(global-set-key [redo] 'redraw-display) ;FIXME: collides with default. -(global-set-key [props] 'list-buffers) -(global-set-key [put] 'sun-select-region) -(global-set-key [get] 'sun-yank-selection) -(global-set-key [find] 'exchange-point-and-mark) -(global-set-key [f3] 'scroll-down-in-place) -(global-set-key [f4] 'scroll-up-in-place) -(global-set-key [f6] 'shrink-window) -(global-set-key [f7] 'enlarge-window) - ;; Since .emacs gets loaded before this file, a hook is supplied ;; for you to put your own bindings in. @@ -152,13 +101,6 @@ (defvar sun-raw-prefix-hooks nil "List of forms to evaluate after setting sun-raw-prefix.") -(when sun-raw-prefix-hooks - (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!") - (let ((hooks sun-raw-prefix-hooks)) - (while hooks - (eval (car hooks)) - (setq hooks (cdr hooks))))) - ;;; This section adds definitions for the emacstool users ;; emacstool event filter converts function keys to C-x*{c}{lrt} @@ -188,44 +130,6 @@ (defvar suntool-map (make-sparse-keymap) "*Keymap for Emacstool bindings.") -(define-key suntool-map "gr" 'beginning-of-buffer) ; r7 -(define-key suntool-map "iR" 'backward-page) ; R9 -(define-key suntool-map "ir" 'scroll-down) ; r9 -(define-key suntool-map "kr" 'recenter) ; r11 -(define-key suntool-map "mr" 'end-of-buffer) ; r13 -(define-key suntool-map "oR" 'forward-page) ; R15 -(define-key suntool-map "or" 'scroll-up) ; r15 -(define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN -(define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again -(define-key suntool-map "bl" 'redraw-display) ; Again -(define-key suntool-map "cl" 'list-buffers) ; Props -(define-key suntool-map "dl" 'undo) ; Undo -(define-key suntool-map "el" 'ignore) ; Expose-Open -(define-key suntool-map "fl" 'sun-select-region) ; Put -(define-key suntool-map "f," 'copy-region-as-kill) ; C-Put -(define-key suntool-map "gl" 'ignore) ; Open-Open -(define-key suntool-map "hl" 'sun-yank-selection) ; Get -(define-key suntool-map "h," 'yank) ; C-Get -(define-key suntool-map "il" 'research-forward) ; Find -(define-key suntool-map "i," 're-search-forward) ; C-Find -(define-key suntool-map "i\M-l" 'research-backward) ; M-Find -(define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find - -(define-key suntool-map "jL" 'yank) ; DELETE -(define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete -(define-key suntool-map "j\M-l" 'exchange-point-and-mark); M-Delete -(define-key suntool-map "j," - (lambda () (interactive) (pop-mark))) ; C-Delete - -(define-key suntool-map "fT" 'shrink-window-horizontally) ; T6 -(define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7 -(define-key suntool-map "ft" 'shrink-window) ; t6 -(define-key suntool-map "gt" 'enlarge-window) ; t7 -(define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n))) -(define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n))) -(define-key suntool-map "ct" 'scroll-down-in-place) ; t3 -(define-key suntool-map "dt" 'scroll-up-in-place) ; t4 -(define-key ctl-x-map "*" suntool-map) ;; Since .emacs gets loaded before this file, a hook is supplied ;; for you to put your own bindings in. @@ -233,13 +137,6 @@ (defvar suntool-map-hooks nil "List of forms to evaluate after setting suntool-map.") -(when suntool-map-hooks - (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!") - (let ((hooks suntool-map-hooks)) - (while hooks - (eval (car hooks)) - (setq hooks (cdr hooks))))) - ;; ;; If running under emacstool, arrange to call suspend-emacstool ;; instead of suspend-emacs. @@ -251,6 +148,115 @@ (autoload 'sun-mouse-handler "sun-mouse" "Sun Emacstool handler for mouse blips (not loaded)." t) +(defun terminal-init-sun () + "Terminal initialization function for sun." + (define-key (terminal-local-value 'local-function-key-map nil) "\e[" sun-raw-prefix) + + (define-key sun-raw-prefix "210z" [r3]) + (define-key sun-raw-prefix "213z" [r6]) + (define-key sun-raw-prefix "214z" [r7]) + (define-key sun-raw-prefix "216z" [r9]) + (define-key sun-raw-prefix "218z" [r11]) + (define-key sun-raw-prefix "220z" [r13]) + (define-key sun-raw-prefix "222z" [r15]) + (define-key sun-raw-prefix "193z" [redo]) + (define-key sun-raw-prefix "194z" [props]) + (define-key sun-raw-prefix "195z" [undo]) + ;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down + ;; (define-key sun-raw-prefix "197z" [put]) + ;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down + ;; (define-key sun-raw-prefix "199z" [get]) + (define-key sun-raw-prefix "200z" [find]) + ;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete + (define-key sun-raw-prefix "224z" [f1]) + (define-key sun-raw-prefix "225z" [f2]) + (define-key sun-raw-prefix "226z" [f3]) + (define-key sun-raw-prefix "227z" [f4]) + (define-key sun-raw-prefix "228z" [f5]) + (define-key sun-raw-prefix "229z" [f6]) + (define-key sun-raw-prefix "230z" [f7]) + (define-key sun-raw-prefix "231z" [f8]) + (define-key sun-raw-prefix "232z" [f9]) + (define-key sun-raw-prefix "233z" [f10]) + (define-key sun-raw-prefix "234z" [f11]) + (define-key sun-raw-prefix "235z" [f12]) + (define-key sun-raw-prefix "A" [up]) ; R8 + (define-key sun-raw-prefix "B" [down]) ; R14 + (define-key sun-raw-prefix "C" [right]) ; R12 + (define-key sun-raw-prefix "D" [left]) ; R10 + + (global-set-key [r3] 'backward-page) + (global-set-key [r6] 'forward-page) + (global-set-key [r7] 'beginning-of-buffer) + (global-set-key [r9] 'scroll-down) + (global-set-key [r11] 'recenter) + (global-set-key [r13] 'end-of-buffer) + (global-set-key [r15] 'scroll-up) + (global-set-key [redo] 'redraw-display) ;FIXME: collides with default. + (global-set-key [props] 'list-buffers) + (global-set-key [put] 'sun-select-region) + (global-set-key [get] 'sun-yank-selection) + (global-set-key [find] 'exchange-point-and-mark) + (global-set-key [f3] 'scroll-down-in-place) + (global-set-key [f4] 'scroll-up-in-place) + (global-set-key [f6] 'shrink-window) + (global-set-key [f7] 'enlarge-window) + + (when sun-raw-prefix-hooks + (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!") + (let ((hooks sun-raw-prefix-hooks)) + (while hooks + (eval (car hooks)) + (setq hooks (cdr hooks))))) + + (define-key suntool-map "gr" 'beginning-of-buffer) ; r7 + (define-key suntool-map "iR" 'backward-page) ; R9 + (define-key suntool-map "ir" 'scroll-down) ; r9 + (define-key suntool-map "kr" 'recenter) ; r11 + (define-key suntool-map "mr" 'end-of-buffer) ; r13 + (define-key suntool-map "oR" 'forward-page) ; R15 + (define-key suntool-map "or" 'scroll-up) ; r15 + (define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN + (define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again + (define-key suntool-map "bl" 'redraw-display) ; Again + (define-key suntool-map "cl" 'list-buffers) ; Props + (define-key suntool-map "dl" 'undo) ; Undo + (define-key suntool-map "el" 'ignore) ; Expose-Open + (define-key suntool-map "fl" 'sun-select-region) ; Put + (define-key suntool-map "f," 'copy-region-as-kill) ; C-Put + (define-key suntool-map "gl" 'ignore) ; Open-Open + (define-key suntool-map "hl" 'sun-yank-selection) ; Get + (define-key suntool-map "h," 'yank) ; C-Get + (define-key suntool-map "il" 'research-forward) ; Find + (define-key suntool-map "i," 're-search-forward) ; C-Find + (define-key suntool-map "i\M-l" 'research-backward) ; M-Find + (define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find + + (define-key suntool-map "jL" 'yank) ; DELETE + (define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete + (define-key suntool-map "j\M-l" 'exchange-point-and-mark) ; M-Delete + (define-key suntool-map "j," + (lambda () (interactive) (pop-mark))) ; C-Delete + + (define-key suntool-map "fT" 'shrink-window-horizontally) ; T6 + (define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7 + (define-key suntool-map "ft" 'shrink-window) ; t6 + (define-key suntool-map "gt" 'enlarge-window) ; t7 + (define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n))) + (define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n))) + (define-key suntool-map "ct" 'scroll-down-in-place) ; t3 + (define-key suntool-map "dt" 'scroll-up-in-place) ; t4 + (define-key ctl-x-map "*" suntool-map) + + (when suntool-map-hooks + (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!") + (let ((hooks suntool-map-hooks)) + (while hooks + (eval (car hooks)) + (setq hooks (cdr hooks))))) + + (define-key ctl-x-map "\C-@" 'sun-mouse-once)) + (defun emacstool-init () "Set up Emacstool window, if you know you are in an emacstool." ;; Make sure sun-mouse and sun-fns are loaded. @@ -272,7 +278,6 @@ (interactive) (emacstool-init) (sun-mouse-handler)) ; Now, execute this mouse blip. -(define-key ctl-x-map "\C-@" 'sun-mouse-once) ;;; arch-tag: db761d47-fd7d-42b4-aae1-04fa116b6ba6 ;;; sun.el ends here diff --git a/lisp/term/sup-mouse.el b/lisp/term/sup-mouse.el index cf4de575877..54da5b34505 100644 --- a/lisp/term/sup-mouse.el +++ b/lisp/term/sup-mouse.el @@ -1,6 +1,7 @@ ;;; sup-mouse.el --- supdup mouse support for lisp machines -;; Copyright (C) Free Software Foundation 1985, 1986 +;; Copyright (C) 1985, 1986, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Wolfgang Rupprecht ;; Maintainer: FSF diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el index 9a5eb5aa83f..6fcf5d3edba 100644 --- a/lisp/term/tty-colors.el +++ b/lisp/term/tty-colors.el @@ -1,6 +1,7 @@ ;;; tty-colors.el --- color support for character terminals -;; Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Maintainer: FSF @@ -61,6 +62,8 @@ ;;; Code: +(defvar msdos-color-values) + ;; The following list is taken from rgb.txt distributed with X. ;; ;; WARNING: Some colors, such as "lightred", do not appear in this diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el index 30bc6184d7a..8d8ef51c4a1 100644 --- a/lisp/term/tvi970.el +++ b/lisp/term/tvi970.el @@ -3,7 +3,7 @@ ;; Author: Jim Blandy <jimb@occs.cs.oberlin.edu>, January 1992 ;; Keywords: terminals -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -28,76 +28,80 @@ ;;; Code: -(or (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[") - (define-key (terminal-local-value 'local-function-key-map nil) "\e[" (make-keymap))) -;; (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO") -;; (define-key (terminal-local-value 'local-function-key-map nil) "\eO" (make-keymap))) - -;; Miscellaneous keys -(mapcar (function (lambda (key-binding) - (define-key (terminal-local-value 'local-function-key-map nil) - (car key-binding) (nth 1 key-binding)))) - '( - ;; These are set up by termcap or terminfo - ;; ("\eOP" [kp-f1]) - ;; ("\eOQ" [kp-f2]) - ;; ("\eOR" [kp-f3]) - ;; ("\eOS" [kp-f4]) - - ;; These might br set by terminfo - ("\e[H" [home]) - ("\e[Z" [backtab]) - ("\e[i" [print]) - ("\e[@" [insert]) - ("\e[L" [insertline]) - ("\e[M" [deleteline]) - ("\e[U" [next]) ;; actually the `page' key - - ;; These won't be set up by either - ("\eOm" [kp-subtract]) - ("\eOl" [kp-separator]) - ("\eOn" [kp-decimal]) - ("\eOM" [kp-enter]) - - ;; These won't be set up by either either - ("\e[K" [key_eol]) ;; Not an X keysym - ("\e[J" [key_eos]) ;; Not an X keysym - ("\e[2J" [key_clear]) ;; Not an X keysym - ("\e[P" [key_dc]) ;; Not an X keysym - ("\e[g" [S-tab]) ;; Not an X keysym - ("\e[2N" [clearentry]) ;; Not an X keysym - ("\e[2K" [S-clearentry]) ;; Not an X keysym - ("\e[E" [?\C-j]) ;; Not an X keysym - ("\e[g" [S-backtab]) ;; Not an X keysym - ("\e[?1i" [key_sprint]) ;; Not an X keysym - ("\e[4h" [key_sic]) ;; Not an X keysym - ("\e[4l" [S-delete]) ;; Not an X keysym - ("\e[Q" [S-insertline]) ;; Not an X keysym - ("\e[1Q" [key_sdl]) ;; Not an X keysym - ("\e[19l" [key_seol]) ;; Not an X keysym - ("\e[19h" [S-erasepage]) ;; Not an X keysym - ("\e[V" [S-page]) ;; Not an X keysym - ("\eS" [send]) ;; Not an X keysym - ("\e5" [S-send]) ;; Not an X keysym - )) - -;; The numeric keypad keys. -(let ((i 0)) - (while (< i 10) - (define-key (terminal-local-value 'local-function-key-map nil) - (format "\eO%c" (+ i ?p)) - (vector (intern (format "kp-%d" i)))) - (setq i (1+ i)))) -;; The numbered function keys. -(let ((i 0)) - (while (< i 16) - (define-key (terminal-local-value 'local-function-key-map nil) - (format "\e?%c" (+ i ?a)) - (vector (intern (format "f%d" (1+ i))))) - (define-key (terminal-local-value 'local-function-key-map nil) - (format "\e?%c" (+ i ?A)) - (vector (intern (format "S-f%d" (1+ i))))) - (setq i (1+ i)))) +(defun terminal-init-tvi970 () + "Terminal initialization function for tvi970." + (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[") + (define-key (terminal-local-value 'local-function-key-map nil) "\e[" (make-keymap))) + ;; (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO") + ;; (define-key (terminal-local-value 'local-function-key-map nil) "\eO" (make-keymap))) + + ;; Miscellaneous keys + (mapcar (function (lambda (key-binding) + (define-key (terminal-local-value 'local-function-key-map nil) + (car key-binding) (nth 1 key-binding)))) + '( + ;; These are set up by termcap or terminfo + ;; ("\eOP" [kp-f1]) + ;; ("\eOQ" [kp-f2]) + ;; ("\eOR" [kp-f3]) + ;; ("\eOS" [kp-f4]) + + ;; These might br set by terminfo + ("\e[H" [home]) + ("\e[Z" [backtab]) + ("\e[i" [print]) + ("\e[@" [insert]) + ("\e[L" [insertline]) + ("\e[M" [deleteline]) + ("\e[U" [next]) ;; actually the `page' key + + ;; These won't be set up by either + ("\eOm" [kp-subtract]) + ("\eOl" [kp-separator]) + ("\eOn" [kp-decimal]) + ("\eOM" [kp-enter]) + + ;; These won't be set up by either either + ("\e[K" [key_eol]) ;; Not an X keysym + ("\e[J" [key_eos]) ;; Not an X keysym + ("\e[2J" [key_clear]) ;; Not an X keysym + ("\e[P" [key_dc]) ;; Not an X keysym + ("\e[g" [S-tab]) ;; Not an X keysym + ("\e[2N" [clearentry]) ;; Not an X keysym + ("\e[2K" [S-clearentry]) ;; Not an X keysym + ("\e[E" [?\C-j]) ;; Not an X keysym + ("\e[g" [S-backtab]) ;; Not an X keysym + ("\e[?1i" [key_sprint]) ;; Not an X keysym + ("\e[4h" [key_sic]) ;; Not an X keysym + ("\e[4l" [S-delete]) ;; Not an X keysym + ("\e[Q" [S-insertline]) ;; Not an X keysym + ("\e[1Q" [key_sdl]) ;; Not an X keysym + ("\e[19l" [key_seol]) ;; Not an X keysym + ("\e[19h" [S-erasepage]) ;; Not an X keysym + ("\e[V" [S-page]) ;; Not an X keysym + ("\eS" [send]) ;; Not an X keysym + ("\e5" [S-send]) ;; Not an X keysym + )) + + ;; The numeric keypad keys. + (let ((i 0)) + (while (< i 10) + (define-key (terminal-local-value 'local-function-key-map nil) + (format "\eO%c" (+ i ?p)) + (vector (intern (format "kp-%d" i)))) + (setq i (1+ i)))) + ;; The numbered function keys. + (let ((i 0)) + (while (< i 16) + (define-key (terminal-local-value 'local-function-key-map nil) + (format "\e?%c" (+ i ?a)) + (vector (intern (format "f%d" (1+ i))))) + (define-key (terminal-local-value 'local-function-key-map nil) + (format "\e?%c" (+ i ?A)) + (vector (intern (format "S-f%d" (1+ i))))) + (setq i (1+ i)))) + + (tvi970-set-keypad-mode 1)) ;;; Should keypad numbers send ordinary digits or distinct escape sequences? @@ -121,7 +125,5 @@ With a negative argument, select numeric keypad mode." (> (prefix-numeric-value arg) 0))) (send-string-to-terminal (if tvi970-keypad-numeric "\e=" "\e>"))) -(tvi970-set-keypad-mode 1) - ;;; arch-tag: c1334cf0-1462-41c3-a963-c077d175f8f0 ;;; tvi970.el ends here diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el index dfe011c0f6e..9822bd6e5a2 100644 --- a/lisp/term/vt100.el +++ b/lisp/term/vt100.el @@ -1,6 +1,7 @@ ;;; vt100.el --- define VT100 function key sequences in function-key-map -;; Copyright (C) 1989, 1993 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals @@ -36,7 +37,10 @@ ;;; Code: ;; Set up function-key-map entries that termcap and terminfo don't know. -(load "term/lk201" nil t) + +(defun terminal-init-vt100 () + "Terminal initialization function for vt100." + (terminal-init-lk201)) ;;; Controlling the screen width. (defvar vt100-wide-mode (= (frame-width) 132) diff --git a/lisp/term/vt102.el b/lisp/term/vt102.el index 887f63837eb..ba4ac80c92a 100644 --- a/lisp/term/vt102.el +++ b/lisp/term/vt102.el @@ -1,6 +1,8 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) +(defun terminal-init-vt102 () + "Terminal initialization function for vt102." + (terminal-init-vt100)) ;;; arch-tag: 6e839cfc-125a-4574-82f1-c23a51f7c50f ;;; vt102.el ends here diff --git a/lisp/term/vt125.el b/lisp/term/vt125.el index 458e0dafc22..369dc5f28b9 100644 --- a/lisp/term/vt125.el +++ b/lisp/term/vt125.el @@ -1,6 +1,8 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) +(defun terminal-init-vt125 () + "Terminal initialization function for vt125." + (terminal-init-vt100)) ;;; arch-tag: 1d92d70f-dd55-4a1d-9088-e215a4883801 ;;; vt125.el ends here diff --git a/lisp/term/vt200.el b/lisp/term/vt200.el index e33b4f2905c..1d62e34759e 100644 --- a/lisp/term/vt200.el +++ b/lisp/term/vt200.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt200 () + "Terminal initialization function for vt200." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: 0f78f583-9f32-4237-b106-28bcfff21d89 ;;; vt200.el ends here diff --git a/lisp/term/vt201.el b/lisp/term/vt201.el index bd1f8c35453..c98b98ba8c0 100644 --- a/lisp/term/vt201.el +++ b/lisp/term/vt201.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt201 () + "Terminal initialization function for vt201." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: a6abb38f-60ea-449e-a9e9-3fb8572c52ae ;;; vt201.el ends here diff --git a/lisp/term/vt220.el b/lisp/term/vt220.el index de03b5f7495..a2a374692cb 100644 --- a/lisp/term/vt220.el +++ b/lisp/term/vt220.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt220 () + "Terminal initialization function for vt220." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: 98fc4867-a20d-46a1-a276-d7be31e49871 ;;; vt220.el ends here diff --git a/lisp/term/vt240.el b/lisp/term/vt240.el index f54b47efa58..808cc072041 100644 --- a/lisp/term/vt240.el +++ b/lisp/term/vt240.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt240 () + "Terminal initialization function for vt240." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: d9f88e9c-02dc-49ff-871c-a415f08e4eb7 ;;; vt240.el ends here diff --git a/lisp/term/vt300.el b/lisp/term/vt300.el index 8af8940b1ff..593daf55249 100644 --- a/lisp/term/vt300.el +++ b/lisp/term/vt300.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt300 () + "Terminal initialization function for vt300." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: 876831c9-a6f2-444a-b033-706e6fbc149f ;;; vt300.el ends here diff --git a/lisp/term/vt320.el b/lisp/term/vt320.el index 38da9f795db..a4d2186080e 100644 --- a/lisp/term/vt320.el +++ b/lisp/term/vt320.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt320 () + "Terminal initialization function for vt320." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: f9f4c954-0b9e-45f9-b450-a320d32abd9c ;;; vt320.el ends here diff --git a/lisp/term/vt400.el b/lisp/term/vt400.el index 1e77851ce51..bb0afeef0b7 100644 --- a/lisp/term/vt400.el +++ b/lisp/term/vt400.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt400 () + "Terminal initialization function for vt400." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: a70809c5-6b21-42cc-ba20-536683e5e7d5 ;;; vt400.el ends here diff --git a/lisp/term/vt420.el b/lisp/term/vt420.el index cac216d6823..b67b25b7bd9 100644 --- a/lisp/term/vt420.el +++ b/lisp/term/vt420.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]) +(defun terminal-init-vt420 + "Terminal initialization function for vt420." + (terminal-init-vt100) + ;; Make F11 an escape key. + (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])) ;;; arch-tag: df2f897c-3a12-4b3c-9259-df089f96c160 ;;; vt420.el ends here diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 844fc087dcf..ffa7d606a95 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -1,6 +1,7 @@ ;;; w32-win.el --- parse switches controlling interface with W32 window system -;; Copyright (C) 1993, 1994, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallo ;; Keywords: terminals @@ -79,6 +80,8 @@ (require 'dnd) (require 'code-pages) +(defvar xlfd-regexp-registry-subnum) + ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles (if (fboundp 'new-fontset) (require 'fontset)) @@ -108,8 +111,8 @@ Switch to a buffer editing the last file dropped." (y (cdr coords))) (if (and (> x 0) (> y 0)) (set-frame-selected-window nil window)) - (mapcar (lambda (file-name) - (dnd-handle-one-url window 'private + (mapcar (lambda (file-name) + (dnd-handle-one-url window 'private (concat "file:" file-name))) (car (cdr (cdr event))))) (raise-frame))) diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el index b41cd9d10b9..9ab9cb0f6ed 100644 --- a/lisp/term/wyse50.el +++ b/lisp/term/wyse50.el @@ -1,6 +1,7 @@ ;;; wyse50.el --- terminal support code for Wyse 50 -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org>, ;; Jim Blandy <jimb@occs.cs.oberlin.edu> @@ -37,74 +38,92 @@ ;;; Code: -(define-key (terminal-local-value 'local-function-key-map nil) "\C-a" (make-keymap)) -(mapcar (function (lambda (key-definition) - (define-key (terminal-local-value 'local-function-key-map nil) - (car key-definition) (nth 1 key-definition)))) - '( - ;; These might be set up by termcap and terminfo - ("\C-k" [up]) - ("\C-j" [down]) - ("\C-l" [right]) - ("\C-h" [left]) - ("\^a@\^m" [f1]) - ("\^aA\^m" [f2]) - ("\^aB\^m" [f3]) - ("\^aC\^m" [f4]) - ("\^aD\^m" [f5]) - ("\^aE\^m" [f6]) - ("\^aF\^m" [f7]) - ("\^aG\^m" [f8]) - ("\^aH\^m" [f9]) - - ;; These might be set up by terminfo - ("\eK" [next]) - ("\eT" [clearline]) - ("\^^" [home]) - ("\e\^^" [end]) - ("\eQ" [insert]) - ("\eE" [insertline]) - ("\eR" [deleteline]) - ("\eP" [print]) - ("\er" [replace]) - ("\^aI\^m" [f10]) - ("\^aJ\^m" [f11]) - ("\^aK\^m" [f12]) - ("\^aL\^m" [f13]) - ("\^aM\^m" [f14]) - ("\^aN\^m" [f15]) - ("\^aO\^m" [f16]) - ("\^a`\^m" [f17]) - ("\^aa\^m" [f18]) - ("\^ab\^m" [f19]) - ("\^ac\^m" [f20]) - ("\^ad\^m" [f21]) - ("\^ae\^m" [f22]) - ("\^af\^m" [f23]) - ("\^ag\^m" [f24]) - ("\^ah\^m" [f25]) - ("\^ai\^m" [f26]) - ("\^aj\^m" [f27]) - ("\^ak\^m" [f28]) - ("\^al\^m" [f29]) - ("\^am\^m" [f30]) - ("\^an\^m" [f31]) - ("\^ao\^m" [f32]) - - ;; Terminfo may know about these, but X won't - ("\eI" [key-stab]) ;; Not an X keysym - ("\eJ" [key-snext]) ;; Not an X keysym - ("\eY" [key-clear]) ;; Not an X keysym - - ;; These are totally strange :-) - ("\eW" [?\C-?]) ;; Not an X keysym - ("\^a\^k\^m" [funct-up]) ;; Not an X keysym - ("\^a\^j\^m" [funct-down]) ;; Not an X keysym - ("\^a\^l\^m" [funct-right]) ;; Not an X keysym - ("\^a\^h\^m" [funct-left]) ;; Not an X keysym - ("\^a\^m\^m" [funct-return]) ;; Not an X keysym - ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym -)) +(defun terminal-init-wyse50 () + "Terminal initialization function for wyse50." + (define-key (terminal-local-value 'local-function-key-map nil) "\C-a" (make-keymap)) + (mapcar (function (lambda (key-definition) + (define-key (terminal-local-value 'local-function-key-map nil) + (car key-definition) (nth 1 key-definition)))) + '( + ;; These might be set up by termcap and terminfo + ("\C-k" [up]) + ("\C-j" [down]) + ("\C-l" [right]) + ("\C-h" [left]) + ("\^a@\^m" [f1]) + ("\^aA\^m" [f2]) + ("\^aB\^m" [f3]) + ("\^aC\^m" [f4]) + ("\^aD\^m" [f5]) + ("\^aE\^m" [f6]) + ("\^aF\^m" [f7]) + ("\^aG\^m" [f8]) + ("\^aH\^m" [f9]) + + ;; These might be set up by terminfo + ("\eK" [next]) + ("\eT" [clearline]) + ("\^^" [home]) + ("\e\^^" [end]) + ("\eQ" [insert]) + ("\eE" [insertline]) + ("\eR" [deleteline]) + ("\eP" [print]) + ("\er" [replace]) + ("\^aI\^m" [f10]) + ("\^aJ\^m" [f11]) + ("\^aK\^m" [f12]) + ("\^aL\^m" [f13]) + ("\^aM\^m" [f14]) + ("\^aN\^m" [f15]) + ("\^aO\^m" [f16]) + ("\^a`\^m" [f17]) + ("\^aa\^m" [f18]) + ("\^ab\^m" [f19]) + ("\^ac\^m" [f20]) + ("\^ad\^m" [f21]) + ("\^ae\^m" [f22]) + ("\^af\^m" [f23]) + ("\^ag\^m" [f24]) + ("\^ah\^m" [f25]) + ("\^ai\^m" [f26]) + ("\^aj\^m" [f27]) + ("\^ak\^m" [f28]) + ("\^al\^m" [f29]) + ("\^am\^m" [f30]) + ("\^an\^m" [f31]) + ("\^ao\^m" [f32]) + + ;; Terminfo may know about these, but X won't + ("\eI" [key-stab]) ;; Not an X keysym + ("\eJ" [key-snext]) ;; Not an X keysym + ("\eY" [key-clear]) ;; Not an X keysym + + ;; These are totally strange :-) + ("\eW" [?\C-?]) ;; Not an X keysym + ("\^a\^k\^m" [funct-up]) ;; Not an X keysym + ("\^a\^j\^m" [funct-down]) ;; Not an X keysym + ("\^a\^l\^m" [funct-right]) ;; Not an X keysym + ("\^a\^h\^m" [funct-left]) ;; Not an X keysym + ("\^a\^m\^m" [funct-return]) ;; Not an X keysym + ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym + )) + + ;; Miscellaneous hacks + + ;; This is an ugly hack for a nasty problem: + ;; Wyse 50 takes one character cell to store video attributes (which seems to + ;; explain width 79 rather than 80, column 1 is not used!!!). + ;; On killing (C-x C-c) the end inverse code (on column 1 of line 24) + ;; of the mode line is overwritten AFTER all the y-or-n questions. + ;; This causes the attribute to remain in effect until the mode line has + ;; scrolled of the screen. Suspending (C-z) does not cause this problem. + ;; On such terminals, Emacs should sacrifice the first and last character of + ;; each mode line, rather than a whole screen column! + (add-hook 'kill-emacs-hook + (function (lambda () (interactive) + (send-string-to-terminal + (concat "\ea23R" (1+ (frame-width)) "C\eG0")))))) (defun enable-arrow-keys () "To be called by term-setup-hook. Overrides 6 Emacs standard keys @@ -131,22 +150,5 @@ M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar ("\er" nil))) (fset 'enable-arrow-keys nil)) - -;;; Miscellaneous hacks - -;;; This is an ugly hack for a nasty problem: -;;; Wyse 50 takes one character cell to store video attributes (which seems to -;;; explain width 79 rather than 80, column 1 is not used!!!). -;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24) -;;; of the mode line is overwritten AFTER all the y-or-n questions. -;;; This causes the attribute to remain in effect until the mode line has -;;; scrolled of the screen. Suspending (C-z) does not cause this problem. -;;; On such terminals, Emacs should sacrifice the first and last character of -;;; each mode line, rather than a whole screen column! -(add-hook 'kill-emacs-hook - (function (lambda () (interactive) - (send-string-to-terminal - (concat "\ea23R" (1+ (frame-width)) "C\eG0"))))) - ;;; arch-tag: b6a05d37-eead-4cf6-b997-0f956c68881c ;;; wyse50.el ends here diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 681bb5e6005..efafbafffb2 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1,6 +1,7 @@ ;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 1993, 1994, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals, i18n @@ -86,6 +87,10 @@ (require 'server) (defvar x-invocation-args) +(defvar x-keysym-table) +(defvar x-selection-timeout) +(defvar x-session-id) +(defvar x-session-previous-id) (defvar x-command-line-resources nil) diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index eb511201fc5..43d95e1dee7 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -1,6 +1,6 @@ ;;; xterm.el --- define function key sequences and standard colors for xterm -;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals @@ -31,151 +31,144 @@ (defvar xterm-function-map nil "Function key map overrides for xterm.") -;; The terminal intialization C code file might have initialized -;; function keys F13->F60 from the termcap/terminfo information. On -;; a PC-style keyboard these keys correspond to -;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The -;; code here subsitutes the corresponding defintions in -;; function-key-map. This substitution is needed because if a key -;; definition if found in function-key-map, there are no further -;; lookups in other keymaps. -(let ((m (terminal-local-value 'local-function-key-map nil))) - (substitute-key-definition [f13] [S-f1] m) - (substitute-key-definition [f14] [S-f2] m) - (substitute-key-definition [f15] [S-f3] m) - (substitute-key-definition [f16] [S-f4] m) - (substitute-key-definition [f17] [S-f5] m) - (substitute-key-definition [f18] [S-f6] m) - (substitute-key-definition [f19] [S-f7] m) - (substitute-key-definition [f20] [S-f8] m) - (substitute-key-definition [f21] [S-f9] m) - (substitute-key-definition [f22] [S-f10] m) - (substitute-key-definition [f23] [S-f11] m) - (substitute-key-definition [f24] [S-f12] m) - - (substitute-key-definition [f25] [C-f1] m) - (substitute-key-definition [f26] [C-f2] m) - (substitute-key-definition [f27] [C-f3] m) - (substitute-key-definition [f28] [C-f4] m) - (substitute-key-definition [f29] [C-f5] m) - (substitute-key-definition [f30] [C-f6] m) - (substitute-key-definition [f31] [C-f7] m) - (substitute-key-definition [f32] [C-f8] m) - (substitute-key-definition [f33] [C-f9] m) - (substitute-key-definition [f34] [C-f10] m) - (substitute-key-definition [f35] [C-f11] m) - (substitute-key-definition [f36] [C-f12] m) - - (substitute-key-definition [f37] [C-S-f1] m) - (substitute-key-definition [f38] [C-S-f2] m) - (substitute-key-definition [f39] [C-S-f3] m) - (substitute-key-definition [f40] [C-S-f4] m) - (substitute-key-definition [f41] [C-S-f5] m) - (substitute-key-definition [f42] [C-S-f6] m) - (substitute-key-definition [f43] [C-S-f7] m) - (substitute-key-definition [f44] [C-S-f8] m) - (substitute-key-definition [f45] [C-S-f9] m) - (substitute-key-definition [f46] [C-S-f10] m) - (substitute-key-definition [f47] [C-S-f11] m) - (substitute-key-definition [f48] [C-S-f12] m) - - (substitute-key-definition [f49] [A-f1] m) - (substitute-key-definition [f50] [A-f2] m) - (substitute-key-definition [f51] [A-f3] m) - (substitute-key-definition [f52] [A-f4] m) - (substitute-key-definition [f53] [A-f5] m) - (substitute-key-definition [f54] [A-f6] m) - (substitute-key-definition [f55] [A-f7] m) - (substitute-key-definition [f56] [A-f8] m) - (substitute-key-definition [f57] [A-f9] m) - (substitute-key-definition [f58] [A-f10] m) - (substitute-key-definition [f59] [A-f11] m) - (substitute-key-definition [f60] [A-f12] m)) - ;; Make reloads faster. (unless xterm-function-map (setq xterm-function-map (make-sparse-keymap)) - + ;; xterm from X.org 6.8.2 uses these key definitions. + (define-key map "\eOP" [f1]) + (define-key map "\eOQ" [f2]) + (define-key map "\eOR" [f3]) + (define-key map "\eOS" [f4]) + (define-key map "\e[15~" [f5]) + (define-key map "\e[17~" [f6]) + (define-key map "\e[18~" [f7]) + (define-key map "\e[19~" [f8]) + (define-key map "\e[20~" [f9]) + (define-key map "\e[21~" [f10]) + (define-key map "\e[23~" [f11]) + (define-key map "\e[24~" [f12]) + + (define-key map "\eO2P" [S-f1]) + (define-key map "\eO2Q" [S-f2]) + (define-key map "\eO2R" [S-f3]) + (define-key map "\eO2S" [S-f4]) + (define-key map "\e[15;2~" [S-f5]) + (define-key map "\e[17;2~" [S-f6]) + (define-key map "\e[18;2~" [S-f7]) + (define-key map "\e[19;2~" [S-f8]) + (define-key map "\e[20;2~" [S-f9]) + (define-key map "\e[21;2~" [S-f10]) + (define-key map "\e[23;2~" [S-f11]) + (define-key map "\e[24;2~" [S-f12]) + + (define-key map "\eO5P" [C-f1]) + (define-key map "\eO5Q" [C-f2]) + (define-key map "\eO5R" [C-f3]) + (define-key map "\eO5S" [C-f4]) + (define-key map "\e[15;5~" [C-f5]) + (define-key map "\e[17;5~" [C-f6]) + (define-key map "\e[18;5~" [C-f7]) + (define-key map "\e[19;5~" [C-f8]) + (define-key map "\e[20;5~" [C-f9]) + (define-key map "\e[21;5~" [C-f10]) + (define-key map "\e[23;5~" [C-f11]) + (define-key map "\e[24;5~" [C-f12]) + + (define-key map "\eO6P" [C-S-f1]) + (define-key map "\eO6Q" [C-S-f2]) + (define-key map "\eO6R" [C-S-f3]) + (define-key map "\eO6S" [C-S-f4]) + (define-key map "\e[15;6~" [C-S-f5]) + (define-key map "\e[17;6~" [C-S-f6]) + (define-key map "\e[18;6~" [C-S-f7]) + (define-key map "\e[19;6~" [C-S-f8]) + (define-key map "\e[20;6~" [C-S-f9]) + (define-key map "\e[21;6~" [C-S-f10]) + (define-key map "\e[23;6~" [C-S-f11]) + (define-key map "\e[24;6~" [C-S-f12]) + + (define-key map "\eO3P" [A-f1]) + (define-key map "\eO3Q" [A-f2]) + (define-key map "\eO3R" [A-f3]) + (define-key map "\eO3S" [A-f4]) + (define-key map "\e[15;3~" [A-f5]) + (define-key map "\e[17;3~" [A-f6]) + (define-key map "\e[18;3~" [A-f7]) + (define-key map "\e[19;3~" [A-f8]) + (define-key map "\e[20;3~" [A-f9]) + (define-key map "\e[21;3~" [A-f10]) + (define-key map "\e[23;3~" [A-f11]) + (define-key map "\e[24;3~" [A-f12]) + + (define-key map "\eOA" [up]) + (define-key map "\eOB" [down]) + (define-key map "\eOC" [right]) + (define-key map "\eOD" [left]) + (define-key map "\eOF" [end]) + (define-key map "\eOH" [home]) + + (define-key map "\e[1;2A" [S-up]) + (define-key map "\e[1;2B" [S-down]) + (define-key map "\e[1;2C" [S-right]) + (define-key map "\e[1;2D" [S-left]) + (define-key map "\e[1;2F" [S-end]) + (define-key map "\e[1;2H" [S-home]) + + (define-key map "\e[1;5A" [C-up]) + (define-key map "\e[1;5B" [C-down]) + (define-key map "\e[1;5C" [C-right]) + (define-key map "\e[1;5D" [C-left]) + (define-key map "\e[1;5F" [C-end]) + (define-key map "\e[1;5H" [C-home]) + + (define-key map "\e[1;6A" [C-S-up]) + (define-key map "\e[1;6B" [C-S-down]) + (define-key map "\e[1;6C" [C-S-right]) + (define-key map "\e[1;6D" [C-S-left]) + (define-key map "\e[1;6F" [C-S-end]) + (define-key map "\e[1;6H" [C-S-home]) + + (define-key map "\e[1;3A" [A-up]) + (define-key map "\e[1;3B" [A-down]) + (define-key map "\e[1;3C" [A-right]) + (define-key map "\e[1;3D" [A-left]) + (define-key map "\e[1;3F" [A-end]) + (define-key map "\e[1;3H" [A-home]) + + (define-key map "\e[2~" [insert]) + (define-key map "\e[3~" [delete]) + (define-key map "\e[5~" [prior]) + (define-key map "\e[6~" [next]) + + (define-key map "\e[2;2~" [S-insert]) + (define-key map "\e[3;2~" [S-delete]) + (define-key map "\e[5;2~" [S-prior]) + (define-key map "\e[6;2~" [S-next]) + + (define-key map "\e[2;5~" [C-insert]) + (define-key map "\e[3;5~" [C-delete]) + (define-key map "\e[5;5~" [C-prior]) + (define-key map "\e[6;5~" [C-next]) + + (define-key map "\e[2;6~" [C-S-insert]) + (define-key map "\e[3;6~" [C-S-delete]) + (define-key map "\e[5;6~" [C-S-prior]) + (define-key map "\e[6;6~" [C-S-next]) + + (define-key map "\e[2;3~" [A-insert]) + (define-key map "\e[3;3~" [A-delete]) + (define-key map "\e[5;3~" [A-prior]) + (define-key map "\e[6;3~" [A-next]) + + (define-key map "\e[4~" [select]) + (define-key map "\e[29~" [print]) + + ;; Other versions of xterm might emit these. (define-key xterm-function-map "\e[A" [up]) (define-key xterm-function-map "\e[B" [down]) (define-key xterm-function-map "\e[C" [right]) (define-key xterm-function-map "\e[D" [left]) (define-key xterm-function-map "\e[1~" [home]) - (define-key xterm-function-map "\e[2~" [insert]) - (define-key xterm-function-map "\e[3~" [delete]) - (define-key xterm-function-map "\e[4~" [select]) - (define-key xterm-function-map "\e[5~" [prior]) - (define-key xterm-function-map "\e[6~" [next]) - (define-key xterm-function-map "\e[11~" [f1]) - (define-key xterm-function-map "\e[12~" [f2]) - (define-key xterm-function-map "\e[13~" [f3]) - (define-key xterm-function-map "\e[14~" [f4]) - (define-key xterm-function-map "\e[15~" [f5]) - (define-key xterm-function-map "\e[17~" [f6]) - (define-key xterm-function-map "\e[18~" [f7]) - (define-key xterm-function-map "\e[19~" [f8]) - (define-key xterm-function-map "\e[20~" [f9]) - (define-key xterm-function-map "\e[21~" [f10]) - (define-key xterm-function-map "\e[23~" [f11]) - (define-key xterm-function-map "\e[24~" [f12]) - (define-key xterm-function-map "\e[29~" [print]) - - (define-key xterm-function-map "\eOP" [f1]) - (define-key xterm-function-map "\eOQ" [f2]) - (define-key xterm-function-map "\eOR" [f3]) - (define-key xterm-function-map "\eOS" [f4]) - - (define-key xterm-function-map "\eO2P" [S-f1]) - (define-key xterm-function-map "\eO2Q" [S-f2]) - (define-key xterm-function-map "\eO2R" [S-f3]) - (define-key xterm-function-map "\eO2S" [S-f4]) - (define-key xterm-function-map "\e[15;2~" [S-f5]) - (define-key xterm-function-map "\e[17;2~" [S-f6]) - (define-key xterm-function-map "\e[18;2~" [S-f7]) - (define-key xterm-function-map "\e[19;2~" [S-f8]) - (define-key xterm-function-map "\e[20;2~" [S-f9]) - (define-key xterm-function-map "\e[21;2~" [S-f10]) - (define-key xterm-function-map "\e[23;2~" [S-f11]) - (define-key xterm-function-map "\e[24;2~" [S-f12]) - - (define-key xterm-function-map "\eO5P" [C-f1]) - (define-key xterm-function-map "\eO5Q" [C-f2]) - (define-key xterm-function-map "\eO5R" [C-f3]) - (define-key xterm-function-map "\eO5S" [C-f4]) - (define-key xterm-function-map "\e[15;5~" [C-f5]) - (define-key xterm-function-map "\e[17;5~" [C-f6]) - (define-key xterm-function-map "\e[18;5~" [C-f7]) - (define-key xterm-function-map "\e[19;5~" [C-f8]) - (define-key xterm-function-map "\e[20;5~" [C-f9]) - (define-key xterm-function-map "\e[21;5~" [C-f10]) - (define-key xterm-function-map "\e[23;5~" [C-f11]) - (define-key xterm-function-map "\e[24;5~" [C-f12]) - - (define-key xterm-function-map "\eO6P" [C-S-f1]) - (define-key xterm-function-map "\eO6Q" [C-S-f2]) - (define-key xterm-function-map "\eO6R" [C-S-f3]) - (define-key xterm-function-map "\eO6S" [C-S-f4]) - (define-key xterm-function-map "\e[15;6~" [C-S-f5]) - (define-key xterm-function-map "\e[17;6~" [C-S-f6]) - (define-key xterm-function-map "\e[18;6~" [C-S-f7]) - (define-key xterm-function-map "\e[19;6~" [C-S-f8]) - (define-key xterm-function-map "\e[20;6~" [C-S-f9]) - (define-key xterm-function-map "\e[21;6~" [C-S-f10]) - (define-key xterm-function-map "\e[23;6~" [C-S-f11]) - (define-key xterm-function-map "\e[24;6~" [C-S-f12]) - - (define-key xterm-function-map "\eO3P" [A-f1]) - (define-key xterm-function-map "\eO3Q" [A-f2]) - (define-key xterm-function-map "\eO3R" [A-f3]) - (define-key xterm-function-map "\eO3S" [A-f4]) - (define-key xterm-function-map "\e[15;3~" [A-f5]) - (define-key xterm-function-map "\e[17;3~" [A-f6]) - (define-key xterm-function-map "\e[18;3~" [A-f7]) - (define-key xterm-function-map "\e[19;3~" [A-f8]) - (define-key xterm-function-map "\e[20;3~" [A-f9]) - (define-key xterm-function-map "\e[21;3~" [A-f10]) - (define-key xterm-function-map "\e[23;3~" [A-f11]) - (define-key xterm-function-map "\e[24;3~" [A-f12]) (define-key xterm-function-map "\e[1;2A" [S-up]) (define-key xterm-function-map "\e[1;2B" [S-down]) @@ -191,67 +184,94 @@ (define-key xterm-function-map "\e[1;5F" [C-end]) (define-key xterm-function-map "\e[1;5H" [C-home]) - (define-key xterm-function-map "\e[1;6A" [C-S-up]) - (define-key xterm-function-map "\e[1;6B" [C-S-down]) - (define-key xterm-function-map "\e[1;6C" [C-S-right]) - (define-key xterm-function-map "\e[1;6D" [C-S-left]) - (define-key xterm-function-map "\e[1;6F" [C-S-end]) - (define-key xterm-function-map "\e[1;6H" [C-S-home]) - - (define-key xterm-function-map "\e[1;3A" [A-up]) - (define-key xterm-function-map "\e[1;3B" [A-down]) - (define-key xterm-function-map "\e[1;3C" [A-right]) - (define-key xterm-function-map "\e[1;3D" [A-left]) - (define-key xterm-function-map "\e[1;3F" [A-end]) - (define-key xterm-function-map "\e[1;3H" [A-home]) - - (define-key xterm-function-map "\e[2;2~" [S-insert]) - (define-key xterm-function-map "\e[3;2~" [S-delete]) - (define-key xterm-function-map "\e[5;2~" [S-prior]) - (define-key xterm-function-map "\e[6;2~" [S-next]) - - (define-key xterm-function-map "\e[2;5~" [C-insert]) - (define-key xterm-function-map "\e[3;5~" [C-delete]) - (define-key xterm-function-map "\e[5;5~" [C-prior]) - (define-key xterm-function-map "\e[6;5~" [C-next]) - - (define-key xterm-function-map "\e[2;6~" [C-S-insert]) - (define-key xterm-function-map "\e[3;6~" [C-S-delete]) - (define-key xterm-function-map "\e[5;6~" [C-S-prior]) - (define-key xterm-function-map "\e[6;6~" [C-S-next]) - - (define-key xterm-function-map "\e[2;3~" [A-insert]) - (define-key xterm-function-map "\e[3;3~" [A-delete]) - (define-key xterm-function-map "\e[5;3~" [A-prior]) - (define-key xterm-function-map "\e[6;3~" [A-next]) - - (define-key xterm-function-map "\eOA" [up]) - (define-key xterm-function-map "\eOB" [down]) - (define-key xterm-function-map "\eOC" [right]) - (define-key xterm-function-map "\eOD" [left]) - (define-key xterm-function-map "\eOF" [end]) - (define-key xterm-function-map "\eOH" [home]) - - (define-key xterm-function-map "\eO2A" [S-up]) - (define-key xterm-function-map "\eO2B" [S-down]) - (define-key xterm-function-map "\eO2C" [S-right]) - (define-key xterm-function-map "\eO2D" [S-left]) - (define-key xterm-function-map "\eO2F" [S-end]) - (define-key xterm-function-map "\eO2H" [S-home]) - - (define-key xterm-function-map "\eO5A" [C-up]) - (define-key xterm-function-map "\eO5B" [C-down]) - (define-key xterm-function-map "\eO5C" [C-right]) - (define-key xterm-function-map "\eO5D" [C-left]) - (define-key xterm-function-map "\eO5F" [C-end]) - (define-key xterm-function-map "\eO5H" [C-home])) - -;; Use inheritance to let the main keymap override those defaults. -;; This way we don't override terminfo-derived settings or settings -;; made in the .emacs file. -(let ((m (copy-keymap xterm-function-map))) - (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) - (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) + (define-key map "\e[11~" [f1]) + (define-key map "\e[12~" [f2]) + (define-key map "\e[13~" [f3]) + (define-key map "\e[14~" [f4])) + +(defun terminal-init-xterm () + "Terminal initialization function for xterm." + ;; rxvt terminals sometimes set the TERM variable to "xterm", but + ;; rxvt's keybindings that are incompatible with xterm's. It is + ;; better in that case to use rxvt's initializion function. + (if (and (server-getenv "COLORTERM") + (string-match "\\`rxvt" (server-getenv "COLORTERM"))) + (progn + (eval-when-compile (load "term/rxvt")) + (terminal-init-rxvt)) + + ;; The terminal intialization C code file might have initialized + ;; function keys F13->F60 from the termcap/terminfo information. On + ;; a PC-style keyboard these keys correspond to + ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The + ;; code here subsitutes the corresponding defintions in + ;; function-key-map. This substitution is needed because if a key + ;; definition if found in function-key-map, there are no further + ;; lookups in other keymaps. + (let ((m (terminal-local-value 'local-function-key-map nil))) + (substitute-key-definition [f13] [S-f1] m) + (substitute-key-definition [f14] [S-f2] m) + (substitute-key-definition [f15] [S-f3] m) + (substitute-key-definition [f16] [S-f4] m) + (substitute-key-definition [f17] [S-f5] m) + (substitute-key-definition [f18] [S-f6] m) + (substitute-key-definition [f19] [S-f7] m) + (substitute-key-definition [f20] [S-f8] m) + (substitute-key-definition [f21] [S-f9] m) + (substitute-key-definition [f22] [S-f10] m) + (substitute-key-definition [f23] [S-f11] m) + (substitute-key-definition [f24] [S-f12] m) + + (substitute-key-definition [f25] [C-f1] m) + (substitute-key-definition [f26] [C-f2] m) + (substitute-key-definition [f27] [C-f3] m) + (substitute-key-definition [f28] [C-f4] m) + (substitute-key-definition [f29] [C-f5] m) + (substitute-key-definition [f30] [C-f6] m) + (substitute-key-definition [f31] [C-f7] m) + (substitute-key-definition [f32] [C-f8] m) + (substitute-key-definition [f33] [C-f9] m) + (substitute-key-definition [f34] [C-f10] m) + (substitute-key-definition [f35] [C-f11] m) + (substitute-key-definition [f36] [C-f12] m) + + (substitute-key-definition [f37] [C-S-f1] m) + (substitute-key-definition [f38] [C-S-f2] m) + (substitute-key-definition [f39] [C-S-f3] m) + (substitute-key-definition [f40] [C-S-f4] m) + (substitute-key-definition [f41] [C-S-f5] m) + (substitute-key-definition [f42] [C-S-f6] m) + (substitute-key-definition [f43] [C-S-f7] m) + (substitute-key-definition [f44] [C-S-f8] m) + (substitute-key-definition [f45] [C-S-f9] m) + (substitute-key-definition [f46] [C-S-f10] m) + (substitute-key-definition [f47] [C-S-f11] m) + (substitute-key-definition [f48] [C-S-f12] m) + + (substitute-key-definition [f49] [A-f1] m) + (substitute-key-definition [f50] [A-f2] m) + (substitute-key-definition [f51] [A-f3] m) + (substitute-key-definition [f52] [A-f4] m) + (substitute-key-definition [f53] [A-f5] m) + (substitute-key-definition [f54] [A-f6] m) + (substitute-key-definition [f55] [A-f7] m) + (substitute-key-definition [f56] [A-f8] m) + (substitute-key-definition [f57] [A-f9] m) + (substitute-key-definition [f58] [A-f10] m) + (substitute-key-definition [f59] [A-f11] m) + (substitute-key-definition [f60] [A-f12] m)) + + ;; Use inheritance to let the main keymap override those defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (let ((m (copy-keymap xterm-function-map))) + (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil))) + (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)) + + ;; Do it! + (xterm-register-default-colors) + ;; This recomputes all the default faces given the colors we've just set up. + (tty-set-up-initial-frame-faces))) ;; Set up colors, for those versions of xterm that support it. (defvar xterm-standard-colors @@ -369,38 +389,5 @@ versions of xterm." ;; right colors, so clear them. (clear-face-cache))) -;; rxvt puts the default colors into an environment variable -;; COLORFGBG. We use this to set the background mode in a more -;; intelligent way than the default guesswork in startup.el. -(defun xterm-rxvt-set-background-mode () - "Set background mode as appropriate for the default rxvt colors." - (let ((fgbg (server-getenv "COLORFGBG")) - bg rgb) - (setq default-frame-background-mode 'light) - (when (and fgbg - (string-match ".*;\\([0-9][0-9]?\\)\\'" fgbg)) - (setq bg (string-to-number (substring fgbg (match-beginning 1)))) - ;; The next line assumes that xterm-standard-colors are ordered - ;; by the color index in the ascending order! - (setq rgb (car (cddr (nth bg xterm-standard-colors)))) - ;; See the commentary in frame-set-background-mode about the - ;; computation below. - (if (< (apply '+ rgb) - ;; The following line assumes that white is the 15th - ;; color in xterm-standard-colors. - (* (apply '+ (car (cddr (nth 15 xterm-standard-colors)))) 0.6)) - (setq default-frame-background-mode 'dark))) - (frame-set-background-mode (selected-frame)))) - -;; Do it! -(xterm-register-default-colors) -;; If this xterm is actually a disguised rxvt, be more intelligent about -;; determining the background mode. -(and (server-getenv "COLORTERM") - (string-match "\\`rxvt" (server-getenv "COLORTERM")) - (xterm-rxvt-set-background-mode)) -;; This recomputes all the default faces given the colors we've just set up. -(tty-set-up-initial-frame-faces) - ;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a ;;; xterm.el ends here diff --git a/lisp/terminal.el b/lisp/terminal.el index d9ba5d3f728..75d0c7acbd7 100644 --- a/lisp/terminal.el +++ b/lisp/terminal.el @@ -1,6 +1,7 @@ ;;; terminal.el --- terminal emulator for GNU Emacs -;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> ;; Maintainer: FSF diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el index 245658b62b4..ea43f71e756 100644 --- a/lisp/textmodes/artist.el +++ b/lisp/textmodes/artist.el @@ -1,6 +1,7 @@ ;;; artist.el --- draw ascii graphics with your mouse -;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Tomas Abrahamsson <tab@lysator.liu.se> ;; Maintainer: Tomas Abrahamsson <tab@lysator.liu.se> @@ -198,6 +199,7 @@ (defconst artist-version "1.2.6") (defconst artist-maintainer-address "tab@lysator.liu.se") +(defvar x-pointer-crosshair) (eval-and-compile (condition-case () @@ -403,7 +405,7 @@ Example: :type 'integer) -(defvar artist-spray-chars '(?\ ?. ?- ?+ ?m ?% ?* ?#) +(defvar artist-spray-chars '(?\s ?. ?- ?+ ?m ?% ?* ?#) ;; This is a defvar, not a defcustom, since the custom ;; package shows lists of characters as a lists of integers, ;; which is confusing @@ -1388,9 +1390,9 @@ Keymap summary (while (< i 256) (aset artist-replacement-table i i) (setq i (1+ i)))) - (aset artist-replacement-table ?\n ?\ ) - (aset artist-replacement-table ?\t ?\ ) - (aset artist-replacement-table 0 ?\ ) + (aset artist-replacement-table ?\n ?\s) + (aset artist-replacement-table ?\t ?\s) + (aset artist-replacement-table 0 ?\s) (make-local-variable 'artist-key-is-drawing) (make-local-variable 'artist-key-endpoint1) (make-local-variable 'artist-key-poly-point-list) @@ -2012,7 +2014,7 @@ With optional argument SEE-THRU, set to non-nil, text in the buffer (blink-matching-paren nil)) (while char-list (let ((c (car char-list))) - (if (and see-thru (= (aref artist-replacement-table c) ?\ )) + (if (and see-thru (= (aref artist-replacement-table c) ?\s)) (artist-move-to-xy (1+ (artist-current-column)) (artist-current-line)) (artist-replace-char c))) @@ -3068,26 +3070,26 @@ An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)." (defun artist-vap-find-endpoints-horiz (x y) "Find endpoints for a horizontal line through X, Y. An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)." - (list (artist-vap-find-endpoint x y 1 0 '(?- ?+) '(? )) - (artist-vap-find-endpoint x y -1 0 '(?- ?+) '(? )))) + (list (artist-vap-find-endpoint x y 1 0 '(?- ?+) '(?\s)) + (artist-vap-find-endpoint x y -1 0 '(?- ?+) '(?\s)))) (defun artist-vap-find-endpoints-vert (x y) "Find endpoints for a vertical line through X, Y. An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)." - (list (artist-vap-find-endpoint x y 0 1 '(?| ?+) '(? )) - (artist-vap-find-endpoint x y 0 -1 '(?| ?+) '(? )))) + (list (artist-vap-find-endpoint x y 0 1 '(?| ?+) '(?\s)) + (artist-vap-find-endpoint x y 0 -1 '(?| ?+) '(?\s)))) (defun artist-vap-find-endpoints-swne (x y) "Find endpoints for a diagonal line (made by /'s) through X, Y. An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)." - (list (artist-vap-find-endpoint x y 1 -1 '(?/ ?X) '(? )) - (artist-vap-find-endpoint x y -1 1 '(?/ ?X) '(? )))) + (list (artist-vap-find-endpoint x y 1 -1 '(?/ ?X) '(?\s)) + (artist-vap-find-endpoint x y -1 1 '(?/ ?X) '(?\s)))) (defun artist-vap-find-endpoints-nwse (x y) "Find endpoints for a diagonal line (made by \\'s) through X, Y. An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)." - (list (artist-vap-find-endpoint x y 1 1 '(?\\ ?X) '(? )) - (artist-vap-find-endpoint x y -1 -1 '(?\\ ?X) '(? )))) + (list (artist-vap-find-endpoint x y 1 1 '(?\\ ?X) '(?\s)) + (artist-vap-find-endpoint x y -1 -1 '(?\\ ?X) '(?\s)))) (defun artist-vap-find-endpoints (x y) @@ -4453,7 +4455,7 @@ If N is negative, move backward." (defun artist-select-erase-char (c) "Set current erase character to be C." (interactive "cType char to use when erasing (type RET for normal): ") - (cond ((eq c ?\r) (setq artist-erase-char ?\ ) + (cond ((eq c ?\r) (setq artist-erase-char ?\s) (message "Normal erasing")) (t (setq artist-erase-char c) (message "Erasing with \"%c\"" c))) diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el index a6d47589d35..6609673289b 100644 --- a/lisp/textmodes/bib-mode.el +++ b/lisp/textmodes/bib-mode.el @@ -1,6 +1,6 @@ ;;; bib-mode.el --- major mode for editing bib files -;; Copyright (C) 1989 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: bib diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index de387e86542..6f7fe0dec99 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -1,7 +1,7 @@ ;;; bibtex.el --- BibTeX mode for GNU Emacs -;; Copyright (C) 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Schoef <schoef@offis.uni-oldenburg.de> ;; Bengt Martensson <bengt@mathematik.uni-Bremen.de> diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el index 75249f7b547..8c009921d09 100644 --- a/lisp/textmodes/conf-mode.el +++ b/lisp/textmodes/conf-mode.el @@ -1,6 +1,8 @@ ;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files -;; Copyright (C) 2004 by Daniel Pfeiffer <occitan@esperanto.org> +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. + +;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: conf ini windows java ;; This file is part of GNU Emacs. @@ -31,6 +33,8 @@ (require 'newcomment) +(defvar outline-heading-end-regexp) + ;; Variables: (defgroup conf nil @@ -227,15 +231,15 @@ whitespace.") (if (>= arg 0) (progn (indent-to-column arg) - (or (not conf-assignment-space) (memq (char-before (point)) '(? ?\t)) (insert ? )) - (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\ ""))) - (insert (if conf-assignment-space ?\ "") conf-assignment-sign) + (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)) + (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\s ""))) + (insert (if conf-assignment-space ?\s "") conf-assignment-sign) (unless (eolp) (indent-to-column (- arg)) - (or (not conf-assignment-space) (memq (char-before (point)) '(? ?\t)) (insert ? )))) + (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)))) (unless (eolp) (if (>= (current-column) (abs arg)) - (insert ? ) + (insert ?\s) (indent-to-column (abs arg)))))) (forward-line)))) diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el index a6f3517d722..12f99ba090e 100644 --- a/lisp/textmodes/dns-mode.el +++ b/lisp/textmodes/dns-mode.el @@ -1,5 +1,6 @@ ;;; dns-mode.el --- a mode for viewing/editing Domain Name System master files -;; Copyright (c) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: DNS master zone file SOA diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el index 61960e9d975..dc8d4c96b2b 100644 --- a/lisp/textmodes/enriched.el +++ b/lisp/textmodes/enriched.el @@ -1,6 +1,7 @@ ;;; enriched.el --- read and save files in text/enriched format -;; Copyright (c) 1994, 1995, 1996, 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: wp, faces diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 9997b2a166e..11ddfc0e967 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1,7 +1,7 @@ ;;; fill.el --- fill commands for Emacs -*- coding: iso-2022-7bit -*- ;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1996, 1997, 1999, 2001, 2002, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp @@ -163,7 +163,7 @@ Remove indentation from each line." ;; This is quick, but loses when a tab follows the end of a sentence. ;; Actually, it is difficult to tell that from "Mr.\tSmith". ;; Blame the typist. - (subst-char-in-region beg end ?\t ?\ ) + (subst-char-in-region beg end ?\t ?\s) (while (and (< (point) end) (re-search-forward end-spc-re end t)) (delete-region @@ -282,7 +282,7 @@ act as a paragraph-separator." (string-match comment-start-skip first-line-prefix))) first-line-prefix - (make-string (string-width first-line-prefix) ?\ )))) + (make-string (string-width first-line-prefix) ?\s)))) ;; But either way, reject it if it indicates the start ;; of a paragraph when text follows it. (if (not (eq 0 (string-match paragraph-start @@ -312,7 +312,7 @@ places." (backward-char 1) (or (looking-at "[([{,A+,b+(B]") ;; Don't cut right after a single-letter word. - (and (memq (preceding-char) '(?\t ?\ )) + (and (memq (preceding-char) '(?\t ?\s)) (eq (char-syntax (following-char)) ?w))))))) (defcustom fill-nobreak-predicate nil @@ -439,10 +439,10 @@ Point is moved to just past the fill prefix on the first line." (sentence-end-without-space-list (string-to-list sentence-end-without-space))) (while (re-search-forward eol-double-space-re to t) - (or (>= (point) to) (memq (char-before) '(?\t ?\ )) + (or (>= (point) to) (memq (char-before) '(?\t ?\s)) (memq (char-after (match-beginning 0)) sentence-end-without-space-list) - (insert-and-inherit ?\ )))) + (insert-and-inherit ?\s)))) (goto-char from) (if enable-multibyte-characters @@ -471,7 +471,7 @@ Point is moved to just past the fill prefix on the first line." (goto-char from) (skip-chars-forward " \t") ;; Then change all newlines to spaces. - (subst-char-in-region from to ?\n ?\ ) + (subst-char-in-region from to ?\n ?\s) (if (and nosqueeze (not (eq justify 'full))) nil (canonically-space-region (or squeeze-after (point)) to) @@ -830,10 +830,10 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'." (if has-code-and-comment (concat (if (not indent-tabs-mode) - (make-string (current-column) ?\ ) + (make-string (current-column) ?\s) (concat (make-string (/ (current-column) tab-width) ?\t) - (make-string (% (current-column) tab-width) ?\ ))) + (make-string (% (current-column) tab-width) ?\s))) (buffer-substring (point) comin)) (buffer-substring (line-beginning-position) comin)))) beg end) @@ -1223,7 +1223,7 @@ otherwise it is made canonical." (while (> count 0) (skip-chars-forward " ") (insert-and-inherit - (make-string (/ curr-fracspace nspaces) ?\ )) + (make-string (/ curr-fracspace nspaces) ?\s)) (search-forward " " nil t) (setq count (1- count) curr-fracspace @@ -1282,8 +1282,8 @@ in the paragraph. When calling from a program, pass range to fill as first two arguments. -Optional third and fourth arguments JUSTIFY and MAIL-FLAG: -JUSTIFY to justify paragraphs (prefix arg), +Optional third and fourth arguments JUSTIFYP and CITATION-REGEXP: +JUSTIFYP to justify paragraphs (prefix arg). When filling a mail message, pass a regexp for CITATION-REGEXP which will match the prefix of a line which is a citation marker plus whitespace, but no other kind of prefix. diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 6b7b5492409..b6b7339c948 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -1,6 +1,7 @@ ;;; flyspell.el --- on-the-fly spell checker -;; Copyright (C) 1998, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr> ;; Maintainer: FSF @@ -76,7 +77,9 @@ Non-nil means use highlight, nil means use minibuffer messages." :type 'boolean) (defcustom flyspell-mark-duplications-flag t - "*Non-nil means Flyspell reports a repeated word as an error." + "*Non-nil means Flyspell reports a repeated word as an error. +Detection of repeated words is not implemented in +\"large\" regions; see `flyspell-large-region'." :group 'flyspell :type 'boolean) @@ -237,10 +240,13 @@ If the region is smaller than this number of characters, flyspell methods. Else, if the region is large, a new Ispell process is spawned for speed. +Doubled words are not detected in a large region, because Ispell +does not check for them. + If `flyspell-large-region' is nil, all regions are treated as small." :group 'flyspell :version "21.1" - :type '(choice number boolean)) + :type '(choice number (const :tag "All small" nil))) (defcustom flyspell-insert-function (function insert) "*Function for inserting word by flyspell upon correction." @@ -450,6 +456,7 @@ See also `flyspell-duplicate-distance'." ;*---------------------------------------------------------------------*/ ;* flyspell-mode ... */ ;*---------------------------------------------------------------------*/ +;;;###autoload(defvar flyspell-mode nil) ;;;###autoload (define-minor-mode flyspell-mode "Minor mode performing on-the-fly spelling checking. diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index ff0cecf5af2..8bd8ed2d692 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1,7 +1,7 @@ ;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2 -;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Ken Stevens <k.stevens@ieee.org> ;; Maintainer: Ken Stevens <k.stevens@ieee.org> @@ -201,6 +201,8 @@ ;;; Code: +(defvar mail-yank-prefix) + ;;; Custom.el macros require recompiling this when they are not present. ;;; Add in backward compatible custom support. (eval-when-compile @@ -862,9 +864,113 @@ and added as a submenu of the \"Edit\" menu.") ) "Non-nil means that the OS supports asynchronous processes.") +;; Make ispell.el work better with aspell. + +(defvar ispell-have-aspell-dictionaries nil + "Non-nil if we have queried Aspell for dictionaries at least once.") + +(defun ispell-find-aspell-dictionaries () + "Find Aspell's dictionaries, and record in `ispell-dictionary-alist'." + (interactive) + (unless ispell-really-aspell + (error "This function only works with aspell")) + (let ((dictionaries + (split-string + (with-temp-buffer + (call-process ispell-program-name nil t nil "dicts") + (buffer-string))))) + (setq ispell-dictionary-alist + (mapcar #'ispell-aspell-find-dictionary dictionaries)) + (ispell-aspell-add-aliases) + ;; Add a default entry + (let* ((english-dict (assoc "en" ispell-dictionary-alist)) + (default-dict (cons nil (cdr english-dict)))) + (push default-dict ispell-dictionary-alist)) + (setq ispell-have-aspell-dictionaries t))) + +(defvar ispell-aspell-data-dir nil + "Data directory of Aspell.") + +(defvar ispell-aspell-dict-dir nil + "Dictionary directory of Aspell.") + +(defun ispell-get-aspell-config-value (key) + "Return value of Aspell configuration option KEY. +Assumes that value contains no whitespace." + (with-temp-buffer + (call-process ispell-program-name nil t nil "config" key) + (car (split-string (buffer-string))))) + +(defun ispell-aspell-find-dictionary (dict-name) + (let* ((lang ;; Strip out region, variant, etc. + (and (string-match "^[[:alpha:]]+" dict-name) + (match-string 0 dict-name))) + (data-file + (concat (or ispell-aspell-data-dir + (setq ispell-aspell-data-dir + (ispell-get-aspell-config-value "data-dir"))) + "/" lang ".dat")) + otherchars) + ;; This file really should exist; there is no sensible recovery. + (with-temp-buffer + (insert-file-contents data-file) + ;; There is zero or one line with special characters declarations. + (when (search-forward-regexp "^special" nil t) + (let ((specials (split-string + (buffer-substring (point) + (progn (end-of-line) (point)))))) + ;; The line looks like: special ' -** - -** . -** : -*- + ;; -** means that this character + ;; - doesn't appear at word start + ;; * may appear in the middle of a word + ;; * may appear at word end + ;; `otherchars' is about the middle case. + (while specials + (when (eq (aref (cadr specials) 1) ?*) + (push (car specials) otherchars)) + (setq specials (cddr specials)))))) + (list dict-name + "[[:alpha:]]" + "[^[:alpha:]]" + (regexp-opt otherchars) + t ; We can't tell, so set this to t + (list "-d" dict-name "--encoding=utf-8") + nil ; aspell doesn't support this + ;; Here we specify the encoding to use while communicating with + ;; aspell. This doesn't apply to command line arguments, so + ;; just don't pass words to spellcheck as arguments... + 'utf-8))) + +(defun ispell-aspell-add-aliases () + "Find aspell's dictionary aliases and add them to `ispell-dictionary-alist'." + (let ((aliases (file-expand-wildcards + (concat (or ispell-aspell-dict-dir + (setq ispell-aspell-dict-dir + (ispell-get-aspell-config-value "dict-dir"))) + "/*.alias")))) + (dolist (alias-file aliases) + (with-temp-buffer + (insert-file-contents alias-file) + ;; Look for a line "add FOO.multi", extract FOO + (when (search-forward-regexp "^add \\([^.]+\\)\\.multi" nil t) + (let* ((aliasname (file-name-sans-extension + (file-name-nondirectory alias-file))) + (already-exists-p (assoc aliasname ispell-dictionary-alist)) + (realname (match-string 1)) + (realdict (assoc realname ispell-dictionary-alist))) + (when (and realdict (not already-exists-p)) + (push (cons aliasname (cdr realdict)) ispell-dictionary-alist)))))))) + (defun ispell-valid-dictionary-list () "Returns a list of valid dictionaries. The variable `ispell-library-directory' defines the library location." + ;; If Ispell is really Aspell, query it for the dictionary list. + (when (and (not ispell-have-aspell-dictionaries) + (condition-case () + (progn (ispell-check-version) t) + (error nil)) + ispell-really-aspell) + (ispell-find-aspell-dictionaries)) (let ((dicts (append ispell-local-dictionary-alist ispell-dictionary-alist)) (dict-list (cons "default" nil)) name load-dict) @@ -875,7 +981,9 @@ The variable `ispell-library-directory' defines the library location." (if (and name ;; include all dictionaries if lib directory not known. - (or (not ispell-library-directory) + ;; For Aspell, we already know which dictionaries exist. + (or ispell-really-aspell + (not ispell-library-directory) (file-exists-p (concat ispell-library-directory "/" name ".hash")) (file-exists-p (concat ispell-library-directory "/" name ".has")) @@ -887,36 +995,11 @@ The variable `ispell-library-directory' defines the library location." (setq dict-list (cons name dict-list)))) dict-list)) -;;;###autoload -(if ispell-menu-map-needed - (let ((dicts (if (fboundp 'ispell-valid-dictionary-list) - (ispell-valid-dictionary-list) - ;; This case is used in loaddefs.el - ;; since ispell-valid-dictionary-list isn't defined then. - (mapcar (lambda (x) (or (car x) "default")) - ispell-dictionary-alist))) - (dict-map (make-sparse-keymap "Dictionaries"))) - (setq ispell-menu-map (make-sparse-keymap "Spell")) - ;; add the dictionaries to the bottom of the list. - (if (not dicts) - (define-key ispell-menu-map [default] - '("Select Default Dict" - "Dictionary for which Ispell was configured" - . (lambda () (interactive) - (ispell-change-dictionary "default"))))) - (fset 'ispell-dict-map dict-map) - (define-key ispell-menu-map [dictionaries] - `(menu-item "Select Dict" ispell-dict-map)) - (dolist (name dicts) - (define-key dict-map (vector (intern name)) - (cons (concat "Select " (capitalize name) " Dict") - `(lambda () (interactive) - (ispell-change-dictionary ,name))))))) - ;;; define commands in menu in opposite order you want them to appear. ;;;###autoload (if ispell-menu-map-needed (progn + (setq ispell-menu-map (make-sparse-keymap "Spell")) (define-key ispell-menu-map [ispell-change-dictionary] '(menu-item "Change Dictionary..." ispell-change-dictionary :help "Supply explicit dictionary file name")) @@ -1491,7 +1574,8 @@ quit spell session exited." (funcall ispell-format-word word))) (and (fboundp 'extent-at) (extent-at start) - (delete-extent (extent-at start)))) + (and (fboundp 'delete-extent) + (delete-extent (extent-at start))))) ((stringp poss) (or quietly (message "%s is correct because of root %s" @@ -1499,13 +1583,15 @@ quit spell session exited." (funcall ispell-format-word poss))) (and (fboundp 'extent-at) (extent-at start) - (delete-extent (extent-at start)))) + (and (fboundp 'delete-extent) + (delete-extent (extent-at start))))) ((null poss) (message "Error in ispell process")) (ispell-check-only ; called from ispell minor mode. (if (fboundp 'make-extent) - (let ((ext (make-extent start end))) - (set-extent-property ext 'face ispell-highlight-face) - (set-extent-property ext 'priority 2000)) + (if (fboundp 'set-extent-property) + (let ((ext (make-extent start end))) + (set-extent-property ext 'face ispell-highlight-face) + (set-extent-property ext 'priority 2000))) (beep) (message "%s is incorrect"(funcall ispell-format-word word)))) (t ; prompt for correct word. @@ -1659,7 +1745,10 @@ Global `ispell-quit' set to start location to continue spell session." ;; setup the *Choices* buffer with valid data. (save-excursion (set-buffer (get-buffer-create ispell-choices-buffer)) - (setq mode-line-format (concat "-- %b -- word: " word)) + (setq mode-line-format + (concat "-- %b -- word: " word + " -- dict: " (or ispell-current-dictionary "default") + " -- prog: " (file-name-nondirectory ispell-program-name))) ;; XEmacs: no need for horizontal scrollbar in choices window (with-no-warnings (and (fboundp 'set-specifier) @@ -1819,9 +1908,10 @@ Global `ispell-quit' set to start location to continue spell session." (erase-buffer) (setq count ?0 skipped 0 - mode-line-format (concat - "-- %b -- word: " - new-word) + mode-line-format + (concat "-- %b -- word: " new-word + " -- dict: " + ispell-alternate-dictionary) miss (lookup-words new-word) choices miss line ispell-choices-win-default-height) @@ -2062,9 +2152,13 @@ Optional second argument contains the dictionary to use; the default is (while (search-backward "*" nil t) (insert ".")) (setq word (buffer-string)) (erase-buffer)) - (setq status (if lookup-dict - (call-process prog nil t nil args word lookup-dict) - (call-process prog nil t nil args word))) + (setq status (apply 'call-process prog nil t nil + (nconc (if (and args (> (length args) 0)) + (list args) + (if look-p nil + (list "-e"))) + (list word) + (if lookup-dict (list lookup-dict))))) ;; grep returns status 1 and no output when word not found, which ;; is a perfectly normal thing. (if (stringp status) @@ -2512,9 +2606,10 @@ Return nil if spell session is quit, (rstart (make-marker))) (unwind-protect (save-excursion - (message "Spell checking %s using %s dictionary..." + (message "Spell checking %s using %s with %s dictionary..." (if (and (= reg-start (point-min)) (= reg-end (point-max))) (buffer-name) "region") + (file-name-nondirectory ispell-program-name) (or ispell-current-dictionary "default")) ;; Returns cursor to original location. (save-window-excursion @@ -2532,7 +2627,8 @@ Return nil if spell session is quit, (set-marker skip-region-start (- (point) (length key))) (goto-char reg-start))) (let (message-log-max) - (message "Continuing spelling check using %s dictionary..." + (message "Continuing spelling check using %s with %s dictionary..." + (file-name-nondirectory ispell-program-name) (or ispell-current-dictionary "default"))) (set-marker rstart reg-start) (set-marker ispell-region-end reg-end) @@ -2609,7 +2705,9 @@ Return nil if spell session is quit, (if (not recheckp) (set-marker ispell-region-end nil)) ;; Only save if successful exit. (ispell-pdict-save ispell-silently-savep) - (message "Spell-checking done"))))) + (message "Spell-checking using %s with %s dictionary done" + (file-name-nondirectory ispell-program-name) + (or ispell-current-dictionary "default")))))) (defun ispell-begin-skip-region-regexp () @@ -2960,7 +3058,8 @@ Returns the sum shift due to changes in word replacements." )) (if (not ispell-quit) (let (message-log-max) - (message "Continuing spelling check using %s dictionary..." + (message "Continuing spelling check using %s with %s dictionary..." + (file-name-nondirectory ispell-program-name) (or ispell-current-dictionary "default")))) (sit-for 0) (setq start (marker-position line-start) diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el index bbea460cf6e..542c4829e9c 100644 --- a/lisp/textmodes/makeinfo.el +++ b/lisp/textmodes/makeinfo.el @@ -1,6 +1,7 @@ ;;; makeinfo.el --- run makeinfo conveniently -;; Copyright (C) 1991, 1993, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1993, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Maintainer: FSF @@ -49,6 +50,10 @@ (require 'compile) (require 'info) +(defvar tex-end-of-header) +(defvar tex-start-of-header) + + (defgroup makeinfo nil "Run makeinfo conveniently." :group 'docs) @@ -170,22 +175,27 @@ command to gain use of `next-error'." makeinfo-options " " makeinfo-temp-file) - "Use `makeinfo-buffer' to gain use of the `next-error' command" - nil + t 'makeinfo-compilation-sentinel-region))))))) -;;; Actually run makeinfo. COMMAND is the command to run. -;;; ERROR-MESSAGE is what to say when next-error can't find another error. -;;; If PARSE-ERRORS is non-nil, do try to parse error messages. -(defun makeinfo-compile (command error-message parse-errors sentinel) - (let ((buffer - (compile-internal command error-message nil - (and (not parse-errors) - ;; If we do want to parse errors, pass nil. - ;; Otherwise, use this function, which won't - ;; ever find any errors. - (lambda (&rest ignore) - (setq compilation-error-list nil)))))) +(defun makeinfo-next-error (arg reset) + "This function is used to disable `next-error' if the user has +used `makeinfo-region'. Since the compilation process is used on +a temporary file in that case, calling `next-error' would give +nonsensical results." + (error "Use `makeinfo-buffer' to gain use of the `next-error' command")) + +;; Actually run makeinfo. COMMAND is the command to run. If +;; DISABLE-ERRORS is non-nil, disable `next-error' by setting +;; `next-error-function' to `makeinfo-next-error' in the compilation +;; buffer. +(defun makeinfo-compile (command disable-errors sentinel) + (let ((buffer (compilation-start command))) + (with-current-buffer buffer + (setq next-error-function + (if disable-errors + 'makeinfo-next-error + 'compilation-next-error-function))) (set-process-sentinel (get-buffer-process buffer) sentinel))) ;; Delete makeinfo-temp-file after processing is finished, @@ -248,9 +258,8 @@ Use the \\[next-error] command to move to the next error (save-excursion (makeinfo-compile (concat makeinfo-run-command " " makeinfo-options - " " buffer-file-name) - "No more errors." - t + " " buffer-file-name) + nil 'makeinfo-compilation-sentinel-buffer))) (defun makeinfo-compilation-sentinel-buffer (proc msg) diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el index 48de6b3243e..05a740ee390 100644 --- a/lisp/textmodes/nroff-mode.el +++ b/lisp/textmodes/nroff-mode.el @@ -1,6 +1,7 @@ ;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source -;; Copyright (C) 1985, 86, 94, 95, 97, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1994, 1995, 1997, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 1709b1554a5..6150ac6cccd 100644 --- a/lisp/textmodes/org.el +++ b/lisp/textmodes/org.el @@ -1,11 +1,11 @@ -;; org.el --- Outline-based notes management and organizer +;;; org.el --- Outline-based notes management and organizer ;; Carstens outline-mode for keeping track of everything. ;; Copyright (c) 2004, 2005 Free Software Foundation ;; ;; Author: Carsten Dominik <dominik at science dot uva dot nl> ;; Keywords: outlines, hypermedia, calendar ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 3.13 +;; Version: 3.15 ;; ;; This file is part of GNU Emacs. ;; @@ -21,8 +21,8 @@ ;; 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., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Commentary: @@ -80,6 +80,19 @@ ;; ;; Changes: ;; ------- +;; Version 3.15 +;; - QUOTE keyword at the beginning of an entry causes fixed-width export +;; of unmodified entry text. `C-c :' toggles this keyword. +;; - New face `org-special-keyword' which is used for COMMENT, QUOTE, +;; DEADLINE and SCHEDULED, and priority cookies. Default is only a weak +;; color, to reduce the amount of aggressive color in the buffer. +;; +;; Version 3.14 +;; - Formulas for individual fields in table. +;; - Automatic recalculation in calculating tables. +;; - Named fields and columns in tables. +;; - Fixed bug with calling `org-archive' several times in a row. +;; ;; Version 3.13 ;; - Efficiency improvements: Fewer table re-alignments needed. ;; - New special lines in tables, for defining names for individual cells. @@ -180,9 +193,13 @@ (require 'time-date) (require 'easymenu) +(defvar calc-embedded-close-formula) +(defvar calc-embedded-open-formula) +(defvar font-lock-unfontify-region-function) + ;;; Customization variables -(defvar org-version "3.13" +(defvar org-version "3.15" "The version number of the file org.el.") (defun org-version () (interactive) @@ -381,6 +398,15 @@ Changes become only effective after restarting Emacs." :group 'org-keywords :type 'string) +(defcustom org-quote-string "QUOTE" + "Entries starting with this keyword will be exported in fixed-width font. +Quoting applies only to the text in the entry following the headline, and does +not extend beyond the next headline, even if that is lower level. +An entry can be toggled between QUOTE and normal with +\\[org-toggle-fixed-width-section]" + :group 'org-keywords + :type 'string) + (defcustom org-after-todo-state-change-hook nil "Hook which is run after the state of a TODO item was changed. The new state (a string with a todo keyword, or nil) is available in the @@ -1215,6 +1241,20 @@ line will be formatted with <th> tags." :group 'org-table :type 'boolean) +(defcustom org-table-tab-recognizes-table.el t + "Non-nil means, TAB will automatically notice a table.el table. +When it sees such a table, it moves point into it and - if necessary - +calls `table-recognize-table'." + :group 'org-table + :type 'boolean) + +;; FIXME: Should this one be in another group? Which one? +(defcustom org-enable-fixed-width-editor t + "Non-nil means, lines starting with \":\" are treated as fixed-width. +This currently only means, they are never auto-wrapped. +When nil, such lines will be treated like ordinary lines." + :group 'org-table + :type 'boolean) (defgroup org-table-calculation nil "Options concerning tables in Org-mode." @@ -1284,29 +1324,10 @@ in table calculations, including symbolics etc." :group 'org-table-calculation :type 'boolean) -(defcustom org-table-tab-recognizes-table.el t - "Non-nil means, TAB will automatically notice a table.el table. -When it sees such a table, it moves point into it and - if necessary - -calls `table-recognize-table'." - :group 'org-table - :type 'boolean) - -(defcustom org-export-prefer-native-exporter-for-tables nil - "Non-nil means, always export tables created with table.el natively. -Natively means, use the HTML code generator in table.el. -When nil, Org-mode's own HTML generator is used when possible (i.e. if -the table does not use row- or column-spanning). This has the -advantage, that the automatic HTML conversions for math symbols and -sub/superscripts can be applied. Org-mode's HTML generator is also -much faster." - :group 'org-table - :type 'boolean) - -(defcustom org-enable-fixed-width-editor t - "Non-nil means, lines starting with \":\" are treated as fixed-width. -This currently only means, they are never auto-wrapped. -When nil, such lines will be treated like ordinary lines." - :group 'org-table +(defcustom org-table-allow-automatic-line-recalculation t + "Non-nil means, lines makred with |#| or |*| will be recomputed automatically. +Automatically means, when TAB or RET or C-c C-c are pressed in the line." + :group 'org-table-calculation :type 'boolean) (defgroup org-export nil @@ -1425,6 +1446,17 @@ This option can also be set with the +OPTIONS line, e.g. \"|:nil\"." :group 'org-export :type 'boolean) +(defcustom org-export-prefer-native-exporter-for-tables nil + "Non-nil means, always export tables created with table.el natively. +Natively means, use the HTML code generator in table.el. +When nil, Org-mode's own HTML generator is used when possible (i.e. if +the table does not use row- or column-spanning). This has the +advantage, that the automatic HTML conversions for math symbols and +sub/superscripts can be applied. Org-mode's HTML generator is also +much faster." + :group 'org-export + :type 'boolean) + (defcustom org-export-html-table-tag "<table border=1 cellspacing=0 cellpadding=6>" "The HTML tag used to start a table. @@ -1580,6 +1612,14 @@ Otherwise, the buffer will just be saved to a file and stay hidden." "Face used for level 8 headlines." :group 'org-faces) +(defface org-special-keyword ;; font-lock-string-face + '((((type tty) (class color)) (:foreground "green")) + (((class color) (background light)) (:foreground "RosyBrown")) + (((class color) (background dark)) (:foreground "LightSalmon")) + (t (:italic t))) + "Face used for level 8 headlines." + :group 'org-faces) + (defface org-warning ;; font-lock-warning-face '((((type tty) (class color)) (:foreground "red")) (((class color) (background light)) (:foreground "Red" :bold t)) @@ -1906,17 +1946,22 @@ The following commands are available: '(org-activate-dates (0 'org-link)) (list (concat "^\\*+[ \t]*" org-not-done-regexp) '(1 'org-warning t)) - (list (concat "\\[#[A-Z]\\]") '(0 'org-warning t)) - (list (concat "\\<" org-deadline-string) '(0 'org-warning t)) - (list (concat "\\<" org-scheduled-string) '(0 'org-warning t)) + (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t)) +; (list (concat "\\<" org-deadline-string) '(0 'org-warning t)) +; (list (concat "\\<" org-scheduled-string) '(0 'org-warning t)) + (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) + (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) ;; '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)" ;; (3 'bold)) ;; '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)" ;; (3 'italic)) ;; '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)" ;; (3 'underline)) - (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>") - '(1 'org-warning t)) +; (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>") +; '(1 'org-warning t)) + (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string + "\\|" org-quote-string "\\)\\>") + '(1 'org-special-keyword t)) '("^#.*" (0 'font-lock-comment-face t)) (if org-fontify-done-headline (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>") @@ -1926,7 +1971,7 @@ The following commands are available: '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)" (1 'org-table t)) '("^[ \t]*\\(:.*\\)" (1 'org-table t)) - '("| *\\(=[^|\n]*\\)" (1 'org-formula t)) + '("| *\\(:?=[^|\n]*\\)" (1 'org-formula t)) '("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t)) ))) (set (make-local-variable 'org-font-lock-keywords) @@ -2203,7 +2248,7 @@ or nil." (shrink-window-if-larger-than-buffer (get-buffer-window "*Help*")) (setq buffer-read-only nil) (erase-buffer) - (insert-buffer buf) + (insert-buffer-substring buf) (let ((org-startup-truncated t) (org-startup-folded t) (org-startup-with-deadline-check nil)) @@ -2634,7 +2679,10 @@ heading be marked DONE, and the current time will be added." (setq level (match-end 0)) (setq heading nil level 0)) (save-excursion - (org-copy-subtree) ; We first only copy, in case something goes wrong + ;; We first only copy, in case something goes wrong + ;; we need to protect this-command, to avoid kill-region sets it, + ;; which would lead to duplication of subtrees + (let (this-command) (org-copy-subtree)) (set-buffer buffer) ;; Enforce org-mode for the archive buffer (if (not (eq major-mode 'org-mode)) @@ -2691,7 +2739,7 @@ heading be marked DONE, and the current time will be added." (if (not (eq this-buffer buffer)) (save-buffer)))) ;; Here we are back in the original buffer. Everything seems to have ;; worked. So now cut the tree and finish up. - (org-cut-subtree) + (let (this-command) (org-cut-subtree)) (if (looking-at "[ \t]*$") (kill-line)) (message "Subtree archived %s" (if (eq this-buffer buffer) @@ -2717,7 +2765,6 @@ At all other locations, this simply calls `ispell-complete-word'." (skip-chars-backward "a-zA-Z0-9_:$") (point))) (texp (equal (char-before beg) ?\\)) - (form (equal (char-before beg) ?=)) (opt (equal (buffer-substring (max (point-at-bol) (- beg 2)) beg) "#+")) @@ -2734,9 +2781,6 @@ At all other locations, this simply calls `ispell-complete-word'." (texp (setq type :tex) org-html-entities) - (form - (setq type :form) - '(("sum") ("sumv") ("sumh"))) ((string-match "\\`\\*+[ \t]*\\'" (buffer-substring (point-at-bol) beg)) (setq type :todo) @@ -4001,7 +4045,7 @@ With prefix ARG, go back that many times `org-agenda-ndays'." (get-text-property (point) 'org-marker)) (org-agenda-show))) -(defvar org-disable-diary nil) ;Dynamically-scoped param. +(defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param. (defun org-get-entries-from-diary (date) "Get the (Emacs Calendar) diary entries for DATE." @@ -4009,8 +4053,10 @@ With prefix ARG, go back that many times `org-agenda-ndays'." (diary-display-hook '(fancy-diary-display)) (list-diary-entries-hook (cons 'org-diary-default-entry list-diary-entries-hook)) + (diary-file-name-prefix-function nil) ; turn this feature off + (diary-modify-entry-list-string-function 'org-modify-diary-entry-string) entries - (org-disable-diary t)) + (org-disable-agenda-to-diary t)) (save-excursion (save-window-excursion (list-diary-entries date 1))) @@ -4064,35 +4110,43 @@ date. Itt also removes lines that contain only whitespace." (if (re-search-forward "^Org-mode dummy\n?" nil t) (replace-match ""))) -;; Advise the add-to-diary-list function to allow org to jump to -;; diary entries. Wrapped into eval-after-load to avoid loading -;; advice unnecessarily +;; Make sure entries from the diary have the right text properties. (eval-after-load "diary-lib" - '(defadvice add-to-diary-list (before org-mark-diary-entry activate) - "Make the position visible." - (if (and org-disable-diary ;; called from org-agenda - (stringp string) - (buffer-file-name)) - (add-text-properties - 0 (length string) - (list 'mouse-face 'highlight - 'keymap org-agenda-keymap - 'help-echo - (format - "mouse-2 or RET jump to diary file %s" - (abbreviate-file-name (buffer-file-name))) - 'org-agenda-diary-link t - 'org-marker (org-agenda-new-marker (point-at-bol))) - string)))) + '(if (boundp 'diary-modify-entry-list-string-function) + ;; We can rely on the hook, nothing to do + nil + ;; Hook not avaiable, must use advice to make this work + (defadvice add-to-diary-list (before org-mark-diary-entry activate) + "Make the position visible." + (if (and org-disable-agenda-to-diary ;; called from org-agenda + (stringp string) + (buffer-file-name)) + (setq string (org-modify-diary-entry-string string)))))) + +(defun org-modify-diary-entry-string (string) + "Add text properties to string, allowing org-mode to act on it." + (add-text-properties + 0 (length string) + (list 'mouse-face 'highlight + 'keymap org-agenda-keymap + 'help-echo + (format + "mouse-2 or RET jump to diary file %s" + (abbreviate-file-name (buffer-file-name))) + 'org-agenda-diary-link t + 'org-marker (org-agenda-new-marker (point-at-bol))) + string) + string) (defun org-diary-default-entry () "Add a dummy entry to the diary. Needed to avoid empty dates which mess up holiday display." ;; Catch the error if dealing with the new add-to-diary-alist - (condition-case nil - (add-to-diary-list original-date "Org-mode dummy" "") - (error - (add-to-diary-list original-date "Org-mode dummy" "" nil)))) + (when org-disable-agenda-to-diary + (condition-case nil + (add-to-diary-list original-date "Org-mode dummy" "") + (error + (add-to-diary-list original-date "Org-mode dummy" "" nil))))) (defun org-add-file (&optional file) "Add current file to the list of files in variable `org-agenda-files'. @@ -4226,11 +4280,12 @@ function from a program - use `org-agenda-get-day-entries' instead." file rtn results) ;; If this is called during org-agenda, don't return any entries to ;; the calendar. Org Agenda will list these entries itself. - (if org-disable-diary (setq files nil)) + (if org-disable-agenda-to-diary (setq files nil)) (while (setq file (pop files)) (setq rtn (apply 'org-agenda-get-day-entries file date args)) (setq results (append results rtn))) - (concat (org-finalize-agenda-entries results) "\n"))) + (if results + (concat (org-finalize-agenda-entries results) "\n")))) (defun org-agenda-get-day-entries (file date &rest args) "Does the work for `org-diary' and `org-agenda'. @@ -5816,6 +5871,8 @@ See also the variable `org-reverse-note-order'." "Detects a table line marked for automatic recalculation.") (defconst org-table-recalculate-regexp "^[ \t]*| *[#*] *\\(|\\|$\\)" "Detects a table line marked for automatic recalculation.") +(defconst org-table-calculate-mark-regexp "^[ \t]*| *[!$^_#*] *\\(|\\|$\\)" + "Detects a table line marked for automatic recalculation.") (defconst org-table-hline-regexp "^[ \t]*|-" "Detects an org-type table hline.") (defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]" @@ -6119,7 +6176,7 @@ Optional argument NEW may specify text to replace the current field content." (cond ((and (not new) org-table-may-need-update)) ; Realignment will happen anyway ((org-at-table-hline-p) - ;; FIXME: I use to enforce realign here, but I think this is not needed. + ;; FIXME: I used to enforce realign here, but I think this is not needed. ;; (setq org-table-may-need-update t) ) ((and (not new) @@ -6133,15 +6190,17 @@ Optional argument NEW may specify text to replace the current field content." (let* ((pos (point)) s (col (org-table-current-column)) (num (nth (1- col) org-table-last-alignment)) - l f n o upd) + l f n o e) (when (> col 0) (skip-chars-backward "^|\n") - (if (looking-at " *\\([^|\n]*?\\) *|") + (if (looking-at " *\\([^|\n]*?\\) *\\(|\\|$\\)") (progn (setq s (match-string 1) o (match-string 0) - l (max 1 (- (match-end 0) (match-beginning 0) 3))) - (setq f (format (if num " %%%ds |" " %%-%ds |") l) + l (max 1 (- (match-end 0) (match-beginning 0) 3)) + e (not (= (match-beginning 2) (match-end 2)))) + (setq f (format (if num " %%%ds %s" " %%-%ds %s") + l (if e "|" (setq org-table-may-need-update t) "")) n (format f s t t)) (if new (if (<= (length new) l) @@ -6254,7 +6313,7 @@ integer, it will be incremented while copying." (progn (if (and org-table-copy-increment (string-match "^[0-9]+$" txt)) - (setq txt (format "%d" (+ (string-to-int txt) 1)))) + (setq txt (format "%d" (+ (string-to-number txt) 1)))) (insert txt) (org-table-maybe-recalculate-line) (org-table-align)) @@ -6980,91 +7039,186 @@ If NLAST is a number, only the NLAST fields will actually be summed." ((equal n 0) nil) (t n)))) +(defun org-table-get-vertical-vector (desc &optional tbeg col) + "Get a calc vector from a column, accorting to desctiptor DESC. +Optional arguments TBEG and COL can give the beginning of the table and +the current column, to avoid unnecessary parsing." + (save-excursion + (or tbeg (setq tbeg (org-table-begin))) + (or col (setq col (org-table-current-column))) + (let (beg end nn n n1 n2 l (thisline (org-current-line)) hline-list) + (cond + ((string-match "\\(I+\\)\\(-\\(I+\\)\\)?" desc) + (setq n1 (- (match-end 1) (match-beginning 1))) + (if (match-beginning 3) + (setq n2 (- (match-end 2) (match-beginning 3)))) + (setq n (if n2 (max n1 n2) n1)) + (setq n1 (if n2 (min n1 n2))) + (setq nn n) + (while (and (> nn 0) + (re-search-backward org-table-hline-regexp tbeg t)) + (push (org-current-line) hline-list) + (setq nn (1- nn))) + (setq hline-list (nreverse hline-list)) + (goto-line (nth (1- n) hline-list)) + (when (re-search-forward org-table-dataline-regexp) + (org-table-goto-column col) + (setq beg (point))) + (goto-line (if n1 (nth (1- n1) hline-list) thisline)) + (when (re-search-backward org-table-dataline-regexp) + (org-table-goto-column col) + (setq end (point))) + (setq l (apply 'append (org-table-copy-region beg end))) + (concat "[" (mapconcat (lambda (x) (setq x (org-trim x)) + (if (equal x "") "0" x)) + l ",") "]")) + ((string-match "\\([0-9]+\\)-\\([0-9]+\\)" desc) + (setq n1 (string-to-number (match-string 1 desc)) + n2 (string-to-number (match-string 2 desc))) + (beginning-of-line 1) + (save-excursion + (when (re-search-backward org-table-dataline-regexp tbeg t n1) + (org-table-goto-column col) + (setq beg (point)))) + (when (re-search-backward org-table-dataline-regexp tbeg t n2) + (org-table-goto-column col) + (setq end (point))) + (setq l (apply 'append (org-table-copy-region beg end))) + (concat "[" (mapconcat + (lambda (x) (setq x (org-trim x)) + (if (equal x "") "0" x)) + l ",") "]")) + ((string-match "\\([0-9]+\\)" desc) + (beginning-of-line 1) + (when (re-search-backward org-table-dataline-regexp tbeg t + (string-to-number (match-string 0 desc))) + (org-table-goto-column col) + (org-trim (org-table-get-field)))))))) + (defvar org-table-formula-history nil) -(defun org-table-get-formula (&optional equation) +(defvar org-table-column-names nil + "Alist with column names, derived from the `!' line.") +(defvar org-table-column-name-regexp nil + "Regular expression matching the current column names.") +(defvar org-table-local-parameters nil + "Alist with parameter names, derived from the `$' line.") +(defvar org-table-named-field-locations nil + "Alist with locations of named fields.") + +(defun org-table-get-formula (&optional equation named) "Read a formula from the minibuffer, offer stored formula as default." - (let* ((col (org-table-current-column)) + (let* ((name (car (rassoc (list (org-current-line) + (org-table-current-column)) + org-table-named-field-locations))) + (scol (if named + (if name name + (error "Not in a named field")) + (int-to-string (org-table-current-column)))) + (dummy (and name (not named) + (not (y-or-n-p "Replace named-field formula with column equation? " )) + (error "Abort"))) (org-table-may-need-update nil) (stored-list (org-table-get-stored-formulas)) - (stored (cdr (assoc col stored-list))) + (stored (cdr (assoc scol stored-list))) (eq (cond ((and stored equation (string-match "^ *= *$" equation)) stored) ((stringp equation) equation) (t (read-string - "Formula: " (or stored "") 'org-table-formula-history - stored))))) - (if (not (string-match "\\S-" eq)) - (error "Empty formula")) + (format "%s formula $%s=" (if named "Field" "Column") scol) + (or stored "") 'org-table-formula-history + ;stored + )))) + mustsave) + (when (not (string-match "\\S-" eq)) + ;; remove formula + (setq stored-list (delq (assoc scol stored-list) stored-list)) + (org-table-store-formulas stored-list) + (error "Formula removed")) (if (string-match "^ *=?" eq) (setq eq (replace-match "" t t eq))) (if (string-match " *$" eq) (setq eq (replace-match "" t t eq))) + (if (and name (not named)) + ;; We set the column equation, delete the named one. + (setq stored-list (delq (assoc name stored-list) stored-list) + mustsave t)) (if stored - (setcdr (assoc col stored-list) eq) - (setq stored-list (cons (cons col eq) stored-list))) - (if (not (equal stored eq)) + (setcdr (assoc scol stored-list) eq) + (setq stored-list (cons (cons scol eq) stored-list))) + (if (or mustsave (not (equal stored eq))) (org-table-store-formulas stored-list)) eq)) (defun org-table-store-formulas (alist) "Store the list of formulas below the current table." - (setq alist (sort alist (lambda (a b) (< (car a) (car b))))) + (setq alist (sort alist (lambda (a b) (string< (car a) (car b))))) (save-excursion (goto-char (org-table-end)) (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?") (delete-region (point) (match-end 0))) (insert "#+TBLFM: " (mapconcat (lambda (x) - (concat "$" (int-to-string (car x)) "=" (cdr x))) + (concat "$" (car x) "=" (cdr x))) alist "::") "\n"))) (defun org-table-get-stored-formulas () - "Return an alist withh the t=stored formulas directly after current table." + "Return an alist with the t=stored formulas directly after current table." (interactive) - (let (col eq eq-alist strings string) + (let (scol eq eq-alist strings string seen) (save-excursion (goto-char (org-table-end)) (when (looking-at "\\([ \t]*\n\\)*#\\+TBLFM: *\\(.*\\)") (setq strings (org-split-string (match-string 2) " *:: *")) (while (setq string (pop strings)) - (if (string-match "\\$\\([0-9]+\\) *= *\\(.*[^ \t]\\)" string) - (setq col (string-to-number (match-string 1 string)) - eq (match-string 2 string) - eq-alist (cons (cons col eq) eq-alist)))))) - eq-alist)) + (when (string-match "\\$\\([a-zA-Z0-9]+\\) *= *\\(.*[^ \t]\\)" string) + (setq scol (match-string 1 string) + eq (match-string 2 string) + eq-alist (cons (cons scol eq) eq-alist)) + (if (member scol seen) + (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol) + (push scol seen)))))) + (nreverse eq-alist))) (defun org-table-modify-formulas (action &rest columns) "Modify the formulas stored below the current table. ACTION can be `remove', `insert', `swap'. For `swap', two column numbers are expected, for the other action only a single column number is needed." (let ((list (org-table-get-stored-formulas)) - (nmax (length (org-split-string (buffer-substring (point-at-bol) (point-at-eol)) - "|"))) - col col1 col2) + (nmax (length (org-split-string + (buffer-substring (point-at-bol) (point-at-eol)) + "|"))) + col col1 col2 scol si sc1 sc2) (cond ((null list)) ; No action needed if there are no stored formulas ((eq action 'remove) - (setq col (car columns)) - (org-table-replace-in-formulas list col "INVALID") - (if (assoc col list) (setq list (delq (assoc col list) list))) + (setq col (car columns) + scol (int-to-string col)) + (org-table-replace-in-formulas list scol "INVALID") + (if (assoc scol list) (setq list (delq (assoc scol list) list))) (loop for i from (1+ col) upto nmax by 1 do - (org-table-replace-in-formulas list i (1- i)) - (if (assoc i list) (setcar (assoc i list) (1- i))))) + (setq si (int-to-string i)) + (org-table-replace-in-formulas list si (int-to-string (1- i))) + (if (assoc si list) (setcar (assoc si list) + (int-to-string (1- i)))))) ((eq action 'insert) (setq col (car columns)) (loop for i from nmax downto col by 1 do - (org-table-replace-in-formulas list i (1+ i)) - (if (assoc i list) (setcar (assoc i list) (1+ i))))) + (setq si (int-to-string i)) + (org-table-replace-in-formulas list si (int-to-string (1+ i))) + (if (assoc si list) (setcar (assoc si list) + (int-to-string (1+ i)))))) ((eq action 'swap) - (setq col1 (car columns) col2 (nth 1 columns)) - (org-table-replace-in-formulas list col1 "Z") - (org-table-replace-in-formulas list col2 col1) - (org-table-replace-in-formulas list "Z" col2) - (if (assoc col1 list) (setcar (assoc col1 list) "Z")) - (if (assoc col2 list) (setcar (assoc col2 list) col1)) - (if (assoc "Z" list) (setcar (assoc "Z" list) col2))) + (setq col1 (car columns) col2 (nth 1 columns) + sc1 (int-to-string col1) sc2 (int-to-string col2)) + ;; Hopefully, ZqZ will never be a name in a table... FIXME: + (org-table-replace-in-formulas list sc1 "ZqZ") + (org-table-replace-in-formulas list sc2 sc1) + (org-table-replace-in-formulas list "ZqZ" sc2) + (if (assoc sc1 list) (setcar (assoc sc1 list) "ZqZ")) + (if (assoc sc2 list) (setcar (assoc sc2 list) sc1)) + (if (assoc "ZqZ" list) (setcar (assoc "ZqZ" list) sc2))) (t (error "Invalid action in `org-table-modify-formulas'"))) (if list (org-table-store-formulas list)))) @@ -7079,20 +7233,14 @@ expected, for the other action only a single column number is needed." (setq s (replace-match s2 t t s))) (setcdr elt s)))) -(defvar org-table-column-names nil - "Alist with column names, derived from the `!' line.") -(defvar org-table-column-name-regexp nil - "Regular expression matching the current column names.") -(defvar org-table-local-parameters nil - "Alist with parameter names, derived from the `$' line.") - (defun org-table-get-specials () "Get the column nmaes and local parameters for this table." (save-excursion (let ((beg (org-table-begin)) (end (org-table-end)) - names name fields fields1 field cnt c v) + names name fields fields1 field cnt c v line col) (setq org-table-column-names nil - org-table-local-parameters nil) + org-table-local-parameters nil + org-table-named-field-locations nil) (goto-char beg) (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t) (setq names (org-split-string (match-string 1) " *| *") @@ -7117,13 +7265,15 @@ expected, for the other action only a single column number is needed." fields (org-split-string (match-string 2) " *| *")) (save-excursion (beginning-of-line (if (equal c "_") 2 0)) + (setq line (org-current-line) col 1) (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)") (setq fields1 (org-split-string (match-string 1) " *| *")))) - (while (setq field (pop fields)) - (setq v (pop fields1)) - (if (and (stringp field) (stringp v) - (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field)) - (push (cons field v) org-table-local-parameters))))))) + (while (and fields1 (setq field (pop fields))) + (setq v (pop fields1) col (1+ col)) + (when (and (stringp field) (stringp v) + (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field)) + (push (cons field v) org-table-local-parameters) + (push (list field line col) org-table-named-field-locations))))))) (defun org-this-word () ;; Get the current word @@ -7133,46 +7283,18 @@ expected, for the other action only a single column number is needed." (buffer-substring-no-properties beg end)))) (defun org-table-maybe-eval-formula () - "Check if the current field starts with \"=\" and evaluate the formula." + "Check if the current field starts with \"=\" or \":=\". +If yes, store the formula and apply it." ;; We already know we are in a table. Get field will only return a formula ;; when appropriate. It might return a separator line, but no problem. (when org-table-formula-evaluate-inline (let* ((field (org-trim (or (org-table-get-field) ""))) - (dfield (downcase field)) - col bolpos nlast) - (when (equal (string-to-char field) ?=) - (if (string-match "^\\(=sum[vh]?\\)\\([0-9]+\\)$" dfield) - (setq nlast (1+ (string-to-number (match-string 2 dfield))) - dfield (match-string 1 dfield))) - (cond - ((equal dfield "=sumh") - (org-table-get-field - nil (org-table-sum - (save-excursion (org-table-goto-column 1) (point)) - (point) nlast))) - ((member dfield '("=sum" "=sumv")) - (setq col (org-table-current-column) - bolpos (point-at-bol)) - (org-table-get-field - nil (org-table-sum - (save-excursion - (goto-char (org-table-begin)) - (if (re-search-forward org-table-dataline-regexp bolpos t) - (progn - (goto-char (match-beginning 0)) - (org-table-goto-column col) - (point)) - (error "No datalines above current"))) - (point) nlast))) - ((and (string-match "^ *=" field) - (fboundp 'calc-eval)) - (org-table-eval-formula nil field))))))) - -(defvar org-last-recalc-undo-list nil) -(defcustom org-table-allow-line-recalculation t - "FIXME:" - :group 'org-table - :type 'boolean) + named eq) + (when (string-match "^:?=\\(.+\\)" field) + (setq named (equal (string-to-char field) ?:) + eq (match-string 1 field)) + (if (fboundp 'calc-eval) + (org-table-eval-formula (if named '(4) nil) eq)))))) (defvar org-recalc-commands nil "List of commands triggering the reccalculation of a line. @@ -7210,8 +7332,10 @@ of the new mark." (col (org-table-current-column)) (forcenew (car (assoc newchar org-recalc-marks))) epos new) - (if l1 (setq newchar (char-to-string (read-char-exclusive "Change region to what mark? Type # * ! $ or SPC: ")) - forcenew (car (assoc newchar org-recalc-marks)))) + (when l1 + (message "Change region to what mark? Type # * ! $ or SPC: ") + (setq newchar (char-to-string (read-char-exclusive)) + forcenew (car (assoc newchar org-recalc-marks)))) (if (and newchar (not forcenew)) (error "Invalid NEWCHAR `%s' in `org-table-rotate-recalc-marks'" newchar)) @@ -7248,7 +7372,7 @@ of the new mark." (defun org-table-maybe-recalculate-line () "Recompute the current line if marked for it, and if we haven't just done it." (interactive) - (and org-table-allow-line-recalculation + (and org-table-allow-automatic-line-recalculation (not (and (memq last-command org-recalc-commands) (equal org-last-recalc-line (org-current-line)))) (save-excursion (beginning-of-line 1) @@ -7273,7 +7397,7 @@ When nil, simply write \"#ERROR\" in corrupted fields.") (cons var (cons value modes))) modes) -(defun org-table-eval-formula (&optional ndown equation +(defun org-table-eval-formula (&optional arg equation suppress-align suppress-const suppress-store) "Replace the table field value at the cursor by the result of a calculation. @@ -7283,64 +7407,46 @@ most exciting program ever written for GNU Emacs. So you need to have calc installed in order to use this function. In a table, this command replaces the value in the current field with the -result of a formula. While nowhere near the computation options of a -spreadsheet program, this is still very useful. There is no automatic -updating of a calculated field, but the table will remember the last -formula for each column. The command needs to be applied again after -changing input fields. - -When called, the command first prompts for a formula, which is read in the -minibuffer. Previously entered formulas are available through the history -list, and the last used formula for each column is offered as a default. +result of a formula. It also installes the formula as the \"current\" column +formula, by storing it in a special line below the table. When called +with a `C-u' prefix, the current field must ba a named field, and the +formula is installed as valid in only this specific field. + +When called, the command first prompts for a formula, which is read in +the minibuffer. Previously entered formulas are available through the +history list, and the last used formula is offered as a default. These stored formulas are adapted correctly when moving, inserting, or deleting columns with the corresponding commands. The formula can be any algebraic expression understood by the calc package. -Before evaluation, variable substitution takes place: \"$\" is replaced by -the field the cursor is currently in, and $1..$n reference the fields in -the current row. Values from a *different* row can *not* be referenced -here, so the command supports only horizontal computing. The formula can -contain an optional printf format specifier after a semicolon, to reformat -the result. - -A few examples for formulas: - $1+$2 Sum of first and second field - $1+$2;%.2f Same, and format result to two digits after dec.point - exp($2)+exp($1) Math functions can be used - $;%.1f Reformat current cell to 1 digit after dec.point - ($3-32)*5/9 degrees F -> C conversion - -When called with a raw \\[universal-argument] prefix, the formula is applied to the current -field, and to the same same column in all following rows, until reaching a -horizontal line or the end of the table. When the command is called with a -numeric prefix argument (like M-3 or C-7 or \\[universal-argument] 24), the formula is applied -to the current row, and to the following n-1 rows (but not beyond a -separator line). - -This function can also be called from Lisp programs and offers two additional -Arguments: EQUATION can be the formula to apply. If this argument is given, -the user will not be prompted. SUPPRESS-ALIGN is used to speed-up -recursive calls by by-passing unnecessary aligns. SUPPRESS-CONST suppresses -the interpretation of constants in the formula. SUPPRESS-STORE means the -formula should not be stored, either because it is already stored, or because -it is a modified equation that should not overwrite the stored one." +For details, see the Org-mode manual. + +This function can also be called from Lisp programs and offers +additional Arguments: EQUATION can be the formula to apply. If this +argument is given, the user will not be prompted. SUPPRESS-ALIGN is +used to speed-up recursive calls by by-passing unnecessary aligns. +SUPPRESS-CONST suppresses the interpretation of constants in the +formula, assuming that this has been done already outside the fuction. +SUPPRESS-STORE means the formula should not be stored, either because +it is already stored, or because it is a modified equation that should +not overwrite the stored one." (interactive "P") - (setq ndown (if (equal ndown '(4)) 10000 (prefix-numeric-value ndown))) (require 'calc) (org-table-check-inside-data-field) (org-table-get-specials) (let* (fields + (ndown (if (integerp arg) arg 1)) (org-table-automatic-realign nil) (case-fold-search nil) (down (> ndown 1)) (formula (if (and equation suppress-store) equation - (org-table-get-formula equation))) + (org-table-get-formula equation (equal arg '(4))))) (n0 (org-table-current-column)) (modes (copy-sequence org-calc-default-modes)) n form fmt x ev orig c) ;; Parse the format string. Since we have a lot of modes, this is - ;; a lot of work. + ;; a lot of work. However, I think calc still uses most of the time. (if (string-match ";" formula) (let ((tmp (org-split-string formula ";"))) (setq formula (car tmp) @@ -7374,15 +7480,23 @@ it is a modified equation that should not overwrite the stored one." fields))) (setq ndown (1- ndown)) (setq form (copy-sequence formula)) + ;; Insert the references to fields in same row (while (string-match "\\$\\([0-9]+\\)?" form) (setq n (if (match-beginning 1) - (string-to-int (match-string 1 form)) + (string-to-number (match-string 1 form)) n0) x (nth (1- n) fields)) (unless x (error "Invalid field specifier \"%s\"" (match-string 0 form))) (if (equal x "") (setq x "0")) (setq form (replace-match (concat "(" x ")") t t form))) + ;; Insert ranges in current column + (while (string-match "\\&[-I0-9]+" form) + (setq form (replace-match + (save-match-data + (org-table-get-vertical-vector (match-string 0 form) + nil n0)) + t t form))) (setq ev (calc-eval (cons form modes) (if org-table-formula-numbers-only 'num))) @@ -7424,24 +7538,32 @@ $1-> %s\n" orig formula form)) (unless (org-at-table-p) (error "Not at a table")) (org-table-get-specials) (let* ((eqlist (sort (org-table-get-stored-formulas) - (lambda (a b) (< (car a) (car b))))) + (lambda (a b) (string< (car a) (car b))))) (inhibit-redisplay t) (line-re org-table-dataline-regexp) (thisline (+ (if (bolp) 1 0) (count-lines (point-min) (point)))) (thiscol (org-table-current-column)) - beg end entry eql (cnt 0)) + beg end entry eqlnum eqlname eql (cnt 0) eq a name) ;; Insert constants in all formulas (setq eqlist (mapcar (lambda (x) (setcdr x (org-table-formula-substitute-names (cdr x))) x) eqlist)) + ;; Split the equation list + (while (setq eq (pop eqlist)) + (if (<= (string-to-char (car eq)) ?9) + (push eq eqlnum) + (push eq eqlname))) + (setq eqlnum (nreverse eqlnum) eqlname (nreverse eqlname)) (if all (progn (setq end (move-marker (make-marker) (1+ (org-table-end)))) (goto-char (setq beg (org-table-begin))) - (if (re-search-forward org-table-recalculate-regexp end t) + (if (re-search-forward org-table-calculate-mark-regexp end t) + ;; This is a table with marked lines, only compute selected lines (setq line-re org-table-recalculate-regexp) + ;; Move forward to the first non-header line (if (and (re-search-forward org-table-dataline-regexp end t) (re-search-forward org-table-hline-regexp end t) (re-search-forward org-table-dataline-regexp end t)) @@ -7452,23 +7574,37 @@ $1-> %s\n" orig formula form)) (goto-char beg) (and all (message "Re-applying formulas to full table...")) (while (re-search-forward line-re end t) - (unless (string-match "^ *[!$] *$" (org-table-get-field 1)) + (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1)) ;; Unprotected line, recalculate (and all (message "Re-applying formulas to full table...(line %d)" (setq cnt (1+ cnt)))) (setq org-last-recalc-line (org-current-line)) - (setq eql eqlist) + (setq eql eqlnum) (while (setq entry (pop eql)) (goto-line org-last-recalc-line) - (org-table-goto-column (car entry) nil 'force) + (org-table-goto-column (string-to-number (car entry)) nil 'force) (org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore)))) (goto-line thisline) (org-table-goto-column thiscol) (or noalign (and org-table-may-need-update (org-table-align)) - (and all (message "Re-applying formulas to %d lines...done" cnt))))) + (and all (message "Re-applying formulas to %d lines...done" cnt))) + ;; Now do the names fields + (while (setq eq (pop eqlname)) + (setq name (car eq) + a (assoc name org-table-named-field-locations)) + (when a + (message "Re-applying formula to named field: %s" name) + (goto-line (nth 1 a)) + (org-table-goto-column (nth 2 a)) + (org-table-eval-formula nil (cdr eq) 'noalign 'nocst 'nostore))) + ;; back to initial position + (goto-line thisline) + (org-table-goto-column thiscol) + (or noalign (and org-table-may-need-update (org-table-align)) + (and all (message "Re-applying formulas...done"))))) (defun org-table-formula-substitute-names (f) - "Replace $const with values in stirng F." + "Replace $const with values in string F." (let ((start 0) a n1 n2 nn1 nn2 s (f1 f)) ;; First, check for column names (while (setq start (string-match org-table-column-name-regexp f start)) @@ -7505,6 +7641,136 @@ Parameters get priority." (and (fboundp 'constants-get) (constants-get const)) "#UNDEFINED_NAME")) +(defvar org-edit-formulas-map (make-sparse-keymap)) +(define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas) +(define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas) +(define-key org-edit-formulas-map "\C-c?" 'org-show-variable) + +(defvar org-pos) +(defvar org-window-configuration) + +(defun org-table-edit-formulas () + "Edit the formulas of the current table in a separate buffer." + (interactive) + (unless (org-at-table-p) + (error "Not at a table")) + (org-table-get-specials) + (let ((eql (org-table-get-stored-formulas)) + (pos (move-marker (make-marker) (point))) + (wc (current-window-configuration)) + entry loc s) + (switch-to-buffer-other-window "*Edit Formulas*") + (erase-buffer) + (fundamental-mode) + (set (make-local-variable 'org-pos) pos) + (set (make-local-variable 'org-window-configuration) wc) + (use-local-map org-edit-formulas-map) + (setq s "# Edit formulas and finish with `C-c C-c'. +# Use `C-u C-c C-c' to also appy them immediately to the entire table. +# Use `C-c ?' to get information about $name at point. +# To cancel editing, press `C-c C-q'.\n") + (put-text-property 0 (length s) 'face 'font-lock-comment-face s) + (insert s) + (while (setq entry (pop eql)) + (when (setq loc (assoc (car entry) org-table-named-field-locations)) + (setq s (format "# Named formula, referring to column %d in line %d\n" + (nth 2 loc) (nth 1 loc))) + (put-text-property 0 (length s) 'face 'font-lock-comment-face s) + (insert s)) + (setq s (concat "$" (car entry) "=" (cdr entry) "\n")) + (remove-text-properties 0 (length s) '(face nil) s) + (insert s)) + (goto-char (point-min)) + (message "Edit formulas and finish with `C-c C-c'."))) + +(defun org-show-variable () + "Show the location/value of the $ expression at point." + (interactive) + (let (var (pos org-pos) (win (selected-window)) e) + (save-excursion + (or (looking-at "\\$") (skip-chars-backward "$a-zA-Z0-9")) + (if (looking-at "\\$\\([a-zA-Z0-9]+\\)") + (setq var (match-string 1)) + (error "No variable at point"))) + (cond + ((setq e (assoc var org-table-named-field-locations)) + (switch-to-buffer-other-window (marker-buffer pos)) + (goto-line (nth 1 e)) + (org-table-goto-column (nth 2 e)) + (select-window win) + (message "Named field, column %d of line %d" (nth 2 e) (nth 1 e))) + ((setq e (assoc var org-table-column-names)) + (switch-to-buffer-other-window (marker-buffer pos)) + (goto-char pos) + (goto-char (org-table-begin)) + (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|") + (org-table-end) t) + (progn + (goto-char (match-beginning 1)) + (message "Named column (column %s)" (cdr e))) + (error "Column name not found")) + (select-window win)) + ((string-match "^[0-9]$" var) + ;; column number + (switch-to-buffer-other-window (marker-buffer pos)) + (goto-char pos) + (goto-char (org-table-begin)) + (recenter 1) + (if (re-search-forward org-table-dataline-regexp + (org-table-end) t) + (progn + (goto-char (match-beginning 0)) + (org-table-goto-column (string-to-number var)) + (message "Column %s" var)) + (error "Column name not found")) + (select-window win)) + ((setq e (assoc var org-table-local-parameters)) + (switch-to-buffer-other-window (marker-buffer pos)) + (goto-char pos) + (goto-char (org-table-begin)) + (if (re-search-forward (concat "^[ \t]*| *\\$ *.*?| *\\(" var "=\\)") nil t) + (progn + (goto-char (match-beginning 1)) + (message "Local parameter.")) + (error "Parameter not found")) + (select-window win)) + (t + (cond + ((setq e (assoc var org-table-formula-constants)) + (message "Constant: $%s=%s in `org-table-formula-constants'." var (cdr e))) + ((setq e (and (fboundp 'constants-get) (constants-get var))) + (message "Constant: $%s=%s, retrieved from `constants.el'." var e)) + (t (error "Undefined name $%s" var))))))) + +(defun org-finish-edit-formulas (&optional arg) + "Parse the buffer for formula definitions and install them. +With prefix ARG, apply the new formulas to the table." + (interactive "P") + (let ((pos org-pos) eql) + (goto-char (point-min)) + (while (re-search-forward "^\\$\\([a-zA-Z0-9]+\\) *= *\\(.*?\\) *$" nil t) + (push (cons (match-string 1) (match-string 2)) eql)) + (set-window-configuration org-window-configuration) + (select-window (get-buffer-window (marker-buffer pos))) + (goto-char pos) + (unless (org-at-table-p) + (error "Lost table position - cannot install formulae")) + (org-table-store-formulas eql) + (move-marker pos nil) + (kill-buffer "*Edit Formulas*") + (if arg + (org-table-recalculate 'all) + (message "New formulas installed - press C-u C-c C-c to apply.")))) + +(defun org-abort-edit-formulas () + "Abort editing formulas, without installing the changes." + (interactive) + (let ((pos org-pos)) + (set-window-configuration org-window-configuration) + (select-window (get-buffer-window (marker-buffer pos))) + (goto-char pos) + (message "Formula editing aborted without installing changes"))) + ;;; The orgtbl minor mode ;; Define a minor mode which can be used in other modes in order to @@ -7578,7 +7844,7 @@ table editor in arbitrary modes.") (and c (setq minor-mode-map-alist (cons c (delq c minor-mode-map-alist))))) (set (make-local-variable (quote org-table-may-need-update)) t) - (make-local-hook (quote before-change-functions)) + (make-local-hook (quote before-change-functions)) ; needed for XEmacs (add-hook 'before-change-functions 'org-before-change-function nil 'local) (set (make-local-variable 'org-old-auto-fill-inhibit-regexp) @@ -7657,6 +7923,7 @@ to execute outside of tables." '("\C-c+" org-table-sum) '("\C-c|" org-table-toggle-vline-visibility) '("\C-c=" org-table-eval-formula) + '("\C-c'" org-table-edit-formulas) '("\C-c*" org-table-recalculate) '([(control ?#)] org-table-rotate-recalc-marks))) elt key fun cmd) @@ -7714,8 +7981,9 @@ to execute outside of tables." ["Paste Rectangle" org-paste-special :active (org-at-table-p) :keys "C-c C-y"] ["Fill Rectangle" org-table-wrap-region :active (org-at-table-p) :keys "C-c C-q"]) "--" - ["Eval Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="] - ["Eval Formula Down " (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="] + ["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="] + ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="] + ["Edit Formulas" org-table-edit-formulas :active (org-at-table-p) :keys "C-c '"] ["Recalculate line" org-table-recalculate :active (org-at-table-p) :keys "C-c *"] ["Recalculate all" (org-table-recalculate '(4)) :active (org-at-table-p) :keys "C-u C-c *"] ["Toggle Recalculate Mark" org-table-rotate-recalc-marks :active (org-at-table-p) :keys "C-c #"] @@ -8395,14 +8663,13 @@ Does include HTML export options as well as TODO and CATEGORY stuff." (insert s))) (defun org-toggle-fixed-width-section (arg) - "Toggle the fixed-width indicator at the beginning of lines in the region. -If there is no active region, only acts on the current line. -If the first non-white character in the first line of the region is a -vertical bar \"|\", then the command removes the bar from all lines in -the region. If the first character is not a bar, the command adds a -bar to all lines, in the column given by the beginning of the region. - -If there is a numerical prefix ARG, create ARG new lines starting with \"|\"." + "Toggle the fixed-width export. +If there is no active region, the QUOTE keyword at the current headline is +inserted or removed. When present, it causes the text between this headline +and the next to be exported as fixed-width text, and unmodified. +If there is an active region, this command adds or removes a colon as the +first character of this line. If the first character of a line is a colon, +this line is also exported in fixed-width font." (interactive "P") (let* ((cc 0) (regionp (org-region-active-p)) @@ -8411,23 +8678,33 @@ If there is a numerical prefix ARG, create ARG new lines starting with \"|\"." (nlines (or arg (if (and beg end) (count-lines beg end) 1))) (re "[ \t]*\\(:\\)") off) - (save-excursion - (goto-char beg) - (setq cc (current-column)) - (beginning-of-line 1) - (setq off (looking-at re)) - (while (> nlines 0) - (setq nlines (1- nlines)) - (beginning-of-line 1) - (cond - (arg - (move-to-column cc t) - (insert ":\n") - (forward-line -1)) - ((and off (looking-at re)) - (replace-match "" t t nil 1)) - ((not off) (move-to-column cc t) (insert ":"))) - (forward-line 1))))) + (if regionp + (save-excursion + (goto-char beg) + (setq cc (current-column)) + (beginning-of-line 1) + (setq off (looking-at re)) + (while (> nlines 0) + (setq nlines (1- nlines)) + (beginning-of-line 1) + (cond + (arg + (move-to-column cc t) + (insert ":\n") + (forward-line -1)) + ((and off (looking-at re)) + (replace-match "" t t nil 1)) + ((not off) (move-to-column cc t) (insert ":"))) + (forward-line 1))) + (save-excursion + (org-back-to-heading) + (if (looking-at (concat outline-regexp + "\\( +\\<" org-quote-string "\\>\\)")) + (replace-match "" t t nil 1) + (if (looking-at outline-regexp) + (progn + (goto-char (match-end 0)) + (insert " " org-quote-string)))))))) (defun org-export-as-html-and-open (arg) "Export the outline as HTML and immediately open it with a browser. @@ -8456,28 +8733,30 @@ headlines. The default is 3. Lower levels will become bulleted lists." (setq-default org-deadline-line-regexp org-deadline-line-regexp) (setq-default org-done-string org-done-string) (let* ((region-p (org-region-active-p)) - (region - (buffer-substring - (if region-p (region-beginning) (point-min)) - (if region-p (region-end) (point-max)))) - (all_lines - (org-skip-comments (org-split-string region "[\r\n]"))) - (lines (org-export-find-first-heading-line all_lines)) - (level 0) (line "") (origline "") txt todo - (umax nil) - (filename (concat (file-name-sans-extension (buffer-file-name)) - ".html")) - (buffer (find-file-noselect filename)) - (levels-open (make-vector org-level-max nil)) - (date (format-time-string "%Y/%m/%d" (current-time))) + (region + (buffer-substring + (if region-p (region-beginning) (point-min)) + (if region-p (region-end) (point-max)))) + (all_lines + (org-skip-comments (org-split-string region "[\r\n]"))) + (lines (org-export-find-first-heading-line all_lines)) + (level 0) (line "") (origline "") txt todo + (umax nil) + (filename (concat (file-name-sans-extension (buffer-file-name)) + ".html")) + (buffer (find-file-noselect filename)) + (levels-open (make-vector org-level-max nil)) + (date (format-time-string "%Y/%m/%d" (current-time))) (time (format-time-string "%X" (current-time))) - (author user-full-name) + (author user-full-name) (title (buffer-name)) - (options nil) + (options nil) + (quote-re (concat "^\\*+[ \t]*" org-quote-string "\\>")) + (inquote nil) (email user-mail-address) - (language org-export-default-language) + (language org-export-default-language) (text nil) - (lang-words nil) + (lang-words nil) (head-count 0) cnt (start 0) table-open type @@ -8491,22 +8770,22 @@ headlines. The default is 3. Lower levels will become bulleted lists." ;; Search for the export key lines (org-parse-key-lines) (setq lang-words (or (assoc language org-export-language-setup) - (assoc "en" org-export-language-setup))) + (assoc "en" org-export-language-setup))) ;; Switch to the output buffer (if (or hidden (not org-export-html-show-new-buffer)) - (set-buffer buffer) + (set-buffer buffer) (switch-to-buffer-other-window buffer)) (erase-buffer) (fundamental-mode) (let ((case-fold-search nil)) (if options (org-parse-export-options options)) (setq umax (if arg (prefix-numeric-value arg) - org-export-headline-levels)) + org-export-headline-levels)) ;; File header (insert (format - "<html lang=\"%s\"><head> + "<html lang=\"%s\"><head> <title>%s</title> <meta http-equiv=\"Content-Type\" content=\"text/html\"> <meta name=generator content=\"Org-mode\"> @@ -8514,15 +8793,15 @@ headlines. The default is 3. Lower levels will become bulleted lists." <meta name=author content=\"%s\"> </head><body> " - language (org-html-expand title) date time author)) + language (org-html-expand title) date time author)) (if title (insert (concat "<H1 align=\"center\">" (org-html-expand title) "</H1>\n"))) (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) (if email (insert (concat "<a href=\"mailto:" email "\"><" - email "></a>\n"))) + email "></a>\n"))) (if (or author email) (insert "<br>\n")) (if (and date time) (insert (concat (nth 2 lang-words) ": " - date " " time "<br>\n"))) + date " " time "<br>\n"))) (if text (insert (concat "<p>\n" (org-html-expand text)))) (if org-export-with-toc (progn @@ -8577,123 +8856,141 @@ headlines. The default is 3. Lower levels will become bulleted lists." )) (setq head-count 0) (org-init-section-numbers) + (while (setq line (pop lines) origline line) - ;; Protect the links - (setq start 0) - (while (string-match org-link-maybe-angles-regexp line start) - (setq start (match-end 0)) - (setq line (replace-match - (concat "\000" (match-string 1 line) "\000") - t t line))) - - ;; replace "<" and ">" by "<" and ">" - ;; handle @<..> HTML tags (replace "@>..<" by "<..>") - (setq line (org-html-expand line)) - - ;; Verbatim lines - (if (and org-export-with-fixed-width - (string-match "^[ \t]*:\\(.*\\)" line)) + ;; end of quote? + (when (and inquote (string-match "^\\*+" line)) + (insert "</pre>\n") + (setq inquote nil)) + ;; inquote + (if inquote (progn - (let ((l (match-string 1 line))) - (while (string-match " " l) - (setq l (replace-match " " t t l))) - (insert "\n<span style='font-family:Courier'>" - l "</span>" - (if (and lines - (not (string-match "^[ \t]+\\(:.*\\)" - (car lines)))) - "<br>\n" "\n")))) + (insert line "\n") + (setq line (org-html-expand line))) ;;????? FIXME: not needed? + + ;; Protect the links (setq start 0) - (while (string-match org-protected-link-regexp line start) - (setq start (- (match-end 0) 2)) - (setq type (match-string 1 line)) - (cond - ((member type '("http" "https" "ftp" "mailto" "news")) - ;; standard URL - (setq line (replace-match -; "<a href=\"\\1:\\2\"><\\1:\\2></a>" - "<a href=\"\\1:\\2\">\\1:\\2</a>" - nil nil line))) - ((string= type "file") - ;; FILE link - (let* ((filename (match-string 2 line)) - (abs-p (file-name-absolute-p filename)) - (thefile (if abs-p (expand-file-name filename) filename)) - (thefile (save-match-data - (if (string-match ":[0-9]+$" thefile) - (replace-match "" t t thefile) - thefile))) - (file-is-image-p - (save-match-data - (string-match (org-image-file-name-regexp) thefile)))) + (while (string-match org-link-maybe-angles-regexp line start) + (setq start (match-end 0)) + (setq line (replace-match + (concat "\000" (match-string 1 line) "\000") + t t line))) + + ;; replace "<" and ">" by "<" and ">" + ;; handle @<..> HTML tags (replace "@>..<" by "<..>") + (setq line (org-html-expand line)) + + ;; Verbatim lines + (if (and org-export-with-fixed-width + (string-match "^[ \t]*:\\(.*\\)" line)) + (progn + (let ((l (match-string 1 line))) + (while (string-match " " l) + (setq l (replace-match " " t t l))) + (insert "\n<span style='font-family:Courier'>" + l "</span>" + (if (and lines + (not (string-match "^[ \t]+\\(:.*\\)" + (car lines)))) + "<br>\n" "\n")))) + + (setq start 0) + (while (string-match org-protected-link-regexp line start) + (setq start (- (match-end 0) 2)) + (setq type (match-string 1 line)) + (cond + ((member type '("http" "https" "ftp" "mailto" "news")) + ;; standard URL (setq line (replace-match - (if (and org-export-html-inline-images - file-is-image-p) - (concat "<img src=\"" thefile "\"/>") - (concat "<a href=\"" thefile "\">\\1:\\2</a>")) - nil nil line)))) - - ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell")) - (setq line (replace-match - "<i><\\1:\\2></i>" nil nil line))))) - - ;; TODO items - (if (and (string-match org-todo-line-regexp line) - (match-beginning 2)) - (if (equal (match-string 2 line) org-done-string) + ; "<a href=\"\\1:\\2\"><\\1:\\2></a>" + "<a href=\"\\1:\\2\">\\1:\\2</a>" + nil nil line))) + ((string= type "file") + ;; FILE link + (let* ((filename (match-string 2 line)) + (abs-p (file-name-absolute-p filename)) + (thefile (if abs-p (expand-file-name filename) filename)) + (thefile (save-match-data + (if (string-match ":[0-9]+$" thefile) + (replace-match "" t t thefile) + thefile))) + (file-is-image-p + (save-match-data + (string-match (org-image-file-name-regexp) thefile)))) (setq line (replace-match - "<span style='color:green'>\\2</span>" - nil nil line 2)) - (setq line (replace-match "<span style='color:red'>\\2</span>" - nil nil line 2)))) + (if (and org-export-html-inline-images + file-is-image-p) + (concat "<img src=\"" thefile "\"/>") + (concat "<a href=\"" thefile "\">\\1:\\2</a>")) + nil nil line)))) - ;; DEADLINES - (if (string-match org-deadline-line-regexp line) - (progn - (if (save-match-data - (string-match "<a href" - (substring line 0 (match-beginning 0)))) - nil ; Don't do the replacement - it is inside a link - (setq line (replace-match "<span style='color:red'>\\&</span>" - nil nil line 1))))) + ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell")) + (setq line (replace-match + "<i><\\1:\\2></i>" nil nil line))))) + + ;; TODO items + (if (and (string-match org-todo-line-regexp line) + (match-beginning 2)) + (if (equal (match-string 2 line) org-done-string) + (setq line (replace-match + "<span style='color:green'>\\2</span>" + nil nil line 2)) + (setq line (replace-match "<span style='color:red'>\\2</span>" + nil nil line 2)))) + + ;; DEADLINES + (if (string-match org-deadline-line-regexp line) + (progn + (if (save-match-data + (string-match "<a href" + (substring line 0 (match-beginning 0)))) + nil ; Don't do the replacement - it is inside a link + (setq line (replace-match "<span style='color:red'>\\&</span>" + nil nil line 1))))) - (cond - ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) - ;; This is a headline - (setq level (- (match-end 1) (match-beginning 1)) - txt (match-string 2 line)) - (if (<= level umax) (setq head-count (+ head-count 1))) - (org-html-level-start level txt umax - (and org-export-with-toc (<= level umax)) - head-count)) - - ((and org-export-with-tables - (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line)) - (if (not table-open) - ;; New table starts - (setq table-open t table-buffer nil table-orig-buffer nil)) - ;; Accumulate lines - (setq table-buffer (cons line table-buffer) - table-orig-buffer (cons origline table-orig-buffer)) - (when (or (not lines) - (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" - (car lines)))) - (setq table-open nil - table-buffer (nreverse table-buffer) - table-orig-buffer (nreverse table-orig-buffer)) - (insert (org-format-table-html table-buffer table-orig-buffer)))) - (t - ;; Normal lines - ;; Lines starting with "-", and empty lines make new paragraph. - (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>")) - (insert line (if org-export-preserve-breaks "<br>\n" "\n")))) - )) - (if org-export-html-with-timestamp - (insert org-export-html-html-helper-timestamp)) - (insert "</body>\n</html>\n") - (normal-mode) - (save-buffer) - (goto-char (point-min))))) + + (cond + ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) + ;; This is a headline + (setq level (- (match-end 1) (match-beginning 1)) + txt (match-string 2 line)) + (if (<= level umax) (setq head-count (+ head-count 1))) + (org-html-level-start level txt umax + (and org-export-with-toc (<= level umax)) + head-count) + ;; QUOTES + (when (string-match quote-re line) + (insert "<pre>") + (setq inquote t))) + + ((and org-export-with-tables + (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line)) + (if (not table-open) + ;; New table starts + (setq table-open t table-buffer nil table-orig-buffer nil)) + ;; Accumulate lines + (setq table-buffer (cons line table-buffer) + table-orig-buffer (cons origline table-orig-buffer)) + (when (or (not lines) + (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" + (car lines)))) + (setq table-open nil + table-buffer (nreverse table-buffer) + table-orig-buffer (nreverse table-orig-buffer)) + (insert (org-format-table-html table-buffer table-orig-buffer)))) + (t + ;; Normal lines + ;; Lines starting with "-", and empty lines make new paragraph. + ;; FIXME: Should we add + and *? + (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>")) + (insert line (if org-export-preserve-breaks "<br>\n" "\n")))) + ))) + (if org-export-html-with-timestamp + (insert org-export-html-html-helper-timestamp)) + (insert "</body>\n</html>\n") + (normal-mode) + (save-buffer) + (goto-char (point-min))))) (defun org-format-table-html (lines olines) "Find out which HTML converter to use and return the HTML code." @@ -9003,7 +9300,7 @@ stacked delimiters is N. Escaping delimiters is not possible." (if (string-match "\\`[A-Z]\\'" number-string) (aset org-section-numbers i (- (string-to-char number-string) ?A -1)) - (aset org-section-numbers i (string-to-int number-string))) + (aset org-section-numbers i (string-to-number number-string))) (pop numbers)) (setq i (1- i))))) @@ -9101,6 +9398,7 @@ When LEVEL is non-nil, increase section numbers on that level." (define-key org-mode-map "\C-c+" 'org-table-sum) (define-key org-mode-map "\C-c|" 'org-table-toggle-vline-visibility) (define-key org-mode-map "\C-c=" 'org-table-eval-formula) +(define-key org-mode-map "\C-c'" 'org-table-edit-formulas) (define-key org-mode-map "\C-c*" 'org-table-recalculate) (define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks) (define-key org-mode-map "\C-c~" 'org-table-create-with-table.el) @@ -9385,11 +9683,14 @@ scanning the buffer for these lines and updating the information." ["Fill Rectangle" org-table-wrap-region (org-at-table-p)]) "--" ("Calculate" - ["Eval Formula" org-table-eval-formula (org-at-table-p)] - ["Eval Formula Down" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="] + ["Set Column Formula" org-table-eval-formula (org-at-table-p)] + ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="] + ["Edit Formulas" org-table-edit-formulas (org-at-table-p)] + "--" ["Recalculate line" org-table-recalculate (org-at-table-p)] ["Recalculate all" (lambda () (interactive) (org-table-recalculate '(4))) :active (org-at-table-p) :keys "C-u C-c *"] ["Toggle Recalculate Mark" org-table-rotate-recalc-marks (org-at-table-p)] + "--" ["Sum Column/Rectangle" org-table-sum (or (org-at-table-p) (org-region-active-p))] ["Which Column?" org-table-current-column (org-at-table-p)]) @@ -9768,14 +10069,23 @@ Show the heading too, if it is currently invisible." "\\):[ \t]*" (if org-noutline-p "\\(.+\\)" "\\([^\n\r]+\\)"))) -;; Advise the bookmark-jump function to make jump position visible -;; Wrapped into eval-after-load to avoid loading advice unnecessarily +;; Make `bookmark-jump' show the jump location if it was hidden. (eval-after-load "bookmark" - '(defadvice bookmark-jump (after org-make-visible activate) - "Make the position visible." - (and (eq major-mode 'org-mode) - (org-invisible-p) - (org-show-hierarchy-above)))) + '(if (boundp 'bookmark-after-jump-hook) + ;; We can use the hook + (add-hook 'bookmark-after-jump-hook 'org-bookmark-jump-unhide) + ;; Hook not available, use advice + (defadvice bookmark-jump (after org-make-visible activate) + "Make the position visible." + (org-bookmark-jump-unhide)))) + +(defun org-bookmark-jump-unhide () + "Unhide the current position, to show the bookmark location." + (and (eq major-mode 'org-mode) + (or (org-invisible-p) + (save-excursion (goto-char (max (point-min) (1- (point)))) + (org-invisible-p))) + (org-show-hierarchy-above))) ;;; Finish up diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index c8828e1a6d5..365ed19d9ce 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el @@ -1,6 +1,7 @@ ;;; page-ext.el --- extended page handling commands -;; Copyright (C) 1990, 1991, 1993, 1994 Free Software Foundation +;; Copyright (C) 1990, 1991, 1993, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: Robert J. Chassell <bob@gnu.org> ;; Keywords: wp data diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index 712b1ef12a1..ffb4c89f2db 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el @@ -1,6 +1,6 @@ ;;; page.el --- page motion commands for Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp convenience diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index c4f7750fe70..f4af34fdabf 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el @@ -1,7 +1,7 @@ ;;; paragraphs.el --- paragraph and sentence parsing -;; Copyright (C) 1985, 86, 87, 91, 94, 95, 96, 1997, 1999, 2000, 2001, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1991, 1994, 1995, 1996, 1997, 1999, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp @@ -358,7 +358,7 @@ If ARG is negative, point is put at end of this paragraph, mark is put at beginning of this or a previous paragraph. Interactively, if this command is repeated -or (in Transient Mark mode) if the mark is active, +or (in Transient Mark mode) if the mark is active, it marks the next ARG paragraphs after the ones already marked." (interactive "p\np") (unless arg (setq arg 1)) diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index fd788a772e4..5d528dec109 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el @@ -1,6 +1,7 @@ ;;; picture.el --- "Picture mode" -- editing using quarter-plane screen model -;; Copyright (C) 1985, 1994, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF @@ -710,7 +711,7 @@ You can manipulate rectangles with these commands: C-c C-r Draw a rectangular box around mark and point. \\[copy-rectangle-to-register] Copies a rectangle to a register. \\[advertised-undo] Can undo effects of rectangle overlay commands - commands if invoked soon enough. + if invoked soon enough. You can return to the previous mode with: C-c C-c Which also strips trailing whitespace from every line. Stripping is suppressed by supplying an argument. diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el index cf80f02090a..c9af801bef0 100644 --- a/lisp/textmodes/po.el +++ b/lisp/textmodes/po.el @@ -1,6 +1,7 @@ ;;; po.el --- basic support of PO translation files -*- coding: latin-1; -*- -;; Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Authors: François Pinard <pinard@iro.umontreal.ca>, ;; Greg McGary <gkm@magilla.cichlid.com>, diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el index 7fcfc44fb2d..99e2b780999 100644 --- a/lisp/textmodes/refbib.el +++ b/lisp/textmodes/refbib.el @@ -1,8 +1,9 @@ ;;; refbib.el --- convert refer-style references to ones usable by Latex bib -;; Copyright (C) 1989, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Henry Kautz <kautz@research.att.com> +;; Maintainer: FSF ;; Keywords: bib, tex ;; This file is part of GNU Emacs. @@ -221,37 +222,49 @@ This is in addition to the `r2b-capitalize-title-stop-words'.") (defvar r2b-error-found nil) +(eval-when-compile + (defvar r2b-variables) (defvar r2bv-address) (defvar r2bv-annote) + (defvar r2bv-author) (defvar r2bv-booktitle) (defvar r2bv-date) + (defvar r2bv-decade) (defvar r2bv-editor) (defvar r2bv-entry-kind) + (defvar r2bv-institution) (defvar r2bv-journal) (defvar r2bv-keywords) + (defvar r2bv-kn) (defvar r2bv-month) (defvar r2bv-note) + (defvar r2bv-number) (defvar r2bv-ordering) (defvar r2bv-organization) + (defvar r2bv-pages) (defvar r2bv-primary-author) (defvar r2bv-publisher) + (defvar r2bv-school) (defvar r2bv-title) (defvar r2bv-title-first-word) + (defvar r2bv-tr) (defvar r2bv-type) (defvar r2bv-volume) + (defvar r2bv-where) (defvar r2bv-year)) + (setq r2b-variables '( - r2b-error-found - r2bv-author - r2bv-primary-author - r2bv-date - r2bv-year - r2bv-decade - r2bv-month - r2bv-title - r2bv-title-first-word - r2bv-editor - r2bv-annote - r2bv-tr - r2bv-address - r2bv-institution - r2bv-keywords - r2bv-booktitle - r2bv-journal - r2bv-volume - r2bv-number - r2bv-pages - r2bv-booktitle - r2bv-kn - r2bv-publisher - r2bv-organization - r2bv-school - r2bv-type - r2bv-where - r2bv-note - r2bv-ordering - )) + r2b-error-found + r2bv-author + r2bv-primary-author + r2bv-date + r2bv-year + r2bv-decade + r2bv-month + r2bv-title + r2bv-title-first-word + r2bv-editor + r2bv-annote + r2bv-tr + r2bv-address + r2bv-institution + r2bv-keywords + r2bv-booktitle + r2bv-journal + r2bv-volume + r2bv-number + r2bv-pages + r2bv-booktitle + r2bv-kn + r2bv-publisher + r2bv-organization + r2bv-school + r2bv-type + r2bv-where + r2bv-note + r2bv-ordering + )) (defun r2b-clear-variables () "Set all global vars used by r2b to nil." @@ -632,14 +645,14 @@ but not a publisher." ) -(defun r2b-convert-record (output-name) - "Transform current bib entry and append to buffer OUTPUT; -do \"M-x r2b-help\" for more info." +(defun r2b-convert-record (output) + "Transform current bib entry and append to buffer OUTPUT. +Do `\\[r2b-help]' for more info." (interactive (list (read-string "Output to buffer: " r2b-out-buf-name))) (let (rec-end rec-begin not-done) - (setq r2b-out-buf-name output-name) - (setq r2b-out-buf (get-buffer-create output-name)) + (setq r2b-out-buf-name output) + (setq r2b-out-buf (get-buffer-create output)) (setq r2b-in-buf (current-buffer)) (set-buffer r2b-out-buf) (goto-char (point-max)) @@ -669,9 +682,9 @@ do \"M-x r2b-help\" for more info." )) -(defun r2b-convert-buffer (output-name) +(defun r2b-convert-buffer (output) "Transform current buffer and append to buffer OUTPUT. -Do `M-x r2b-help' for more info." +Do `\\[r2b-help]' for more info." (interactive (list (read-string "Output to buffer: " r2b-out-buf-name))) (save-excursion @@ -682,7 +695,7 @@ Do `M-x r2b-help' for more info." (goto-char (point-min)) (message "Working, please be patient...") (sit-for 0) - (while (r2b-convert-record output-name) t) + (while (r2b-convert-record output) t) (message "Done, results in %s, errors in %s" r2b-out-buf-name r2b-log-name) ) diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el index 3ff01ef5c76..82f06576c1a 100644 --- a/lisp/textmodes/refer.el +++ b/lisp/textmodes/refer.el @@ -1,6 +1,7 @@ ;;; refer.el --- look up references in bibliography files -;; Copyright (C) 1992, 1996, 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1996, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Ashwin Ram <ashwin@cc.gatech.edu> ;; Maintainer: Gernot Heiser <gernot@acm.org> diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el index d49513ccf3f..bf8938a7ec5 100644 --- a/lisp/textmodes/refill.el +++ b/lisp/textmodes/refill.el @@ -1,6 +1,6 @@ ;;; refill.el --- `auto-fill' by refilling paragraphs on changes -;; Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: Miles Bader <miles@gnu.org> diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el index 1c6741806f0..f11d607f3e2 100644 --- a/lisp/textmodes/reftex-auc.el +++ b/lisp/textmodes/reftex-auc.el @@ -1,6 +1,7 @@ ;;; reftex-auc.el --- RefTeX's interface to AUCTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -75,7 +76,7 @@ What is being used depends upon `reftex-plug-into-AUCTeX'." (defun reftex-arg-index-tag (optional &optional prompt &rest args) - "Prompt for an index tag with completion. + "Prompt for an index tag with completion. This is the name of an index, not the entry." (let (tag taglist) (setq prompt (concat (if optional "(Optional) " "") @@ -85,8 +86,8 @@ This is the name of an index, not the entry." ;; Use RefTeX completion (progn (reftex-access-scan-info nil) - (setq taglist - (cdr (assoc 'index-tags + (setq taglist + (cdr (assoc 'index-tags (symbol-value reftex-docstruct-symbol))) tag (completing-read prompt (mapcar 'list taglist)))) ;; Just ask like AUCTeX does. @@ -131,7 +132,7 @@ argument identify one of multiple indices." ;; Replace AUCTeX functions with RefTeX functions. ;; Which functions are replaced is controlled by the variable ;; `reftex-plug-into-AUCTeX'. - + (if (reftex-plug-flag 0) (setq LaTeX-label-function 'reftex-label) (setq LaTeX-label-function nil)) @@ -143,11 +144,11 @@ argument identify one of multiple indices." (and (reftex-plug-flag 3) (fboundp 'TeX-arg-cite) (fset 'TeX-arg-cite 'reftex-arg-cite)) - - (and (reftex-plug-flag 4) + + (and (reftex-plug-flag 4) (fboundp 'TeX-arg-index-tag) (fset 'TeX-arg-index-tag 'reftex-arg-index-tag)) - (and (reftex-plug-flag 4) + (and (reftex-plug-flag 4) (fboundp 'TeX-arg-index) (fset 'TeX-arg-index 'reftex-arg-index))) diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el index 6a15665ea21..08ee88e1a74 100644 --- a/lisp/textmodes/reftex-cite.el +++ b/lisp/textmodes/reftex-cite.el @@ -1,6 +1,7 @@ ;;; reftex-cite.el --- creating citations with RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -69,7 +70,7 @@ (unless (eq (get 'reftex-default-bibliography :reftex-raw) reftex-default-bibliography) (put 'reftex-default-bibliography :reftex-expanded - (reftex-locate-bibliography-files + (reftex-locate-bibliography-files default-directory reftex-default-bibliography)) (put 'reftex-default-bibliography :reftex-raw reftex-default-bibliography)) @@ -128,7 +129,7 @@ ;; If RETURN is non-nil, just return the entry. (let* ((re - (if item + (if item (concat "\\\\bibitem\\(\\[[^]]*\\]\\)?{" (regexp-quote key) "}") (concat "@[a-zA-Z]+[ \t\n\r]*[{(][ \t\n\r]*" (regexp-quote key) "[, \t\r\n}]"))) @@ -150,7 +151,7 @@ (when return ;; Just return the relevant entry (if item (goto-char (match-end 0))) - (setq return (buffer-substring + (setq return (buffer-substring (point) (reftex-end-of-bib-entry item))) (set-buffer buffer-conf) (throw 'exit return)) @@ -166,9 +167,9 @@ (error "No BibTeX entry with citation key %s" key))))) (defun reftex-end-of-bib-entry (item) - (save-excursion + (save-excursion (condition-case nil - (if item + (if item (progn (end-of-line) (re-search-forward "\\\\bibitem\\|\\end{thebibliography}") @@ -189,16 +190,16 @@ ;; Read a regexp, completing on known citation keys. (setq default (regexp-quote (reftex-get-bibkey-default))) - (setq re-list - (split-string - (completing-read + (setq re-list + (split-string + (completing-read (concat "Regex { && Regex...}: " "[" default "]: ") (if reftex-mode (if (fboundp 'LaTeX-bibitem-list) (LaTeX-bibitem-list) - (cdr (assoc 'bibview-cache + (cdr (assoc 'bibview-cache (symbol-value reftex-docstruct-symbol)))) nil) nil nil nil 'reftex-cite-regexp-hist) @@ -245,7 +246,7 @@ (error (goto-char key-point) (throw 'search-again nil))) (setq end-point (point)) - + ;; Ignore @string, @comment and @c entries or things ;; outside entries (when (or (string= (downcase (match-string 2)) "string") @@ -254,12 +255,12 @@ (< (point) key-point)) ; this means match not in {} (goto-char key-point) (throw 'search-again nil)) - + ;; Well, we have got a match ;;(setq entry (concat ;; (buffer-substring start-point (point)) "\n")) (setq entry (buffer-substring start-point (point))) - + ;; Check if other regexp match as well (setq re-list rest-re) (while re-list @@ -267,24 +268,24 @@ ;; nope - move on (throw 'search-again nil)) (pop re-list)) - + (setq alist (reftex-parse-bibtex-entry nil start-point end-point)) (push (cons "&entry" entry) alist) - + ;; check for crossref entries (if (assoc "crossref" alist) (setq alist (append alist (reftex-get-crossref-alist alist)))) - + ;; format the entry (push (cons "&formatted" (reftex-format-bib-entry alist)) alist) - + ;; make key the first element (push (reftex-get-bib-field "&key" alist) alist) - + ;; add it to the list (push alist found-list))))) (reftex-kill-temporary-buffers)))) @@ -347,7 +348,7 @@ (unless files (error "Need file name to find thebibliography environment")) (while (setq file (pop files)) - (setq buf (reftex-get-file-buffer-force + (setq buf (reftex-get-file-buffer-force file (not reftex-keep-temporary-buffers))) (unless buf (error "No such file %s" file)) @@ -358,21 +359,21 @@ (save-restriction (widen) (goto-char (point-min)) - (while (re-search-forward + (while (re-search-forward "\\(\\`\\|[\n\r]\\)[ \t]*\\\\begin{thebibliography}" nil t) (beginning-of-line 2) (setq start (point)) - (if (re-search-forward + (if (re-search-forward "\\(\\`\\|[\n\r]\\)[ \t]*\\\\end{thebibliography}" nil t) (progn (beginning-of-line 1) (setq end (point)))) (when (and start end) - (setq entries + (setq entries (append entries (mapcar 'reftex-parse-bibitem (delete "" - (split-string + (split-string (buffer-substring-no-properties start end) "[ \t\n\r]*\\\\bibitem\\(\\[[^]]*]\\)*")))))) (goto-char end))))) @@ -381,16 +382,16 @@ ;; Read a regexp, completing on known citation keys. (setq default (regexp-quote (reftex-get-bibkey-default))) - (setq re-list - (split-string - (completing-read + (setq re-list + (split-string + (completing-read (concat "Regex { && Regex...}: " "[" default "]: ") (if reftex-mode (if (fboundp 'LaTeX-bibitem-list) (LaTeX-bibitem-list) - (cdr (assoc 'bibview-cache + (cdr (assoc 'bibview-cache (symbol-value reftex-docstruct-symbol)))) nil) nil nil nil 'reftex-cite-regexp-hist) @@ -403,14 +404,14 @@ (error "Empty regular expression")) (while (and (setq re (pop re-list)) entries) - (setq entries + (setq entries (delq nil (mapcar (lambda (x) (if (string-match re (cdr (assoc "&entry" x))) x nil)) entries)))) - (setq entries - (mapcar + (setq entries + (mapcar (lambda (x) (push (cons "&formatted" (reftex-format-bibitem x)) x) (push (reftex-get-bib-field "&key" x) x) @@ -654,9 +655,9 @@ While entering the regexp, completion on knows citation keys is possible. ;; FIXME: Unfortunately, this meens that commenting does not work right. (pop selected-entries) (let ((concat-keys (mapconcat 'car selected-entries ","))) - (setq insert-entries + (setq insert-entries (list (list concat-keys (cons "&key" concat-keys)))))) - + (unless no-insert ;; We shall insert this into the buffer... @@ -683,7 +684,7 @@ While entering the regexp, completion on knows citation keys is possible. ;; it has to go. If there is only a single arg and empty, it can go ;; as well. (when reftex-cite-cleanup-optional-args - (cond + (cond ((string-match "\\([a-zA-Z0-9]\\)\\[\\]{" string) (setq string (replace-match "\\1{" nil nil string))) ((string-match "\\[\\]\\(\\[[a-zA-Z0-9., ]+\\]\\)" string) @@ -698,14 +699,14 @@ While entering the regexp, completion on knows citation keys is possible. (delete-char 1)) ;; Tell AUCTeX - (when (and reftex-mode + (when (and reftex-mode (fboundp 'LaTeX-add-bibitems) reftex-plug-into-AUCTeX) (apply 'LaTeX-add-bibitems (mapcar 'car selected-entries))) - + ;; Produce the cite-view strings (when (and reftex-mode reftex-cache-cite-echo cite-view) - (mapcar (lambda (entry) + (mapcar (lambda (entry) (reftex-make-cite-echo-string entry docstruct-symbol)) selected-entries)) @@ -713,16 +714,16 @@ While entering the regexp, completion on knows citation keys is possible. (set-marker reftex-select-return-marker nil) (reftex-kill-buffer "*RefTeX Select*") - + ;; Check if the prefix arg was numeric, and call recursively (when (integerp arg) (if (> arg 1) - (progn + (progn (skip-chars-backward "}") (decf arg) (reftex-do-citation arg)) (forward-char 1))) - + ;; Return the citation key (car (car selected-entries)))) @@ -736,7 +737,7 @@ While entering the regexp, completion on knows citation keys is possible. (no-insert ;; Format does not really matter because nothing will be inserted. (setq format "%l")) - + ((and (stringp macro) (string-match "\\`\\\\cite\\|cite\\'" macro)) ;; We are already inside a cite macro @@ -757,7 +758,7 @@ While entering the regexp, completion on knows citation keys is possible. (when (listp format) (setq key (or format-key - (reftex-select-with-char + (reftex-select-with-char "" (concat "SELECT A CITATION FORMAT\n\n" (mapconcat (lambda (x) @@ -786,8 +787,8 @@ While entering the regexp, completion on knows citation keys is possible. (let ((bibtype (reftex-bib-or-thebib)) found-list rtn key data selected-entries) - (while - (not + (while + (not (catch 'done ;; Scan bibtex files (setq found-list @@ -802,20 +803,20 @@ While entering the regexp, completion on knows citation keys is possible. (reftex-extract-bib-entries-from-thebibliography (reftex-uniquify (mapcar 'cdr - (reftex-all-assq + (reftex-all-assq 'thebib (symbol-value reftex-docstruct-symbol)))))) (reftex-default-bibliography (message "Using default bibliography") (reftex-extract-bib-entries (reftex-default-bibliography))) (t (error "No valid bibliography in this document, and no default available")))) - + (unless found-list (error "Sorry, no matches found")) - + ;; Remember where we came from (setq reftex-call-back-to-this-buffer (current-buffer)) (set-marker reftex-select-return-marker (point)) - + ;; Offer selection (save-window-excursion (delete-other-windows) @@ -856,15 +857,15 @@ While entering the regexp, completion on knows citation keys is possible. (goto-char 1)) ((eq key ?A) ;; Take all (marked) - (setq selected-entries + (setq selected-entries (if reftex-select-marked (mapcar 'car (nreverse reftex-select-marked)) found-list)) (throw 'done t)) ((eq key ?a) ;; Take all (marked), and push the symbol 'concat - (setq selected-entries - (cons 'concat + (setq selected-entries + (cons 'concat (if reftex-select-marked (mapcar 'car (nreverse reftex-select-marked)) found-list))) @@ -883,9 +884,9 @@ While entering the regexp, completion on knows citation keys is possible. ((or (eq key ?\C-m) (eq key 'return)) ;; Take selected - (setq selected-entries + (setq selected-entries (if reftex-select-marked - (cons 'concat + (cons 'concat (mapcar 'car (nreverse reftex-select-marked))) (if data (list data) nil))) (throw 'done t)) @@ -925,7 +926,7 @@ While entering the regexp, completion on knows citation keys is possible. (let ((file (read-file-name "File to create: "))) (find-file-other-window file) (if (> (buffer-size) 0) - (unless (yes-or-no-p + (unless (yes-or-no-p (format "Overwrite non-empty file %s? " file)) (error "Abort"))) (erase-buffer) @@ -950,7 +951,7 @@ While entering the regexp, completion on knows citation keys is possible. reftex-mouse-selected-face nil)) tmp len) - (mapcar + (mapcar (lambda (x) (setq tmp (cdr (assoc "&formatted" x)) len (length tmp)) @@ -1045,7 +1046,7 @@ While entering the regexp, completion on knows citation keys is possible. (defun reftex-make-cite-echo-string (entry docstruct-symbol) ;; Format a bibtex entry for the echo area and cache the result. (let* ((key (reftex-get-bib-field "&key" entry)) - (string + (string (let* ((reftex-cite-punctuation '(" " " & " " etal."))) (reftex-format-citation entry reftex-cite-view-format))) (cache (assq 'bibview-cache (symbol-value docstruct-symbol))) @@ -1087,7 +1088,7 @@ While entering the regexp, completion on knows citation keys is possible. (setq bibfile-list (reftex-uniquify (mapcar 'cdr - (reftex-all-assq + (reftex-all-assq 'thebib (symbol-value reftex-docstruct-symbol)))) item t)) (reftex-default-bibliography @@ -1098,10 +1099,10 @@ While entering the regexp, completion on knows citation keys is possible. (setq bibfile-list (reftex-visited-files bibfile-list))) (condition-case nil - (reftex-pop-to-bibtex-entry + (reftex-pop-to-bibtex-entry key bibfile-list (not reftex-keep-temporary-buffers) t item) (error (ding)))) - + (select-window win))) ;;; Global BibTeX file @@ -1130,7 +1131,7 @@ While entering the regexp, completion on knows citation keys is possible. "Create a new BibTeX database file with all entries referenced in document. The command prompts for a filename and writes the collected entries to that file. Only entries referenced in the current document with -any \\cite-like macros are used. +any \\cite-like macros are used. The sequence in the new file is the same as it was in the old database." (interactive "FNew BibTeX file: ") (let ((keys (reftex-all-used-citation-keys)) @@ -1144,7 +1145,7 @@ The sequence in the new file is the same as it was in the old database." (save-restriction (widen) (goto-char (point-min)) - (while (re-search-forward + (while (re-search-forward "^[ \t]*@[a-zA-Z]+[ \t]*{\\([^ \t\r\n]+\\)," nil t) (setq key (match-string 1) @@ -1161,7 +1162,7 @@ The sequence in the new file is the same as it was in the old database." keys (delete key keys))))))))) (find-file-other-window bibfile) (if (> (buffer-size) 0) - (unless (yes-or-no-p + (unless (yes-or-no-p (format "Overwrite non-empty file %s? " bibfile)) (error "Abort"))) (erase-buffer) diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el index 2a518ae9d77..e4f09d04902 100644 --- a/lisp/textmodes/reftex-dcr.el +++ b/lisp/textmodes/reftex-dcr.el @@ -1,6 +1,7 @@ ;;; reftex-dcr.el --- viewing cross references and citations with RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el index f7f635aaf1b..3b5c51d2c9d 100644 --- a/lisp/textmodes/reftex-global.el +++ b/lisp/textmodes/reftex-global.el @@ -1,6 +1,7 @@ ;;; reftex-global.el --- operations on entire documents with RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -31,6 +32,9 @@ (require 'reftex) ;;; +(defvar isearch-next-buffer-function) +(defvar TeX-master) + (defun reftex-create-tags-file () "Create TAGS file by running `etags' on the current document. The TAGS file is also immediately visited with `visit-tags-table'." @@ -136,7 +140,7 @@ No active TAGS table is required." (set (make-local-variable 'TeX-master) master) (erase-buffer) (insert " MULTIPLE LABELS IN CURRENT DOCUMENT:\n") - (insert + (insert " Move point to label and type `r' to run a query-replace on the label\n" " and its references. Type `q' to exit this buffer.\n\n") (insert " LABEL FILE\n") @@ -194,8 +198,8 @@ one with the `xr' package." (not (yes-or-no-p "Replacing all simple labels in multiple files is risky. Continue? "))) (error "Abort")) ;; Make the translation list - (let* ((re-core (concat "\\(" - (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|") + (let* ((re-core (concat "\\(" + (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|") "\\)")) (label-re (concat "\\`" re-core "\\([0-9]+\\)\\'")) (search-re (concat "[{,]\\(" re-core "\\([0-9]+\\)\\)[,}]")) @@ -228,11 +232,11 @@ one with the `xr' package." (reftex-save-all-document-buffers) ;; First test to check for erros - (setq n (reftex-translate + (setq n (reftex-translate files search-re translate-alist error-fmt 'test)) ;; Now the real thing. - (if (yes-or-no-p + (if (yes-or-no-p (format "Replace %d items at %d places in %d files? " (length translate-alist) n (length files))) (progn @@ -250,9 +254,9 @@ one with the `xr' package." (defun reftex-translate (files search-re translate-alist error-fmt test) ;; In FILES, look for SEARCH-RE and replace match 1 of it with - ;; its association in TRANSLATE-ALSIT. + ;; its association in TRANSLATE-ALSIT. ;; If we do not find an association and TEST is non-nil, query - ;; to ignore the problematic string. + ;; to ignore the problematic string. ;; If TEST is nil, it is ignored without query. ;; Return the number of replacements. (let ((n 0) file label match-data buf macro pos cell) @@ -278,7 +282,7 @@ one with the `xr' package." (or (looking-at "\\\\ref") (looking-at "\\\\[a-zA-Z]*ref\\(range\\)?[^a-zA-Z]") (looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]") - (looking-at (format + (looking-at (format reftex-find-label-regexp-format (regexp-quote label))))) ;; OK, we should replace it. @@ -341,7 +345,7 @@ Also checks if buffers visiting the files are in read-only mode." (defun reftex-isearch-wrap-function () (if (not isearch-word) - (switch-to-buffer + (switch-to-buffer (funcall isearch-next-buffer-function (current-buffer) t))) (goto-char (if isearch-forward (point-min) (point-max)))) @@ -427,7 +431,7 @@ With no argument, this command toggles `reftex-isearch-minor-mode' on iff ARG is positive." (interactive "P") (let ((old-reftex-isearch-minor-mode reftex-isearch-minor-mode)) - (setq reftex-isearch-minor-mode + (setq reftex-isearch-minor-mode (not (or (and (null arg) reftex-isearch-minor-mode) (<= (prefix-numeric-value arg) 0)))) (unless (eq reftex-isearch-minor-mode old-reftex-isearch-minor-mode) @@ -458,7 +462,7 @@ With no argument, this command toggles ;; Force modeline redisplay. (set-buffer-modified-p (buffer-modified-p)))) -(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil +(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil 'reftex-isearch-minor-mode) ;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el index a0bc2d85754..804672c1847 100644 --- a/lisp/textmodes/reftex-index.el +++ b/lisp/textmodes/reftex-index.el @@ -1,6 +1,7 @@ ;;; reftex-index.el --- index support with RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -31,6 +32,9 @@ (require 'reftex) ;;; +(defvar reftex-index-phrases-marker) +(defvar TeX-master) + ;; START remove for XEmacs release (defvar mark-active) (defvar zmacs-regions) @@ -52,13 +56,13 @@ which is part of AUCTeX, the string is first processed with the (active (if (boundp 'zmacs-regions) (and zmacs-regions (region-exists-p)) ; XEmacs (and transient-mark-mode mark-active))) ; Emacs - (beg (if active + (beg (if active (region-beginning) - (save-excursion + (save-excursion (skip-syntax-backward "w\\") (point)))) (end (if active (region-end) - (save-excursion + (save-excursion (skip-syntax-forward "w\\") (point)))) (sel (buffer-substring beg end)) (mathp (condition-case nil (texmathp) (error nil))) @@ -89,7 +93,7 @@ which is part of AUCTeX, the string is first processed with the ;; Delete what is in the buffer and make the index entry (delete-region beg end) (reftex-index def-char full-entry def-tag sel))))) - + (defun reftex-index (&optional char key tag sel no-insert) "Query for an index macro and insert it along with its argments. The index macros available are those defined in `reftex-index-macro' or @@ -165,7 +169,7 @@ will prompt for other arguments." ;; OPT-ARGS is a list of optional argument indices, as given by ;; `reftex-parse-args'. (let* ((opt (and (integerp itag) (member itag opt-args))) - (index-tags (cdr (assq 'index-tags + (index-tags (cdr (assq 'index-tags (symbol-value reftex-docstruct-symbol)))) (default (reftex-default-index)) (prompt (concat "Index tag" @@ -179,17 +183,17 @@ will prompt for other arguments." (defun reftex-index-select-tag () ;; Have the user select an index tag. ;; FIXME: should we cache tag-alist, prompt and help? - (let* ((index-tags (cdr (assoc 'index-tags + (let* ((index-tags (cdr (assoc 'index-tags (symbol-value reftex-docstruct-symbol)))) (default (reftex-default-index))) - (cond + (cond ((null index-tags) (error "No index tags available")) ((= (length index-tags) 1) ;; Just one index, use it (car index-tags)) - + ((> (length index-tags) 1) ;; Several indices, ask. (let* ((tags (copy-sequence index-tags)) @@ -210,12 +214,12 @@ will prompt for other arguments." (unless (assq (aref tag i) tag-alist) (push (list (aref tag i) tag - (concat (substring tag 0 i) + (concat (substring tag 0 i) "[" (substring tag i (incf i)) "]" (substring tag i))) tag-alist) (throw 'exit t))) - (push (list (+ ?0 (incf cnt)) tag + (push (list (+ ?0 (incf cnt)) tag (concat "[" (int-to-string cnt) "]:" tag)) tag-alist))) (setq tag-alist (nreverse tag-alist)) @@ -230,7 +234,7 @@ will prompt for other arguments." (if default (format "[^M] %s (the default)\n" default) "") - (mapconcat (lambda(x) + (mapconcat (lambda(x) (apply 'format "[%c] %s" x)) tag-alist "\n"))) ;; Query the user for an index-tag @@ -259,7 +263,7 @@ will prompt for other arguments." key)) (defun reftex-index-update-taglist (newtag) - ;; add NEWTAG to the list of available index tags. + ;; add NEWTAG to the list of available index tags. (let ((cell (assoc 'index-tags (symbol-value reftex-docstruct-symbol)))) (and newtag (cdr cell) (not (member newtag (cdr cell))) (push newtag (cdr cell))))) @@ -340,7 +344,7 @@ _ ^ Add/Remove parent key (to make this item a subitem). ;; Note: This function just looks for the nearest match of the ;; context string and may fail if the entry moved and an identical ;; entry is close to the old position. Frequent rescans make this - ;; safer. + ;; safer. (let* ((file (nth 3 data)) (literal (nth 2 data)) (pos (nth 4 data)) @@ -388,7 +392,7 @@ With prefix 3, restrict index to region." (calling-file (buffer-file-name)) (restriction (or overriding-restriction - (and (not redo) + (and (not redo) (reftex-get-restriction current-prefix-arg docstruct)))) (locations ;; See if we are on an index macro as initial position @@ -397,7 +401,7 @@ With prefix 3, restrict index to region." (macro (car what-macro)) (here-I-am (when (member macro reftex-macros-with-index) (save-excursion - (goto-char (+ (cdr what-macro) + (goto-char (+ (cdr what-macro) (length macro))) (reftex-move-over-touching-args) (reftex-where-am-I))))) @@ -408,7 +412,7 @@ With prefix 3, restrict index to region." (setq buffer-name (reftex-make-index-buffer-name index-tag)) ;; Goto the buffer and put it into the correct mode - + (when (or restriction current-prefix-arg) (reftex-kill-buffer buffer-name)) @@ -501,7 +505,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help ;; Delete the entry at place (and (bolp) (forward-char 1)) (delete-region (previous-single-property-change (1+ (point)) :data) - (or (next-single-property-change (point) :data) + (or (next-single-property-change (point) :data) (point-max)))) ;; Walk through the list and insert all entries @@ -522,7 +526,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help (insert indent (nth 7 cell)) (when font (setq to (point)) - (put-text-property + (put-text-property (- (point) (length (nth 7 cell))) to 'face index-face) (goto-char to)) @@ -550,7 +554,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help (defun reftex-index-insert-new-letter (letter &optional font) ;; Start a new section in the index (let ((from (point))) - (insert "\n" letter letter letter + (insert "\n" letter letter letter "-----------------------------------------------------------------") (when font (put-text-property from (point) 'face reftex-index-section-face)) @@ -627,10 +631,10 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help (interactive "p") (setq reftex-callback-fwd t) (or (eobp) (forward-char 1)) - (goto-char (or (next-single-property-change (point) :data) + (goto-char (or (next-single-property-change (point) :data) (point))) (unless (get-text-property (point) :data) - (goto-char (or (next-single-property-change (point) :data) + (goto-char (or (next-single-property-change (point) :data) (point))))) (defun reftex-index-previous (&optional arg) "Move to previous selectable item." @@ -773,7 +777,7 @@ When index is restricted, select the next section as restriction criterion." (reftex-index-restrict-to-section t) (setq reftex-index-restriction-indicator (nth 6 bor) reftex-index-restriction-data - (list bor + (list bor (car (memq (assq 'toc (cdr (memq bor docstruct))) docstruct)))) (reftex-index-revert)))) @@ -805,7 +809,7 @@ When index is restricted, select the previous section as restriction criterion." show-window show-buffer match) (unless data (error "Don't know which index entry to visit")) - + (if (eq (car data) 'index) (setq match (reftex-index-show-entry data no-revisit))) @@ -876,7 +880,7 @@ When index is restricted, select the previous section as restriction criterion." attr (nth 2 analyze)) (setf (nth 2 analyze) (if (string= attr bor) "" bor)) (setq new (apply 'concat analyze)) - (reftex-index-change-entry + (reftex-index-change-entry new (if (string= (nth 2 analyze) bor) "Entry is now START-OF-PAGE-RANGE" "START-OF-PAGE-RANGE canceled")))) @@ -934,7 +938,7 @@ When index is restricted, select the previous section as restriction criterion." (t (setf (nth n analyze) (concat initial npart)))) (setq new (apply 'concat analyze)) ;; Change the entry and insert the changed version into the index. - (reftex-index-change-entry + (reftex-index-change-entry new (if (string= npart "") (format "Deleted: %s" opart) (format "New value is: %s" npart))))) @@ -948,14 +952,14 @@ When index is restricted, select the previous section as restriction criterion." (unless data (error "Don't know which index entry to change")) (setq old (nth 2 data) key (nth 6 data) - prefix (completing-read - "Prefix: " - (reftex-sublist-nth + prefix (completing-read + "Prefix: " + (reftex-sublist-nth docstruct 6 (lambda (x) (and (eq (car x) 'index) (string= (nth 1 x) reftex-index-tag))) t))) - (unless (string-match + (unless (string-match (concat (regexp-quote (car reftex-index-special-chars)) "\\'") prefix) (setq prefix (concat prefix (car reftex-index-special-chars)))) @@ -995,7 +999,7 @@ When index is restricted, select the previous section as restriction criterion." (defun reftex-index-change-entry (new &optional message) ;; Change the full context string of the index entry at point to ;; NEW. This actually edits the buffer where the entry is defined. - + (let* ((data (get-text-property (point) :data)) old beg end info) (unless data (error "Cannot change entry")) @@ -1087,14 +1091,14 @@ When index is restricted, select the previous section as restriction criterion." (if (eq char ?!) (error "This <%s> index does not contain entries sorted before the letters" reftex-index-tag) - (error "This <%s> index does not contain entries starting with `%c'" + (error "This <%s> index does not contain entries starting with `%c'" reftex-index-tag char))))) -(easy-menu-define +(easy-menu-define reftex-index-menu reftex-index-map "Menu for Index buffer" `("Index" - ["Goto section A-Z" + ["Goto section A-Z" (message "To go to a section, just press any of: !%s" reftex-index-section-letters) t] ["Show Entry" reftex-index-view-entry t] @@ -1134,7 +1138,7 @@ When index is restricted, select the previous section as restriction criterion." ["Context" reftex-index-toggle-context :style toggle :selected reftex-index-include-context] "--" - ["Follow Mode" reftex-index-toggle-follow :style toggle + ["Follow Mode" reftex-index-toggle-follow :style toggle :selected reftex-index-follow-mode]) "--" ["Help" reftex-index-show-help t])) @@ -1186,7 +1190,7 @@ You get a chance to edit the entry in the phrases buffer - finish with (set-marker reftex-index-return-marker (point)) (reftex-index-selection-or-word arg 'phrase) (if (eq major-mode 'reftex-index-phrases-mode) - (message + (message (substitute-command-keys "Return to LaTeX with \\[reftex-index-phrases-save-and-return]")))) @@ -1215,7 +1219,7 @@ If the buffer is non-empty, delete the old header first." (sort (copy-sequence reftex-index-macro-alist) (lambda (a b) (equal (car a) default-macro)))) macro entry key repeat) - + (if master (set (make-local-variable 'TeX-master) (file-name-nondirectory master))) @@ -1228,7 +1232,7 @@ If the buffer is non-empty, delete the old header first." (if (looking-at reftex-index-phrases-comment-regexp) (beginning-of-line 2)) (while (looking-at "^[ \t]*$") - (beginning-of-line 2)) + (beginning-of-line 2)) (cond ((fboundp 'zmacs-activate-region) (zmacs-activate-region)) ((boundp 'make-active) (setq mark-active t))) (if (yes-or-no-p "Delete and rebuilt header ") @@ -1304,7 +1308,7 @@ Here are all local bindings. (setq major-mode 'reftex-index-phrases-mode mode-name "Phrases") (use-local-map reftex-index-phrases-map) - (set (make-local-variable 'font-lock-defaults) + (set (make-local-variable 'font-lock-defaults) reftex-index-phrases-font-lock-defaults) (easy-menu-add reftex-index-phrases-menu reftex-index-phrases-map) (set (make-local-variable 'reftex-index-phrases-marker) (make-marker)) @@ -1314,7 +1318,7 @@ Here are all local bindings. ;; Font Locking stuff (let ((ss (if (featurep 'xemacs) 'secondary-selection ''secondary-selection))) (setq reftex-index-phrases-font-lock-keywords - (list + (list (cons reftex-index-phrases-comment-regexp 'font-lock-comment-face) (list reftex-index-phrases-macrodef-regexp '(1 font-lock-type-face) @@ -1338,11 +1342,10 @@ Here are all local bindings. (setq reftex-index-phrases-font-lock-defaults '((reftex-index-phrases-font-lock-keywords) nil t nil beginning-of-line)) - (put 'reftex-index-phrases-mode 'font-lock-defaults + (put 'reftex-index-phrases-mode 'font-lock-defaults reftex-index-phrases-font-lock-defaults) ; XEmacs ) -(defvar reftex-index-phrases-marker) (defun reftex-index-next-phrase (&optional arg) "Index the next ARG phrases in the phrases buffer." (interactive "p") @@ -1401,10 +1404,10 @@ match, the user will be asked to confirm the replacement." (move-marker reftex-index-phrases-marker (match-beginning 0) (current-buffer)) ;; Start the query-replace - (reftex-query-index-phrase-globally - files phrase macro-fmt + (reftex-query-index-phrase-globally + files phrase macro-fmt index-key repeat as-words) - (message "%s replaced" + (message "%s replaced" (reftex-number replace-count "occurrence")))))) (t (error "Cannot parse this line"))))) @@ -1447,7 +1450,7 @@ the document and stores the list in `reftex-index-phrases-files'." (unless buf (error "Master file %s not found" master)) (set-buffer buf) (reftex-access-scan-info) - (setq reftex-index-phrases-files + (setq reftex-index-phrases-files (reftex-all-document-files)))) ;; Parse the files header for macro definitions (setq reftex-index-phrases-macro-data nil) @@ -1462,7 +1465,7 @@ the document and stores the list in `reftex-index-phrases-files'." ;; Reverse the list, so that the first macro is first (if (null reftex-index-phrases-macro-data) (error "No valid MACRO DEFINITION line in %s file (make sure to use TAB separators)" reftex-index-phrase-file-extension)) - (setq reftex-index-phrases-macro-data + (setq reftex-index-phrases-macro-data (nreverse reftex-index-phrases-macro-data)) (goto-char (point-min))))) @@ -1474,7 +1477,7 @@ you need to add/change text in an already indexed document and want to index the new part without having to go over the unchanged parts again." (interactive "r") (let ((win-conf (current-window-configuration)) - (reftex-index-phrases-restrict-file (buffer-file-name))) + (reftex-index-phrases-restrict-file (buffer-file-name))) (save-excursion (save-restriction (narrow-to-region beg end) @@ -1497,7 +1500,7 @@ index the new part without having to go over the unchanged parts again." (setq text (reftex-index-simplify-phrase text)) (goto-char (point-min)) (if (re-search-forward - (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text) + (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text) "\\) *[\t\n]") nil t) (progn (goto-char (match-end 2)) @@ -1527,7 +1530,7 @@ this function repeatedly." (let* ((phrase (match-string 3)) (case-fold-search reftex-index-phrases-case-fold-search) (re (reftex-index-phrases-find-dup-re phrase t))) - (if (save-excursion + (if (save-excursion (goto-char (point-min)) (and (re-search-forward re nil t) (re-search-forward re nil t))) @@ -1620,7 +1623,7 @@ this function repeatedly." (progn (princ (format " Superphrases: Phrase matches the following %s in the phrase buffer:\n" (reftex-number ntimes2 "line"))) - (mapcar (lambda(x) + (mapcar (lambda(x) (princ (format " Line %4d: %s\n" (car x) (cdr x)))) (nreverse superphrases)))))))) @@ -1673,7 +1676,7 @@ it first compares the macro identifying chars and then the phrases." beg end) (goto-char (point-min)) ;; Find first and last phrase line in buffer - (setq beg + (setq beg (and (re-search-forward reftex-index-phrases-phrase-regexp12 nil t) (match-beginning 0))) (goto-char (point-max)) @@ -1700,15 +1703,15 @@ it first compares the macro identifying chars and then the phrases." (if (string-match reftex-index-phrases-phrase-regexp12 a) (progn ;; Extract macro char and phrase-or-key for a - (setq ca (match-string 1 a) - pa (downcase + (setq ca (match-string 1 a) + pa (downcase (or (and reftex-index-phrases-sort-prefers-entry (match-string 6 a)) (match-string 3 a)))) (if (string-match reftex-index-phrases-phrase-regexp12 b) (progn ;; Extract macro char and phrase-or-key for b - (setq cb (match-string 1 b) + (setq cb (match-string 1 b) pb (downcase (or (and reftex-index-phrases-sort-prefers-entry (match-string 6 b)) @@ -1716,7 +1719,7 @@ it first compares the macro identifying chars and then the phrases." (setq c-p (string< ca cb) p-p (string< pa pb)) ;; Do the right comparison, based on the value of `chars-first' - ;; `chars-first' is bound locally in the calling function + ;; `chars-first' is bound locally in the calling function (if chars-first (if (string= ca cb) p-p c-p) (if (string= pa pb) c-p p-p))))) @@ -1727,7 +1730,7 @@ it first compares the macro identifying chars and then the phrases." (not reftex-index-phrases-sort-in-blocks)))) (defvar reftex-index-phrases-menu) -(defun reftex-index-make-phrase-regexp (phrase &optional +(defun reftex-index-make-phrase-regexp (phrase &optional as-words allow-newline) "Return a regexp matching PHRASE, even if distributed over lines. With optional arg AS-WORDS, require word boundary at beginning and end. @@ -1738,12 +1741,12 @@ With optional arg ALLOW-NEWLINE, allow single newline between words." "\\([ \t]+\\)"))) (concat (if (and as-words (string-match "\\`\\w" (car words))) "\\(\\<\\|[`']\\)" "") - (mapconcat (lambda (w) (regexp-quote + (mapconcat (lambda (w) (regexp-quote (if reftex-index-phrases-case-fold-search (downcase w) w))) words space-re) - (if (and as-words + (if (and as-words (string-match "\\w\\'" (nth (1- (length words)) words))) "\\(\\>\\|'\\)" "")))) @@ -1766,8 +1769,8 @@ Treats the logical `and' for index phrases." (let ((index-keys (split-string (or index-key match) reftex-index-phrases-logical-and-regexp))) (concat - (mapconcat (lambda (x) - (format macro-fmt + (mapconcat (lambda (x) + (format macro-fmt (format (if mathp reftex-index-math-format "%s") x))) index-keys "") (if repeat (reftex-index-simplify-phrase match) "")))) @@ -1779,7 +1782,7 @@ Treats the logical `and' for index phrases." (unless files (error "No files")) (unwind-protect (progn - (switch-to-buffer-other-window (reftex-get-file-buffer-force + (switch-to-buffer-other-window (reftex-get-file-buffer-force (car files))) (catch 'no-more-files (while (setq file (pop files)) @@ -1819,12 +1822,12 @@ AS-WORDS means, the search for PHRASE should require word boundaries at both ends." (let* ((re (reftex-index-make-phrase-regexp phrase as-words 'allow-newline)) (case-fold-search reftex-index-phrases-case-fold-search) - (index-keys (split-string + (index-keys (split-string (or index-key phrase) reftex-index-phrases-logical-or-regexp)) (nkeys (length index-keys)) (ckey (nth 0 index-keys)) - (all-yes nil) + (all-yes nil) match rpl char beg end mathp) (unwind-protect (while (re-search-forward re nil t) @@ -1846,16 +1849,16 @@ both ends." end))) (throw 'next-match nil)) (reftex-highlight 0 (match-beginning 0) (match-end 0)) - (setq rpl + (setq rpl (save-match-data (reftex-index-make-replace-string macro-fmt (match-string 0) ckey repeat mathp))) - (while + (while (not (catch 'loop (message "REPLACE: %s? (yn!qoe%s?)" rpl - (if (> nkeys 1) + (if (> nkeys 1) (concat "1-" (int-to-string nkeys)) "")) (setq char (if all-yes ?y (read-char-exclusive))) @@ -1889,7 +1892,7 @@ both ends." ((member char '(?o ?O)) ;; Select a differnt macro (let* ((nc (reftex-index-select-phrases-macro 2)) - (macro-data + (macro-data (cdr (assoc nc reftex-index-phrases-macro-data))) (macro-fmt (car macro-data)) (repeat (nth 1 macro-data))) @@ -1907,7 +1910,7 @@ both ends." ;; Recursive edit (save-match-data (save-excursion - (message + (message (substitute-command-keys "Recursive edit. Resume with \\[exit-recursive-edit]")) (recursive-edit)))) @@ -2040,7 +2043,7 @@ Does not do a save-excursion." ("\C-i" . self-insert-command)) do (define-key reftex-index-phrases-map (car x) (cdr x))) -(easy-menu-define +(easy-menu-define reftex-index-phrases-menu reftex-index-phrases-map "Menu for Phrases buffer" '("Phrases" diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el index 76372dc1ddb..b08d1e87999 100644 --- a/lisp/textmodes/reftex-parse.el +++ b/lisp/textmodes/reftex-parse.el @@ -1,6 +1,7 @@ ;;; reftex-parse.el --- parser functions for RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el index bc4260367d8..edc284a3060 100644 --- a/lisp/textmodes/reftex-ref.el +++ b/lisp/textmodes/reftex-ref.el @@ -1,6 +1,7 @@ ;;; reftex-ref.el --- code to create labels and references with RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el index 90f2e057aa8..1c91d9a662b 100644 --- a/lisp/textmodes/reftex-sel.el +++ b/lisp/textmodes/reftex-sel.el @@ -1,6 +1,7 @@ ;;; reftex-sel.el --- the selection modes for RefTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el index a9f1a280dcf..6ebb1104797 100644 --- a/lisp/textmodes/reftex-toc.el +++ b/lisp/textmodes/reftex-toc.el @@ -1,6 +1,7 @@ ;;; reftex-toc.el --- RefTeX's table of contents mode -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -35,6 +36,11 @@ "Keymap used for *toc* buffer.") (defvar reftex-toc-menu) +(defvar zmacs-regions) + +(defvar reftex-toc-include-labels-indicator nil) +(defvar reftex-toc-include-index-indicator nil) +(defvar reftex-toc-max-level-indicator nil) (defun reftex-toc-mode () "Major mode for managing Table of Contents for LaTeX files. @@ -80,9 +86,6 @@ Here are all local bindings. (defvar reftex-last-window-height nil) (defvar reftex-last-window-width nil) -(defvar reftex-toc-include-labels-indicator nil) -(defvar reftex-toc-include-index-indicator nil) -(defvar reftex-toc-max-level-indicator nil) (defvar reftex-toc-return-marker (make-marker) "Marker which makes it possible to return from toc to old position.") diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index 5f39167bb46..170b77d9e36 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el @@ -1,6 +1,7 @@ ;;; reftex-vars.el --- configuration variables for RefTeX -;; Copyright (c) 1997, 1998, 1999, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index a97d122c17e..29f12116cde 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -1,6 +1,7 @@ ;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX -;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Version: 4.28 @@ -288,6 +289,8 @@ (setq reftex-tables-dirty t) (set symbol value))) +(defvar font-lock-keywords) + ;;; ========================================================================= ;;; diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index b4e36b215ef..d331ce05ff7 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -1,7 +1,7 @@ ;;; sgml-mode.el --- SGML- and HTML-editing modes -;; Copyright (C) 1992, 1995, 1996, 1998, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1995, 1996, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: James Clark <jjc@jclark.com> ;; Maintainer: FSF @@ -252,8 +252,6 @@ Any terminating `>' or `/' is not matched.") '((t (:inherit font-lock-builtin-face))) "`sgml-mode' face used to highlight the namespace part of identifiers." :group 'sgml) -;; backward-compatibility alias -(put 'sgml-namespace-face 'face-alias 'sgml-namespace) (defvar sgml-namespace-face 'sgml-namespace) ;; internal @@ -903,8 +901,6 @@ With prefix argument ARG, repeat this ARG times." (forward-list))))))) -(autoload 'compile-internal "compile") - (defun sgml-validate (command) "Validate an SGML document. Runs COMMAND, a shell command, in a separate process asynchronously @@ -921,7 +917,7 @@ and move to the line in the SGML document that caused it." (file-name-nondirectory name)))))))) (setq sgml-saved-validate-command command) (save-some-buffers (not compilation-ask-about-save) nil) - (compile-internal command "No more errors")) + (compilation-start command)) (defsubst sgml-at-indentation-p () "Return true if point is at the first non-whitespace character on the line." diff --git a/lisp/textmodes/spell.el b/lisp/textmodes/spell.el index 99046988036..077e9b0fd35 100644 --- a/lisp/textmodes/spell.el +++ b/lisp/textmodes/spell.el @@ -1,6 +1,6 @@ ;;; spell.el --- spelling correction interface for Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp, unix diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 293df6d9c52..f45bcde6684 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el @@ -1,12 +1,12 @@ ;;; table.el --- create and edit WYSIWYG text based embedded tables -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: wp, convenience ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com> ;; Created: Sat Jul 08 2000 13:28:45 (PST) -;; Revised: Fri Mar 18 2005 13:50:13 (PST) +;; Revised: Sat Aug 06 2005 19:42:54 (CEST) ;; This file is part of GNU Emacs. @@ -691,8 +691,6 @@ height." "*Face used for table cell contents." :tag "Cell Face" :group 'table) -;; backward-compatibility alias -(put 'table-cell-face 'face-alias 'table-cell) (defcustom table-cell-horizontal-chars "-=" "*Characters that may be used for table cell's horizontal border line." @@ -843,9 +841,8 @@ simply by any key input." :type 'hook :group 'table-hooks) -(defcustom table-yank-handler '(nil nil t nil) - "*yank-handler for table." - :group 'table) +(defvar table-yank-handler '(nil nil t nil) + "Yank handler for tables.") (setplist 'table-disable-incompatibility-warning nil) diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index f9a2db01386..82e5a1cf5f1 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1,7 +1,7 @@ ;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*- ;; Copyright (C) 1985, 1986, 1989, 1992, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: tex @@ -36,6 +36,9 @@ (require 'cl) (require 'skeleton)) +(defvar font-lock-comment-face) +(defvar font-lock-doc-face) + (require 'shell) (require 'compile) @@ -1577,12 +1580,14 @@ Return the process in which TeX is running." (star (string-match "\\*" cmd)) (string (concat - (if file - (if star (concat (substring cmd 0 star) - (shell-quote-argument file) - (substring cmd (1+ star))) - (concat cmd " " (shell-quote-argument file))) - cmd) + (if (null file) + cmd + (if (file-name-absolute-p file) + (setq file (convert-standard-filename file))) + (if star (concat (substring cmd 0 star) + (shell-quote-argument file) + (substring cmd (1+ star))) + (concat cmd " " (shell-quote-argument file)))) (if background "&" "")))) ;; Switch to buffer before checking for subproc output in it. (set-buffer buf) @@ -1760,7 +1765,11 @@ FILE is typically the output DVI or PDF file." (save-excursion (goto-char (point-max)) (and (re-search-backward - "(see the transcript file for additional information)" nil t) + (concat + "(see the transcript file for additional information)" + "\\|^Output written on .*" + (regexp-quote (file-name-nondirectory file)) + " (.*)\\.") nil t) (> (save-excursion (or (re-search-backward "\\[[0-9]+\\]" nil t) (point-min))) diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el index 8425d691d77..d46d2f81fd4 100644 --- a/lisp/textmodes/texinfmt.el +++ b/lisp/textmodes/texinfmt.el @@ -1,8 +1,8 @@ ;;; texinfmt.el --- format Texinfo files into Info files ;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, -;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2005 -;; Free Software Foundation, Inc. +;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: Robert J. Chassell <bug-texinfo@gnu.org> ;; Keywords: maint, tex, docs diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 693ab4e608e..a0dec653165 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el @@ -1,7 +1,7 @@ ;;; texinfo.el --- major mode for editing Texinfo files ;; Copyright (C) 1985, 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1997, -;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Date: [See date below for texinfo-version] @@ -42,6 +42,7 @@ `(defvar ,var ,value ,doc))) (eval-when-compile (require 'tex-mode) (require 'cl)) +(defvar outline-heading-alist) (defgroup texinfo nil "Texinfo Mode." diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index dbd9b8a5c67..110981d33b0 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el @@ -1,6 +1,7 @@ ;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files -;; Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Maintainer: bug-texinfo@gnu.org diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el index 0737f64f768..5e4cfc88471 100644 --- a/lisp/textmodes/text-mode.el +++ b/lisp/textmodes/text-mode.el @@ -1,6 +1,7 @@ ;;; text-mode.el --- text mode, and its idiosyncratic commands -;; Copyright (C) 1985, 1992, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1992, 1994, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el index 469cd73cd66..c317131d955 100644 --- a/lisp/textmodes/tildify.el +++ b/lisp/textmodes/tildify.el @@ -1,6 +1,7 @@ ;;; tildify.el --- adding hard spaces into texts -;; Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Milan Zamazal <pdm@zamazal.org> ;; Version: 4.5 diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el index 30429638cb8..1e83b7a725b 100644 --- a/lisp/textmodes/two-column.el +++ b/lisp/textmodes/two-column.el @@ -1,6 +1,7 @@ ;;; two-column.el --- minor mode for editing of two-column text -;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Adapted-By: ESR, Daniel Pfeiffer diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el index c380c809a7d..3c67307da51 100644 --- a/lisp/textmodes/underline.el +++ b/lisp/textmodes/underline.el @@ -1,6 +1,6 @@ ;;; underline.el --- insert/remove underlining (done by overstriking) in Emacs -;; Copyright (C) 1985 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index eee7b853743..c76a3bf2d70 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -1,7 +1,7 @@ ;;; thingatpt.el --- get the `thing' at point -;; Copyright (C) 1991,92,93,94,95,96,97,1998,2000 -;; Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000 +;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz> ;; Maintainer: FSF diff --git a/lisp/thumbs.el b/lisp/thumbs.el index 478fb0b6528..0fa448d4d7a 100644 --- a/lisp/thumbs.el +++ b/lisp/thumbs.el @@ -1,6 +1,6 @@ ;;; thumbs.el --- Thumbnails previewer for images files -;; Copyright 2004, 2005 Free Software Foundation, Inc +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> ;; Keywords: Multimedia @@ -138,23 +138,25 @@ this value can let another user see some of your images." :group 'thumbs) ;; Initialize some variable, for later use. -(defvar thumbs-current-tmp-filename - nil +(defvar thumbs-current-tmp-filename nil "Temporary filename of current image.") -(defvar thumbs-current-image-filename - nil +(make-variable-buffer-local 'thumbs-current-tmp-filename) + +(defvar thumbs-current-image-filename nil "Filename of current image.") -(defvar thumbs-current-image-size - nil +(make-variable-buffer-local 'thumbs-current-image-filename) + +(defvar thumbs-current-image-size nil "Size of current image.") -(defvar thumbs-image-num - nil + +(defvar thumbs-image-num nil "Number of current image.") -(defvar thumbs-current-dir - nil +(make-variable-buffer-local 'thumbs-image-num) + +(defvar thumbs-current-dir nil "Current directory.") -(defvar thumbs-markedL - nil + +(defvar thumbs-markedL nil "List of marked files.") (defalias 'thumbs-gensym @@ -365,8 +367,8 @@ If MARKED is non-nil, the image is marked." :conversion ,(if marked 'disabled) :margin ,thumbs-margin))) (insert-image i) - (setq thumbs-current-image-size - (image-size i t)))) + (set (make-local-variable 'thumbs-current-image-size) + (image-size i t)))) (defun thumbs-insert-thumb (img &optional marked) "Insert the thumbnail for IMG at point. @@ -397,8 +399,7 @@ If MARKED is non-nil, the image is marked." (thumbs-mode) (thumbs-do-thumbs-insertion L) (goto-char (point-min)) - (setq thumbs-current-dir default-directory) - (make-variable-buffer-local 'thumbs-current-dir))) + (set (make-local-variable 'thumbs-current-dir) default-directory))) ;;;###autoload (defun thumbs-show-all-from-dir (dir &optional reg same-window) @@ -436,10 +437,6 @@ and SAME-WINDOW to show thumbs in the same window." (setq thumbs-current-image-filename img thumbs-current-tmp-filename nil thumbs-image-num (or num 0)) - (make-variable-buffer-local 'thumbs-current-image-filename) - (make-variable-buffer-local 'thumbs-current-tmp-filename) - (make-variable-buffer-local 'thumbs-current-image-size) - (make-variable-buffer-local 'thumbs-image-num) (delete-region (point-min)(point-max)) (thumbs-insert-image img (thumbs-image-type img) 0))) diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index 5b763d2f0ff..0f3aeb06895 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el @@ -1,7 +1,7 @@ ;;; time-stamp.el --- Maintain last change time stamps in files edited by Emacs -;; Copyright 1989, 1993, 1994, 1995, 1997, 2000, 2001 -;;; Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/time.el b/lisp/time.el index a6a4d771a2c..b70e7f7b00e 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -1,7 +1,7 @@ ;;; time.el --- display time, load and mail indicator in mode line of Emacs -*-coding: utf-8 -*- -;; Copyright (C) 1985, 86, 87, 93, 94, 96, 2000, 2001, 2002, 2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1996, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -142,7 +142,7 @@ See `display-time-use-mail-icon' and `display-time-mail-face'.") ;; Fixme: Default to icon on graphical display? (defcustom display-time-use-mail-icon nil - "Non-nil means use an icon as the mail indicator on a graphic display. + "Non-nil means use an icon as mail indicator on a graphic display. Otherwise use `display-time-mail-string'. The icon may consume less of the mode line. It is specified by `display-time-mail-icon'." :group 'display-time @@ -161,7 +161,7 @@ This can use the Unicode letter character if you can display it." string)) (defcustom display-time-format nil - "*A string specifying the format for displaying the time in the mode line. + "*String specifying format for displaying the time in the mode line. See the function `format-time-string' for an explanation of how to write this string. If this is nil, the defaults depend on `display-time-day-and-date' and `display-time-24hr-format'." @@ -204,7 +204,7 @@ depend on `display-time-day-and-date' and `display-time-24hr-format'." 'local-map (make-mode-line-mouse-map 'mouse-2 read-mail-command))) "")) - "*A list of expressions governing display of the time in the mode line. + "*List of expressions governing display of the time in the mode line. For most purposes, you can control the time format using `display-time-format' which is a more standard interface. diff --git a/lisp/timezone.el b/lisp/timezone.el index cd6e3ce769f..7093aec22a4 100644 --- a/lisp/timezone.el +++ b/lisp/timezone.el @@ -1,6 +1,7 @@ ;;; timezone.el --- time zone package for GNU Emacs -;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Masanobu Umeda ;; Maintainer: umerin@mse.kyutech.ac.jp @@ -149,7 +150,7 @@ Understands the following styles: (time nil) (zone nil)) ;This may be nil. (cond ((string-match - "\\([0-9]+\\)[ \t]+\\([^ \t,]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9:]+\\)[ \t]*\\([-+a-zA-Z0-9]+\\)" date) + "\\([0-9]+\\)[ \t]+\\([^ \t,]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9:]+\\)[ \t]+\\([-+a-zA-Z0-9]+\\)" date) ;; Styles: (1) and (2) with timezone and buggy timezone ;; This is most common in mail and news, ;; so it is worth trying first. diff --git a/lisp/tmm.el b/lisp/tmm.el index a55b11b17f6..f73e3fa0980 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el @@ -1,7 +1,7 @@ ;;; tmm.el --- text mode access to menu-bar -;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002 -;; Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Ilya Zakharevich <ilya@math.mps.ohio-state.edu> ;; Maintainer: FSF diff --git a/lisp/toolbar/tool-bar.el b/lisp/toolbar/tool-bar.el index 45c51532c9f..487255a0272 100644 --- a/lisp/toolbar/tool-bar.el +++ b/lisp/toolbar/tool-bar.el @@ -1,6 +1,7 @@ ;;; tool-bar.el --- setting up the tool bar ;; -;; Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Dave Love <fx@gnu.org> ;; Keywords: mouse frames diff --git a/lisp/tooltip.el b/lisp/tooltip.el index fabb154d7ed..25032f69c4e 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el @@ -1,7 +1,7 @@ ;;; tooltip.el --- show tooltip windows -;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@acm.org> ;; Keywords: help c mouse tools @@ -27,6 +27,8 @@ ;;; Code: +(defvar comint-prompt-regexp) + ;;; Customizable settings (defgroup tooltip nil @@ -154,18 +156,15 @@ This might return nil if the event did not occur over a buffer." ;; set-buffer prevents redisplay optimizations, so every mouse motion ;; would be accompanied by a full redisplay. -;;;###autoload (define-minor-mode tooltip-mode "Toggle Tooltip display. With ARG, turn tooltip mode on if and only if ARG is positive." :global t - ;; If you change the :init-value below, you also need to change the - ;; corresponding code in startup.el. :init-value (not (or noninteractive - (and (boundp 'emacs-quick-startup) emacs-quick-startup) - (not (and (fboundp 'display-graphic-p) - (display-graphic-p))) + emacs-basic-display + (not (display-graphic-p)) (not (fboundp 'x-show-tip)))) + :initialize 'custom-initialize-safe-default :group 'tooltip (unless (or (null tooltip-mode) (fboundp 'x-show-tip)) (error "Sorry, tooltips are not yet available on this system")) diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el index 407fb65ea49..049999a7b88 100644 --- a/lisp/tree-widget.el +++ b/lisp/tree-widget.el @@ -59,37 +59,52 @@ ;; values, it is necessary to set the :args property to nil, then ;; redraw the tree. ;; -;; :open-control (default `tree-widget-open-control') -;; :close-control (default `tree-widget-close-control') -;; :empty-control (default `tree-widget-empty-control') -;; :leaf-control (default `tree-widget-leaf-control') -;; :guide (default `tree-widget-guide') -;; :end-guide (default `tree-widget-end-guide') -;; :no-guide (default `tree-widget-no-guide') -;; :handle (default `tree-widget-handle') -;; :no-handle (default `tree-widget-no-handle') -;; Those properties define the widgets used to draw the tree, and -;; permit to customize its look and feel. For example, using -;; `item' widgets with these :tag values: +;; :open-icon (default `tree-widget-open-icon') +;; :close-icon (default `tree-widget-close-icon') +;; :empty-icon (default `tree-widget-empty-icon') +;; :leaf-icon (default `tree-widget-leaf-icon') +;; Those properties define the icon widgets associated to tree +;; nodes. Icon widgets must derive from the `tree-widget-icon' +;; widget. The :tag and :glyph-name property values are +;; respectively used when drawing the text and graphic +;; representation of the tree. The :tag value must be a string +;; that represent a node icon, like "[+]" for example. The +;; :glyph-name value must the name of an image found in the current +;; theme, like "close" for example (see also the variable +;; `tree-widget-theme'). ;; -;; open-control "[-] " (OC) -;; close-control "[+] " (CC) -;; empty-control "[X] " (EC) -;; leaf-control "[>] " (LC) -;; guide " |" (GU) -;; noguide " " (NG) -;; end-guide " `" (EG) -;; handle "-" (HA) -;; no-handle " " (NH) +;; :guide (default `tree-widget-guide') +;; :end-guide (default `tree-widget-end-guide') +;; :no-guide (default `tree-widget-no-guide') +;; :handle (default `tree-widget-handle') +;; :no-handle (default `tree-widget-no-handle') +;; Those properties define `item'-like widgets used to draw the +;; tree guide lines. The :tag property value is used when drawing +;; the text representation of the tree. The graphic look and feel +;; is given by the images named "guide", "no-guide", "end-guide", +;; "handle", and "no-handle" found in the current theme (see also +;; the variable `tree-widget-theme'). ;; -;; A tree will look like this: +;; These are the default :tag values for icons, and guide lines: ;; -;; [-] 1 (OC :node) -;; |-[+] 1.0 (GU+HA+CC :node) -;; |-[X] 1.1 (GU+HA+EC :node) -;; `-[-] 1.2 (EG+HA+OC :node) -;; |-[>] 1.2.1 (NG+NH+GU+HA+LC child) -;; `-[>] 1.2.2 (NG+NH+EG+HA+LC child) +;; open-icon "[-]" +;; close-icon "[+]" +;; empty-icon "[X]" +;; leaf-icon "" +;; guide " |" +;; no-guide " " +;; end-guide " `" +;; handle "-" +;; no-handle " " +;; +;; The text representation of a tree looks like this: +;; +;; [-] 1 (open-icon :node) +;; |-[+] 1.0 (guide+handle+close-icon :node) +;; |-[X] 1.1 (guide+handle+empty-icon :node) +;; `-[-] 1.2 (end-guide+handle+open-icon :node) +;; |- 1.2.1 (no-guide+no-handle+guide+handle+leaf-icon leaf) +;; `- 1.2.2 (no-guide+no-handle+end-guide+handle+leaf-icon leaf) ;; ;; By default, images will be used instead of strings to draw a ;; nice-looking tree. See the `tree-widget-image-enable', @@ -133,19 +148,13 @@ The default is to use the \"tree-widget\" relative name." (defcustom tree-widget-theme nil "*Name of the theme where to look up for images. It must be a sub directory of the directory specified in variable -`tree-widget-themes-directory'. The default is \"default\". When an -image is not found in this theme, the default theme is searched too. -A complete theme must contain images with these file names with a -supported extension (see also `tree-widget-image-formats'): +`tree-widget-themes-directory'. The default theme is \"default\". +When an image is not found in a theme, it is searched in the default +theme. + +A complete theme must at least contain images with these file names +with a supported extension (see also `tree-widget-image-formats'): -\"open\" - Represent an expanded node. -\"close\" - Represent a collapsed node. -\"empty\" - Represent an expanded node with no child. -\"leaf\" - Represent a leaf node. \"guide\" A vertical guide line. \"no-guide\" @@ -153,9 +162,21 @@ supported extension (see also `tree-widget-image-formats'): \"end-guide\" End of a vertical guide line. \"handle\" - Horizontal guide line that joins the vertical guide line to a node. + Horizontal guide line that joins the vertical guide line to an icon. \"no-handle\" - An invisible handle." + An invisible handle. + +Plus images whose name is given by the :glyph-name property of the +icon widgets used to draw the tree. By default these images are used: + +\"open\" + Icon associated to an expanded tree. +\"close\" + Icon associated to a collapsed tree. +\"empty\" + Icon associated to an expanded tree with no child. +\"leaf\" + Icon associated to a leaf node." :type '(choice (const :tag "Default" nil) (string :tag "Name")) :group 'tree-widget) @@ -171,6 +192,12 @@ supported extension (see also `tree-widget-image-formats'): "*Default properties of XEmacs images." :type 'plist :group 'tree-widget) + +(defcustom tree-widget-space-width 0.5 + "Amount of space between an icon image and a node widget. +Must be a valid space :width display property." + :group 'tree-widget + :type 'sexp) ;;; Image support ;; @@ -297,6 +324,8 @@ properties. Typically it should contain something like this: '(:ascent center :mask (heuristic t)) )) +When there is no \"tree-widget-theme-setup\" library in the current +theme directory, load the one from the default theme, if available. Default global properties are provided for respectively Emacs and XEmacs in the variables `tree-widget-image-properties-emacs', and `tree-widget-image-properties-xemacs'." @@ -308,12 +337,17 @@ XEmacs in the variables `tree-widget-image-properties-emacs', and (file-name-directory file)) t t) ;; If properties have been setup, use them. (unless (setq plist (aref tree-widget--theme 2)) - ;; By default, use supplied global properties. - (setq plist (if (featurep 'xemacs) - tree-widget-image-properties-xemacs - tree-widget-image-properties-emacs)) - ;; Setup the cache. - (tree-widget-set-image-properties plist))) + ;; Try from the default theme. + (load (expand-file-name "../default/tree-widget-theme-setup" + (file-name-directory file)) t t) + ;; If properties have been setup, use them. + (unless (setq plist (aref tree-widget--theme 2)) + ;; By default, use supplied global properties. + (setq plist (if (featurep 'xemacs) + tree-widget-image-properties-xemacs + tree-widget-image-properties-emacs)) + ;; Setup the cache. + (tree-widget-set-image-properties plist)))) plist)) (defconst tree-widget--cursors @@ -321,10 +355,6 @@ XEmacs in the variables `tree-widget-image-properties-emacs', and ;; This feature works since Emacs 22, and ignored on older versions, ;; and XEmacs. '( - ("open" . hand ) - ("close" . hand ) - ("empty" . arrow) - ("leaf" . arrow) ("guide" . arrow) ("no-guide" . arrow) ("end-guide" . arrow) @@ -357,7 +387,8 @@ found." ;; Add the pointer shape (cons :pointer (cons - (cdr (assoc name tree-widget--cursors)) + (or (cdr (assoc name tree-widget--cursors)) + 'hand) (tree-widget-image-properties file))))))))) nil))))) @@ -395,40 +426,39 @@ Return the image found, or nil if not found." "Keymap used inside node buttons. Handle mouse button 1 click on buttons.") -(define-widget 'tree-widget-control 'push-button - "Basic widget other tree-widget node buttons are derived from." +(define-widget 'tree-widget-icon 'push-button + "Basic widget other tree-widget icons are derived from." :format "%[%t%]" :button-keymap tree-widget-button-keymap ; XEmacs :keymap tree-widget-button-keymap ; Emacs + :create 'tree-widget-icon-create + :action 'tree-widget-icon-action + :help-echo 'tree-widget-icon-help-echo ) -(define-widget 'tree-widget-open-control 'tree-widget-control - "Button for an expanded tree-widget node." - :tag "[-] " - ;;:tag-glyph (tree-widget-find-image "open") - :notify 'tree-widget-close-node - :help-echo "Collapse node" +(define-widget 'tree-widget-open-icon 'tree-widget-icon + "Icon for an expanded tree-widget node." + :tag "[-]" + :glyph-name "open" ) -(define-widget 'tree-widget-empty-control 'tree-widget-open-control - "Button for an expanded tree-widget node with no child." - :tag "[X] " - ;;:tag-glyph (tree-widget-find-image "empty") +(define-widget 'tree-widget-empty-icon 'tree-widget-icon + "Icon for an expanded tree-widget node with no child." + :tag "[X]" + :glyph-name "empty" ) -(define-widget 'tree-widget-close-control 'tree-widget-control - "Button for a collapsed tree-widget node." - :tag "[+] " - ;;:tag-glyph (tree-widget-find-image "close") - :notify 'tree-widget-open-node - :help-echo "Expand node" +(define-widget 'tree-widget-close-icon 'tree-widget-icon + "Icon for a collapsed tree-widget node." + :tag "[+]" + :glyph-name "close" ) -(define-widget 'tree-widget-leaf-control 'item - "Representation of a tree-widget leaf node." - :tag " " ;; Need at least one char to display the image :-( - ;;:tag-glyph (tree-widget-find-image "leaf") - :format "%t" +(define-widget 'tree-widget-leaf-icon 'tree-widget-icon + "Icon for a tree-widget leaf node." + :tag "" + :glyph-name "leaf" + :button-face 'default ) (define-widget 'tree-widget-guide 'item @@ -454,7 +484,7 @@ Handle mouse button 1 click on buttons.") (define-widget 'tree-widget-handle 'item "Horizontal guide line that joins a vertical guide line to a node." - :tag " " + :tag "-" ;;:tag-glyph (tree-widget-find-image "handle") :format "%t" ) @@ -473,10 +503,12 @@ Handle mouse button 1 click on buttons.") :value-get 'widget-value-value-get :value-delete 'widget-children-value-delete :value-create 'tree-widget-value-create - :open-control 'tree-widget-open-control - :close-control 'tree-widget-close-control - :empty-control 'tree-widget-empty-control - :leaf-control 'tree-widget-leaf-control + :action 'tree-widget-action + :help-echo 'tree-widget-help-echo + :open-icon 'tree-widget-open-icon + :close-icon 'tree-widget-close-icon + :empty-icon 'tree-widget-empty-icon + :leaf-icon 'tree-widget-leaf-icon :guide 'tree-widget-guide :end-guide 'tree-widget-end-guide :no-guide 'tree-widget-no-guide @@ -553,32 +585,35 @@ WIDGET's :node sub-widget." (widget-put arg :value (widget-value child)) ;; Save properties specified in :keep. (tree-widget-keep arg child))))) - -(defvar tree-widget-after-toggle-functions nil - "Hooks run after toggling a tree-widget expansion. -Each function will receive the tree-widget as its unique argument. -This hook should be local in the buffer used to display widgets.") - -(defun tree-widget-close-node (widget &rest ignore) - "Collapse the tree-widget, parent of WIDGET. -WIDGET is, or derives from, a tree-widget-open-control widget. -IGNORE other arguments." - (let ((tree (widget-get widget :parent))) - ;; Before to collapse the node, save children values so next open - ;; can recover them. - (tree-widget-children-value-save tree) - (widget-put tree :open nil) - (widget-value-set tree nil) - (run-hook-with-args 'tree-widget-after-toggle-functions tree))) - -(defun tree-widget-open-node (widget &rest ignore) - "Expand the tree-widget, parent of WIDGET. -WIDGET is, or derives from, a tree-widget-close-control widget. -IGNORE other arguments." - (let ((tree (widget-get widget :parent))) - (widget-put tree :open t) - (widget-value-set tree t) - (run-hook-with-args 'tree-widget-after-toggle-functions tree))) + +;;; Widget creation +;; +(defvar tree-widget-before-create-icon-functions nil + "Hooks run before to create a tree-widget icon. +Each function is passed the icon widget not yet created. +The value of the icon widget :node property is a tree :node widget or +a leaf node widget, not yet created. +This hook can be used to dynamically change properties of the icon and +associated node widgets. For example, to dynamically change the look +and feel of the tree-widget by changing the values of the :tag +and :glyph-name properties of the icon widget. +This hook should be local in the buffer setup to display widgets.") + +(defun tree-widget-icon-create (icon) + "Create the ICON widget." + (run-hook-with-args 'tree-widget-before-create-icon-functions icon) + (widget-put icon :tag-glyph + (tree-widget-find-image (widget-get icon :glyph-name))) + ;; Ensure there is at least one char to display the image. + (and (widget-get icon :tag-glyph) + (equal "" (or (widget-get icon :tag) "")) + (widget-put icon :tag " ")) + (widget-default-create icon) + ;; Insert space between the icon and the node widget. + (insert-char ? 1) + (put-text-property + (1- (point)) (point) + 'display (list 'space :width tree-widget-space-width))) (defun tree-widget-value-create (tree) "Create the TREE tree-widget." @@ -598,37 +633,34 @@ IGNORE other arguments." (let ((args (widget-get tree :args)) (xpandr (or (widget-get tree :expander) (widget-get tree :dynargs))) - (leaf (widget-get tree :leaf-control)) (guide (widget-get tree :guide)) (noguide (widget-get tree :no-guide)) (endguide (widget-get tree :end-guide)) (handle (widget-get tree :handle)) (nohandle (widget-get tree :no-handle)) - (leafi (tree-widget-find-image "leaf")) (guidi (tree-widget-find-image "guide")) (noguidi (tree-widget-find-image "no-guide")) (endguidi (tree-widget-find-image "end-guide")) (handli (tree-widget-find-image "handle")) - (nohandli (tree-widget-find-image "no-handle")) - child) + (nohandli (tree-widget-find-image "no-handle"))) ;; Request children at run time, when not already done. (when (and (not args) xpandr) (setq args (mapcar 'widget-convert (funcall xpandr tree))) (widget-put tree :args args)) - ;; Insert the node "open" button. + ;; Create the icon widget for the expanded tree. (push (widget-create-child-and-convert - tree (widget-get - tree (if args :open-control :empty-control)) - :tag-glyph (tree-widget-find-image - (if args "open" "empty"))) + tree (widget-get tree (if args :open-icon :empty-icon)) + ;; At this point the node widget isn't yet created. + :node (setq node (widget-convert node))) buttons) - ;; Insert the :node element. - (push (widget-create-child-and-convert tree node) - children) - ;; Insert children. + ;; Create the tree node widget. + (push (widget-create-child tree node) children) + ;; Update the icon :node with the created node widget. + (widget-put (car buttons) :node (car children)) + ;; Create the tree children. (while args - (setq child (car args) - args (cdr args)) + (setq node (car args) + args (cdr args)) (and indent (insert-char ?\ indent)) ;; Insert guide lines elements from previous levels. (dolist (f (reverse flags)) @@ -644,30 +676,92 @@ IGNORE other arguments." ;; Insert the node handle line (widget-create-child-and-convert tree handle :tag-glyph handli) - ;; If leaf node, insert a leaf node button. - (unless (tree-widget-p child) + (if (tree-widget-p node) + ;; Create a sub-tree node. + (push (widget-create-child-and-convert + tree node :tree-widget--guide-flags + (cons (if args t) flags)) + children) + ;; Create the icon widget for a leaf node. (push (widget-create-child-and-convert - tree leaf :tag-glyph leafi) - buttons)) - ;; Finally, insert the child widget. - (push (widget-create-child-and-convert - tree child - :tree-widget--guide-flags (cons (if args t) flags)) - children))) + tree (widget-get tree :leaf-icon) + ;; At this point the node widget isn't yet created. + :node (setq node (widget-convert + node :tree-widget--guide-flags + (cons (if args t) flags))) + :tree-widget--leaf-flag t) + buttons) + ;; Create the leaf node widget. + (push (widget-create-child tree node) children) + ;; Update the icon :node with the created node widget. + (widget-put (car buttons) :node (car children))))) ;;;; Collapsed node. - ;; Insert the "closed" node button. + ;; Create the icon widget for the collapsed tree. (push (widget-create-child-and-convert - tree (widget-get tree :close-control) - :tag-glyph (tree-widget-find-image "close")) + tree (widget-get tree :close-icon) + ;; At this point the node widget isn't yet created. + :node (setq node (widget-convert node))) buttons) - ;; Insert the :node element. - (push (widget-create-child-and-convert tree node) - children)) - ;; Save widget children and buttons. The :node child is the first - ;; element in children. + ;; Create the tree node widget. + (push (widget-create-child tree node) children) + ;; Update the icon :node with the created node widget. + (widget-put (car buttons) :node (car children))) + ;; Save widget children and buttons. The tree-widget :node child + ;; is the first element in :children. (widget-put tree :children (nreverse children)) - (widget-put tree :buttons buttons) - )) + (widget-put tree :buttons buttons))) + +;;; Widget callbacks +;; +(defsubst tree-widget-leaf-node-icon-p (icon) + "Return non-nil if ICON is a leaf node icon. +That is, if its :node property value is a leaf node widget." + (widget-get icon :tree-widget--leaf-flag)) + +(defun tree-widget-icon-action (icon &optional event) + "Handle the ICON widget :action. +If ICON :node is a leaf node it handles the :action. The tree-widget +parent of ICON handles the :action otherwise. +Pass the received EVENT to :action." + (let ((node (widget-get icon (if (tree-widget-leaf-node-icon-p icon) + :node :parent)))) + (widget-apply node :action event))) + +(defun tree-widget-icon-help-echo (icon) + "Return the help-echo string of ICON. +If ICON :node is a leaf node it handles the :help-echo. The tree-widget +parent of ICON handles the :help-echo otherwise." + (let* ((node (widget-get icon (if (tree-widget-leaf-node-icon-p icon) + :node :parent))) + (help-echo (widget-get node :help-echo))) + (if (functionp help-echo) + (funcall help-echo node) + help-echo))) + +(defvar tree-widget-after-toggle-functions nil + "Hooks run after toggling a tree-widget expansion. +Each function is passed a tree-widget. If the value of the :open +property is non-nil the tree has been expanded, else collapsed. +This hook should be local in the buffer setup to display widgets.") + +(defun tree-widget-action (tree &optional event) + "Handle the :action of the TREE tree-widget. +That is, toggle expansion of the TREE tree-widget. +Ignore the EVENT argument." + (let ((open (not (widget-get tree :open)))) + (or open + ;; Before to collapse the node, save children values so next + ;; open can recover them. + (tree-widget-children-value-save tree)) + (widget-put tree :open open) + (widget-value-set tree open) + (run-hook-with-args 'tree-widget-after-toggle-functions tree))) + +(defun tree-widget-help-echo (tree) + "Return the help-echo string of the TREE tree-widget." + (if (widget-get tree :open) + "Collapse node" + "Expand node")) (provide 'tree-widget) diff --git a/lisp/type-break.el b/lisp/type-break.el index 4545351f5a9..9c49a5b6672 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el @@ -1,6 +1,7 @@ ;;; type-break.el --- encourage rests from typing at appropriate intervals -;; Copyright (C) 1994, 95, 97, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1997, 2000, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Noah Friedman ;; Maintainer: Noah Friedman <friedman@splode.com> diff --git a/lisp/uniquify.el b/lisp/uniquify.el index 9e241a55f8b..cc08ab70836 100644 --- a/lisp/uniquify.el +++ b/lisp/uniquify.el @@ -1,7 +1,7 @@ ;;; uniquify.el --- unique buffer names dependent on file name -;; Copyright (c) 1989, 1995, 1996, 1997, 2001, 2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1989, 1995, 1996, 1997, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Dick King <king@reasoning.com> ;; Maintainer: FSF diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 0313379814f..ad0ee150207 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,25 @@ +2005-09-01 Chong Yidong <cyd@stupidchicken.com> + + * url-util.el (url-parse-query-string): New optional argument + allow-newlines allows decoding of newlines. + + * url-mailto.el (url-mailto): Allow newlines in URL arguments. + Don't lose original "to" value when there is a "to" header. + Remove carriage return characters in message body. + +2005-08-24 Juanma Barranquero <lekktu@gmail.com> + + * url-news.el (nntp-open-tls-stream, nntp-open-ssl-stream): + * url-http.el (url-http-cookies-sources): Defvar at compile time. + +2005-07-15 Richard M. Stallman <rms@gnu.org> + + * url-http.el (url-http-parse-headers): Add :redirect arg-pair + when calling url-retrieve, to indicate a redirect. + + * url.el (url-retrieve): The callback function can get an additional + keyword arg pair. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el index d2fae55b141..c305bb31f7a 100644 --- a/lisp/url/url-about.el +++ b/lisp/url/url-about.el @@ -1,6 +1,6 @@ ;;; url-about.el --- Show internal URLs -;; Copyright (c) 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 336c28eab26..317f91c9a13 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el @@ -1,6 +1,7 @@ ;;; url-auth.el --- Uniform Resource Locator authorization modules -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index e80ba059393..40967446dd7 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -1,6 +1,7 @@ ;;; url-cache.el --- Uniform Resource Locator retrieval tool -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia @@ -39,7 +40,7 @@ (if (file-exists-p file) (not (file-directory-p file)) (file-directory-p (file-name-directory file))))) - + (defun url-cache-prepare (file) "Makes it possible to cache data in FILE. Creates any necessary parent directories, deleting any non-directory files @@ -70,7 +71,7 @@ FILE can be created or overwritten." (if (url-cache-prepare fname) (let ((coding-system-for-write 'binary)) (write-region (point-min) (point-max) fname nil 5))))))) - + ;;;###autoload (defun url-is-cached (url) "Return non-nil if the URL is cached." diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el index 40307c49eaf..abaf8dd9e76 100644 --- a/lisp/url/url-cid.el +++ b/lisp/url/url-cid.el @@ -1,6 +1,6 @@ ;;; url-cid.el --- Content-ID URL loader -;; Copyright (c) 1998 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index 314911f789b..618f89e60e9 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el @@ -1,6 +1,7 @@ ;;; url-cookie.el --- Netscape Cookie support -;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 1b683124c94..2a6b28b9b3c 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el @@ -1,6 +1,6 @@ ;;; url-dav.el --- WebDAV support -;; Copyright (C) 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el index 5d5381db0bf..7c635d13e3b 100644 --- a/lisp/url/url-dired.el +++ b/lisp/url/url-dired.el @@ -1,6 +1,7 @@ ;;; url-dired.el --- URL Dired minor mode -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, files diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el index c8e17a524bb..ca4b8c72ab8 100644 --- a/lisp/url/url-expand.el +++ b/lisp/url/url-expand.el @@ -1,6 +1,6 @@ ;;; url-expand.el --- expand-file-name for URLs -;; Copyright (c) 1999 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el index 7e224bd1420..44a4f8bd9f4 100644 --- a/lisp/url/url-file.el +++ b/lisp/url/url-file.el @@ -1,6 +1,7 @@ ;;; url-file.el --- File retrieval code -;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el index 966000249d3..633f4ed40d1 100644 --- a/lisp/url/url-ftp.el +++ b/lisp/url/url-ftp.el @@ -1,6 +1,7 @@ ;;; url-ftp.el --- FTP wrapper -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index e0ccbbdc4e7..66ac39612fd 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el @@ -1,6 +1,6 @@ ;;; url-gw.el --- Gateway munging for URL loading -;; Copyright (c) 1997, 1998, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index cc626a4cb44..bbbf19f53fc 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el @@ -1,6 +1,7 @@ ;;; url-handlers.el --- file-name-handler stuff for URL loading -;; Copyright (c) 1996, 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el index 040f83ad2f2..6da5dd91551 100644 --- a/lisp/url/url-history.el +++ b/lisp/url/url-history.el @@ -1,6 +1,7 @@ ;;; url-history.el --- Global history tracking for URL package -;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 92cbf41e76b..14f5eab1b16 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -1,6 +1,6 @@ ;;; url-http.el --- HTTP retrieval routines -;; Copyright (c) 1999, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes @@ -28,7 +28,8 @@ (eval-when-compile (require 'cl) - (defvar url-http-extra-headers)) + (defvar url-http-extra-headers) + (defvar url-http-cookies-sources)) (require 'url-gw) (require 'url-util) (require 'url-parse) @@ -501,8 +502,9 @@ should be shown to the user." (url-request-data url-http-data) (url-request-extra-headers url-http-extra-headers)) (url-retrieve redirect-uri url-callback-function - (cons redirect-uri - (cdr url-callback-arguments))) + (cons :redirect + (cons redirect-uri + url-callback-arguments))) (url-mark-buffer-as-dead (current-buffer)))))) (4 ; Client error ;; 400 Bad Request diff --git a/lisp/url/url-https.el b/lisp/url/url-https.el index e7aeffde788..1777da0b6b9 100644 --- a/lisp/url/url-https.el +++ b/lisp/url/url-https.el @@ -1,6 +1,6 @@ ;;; url-https.el --- HTTP over SSL/TLS routines -;; Copyright (c) 1999, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el index 9d923e17259..8d1b9b3877b 100644 --- a/lisp/url/url-imap.el +++ b/lisp/url/url-imap.el @@ -1,6 +1,6 @@ ;;; url-imap.el --- IMAP retrieval routines -;; Copyright (c) 1999 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el index dd88a85a03a..a06bdff5bfd 100644 --- a/lisp/url/url-irc.el +++ b/lisp/url/url-irc.el @@ -1,6 +1,7 @@ ;;; url-irc.el --- IRC URL interface -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el index 9b7ce5c89b4..ce7b7a9bab1 100644 --- a/lisp/url/url-ldap.el +++ b/lisp/url/url-ldap.el @@ -1,5 +1,6 @@ ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code -;; Copyright (c) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes @@ -189,7 +190,7 @@ URL can be a URL string, or a URL vector of the type returned by (setq binddn (cdr-safe (or (assoc "bindname" extensions) (assoc "!bindname" extensions)))) - + ;; Now, let's actually do something with it. (setq results (cdr (ldap-search-internal (list 'host (concat host ":" (number-to-string port)) diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index fc3eb97e085..3316b7c4b9d 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el @@ -1,6 +1,7 @@ ;;; url-mail.el --- Mail Uniform Resource Locator retrieval code -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes @@ -72,7 +73,7 @@ (setq headers-start (match-end 0) to (url-unhex-string (substring url 0 (match-beginning 0))) args (url-parse-query-string - (substring url headers-start nil) t)) + (substring url headers-start nil) t t)) (setq to (url-unhex-string url))) (setq source-url (url-view-url t)) (if (and url-request-data (not (assoc "subject" args))) @@ -83,16 +84,23 @@ (if (and source-url (not (assoc "x-url-from" args))) (setq args (cons (list "x-url-from" source-url) args))) - (if (assoc "to" args) - (push (cdr (assoc "to" args)) to) - (setq args (cons (list "to" to) args))) + (let ((tolist (assoc "to" args))) + (if tolist + (if (not (string= to "")) + (setcdr tolist + (list (concat to ", " (cadr tolist))))) + (setq args (cons (list "to" to) args)))) + (setq subject (cdr-safe (assoc "subject" args))) (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) (while args (if (string= (caar args) "body") (progn (goto-char (point-max)) - (insert (mapconcat 'identity (cdar args) "\n"))) + (insert (mapconcat + #'(lambda (string) + (replace-regexp-in-string "\r\n" "\n" string)) + (cdar args) "\n"))) (url-mail-goto-field (caar args)) (setq func (intern-soft (concat "mail-" (caar args)))) (insert (mapconcat 'identity (cdar args) ", "))) diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el index a82d78db3ac..e39ffa1eb5b 100644 --- a/lisp/url/url-methods.el +++ b/lisp/url/url-methods.el @@ -1,6 +1,7 @@ ;;; url-methods.el --- Load URL schemes as needed -;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el index e937c99a518..5041a407420 100644 --- a/lisp/url/url-misc.el +++ b/lisp/url/url-misc.el @@ -1,6 +1,7 @@ ;;; url-misc.el --- Misc Uniform Resource Locator retrieval code -;; Copyright (c) 1996,1997,1998,1999,2002 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el index 969edf6f684..93a9dd5e504 100644 --- a/lisp/url/url-news.el +++ b/lisp/url/url-news.el @@ -1,6 +1,7 @@ ;;; url-news.el --- News Uniform Resource Locator retrieval code -;; Copyright (c) 1996 - 1999, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes @@ -29,7 +30,10 @@ (require 'nntp) (autoload 'url-warn "url") (autoload 'gnus-group-read-ephemeral-group "gnus-group") -(eval-when-compile (require 'cl)) +(eval-when-compile + (require 'cl) + (defvar nntp-open-tls-stream) + (defvar nntp-open-ssl-stream)) (defgroup url-news nil "News related options." diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el index 0273415b8ab..858cd029a85 100644 --- a/lisp/url/url-nfs.el +++ b/lisp/url/url-nfs.el @@ -1,6 +1,7 @@ ;;; url-nfs.el --- NFS URL interface -;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el index d76c7cf459d..3edbf2c84d4 100644 --- a/lisp/url/url-ns.el +++ b/lisp/url/url-ns.el @@ -1,6 +1,6 @@ ;;; url-ns.el --- Various netscape-ish functions for proxy definitions -;; Copyright (c) 1997 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index db85c43a38f..bbe7f112cea 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el @@ -1,6 +1,7 @@ ;;; url-parse.el --- Uniform Resource Locator parser -;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes @@ -84,7 +85,7 @@ (defmacro url-set-full (urlobj val) `(aset ,urlobj 8 ,val)) - + ;;;###autoload (defun url-recreate-url (urlobj) "Recreate a URL string from the parsed URLOBJ." diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el index e28a388dfa3..7700bb13941 100644 --- a/lisp/url/url-privacy.el +++ b/lisp/url/url-privacy.el @@ -1,6 +1,7 @@ ;;; url-privacy.el --- Global history tracking for URL package -;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el index 1eb8f90bda3..c5d7753daf5 100644 --- a/lisp/url/url-proxy.el +++ b/lisp/url/url-proxy.el @@ -1,6 +1,6 @@ ;;; url-proxy.el --- Proxy server support -;; Copyright (c) 1999 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index e64d328fd3d..538eb3eca45 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -1,6 +1,7 @@ ;;; url-util.el --- Miscellaneous helper routines for URL library -;; Copyright (c) 1996,1997,1998,1999,2001,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes @@ -269,7 +270,7 @@ Will not do anything if `url-show-status' is nil." (t (file-name-directory file)))) ;;;###autoload -(defun url-parse-query-string (query &optional downcase) +(defun url-parse-query-string (query &optional downcase allow-newlines) (let (retval pairs cur key val) (setq pairs (split-string query "&")) (while pairs @@ -277,8 +278,10 @@ Will not do anything if `url-show-status' is nil." pairs (cdr pairs)) (if (not (string-match "=" cur)) nil ; Grace - (setq key (url-unhex-string (substring cur 0 (match-beginning 0))) - val (url-unhex-string (substring cur (match-end 0) nil))) + (setq key (url-unhex-string (substring cur 0 (match-beginning 0)) + allow-newlines)) + (setq val (url-unhex-string (substring cur (match-end 0) nil) + allow-newlines)) (if downcase (setq key (downcase key))) (setq cur (assoc key retval)) diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 76669899172..53b8a5eef31 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -1,6 +1,7 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool -;; Copyright (c) 1996,1997,1998,1999,2001,2004 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, +;; 2005 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url.el b/lisp/url/url.el index 695aceb871e..ef101fe6f2a 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -1,7 +1,7 @@ ;;; url.el --- Uniform Resource Locator retrieval tool -;; Copyright (c) 1996, 1997, 1998, 1999, 2001, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes, hypermedia @@ -56,7 +56,7 @@ (require 'url-parse) (require 'url-util) -;; Fixme: customize? convert-standard-filename? +;; Fixme: customize? convert-standard-filename? ;;;###autoload (defvar url-configuration-directory "~/.url") @@ -71,7 +71,7 @@ Emacs." (mailcap-parse-mailcaps) (mailcap-parse-mimetypes) - + ;; Register all the authentication schemes we can handle (url-register-auth-scheme "basic" nil 4) (url-register-auth-scheme "digest" nil 7) @@ -79,11 +79,11 @@ Emacs." (setq url-cookie-file (or url-cookie-file (expand-file-name "cookies" url-configuration-directory))) - + (setq url-history-file (or url-history-file (expand-file-name "history" url-configuration-directory))) - + ;; Parse the global history file if it exists, so that it can be used ;; for URL completion, etc. (url-history-parse-history) @@ -123,9 +123,14 @@ Emacs." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun url-retrieve (url callback &optional cbargs) "Retrieve URL asynchronously and call CALLBACK with CBARGS when finished. -The callback is called when the object has been completely retrieved, with +URL is either a string or a parsed URL. + +CALLBACK is called when the object has been completely retrieved, with the current buffer containing the object, and any MIME headers associated -with it. URL is either a string or a parsed URL. +with it. Normally it gets the arguments in the list CBARGS. +However, if what we find is a redirect, CALLBACK is given +two additional args, `:redirect' and the redirected URL, +followed by CBARGS. Return the buffer URL will load into, or nil if the process has already completed." @@ -224,7 +229,7 @@ no further processing). URL is either a string or a parsed URL." (message "Viewing externally") (kill-buffer (current-buffer))) (display-buffer (current-buffer)) - (add-hook 'kill-buffer-hook + (add-hook 'kill-buffer-hook `(lambda () (mm-destroy-parts ',handle)) nil t))))) diff --git a/lisp/url/vc-dav.el b/lisp/url/vc-dav.el index bfc532958b6..926b90d5f31 100644 --- a/lisp/url/vc-dav.el +++ b/lisp/url/vc-dav.el @@ -1,6 +1,6 @@ ;;; vc-dav.el --- vc.el support for WebDAV -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> @@ -57,7 +57,7 @@ For a list of possible values, see `vc-state'." ;; _WE_ have a lock 'edited (cdr (car locks))))))) - + (defun vc-dav-checkout-model (url) "Indicate whether URL needs to be \"checked out\" before it can be edited. See `vc-checkout-model' for a list of possible values." diff --git a/lisp/userlock.el b/lisp/userlock.el index 5e2f337db07..37ff1f13ba2 100644 --- a/lisp/userlock.el +++ b/lisp/userlock.el @@ -1,6 +1,7 @@ ;;; userlock.el --- handle file access contention between multiple users -;; Copyright (C) 1985, 1986 Free Software Foundation, inc. +;; Copyright (C) 1985, 1986, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el index d59e7143179..79056c4c947 100644 --- a/lisp/vc-arch.el +++ b/lisp/vc-arch.el @@ -1,7 +1,6 @@ ;;; vc-arch.el --- VC backend for the Arch version-control system -;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/vc-cvs.el b/lisp/vc-cvs.el index 16759351407..cf661f62768 100644 --- a/lisp/vc-cvs.el +++ b/lisp/vc-cvs.el @@ -1,7 +1,7 @@ ;;; vc-cvs.el --- non-resident support for CVS version-control -;; Copyright (C) 1995,98,99,2000,2001,02,2003, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 5e8bf4f523c..5872e2f1990 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el @@ -1,7 +1,7 @@ ;;; vc-hooks.el --- resident support for version-control -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc-mcvs.el b/lisp/vc-mcvs.el index e324cb7eb1c..271cd01cbfb 100644 --- a/lisp/vc-mcvs.el +++ b/lisp/vc-mcvs.el @@ -1,7 +1,6 @@ ;;; vc-mcvs.el --- VC backend for the Meta-CVS version-control system -;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el index e591baf3a26..e301804cf17 100644 --- a/lisp/vc-rcs.el +++ b/lisp/vc-rcs.el @@ -1,7 +1,7 @@ ;;; vc-rcs.el --- support for RCS version-control -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc-sccs.el b/lisp/vc-sccs.el index c4a48274e36..e4d14d8ae70 100644 --- a/lisp/vc-sccs.el +++ b/lisp/vc-sccs.el @@ -1,7 +1,7 @@ ;;; vc-sccs.el --- support for SCCS version-control -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -;; 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el index 9e0b3414a04..de34fa847e2 100644 --- a/lisp/vc-svn.el +++ b/lisp/vc-svn.el @@ -1,7 +1,6 @@ ;;; vc-svn.el --- non-resident support for Subversion version-control -;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/vc.el b/lisp/vc.el index d4ece57a3d6..a0b6ffa0ad8 100644 --- a/lisp/vc.el +++ b/lisp/vc.el @@ -1,7 +1,7 @@ ;;; vc.el --- drive a version-control system from within Emacs -;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, -;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: FSF (see below for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vcursor.el b/lisp/vcursor.el index fd7d1416661..11ac28ae14a 100644 --- a/lisp/vcursor.el +++ b/lisp/vcursor.el @@ -1,6 +1,7 @@ ;;; vcursor.el --- manipulate an alternative ("virtual") cursor -;; Copyright (C) 1994, 1996, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1996, 1998, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Peter Stephenson <pws@ibmth.df.unipi.it> ;; Maintainer: FSF @@ -356,7 +357,7 @@ disable the vcursor." (defun vcursor-bind-keys (var value) "Alter the value of the variable VAR to VALUE, binding keys as required. -VAR is usually vcursor-key-bindings. Normally this function is called +VAR is usually `vcursor-key-bindings'. Normally this function is called on loading vcursor and from the customize package." (set var value) (cond @@ -464,8 +465,8 @@ on loading vcursor and from the customize package." (defcustom vcursor-key-bindings nil "*How to bind keys when vcursor is loaded. -If t, guess; if xterm, use bindings suitable for an X terminal; if -oemacs, use bindings which work on a PC with Oemacs. If nil, don't +If t, guess; if `xterm', use bindings suitable for an X terminal; if +`oemacs', use bindings which work on a PC with Oemacs. If nil, don't define any key bindings. Default is nil." @@ -514,7 +515,7 @@ scrolling set this. It is used by the `vcursor-auto-disable' code.") (defvar vcursor-use-vcursor-map nil "Non-nil if the vcursor map is mapped directly onto the main keymap. -See vcursor-toggle-vcursor-map.") +See `vcursor-toggle-vcursor-map'.") (make-variable-buffer-local 'vcursor-use-vcursor-map) (defvar vcursor-map nil "Keymap for vcursor command.") @@ -575,7 +576,7 @@ With optional NOT-THIS non-nil never return the current window. With NEW-WIN non-nil, display the virtual cursor buffer in another window if the virtual cursor is not currently visible \(note, however, -that this function never changes window-point\). +that this function never changes `window-point'\). With THIS-FRAME non-nil, don't search other frames for a new window \(though if the vcursor is already off-frame then its current window is @@ -674,15 +675,15 @@ another window. With LEAVE-W, use the current `vcursor-window'." (insert text)) ) -(defun vcursor-relative-move (fn &rest args) - "Use FUNCTION with arbitrary ARG1 ... to move the virtual cursor. +(defun vcursor-relative-move (func &rest args) + "Call FUNC with arbitrary ARGS ... to move the virtual cursor. This is called by most of the virtual-cursor motion commands." (let (text opoint) (save-excursion (vcursor-locate) (setq opoint (point)) - (apply fn args) + (apply func args) (and (eq opoint (point-max)) (eq opoint (point)) (signal 'end-of-buffer nil)) (vcursor-move (point)) @@ -730,7 +731,7 @@ The vcursor will always appear in an unselected window." ) (defun vcursor-scroll-down (&optional n) - "Scroll down the vcursor window ARG lines or near-full screen if none. + "Scroll down the vcursor window ARG lines or near full screen if none. The vcursor will always appear in an unselected window." (interactive "P") @@ -791,10 +792,10 @@ is visible in the current one." (setq vcursor-last-command t) ) -(defun vcursor-get-char-count (fn &rest args) - "Apply FN to ARG1 ... and return the number of characters moved. -Point is temporarily set to the virtual cursor position before FN is -called. +(defun vcursor-get-char-count (func &rest args) + "Apply FUNC to ARGS ... and return the number of characters moved. +Point is temporarily set to the virtual cursor position before FUNC +is called. This is called by most of the virtual-cursor copying commands to find out how much to copy." @@ -803,7 +804,7 @@ out how much to copy." (save-excursion (set-buffer (overlay-buffer vcursor-overlay)) (let ((start (goto-char (overlay-start vcursor-overlay)))) - (- (progn (apply fn args) (point)) start))) + (- (progn (apply func args) (point)) start))) ) ;; Make sure the virtual cursor is active. Unless arg is non-nil, @@ -822,13 +823,12 @@ Next time you use it, it will start from point. With a positive prefix ARG, the first window in cyclic order displaying the virtual cursor (or which was recently displaying the -virtual cursor) will be deleted unless it's the selected -window. +virtual cursor) will be deleted unless it's the selected window. With a negative prefix argument, enable the virtual cursor: make it active at the same point as the real cursor. -Copying mode is always turned off: the next use of the vcursor will +Copying mode is always turned off: the next use of the vcursor will not copy text until you turn it on again." (interactive "P") @@ -854,7 +854,7 @@ This is the next window cyclically after one currently showing the virtual cursor, or else after the current selected window. If there is no other window, the current window is split. -Arguments N and optional ALL-FRAMES are the same as with other-window. +Arguments N and optional ALL-FRAMES are the same as with `other-window'. ALL-FRAMES is also used to decide whether to split the window." (interactive "p") @@ -1042,7 +1042,7 @@ ARG is as for `end-of-line'." (defun vcursor-beginning-of-buffer (&optional arg) "Move the virtual cursor to the beginning of its buffer. -ARG is as for beginning-of-buffer." +ARG is as for `beginning-of-buffer'." (interactive "P") (vcursor-relative-move (lambda (arg) @@ -1053,7 +1053,7 @@ ARG is as for beginning-of-buffer." (defun vcursor-end-of-buffer (&optional arg) "Move the virtual cursor to the end of its buffer. -ARG is as for end-of-buffer. +ARG is as for `end-of-buffer'. Actually, the vcursor is moved to the second from last character or it would be invisible." diff --git a/lisp/version.el b/lisp/version.el index d52e1e944c8..b34a4c7cdef 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -1,7 +1,7 @@ ;;; version.el --- record version number of Emacs -*- no-byte-compile: t -*- -;;; Copyright (C) 1985, 1992, 1994, 1995, 1999, 2000, 2001 -;;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1992, 1994, 1995, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -47,7 +47,7 @@ Time at which Emacs was dumped out.") (defconst emacs-build-system (system-name)) -(defun emacs-version (&optional here) "\ +(defun emacs-version (&optional here) "\ Return string describing the version of Emacs that is running. If optional argument HERE is non-nil, insert string at point. Don't use this function in programs to choose actions according @@ -84,7 +84,7 @@ to the system configuration; look at `system-configuration' instead." ;; We put version info into the executable in the form that `ident' uses. (or (memq system-type '(vax-vms windows-nt)) - (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ? (emacs-version)) + (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version)) " $\n"))) ;;Local variables: diff --git a/lisp/view.el b/lisp/view.el index c327dcdaa36..80c6207f275 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -1,7 +1,7 @@ ;;; view.el --- peruse file or buffer without editing -;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: Inge Frick <inge@nada.kth.se> diff --git a/lisp/vms-patch.el b/lisp/vms-patch.el index 886b8572e77..b591c0d56f2 100644 --- a/lisp/vms-patch.el +++ b/lisp/vms-patch.el @@ -1,6 +1,7 @@ ;;; vms-patch.el --- override parts of files.el for VMS -;; Copyright (C) 1986, 1992 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: vms diff --git a/lisp/vmsproc.el b/lisp/vmsproc.el index 9871daa7a5e..aa96560ee48 100644 --- a/lisp/vmsproc.el +++ b/lisp/vmsproc.el @@ -1,6 +1,6 @@ ;;; vmsproc.el --- run asynchronous VMS subprocesses under Emacs -;; Copyright (C) 1986 Free Software Foundation, Inc. +;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Mukesh Prasad ;; Maintainer: FSF @@ -34,24 +34,21 @@ "String to insert to distinguish commands entered by user.") (defvar subprocess-running nil) -(defvar command-mode-map nil) +(defvar subprocess-buf nil) -(if command-mode-map - nil - (setq command-mode-map (make-sparse-keymap)) - (define-key command-mode-map "\C-m" 'command-send-input) - (define-key command-mode-map "\C-u" 'command-kill-line)) +(defvar command-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-m" 'command-send-input) + (define-key map "\C-u" 'command-kill-line) + map)) (defun subprocess-input (name str) "Handles input from a subprocess. Called by Emacs." (if display-subprocess-window (display-buffer subprocess-buf)) - (let ((old-buffer (current-buffer))) - (set-buffer subprocess-buf) + (with-current-buffer subprocess-buf (goto-char (point-max)) - (insert str) - (insert ?\n) - (set-buffer old-buffer))) + (insert str ?\n))) (defun subprocess-exit (name) "Called by Emacs upon subprocess exit." @@ -65,8 +62,7 @@ the end." (if subprocess-running (return t)) (setq subprocess-buf (get-buffer-create "*COMMAND*")) - (save-excursion - (set-buffer subprocess-buf) + (with-current-buffer subprocess-buf (use-local-map command-mode-map)) (setq subprocess-running (spawn-subprocess 1 'subprocess-input 'subprocess-exit)) @@ -81,25 +77,24 @@ the end." (setq cmd (substring command 0 (string-match " " command))) (setq args (substring command (string-match " " command))) (call-process cmd nil buffer nil "*dcl*" args))) -;BUGS: only the output up to the end of the first image activation is trapped. -; (if (not subprocess-running) -; (start-subprocess)) -; (save-excursion -; (set-buffer buffer) -; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-" -; (getenv "USER") ".LISTING"))) -; (while (file-exists-p output-filename) -; (delete-file output-filename)) -; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW")) -; (send-command-to-subprocess 1 command) -; (send-command-to-subprocess 1 (concat -; "RENAME " output-filename -; "-NEW " output-filename)) -; (while (not (file-exists-p output-filename)) -; (sleep-for 1)) -; (define-logical-name "SYS$OUTPUT" nil) -; (insert-file output-filename) -; (delete-file output-filename)))) + ;; BUGS: only the output up to the end of the first image activation is trapped. + ;; (if (not subprocess-running) + ;; (start-subprocess)) + ;; (with-current-buffer buffer + ;; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-" + ;; (getenv "USER") ".LISTING"))) + ;; (while (file-exists-p output-filename) + ;; (delete-file output-filename)) + ;; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW")) + ;; (send-command-to-subprocess 1 command) + ;; (send-command-to-subprocess 1 (concat + ;; "RENAME " output-filename + ;; "-NEW " output-filename)) + ;; (while (not (file-exists-p output-filename)) + ;; (sleep-for 1)) + ;; (define-logical-name "SYS$OUTPUT" nil) + ;; (insert-file output-filename) + ;; (delete-file output-filename)))) (defun subprocess-command () "Starts asynchronous subprocess if not running and switches to its window." @@ -115,8 +110,7 @@ the spawned subprocess. Otherwise brings back current line to the last line for resubmission." (interactive) (beginning-of-line) - (let ((current-line (buffer-substring (point) - (progn (end-of-line) (point))))) + (let ((current-line (buffer-substring (point) (line-end-position)))) (if (eobp) (progn (if (not subprocess-running) @@ -129,15 +123,16 @@ line to the last line for resubmission." (progn (beginning-of-line) (insert command-prefix-string))) (next-line 1)))) ;; else -- if not at last line in buffer - (end-of-buffer) + (goto-char (point-max)) (backward-char) (next-line 1) - (if (string-equal command-prefix-string - (substring current-line 0 (length command-prefix-string))) - (insert (substring current-line (length command-prefix-string))) - (insert current-line))))) + (insert + (if (compare-strings command-prefix-string nil nil + current-line 0 (length command-prefix-string)) + (substring current-line (length command-prefix-string)) + current-line))))) -(defun command-kill-line() +(defun command-kill-line () "Kills the current line. Used in command mode." (interactive) (beginning-of-line) @@ -145,5 +140,5 @@ line to the last line for resubmission." (define-key esc-map "$" 'subprocess-command) -;;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66 +;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66 ;;; vmsproc.el ends here diff --git a/lisp/vt-control.el b/lisp/vt-control.el index ed65c93290f..61d8ec32a7b 100644 --- a/lisp/vt-control.el +++ b/lisp/vt-control.el @@ -1,6 +1,7 @@ ;;; vt-control.el --- Common VTxxx control functions -;; Copyright (C) 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el index 805746dd495..0238962082e 100644 --- a/lisp/vt100-led.el +++ b/lisp/vt100-led.el @@ -1,6 +1,6 @@ ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones -;; Copyright (C) 1988 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 28f268bf623..5b801e29831 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -1,6 +1,7 @@ ;;; w32-fns.el --- Lisp routines for Windows NT -;; Copyright (C) 1994, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Geoff Voelker <voelker@cs.washington.edu> ;; Keywords: internal @@ -34,6 +35,8 @@ ;;; Code: +(defvar explicit-shell-file-name) + ;; Map delete and backspace (define-key function-key-map [backspace] "\177") (define-key function-key-map [delete] "\C-d") @@ -60,7 +63,7 @@ That includes all Windows systems except for 9X/Me." (defun w32-shell-name () "Return the name of the shell being used." - (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name) + (or (bound-and-true-p explicit-shell-file-name) (getenv "ESHELL") (getenv "SHELL") (and (w32-using-nt) "cmd.exe") @@ -272,7 +275,7 @@ shell requires it (see `w32-shell-dos-semantics')." (defun set-w32-system-coding-system (coding-system) "Set the coding system used by the Windows system to CODING-SYSTEM. This is used for things like passing font names with non-ASCII -characters in them to the system. For a list of possible values of +characters in them to the system. For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]. This function is provided for backward compatibility, since @@ -355,8 +358,8 @@ This function is provided for backward compatibility, since Creates entries in `w32-charset-info-alist'. XLFD-CHARSET is a string which will appear in the XLFD font name to identify the character set. WINDOWS-CHARSET is a symbol identifying -the Windows character set this maps to. For the list of possible -values, see the documentation for `w32-charset-info-alist'. CODEPAGE +the Windows character set this maps to. For the list of possible +values, see the documentation for `w32-charset-info-alist'. CODEPAGE can be a numeric codepage that Windows uses to display the character set, t for Unicode output with no codepage translation or nil for 8 bit output with no translation." @@ -421,7 +424,7 @@ bit output with no translation." (defun x-select-text (text &optional push) "Make TEXT the last selected text. If `x-select-enable-clipboard' is non-nil, copy the text to the system -clipboard as well. Optional PUSH is ignored on Windows." +clipboard as well. Optional PUSH is ignored on Windows." (if x-select-enable-clipboard (w32-set-clipboard-data text)) (setq x-last-selected-text text)) diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el index 8e998b9968d..1b4ea8ee60b 100644 --- a/lisp/w32-vars.el +++ b/lisp/w32-vars.el @@ -1,6 +1,6 @@ ;;; w32-vars.el --- MS-Windows specific user options -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jason Rumney <jasonr@gnu.org> ;; Keywords: internal diff --git a/lisp/wdired.el b/lisp/wdired.el index c22a8dff633..ef20ea6f9a2 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el @@ -1,6 +1,6 @@ ;;; wdired.el --- Rename files editing their names in dired buffers -;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Filename: wdired.el ;; Author: Juan León Lahoz García <juanleon1@gmail.com> diff --git a/lisp/whitespace.el b/lisp/whitespace.el index f1255df9482..d3ae080e485 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -1,6 +1,7 @@ ;;; whitespace.el --- warn about and clean bogus whitespaces in the file -;; Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> ;; Keywords: convenience @@ -109,32 +110,32 @@ visited by the buffers.") (put 'whitespace-mode-line 'permanent-local nil) (defvar whitespace-check-buffer-leading nil - "Test leading whitespace for file in current buffer if t") + "Test leading whitespace for file in current buffer if t.") (make-variable-buffer-local 'whitespace-check-buffer-leading) (put 'whitespace-check-buffer-leading 'permanent-local nil) (defvar whitespace-check-buffer-trailing nil - "Test trailing whitespace for file in current buffer if t") + "Test trailing whitespace for file in current buffer if t.") (make-variable-buffer-local 'whitespace-check-buffer-trailing) (put 'whitespace-check-buffer-trailing 'permanent-local nil) (defvar whitespace-check-buffer-indent nil - "Test indentation whitespace for file in current buffer if t") + "Test indentation whitespace for file in current buffer if t.") (make-variable-buffer-local 'whitespace-check-buffer-indent) (put 'whitespace-check-buffer-indent 'permanent-local nil) (defvar whitespace-check-buffer-spacetab nil - "Test Space-followed-by-TABS whitespace for file in current buffer if t") + "Test Space-followed-by-TABS whitespace for file in current buffer if t.") (make-variable-buffer-local 'whitespace-check-buffer-spacetab) (put 'whitespace-check-buffer-spacetab 'permanent-local nil) (defvar whitespace-check-buffer-ateol nil - "Test end-of-line whitespace for file in current buffer if t") + "Test end-of-line whitespace for file in current buffer if t.") (make-variable-buffer-local 'whitespace-check-buffer-ateol) (put 'whitespace-check-buffer-ateol 'permanent-local nil) (defvar whitespace-highlighted-space nil - "The variable to store the extent to highlight") + "The variable to store the extent to highlight.") (make-variable-buffer-local 'whitespace-highlighted-space) (put 'whitespace-highlighted-space 'permanent-local nil) @@ -142,61 +143,53 @@ visited by the buffers.") (eval-when-compile (if (not (fboundp 'defgroup)) (defmacro defgroup (sym memb doc &rest args) - "Null macro for defgroup in all versions of Emacs that don't define -defgroup" + "Null macro for `defgroup' in all versions of Emacs that don't define it." t)) (if (not (fboundp 'defcustom)) (defmacro defcustom (sym val doc &rest args) - "Macro to alias defcustom to defvar in all versions of Emacs that -don't define defcustom" + "Macro to alias `defcustom' to `defvar' in all versions of Emacs that +don't define it." `(defvar ,sym ,val ,doc)))) -(if (fboundp 'make-overlay) - (progn - (defalias 'whitespace-make-overlay 'make-overlay) - (defalias 'whitespace-overlay-put 'overlay-put) - (defalias 'whitespace-delete-overlay 'delete-overlay) - (defalias 'whitespace-overlay-start 'overlay-start) - (defalias 'whitespace-overlay-end 'overlay-end) - (defalias 'whitespace-mode-line-update 'force-mode-line-update)) - (defalias 'whitespace-make-overlay 'make-extent) - (defalias 'whitespace-overlay-put 'set-extent-property) - (defalias 'whitespace-delete-overlay 'delete-extent) - (defalias 'whitespace-overlay-start 'extent-start) - (defalias 'whitespace-overlay-end 'extent-end) - (defalias 'whitespace-mode-line-update 'redraw-modeline)) - -(if (featurep 'xemacs) -(defgroup whitespace nil - "Check for and fix five different types of whitespaces in source code." - ;; Since XEmacs doesn't have a 'convenience group, use the next best group - ;; which is 'editing? - :link '(emacs-commentary-link "whitespace.el") - :group 'editing) +(defalias 'whitespace-make-overlay + (if (featurep 'xemacs) 'make-extent 'make-overlay)) +(defalias 'whitespace-overlay-put + (if (featurep 'xemacs) 'set-extent-property 'overlay-put)) +(defalias 'whitespace-delete-overlay + (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) +(defalias 'whitespace-overlay-start + (if (featurep 'xemacs) 'extent-start 'overlay-start)) +(defalias 'whitespace-overlay-end + (if (featurep 'xemacs) 'extent-end 'overlay-end)) +(defalias 'whitespace-mode-line-update + (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update)) + (defgroup whitespace nil "Check for and fix five different types of whitespaces in source code." :version "21.1" :link '(emacs-commentary-link "whitespace.el") - :group 'convenience)) + ;; Since XEmacs doesn't have a 'convenience group, use the next best group + ;; which is 'editing? + :group (if (featurep 'xemacs) 'editing 'convenience)) (defcustom whitespace-check-leading-whitespace t - "Flag to check leading whitespace. This is the global for the system. + "Flag to check leading whitespace. This is the global for the system. It can be overriden by setting a buffer local variable -`whitespace-check-buffer-leading'" +`whitespace-check-buffer-leading'." :type 'boolean :group 'whitespace) (defcustom whitespace-check-trailing-whitespace t - "Flag to check trailing whitespace. This is the global for the system. + "Flag to check trailing whitespace. This is the global for the system. It can be overriden by setting a buffer local variable -`whitespace-check-buffer-trailing'" +`whitespace-check-buffer-trailing'." :type 'boolean :group 'whitespace) (defcustom whitespace-check-spacetab-whitespace t - "Flag to check space followed by a TAB. This is the global for the system. + "Flag to check space followed by a TAB. This is the global for the system. It can be overriden by setting a buffer local variable -`whitespace-check-buffer-spacetab'" +`whitespace-check-buffer-spacetab'." :type 'boolean :group 'whitespace) @@ -206,9 +199,9 @@ It can be overriden by setting a buffer local variable :group 'whitespace) (defcustom whitespace-check-indent-whitespace indent-tabs-mode - "Flag to check indentation whitespace. This is the global for the system. + "Flag to check indentation whitespace. This is the global for the system. It can be overriden by setting a buffer local variable -`whitespace-check-buffer-indent'" +`whitespace-check-buffer-indent'." :type 'boolean :group 'whitespace) @@ -218,9 +211,9 @@ It can be overriden by setting a buffer local variable :group 'whitespace) (defcustom whitespace-check-ateol-whitespace t - "Flag to check end-of-line whitespace. This is the global for the system. + "Flag to check end-of-line whitespace. This is the global for the system. It can be overriden by setting a buffer local variable -`whitespace-check-buffer-ateol'" +`whitespace-check-buffer-ateol'." :type 'boolean :group 'whitespace) @@ -242,9 +235,9 @@ determines a file to be clean." :group 'whitespace) (defcustom whitespace-abort-on-error nil - "While writing a file, abort if the file is unclean. If -`whitespace-auto-cleanup' is set, that takes precedence over this -variable." + "While writing a file, abort if the file is unclean. +If `whitespace-auto-cleanup' is set, that takes precedence over +this variable." :type 'boolean :group 'whitespace) @@ -277,7 +270,7 @@ Errors*' buffer before opening (or closing) another file." tcl-mode tex-mode texinfo-mode vrml-mode xml-mode) - "Major Modes in which we turn on whitespace checking. + "Major modes in which we turn on whitespace checking. These are mostly programming and documentation modes. But you may add other modes that you want whitespaces checked in by adding something like the @@ -608,17 +601,9 @@ whitespace problems." (defun whitespace-buffer-leading-cleanup () "Remove any empty lines at the top of the file." (save-excursion - (let ((pmin nil) - (pmax nil)) - (goto-char (point-min)) - (beginning-of-line) - (setq pmin (point)) - (end-of-line) - (setq pmax (point)) - (if (equal pmin pmax) - (progn - (kill-line) - (whitespace-buffer-leading-cleanup)))))) + (goto-char (point-min)) + (skip-chars-forward "\n") + (delete-region (point-min) (point)))) (defun whitespace-buffer-trailing () "Check to see if are is more than one empty line at the bottom." @@ -647,26 +632,11 @@ whitespace problems." (defun whitespace-buffer-trailing-cleanup () "Delete all the empty lines at the bottom." (save-excursion - (let ((pmin nil) - (pmax nil)) - (goto-char (point-max)) - (beginning-of-line) - (setq pmin (point)) - (end-of-line) - (setq pmax (point)) - (if (equal pmin pmax) - (progn - (goto-char (1- pmin)) - (beginning-of-line) - (setq pmin (point)) - (end-of-line) - (setq pmax (point)) - (if (equal pmin pmax) - (progn - (goto-char (1- (point-max))) - (beginning-of-line) - (kill-line) - (whitespace-buffer-trailing-cleanup)))))))) + (goto-char (point-max)) + (skip-chars-backward "\n") + (if (not (bolp)) + (forward-char 1)) + (delete-region (point) (point-max)))) (defun whitespace-buffer-search (regexp) "Search for any given whitespace REGEXP." diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el index 17fe9c24214..c8a34140f69 100644 --- a/lisp/wid-browse.el +++ b/lisp/wid-browse.el @@ -1,6 +1,6 @@ ;;; wid-browse.el --- functions for browsing widgets ;; -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: extensions diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 062a7886789..9c391ab1176 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1,6 +1,7 @@ ;;; wid-edit.el --- Functions for creating and using widgets -*-byte-compile-dynamic: t;-*- ;; -;; Copyright (C) 1996,97,1999,2000,01,02,2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -275,7 +276,7 @@ minibuffer." (while (not (or (and (>= char ?0) (< char next-digit)) (eq value 'keyboard-quit))) ;; Unread a SPC to lead to our new menu. - (setq unread-command-events (cons ?\ unread-command-events)) + (setq unread-command-events (cons ?\s unread-command-events)) (setq keys (read-key-sequence title)) (setq value (lookup-key overriding-terminal-local-map keys t) @@ -377,7 +378,7 @@ new value.") (end (widget-field-end field))) (when size (while (and (> end begin) - (eq (char-after (1- end)) ?\ )) + (eq (char-after (1- end)) ?\s)) (setq end (1- end)))) (while (< begin end) (let ((old (char-after begin))) @@ -441,14 +442,8 @@ new value.") (prog1 (progn ,@form) (goto-char (point-max)))))) -(defface widget-inactive '((((class grayscale color) - (background dark)) - (:foreground "light gray")) - (((class grayscale color) - (background light)) - (:foreground "dim gray")) - (t - (:slant italic))) +(defface widget-inactive + '((t :inherit shadow)) "Face used for inactive widgets." :group 'widget-faces) ;; backward-compatibility alias @@ -802,8 +797,8 @@ The optional ARGS are additional keyword arguments." &optional button-from button-to &rest args) "Return a widget of type TYPE with endpoint FROM TO. -Optional ARGS are extra keyword arguments for TYPE. -and TO will be used as the widgets end points. If optional arguments +No text will be inserted to the buffer, instead the text between FROM +and TO will be used as the widgets end points. If optional arguments BUTTON-FROM and BUTTON-TO are given, these will be used as the widgets button end points. Optional ARGS are extra keyword arguments for TYPE." @@ -1111,7 +1106,7 @@ the field." :group 'widgets) (defun widget-narrow-to-field () - "Narrow to field" + "Narrow to field." (interactive) (let ((field (widget-field-find (point)))) (if field @@ -1219,7 +1214,7 @@ When not inside a field, move to the previous button or field." (defun widget-field-find (pos) "Return the field at POS. -Unlike (get-char-property POS 'field) this, works with empty fields too." +Unlike (get-char-property POS 'field), this works with empty fields too." (let ((fields widget-field-list) field found) (while fields @@ -1269,7 +1264,7 @@ Unlike (get-char-property POS 'field) this, works with empty fields too." ;; Field too small. (save-excursion (goto-char end) - (insert-char ?\ (- (+ begin size) end)))) + (insert-char ?\s (- (+ begin size) end)))) ((> (- end begin) size) ;; Field too large and (if (or (< (point) (+ begin size)) @@ -1280,7 +1275,7 @@ Unlike (get-char-property POS 'field) this, works with empty fields too." (setq begin (point))) (save-excursion (goto-char end) - (while (and (eq (preceding-char) ?\ ) + (while (and (eq (preceding-char) ?\s) (> (point) begin)) (delete-backward-char 1))))))) (widget-specify-secret field)) @@ -1440,7 +1435,7 @@ If that does not exists, call the value of `widget-complete-field'." ((eq escape ?n) (when (widget-get widget :indent) (insert ?\n) - (insert-char ? (widget-get widget :indent)))) + (insert-char ?\s (widget-get widget :indent)))) ((eq escape ?t) (let ((image (widget-get widget :tag-glyph)) (tag (widget-get widget :tag))) @@ -1504,7 +1499,7 @@ If that does not exists, call the value of `widget-complete-field'." (when doc-text (and (eq (preceding-char) ?\n) (widget-get widget :indent) - (insert-char ? (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) ;; The `*' in the beginning is redundant. (when (eq (aref doc-text 0) ?*) (setq doc-text (substring doc-text 1))) @@ -1757,7 +1752,7 @@ If END is omitted, it defaults to the length of LIST." :action 'widget-url-link-action) (defun widget-url-link-action (widget &optional event) - "Open the url specified by WIDGET." + "Open the URL specified by WIDGET." (browse-url (widget-value widget))) ;;; The `function-link' Widget. @@ -1797,7 +1792,7 @@ If END is omitted, it defaults to the length of LIST." :action 'widget-emacs-library-link-action) (defun widget-emacs-library-link-action (widget &optional event) - "Find the Emacs Library file specified by WIDGET." + "Find the Emacs library file specified by WIDGET." (find-file (locate-library (widget-value widget)))) ;;; The `emacs-commentary-link' Widget. @@ -1878,7 +1873,7 @@ the earlier input." (insert value) (and size (< (length value) size) - (insert-char ?\ (- size (length value)))) + (insert-char ?\s (- size (length value)))) (unless (memq widget widget-field-list) (setq widget-field-new (cons widget widget-field-new))) (move-marker (cdr overlay) (point)) @@ -1911,7 +1906,7 @@ the earlier input." (while (and size (not (zerop size)) (> to from) - (eq (char-after (1- to)) ?\ )) + (eq (char-after (1- to)) ?\s)) (setq to (1- to))) (let ((result (buffer-substring-no-properties from to))) (when secret @@ -1961,13 +1956,14 @@ the earlier input." (args (widget-get widget :args)) (explicit (widget-get widget :explicit-choice)) current) - (if (and explicit (equal value (widget-get widget :explicit-choice-value))) + (if explicit (progn ;; If the user specified the choice for this value, - ;; respect that choice as long as the value is the same. + ;; respect that choice. (widget-put widget :children (list (widget-create-child-value widget explicit value))) - (widget-put widget :choice explicit)) + (widget-put widget :choice explicit) + (widget-put widget :explicit-choice nil)) (while args (setq current (car args) args (cdr args)) @@ -2053,13 +2049,10 @@ when he invoked the menu." (setq this-explicit t) (widget-choose tag (reverse choices) event)))) (when current - ;; If this was an explicit user choice, - ;; record the choice, and the record the value it was made for. - ;; widget-choice-value-create will respect this choice, - ;; as long as the value is the same. + ;; If this was an explicit user choice, record the choice, + ;; so that widget-choice-value-create will respect it. (when this-explicit - (widget-put widget :explicit-choice current) - (widget-put widget :explicit-choice-value (widget-get widget :value))) + (widget-put widget :explicit-choice current)) (widget-value-set widget (widget-default-get current)) (widget-setup) (widget-apply widget :notify widget event))) @@ -2192,7 +2185,7 @@ when he invoked the menu." If the item is checked, CHOSEN is a cons whose cdr is the value." (and (eq (preceding-char) ?\n) (widget-get widget :indent) - (insert-char ? (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) (widget-specify-insert (let* ((children (widget-get widget :children)) (buttons (widget-get widget :buttons)) @@ -2372,7 +2365,7 @@ Return an alist of (TYPE MATCH)." ;; (setq type (widget-convert type)) (and (eq (preceding-char) ?\n) (widget-get widget :indent) - (insert-char ? (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) (widget-specify-insert (let* ((value (widget-get widget :value)) (children (widget-get widget :children)) @@ -2550,7 +2543,7 @@ Return an alist of (TYPE MATCH)." ;; (let ((widget-push-button-gui widget-editable-list-gui)) (cond ((eq escape ?i) (and (widget-get widget :indent) - (insert-char ?\ (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) (apply 'widget-create-child-and-convert widget 'insert-button (widget-get widget :append-button-args))) @@ -2662,7 +2655,7 @@ Return an alist of (TYPE MATCH)." (widget-specify-insert (save-excursion (and (widget-get widget :indent) - (insert-char ?\ (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) (insert (widget-get widget :entry-format))) ;; Parse % escapes in format. (while (re-search-forward "%\\(.\\)" nil t) @@ -2726,7 +2719,7 @@ Return an alist of (TYPE MATCH)." value (cdr answer)) (and (eq (preceding-char) ?\n) (widget-get widget :indent) - (insert-char ?\ (widget-get widget :indent))) + (insert-char ?\s (widget-get widget :indent))) (push (cond ((null answer) (widget-create-child widget arg)) ((widget-get arg :inline) @@ -2865,7 +2858,7 @@ link for that string." (narrow-to-region from to) (goto-char (point-min)) (while (search-forward "\n" nil t) - (insert-char ?\ indent))))))) + (insert-char ?\s indent))))))) ;;; The `documentation-string' Widget. @@ -2885,7 +2878,7 @@ link for that string." (let ((before (substring doc 0 (match-beginning 0))) (after (substring doc (match-beginning 0))) button) - (insert before ?\ ) + (insert before ?\s) (widget-documentation-link-add widget start (point)) (setq button (widget-create-child-and-convert @@ -2899,7 +2892,7 @@ link for that string." (when shown (setq start (point)) (when (and indent (not (zerop indent))) - (insert-char ?\ indent)) + (insert-char ?\s indent)) (insert after) (widget-documentation-link-add widget start (point))) (widget-put widget :buttons (list button))) @@ -3600,7 +3593,7 @@ example: (widget-apply widget :notify widget event)))) (defun widget-color-notify (widget child &optional event) - "Update the sample, and notofy the parent." + "Update the sample, and notify the parent." (overlay-put (widget-get widget :sample-overlay) 'face (widget-apply widget :sample-face-get)) (widget-default-notify widget child event)) diff --git a/lisp/widget.el b/lisp/widget.el index f6c8efa6374..8e9b0977c05 100644 --- a/lisp/widget.el +++ b/lisp/widget.el @@ -1,6 +1,7 @@ ;;; widget.el --- a library of user interface components ;; -;; Copyright (C) 1996, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: help, extensions, faces, hypermedia diff --git a/lisp/windmove.el b/lisp/windmove.el index 785a7538a69..b3aacf62d51 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el @@ -1,6 +1,7 @@ ;;; windmove.el --- directional window-selection routines ;; -;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; ;; Author: Hovav Shacham (hovav@cs.stanford.edu) ;; Created: 17 October 1998 @@ -206,11 +207,8 @@ placement bugs in old versions of Emacs." ;; rest. ;; ;; This work is done by `windmove-reference-loc'. It can figure out -;; the locations of the corners by calling `window-edges', but to -;; calculate the frame-based location of point, it calls the workhorse -;; function `windmove-coordinates-of-position', which itself calls the -;; incredibly hairy builtin `compute-motion'. There is a good deal of -;; black magic in getting all the arguments to this function just right. +;; the locations of the corners by calling `window-edges' combined +;; with the result of `posn-at-point'. ;; ;; The second step is more messy. Conceptually, it is fairly simple: ;; if we know the reference location, and the coordinates of the @@ -404,58 +402,6 @@ Returns the wrapped coordinate." (windmove-constrain-around-range (cdr coord) min-y max-y))))) - -;; `windmove-coordinates-of-position' is stolen and modified from the -;; Emacs 20 Lisp Reference Manual, section 27.2.5. It seems to work -;; okay, although I am bothered by the fact that tab-offset (the cdr -;; of the next-to- last argument) is set to 0. On the other hand, I -;; can't find a single usage of `compute-motion' anywhere that doesn't -;; set this component to zero, and I'm too lazy to grovel through the -;; C source to figure out what's happening in the background. there -;; also seems to be a good deal of fun in calculating the correct -;; width of lines for telling `compute-motion' about; in particular, -;; it seems we need to subtract 1 (for the continuation column) from -;; the number that `window-width' gives, or continuation lines aren't -;; counted correctly. I haven't seen anyone doing this before, -;; though. -;; -;; Now updated for Emacs 21, based on the Emacs 21 Lisp Reference -;; Manual, section 30.2.5. It is no longer necessary to subtract -;; 1 for the usable width of the window. -;; TODO: also handle minibuffer case, w/ `minibuffer-prompt-width'. -(defun windmove-coordinates-of-position (pos) - "Return the coordinates of position POS in the current window. -Return the window-based coodinates in a cons pair: (HPOS . VPOS), -where HPOS and VPOS are the zero-based x and y components of the -screen location of POS. -As an example, if point is in the top left corner of a window, then -the return value from `windmove-coordinates-of-position' is (0 . 0) -regardless of the where point is in the buffer and where the window -is placed in the frame." - (let ((big-hairy-result (compute-motion - (window-start) - '(0 . 0) - pos - nil ; (window-width window-height) - nil ; window-width - (cons (window-hscroll) - 0) ; why zero? - (selected-window)))) - (cons (nth 1 big-hairy-result) ; hpos, not vpos as documented - (nth 2 big-hairy-result)))) ; vpos, not hpos as documented - -(defun windmove-coordinates-of-window-position (pos &optional window) - "Return the coordinates of position POS in WINDOW. -Return the window-based coodinates in a cons pair: (HPOS . VPOS), -where HPOS and VPOS are the zero-based x and y components of the -screen location of POS. If WINDOW is nil, return the coordinates in -the currently selected window." - (if (null window) - (windmove-coordinates-of-position pos) - (save-selected-window - (select-window window) - (windmove-coordinates-of-position pos)))) - ;; This calculates the reference location in the current window: the ;; frame-based (x . y) of either point, the top-left, or the ;; bottom-right of the window, depending on ARG. @@ -482,9 +428,11 @@ supplied, if ARG is greater or smaller than zero, respectively." ((= effective-arg 0) (windmove-coord-add top-left - (windmove-coordinates-of-window-position - (window-point window) - window))))))) + (let ((col-row + (posn-col-row + (posn-at-point (window-point window) window)))) + (cons (- (car col-row) (window-hscroll window)) + (cdr col-row))))))))) ;; This uses the reference location in the current window (calculated ;; by `windmove-reference-loc' above) to find a reference location diff --git a/lisp/window.el b/lisp/window.el index c31b3149556..a0820bb7cf6 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1,7 +1,7 @@ ;;; window.el --- GNU Emacs window commands aside from those written in C -;; Copyright (C) 1985, 1989, 1992, 1993, 1994, 2000, 2001, 2002, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1989, 1992, 1993, 1994, 2000, 2001, 2002, +;; 2003, 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/winner.el b/lisp/winner.el index c64d00d6255..0fbd0221e49 100644 --- a/lisp/winner.el +++ b/lisp/winner.el @@ -1,6 +1,7 @@ ;;; winner.el --- Restore old window configurations -;; Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation. Inc. +;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation. Inc. ;; Author: Ivar Rummelhoff <ivarru@math.uio.no> ;; Created: 27 Feb 1997 @@ -78,7 +79,7 @@ ;;;###autoload (defcustom winner-mode nil - "Toggle winner-mode. + "Toggle Winner mode. Setting this variable directly does not take effect; use either \\[customize] or the function `winner-mode'." :set #'(lambda (symbol value) (funcall symbol (or value 0))) @@ -98,8 +99,7 @@ use either \\[customize] or the function `winner-mode'." :group 'winner) (defcustom winner-boring-buffers '("*Completions*") - "`winner-undo' will not restore windows displaying any of these \ -buffers. + "`winner-undo' will not restore windows displaying any of these buffers. You may want to include buffer names such as *Help*, *Apropos*, *Buffer List*, *info* and *Compile-Log*." :type '(repeat string) @@ -108,7 +108,8 @@ You may want to include buffer names such as *Help*, *Apropos*, -;;;; Saving old configurations (internal variables and subroutines) + +;;;; Saving old configurations (internal variables and subroutines) ;;; Current configuration @@ -162,13 +163,13 @@ You may want to include buffer names such as *Help*, *Apropos*, ;; Find the right ring. If it does not exist, create one. (defsubst winner-ring (frame) (or (cdr (assq frame winner-ring-alist)) - (progn - (let ((ring (make-ring winner-ring-size))) - (ring-insert ring (winner-configuration frame)) - (push (cons frame ring) winner-ring-alist) - ring)))) + (let ((ring (make-ring winner-ring-size))) + (ring-insert ring (winner-configuration frame)) + (push (cons frame ring) winner-ring-alist) + ring))) -;; If the same command is called several times in a row, + +;; If the same command is called several times in a row, ;; we only save one window configuration. (defvar winner-last-command nil) @@ -176,7 +177,7 @@ You may want to include buffer names such as *Help*, *Apropos*, (defvar winner-last-frames nil) -(defun winner-equal (a b) +(defsubst winner-equal (a b) "Check whether two Winner configurations (as produced by `winner-conf') are equal." (equal (cdr a) (cdr b))) @@ -240,7 +241,8 @@ You may want to include buffer names such as *Help*, *Apropos*, -;;;; Restoring configurations + +;;;; Restoring configurations ;; Works almost as `set-window-configuration', ;; but does not change the contents or the size of the minibuffer, @@ -301,7 +303,8 @@ You may want to include buffer names such as *Help*, *Apropos*, winner-point-alist) (point))))))) -;; Make sure point does not end up in the minibuffer and delete + +;; Make sure point does not end up in the minibuffer and delete ;; windows displaying dead or boring buffers ;; (c.f. `winner-boring-buffers'). Return nil iff all the windows ;; should be deleted. Preserve correct points and marks. @@ -410,7 +413,7 @@ With arg, turn Winner mode on if and only if arg is positive." (defvar winner-undo-frame nil) (defvar winner-pending-undo-ring nil - "The ring currently used by winner undo.") + "The ring currently used by `winner-undo'.") (defvar winner-undo-counter nil) (defvar winner-undone-data nil) ; There confs have been passed. @@ -437,7 +440,8 @@ In other words, \"undo\" changes in window configuration." -(defun winner-undo-this () ; The heart of winner undo. + +(defun winner-undo-this () ; The heart of winner undo. (loop (cond ((>= winner-undo-counter (ring-length winner-pending-undo-ring)) @@ -467,7 +471,7 @@ In other words, \"undo\" changes in window configuration." (ring-ref winner-pending-undo-ring 0))) (unless (eq (selected-window) (minibuffer-window)) (message "Winner undid undo"))) - (t (error "Previous command was not a winner-undo")))) + (t (error "Previous command was not a `winner-undo'")))) ;;; To be evaluated when the package is loaded: diff --git a/lisp/woman.el b/lisp/woman.el index 9ad3b50e381..5ecc4744305 100644 --- a/lisp/woman.el +++ b/lisp/woman.el @@ -1,6 +1,6 @@ ;;; woman.el --- browse UN*X manual pages `wo (without) man' -;; Copyright (C) 2000, 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> ;; Maintainer: Francis J. Wright <F.J.Wright@qmul.ac.uk> diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el index 1e1291a5b5f..d066ee49d1c 100644 --- a/lisp/x-dnd.el +++ b/lisp/x-dnd.el @@ -1,7 +1,6 @@ ;;; x-dnd.el --- drag and drop support for X. -;; Copyright (C) 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> ;; Maintainer: FSF diff --git a/lisp/xml.el b/lisp/xml.el index 53cf850b983..5fdb6f33b18 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -1,6 +1,7 @@ ;;; xml.el --- XML parser -;; Copyright (C) 2000, 01, 03, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Emmanuel Briot <briot@gnat.com> ;; Maintainer: Mark A. Hershberger <mah@everybody.org> @@ -184,6 +185,7 @@ If PARSE-NS is non-nil, then QNAMES are expanded." (defvar xml-name-re) (defvar xml-entity-value-re) +(defvar xml-att-def-re) (let* ((start-chars (concat "[:alpha:]:_")) (name-chars (concat "-[:digit:]." start-chars)) ;;[3] S ::= (#x20 | #x9 | #xD | #xA)+ diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 692b35d02be..6a800dd2d2e 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -1,6 +1,7 @@ ;;; xt-mouse.el --- support the mouse when emacs run in an xterm -;; Copyright (C) 1994, 2000, 2001, 2005 Free Software Foundation +;; Copyright (C) 1994, 2000, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: mouse, terminals diff --git a/lispintro/ChangeLog b/lispintro/ChangeLog index b9537f93d1f..2b9ab752ad9 100644 --- a/lispintro/ChangeLog +++ b/lispintro/ChangeLog @@ -1,3 +1,8 @@ +2005-07-30 Eli Zaretskii <eliz@gnu.org> + + * makefile.w32-in (info): Don't run install-info. + ($(infodir)/dir): New target, produced by running install-info. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. @@ -48,7 +53,7 @@ ;; coding: iso-2022-7bit ;; End: - Copyright (C) 2001 + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/lispintro/Makefile.in b/lispintro/Makefile.in index c1ee2ab80eb..0f912d61487 100644 --- a/lispintro/Makefile.in +++ b/lispintro/Makefile.in @@ -1,6 +1,7 @@ #### Makefile for the Emacs Lisp Introduction manual -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/lispintro/aclocal.m4 b/lispintro/aclocal.m4 index 58ddd1cd9ad..e446f25337a 100644 --- a/lispintro/aclocal.m4 +++ b/lispintro/aclocal.m4 @@ -1,6 +1,7 @@ dnl aclocal.m4 generated automatically by aclocal 1.4-p4 -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, +dnl 2004, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/lispintro/emacs-lisp-intro.texi b/lispintro/emacs-lisp-intro.texi index d2ef7d1ce2c..f133cb029f3 100644 --- a/lispintro/emacs-lisp-intro.texi +++ b/lispintro/emacs-lisp-intro.texi @@ -183,7 +183,7 @@ people who are not programmers. Edition @value{edition-number}, @value{update-date} @sp 1 Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, -2002, 2003, 2004 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @sp 1 @iftex diff --git a/lispintro/makefile.w32-in b/lispintro/makefile.w32-in index 2131542a110..09acbb699ab 100644 --- a/lispintro/makefile.w32-in +++ b/lispintro/makefile.w32-in @@ -1,6 +1,6 @@ #### -*- Makefile -*- for the Emacs Lisp Introduction manual. -# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -39,6 +39,8 @@ ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ .SUFFIXES: .dvi .ps .texi info: $(INFO_TARGETS) + +$(infodir)/dir: $(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) dvi: $(DVI_TARGETS) diff --git a/lispref/ChangeLog b/lispref/ChangeLog index cddd1d506b0..9c19c136926 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,195 @@ +2005-09-03 Thien-Thi Nguyen <ttn@gnu.org> + + * text.texi (Buffer Contents): Use "\n" in examples' result strings. + + (Insertion): Document precise type of `insert-char' arg COUNT. + +2005-09-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * modes.texi (Other Font Lock Variables): Sync the default of + font-lock-lines-before. + +2005-08-31 Michael Albinus <michael.albinus@gmx.de> + + * files.texi (Magic File Names): Add `make-auto-save-file-name'. + +2005-08-29 Richard M. Stallman <rms@gnu.org> + + * elisp.texi (Top): Update subnode menu. + + * searching.texi (Searching and Matching): Move node. + Rearrange contents and add overall explanation. + (Searching and Case): Move node. + (Searching and Matching): Update menu. + +2005-08-27 Eli Zaretskii <eliz@gnu.org> + + * os.texi (Startup Summary): Fix the description of the initial + startup message display. + +2005-08-25 Richard M. Stallman <rms@gnu.org> + + * searching.texi (Search and Replace): Add replace-regexp-in-string. + +2005-08-25 Emilio C. Lopes <eclig@gmx.net> + + * display.texi (Finding Overlays): Fix `find-overlay-prop' in + `next-overlay-change' example. + +2005-08-22 Juri Linkov <juri@jurta.org> + + * display.texi (Attribute Functions): Add set-face-inverse-video-p. + Fix invert-face. Fix args of face-background. + + * display.texi (Standard Faces): Delete node. + (Faces): Add xref to `(emacs)Standard Faces'. + (Displaying Faces): Fix xref to `Standard Faces'. + + * modes.texi (Mode Line Data): Fix xref to Standard Faces. + +2005-08-20 Alan Mackenzie <acm@muc.de> + + * buffers.texi (The Buffer List): Clarify the manipulation of the + buffer list. + +2005-08-14 Richard M. Stallman <rms@gnu.org> + + * modes.texi (Auto Major Mode): interpreter-mode-alist key is not + a regexp. + +2005-08-11 Richard M. Stallman <rms@gnu.org> + + * elisp.texi (Top): Update subnode lists. + + * display.texi (Inverse Video): Node deleted. + + * tips.texi (Key Binding Conventions, Programming Tips, Warning Tips): + New nodes split out of Coding Conventions. + + * searching.texi (Regular Expressions): Document re-builder. + + * os.texi (Time Parsing): New node split out of Time Conversion. + + * processes.texi (Misc Network, Network Feature Testing) + (Network Options, Make Network): New nodes split out of + Low-Level Network. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * frames.texi (Geometry): New node, split from Size and Position. + (Frame Parameters): Refer to Geometry. + + * buffers.texi (The Buffer List): Fix xrefs. + + * windows.texi (Splitting Windows): Fix xref. + + * frames.texi (Layout Parameters): Add xref. + + * display.texi (Line Height, Scroll Bars): Fix xrefs. + + * keymaps.texi (Menu Bar): Fix xref. + + * locals.texi (Standard Buffer-Local Variables): Fix xref. + + * modes.texi (%-Constructs): Fix xref. + + * frames.texi (Window Frame Parameters): Node split up. + (Basic Parameters, Position Parameters, Size Parameters) + (Layout Parameters, Buffer Parameters, Management Parameters) + (Cursor Parameters, Color Parameters): New subnodes. + +2005-08-09 Luc Teirlinck <teirllm@auburn.edu> + + * positions.texi (Screen Lines): Update xref for previous change + in minibuf.texi. + + * minibuf.texi (Intro to Minibuffers): Update pxref for previous + change in minibuf.texi. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * tips.texi (Coding Conventions): Minor cleanup. + + * modes.texi (Defining Minor Modes): Explain when init-value + can be non-nil. + + * elisp.texi (Top): Update submenu for Minibuffer. + + * minibuf.texi (Minibuffer Misc): Node split up. + (Minibuffer Commands, Minibuffer Windows, Minibuffer Contents) + (Recursive Mini): New nodes split out from Minibuffer Misc. + (Minibuffer Misc): Document max-mini-window-height. + + * hash.texi (Defining Hash): Delete stray paren in example. + + * display.texi (Echo Area Customization): Don't define + max-mini-window-height here; xref instead. + + * commands.texi (Event Input Misc): Update while-no-input. + + * advice.texi (Advising Functions): Explain when to use advice + and when to use a hook. + +2005-07-30 Eli Zaretskii <eliz@gnu.org> + + * makefile.w32-in (info): Don't run install-info. + ($(infodir)/dir): New target, produced by running install-info. + +2005-07-27 Luc Teirlinck <teirllm@auburn.edu> + + * modes.texi (Defining Minor Modes): The keyword for the initial + value is :init-value, not :initial-value. + +2005-07-23 Eli Zaretskii <eliz@gnu.org> + + * loading.texi (Autoload): Make the `doctor' example be consistent + with what's in current loaddefs.el. Describe the "fn" magic in + the usage portion of the doc string. + +2005-07-22 Richard M. Stallman <rms@gnu.org> + + * internals.texi (Garbage Collection): Clarify previous change. + +2005-07-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * internals.texi (Garbage Collection): Add gc-cons-percentage. + +2005-07-18 Juri Linkov <juri@jurta.org> + + * commands.texi (Accessing Events): + * frames.texi (Text Terminal Colors, Resources): + * markers.texi (The Mark): + * modes.texi (Defining Minor Modes): + Delete duplicate duplicate words. + +2005-07-16 Richard M. Stallman <rms@gnu.org> + + * display.texi (Managing Overlays): Clarify make-overlay + args for insertion types. + +2005-07-13 Luc Teirlinck <teirllm@auburn.edu> + + * customize.texi (Variable Definitions): + Add `custom-initialize-safe-set' and `custom-initialize-safe-default'. + `standard-value' is a list too. + (Defining New Types): Use @key{RET} instead of @key{ret}. + +2005-07-13 Francis Litterio <franl@world.std.com> (tiny change) + + * os.texi (Translating Input): Fix typo. + +2005-07-08 Richard M. Stallman <rms@gnu.org> + + * README: Update edition number and size estimate. + + * elisp.texi (VERSION): Set to 2.9. + +2005-07-07 Richard M. Stallman <rms@gnu.org> + + * book-spine.texinfo: Update Emacs version. + + * display.texi (Inverse Video): Delete mode-line-inverse-video. + 2005-07-06 Richard M. Stallman <rms@gnu.org> * searching.texi (Regexp Search): Clarify what re-search-forward @@ -3625,7 +3817,8 @@ Tue Apr 11 12:23:28 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) ;; coding: iso-2022-7bit ;; End: - Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/lispref/Makefile.in b/lispref/Makefile.in index 4fac4c025b0..7d5ce02714d 100644 --- a/lispref/Makefile.in +++ b/lispref/Makefile.in @@ -1,7 +1,7 @@ # Makefile for the GNU Emacs Lisp Reference Manual. -# Copyright (C) 1990,1991,1992,1993,1994,1995,1996,1998,1999,2000,2001,2003,2004 -# Free Software Foundation, Inc. +# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, +# 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/lispref/README b/lispref/README index 1600a5344b3..c9a49f8693b 100644 --- a/lispref/README +++ b/lispref/README @@ -1,4 +1,4 @@ -README for Edition 2.8 of the Emacs Lisp Reference Manual. +README for Edition 2.9 of the Emacs Lisp Reference Manual. * This directory contains the texinfo source files for the Reference Manual, make-permuted-index, and the latest version of texinfo.tex, @@ -11,7 +11,7 @@ Emacs bugs, use bug-gnu-emacs@gnu.org. To ask questions, use the newsgroup gnu.emacs.help. * The Emacs Lisp Reference Manual is quite large. It totals around -980 pages in smallbook format; the info files total almost +1100 pages in smallbook format; the info files total over 2.5 megabytes. * You can format this manual either for Info or for printing hardcopy diff --git a/lispref/abbrevs.texi b/lispref/abbrevs.texi index a58064ab387..38c5854adc6 100644 --- a/lispref/abbrevs.texi +++ b/lispref/abbrevs.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/abbrevs @node Abbrevs, Processes, Syntax Tables, Top diff --git a/lispref/advice.texi b/lispref/advice.texi index 2006474fc61..8299e13ac10 100644 --- a/lispref/advice.texi +++ b/lispref/advice.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/advising @node Advising Functions, Debugging, Byte Compilation, Top @@ -8,7 +9,7 @@ @cindex advising functions The @dfn{advice} feature lets you add to the existing definition of -a function, by @dfn{advising the function}. This is a clean method +a function, by @dfn{advising the function}. This is a cleaner method for a library to customize functions defined within Emacs---cleaner than redefining the whole function. @@ -23,8 +24,20 @@ are not the same thing. @strong{Usage Note:} Advice is useful for altering the behavior of existing calls to an existing function. If you want the new behavior -for new calls, or for key bindings, it is cleaner to define a new -function (or a new command) which uses the existing function. +for new calls, or for key bindings, you should define a new function +(or a new command) which uses the existing function. + + @strong{Usage note:} Advising a function can cause confusion in +debugging, since people who debug calls to the original function may +not notice that it has been modified with advice. Therefore, if you +have the possibility to change the code of that function (or ask +someone to do so) to run a hook, please solve the problem that way. +Advice should be reserved for the cases where you cannot get the +function changed. + + In particular, this means that a file in Emacs should not put advice +on a function in Emacs. There are currently a few exceptions to this +convention, but we aim to correct them. @menu * Simple Advice:: A simple example to explain the basics of advice. diff --git a/lispref/anti.texi b/lispref/anti.texi index 2c3d6414c1c..d6ae30f2106 100644 --- a/lispref/anti.texi +++ b/lispref/anti.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This node must have no pointers. diff --git a/lispref/backups.texi b/lispref/backups.texi index 24c617510bf..3b5363f64a3 100644 --- a/lispref/backups.texi +++ b/lispref/backups.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/backups @node Backups and Auto-Saving, Buffers, Files, Top diff --git a/lispref/book-spine.texinfo b/lispref/book-spine.texinfo index cb52cc6fc3c..7355c4530ae 100644 --- a/lispref/book-spine.texinfo +++ b/lispref/book-spine.texinfo @@ -11,7 +11,7 @@ @center @titlefont{GNU Emacs Lisp Reference Manual} @sp 5 @center GNU -@center Emacs Version 19.25 +@center Emacs Version 22.1 @center for Unix Users @sp 5 diff --git a/lispref/buffers.texi b/lispref/buffers.texi index a0769be23dd..6204dfce339 100644 --- a/lispref/buffers.texi +++ b/lispref/buffers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/buffers @node Buffers, Windows, Backups and Auto-Saving, Top @@ -757,21 +757,24 @@ signal an error if the current buffer is read-only. @section The Buffer List @cindex buffer list - The @dfn{buffer list} is a list of all live buffers. Creating a -buffer adds it to this list, and killing a buffer removes it. The -order of the buffers in the list is based primarily on how recently -each buffer has been displayed in the selected window. Buffers move -to the front of the list when they are selected (selecting a window -that already displays the buffer counts as selecting the buffer), and -to the end when they are buried (see @code{bury-buffer}, below). -Several functions, notably @code{other-buffer}, use this ordering. A -buffer list displayed for the user also follows this order. + The @dfn{buffer list} is a list of all live buffers. The order of +the buffers in the list is based primarily on how recently each buffer +has been displayed in a window. Several functions, notably +@code{other-buffer}, use this ordering. A buffer list displayed for +the user also follows this order. + Creating a buffer adds it to the end of the buffer list, and killing +a buffer removes it. Buffers move to the front of the list when they +are selected for display in a window (@pxref{Displaying Buffers}), and +to the end when they are buried (see @code{bury-buffer}, below). +There are no functions available to the Lisp programmer which directly +manipulate the buffer list. + In addition to the fundamental Emacs buffer list, each frame has its own version of the buffer list, in which the buffers that have been selected in that frame come first, starting with the buffers most recently selected @emph{in that frame}. (This order is recorded in -@var{frame}'s @code{buffer-list} frame parameter; see @ref{Window Frame +@var{frame}'s @code{buffer-list} frame parameter; see @ref{Buffer Parameters}.) The buffers that were never selected in @var{frame} come afterward, ordered according to the fundamental Emacs buffer list. @@ -838,7 +841,7 @@ buffer list that is not now visible in any window in a visible frame. If @var{frame} has a non-@code{nil} @code{buffer-predicate} parameter, then @code{other-buffer} uses that predicate to decide which buffers to consider. It calls the predicate once for each buffer, and if the value -is @code{nil}, that buffer is ignored. @xref{Window Frame Parameters}. +is @code{nil}, that buffer is ignored. @xref{Buffer Parameters}. @c Emacs 19 feature If @var{visible-ok} is @code{nil}, @code{other-buffer} avoids returning diff --git a/lispref/commands.texi b/lispref/commands.texi index 225deab4a20..353a7436c28 100644 --- a/lispref/commands.texi +++ b/lispref/commands.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/commands @node Command Loop, Keymaps, Minibuffers, Top @@ -1773,7 +1773,7 @@ Return the window that @var{position} is in. @defun posn-area position Return the window area recorded in @var{position}. It returns @code{nil} when the event occurred in the text area of the window; otherwise, it -is a symbol identifying the area in which the the event occurred. +is a symbol identifying the area in which the event occurred. @end defun @defun posn-point position @@ -2435,15 +2435,26 @@ Emacs version 18. @end defvar @defmac while-no-input body... -This construct runs the @var{body} forms and returns the value -of the last one---but only if no input arrives. If any input -arrives during the execution of the @var{body} forms, it aborts -them (working much like a quit), and the @code{while-no-input} -form returns @code{nil}. +This construct runs the @var{body} forms and returns the value of the +last one---but only if no input arrives. If any input arrives during +the execution of the @var{body} forms, it aborts them (working much +like a quit). The @code{while-no-input} form returns @code{nil} if +aborted by a real quit, and returns @code{t} if aborted by arrival of +other input. If a part of @var{body} binds @code{inhibit-quit} to non-@code{nil}, arrival of input during those parts won't cause an abort until the end of that part. + +If you want to be able to distingish all possible values computed +by @var{body} from both kinds of abort conditions, write the code +like this: + +@example +(while-no-input + (list + (progn . @var{body}))) +@end example @end defmac @defun discard-input diff --git a/lispref/compile.texi b/lispref/compile.texi index 951a090e0da..79ac366c27d 100644 --- a/lispref/compile.texi +++ b/lispref/compile.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/compile @node Byte Compilation, Advising Functions, Loading, Top diff --git a/lispref/control.texi b/lispref/control.texi index 573a32b1cde..8dae3d46484 100644 --- a/lispref/control.texi +++ b/lispref/control.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/control @node Control Structures, Variables, Evaluation, Top diff --git a/lispref/customize.texi b/lispref/customize.texi index baaceae47f0..b573ab942a6 100644 --- a/lispref/customize.texi +++ b/lispref/customize.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/customize @node Customization, Loading, Macros, Top @@ -12,7 +13,7 @@ and also customization groups for classifying them. We use the term definitions---as well as face definitions (@pxref{Defining Faces}). @menu -* Common Keywords:: Common keyword arguments for all kinds of +* Common Keywords:: Common keyword arguments for all kinds of customization declarations. * Group Definitions:: Writing customization group definitions. * Variable Definitions:: Declaring user options. @@ -270,6 +271,22 @@ This is the default @code{:initialize} function. Use the @code{:set} function to initialize the variable, if it is already set or has been customized; otherwise, just use @code{set-default}. + +@item custom-initialize-safe-set +@itemx custom-initialize-safe-default +These functions behave like @code{custom-initialize-set} +(@code{custom-initialize-default}, respectively), but catch errors. +If an error occurs during initialization, they set the variable to +@code{nil} using @code{set-default}, and throw no error. + +These two functions are only meant for options defined in pre-loaded +files, where some variables or functions used to compute the option's +value may not yet be defined. The option normally gets updated in +@file{startup.el}, ignoring the previously computed value. Because of +this typical usage, the value which these two functions compute +normally only matters when, after startup, one unsets the option's +value and then reevaluates the defcustom. By that time, the necessary +variables and functions will be defined, so there will not be an error. @end table @item :set-after @var{variables} @@ -318,8 +335,8 @@ type of @var{symbol}. Internally, @code{defcustom} uses the symbol property @code{standard-value} to record the expression for the default value, and @code{saved-value} to record the value saved by the user with the -customization buffer. The @code{saved-value} property is actually a -list whose car is an expression which evaluates to the value. +customization buffer. Both properties are actually lists whose car is +an expression which evaluates to the value. @node Customization Types @section Customization Types @@ -1088,8 +1105,8 @@ widget. For the purpose of defining new customization types, the argument with the same syntax as the keyword argument to @code{defcustom} with the same name. The third argument is a documentation string for the new widget. You will be able to see that -string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string -@key{ret}} command. +string with the @kbd{M-x widget-browse @key{RET} binary-tree-of-string +@key{RET}} command. After these mandatory arguments follow the keyword arguments. The most important is @code{:type}, which describes the data type we want to match diff --git a/lispref/debugging.texi b/lispref/debugging.texi index 66663aad131..9c0fa9bc865 100644 --- a/lispref/debugging.texi +++ b/lispref/debugging.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/debugging @node Debugging, Read and Print, Advising Functions, Top diff --git a/lispref/display.texi b/lispref/display.texi index 958ca0325e9..8addb3b67ec 100644 --- a/lispref/display.texi +++ b/lispref/display.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, -@c 2002, 2005 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/display @node Display, System Interface, Processes, Top @@ -31,7 +31,6 @@ that Emacs presents to the user. * Images:: Displaying images in Emacs buffers. * Buttons:: Adding clickable buttons to Emacs buffers. * Blinking:: How Emacs shows the matching open parenthesis. -* Inverse Video:: Specifying how the screen looks. * Usual Display:: The usual conventions for displaying nonprinting chars. * Display Tables:: How to specify other conventions. * Beeping:: Audible signal to the user. @@ -495,12 +494,6 @@ sequence are echoed immediately.) If the value is zero, then command input is not echoed. @end defvar -@defopt max-mini-window-height -This variable specifies the maximum height for resizing minibuffer -windows. If a float, it specifies a fraction of the height of the -frame. If an integer, it specifies a number of lines. -@end defopt - @defvar message-truncate-lines Normally, displaying a long message resizes the echo area to display the entire message. But if the variable @code{message-truncate-lines} @@ -508,6 +501,11 @@ is non-@code{nil}, the echo area does not resize, and the message is truncated to fit it, as in Emacs 20 and before. @end defvar + The variable @code{max-mini-window-height}, which specifies the +maximum height for resizing minibuffer windows, also applies to the +echo area (which is really a special use of the minibuffer window. +@xref{Minibuffer Misc}. + @node Warnings @section Reporting Warnings @cindex warnings @@ -1133,12 +1131,14 @@ markers. If @var{buffer} is omitted, the overlay is created in the current buffer. The arguments @var{front-advance} and @var{rear-advance} specify the -insertion type for the start of the overlay and for the end of the -overlay, respectively. @xref{Marker Insertion Types}. If -@var{front-advance} is non-@code{nil}, text inserted at the beginning -of the overlay is excluded from the overlay. If @var{read-advance} is -non-@code{nil}, text inserted at the beginning of the overlay is -included in the overlay. +marker insertion type for the start of the overlay and for the end of +the overlay, respectively. @xref{Marker Insertion Types}. If they +are both @code{nil}, the default, then the overlay extends to include +any text inserted at the beginning, but not text inserted at the end. +If @var{front-advance} is non-@code{nil}, text inserted at the +beginning of the overlay is excluded from the overlay. If +@var{rear-advance} is non-@code{nil}, text inserted at the end of the +overlay is included in the overlay. @end defun @defun overlay-start overlay @@ -1387,6 +1387,10 @@ modified, and the length of the pre-change text replaced by that range. length is the number of characters deleted, and the post-change beginning and end are equal.) +If these functions modify the buffer, they should bind +@code{inhibit-modification-hooks} to @code{t} around doing so, to +avoid confusing the internal mechanism that calls these hooks. + @item insert-in-front-hooks @kindex insert-in-front-hooks @r{(overlay property)} This property's value is a list of functions to be called before and @@ -1497,20 +1501,26 @@ end of an overlay, before @var{pos}. If there is none, it returns @code{(point-min)}. @end defun - Here's an easy way to use @code{next-overlay-change} to search for the -next character which gets a non-@code{nil} @code{happy} property from + Here's a function which uses @code{next-overlay-change} to search +for the next character which gets a given property @code{prop} from either its overlays or its text properties (@pxref{Property Search}): @smallexample (defun find-overlay-prop (prop) (save-excursion (while (and (not (eobp)) - (not (get-char-property (point) 'happy))) + (not (get-char-property (point) prop))) (goto-char (min (next-overlay-change (point)) - (next-single-property-change (point) 'happy)))) + (next-single-property-change (point) prop)))) (point))) @end smallexample + Now you can search for a @code{happy} property like this: + +@smallexample +(find-overlay-prop 'happy) +@end smallexample + @node Width @section Width @@ -1636,7 +1646,7 @@ parts of Emacs text. @vindex default-line-spacing You can specify the line spacing for all lines in a frame with the -@code{line-spacing} frame parameter, @xref{Window Frame Parameters}. +@code{line-spacing} frame parameter (@pxref{Layout Parameters}). However, if the variable @code{default-line-spacing} is non-@code{nil}, it overrides the frame's @code{line-spacing} parameter. An integer value specifies the number of pixels put below @@ -1669,7 +1679,9 @@ height. A @dfn{face} is a named collection of graphical attributes: font family, foreground color, background color, optional underlining, and many others. Faces are used in Emacs to control the style of display of -particular parts of the text or the frame. +particular parts of the text or the frame. @xref{Standard Faces,,, +emacs, The GNU Emacs Manual}, for the list of faces Emacs normally +comes with. @cindex face id Each face has its own @dfn{face number}, which distinguishes faces at @@ -1687,7 +1699,6 @@ same meaning in all frames. But you can arrange to give a particular face name a special meaning in one frame if you wish. @menu -* Standard Faces:: The faces Emacs normally comes with. * Defining Faces:: How to define a face with @code{defface}. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. @@ -1701,140 +1712,6 @@ face name a special meaning in one frame if you wish. that handle a range of character sets. @end menu -@node Standard Faces -@subsection Standard Faces - - This table lists all the standard faces and their uses. Most of them -are used for displaying certain parts of the frames or certain kinds of -text; you can control how those places look by customizing these faces. - -@table @code -@item default -@kindex default @r{(face name)} -This face is used for ordinary text. - -@item mode-line -@kindex mode-line @r{(face name)} -This face is used for the mode line of the selected window, and for -menu bars when toolkit menus are not used---but only if -@code{mode-line-inverse-video} is non-@code{nil}. - -@item modeline -@kindex modeline @r{(face name)} -This is an alias for the @code{mode-line} face, for compatibility with -old Emacs versions. - -@item mode-line-inactive -@kindex mode-line-inactive @r{(face name)} -This face is used for mode lines of non-selected windows. -This face inherits from @code{mode-line}, so changes -in that face affect all windows. - -@item header-line -@kindex header-line @r{(face name)} -This face is used for the header lines of windows that have them. - -@item menu -This face controls the display of menus, both their colors and their -font. (This works only on certain systems.) - -@item fringe -@kindex fringe @r{(face name)} -This face controls the default colors of window fringes, the thin -areas on either side that are used to display continuation and -truncation glyphs. Other faces used to display bitmaps in the fringe -are implicitly merged with this face. - -@item minibuffer-prompt -@kindex minibuffer-prompt @r{(face name)} -@vindex minibuffer-prompt-properties -This face is used for the text of minibuffer prompts. By default, -Emacs automatically adds this face to the value of -@code{minibuffer-prompt-properties}, which is a list of text -properties used to display the prompt text. - -@item scroll-bar -@kindex scroll-bar @r{(face name)} -This face controls the colors for display of scroll bars. - -@item tool-bar -@kindex tool-bar @r{(face name)} -This face is used for display of the tool bar, if any. - -@item region -@kindex region @r{(face name)} -This face is used for highlighting the region in Transient Mark mode. - -@item secondary-selection -@kindex secondary-selection @r{(face name)} -This face is used to show any secondary selection you have made. - -@item highlight -@kindex highlight @r{(face name)} -This face is meant to be used for highlighting for various purposes. - -@item mode-line-highlight -@kindex mode-line-highlight @r{(face name)} -This face is used for highlighting something on @code{mode-line} or -@code{header-line} for various purposes. - -@item trailing-whitespace -@kindex trailing-whitespace @r{(face name)} -This face is used to display excess whitespace at the end of a line, -if @code{show-trailing-whitespace} is non-@code{nil}. - -@item escape-glyph -@kindex escape-glyph @r{(face name)} -This face is used to display control characters and escape glyphs. -@end table - - In contrast, these faces are provided to change the appearance of text -in specific ways. You can use them on specific text, when you want -the effects they produce. - -@table @code -@item bold -@kindex bold @r{(face name)} -This face uses a bold font, if possible. It uses the bold variant of -the frame's font, if it has one. It's up to you to choose a default -font that has a bold variant, if you want to use one. - -@item italic -@kindex italic @r{(face name)} -This face uses the italic variant of the frame's font, if it has one. - -@item bold-italic -@kindex bold-italic @r{(face name)} -This face uses the bold italic variant of the frame's font, if it has -one. - -@item underline -@kindex underline @r{(face name)} -This face underlines text. - -@item fixed-pitch -@kindex fixed-pitch @r{(face name)} -This face forces use of a particular fixed-width font. - -@item variable-pitch -@kindex variable-pitch @r{(face name)} -This face forces use of a particular variable-width font. It's -reasonable to customize this to use a different variable-width font, if -you like, but you should not make it a fixed-width font. - -@item shadow -@kindex shadow @r{(face name)} -This face is used for making the text less noticeable than the -surrounding ordinary text. -@end table - -@defvar show-trailing-whitespace -@tindex show-trailing-whitespace -If this variable is non-@code{nil}, Emacs uses the -@code{trailing-whitespace} face to display any spaces and tabs at the -end of a line. -@end defvar - @node Defining Faces @subsection Defining Faces @@ -2285,10 +2162,14 @@ This function sets the underline attribute of face @var{face}. Non-@code{nil} means do underline; @code{nil} means don't. @end defun +@defun set-face-inverse-video-p face inverse-video-p &optional frame +This function sets the @code{:inverse-video} attribute of face +@var{face}. +@end defun + @defun invert-face face &optional frame -This function inverts the @code{:inverse-video} attribute of face -@var{face}. If the attribute is @code{nil}, this function sets it to -@code{t}, and vice versa. +This function swaps the foreground and background colors of face +@var{face}. @end defun These functions examine the attributes of a face. If you don't @@ -2297,7 +2178,7 @@ They return the symbol @code{unspecified} if the face doesn't define any value for that attribute. @defun face-foreground face &optional frame inherit -@defunx face-background face &optional frame +@defunx face-background face &optional frame inherit These functions return the foreground color (or background color, respectively) of face @var{face}, as a string. @@ -2375,7 +2256,8 @@ properties too; they apply to all the text covered by the overlay. @item With a region that is active. In Transient Mark mode, the region is -highlighted with the face @code{region} (@pxref{Standard Faces}). +highlighted with the face @code{region} (@pxref{Standard Faces,,, +emacs, The GNU Emacs Manual}). @item With special glyphs. Each glyph can specify a particular face @@ -3073,7 +2955,7 @@ Normally the frame parameter @code{vertical-scroll-bars} controls whether the windows in the frame have vertical scroll bars, and whether they are on the left or right. The frame parameter @code{scroll-bar-width} specifies how wide they are (@code{nil} -meaning the default). @xref{Window Frame Parameters}. +meaning the default). @xref{Layout Parameters}. @defun frame-current-scroll-bars &optional frame This function reports the scroll bar type settings for frame @@ -4587,24 +4469,6 @@ Here is an example of calling this function explicitly. @end smallexample @end deffn -@node Inverse Video -@section Inverse Video -@cindex Inverse Video - -@defopt inverse-video -@cindex highlighting -This variable controls whether Emacs uses inverse video for all text -on the screen. Non-@code{nil} means yes, @code{nil} means no. The -default is @code{nil}. -@end defopt - -@defopt mode-line-inverse-video -This variable controls the use of inverse video for mode lines and -menu bars. If it is non-@code{nil}, then these lines are displayed in -the face @code{mode-line}. Otherwise, these lines are displayed -normally, just like other text. The default is @code{t}. -@end defopt - @node Usual Display @section Usual Display Conventions diff --git a/lispref/edebug.texi b/lispref/edebug.texi index f074cf3dbd5..a32c5e9189c 100644 --- a/lispref/edebug.texi +++ b/lispref/edebug.texi @@ -1,6 +1,7 @@ @comment -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This file can also be used by an independent Edebug User diff --git a/lispref/elisp.texi b/lispref/elisp.texi index f954cdc220e..726636fc71a 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -6,7 +6,7 @@ @c Version of the manual and of Emacs. @c Please remember to update the edition number in README as well. -@set VERSION 2.7 +@set VERSION 2.9 @set EMACSVER 22.0.50 @dircategory Emacs @@ -31,7 +31,7 @@ This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual, corresponding to Emacs version @value{EMACSVER}. Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, - 2000, 2002, 2003, 2004, 2005, Free Software Foundation, Inc. + 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -543,6 +543,10 @@ Minibuffers * Yes-or-No Queries:: Asking a question with a simple answer. * Multiple Queries:: Asking a series of similar questions. * Reading a Password:: Reading a password from the terminal. +* Minibuffer Commands:: Commands used as key bindings in minibuffers. +* Minibuffer Contents:: How such commands access the minibuffer text. +* Minibuffer Windows:: Operating on the special minibuffer windows. +* Recursive Mini:: Whether recursive entry to minibuffer is allowed. * Minibuffer Misc:: Various customization hooks and variables. Completion @@ -908,13 +912,13 @@ Non-ASCII Characters Searching and Matching * String Search:: Search for an exact match. +* Searching and Case:: Case-independent or case-significant searching. * Regular Expressions:: Describing classes of strings. * Regexp Search:: Searching for a match for a regexp. * POSIX Regexps:: Searching POSIX-style for the longest match. -* Search and Replace:: Internals of @code{query-replace}. -* Match Data:: Finding out which part of the text matched - various parts of a regexp, after regexp search. -* Searching and Case:: Case-independent or case-significant searching. +* Match Data:: Finding out which part of the text matched, + after a string or regexp search. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... Regular Expressions @@ -970,7 +974,8 @@ Processes * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. -* Byte Packing:: Using bindat to pack and unpack binary data. +* Misc Network:: Additional relevant functions for network connections. +* Byte Packing:: Using bindat to pack and unpack binary data. Receiving Output from Processes @@ -1001,7 +1006,6 @@ Emacs Display * Images:: Displaying images in Emacs buffers. * Buttons:: Adding clickable buttons to Emacs buffers. * Blinking:: How Emacs shows the matching open parenthesis. -* Inverse Video:: Specifying how the screen looks. * Usual Display:: The usual conventions for displaying nonprinting chars. * Display Tables:: How to specify other conventions. * Beeping:: Audible signal to the user. @@ -1016,6 +1020,8 @@ Operating System Interface * Time of Day:: Getting the current time. * Time Conversion:: Converting a time from numeric form to a string, or to calendrical data (or vice versa). +* Time Parsing:: Converting a time from numeric form to text + and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. * Timers:: Setting a timer to call a function at a certain time. @@ -1042,7 +1048,10 @@ Getting out of Emacs Tips and Conventions * Coding Conventions:: Conventions for clean and robust programs. -* Compilation Tips:: Making compiled code run fast. +* Key Binding Conventions:: Which keys should be bound by which programs. +* Programming Tips:: Making Emacs code fit smoothly in Emacs. +* Compilation Tips:: Making compiled code run fast. +* Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. * Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. diff --git a/lispref/errors.texi b/lispref/errors.texi index a246539b8fd..ce48c3cf549 100644 --- a/lispref/errors.texi +++ b/lispref/errors.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/errors @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top diff --git a/lispref/eval.texi b/lispref/eval.texi index 6a43466af67..36bc941f26b 100644 --- a/lispref/eval.texi +++ b/lispref/eval.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2003, 2004 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/eval @node Evaluation, Control Structures, Symbols, Top diff --git a/lispref/files.texi b/lispref/files.texi index 93c104e6ccd..1ec4b2e5dc2 100644 --- a/lispref/files.texi +++ b/lispref/files.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/files @node Files, Backups and Auto-Saving, Documentation, Top @@ -2580,7 +2580,9 @@ Here are the operations that a magic file name handler gets to handle: @code{get-file-buffer}, @code{insert-directory}, @code{insert-file-contents},@* -@code{load}, @code{make-directory}, +@code{load}, +@code{make-auto-save-file-name}, +@code{make-directory}, @code{make-directory-internal}, @code{make-symbolic-link},@* @code{rename-file}, @code{set-file-modes}, @code{set-file-times}, diff --git a/lispref/frames.texi b/lispref/frames.texi index 13921c0b6fc..3cb5e49dbac 100644 --- a/lispref/frames.texi +++ b/lispref/frames.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/frames @node Frames, Positions, Windows, Top @@ -205,6 +205,7 @@ parameters @code{foreground-color}, @code{background-color}, * Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. * Size and Position:: Changing the size and position of a frame. +* Geometry:: Parsing geometry specifications. @end menu @node Parameter Access @@ -310,14 +311,31 @@ Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. @node Window Frame Parameters @subsection Window Frame Parameters - Just what parameters a frame has depends on what display mechanism it -uses. Here is a table of the parameters that have special meanings in a -window frame; of these, @code{name}, @code{title}, @code{height}, -@code{width}, @code{buffer-list} and @code{buffer-predicate} provide -meaningful information in terminal frames, and @code{tty-color-mode} -is meaningful @emph{only} in terminal frames. Frame parameter whose -values measured in pixels, when used on text-only terminals, count -characters or lines instead. + Just what parameters a frame has depends on what display mechanism +it uses. This section describes the parameters that have special +meanings on some or all kinds of terminals. Of these, @code{name}, +@code{title}, @code{height}, @code{width}, @code{buffer-list} and +@code{buffer-predicate} provide meaningful information in terminal +frames, and @code{tty-color-mode} is meaningful @emph{only} in +terminal frames. + +@menu +* Basic Parameters:: Parameters that are fundamental. +* Position Parameters:: The position of the frame on the screen. +* Size Parameters:: Frame's size. +* Layout Parameters:: Size of parts of the frame, and + enabling or disabling some parts. +* Buffer Parameters:: Which buffers have been or should be shown. +* Management Parameters:: Communicating with the window manager. +* Cursor Parameters:: Controlling the cursor appearance. +* Color Parameters:: Colors of various parts of the frame. +@end menu + +@node Basic Parameters +@subsubsection Basic Parameters + + These frame parameters give the most basic information about the +frame. @code{title} and @code{name} are meaningful on all terminals. @table @code @item display @@ -325,6 +343,11 @@ The display on which to open this frame. It should be a string of the form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the @code{DISPLAY} environment variable. +@item display-type +This parameter describes the range of possible colors that can be used +in this frame. Its value is @code{color}, @code{grayscale} or +@code{mono}. + @item title If a frame has a non-@code{nil} title, it appears in the window system's border for the frame, and also in the mode line of windows in that frame @@ -342,7 +365,15 @@ you don't specify a name, Emacs sets the frame name automatically If you specify the frame name explicitly when you create the frame, the name is also used (instead of the name of the Emacs executable) when looking up X resources for the frame. +@end table +@node Position Parameters +@subsubsection Position Parameters + + Position parameters' values are normally measured in pixels, but on +text-only terminals they count characters or lines instead. + +@table @code @item left The screen position of the left edge, in pixels, with respect to the left edge of the screen. The value may be a positive number @var{pos}, @@ -397,7 +428,15 @@ When you call @code{make-frame}, you should specify a non-@code{nil} value for this parameter if the values of the @code{left} and @code{top} parameters represent the user's stated preference; otherwise, use @code{nil}. +@end table + +@node Size Parameters +@subsubsection Size Parameters + Size parameters' values are normally measured in pixels, but on +text-only terminals they count characters or lines instead. + +@table @code @item height The height of the frame contents, in characters. (To get the height in pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) @@ -417,14 +456,76 @@ The value @code{fullwidth} specifies that width shall be the size of the screen. The value @code{fullheight} specifies that height shall be the size of the screen. The value @code{fullboth} specifies that both the width and the height shall be set to the size of the screen. +@end table -@item window-id -The number of the window-system window used by the frame -to contain the actual Emacs windows. +@node Layout Parameters +@subsubsection Layout Parameters -@item outer-window-id -The number of the outermost window-system window used for the whole frame. + These frame parameters enable or disable various parts of the +frame, or control their sizes. +@table @code +@item border-width +The width in pixels of the window border. + +@item internal-border-width +The distance in pixels between text and border. + +@item vertical-scroll-bars +Whether the frame has scroll bars for vertical scrolling, and which side +of the frame they should be on. The possible values are @code{left}, +@code{right}, and @code{nil} for no scroll bars. + +@ignore +@item horizontal-scroll-bars +Whether the frame has scroll bars for horizontal scrolling +(non-@code{nil} means yes). Horizontal scroll bars are not currently +implemented. +@end ignore + +@item scroll-bar-width +The width of vertical scroll bars, in pixels, or @code{nil} meaning to +use the default width. + +@item left-fringe +@itemx right-fringe +The default width of the left and right fringes of windows in this +frame (@pxref{Fringes}). If either of these is zero, that effectively +removes the corresponding fringe. A value of @code{nil} stands for +the standard fringe width, which is the width needed to display the +fringe bitmaps. + +The combined fringe widths must add up to an integral number of +columns, so the actual default fringe widths for the frame may be +larger than the specified values. The extra width needed to reach an +acceptable total is distributed evenly between the left and right +fringe. However, you can force one fringe or the other to a precise +width by specifying that width as a negative integer. If both widths are +negative, only the left fringe gets the specified width. + +@item menu-bar-lines +The number of lines to allocate at the top of the frame for a menu +bar. The default is 1. A value of @code{nil} means don't display a +menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one +menu bar line; they treat larger values as 1.) + +@item tool-bar-lines +The number of lines to use for the tool bar. A value of @code{nil} +means don't display a tool bar. (GTK allows at most one tool bar line; +it treats larger values as 1.) + +@item line-spacing +Additional space to leave below each text line, in pixels (a positive +integer). @xref{Line Height}, for more information. +@end table + +@node Buffer Parameters +@subsubsection Buffer Parameters + + These frame parameters, meaningful on all kinds of terminals, deal +with which buffers have been, or should, be displayed in the frame. + +@table @code @item minibuffer Whether this frame has its own minibuffer. The value @code{t} means yes, @code{nil} means no, @code{only} means this frame is just a @@ -443,26 +544,28 @@ considers that buffer. A list of buffers that have been selected in this frame, ordered most-recently-selected first. +@item unsplittable +If non-@code{nil}, this frame's window is never split automatically. +@end table + +@node Management Parameters +@subsubsection Window Management Parameters + + These frame parameters, meaningful only on window system displays, +interact with the window manager. + +@table @code +@item visibility +The state of visibility of the frame. There are three possibilities: +@code{nil} for invisible, @code{t} for visible, and @code{icon} for +iconified. @xref{Visibility of Frames}. + @item auto-raise Whether selecting the frame raises it (non-@code{nil} means yes). @item auto-lower Whether deselecting the frame lowers it (non-@code{nil} means yes). -@item vertical-scroll-bars -Whether the frame has scroll bars for vertical scrolling, and which side -of the frame they should be on. The possible values are @code{left}, -@code{right}, and @code{nil} for no scroll bars. - -@item horizontal-scroll-bars -Whether the frame has scroll bars for horizontal scrolling -(non-@code{nil} means yes). (Horizontal scroll bars are not currently -implemented.) - -@item scroll-bar-width -The width of the vertical scroll bar, in pixels, -or @code{nil} meaning to use the default width. - @item icon-type The type of icon to use for this frame when it is iconified. If the value is a string, that specifies a file containing a bitmap to use. @@ -473,29 +576,35 @@ picture of a gnu); @code{nil} specifies a text icon. The name to use in the icon for this frame, when and if the icon appears. If this is @code{nil}, the frame's title is used. -@item background-mode -This parameter is either @code{dark} or @code{light}, according -to whether the background color is a light one or a dark one. +@item window-id +The number of the window-system window used by the frame +to contain the actual Emacs windows. -@item tty-color-mode -@cindex standard colors for character terminals -This parameter overrides the terminal's color support as given by the -system's terminal capabilities database in that this parameter's value -specifies the color mode to use in terminal frames. The value can be -either a symbol or a number. A number specifies the number of colors -to use (and, indirectly, what commands to issue to produce each -color). For example, @code{(tty-color-mode . 8)} forces Emacs to use -the ANSI escape sequences for 8 standard text colors; and a value of --1 means Emacs should turn off color support. If the parameter's -value is a symbol, that symbol is looked up in the alist -@code{tty-color-mode-alist}, and if found, the associated number is -used as the color support mode. +@item outer-window-id +The number of the outermost window-system window used for the whole frame. -@item display-type -This parameter describes the range of possible colors that can be used -in this frame. Its value is @code{color}, @code{grayscale} or -@code{mono}. +@item wait-for-wm +If non-@code{nil}, tell Xt to wait for the window manager to confirm +geometry changes. Some window managers, including versions of Fvwm2 +and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to +prevent hanging with those window managers. + +@ignore +@item parent-id +@c ??? Not yet working. +The X window number of the window that should be the parent of this one. +Specifying this lets you create an Emacs window inside some other +application's window. (It is not certain this will be implemented; try +it and see if it works.) +@end ignore +@end table +@node Cursor Parameters +@subsubsection Cursor Parameters + + This frame parameter controls the way the cursor looks. + +@table @code @item cursor-type How to display the cursor. Legitimate values are: @@ -515,52 +624,51 @@ Display a horizontal bar. @item (hbar . @var{height}) Display a horizontal bar @var{height} pixels high. @end table +@end table @vindex cursor-type The buffer-local variable @code{cursor-type} overrides the value of the @code{cursor-type} frame parameter, but if it is @code{t}, that means to use the cursor specified for the frame. -@item border-width -The width in pixels of the window border. - -@item internal-border-width -The distance in pixels between text and border. - -@item left-fringe -@itemx right-fringe -The default width of the left and right fringes of windows in this -frame (@pxref{Fringes}). If either of these is zero, that effectively -removes the corresponding fringe. A value of @code{nil} stands for -the standard fringe width, which is the width needed to display the -fringe bitmaps. +@defvar blink-cursor-alist +This variable specifies how to blink the cursor. Each element has the +form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor +type equals @var{on-state} (comparing using @code{equal}), the +corresponding @var{off-state} specifies what the cursor looks like +when it blinks ``off''. Both @var{on-state} and @var{off-state} +should be suitable values for the @code{cursor-type} frame parameter. + +There are various defaults for how to blink each type of cursor, if +the type is not mentioned as an @var{on-state} here. Changes in this +variable do not take effect immediately, because the variable is +examined only when you specify the @code{cursor-type} parameter. +@end defvar -The combined fringe widths must add up to an integral number of -columns, so the actual default fringe widths for the frame may be -larger than the specified values. The extra width needed to reach an -acceptable total is distributed evenly between the left and right -fringe. However, you can force one fringe or the other to a precise -width by specifying that width as a negative integer. If both widths are -negative, only the left fringe gets the specified width. +@node Color Parameters +@subsubsection Color Parameters -@item unsplittable -If non-@code{nil}, this frame's window is never split automatically. + These frame parameters control the use of colors. -@item visibility -The state of visibility of the frame. There are three possibilities: -@code{nil} for invisible, @code{t} for visible, and @code{icon} for -iconified. @xref{Visibility of Frames}. +@table @code +@item background-mode +This parameter is either @code{dark} or @code{light}, according +to whether the background color is a light one or a dark one. -@item menu-bar-lines -The number of lines to allocate at the top of the frame for a menu -bar. The default is 1. A value of @code{nil} means don't display a -menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one -menu bar line; they treat larger values as 1.) +@item tty-color-mode +@cindex standard colors for character terminals +This parameter overrides the terminal's color support as given by the +system's terminal capabilities database in that this parameter's value +specifies the color mode to use in terminal frames. The value can be +either a symbol or a number. A number specifies the number of colors +to use (and, indirectly, what commands to issue to produce each +color). For example, @code{(tty-color-mode . 8)} specifies use of the +ANSI escape sequences for 8 standard text colors. A value of -1 turns +off color support. -@item tool-bar-lines -The number of lines to use for the tool bar. A value of @code{nil} -means don't display a tool bar. (GTK allows at most one tool bar line; -it treats larger values as 1.) +If the parameter's value is a symbol, it specifies a number through +the value of @code{tty-color-mode-alist}, and the associated number is +used instead. @item screen-gamma @cindex gamma correction @@ -580,40 +688,8 @@ If your monitor displays colors too light, you should specify a @code{screen-gamma} value smaller than 2.2. This requests correction that makes colors darker. A screen gamma value of 1.5 may give good results for LCD color displays. - -@item line-spacing -Additional space put below text lines, in pixels (a positive integer) - -@item wait-for-wm -If non-@code{nil}, tell Xt to wait for the window manager to confirm -geometry changes. Some window managers, including versions of Fvwm2 -and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to -prevent hanging with those window managers. - -@ignore -@item parent-id -@c ??? Not yet working. -The X window number of the window that should be the parent of this one. -Specifying this lets you create an Emacs window inside some other -application's window. (It is not certain this will be implemented; try -it and see if it works.) -@end ignore @end table -@defvar blink-cursor-alist -This variable specifies how to blink the cursor. Each element has the -form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor -type equals @var{on-state} (comparing using @code{equal}), Emacs uses -@var{off-state} to specify what the cursor looks like when it blinks -``off''. Both @var{on-state} and @var{off-state} should be suitable -values for the @code{cursor-type} frame parameter. - -There are various defaults for how to blink each type of cursor, -if the type is not mentioned as an @var{on-state} here. Changes -in this variable do not take effect immediately, because the variable -is examined only when you specify a cursor type for a frame. -@end defvar - These frame parameters are semi-obsolete in that they are automatically equivalent to particular face attributes of particular faces. @@ -750,6 +826,12 @@ The argument @var{pretend} has the same meaning as in screen, in Emacs versions that did not support multiple frames. They are semi-obsolete, but still work; they apply to the selected frame. +@node Geometry +@subsection Geometry + + Here's how to examine the data in an X-style window geometry +specification: + @defun x-parse-geometry geom @cindex geometry specification The function @code{x-parse-geometry} converts a standard X window @@ -1150,7 +1232,7 @@ they are currently being displayed or not, and this function returns @end defun The visibility status of a frame is also available as a frame -parameter. You can read or change it as such. @xref{Window Frame +parameter. You can read or change it as such. @xref{Management Parameters}. The user can iconify and deiconify frames with the window manager. @@ -1195,7 +1277,7 @@ that the minibuffer window is in. You can also enable auto-raise (raising automatically when a frame is selected) or auto-lower (lowering automatically when it is deselected) -for any frame using frame parameters. @xref{Window Frame Parameters}. +for any frame using frame parameters. @xref{Management Parameters}. @node Frame Configurations @section Frame Configurations @@ -1504,7 +1586,7 @@ is over mouse-sensitive text. These variables affect newly created frames. They do not normally affect existing frames; however, if you set the mouse color of a frame, that also updates its pointer shapes based on the current values of -these variables. @xref{Window Frame Parameters}. +these variables. @xref{Color Parameters}. The values you can use, to specify either of these pointer shapes, are defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos @@ -1744,7 +1826,7 @@ This function associates the color name @var{name} with color number @var{number} on the terminal. The optional argument @var{rgb}, if specified, is an rgb value, a list -of three numbers that specify what what the color actually looks like. +of three numbers that specify what the color actually looks like. If you do not specify @var{rgb}, then this color cannot be used by @code{tty-color-approximate} to approximate other colors, because Emacs will not know what it looks like. @@ -1822,7 +1904,7 @@ xterm.vt100.background: yellow @end example @noindent -in in your X resources file (whose name is usually @file{~/.Xdefaults} +in your X resources file (whose name is usually @file{~/.Xdefaults} or @file{~/.Xresources}). Then: @example diff --git a/lispref/functions.texi b/lispref/functions.texi index f58cad69bb7..17a96734b10 100644 --- a/lispref/functions.texi +++ b/lispref/functions.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/functions @node Functions, Macros, Variables, Top diff --git a/lispref/hash.texi b/lispref/hash.texi index b8ddd0ee6a4..7b4c8c67711 100644 --- a/lispref/hash.texi +++ b/lispref/hash.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2003 Free Software Foundation, Inc. +@c Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/hash @node Hash Tables, Symbols, Sequences Arrays Vectors, Top @@ -281,8 +281,8 @@ compared case-insensitively. (defun case-fold-string-hash (a) (sxhash (upcase a))) -(define-hash-table-test 'case-fold 'case-fold-string= - 'case-fold-string-hash)) +(define-hash-table-test 'case-fold + 'case-fold-string= 'case-fold-string-hash) (make-hash-table :test 'case-fold) @end example diff --git a/lispref/help.texi b/lispref/help.texi index 2dbea2038cc..c7c99fa8987 100644 --- a/lispref/help.texi +++ b/lispref/help.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/help @node Documentation, Files, Modes, Top diff --git a/lispref/hooks.texi b/lispref/hooks.texi index 1278589de53..11b2233dc0e 100644 --- a/lispref/hooks.texi +++ b/lispref/hooks.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2004, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/hooks @node Standard Hooks, Index, Standard Keymaps, Top diff --git a/lispref/internals.texi b/lispref/internals.texi index 5a83c82ff5f..e032f5a7ddf 100644 --- a/lispref/internals.texi +++ b/lispref/internals.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/internals @node GNU Emacs Internals, Standard Errors, Tips, Top @@ -368,6 +368,17 @@ until the subsequent garbage collection, at which time @code{garbage-collect} will set the threshold back to 10,000. @end defopt +@defopt gc-cons-percentage +The value of this variable specifies the amount of consing before a +garbage collection occurs, as a fraction of the current heap size. +This criterion and @code{gc-cons-threshold} apply in parallel, and +garbage collection occurs only when both criteria are satisfied. + +As the heap size increases, the time to perform a garbage collection +increases. Thus, it can be desirable to do them less frequently in +proportion. +@end defopt + The value returned by @code{garbage-collect} describes the amount of memory used by Lisp data, broken down by data type. By contrast, the function @code{memory-limit} provides information on the total amount of diff --git a/lispref/intro.texi b/lispref/intro.texi index bb264c81c46..01ffeb3321c 100644 --- a/lispref/intro.texi +++ b/lispref/intro.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/intro diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi index 895ca48109b..5509b35b799 100644 --- a/lispref/keymaps.texi +++ b/lispref/keymaps.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/keymaps @node Keymaps, Modes, Command Loop, Top @@ -2199,7 +2199,7 @@ were @code{nil}. @xref{Active Keymaps}. parameter must be greater than zero. Emacs uses just one line for the menu bar itself; if you specify more than one line, the other lines serve to separate the menu bar from the windows in the frame. We -recommend 1 or 2 as the value of @code{menu-bar-lines}. @xref{Window Frame +recommend 1 or 2 as the value of @code{menu-bar-lines}. @xref{Layout Parameters}. Here's an example of setting up a menu bar item: diff --git a/lispref/lists.texi b/lispref/lists.texi index 22edec42db2..422c977184c 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi @@ -1,8 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2003, 2004, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/lists @node Lists, Sequences Arrays Vectors, Strings and Characters, Top diff --git a/lispref/loading.texi b/lispref/loading.texi index 4049877e782..afef0e787a5 100644 --- a/lispref/loading.texi +++ b/lispref/loading.texi @@ -1,8 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2003, 2004, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/loading @node Loading, Byte Compilation, Customization, Top @@ -481,17 +480,22 @@ autoloading with a magic comment: Here's what that produces in @file{loaddefs.el}: @smallexample -(autoload 'doctor "doctor" "\ -Switch to *doctor* buffer and start giving psychotherapy." - t) +(autoload (quote doctor) "doctor" "\ +Switch to *doctor* buffer and start giving psychotherapy. + +\(fn)" t nil) @end smallexample @noindent +@cindex @code{fn} in function's documentation string The backslash and newline immediately following the double-quote are a convention used only in the preloaded uncompiled Lisp files such as @file{loaddefs.el}; they tell @code{make-docfile} to put the documentation string in the @file{etc/DOC} file. @xref{Building Emacs}. -See also the commentary in @file{lib-src/make-docfile.c}. +See also the commentary in @file{lib-src/make-docfile.c}. @samp{(fn)} +in the usage part of the documentation string is replaced with the +function's name when the various help functions (@pxref{Help +Functions}) display it. If you write a function definition with an unusual macro that is not one of the known and recognized function definition methods, use of an diff --git a/lispref/locals.texi b/lispref/locals.texi index 942baa9dd1b..57b17d3d41b 100644 --- a/lispref/locals.texi +++ b/lispref/locals.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/locals @node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top @@ -82,7 +83,7 @@ use, but we don't try to list them all here. @xref{Usual Display}. @item cursor-type -@xref{Window Frame Parameters}. +@xref{Cursor Parameters}. @item comment-column @xref{Comments,,, emacs, The GNU Emacs Manual}. diff --git a/lispref/macros.texi b/lispref/macros.texi index 0a1bf942c29..dc822352ab3 100644 --- a/lispref/macros.texi +++ b/lispref/macros.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2004 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/macros @node Macros, Customization, Functions, Top diff --git a/lispref/makefile.w32-in b/lispref/makefile.w32-in index 457f98c1104..038c05db7c3 100644 --- a/lispref/makefile.w32-in +++ b/lispref/makefile.w32-in @@ -1,7 +1,6 @@ # -*- Makefile -*- for the GNU Emacs Lisp Reference Manual. -# Copyright (C) 2003, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -99,7 +98,10 @@ srcs = \ .PHONY: clean # The info file is named `elisp'. + info: $(infodir)/elisp + +$(infodir)/dir: $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp $(infodir)/elisp: $(srcs) diff --git a/lispref/maps.texi b/lispref/maps.texi index 16c1f0bab9b..ef5984cc32f 100644 --- a/lispref/maps.texi +++ b/lispref/maps.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/maps @node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top diff --git a/lispref/markers.texi b/lispref/markers.texi index 4eb34ce13a0..d9f6d19a4b0 100644 --- a/lispref/markers.texi +++ b/lispref/markers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/markers @node Markers, Text, Positions, Top @@ -444,7 +444,7 @@ programming. So we do not describe it here. This function returns the current buffer's mark position as an integer. If Transient Mark mode is enabled, @code{mark-even-if-inactive} is -@code{nil} and and the mark is inactive, @code{mark} normally signals +@code{nil} and the mark is inactive, @code{mark} normally signals an error. However, if @var{force} is non-@code{nil}, then @code{mark} returns the mark position anyway---or @code{nil}, if the mark is not yet set for this buffer. diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi index a6153fdaca2..04443c493f3 100644 --- a/lispref/minibuf.texi +++ b/lispref/minibuf.texi @@ -1,8 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2001, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/minibuf @node Minibuffers, Command Loop, Read and Print, Top @@ -11,12 +10,13 @@ @cindex complex arguments @cindex minibuffer - A @dfn{minibuffer} is a special buffer that Emacs commands use to read -arguments more complicated than the single numeric prefix argument. -These arguments include file names, buffer names, and command names (as -in @kbd{M-x}). The minibuffer is displayed on the bottom line of the -frame, in the same place as the echo area, but only while it is in use -for reading an argument. + A @dfn{minibuffer} is a special buffer that Emacs commands use to +read arguments more complicated than the single numeric prefix +argument. These arguments include file names, buffer names, and +command names (as in @kbd{M-x}). The minibuffer is displayed on the +bottom line of the frame, in the same place as the echo area +(@pxref{The Echo Area}), but only while it is in use for reading an +argument. @menu * Intro to Minibuffers:: Basic information about minibuffers. @@ -29,6 +29,10 @@ for reading an argument. * Yes-or-No Queries:: Asking a question with a simple answer. * Multiple Queries:: Asking a series of similar questions. * Reading a Password:: Reading a password from the terminal. +* Minibuffer Commands:: Commands used as key bindings in minibuffers. +* Minibuffer Contents:: How such commands access the minibuffer text. +* Minibuffer Windows:: Operating on the special minibuffer windows. +* Recursive Mini:: Whether recursive entry to minibuffer is allowed. * Minibuffer Misc:: Various customization hooks and variables. @end menu @@ -79,7 +83,7 @@ recursive minibuffers, the innermost (or most recently entered) is the active minibuffer. We usually call this ``the'' minibuffer. You can permit or forbid recursive minibuffers by setting the variable @code{enable-recursive-minibuffers} or by putting properties of that -name on command symbols (@pxref{Minibuffer Misc}). +name on command symbols (@pxref{Recursive Mini}). Like other buffers, a minibuffer may use any of several local keymaps (@pxref{Keymaps}); these contain various exit commands and in some cases @@ -1694,11 +1698,11 @@ return if the user enters empty input. If @var{default} is @code{nil}, then @code{read-passwd} returns the null string in that case. @end defun -@node Minibuffer Misc -@section Minibuffer Miscellany +@node Minibuffer Commands +@section Minibuffer Commands - This section describes some basic functions and variables related to -minibuffers. + This section describes some commands meant for use in the +minibuffer. @deffn Command exit-minibuffer This command exits the active minibuffer. It is normally bound to @@ -1733,65 +1737,11 @@ This command replaces the minibuffer contents with the value of the regular expression). @end deffn -@defun minibuffer-prompt -This function returns the prompt string of the currently active -minibuffer. If no minibuffer is active, it returns @code{nil}. -@end defun - -@defun minibuffer-prompt-end -@tindex minibuffer-prompt-end -This function returns the current -position of the end of the minibuffer prompt, if a minibuffer is -current. Otherwise, it returns the minimum valid buffer position. -@end defun - -@defun minibuffer-contents -@tindex minibuffer-contents -This function returns the editable -contents of the minibuffer (that is, everything except the prompt) as -a string, if a minibuffer is current. Otherwise, it returns the -entire contents of the current buffer. -@end defun - -@defun minibuffer-contents-no-properties -@tindex minibuffer-contents-no-properties -This is like @code{minibuffer-contents}, except that it does not copy text -properties, just the characters themselves. @xref{Text Properties}. -@end defun - -@defun delete-minibuffer-contents -@tindex delete-minibuffer-contents -This function erases the editable -contents of the minibuffer (that is, everything except the prompt), if -a minibuffer is current. Otherwise, it erases the entire buffer. -@end defun - -@defun minibuffer-prompt-width -This function returns the current display-width of the minibuffer -prompt, if a minibuffer is current. Otherwise, it returns zero. -@end defun - -@defvar minibuffer-setup-hook -This is a normal hook that is run whenever the minibuffer is entered. -@xref{Hooks}. -@end defvar - -@defvar minibuffer-exit-hook -This is a normal hook that is run whenever the minibuffer is exited. -@xref{Hooks}. -@end defvar - -@defvar minibuffer-help-form -@anchor{Definition of minibuffer-help-form} -The current value of this variable is used to rebind @code{help-form} -locally inside the minibuffer (@pxref{Help Functions}). -@end defvar +@node Minibuffer Windows +@section Minibuffer Windows -@defun minibufferp &optional buffer-or-name -This function returns non-@code{nil} if @var{buffer-or-name} is a -minibuffer. If @var{buffer-or-name} is omitted, it tests the current -buffer. -@end defun + These functions access and select minibuffer windows +and test whether they are active. @defun active-minibuffer-window This function returns the currently active minibuffer window, or @@ -1832,20 +1782,53 @@ This function returns non-@code{nil} if @var{window}, assumed to be a minibuffer window, is currently active. @end defun -@defvar minibuffer-scroll-window -@anchor{Definition of minibuffer-scroll-window} -If the value of this variable is non-@code{nil}, it should be a window -object. When the function @code{scroll-other-window} is called in the -minibuffer, it scrolls this window. -@end defvar +@node Minibuffer Contents +@section Minibuffer Contents -@defun minibuffer-selected-window -This function returns the window which was selected when the -minibuffer was entered. If selected window is not a minibuffer -window, it returns @code{nil}. + These functions access the minibuffer prompt and contents. + +@defun minibuffer-prompt +This function returns the prompt string of the currently active +minibuffer. If no minibuffer is active, it returns @code{nil}. @end defun -Finally, some functions and variables deal with recursive minibuffers +@defun minibuffer-prompt-end +@tindex minibuffer-prompt-end +This function returns the current +position of the end of the minibuffer prompt, if a minibuffer is +current. Otherwise, it returns the minimum valid buffer position. +@end defun + +@defun minibuffer-prompt-width +This function returns the current display-width of the minibuffer +prompt, if a minibuffer is current. Otherwise, it returns zero. +@end defun + +@defun minibuffer-contents +@tindex minibuffer-contents +This function returns the editable +contents of the minibuffer (that is, everything except the prompt) as +a string, if a minibuffer is current. Otherwise, it returns the +entire contents of the current buffer. +@end defun + +@defun minibuffer-contents-no-properties +@tindex minibuffer-contents-no-properties +This is like @code{minibuffer-contents}, except that it does not copy text +properties, just the characters themselves. @xref{Text Properties}. +@end defun + +@defun delete-minibuffer-contents +@tindex delete-minibuffer-contents +This function erases the editable contents of the minibuffer (that is, +everything except the prompt), if a minibuffer is current. Otherwise, +it erases the entire current buffer. +@end defun + +@node Recursive Mini +@section Recursive Minibuffers + + These functions and variables deal with recursive minibuffers (@pxref{Recursive Editing}): @defun minibuffer-depth @@ -1875,6 +1858,50 @@ to @code{t} in the interactive declaration (@pxref{Using Interactive}). The minibuffer command @code{next-matching-history-element} (normally @kbd{M-s} in the minibuffer) does the latter. +@node Minibuffer Misc +@section Minibuffer Miscellany + +@defun minibufferp &optional buffer-or-name +This function returns non-@code{nil} if @var{buffer-or-name} is a +minibuffer. If @var{buffer-or-name} is omitted, it tests the current +buffer. +@end defun + +@defvar minibuffer-setup-hook +This is a normal hook that is run whenever the minibuffer is entered. +@xref{Hooks}. +@end defvar + +@defvar minibuffer-exit-hook +This is a normal hook that is run whenever the minibuffer is exited. +@xref{Hooks}. +@end defvar + +@defvar minibuffer-help-form +@anchor{Definition of minibuffer-help-form} +The current value of this variable is used to rebind @code{help-form} +locally inside the minibuffer (@pxref{Help Functions}). +@end defvar + +@defvar minibuffer-scroll-window +@anchor{Definition of minibuffer-scroll-window} +If the value of this variable is non-@code{nil}, it should be a window +object. When the function @code{scroll-other-window} is called in the +minibuffer, it scrolls this window. +@end defvar + +@defun minibuffer-selected-window +This function returns the window which was selected when the +minibuffer was entered. If selected window is not a minibuffer +window, it returns @code{nil}. +@end defun + +@defopt max-mini-window-height +This variable specifies the maximum height for resizing minibuffer +windows. If a float, it specifies a fraction of the height of the +frame. If an integer, it specifies a number of lines. +@end defopt + @defun minibuffer-message string This function displays @var{string} temporarily at the end of the minibuffer text, for two seconds, or until the next input event diff --git a/lispref/modes.texi b/lispref/modes.texi index ac13e30b90c..a391f27a80f 100644 --- a/lispref/modes.texi +++ b/lispref/modes.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, @c 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/modes @@ -869,9 +869,7 @@ command interpreter in a @samp{#!} line. Its value is an alist with elements of the form @code{(@var{interpreter} . @var{mode})}; for example, @code{("perl" . perl-mode)} is one element present by default. The element says to use mode @var{mode} if the file -specifies an interpreter which matches @var{interpreter}. The value -of @var{interpreter} is actually a regular expression. @xref{Regular -Expressions}. +specifies an interpreter which matches @var{interpreter}. @end defvar @defvar magic-mode-alist @@ -1373,7 +1371,8 @@ symbol). It defines a command named @var{mode} to toggle the minor mode, with @var{doc} as its documentation string. It also defines a variable named @var{mode}, which is set to @code{t} or @code{nil} by enabling or disabling the mode. The variable is initialized to -@var{init-value}. +@var{init-value}. Except in unusual circumstances (see below), this +value must be @code{nil}. The string @var{lighter} says what to display in the mode line when the mode is enabled; if it is @code{nil}, the mode is not displayed @@ -1415,7 +1414,7 @@ This is equivalent to specifying @var{lighter} positionally. This is equivalent to specifying @var{keymap} positionally. @end table -Any other keyword arguments are passed passed directly to the +Any other keyword arguments are passed directly to the @code{defcustom} generated for the variable @var{mode}. The command named @var{mode} first performs the standard actions such @@ -1424,6 +1423,14 @@ as setting the variable named @var{mode} and then executes the variable @code{@var{mode}-hook}. @end defmac + The initial value must be @code{nil} except in cases where (1) the +mode is preloaded in Emacs, or (2) it is painless to for loading to +enable the mode even though the user did not request it. For +instance, if the mode has no effect unless something else is enabled, +and will always be loaded by that time, enabling it by default is +harmless. But these are unusual circumstances. Normally, the +initial value must be @code{nil}. + @findex easy-mmode-define-minor-mode The name @code{easy-mmode-define-minor-mode} is an alias for this macro. @@ -1472,7 +1479,7 @@ When Hungry mode is enabled, the control delete key gobbles all preceding whitespace except the last. See the command \\[hungry-electric-delete]." ;; The initial value. - :initial-value nil + :init-value nil ;; The indicator for the mode line. :lighter " Hungry" ;; The minor mode bindings. @@ -1607,7 +1614,7 @@ value is a list, each element may be a list, a symbol, or a string. The mode line can display various faces, if the strings that control it have the @code{face} property. @xref{Properties in Mode}. In addition, the face @code{mode-line} is used as a default for the whole -mode line (@pxref{Standard Faces}). +mode line (@pxref{Standard Faces,,, emacs, The GNU Emacs Manual}). @table @code @cindex percent symbol in mode line @@ -1920,7 +1927,7 @@ function. @xref{Buffer File Name}. @item %F The title (only on a window system) or the name of the selected frame. -@xref{Window Frame Parameters}. +@xref{Basic Parameters}. @item %i The size of the accessible part of the current buffer; basically @@ -2760,7 +2767,7 @@ arguments, the beginning and end of the region. The default value is This variable specifies the number of extra lines to consider when refontifying the buffer after each text change. Font lock begins refontifying from that number of lines before the changed region. The -default is 1, but using a larger value can be useful for coping with +default is 0, but using a larger value can be useful for coping with multi-line patterns. @end defvar diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi index 9683156541d..2af367a0f85 100644 --- a/lispref/nonascii.texi +++ b/lispref/nonascii.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/characters @node Non-ASCII Characters, Searching and Matching, Text, Top diff --git a/lispref/numbers.texi b/lispref/numbers.texi index f7f88248ff1..db28a2850a6 100644 --- a/lispref/numbers.texi +++ b/lispref/numbers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/numbers @node Numbers, Strings and Characters, Lisp Data Types, Top diff --git a/lispref/objects.texi b/lispref/objects.texi index 4a693f186d6..99ef896c4b4 100644 --- a/lispref/objects.texi +++ b/lispref/objects.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/objects @node Lisp Data Types, Numbers, Introduction, Top diff --git a/lispref/os.texi b/lispref/os.texi index 7bc76799210..ac2350ac255 100644 --- a/lispref/os.texi +++ b/lispref/os.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/os @node System Interface, Antinews, Display, Top @@ -21,8 +21,10 @@ pertaining to the terminal and the screen. * System Environment:: Distinguish the name and kind of system. * User Identification:: Finding the name and user id of the user. * Time of Day:: Getting the current time. -* Time Conversion:: Converting a time from numeric form to a string, or - to calendrical data (or vice versa). +* Time Conversion:: Converting a time from numeric form + to calendrical data, and vice versa). +* Time Parsing:: Converting a time from numeric form to text + and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. * Timers:: Setting a timer to call a function at a certain time. @@ -117,7 +119,7 @@ mode or using a window system. @item It displays the initial echo area message, unless you have suppressed -that with @code{inhibit-startup-echo-area-message} or @samp{-Q}. +that with @code{inhibit-startup-echo-area-message}. @item It processes the action arguments from the command line. @@ -136,7 +138,7 @@ It runs @code{window-setup-hook}. @xref{Window Systems}. @item It displays copyleft, nonwarranty, and basic use information, provided the value of @code{inhibit-startup-message} is @code{nil}, you didn't -specify @samp{--no-splash} or @samp{-Q}, and the buffer is still empty. +specify @samp{--no-splash} or @samp{-Q}. @end enumerate @defopt inhibit-startup-message @@ -1071,22 +1073,102 @@ exact. Do not use this function if precise time stamps are required. @section Time Conversion These functions convert time values (lists of two or three integers) -to strings or to calendrical information. There is also a function to -convert calendrical information to a time value. You can get time -values from the functions @code{current-time} (@pxref{Time of Day}) and +to calendrical information and vice versa. You can get time values +from the functions @code{current-time} (@pxref{Time of Day}) and @code{file-attributes} (@pxref{Definition of file-attributes}). -Many operating systems are limited to time values that contain 32 bits + Many operating systems are limited to time values that contain 32 bits of information; these systems typically handle only the times from 1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. However, some operating systems have larger time values, and can represent times far in the past or future. -Time conversion functions always use the Gregorian calendar, even for -dates before the Gregorian calendar was introduced. Year numbers count -the number of years since the year 1 B.C., and do not skip zero as -traditional Gregorian years do; for example, the year number @minus{}37 -represents the Gregorian year 38 B.C@. + Time conversion functions always use the Gregorian calendar, even +for dates before the Gregorian calendar was introduced. Year numbers +count the number of years since the year 1 B.C., and do not skip zero +as traditional Gregorian years do; for example, the year number +@minus{}37 represents the Gregorian year 38 B.C@. + +@defun decode-time &optional time +This function converts a time value into calendrical information. If +you don't specify @var{time}, it decodes the current time. The return +value is a list of nine elements, as follows: + +@example +(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone}) +@end example + +Here is what the elements mean: + +@table @var +@item seconds +The number of seconds past the minute, as an integer between 0 and 59. +On some operating systems, this is 60 for leap seconds. +@item minutes +The number of minutes past the hour, as an integer between 0 and 59. +@item hour +The hour of the day, as an integer between 0 and 23. +@item day +The day of the month, as an integer between 1 and 31. +@item month +The month of the year, as an integer between 1 and 12. +@item year +The year, an integer typically greater than 1900. +@item dow +The day of week, as an integer between 0 and 6, where 0 stands for +Sunday. +@item dst +@code{t} if daylight savings time is effect, otherwise @code{nil}. +@item zone +An integer indicating the time zone, as the number of seconds east of +Greenwich. +@end table + +@strong{Common Lisp Note:} Common Lisp has different meanings for +@var{dow} and @var{zone}. +@end defun + +@defun encode-time seconds minutes hour day month year &optional zone +This function is the inverse of @code{decode-time}. It converts seven +items of calendrical data into a time value. For the meanings of the +arguments, see the table above under @code{decode-time}. + +Year numbers less than 100 are not treated specially. If you want them +to stand for years above 1900, or years above 2000, you must alter them +yourself before you call @code{encode-time}. + +The optional argument @var{zone} defaults to the current time zone and +its daylight savings time rules. If specified, it can be either a list +(as you would get from @code{current-time-zone}), a string as in the +@code{TZ} environment variable, @code{t} for Universal Time, or an +integer (as you would get from @code{decode-time}). The specified +zone is used without any further alteration for daylight savings time. + +If you pass more than seven arguments to @code{encode-time}, the first +six are used as @var{seconds} through @var{year}, the last argument is +used as @var{zone}, and the arguments in between are ignored. This +feature makes it possible to use the elements of a list returned by +@code{decode-time} as the arguments to @code{encode-time}, like this: + +@example +(apply 'encode-time (decode-time @dots{})) +@end example + +You can perform simple date arithmetic by using out-of-range values for +the @var{seconds}, @var{minutes}, @var{hour}, @var{day}, and @var{month} +arguments; for example, day 0 means the day preceding the given month. + +The operating system puts limits on the range of possible time values; +if you try to encode a time that is out of range, an error results. +For instance, years before 1970 do not work on some systems; +on others, years as early as 1901 do work. +@end defun + +@node Time Parsing +@section Parsing and Formatting Times + + These functions convert time values (lists of two or three integers) +to text in a string, and vice versa. @defun date-to-time string This function parses the time-string @var{string} and returns the @@ -1213,81 +1295,6 @@ seconds since the epoch, to a time value and returns that. To perform the inverse conversion, use @code{float-time}. @end defun -@defun decode-time &optional time -This function converts a time value into calendrical information. If -you don't specify @var{time}, it decodes the current time. The return -value is a list of nine elements, as follows: - -@example -(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone}) -@end example - -Here is what the elements mean: - -@table @var -@item seconds -The number of seconds past the minute, as an integer between 0 and 59. -On some operating systems, this is 60 for leap seconds. -@item minutes -The number of minutes past the hour, as an integer between 0 and 59. -@item hour -The hour of the day, as an integer between 0 and 23. -@item day -The day of the month, as an integer between 1 and 31. -@item month -The month of the year, as an integer between 1 and 12. -@item year -The year, an integer typically greater than 1900. -@item dow -The day of week, as an integer between 0 and 6, where 0 stands for -Sunday. -@item dst -@code{t} if daylight savings time is effect, otherwise @code{nil}. -@item zone -An integer indicating the time zone, as the number of seconds east of -Greenwich. -@end table - -@strong{Common Lisp Note:} Common Lisp has different meanings for -@var{dow} and @var{zone}. -@end defun - -@defun encode-time seconds minutes hour day month year &optional zone -This function is the inverse of @code{decode-time}. It converts seven -items of calendrical data into a time value. For the meanings of the -arguments, see the table above under @code{decode-time}. - -Year numbers less than 100 are not treated specially. If you want them -to stand for years above 1900, or years above 2000, you must alter them -yourself before you call @code{encode-time}. - -The optional argument @var{zone} defaults to the current time zone and -its daylight savings time rules. If specified, it can be either a list -(as you would get from @code{current-time-zone}), a string as in the -@code{TZ} environment variable, @code{t} for Universal Time, or an -integer (as you would get from @code{decode-time}). The specified -zone is used without any further alteration for daylight savings time. - -If you pass more than seven arguments to @code{encode-time}, the first -six are used as @var{seconds} through @var{year}, the last argument is -used as @var{zone}, and the arguments in between are ignored. This -feature makes it possible to use the elements of a list returned by -@code{decode-time} as the arguments to @code{encode-time}, like this: - -@example -(apply 'encode-time (decode-time @dots{})) -@end example - -You can perform simple date arithmetic by using out-of-range values for -the @var{seconds}, @var{minutes}, @var{hour}, @var{day}, and @var{month} -arguments; for example, day 0 means the day preceding the given month. - -The operating system puts limits on the range of possible time values; -if you try to encode a time that is out of range, an error results. -For instance, years before 1970 do not work on some systems; -on others, years as early as 1901 do work. -@end defun - @node Processor Run Time @section Processor Run time @@ -1721,7 +1728,7 @@ Note however that actual key bindings can have an effect on @code{key-translation-map}, even though they are overridden by it. Indeed, actual key bindings override @code{function-key-map} and thus may alter the key sequence that @code{key-translation-map} receives. -Clearly, it is better to avoid to avoid this type of situation. +Clearly, it is better to avoid this type of situation. The intent of @code{key-translation-map} is for users to map one character set to another, including ordinary characters normally bound diff --git a/lispref/positions.texi b/lispref/positions.texi index 3c1e642e6b4..cb249f526f1 100644 --- a/lispref/positions.texi +++ b/lispref/positions.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/positions @node Positions, Markers, Frames, Top @@ -636,7 +636,7 @@ the end of the accessible portion of the buffer, and pass @var{line} and When you use @code{compute-motion} for the minibuffer, you need to use @code{minibuffer-prompt-width} to get the horizontal position of the -beginning of the first screen line. @xref{Minibuffer Misc}. +beginning of the first screen line. @xref{Minibuffer Contents}. @end defun @node List Motion diff --git a/lispref/processes.texi b/lispref/processes.texi index f88b2c46159..afdeaa1d2a0 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/processes @node Processes, Display, Abbrevs, Top @@ -52,6 +52,7 @@ This function returns @code{t} if @var{object} is a process, * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. +* Misc Network:: Additional relevant functions for network connections. * Byte Packing:: Using bindat to pack and unpack binary data. @end menu @@ -1575,7 +1576,7 @@ subprocess. @xref{Process Information}. process, being stopped means not accepting new connections. (Up to 5 connection requests will be queued for when you resume the server; you can increase this limit, unless it is imposed by the operating -systems.) For a network stream connection, being stopped means not +system.) For a network stream connection, being stopped means not processing input (any arriving input waits until you resume the connection). For a datagram connection, some number of packets may be queued but input may be lost. You can use the function @@ -1716,6 +1717,20 @@ sets its remote peer address to @var{address}. @node Low-Level Network @section Low-Level Network Access + You can also create network connections by operating at a lower +level that that of @code{open-network-stream}, using +@code{make-network-process}. + +@menu +* Make Network:: Using @code{make-network-process}. +* Network Options:: Further control over network connections. +* Network Feature Testing:: Determining which network features work on + the machine you are using. +@end menu + +@node Make Network +@subsection @code{make-network-process} + The basic function for creating network connections and network servers is @code{make-network-process}. It can do either of those jobs, depending on the arguments you give it. @@ -1852,14 +1867,21 @@ happened. Initialize the process plist to @var{plist}. @end table -The following network options can be specified for the network -process. Except for @code{:reuseaddr}, you can set or modify these -options later using @code{set-network-process-option}. +The original argument list, modified with the actual connection +information, is available via the @code{process-contact} function. +@end defun + +@node Network Options +@subsection Network Options -For a server process, the options specified with + The following network options can be specified when you create a +network process. Except for @code{:reuseaddr}, you can also set or +modify these options later, using @code{set-network-process-option}. + + For a server process, the options specified with @code{make-network-process} are not inherited by the client connections, so you will need to set the necessary options for each -child connection as they are created. +child connection as it is created. @table @asis @item :bindtodevice @var{device-name} @@ -1914,13 +1936,8 @@ listening on that port. If @var{reuseaddr-flag} is @code{nil}, there may be a period of time after the last use of that port (by any process on the host), where it is not possible to make a new server on that port. - @end table -The original argument list, modified with the actual connection -information, is available via the @code{process-contact} function. -@end defun - @defun set-network-process-option process option value This function sets or modifies a network option for network process @var{process}. See @code{make-network-process} for details of options @@ -1930,44 +1947,8 @@ The current setting of an option is available via the @code{process-contact} function. @end defun -@defun network-interface-list -This function returns a list describing the network interfaces -of the machine you are using. The value is an alist whose -elements have the form @code{(@var{name} . @var{address})}. -@var{address} has the same form as the @var{local-address} -and @var{remote-address} arguments to @code{make-network-process}. -@end defun - -@defun network-interface-info ifname -This function returns information about the network interface named -@var{ifname}. The value is a list of the form -@code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}. - -@table @var -@item addr -The internet protocol address. -@item bcast -The broadcast address. -@item netmask -The network mask. -@item hwaddr -The layer 2 address (Ethernet MAC address, for instance). -@item flags -The current flags of the interface. -@end table -@end defun - -@defun format-network-address address &optional omit-port -This function converts the Lisp representation of a network address to -a string. For example, a five-element vector @code{[@var{a} @var{b} -@var{c} @var{d} @var{p}]} represents an IP address -@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}. -@code{format-network-address} converts that to the string -@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}. - -If @var{omit-port} is non-@code{nil}, the value does not include -the port number. -@end defun +@node Network Feature Testing +@subsection Testing Availability of Network Features To test for the availability of a given network feature, use @code{featurep} like this: @@ -2002,8 +1983,8 @@ Non-@code{nil} if the system can select the port for a server. (featurep 'make-network-process '@var{keyword}) @end example -Here are some of the option @var{keyword}s you can test in -this way. +@noindent +Here are some of the options you can test in this way. @table @code @item :bindtodevice @@ -2018,6 +1999,51 @@ That particular network option is supported by @code{make-network-process} and @code{set-network-process-option}. @end table +@node Misc Network +@section Misc Network Facilities + + These additional functions are useful for creating and operating +on network connections. + +@defun network-interface-list +This function returns a list describing the network interfaces +of the machine you are using. The value is an alist whose +elements have the form @code{(@var{name} . @var{address})}. +@var{address} has the same form as the @var{local-address} +and @var{remote-address} arguments to @code{make-network-process}. +@end defun + +@defun network-interface-info ifname +This function returns information about the network interface named +@var{ifname}. The value is a list of the form +@code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}. + +@table @var +@item addr +The internet protocol address. +@item bcast +The broadcast address. +@item netmask +The network mask. +@item hwaddr +The layer 2 address (Ethernet MAC address, for instance). +@item flags +The current flags of the interface. +@end table +@end defun + +@defun format-network-address address &optional omit-port +This function converts the Lisp representation of a network address to +a string. For example, a five-element vector @code{[@var{a} @var{b} +@var{c} @var{d} @var{p}]} represents an IP address +@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}. +@code{format-network-address} converts that to the string +@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}. + +If @var{omit-port} is non-@code{nil}, the value does not include +the port number. +@end defun + @node Byte Packing @section Packing and Unpacking Byte Arrays diff --git a/lispref/searching.texi b/lispref/searching.texi index cfb5a87d8ec..84de54984ae 100644 --- a/lispref/searching.texi +++ b/lispref/searching.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/searching @node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top @@ -16,13 +16,13 @@ portions of it. @menu * String Search:: Search for an exact match. +* Searching and Case:: Case-independent or case-significant searching. * Regular Expressions:: Describing classes of strings. * Regexp Search:: Searching for a match for a regexp. * POSIX Regexps:: Searching POSIX-style for the longest match. -* Search and Replace:: Internals of @code{query-replace}. * Match Data:: Finding out which part of the text matched, after a string or regexp search. -* Searching and Case:: Case-independent or case-significant searching. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... @end menu @@ -157,6 +157,53 @@ except that it searches backward and normally leaves point at the beginning of the match. @end deffn +@node Searching and Case +@section Searching and Case +@cindex searching and case + + By default, searches in Emacs ignore the case of the text they are +searching through; if you specify searching for @samp{FOO}, then +@samp{Foo} or @samp{foo} is also considered a match. This applies to +regular expressions, too; thus, @samp{[aB]} would match @samp{a} or +@samp{A} or @samp{b} or @samp{B}. + + If you do not want this feature, set the variable +@code{case-fold-search} to @code{nil}. Then all letters must match +exactly, including case. This is a buffer-local variable; altering the +variable affects only the current buffer. (@xref{Intro to +Buffer-Local}.) Alternatively, you may change the value of +@code{default-case-fold-search}, which is the default value of +@code{case-fold-search} for buffers that do not override it. + + Note that the user-level incremental search feature handles case +distinctions differently. When given a lower case letter, it looks for +a match of either case, but when given an upper case letter, it looks +for an upper case letter only. But this has nothing to do with the +searching functions used in Lisp code. + +@defopt case-replace +This variable determines whether the higher level replacement +functions should preserve case. If the variable is @code{nil}, that +means to use the replacement text verbatim. A non-@code{nil} value +means to convert the case of the replacement text according to the +text being replaced. + +This variable is used by passing it as an argument to the function +@code{replace-match}. @xref{Replacing Match}. +@end defopt + +@defopt case-fold-search +This buffer-local variable determines whether searches should ignore +case. If the variable is @code{nil} they do not ignore case; otherwise +they do ignore case. +@end defopt + +@defvar default-case-fold-search +The value of this variable is the default value for +@code{case-fold-search} in buffers that do not override it. This is the +same as @code{(default-value 'case-fold-search)}. +@end defvar + @node Regular Expressions @section Regular Expressions @cindex regular expression @@ -167,6 +214,16 @@ denotes a (possibly infinite) set of strings. Searching for matches for a regexp is a very powerful operation. This section explains how to write regexps; the following section says how to search for them. +@findex re-builder +@cindex authoring regular expressions + For convenient interactive development of regular expressions, you +can use the @kbd{M-x re-builder} command. It provides a convenient +interface for creating regular expressions, by giving immediate visual +feedback in a separate buffer. As you edit the regexp, all its +matches in the target buffer are highlighted. Each parenthesized +sub-expression of the regexp is shown in a distinct face, which makes +it easier to verify even very complex regexps. + @menu * Syntax of Regexps:: Rules for writing regular expressions. * Regexp Example:: Illustrates regular expression syntax. @@ -1060,212 +1117,15 @@ backtracking specified by the POSIX standard for regular expression matching. @end defun -@ignore -@deffn Command delete-matching-lines regexp -This function is identical to @code{delete-non-matching-lines}, save -that it deletes what @code{delete-non-matching-lines} keeps. - -In the example below, point is located on the first line of text. - -@example -@group ----------- Buffer: foo ---------- -We hold these truths -to be self-evident, -that all men are created -equal, and that they are ----------- Buffer: foo ---------- -@end group - -@group -(delete-matching-lines "the") - @result{} nil - ----------- Buffer: foo ---------- -to be self-evident, -that all men are created ----------- Buffer: foo ---------- -@end group -@end example -@end deffn - -@deffn Command flush-lines regexp -This function is the same as @code{delete-matching-lines}. -@end deffn - -@defun delete-non-matching-lines regexp -This function deletes all lines following point which don't -contain a match for the regular expression @var{regexp}. -@end defun - -@deffn Command keep-lines regexp -This function is the same as @code{delete-non-matching-lines}. -@end deffn - -@deffn Command how-many regexp -This function counts the number of matches for @var{regexp} there are in -the current buffer following point. It prints this number in -the echo area, returning the string printed. -@end deffn - -@deffn Command count-matches regexp -This function is a synonym of @code{how-many}. -@end deffn - -@deffn Command list-matching-lines regexp &optional nlines -This function is a synonym of @code{occur}. -Show all lines following point containing a match for @var{regexp}. -Display each line with @var{nlines} lines before and after, -or @code{-}@var{nlines} before if @var{nlines} is negative. -@var{nlines} defaults to @code{list-matching-lines-default-context-lines}. -Interactively it is the prefix arg. - -The lines are shown in a buffer named @samp{*Occur*}. -It serves as a menu to find any of the occurrences in this buffer. -@kbd{C-h m} (@code{describe-mode}) in that buffer gives help. -@end deffn - -@defopt list-matching-lines-default-context-lines -Default value is 0. -Default number of context lines to include around a @code{list-matching-lines} -match. A negative number means to include that many lines before the match. -A positive number means to include that many lines both before and after. -@end defopt -@end ignore - -@node Search and Replace -@section Search and Replace -@cindex replacement - -@defun perform-replace from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end -This function is the guts of @code{query-replace} and related -commands. It searches for occurrences of @var{from-string} in the -text between positions @var{start} and @var{end} and replaces some or -all of them. If @var{start} is @code{nil} (or omitted), point is used -instead, and the end of the buffer's accessible portion is used for -@var{end}. - -If @var{query-flag} is @code{nil}, it replaces all -occurrences; otherwise, it asks the user what to do about each one. - -If @var{regexp-flag} is non-@code{nil}, then @var{from-string} is -considered a regular expression; otherwise, it must match literally. If -@var{delimited-flag} is non-@code{nil}, then only replacements -surrounded by word boundaries are considered. - -The argument @var{replacements} specifies what to replace occurrences -with. If it is a string, that string is used. It can also be a list of -strings, to be used in cyclic order. - -If @var{replacements} is a cons cell, @code{(@var{function} -. @var{data})}, this means to call @var{function} after each match to -get the replacement text. This function is called with two arguments: -@var{data}, and the number of replacements already made. - -If @var{repeat-count} is non-@code{nil}, it should be an integer. Then -it specifies how many times to use each of the strings in the -@var{replacements} list before advancing cyclically to the next one. - -If @var{from-string} contains upper-case letters, then -@code{perform-replace} binds @code{case-fold-search} to @code{nil}, and -it uses the @code{replacements} without altering the case of them. - -Normally, the keymap @code{query-replace-map} defines the possible user -responses for queries. The argument @var{map}, if non-@code{nil}, is a -keymap to use instead of @code{query-replace-map}. - -@strong{Usage note:} Do not use this function in your own programs -unless you want to do something very similar to what -@code{query-replace} does, including setting the mark and possibly -querying the user. For most purposes a simple loop like, for -instance: - -@example -(while (re-search-forward "foo[ \t]+bar" nil t) - (replace-match "foobar")) -@end example - -@noindent -is preferable. It runs faster and avoids side effects, such as -setting the mark. @xref{Replacing Match,, Replacing the Text that -Matched}, for a description of @code{replace-match}. -@end defun - -@defvar query-replace-map -This variable holds a special keymap that defines the valid user -responses for @code{query-replace} and related functions, as well as -@code{y-or-n-p} and @code{map-y-or-n-p}. It is unusual in two ways: - -@itemize @bullet -@item -The ``key bindings'' are not commands, just symbols that are meaningful -to the functions that use this map. - -@item -Prefix keys are not supported; each key binding must be for a -single-event key sequence. This is because the functions don't use -@code{read-key-sequence} to get the input; instead, they read a single -event and look it up ``by hand.'' -@end itemize -@end defvar - -Here are the meaningful ``bindings'' for @code{query-replace-map}. -Several of them are meaningful only for @code{query-replace} and -friends. - -@table @code -@item act -Do take the action being considered---in other words, ``yes.'' - -@item skip -Do not take action for this question---in other words, ``no.'' - -@item exit -Answer this question ``no,'' and give up on the entire series of -questions, assuming that the answers will be ``no.'' - -@item act-and-exit -Answer this question ``yes,'' and give up on the entire series of -questions, assuming that subsequent answers will be ``no.'' - -@item act-and-show -Answer this question ``yes,'' but show the results---don't advance yet -to the next question. - -@item automatic -Answer this question and all subsequent questions in the series with -``yes,'' without further user interaction. - -@item backup -Move back to the previous place that a question was asked about. - -@item edit -Enter a recursive edit to deal with this question---instead of any -other action that would normally be taken. - -@item delete-and-edit -Delete the text being considered, then enter a recursive edit to replace -it. - -@item recenter -Redisplay and center the window, then ask the same question again. - -@item quit -Perform a quit right away. Only @code{y-or-n-p} and related functions -use this answer. - -@item help -Display some help, then ask again. -@end table - @node Match Data @section The Match Data @cindex match data Emacs keeps track of the start and end positions of the segments of -text found during a search. This means, for example, that you can -search for a complex pattern, such as a date in an Rmail message, and -then extract parts of the match under control of the pattern. +text found during a search; this is called the @dfn{match data}. +Thanks to the match data, you can search for a complex pattern, such +as a date in a mail message, and then extract parts of the match under +control of the pattern. Because the match data normally describe the most recent search only, you must be careful not to do another search inadvertently between the @@ -1284,8 +1144,8 @@ match data around it, to prevent it from being overwritten. @node Replacing Match @subsection Replacing the Text that Matched - This function replaces the text matched by the last search with -@var{replacement}. + This function replaces all or part of the text matched by the last +search. It works by means of the match data. @cindex case in replacements @defun replace-match replacement &optional fixedcase literal string subexp @@ -1632,53 +1492,156 @@ associated with it still exists. @end smallexample @end ignore -@node Searching and Case -@section Searching and Case -@cindex searching and case +@node Search and Replace +@section Search and Replace +@cindex replacement - By default, searches in Emacs ignore the case of the text they are -searching through; if you specify searching for @samp{FOO}, then -@samp{Foo} or @samp{foo} is also considered a match. This applies to -regular expressions, too; thus, @samp{[aB]} would match @samp{a} or -@samp{A} or @samp{b} or @samp{B}. + If you want to find all matches for a regexp in part of the buffer, +and replace them, the best way is to write an explicit loop using +@code{re-search-forward} and @code{replace-match}, like this: - If you do not want this feature, set the variable -@code{case-fold-search} to @code{nil}. Then all letters must match -exactly, including case. This is a buffer-local variable; altering the -variable affects only the current buffer. (@xref{Intro to -Buffer-Local}.) Alternatively, you may change the value of -@code{default-case-fold-search}, which is the default value of -@code{case-fold-search} for buffers that do not override it. +@example +(while (re-search-forward "foo[ \t]+bar" nil t) + (replace-match "foobar")) +@end example - Note that the user-level incremental search feature handles case -distinctions differently. When given a lower case letter, it looks for -a match of either case, but when given an upper case letter, it looks -for an upper case letter only. But this has nothing to do with the -searching functions used in Lisp code. +@noindent +@xref{Replacing Match,, Replacing the Text that Matched}, for a +description of @code{replace-match}. + + However, replacing matches in a string is more complex, especially +if you want to do it efficiently. So Emacs provides a function to do +this. + +@defun replace-regexp-in-string regexp rep string &optional fixedcase literal subexp start +This function copies @var{string} and searches it for matches for +@var{regexp}, and replaces them with @var{rep}. It returns the +modified copy. If @var{start} is non-@code{nil}, the search for +matches starts at that index in @var{string}, so matches starting +before that index are not changed. + +This function uses @code{replace-match} to do the replacement, and it +passes the optional arguments @var{fixedcase}, @var{literal} and +@var{subexp} along to @code{replace-match}. + +Instead of a string, @var{rep} can be a function. In that case, +@code{replace-regexp-in-string} calls @var{rep} for each match, +passing the text of the match as its sole argument. It collects the +value @var{rep} returns and passes that to @code{replace-match} as the +replacement string. The match-data at this point are the result +of matching @var{regexp} against a substring of @var{string}. +@end defun -@defopt case-replace -This variable determines whether the higher level replacement -functions should preserve case. If the variable is @code{nil}, that -means to use the replacement text verbatim. A non-@code{nil} value -means to convert the case of the replacement text according to the -text being replaced. + If you want to write a command along the lines of @code{query-replace}, +you can use @code{perform-replace} to do the work. -This variable is used by passing it as an argument to the function -@code{replace-match}. @xref{Replacing Match}. -@end defopt +@defun perform-replace from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end +This function is the guts of @code{query-replace} and related +commands. It searches for occurrences of @var{from-string} in the +text between positions @var{start} and @var{end} and replaces some or +all of them. If @var{start} is @code{nil} (or omitted), point is used +instead, and the end of the buffer's accessible portion is used for +@var{end}. -@defopt case-fold-search -This buffer-local variable determines whether searches should ignore -case. If the variable is @code{nil} they do not ignore case; otherwise -they do ignore case. -@end defopt +If @var{query-flag} is @code{nil}, it replaces all +occurrences; otherwise, it asks the user what to do about each one. -@defvar default-case-fold-search -The value of this variable is the default value for -@code{case-fold-search} in buffers that do not override it. This is the -same as @code{(default-value 'case-fold-search)}. +If @var{regexp-flag} is non-@code{nil}, then @var{from-string} is +considered a regular expression; otherwise, it must match literally. If +@var{delimited-flag} is non-@code{nil}, then only replacements +surrounded by word boundaries are considered. + +The argument @var{replacements} specifies what to replace occurrences +with. If it is a string, that string is used. It can also be a list of +strings, to be used in cyclic order. + +If @var{replacements} is a cons cell, @code{(@var{function} +. @var{data})}, this means to call @var{function} after each match to +get the replacement text. This function is called with two arguments: +@var{data}, and the number of replacements already made. + +If @var{repeat-count} is non-@code{nil}, it should be an integer. Then +it specifies how many times to use each of the strings in the +@var{replacements} list before advancing cyclically to the next one. + +If @var{from-string} contains upper-case letters, then +@code{perform-replace} binds @code{case-fold-search} to @code{nil}, and +it uses the @code{replacements} without altering the case of them. + +Normally, the keymap @code{query-replace-map} defines the possible +user responses for queries. The argument @var{map}, if +non-@code{nil}, specifies a keymap to use instead of +@code{query-replace-map}. +@end defun + +@defvar query-replace-map +This variable holds a special keymap that defines the valid user +responses for @code{perform-replace} and the commands that use it, as +well as @code{y-or-n-p} and @code{map-y-or-n-p}. This map is unusual +in two ways: + +@itemize @bullet +@item +The ``key bindings'' are not commands, just symbols that are meaningful +to the functions that use this map. + +@item +Prefix keys are not supported; each key binding must be for a +single-event key sequence. This is because the functions don't use +@code{read-key-sequence} to get the input; instead, they read a single +event and look it up ``by hand.'' +@end itemize @end defvar +Here are the meaningful ``bindings'' for @code{query-replace-map}. +Several of them are meaningful only for @code{query-replace} and +friends. + +@table @code +@item act +Do take the action being considered---in other words, ``yes.'' + +@item skip +Do not take action for this question---in other words, ``no.'' + +@item exit +Answer this question ``no,'' and give up on the entire series of +questions, assuming that the answers will be ``no.'' + +@item act-and-exit +Answer this question ``yes,'' and give up on the entire series of +questions, assuming that subsequent answers will be ``no.'' + +@item act-and-show +Answer this question ``yes,'' but show the results---don't advance yet +to the next question. + +@item automatic +Answer this question and all subsequent questions in the series with +``yes,'' without further user interaction. + +@item backup +Move back to the previous place that a question was asked about. + +@item edit +Enter a recursive edit to deal with this question---instead of any +other action that would normally be taken. + +@item delete-and-edit +Delete the text being considered, then enter a recursive edit to replace +it. + +@item recenter +Redisplay and center the window, then ask the same question again. + +@item quit +Perform a quit right away. Only @code{y-or-n-p} and related functions +use this answer. + +@item help +Display some help, then ask again. +@end table + @node Standard Regexps @section Standard Regular Expressions Used in Editing @cindex regexps used standardly in editing diff --git a/lispref/sequences.texi b/lispref/sequences.texi index 982c9ffeadd..eade483bda3 100644 --- a/lispref/sequences.texi +++ b/lispref/sequences.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/sequences @node Sequences Arrays Vectors, Hash Tables, Lists, Top @@ -252,7 +252,7 @@ The length of the array is fixed once you create it; you cannot change the length of an existing array. @item -for purposes of evaluation, the array is a constant---in other words, +For purposes of evaluation, the array is a constant---in other words, it evaluates to itself. @item diff --git a/lispref/streams.texi b/lispref/streams.texi index 09f8695cd25..b5a18e27d01 100644 --- a/lispref/streams.texi +++ b/lispref/streams.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/streams @node Read and Print, Minibuffers, Debugging, Top diff --git a/lispref/strings.texi b/lispref/strings.texi index d0504684f82..18c516041d6 100644 --- a/lispref/strings.texi +++ b/lispref/strings.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/strings @node Strings and Characters, Lists, Numbers, Top diff --git a/lispref/symbols.texi b/lispref/symbols.texi index 9f59ad1f02d..9e4b482cfa0 100644 --- a/lispref/symbols.texi +++ b/lispref/symbols.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/symbols @node Symbols, Evaluation, Hash Tables, Top diff --git a/lispref/syntax.texi b/lispref/syntax.texi index e582b52a2c8..5cde2badabd 100644 --- a/lispref/syntax.texi +++ b/lispref/syntax.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/syntax @node Syntax Tables, Abbrevs, Searching and Matching, Top diff --git a/lispref/text.texi b/lispref/text.texi index 5b9b4259a1c..14a9dc9d5c6 100644 --- a/lispref/text.texi +++ b/lispref/text.texi @@ -1,8 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2000, 2001, 2004, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/text @node Text, Non-ASCII Characters, Markers, Top @@ -192,12 +191,11 @@ This is the contents of buffer foo @group (buffer-substring 1 10) -@result{} "This is t" + @result{} "This is t" @end group @group (buffer-substring (point-max) 10) -@result{} "he contents of buffer foo -" + @result{} "he contents of buffer foo\n" @end group @end example @end defun @@ -258,8 +256,7 @@ This is the contents of buffer foo ---------- Buffer: foo ---------- (buffer-string) - @result{} "This is the contents of buffer foo -" + @result{} "This is the contents of buffer foo\n" @end group @end example @end defun @@ -398,8 +395,8 @@ overlay. @defun insert-char character count &optional inherit This function inserts @var{count} instances of @var{character} into the -current buffer before point. The argument @var{count} should be a -number, and @var{character} must be a character. The value is @code{nil}. +current buffer before point. The argument @var{count} should be an +integer, and @var{character} must be a character. The value is @code{nil}. This function does not convert unibyte character codes 128 through 255 to multibyte characters, not even if the current buffer is a multibyte diff --git a/lispref/tindex.pl b/lispref/tindex.pl index f3372bf21ee..68931bc9ed6 100755 --- a/lispref/tindex.pl +++ b/lispref/tindex.pl @@ -1,6 +1,6 @@ #! /usr/bin/perl -# Copyright (C) 2000 Free Software Foundation, Inc. +# Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/lispref/tips.texi b/lispref/tips.texi index 6e309155876..46eb887dce8 100644 --- a/lispref/tips.texi +++ b/lispref/tips.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/tips @node Tips, GNU Emacs Internals, GPL, Top @@ -23,7 +23,10 @@ all. @menu * Coding Conventions:: Conventions for clean and robust programs. +* Key Binding Conventions:: Which keys should be bound by which programs. +* Programming Tips:: Making Emacs code fit smoothly in Emacs. * Compilation Tips:: Making compiled code run fast. +* Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. * Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. @@ -68,7 +71,7 @@ in your program. Call it @code{mylib-twiddle-files} in your program, and send mail to @samp{bug-gnu-emacs@@gnu.org} suggesting we add it to Emacs. If and when we do, we can change the name easily enough. -If one prefix is insufficient, your package may use two or three +If one prefix is insufficient, your package can use two or three alternative common prefixes, so long as they make sense. Separate the prefix from the rest of the symbol name with a hyphen, @@ -76,12 +79,10 @@ Separate the prefix from the rest of the symbol name with a hyphen, Lisp programs. @item -It is often useful to put a call to @code{provide} in each separate -library program, at least if there is more than one entry point to the -program. +Put a call to @code{provide} at the end of each separate Lisp file. @item -If a file requires certain other library programs to be loaded +If a file requires certain other Lisp programs to be loaded beforehand, then the comments at the beginning of the file should say so. Also, use @code{require} to make sure they are loaded. @@ -138,6 +139,118 @@ to store a list of functions (i.e., the variable is a hook), please follow the naming conventions for hooks. @xref{Hooks}. @item +@cindex unloading packages +If loading the file adds functions to hooks, define a function +@code{@var{feature}-unload-hook}, where @var{feature} is the name of +the feature the package provides, and make it undo any such changes. +Using @code{unload-feature} to unload the file will run this function. +@xref{Unloading}. + +@item +It is a bad idea to define aliases for the Emacs primitives. Normally +you should use the standard names instead. The case where an alias +may be useful is where it facilitates backwards compatibility or +portability. + +@item +If a package needs to define an alias or a new function for +compatibility with some other version of Emacs, name it with the package +prefix, not with the raw name with which it occurs in the other version. +Here is an example from Gnus, which provides many examples of such +compatibility issues. + +@example +(defalias 'gnus-point-at-bol + (if (fboundp 'point-at-bol) + 'point-at-bol + 'line-beginning-position)) +@end example + +@item +Redefining (or advising) an Emacs primitive is discouraged. It may do +the right thing for a particular program, but there is no telling what +other programs might break as a result. + +@item +If a file does replace any of the functions or library programs of +standard Emacs, prominent comments at the beginning of the file should +say which functions are replaced, and how the behavior of the +replacements differs from that of the originals. + +@item +Avoid using macros that define functions and variables with names that +are constructed. It is best for maintenance when the name of the +function or variable being defined is given explicitly in the source +code, as the second element of the list---as it is when you use +@code{defun}, @code{defalias}, @code{defvar} and @code{defcustom}. + +@item +Please keep the names of your Emacs Lisp source files to 13 characters +or less. This way, if the files are compiled, the compiled files' names +will be 14 characters or less, which is short enough to fit on all kinds +of Unix systems. + +@item +In some other systems there is a convention of choosing variable names +that begin and end with @samp{*}. We don't use that convention in Emacs +Lisp, so please don't use it in your programs. (Emacs uses such names +only for special-purpose buffers.) The users will find Emacs more +coherent if all libraries use the same conventions. + +@item +Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the +default indentation parameters. + +@item +Don't make a habit of putting close-parentheses on lines by themselves; +Lisp programmers find this disconcerting. Once in a while, when there +is a sequence of many consecutive close-parentheses, it may make sense +to split the sequence in one or two significant places. + +@item +Please put a copyright notice and copying permission notice on the +file if you distribute copies. Use a notice like this one: + +@smallexample +;; Copyright (C) @var{year} @var{name} + +;; 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 of +;; the License, 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, Inc., 51 Franklin Street, Fifth Floor, Boston, +;; MA 02110-1301 USA +@end smallexample + +If you have signed papers to assign the copyright to the Foundation, +then use @samp{Free Software Foundation, Inc.} as @var{name}. +Otherwise, use your name. See also @xref{Library Headers}. +@end itemize + +@node Key Binding Conventions +@section Key Binding Conventions + +@itemize @bullet +@item +@cindex mouse-2 +@cindex references, following +Special major modes used for read-only text should usually redefine +@kbd{mouse-2} and @key{RET} to trace some sort of reference in the text. +Modes such as Dired, Info, Compilation, and Occur redefine it in this +way. + +In addition, they should mark the text as a kind of ``link'' so that +@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}. + +@item @cindex reserved keys @cindex keys, reserved Please do not define @kbd{C-c @var{letter}} as a key in Lisp programs. @@ -199,67 +312,15 @@ is potentially meaningful, then you must not define @kbd{@key{ESC} after @key{ESC}. In these states, you should define @kbd{@key{ESC} @key{ESC} @key{ESC}} as the way to escape. Otherwise, define @kbd{@key{ESC} @key{ESC}} instead. +@end itemize -@item -@cindex mouse-2 -@cindex references, following -Special major modes used for read-only text should usually redefine -@kbd{mouse-2} and @key{RET} to trace some sort of reference in the text. -Modes such as Dired, Info, Compilation, and Occur redefine it in this -way. - -In addition, they should mark the text as a kind of ``link'' so that -@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}. - -@cindex unloading packages -If loading the file adds functions to hooks, define a function -@code{@var{feature}-unload-hook}, where @var{feature} is the name of -the feature the package provides, and make it undo any such changes. -Using @code{unload-feature} to unload the file will run this function. -@xref{Unloading}. - -@item -It is a bad idea to define aliases for the Emacs primitives. Use the -standard names instead. - -@item -If a package needs to define an alias or a new function for -compatibility with some other version of Emacs, name it with the package -prefix, not with the raw name with which it occurs in the other version. -Here is an example from Gnus, which provides many examples of such -compatibility issues. - -@example -(defalias 'gnus-point-at-bol - (if (fboundp 'point-at-bol) - 'point-at-bol - 'line-beginning-position)) -@end example - -@item -Redefining (or advising) an Emacs primitive is discouraged. It may do -the right thing for a particular program, but there is no telling what -other programs might break as a result. - -@item -If a file does replace any of the functions or library programs of -standard Emacs, prominent comments at the beginning of the file should -say which functions are replaced, and how the behavior of the -replacements differs from that of the originals. - -@item -Avoid using macros that define functions and variables with names that -are constructed. It is best for maintenance when the name of the -function or variable being defined is given explicitly in the source -code, as the second element of the list---as it is when you use -@code{defun}, @code{defalias}, @code{defvar} and @code{defcustom}. +@node Programming Tips +@section Emacs Programming Tips -@item -Please keep the names of your Emacs Lisp source files to 13 characters -or less. This way, if the files are compiled, the compiled files' names -will be 14 characters or less, which is short enough to fit on all kinds -of Unix systems. + Following these conventions will make your program fit better +into Emacs when it runs. +@itemize @bullet @item Don't use @code{next-line} or @code{previous-line} in programs; nearly always, @code{forward-line} is more convenient as well as more @@ -278,11 +339,14 @@ In particular, don't use any of these functions: @code{beginning-of-buffer}, @code{end-of-buffer} @item @code{replace-string}, @code{replace-regexp} +@item +@code{insert-file}, @code{insert-buffer} @end itemize -If you just want to move point, or replace a certain string, without any -of the other features intended for interactive users, you can replace -these functions with one or two lines of simple Lisp code. +If you just want to move point, or replace a certain string, or insert +a file or buffer's contents, without any of the other features +intended for interactive users, you can replace these functions with +one or two lines of simple Lisp code. @item Use lists rather than vectors, except when there is a particular reason @@ -294,7 +358,7 @@ accessed in random order (not searched front to back), provided there is no need to insert or delete elements (only lists allow that). @item -The recommended way to print a message in the echo area is with +The recommended way to show a message in the echo area is with the @code{message} function, not @code{princ}. @xref{The Echo Area}. @item @@ -358,80 +422,6 @@ command does: use a new local keymap that contains one command defined to switch back to the old local keymap. Or do what the @code{edit-options} command does: switch to another buffer and let the user switch back at will. @xref{Recursive Editing}. - -@item -In some other systems there is a convention of choosing variable names -that begin and end with @samp{*}. We don't use that convention in Emacs -Lisp, so please don't use it in your programs. (Emacs uses such names -only for special-purpose buffers.) The users will find Emacs more -coherent if all libraries use the same conventions. - -@item -Try to avoid compiler warnings about undefined free variables, by adding -dummy @code{defvar} definitions for these variables, like this: - -@example -(defvar foo) -@end example - -Such a definition has no effect except to tell the compiler -not to warn about uses of the variable @code{foo} in this file. - -@item -If you use many functions and variables from a certain file, you can -add a @code{require} for that package to avoid compilation warnings -for them. For instance, - -@example -(eval-when-compile - (require 'foo)) -@end example - -@item -If you bind a variable in one function, and use it or set it in -another function, the compiler warns about the latter function unless -the variable has a definition. But adding a definition would be -unclean if the variable has a short name, since Lisp packages should -not define short variable names. The right thing to do is to rename -this variable to start with the name prefix used for the other -functions and variables in your package. - -@item -Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the -default indentation parameters. - -@item -Don't make a habit of putting close-parentheses on lines by themselves; -Lisp programmers find this disconcerting. Once in a while, when there -is a sequence of many consecutive close-parentheses, it may make sense -to split the sequence in one or two significant places. - -@item -Please put a copyright notice on the file if you give copies to anyone. -Use a message like this one: - -@smallexample -;; Copyright (C) @var{year} @var{name} - -;; 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 of -;; the License, 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, Inc., 51 Franklin Street, Fifth Floor, Boston, -;; MA 02110-1301 USA -@end smallexample - -If you have signed papers to assign the copyright to the Foundation, -then use @samp{Free Software Foundation, Inc.} as @var{name}. -Otherwise, use your name. See also @xref{Library Headers}. @end itemize @node Compilation Tips @@ -495,6 +485,46 @@ a noticeable speedup in something slow enough that users care about the speed. @xref{Inline Functions}. @end itemize +@node Warning Tips +@section Tips for Avoiding Compiler Warnings + +@itemize @bullet +@item +Try to avoid compiler warnings about undefined free variables, by adding +dummy @code{defvar} definitions for these variables, like this: + +@example +(defvar foo) +@end example + +Such a definition has no effect except to tell the compiler +not to warn about uses of the variable @code{foo} in this file. + +@item +If you use many functions and variables from a certain file, you can +add a @code{require} for that package to avoid compilation warnings +for them. For instance, + +@example +(eval-when-compile + (require 'foo)) +@end example + +@item +If you bind a variable in one function, and use it or set it in +another function, the compiler warns about the latter function unless +the variable has a definition. But adding a definition would be +unclean if the variable has a short name, since Lisp packages should +not define short variable names. The right thing to do is to rename +this variable to start with the name prefix used for the other +functions and variables in your package. + +@item +The last resort for avoiding a warning, when you want to do something +that usually is a mistake but it's not a mistake in this one case, +is to put a call to @code{with-no-warnings} around it. +@end itemize + @node Documentation Tips @section Tips for Documentation Strings diff --git a/lispref/variables.texi b/lispref/variables.texi index 38fb929c16d..1f26b56db8f 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1,8 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, -@c 2000, 2003, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/variables @node Variables, Functions, Control Structures, Top diff --git a/lispref/vol1.texi b/lispref/vol1.texi index f772fc58be5..e0a1f02df8d 100644 --- a/lispref/vol1.texi +++ b/lispref/vol1.texi @@ -2,8 +2,8 @@ This file is obsolete, and no longer part of the Emacs Lisp Reference Manual. It is still present in CVS in case we ever want to use some of it again. @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. \input texinfo @c -*-texinfo-*- diff --git a/lispref/vol2.texi b/lispref/vol2.texi index a4c6d4ae795..40ec8c4904f 100644 --- a/lispref/vol2.texi +++ b/lispref/vol2.texi @@ -2,8 +2,8 @@ This file is obsolete, and no longer part of the Emacs Lisp Reference Manual. It is still present in CVS in case we ever want to use some of it again. @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. diff --git a/lispref/windows.texi b/lispref/windows.texi index ec372d98aa8..e204a7ce7d0 100644 --- a/lispref/windows.texi +++ b/lispref/windows.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/windows @node Windows, Frames, Buffers, Top @@ -267,7 +267,7 @@ Now the screen looks like this: @end smallexample Normally, Emacs indicates the border between two side-by-side windows -with a scroll bar (@pxref{Window Frame Parameters,Scroll Bars}) or @samp{|} +with a scroll bar (@pxref{Layout Parameters,Scroll Bars}) or @samp{|} characters. The display table can specify alternative border characters; see @ref{Display Tables}. @end deffn diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 17a92de5415..4ce570b989c 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,8 @@ +2005-07-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * lwlib-Xm.c (make_menu_in_widget): Disable drag and drop for + labels in menu bar. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c index e5d9ebbd0f3..40091e7b69b 100644 --- a/lwlib/lwlib-Xlw.c +++ b/lwlib/lwlib-Xlw.c @@ -1,6 +1,7 @@ /* The lwlib interface to "xlwmenu" menus. Copyright (C) 1992 Lucid, Inc. - Copyright (C) 1994, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1994, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of the Lucid Widget Library. diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c index 02a2f035aa3..32abbca7601 100644 --- a/lwlib/lwlib-Xm.c +++ b/lwlib/lwlib-Xm.c @@ -1,6 +1,6 @@ /* The lwlib interface to Motif widgets. - Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. Copyright (C) 1992 Lucid, Inc. This file is part of the Lucid Widget Library. @@ -524,6 +524,10 @@ make_menu_in_widget (instance, widget, val, keep_first_children) Widget* old_children; unsigned int old_num_children; + /* Disable drag and drop for labels in menu bar. */ + static char overrideTrans[] = "<Btn2Down>: Noop()"; + XtTranslations override = XtParseTranslationTable (overrideTrans); + old_children = XtCompositeChildren (widget, &old_num_children); /* Allocate the children array */ @@ -632,6 +636,8 @@ make_menu_in_widget (instance, widget, val, keep_first_children) XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback, (XtPointer)instance); + XtOverrideTranslations (button, override); + } children[child_index] = button; diff --git a/lwlib/lwlib-Xm.h b/lwlib/lwlib-Xm.h index c5a1fbe9155..d6069fad2d8 100644 --- a/lwlib/lwlib-Xm.h +++ b/lwlib/lwlib-Xm.h @@ -1,5 +1,6 @@ /* The lwlib interface to Motif widgets. - Copyright (C) 1994, 2000 Free Software Foundation, Inc. + Copyright (C) 1994, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Copyright (C) 1992 Lucid, Inc. This file is part of the Lucid Widget Library. diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c index 09d11c8b683..f1ee1b68e9b 100644 --- a/lwlib/xlwmenu.c +++ b/lwlib/xlwmenu.c @@ -1,6 +1,6 @@ /* Implements a lightweight menubar widget. Copyright (C) 1992 Lucid, Inc. - Copyright (C) 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the Lucid Widget Library. diff --git a/lwlib/xlwmenu.h b/lwlib/xlwmenu.h index e896617a69e..93703358ccb 100644 --- a/lwlib/xlwmenu.h +++ b/lwlib/xlwmenu.h @@ -1,5 +1,5 @@ /* Interface of a lightweight menubar widget. - Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the Lucid Widget Library. diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h index a25307b6ff3..ca2b7dc6a1a 100644 --- a/lwlib/xlwmenuP.h +++ b/lwlib/xlwmenuP.h @@ -1,5 +1,6 @@ /* Internals of a lightweight menubar widget. - Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of the Lucid Widget Library. diff --git a/m4/getopt.m4 b/m4/getopt.m4 new file mode 100644 index 00000000000..dbcc44d9095 --- /dev/null +++ b/m4/getopt.m4 @@ -0,0 +1,82 @@ +# getopt.m4 serial 10 +dnl Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# The getopt module assume you want GNU getopt, with getopt_long etc, +# rather than vanilla POSIX getopt. This means your your code should +# always include <getopt.h> for the getopt prototypes. + +AC_DEFUN([gl_GETOPT_SUBSTITUTE], +[ + AC_LIBOBJ([getopt]) + AC_LIBOBJ([getopt1]) + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT +]) + +AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], +[ + GETOPT_H=getopt.h + AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], + [Define to rpl_ if the getopt replacement functions and variables + should be used.]) + AC_SUBST([GETOPT_H]) +]) + +AC_DEFUN([gl_GETOPT_CHECK_HEADERS], +[ + GETOPT_H= + AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) + if test -z "$GETOPT_H"; then + AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) + fi + + dnl BSD getopt_long uses an incompatible method to reset option processing, + dnl and (as of 2004-10-15) mishandles optional option-arguments. + if test -z "$GETOPT_H"; then + AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) + fi + + dnl Solaris 10 getopt doesn't handle `+' as a leading character in an + dnl option string (as of 2005-05-05). + if test -z "$GETOPT_H"; then + AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([#include <getopt.h>], + [[ + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + return getopt (2, myargv, "+a") != '?'; + ]])], + [gl_cv_func_gnu_getopt=yes], + [gl_cv_func_gnu_getopt=no], + [dnl cross compiling - pessimistically guess based on decls + dnl Solaris 10 getopt doesn't handle `+' as a leading character in an + dnl option string (as of 2005-05-05). + AC_CHECK_DECL([getopt_clip], + [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes], + [#include <getopt.h>])])]) + if test "$gl_cv_func_gnu_getopt" = "no"; then + GETOPT_H=getopt.h + fi + fi +]) + +AC_DEFUN([gl_GETOPT_IFELSE], +[ + AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) + AS_IF([test -n "$GETOPT_H"], [$1], [$2]) +]) + +AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])]) + +# Prerequisites of lib/getopt*. +AC_DEFUN([gl_PREREQ_GETOPT], [:]) + +ifelse(dnl Do not change this comment + arch-tag: 6c64a021-551c-4a7f-9c63-cd7e1ce54707 +)dnl diff --git a/mac/ChangeLog b/mac/ChangeLog index a53b3cd89d4..acc89f75bd1 100644 --- a/mac/ChangeLog +++ b/mac/ChangeLog @@ -1,3 +1,8 @@ +2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * Emacs.app/Contents/Info.plist (mail-to, mail-selection): New + NSServices. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. @@ -759,7 +764,7 @@ ;; coding: iso-2022-7bit-unix ;; End: - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/mac/Emacs.app/Contents/Info.plist b/mac/Emacs.app/Contents/Info.plist index 7f79e8f6ab0..176dbf81276 100644 --- a/mac/Emacs.app/Contents/Info.plist +++ b/mac/Emacs.app/Contents/Info.plist @@ -75,6 +75,44 @@ <string>NSStringPboardType</string> </array> </dict> + <dict> + <key>NSKeyEquivalent</key> + <dict/> + <key>NSMenuItem</key> + <dict> + <key>default</key> + <string>Emacs/Send Selection</string> + </dict> + <key>NSMessage</key> + <string>mail-selection</string> + <key>NSPortName</key> + <string>Emacs</string> + <key>NSReturnTypes</key> + <array/> + <key>NSSendTypes</key> + <array> + <string>NSStringPboardType</string> + </array> + </dict> + <dict> + <key>NSKeyEquivalent</key> + <dict/> + <key>NSMenuItem</key> + <dict> + <key>default</key> + <string>Emacs/Send To</string> + </dict> + <key>NSMessage</key> + <string>mail-to</string> + <key>NSPortName</key> + <string>Emacs</string> + <key>NSReturnTypes</key> + <array/> + <key>NSSendTypes</key> + <array> + <string>NSStringPboardType</string> + </array> + </dict> </array> </dict> </plist> diff --git a/mac/INSTALL b/mac/INSTALL index 9dcf1324f7d..c8af7e5f484 100644 --- a/mac/INSTALL +++ b/mac/INSTALL @@ -1,6 +1,6 @@ * BUILDING EMACS ON MAC OS 8/9 AND MAC OS X -*- outline -*- -Copyright (c) 2001, 2002, 2004 Free Software Foundation, Inc. +Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that diff --git a/mac/README b/mac/README index 6a352e04af6..18e0942b365 100644 --- a/mac/README +++ b/mac/README @@ -1,6 +1,6 @@ Emacs for Mac OS 8/9 and Mac OS X -Copyright (c) 2001-4 Free Software Foundation, Inc. +Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that diff --git a/mac/cw6-mcp.xml b/mac/cw6-mcp.xml index 4d3ae5a8c22..54bfc4be7e9 100644 --- a/mac/cw6-mcp.xml +++ b/mac/cw6-mcp.xml @@ -1,5 +1,5 @@ <!-- -Copyright (C) 2001 Free Software Foundation, Inc. +Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/alloca.h b/mac/inc/alloca.h index d8494e17b66..216af944738 100644 --- a/mac/inc/alloca.h +++ b/mac/inc/alloca.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/config.h b/mac/inc/config.h index 6cd2f52bbba..2bac002cc7c 100644 --- a/mac/inc/config.h +++ b/mac/inc/config.h @@ -1,7 +1,8 @@ /* Handcrafted Emacs site configuration file for Mac OS 9. -*- C -*- */ /* GNU Emacs site configuration template file. -*- C -*- - Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/defs-cw6.h b/mac/inc/defs-cw6.h index e7b56444af1..5073d8059a7 100644 --- a/mac/inc/defs-cw6.h +++ b/mac/inc/defs-cw6.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/dirent.h b/mac/inc/dirent.h index c29e2a743f3..17bbb60b8f4 100644 --- a/mac/inc/dirent.h +++ b/mac/inc/dirent.h @@ -1,5 +1,6 @@ /* Replacement dirent.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/epaths.h b/mac/inc/epaths.h index dc9b8ed495f..c65f8589c6e 100644 --- a/mac/inc/epaths.h +++ b/mac/inc/epaths.h @@ -1,7 +1,8 @@ /* Hey Emacs, this is -*- C -*- code! */ /* Handcrafted epaths.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/grp.h b/mac/inc/grp.h index c9db51282c0..058bc657016 100755 --- a/mac/inc/grp.h +++ b/mac/inc/grp.h @@ -1,5 +1,5 @@ /* Replacement grp.h file for building GNU Emacs on the Macintosh. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/m-mac.h b/mac/inc/m-mac.h index 37ce77cea30..5e1f7db8112 100644 --- a/mac/inc/m-mac.h +++ b/mac/inc/m-mac.h @@ -1,5 +1,6 @@ /* Handcrafted m-mac.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/pwd.h b/mac/inc/pwd.h index ee77176e2af..df452f30d97 100644 --- a/mac/inc/pwd.h +++ b/mac/inc/pwd.h @@ -1,5 +1,6 @@ /* Replacement pwd.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/s-mac.h b/mac/inc/s-mac.h index ab8dbcdad89..d0f00ed6c13 100644 --- a/mac/inc/s-mac.h +++ b/mac/inc/s-mac.h @@ -1,5 +1,6 @@ /* Handcrafted s-mac.h file for building GNU Emacs on Mac OS 9. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/file.h b/mac/inc/sys/file.h index 1b0a0314539..f2686a5cc13 100644 --- a/mac/inc/sys/file.h +++ b/mac/inc/sys/file.h @@ -1,5 +1,6 @@ /* Replacement sys/file.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/ioctl.h b/mac/inc/sys/ioctl.h index 2682dd45438..bdf68b97357 100644 --- a/mac/inc/sys/ioctl.h +++ b/mac/inc/sys/ioctl.h @@ -1,5 +1,6 @@ /* Replacement sys/ioctl.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/param.h b/mac/inc/sys/param.h index b1669947bf9..8849489f7c6 100644 --- a/mac/inc/sys/param.h +++ b/mac/inc/sys/param.h @@ -1,5 +1,6 @@ /* Replacement sys/param.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/stat.h b/mac/inc/sys/stat.h index c1c9f4a7842..2b8f9bfce79 100644 --- a/mac/inc/sys/stat.h +++ b/mac/inc/sys/stat.h @@ -1,5 +1,6 @@ /* Replacement sys/stat.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/time.h b/mac/inc/sys/time.h index 76b5e3acbc4..b28a87e7d32 100644 --- a/mac/inc/sys/time.h +++ b/mac/inc/sys/time.h @@ -1,5 +1,5 @@ /* Replacement sys/time.h file for building GNU Emacs on the Macintosh. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/sys/types.h b/mac/inc/sys/types.h index 7055a7a5d0d..bdc4f6c5be2 100644 --- a/mac/inc/sys/types.h +++ b/mac/inc/sys/types.h @@ -1,5 +1,6 @@ /* Replacement sys/types.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/termio.h b/mac/inc/termio.h index be5b0243e2f..596d6342177 100644 --- a/mac/inc/termio.h +++ b/mac/inc/termio.h @@ -1,5 +1,6 @@ /* Replacement termio.h file for building GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/utime.h b/mac/inc/utime.h index dbe9544aca1..43281d40bfa 100644 --- a/mac/inc/utime.h +++ b/mac/inc/utime.h @@ -1,5 +1,5 @@ /* Replacement utime.h file for building GNU Emacs on the Macintosh. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/inc/utsname.h b/mac/inc/utsname.h index 27cfbe4dcaa..fc120b014d7 100644 --- a/mac/inc/utsname.h +++ b/mac/inc/utsname.h @@ -1,5 +1,5 @@ /* Replacement utsname.h file for building GNU Emacs on the Macintosh. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/make-package b/mac/make-package index e8bf66aaaa8..bef6aa9b2de 100755 --- a/mac/make-package +++ b/mac/make-package @@ -18,7 +18,7 @@ #### files inside /usr. This will replace the default version of #### emacs included with Mac OS X. -# Copyright (C) 2002 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/mac/makefile.MPW b/mac/makefile.MPW index 1a2c4385658..9d8eda541cf 100644 --- a/mac/makefile.MPW +++ b/mac/makefile.MPW @@ -1,5 +1,6 @@ # Make file for building GNU Emacs on the Macintosh. -# Copyright (C) 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # Author: Andrew Choi <akochoi@users.sourceforge.net> # diff --git a/mac/src/Emacs.r b/mac/src/Emacs.r index a36249a42a2..4984704f9fc 100644 --- a/mac/src/Emacs.r +++ b/mac/src/Emacs.r @@ -1,5 +1,6 @@ /* Resource definitions for GNU Emacs on the Macintosh. - Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/src/EmacsMPW.r b/mac/src/EmacsMPW.r index 133ba1a030e..16866de9574 100644 --- a/mac/src/EmacsMPW.r +++ b/mac/src/EmacsMPW.r @@ -1,7 +1,8 @@ /* Resource definitions for GNU Emacs on the Macintosh when building under MPW. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/mac/src/chdir.c b/mac/src/chdir.c index cf7ac5f0375..61d0b63a78e 100644 --- a/mac/src/chdir.c +++ b/mac/src/chdir.c @@ -1,5 +1,6 @@ /* Implementation of chdir on the Mac for use with make-docfile. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/make-dist b/make-dist index 9f2c4bb1280..3381ee770eb 100755 --- a/make-dist +++ b/make-dist @@ -6,7 +6,7 @@ #### be distributed. This means that if you add a file with an odd name, #### you should make sure that this script will include it. -# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2005 +# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2005 # Free Software Foundation, Inc. # # This file is part of GNU Emacs. @@ -323,7 +323,7 @@ for subdir in lisp site-lisp lispref lispintro \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ etc etc/e etc/images etc/images/gnus etc/images/smilies \ etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \ - info man msdos vms mac mac/inc mac/inc/sys \ + info man m4 msdos vms mac mac/inc mac/inc/sys \ mac/src mac/Emacs.app mac/Emacs.app/Contents \ mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \ mac/Emacs.app/Contents/Resources/English.lproj @@ -487,8 +487,13 @@ echo "Making links to \`lib-src'" done cd ../${tempdir}/lib-src rm -f Makefile.c + rm -f getopt.h rm -f =* TAGS) +echo "Making links to \`m4'" +(cd m4 + ln *.m4 ../${tempdir}/m4) + echo "Making links to \`nt'" (cd nt ln emacs.rc config.nt [a-z]*.c ../${tempdir}/nt diff --git a/man/ChangeLog b/man/ChangeLog index c8ace6938bb..ac992ec6922 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,254 @@ +2005-08-30 Carsten Dominik <dominik@science.uva.nl> + + * org.texi: Version 3.15. + +2005-08-29 Luc Teirlinck <teirllm@auburn.edu> + + * ses.texi: Combine all three indices into one. + Correct a few typos. + +2005-08-19 Katsumi Yamaoka <yamaoka@jpl.org> + + * emacs-mime.texi (time-date): Fix description of safe-date-to-time. + +2005-08-18 Katsumi Yamaoka <yamaoka@jpl.org> + + * emacs-mime.texi (Handles): Remove duplicate item. + (Encoding Customization): Fix the default value for + mm-coding-system-priorities. + (Charset Translation): Emacs doesn't use mm-mime-mule-charset-alist. + (Basic Functions): Fix reference. + +2005-08-09 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi (Charsets): Fj hierarchy uses iso-2022-jp. + +2005-08-22 Juri Linkov <juri@jurta.org> + + * display.texi (Standard Faces): Merge the text from + `(elisp)Standard Faces' into this node. + +2005-08-18 Luc Teirlinck <teirllm@auburn.edu> + + * emacs.texi (Top): Delete menu item for deleted node + Keyboard Translations. + +2005-08-18 Richard M. Stallman <rms@gnu.org> + + * faq.texi (Obtaining the FAQ): Delete refs to Lerner's email + and web site. + + * trouble.texi (Unasked-for Search): + Delete xref to Keyboard Translations. + + * glossary.texi (Glossary): Delete xref. + + * faq.texi (Swapping keys): Xref for normal-erase-is-backspace-mode, + not keyboard-translate. + + * custom.texi (Minor Modes): Say that the list here is not complete. + (Keyboard Translations): Node deleted. + (Disabling): Delete xref to it. + (Customization Groups): Fix Custom buffer example. + (Hooks): Mention remove-hooks. + +2005-08-17 Luc Teirlinck <teirllm@auburn.edu> + + * building.texi (GDB Graphical Interface): Improve filling of menu + item. + +2005-08-18 Nick Roberts <nickrob@snap.net.nz> + + * building.texi (GDB Graphical Interface): Use better node names. + +2005-08-14 Richard M. Stallman <rms@gnu.org> + + * text.texi (Sentences): Fix xref. + +2005-08-14 Juri Linkov <juri@jurta.org> + + * building.texi (Compilation, Grep Searching): Move grep command + headings from `Compilation' to `Grep Searching'. + + * dired.texi (Dired and Find): + * maintaining.texi (Tags Search): Replace grep xref to + `Compilation' node with `Grep Searching'. + + * files.texi (Comparing Files): Replace xref to `Compilation' with + `Compilation Mode'. + +2005-08-13 Alan Mackenzie <acm@muc.de> + + * search.texi (Non-ASCII Isearch): Correct a typo. + (Replacement Commands): Mention query-replace key binding. + +2005-08-11 Richard M. Stallman <rms@gnu.org> + + * programs.texi (Options for Comments): Fix xref. + + * search.texi (Regexp Backslash, Regexp Example): New nodes split + out of Regexps. + + * faq.texi (Using regular expressions): Fix xref. + +2005-08-09 Juri Linkov <juri@jurta.org> + + * building.texi (Compilation): Use `itemx' instead of `item'. + (Grep Searching): Simplify phrase. + + * display.texi (Standard Faces): Describe vertical-border on + window systems. + + * windows.texi (Split Window): Simplify phrase and mention + vertical-border face. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * files.texi (Comparing Files): Clarify compare-windows. + + * calendar.texi (Scroll Calendar): Document < and > in calendar. + +2005-08-09 Juri Linkov <juri@jurta.org> + + * info.texi (Help-P): Replace `Prev' with `Previous'. + (Help-M, Help-Xref): Add S-TAB. + (Help-FOO): Update `u' command. + (Help-Xref): Move info about Mouse-2 from `Help-Int'. + Update info about visibility of xref parts. + (Help-Int): Fix `m' command. Rename `Info-last' to + `Info-history-back'. Add `Info-history-forward'. + (Advanced): Fix `g*' and `M-n' commands. + (Info Search): Add `index-apropos' in stand-alone browser. + Add isearch commands. + (Emacs Info Variables): Remove `Info-fontify'. + Add `Info-mode-hook'. Update face names. + Add `Info-fontify-maximum-menu-size', + `Info-fontify-visited-nodes', `Info-isearch-search'. + +2005-08-07 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.0.50. + + * tramp.texi: Use @option{} consequently for method names. + (Inline methods, External transfer methods): Remove references to + Cygwin. + (Issues with Cygwin ssh): Explain trouble with Cygwin's ssh + implementation. + +2005-08-06 Eli Zaretskii <eliz@gnu.org> + + * mule.texi (Coding Systems): Rephrase the paragraph about + codepages: no need for "M-x codepage-setup" anymore, except on + MS-DOS. + + * msdog.texi (MS-DOS and MULE): Clarify that this section is for + the MS-DOS port only. + +2005-07-30 Eli Zaretskii <eliz@gnu.org> + + * makefile.w32-in (info): Don't run multi-install-info.bat. + ($(infodir)/dir): New target, produced by running + multi-install-info.bat. + +2005-07-27 Reiner Steib <Reiner.Steib@gmx.de> + + * gnus.texi (Startup Files): Fix name of gnus-site-init-file. + Mention that gnus-init-file is not read when Emacs is invoked with + --no-init-file or -q. + +2005-07-22 Eli Zaretskii <eliz@gnu.org> + + * files.texi (Quoted File Names): Add index entry. + +2005-07-19 Carsten Dominik <dominik@science.uva.nl> + + * org.texi: Version 3.14 + +2005-07-04 Carsten Dominik <dominik@science.uva.nl> + + * org.texi: Version 3.13 + +2005-07-19 Juri Linkov <juri@jurta.org> + + * files.texi (Comparing Files): Mention resync for `compare-windows'. + +2005-07-18 Juri Linkov <juri@jurta.org> + + * calc.texi (Time Zones, Logical Operations): + * cl.texi (Overview): + * custom.texi (Easy Customization): + * files.texi (Old Versions): + * frames.texi (Wheeled Mice): + * mule.texi (Specify Coding): + * org.texi (TODO types): + * sc.texi (Emacs 18 MUAs): + * speedbar.texi (Top): + * text.texi (Cell Justification): + * trouble.texi (After a Crash): + * url.texi (History): + * xresources.texi (GTK styles): + Delete duplicate duplicate words. + +2005-07-17 Richard M. Stallman <rms@gnu.org> + + * frames.texi (Creating Frames): Fix foreground color example. + + * custom.texi (Init Examples): Clean up text about conditionals. + +2005-07-16 Richard M. Stallman <rms@gnu.org> + + * mini.texi (Completion Commands): Fix command name for ?. + +2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change) + + * cl.texi (Type Predicates): Document `atom' type. + +2005-07-16 Eli Zaretskii <eliz@gnu.org> + + * display.texi (Standard Faces): Explain that customization of + `menu' face has no effect on w32 and with GTK. Add + cross-references. + + * cmdargs.texi (General Variables): Clarify the default location + of $HOME on w32 systems. + +2005-07-15 Jason Rumney <jasonr@gnu.org> + + * cmdargs.texi (General Variables): Default HOME on MS Windows has + changed. + +2005-07-08 Kenichi Handa <handa@m17n.org> + + * mule.texi (Recognize Coding): Recommend + revert-buffer-with-coding-system instead of revert-buffer. + +2005-07-07 Richard M. Stallman <rms@gnu.org> + + * anti.texi (Antinews): Mention mode-line-inverse-video. + + * files.texi (Saving): Minor correction about C-x C-w. + + * display.texi (Display Custom): Don't mention mode-line-inverse-video. + +2005-07-07 Luc Teirlinck <teirllm@auburn.edu> + + * search.texi (Isearch Scroll): Add example of using the + `isearch-scroll' property. + (Slow Isearch): Reference anchor for `baud-rate' instead of entire + `Display Custom' node. + (Regexp Replace): Put text that requires Emacs Lisp knowledge last + and de-emphasize it. + (Other Repeating Search): `occur' currently can not correctly + handle multiline matches. Correct, clarify and update description + of `flush-lines' and `keep-lines'. + + * display.texi (Display Custom): Add anchor for `baud-rate'. + +2005-07-07 Richard M. Stallman <rms@gnu.org> + + * gnu.texi: Update where to get GNU status; add refs for how to help. + Add footnotes 6 and 7. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. @@ -483,7 +734,7 @@ 2005-04-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> - * xresources.texi (Lucid Resources): Add fonSet resource. + * xresources.texi (Lucid Resources): Add fontSet resource. 2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org> @@ -3702,8 +3953,8 @@ ;; coding: iso-2022-7bit ;; End: - Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/man/Makefile.in b/man/Makefile.in index b8da48143bf..3cc88bf7b94 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -1,7 +1,7 @@ #### Makefile for the Emacs Manual and other documentation. -# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/man/abbrevs.texi b/man/abbrevs.texi index 9ecdac7044f..2272b2ba133 100644 --- a/man/abbrevs.texi +++ b/man/abbrevs.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Abbrevs, Picture, Maintaining, Top @chapter Abbrevs diff --git a/man/ack.texi b/man/ack.texi index 5d9b26be7c1..48a32072083 100644 --- a/man/ack.texi +++ b/man/ack.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1994,1995,1996,1997,1999,2000,2001 -@c Free Software Foundation, Inc. +@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @node Acknowledgments, Screen, Concept Index, Top diff --git a/man/ada-mode.texi b/man/ada-mode.texi index a74150fe75a..4a25440f991 100644 --- a/man/ada-mode.texi +++ b/man/ada-mode.texi @@ -8,7 +8,8 @@ @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @copying -Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/anti.texi b/man/anti.texi index c2ffaf7db72..ecff1f06a8c 100644 --- a/man/anti.texi +++ b/man/anti.texi @@ -1,5 +1,5 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2005 Free Software Foundation, Inc. +@c Copyright (C) 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Antinews, Mac OS, X Resources, Top @@ -18,7 +18,10 @@ the mode line, where they can be more easily seen. @item The mode line of the selected window is no longer displayed with a -special face. All mode lines are created equal. +special face. All mode lines are created equal. Meanwhile, you can +use the variable @code{mode-line-inverse-video} to control whether +mode lines are highlighted at all---@code{nil} means don't highlight +them. @item Clicking on a link with the left mouse button (@kbd{mouse-1}) will diff --git a/man/autotype.texi b/man/autotype.texi index 9d88443e891..f760a6f8aed 100644 --- a/man/autotype.texi +++ b/man/autotype.texi @@ -1,6 +1,7 @@ \input texinfo @c This is an annex of the Emacs manual. -@c Copyright (C) 1994, 1995, 2002 Free Software Foundation, Inc. +@c Copyright (C) 1994, 1995, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c Author: Daniel.Pfeiffer@Informatik.START.dbp.de, fax (+49 69) 7588-2389 @setfilename ../info/autotype @c @node Autotypist, Picture, Abbrevs, Top @@ -11,7 +12,8 @@ @c @cindex autotypist @copying -Copyright @copyright{} 1994, 1995, 1999 Free Software Foundation, Inc. +Copyright @copyright{} 1994, 1995, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/basic.texi b/man/basic.texi index d94e52b0112..2f5aa3162e1 100644 --- a/man/basic.texi +++ b/man/basic.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Basic, Minibuffer, Exiting, Top @chapter Basic Editing Commands diff --git a/man/buffers.texi b/man/buffers.texi index 694c7780854..9c572ca17c4 100644 --- a/man/buffers.texi +++ b/man/buffers.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Buffers, Windows, Files, Top @chapter Using Multiple Buffers diff --git a/man/building.texi b/man/building.texi index 69b56f467f5..30daa8def26 100644 --- a/man/building.texi +++ b/man/building.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Building, Maintaining, Programs, Top @chapter Compiling and Testing Programs @@ -48,16 +49,8 @@ the @samp{*compilation*} buffer. @item M-x recompile Invoke a compiler with the same command as in the last invocation of @kbd{M-x compile}. -@item M-x grep -Run @code{grep} asynchronously under Emacs, with matching lines -listed in the buffer named @samp{*grep*}. -@item M-x grep-find -@item M-x find-grep -Run @code{grep} via @code{find}, with user-specified arguments, and -collect output in the buffer named @samp{*grep*}. @item M-x kill-compilation -@itemx M-x kill-grep -Kill the running compilation or @code{grep} subprocess. +Kill the running compilation subprocess. @end table @findex compile @@ -323,13 +316,25 @@ Emacs. @xref{MS-DOS}. @node Grep Searching @section Searching with Grep under Emacs -@findex grep Just as you can run a compiler from Emacs and then visit the lines -where there were compilation errors, you can also run @code{grep} and +with compilation errors, you can also run @code{grep} and then visit the lines on which matches were found. This works by treating the matches reported by @code{grep} as if they were ``errors.'' - To do this, type @kbd{M-x grep}, then enter a command line that +@table @kbd +@item M-x grep +Run @code{grep} asynchronously under Emacs, with matching lines +listed in the buffer named @samp{*grep*}. +@item M-x grep-find +@itemx M-x find-grep +Run @code{grep} via @code{find}, with user-specified arguments, and +collect output in the buffer named @samp{*grep*}. +@item M-x kill-grep +Kill the running @code{grep} subprocess. +@end table + +@findex grep + To run @code{grep}, type @kbd{M-x grep}, then enter a command line that specifies how to run @code{grep}. Use the same arguments you would give @code{grep} when running it normally: a @code{grep}-style regexp (usually in single-quotes to quote the shell's special characters) @@ -768,16 +773,16 @@ session. If you have customized @code{gud-gdb-command-name} in that way, then you can use @kbd{M-x gdba} to invoke GDB in graphical mode. @menu -* Layout:: Control the number of displayed buffers. -* Breakpoints Buffer:: A breakpoint control panel. -* Stack Buffer:: Select a frame from the call stack. -* Watch Expressions:: Monitor variable values in the speedbar. -* Other Buffers:: Input/output, locals, registers, assembler, threads - and memory buffers. +* GDB User Interface Layout:: Control the number of displayed buffers. +* Breakpoints Buffer:: A breakpoint control panel. +* Stack Buffer:: Select a frame from the call stack. +* Watch Expressions:: Monitor variable values in the speedbar. +* Other GDB User Interface Buffers:: Input/output, locals, registers, + assembler, threads and memory buffers. @end menu -@node Layout -@subsubsection Layout +@node GDB User Interface Layout +@subsubsection GDB User Interface Layout @cindex GDB User Interface layout @findex gdb-many-windows @@ -912,7 +917,7 @@ FUNCTION::VARIABLE format to display variables in the speedbar. Since this does not work for variables defined in compound statements, the default value is @code{nil}. -@node Other Buffers +@node Other GDB User Interface Buffers @subsubsection Other Buffers @table @asis diff --git a/man/calc.texi b/man/calc.texi index a2dd6c7c7d8..a4e66de1a3d 100644 --- a/man/calc.texi +++ b/man/calc.texi @@ -83,7 +83,8 @@ @copying This file documents Calc, the GNU Emacs calculator. -Copyright (C) 1990, 1991, 2001, 2002, 2005 Free Software Foundation, Inc. +Copyright (C) 1990, 1991, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -118,8 +119,8 @@ Software Foundation raise funds for GNU development.'' @page @vskip 0pt plus 1filll -Copyright @copyright{} 1990, 1991, 2001, 2002, 2005 -Free Software Foundation, Inc. +Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @insertcopying @end titlepage @@ -4314,8 +4315,8 @@ even @kbd{V R x max @key{RET}} if you had preferred.) If your system has the GNUPLOT program, you can see graphs of your data and your straight line to see how well they match. (If you have -GNUPLOT 3.0, the following instructions will work regardless of the -kind of display you have. Some GNUPLOT 2.0, non-X-windows systems +GNUPLOT 3.0 or higher, the following instructions will work regardless +of the kind of display you have. Some GNUPLOT 2.0, non-X-windows systems may require additional steps to view the graphs.) Let's start by plotting the original data. Recall the ``@var{x}'' and ``@var{y}'' @@ -17574,7 +17575,7 @@ beginning of daylight savings time; converting a date/time form that falls in this hour results in a time value for the following hour, from 3 a.m.@: to 4 a.m. At the end of daylight savings time, the hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time -form that falls in in this hour results in a time value for the first +form that falls in this hour results in a time value for the first manifestation of that time (@emph{not} the one that occurs one hour later). If @code{math-daylight-savings-hook} is @code{nil}, then the @@ -25691,7 +25692,7 @@ stack. It also works elementwise on vectors. For example, if variable and the lefthand side is a number (as in @samp{2.34 = x}), then Calc keeps the lefthand side instead. Finally, this command works with assignments @samp{x := 2.34} as well as equations, always taking the -the righthand side, and for @samp{=>} (evaluates-to) operators, always +righthand side, and for @samp{=>} (evaluates-to) operators, always taking the lefthand side. @kindex a & @@ -28694,11 +28695,11 @@ treatment to @samp{=>}. @noindent The commands for graphing data begin with the @kbd{g} prefix key. Calc -uses GNUPLOT 2.0 or 3.0 to do graphics. These commands will only work +uses GNUPLOT 2.0 or later to do graphics. These commands will only work if GNUPLOT is available on your system. (While GNUPLOT sounds like a relative of GNU Emacs, it is actually completely unrelated. -However, it is free software and can be obtained from the Free -Software Foundation's machine @samp{prep.ai.mit.edu}.) +However, it is free software. It can be obtained from +@samp{http://www.gnuplot.info}.) @vindex calc-gnuplot-name If you have GNUPLOT installed on your system but Calc is unable to @@ -28707,7 +28708,7 @@ in your Calc init file or @file{.emacs}. You may also need to set some Lisp variables to show Calc how to run GNUPLOT on your system; these are described under @kbd{g D} and @kbd{g O} below. If you are using the X window system, Calc will configure GNUPLOT for you -automatically. If you have GNUPLOT 3.0 and you are not using X, +automatically. If you have GNUPLOT 3.0 or later and you are not using X, Calc will configure GNUPLOT to display graphs using simple character graphics that will work on any terminal. @@ -28826,7 +28827,7 @@ is the height of the point at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will be displayed from a certain default viewpoint; you can change this viewpoint by adding a @samp{set view} to the @samp{*Gnuplot Commands*} -buffer as described later. See the GNUPLOT 3.0 documentation for a +buffer as described later. See the GNUPLOT documentation for a description of the @samp{set view} command. Each point in the matrix will be displayed as a dot in the graph, @@ -30268,10 +30269,11 @@ Plain formulas are preceded and followed by @samp{%%%} signs by default. This notation has the advantage that the @samp{%} character begins a comment in @TeX{} and La@TeX{}, so if your formula is embedded in a @TeX{} or La@TeX{} document its plain version will be -invisible in the final printed copy. @xref{Customizing -Embedded Mode}, to see how to change the ``plain'' formula -delimiters, say to something that @dfn{eqn} or some other -formatter will treat as a comment. +invisible in the final printed copy. Certain major modes have different +delimiters to ensure that the ``plain'' version will be +in a comment for those modes, also. +See @ref{Customizing Embedded Mode} to see how to change the ``plain'' +formula delimiters. There are several notations which Calc's parser for ``big'' formatted formulas can't yet recognize. In particular, it can't @@ -30696,8 +30698,9 @@ formula are never used (except for global annotations, described below). The scan does not look for the leading @samp{% }, only for the -square brackets and the text they enclose. You can edit the mode -annotations to a style that works better in context if you wish. +square brackets and the text they enclose. In fact, the leading +characters are different for different major modes. You can edit the +mode annotations to a style that works better in context if you wish. @xref{Customizing Embedded Mode}, to see how to change the style that Calc uses when it generates the annotations. You can write mode annotations into the file yourself if you know the syntax; @@ -30797,14 +30800,11 @@ You can modify Embedded mode's behavior by setting various Lisp variables described here. These variables are customizable (@pxref{Customizable Variables}), or you can use @kbd{M-x set-variable} or @kbd{M-x edit-options} to adjust a variable on the fly. -(Another possibility would -be to use a file-local variable annotation at the end of the -file; @pxref{File Variables, , Local Variables in Files, emacs, the -Emacs manual}.) - -While none of these variables will be buffer-local by default, you -can make any of them local to any Embedded mode buffer. (Their -values in the @samp{*Calculator*} buffer are never used.) +(Another possibility would be to use a file-local variable annotation at +the end of the file; +@pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.) +Many of the variables given mentioned here can be set to depend on the +major mode of the editing buffer (@pxref{Customizable Variables}). @vindex calc-embedded-open-formula The @code{calc-embedded-open-formula} variable holds a regular @@ -30887,11 +30887,13 @@ begins a ``plain'' formula written in front of the formatted formula when @kbd{d p} mode is turned on. Note that this is an actual string, not a regular expression, because Calc must be able to write this string into a buffer as well as to recognize it. -The default string is @code{"%%% "} (note the trailing space). +The default string is @code{"%%% "} (note the trailing space), but may +be different for certain major modes. @vindex calc-embedded-close-plain The @code{calc-embedded-close-plain} variable is a string which -ends a ``plain'' formula. The default is @code{" %%%\n"}. Without +ends a ``plain'' formula. The default is @code{" %%%\n"}, but may be +different for different major modes. Without the trailing newline here, the first line of a Big mode formula that followed might be shifted over with respect to the other lines. @@ -30921,11 +30923,12 @@ not activate just anything surrounded by formula delimiters; after all, blank lines are considered formula delimiters by default! But if your language includes a delimiter which can only occur actually in front of a formula, you can take advantage of it here. -The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which -checks for @samp{%Embed} followed by any number of lines beginning -with @samp{%} and a space. This last is important to make Calc -consider mode annotations part of the pattern, so that the formula's -opening delimiter really is sure to follow the pattern. +The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, but may be +different for different major modes. +This pattern will check for @samp{%Embed} followed by any number of +lines beginning with @samp{%} and a space. This last is important to +make Calc consider mode annotations part of the pattern, so that the +formula's opening delimiter really is sure to follow the pattern. @vindex calc-embedded-open-mode The @code{calc-embedded-open-mode} variable is a string (not a @@ -30933,14 +30936,15 @@ regular expression) which should precede a mode annotation. Calc never scans for this string; Calc always looks for the annotation itself. But this is the string that is inserted before the opening bracket when Calc adds an annotation on its own. -The default is @code{"% "}. +The default is @code{"% "}, but may be different for different major +modes. @vindex calc-embedded-close-mode The @code{calc-embedded-close-mode} variable is a string which follows a mode annotation written by Calc. Its default value -is simply a newline, @code{"\n"}. If you change this, it is a -good idea still to end with a newline so that mode annotations -will appear on lines by themselves. +is simply a newline, @code{"\n"}, but may be different for different +major modes. If you change this, it is a good idea still to end with a +newline so that mode annotations will appear on lines by themselves. @node Programming, Customizable Variables, Embedded Mode, Top @chapter Programming @@ -34725,6 +34729,20 @@ which the window should use. Unlike @code{calc-window-hook}, this hook must @emph{not} switch into the new window. @end defvar +@defvar calc-embedded-mode-hook +This hook is called the first time that Embedded mode is entered. +@end defvar + +@defvar calc-embedded-new-buffer-hook +This hook is called each time that Embedded mode is entered in a +new buffer. +@end defvar + +@defvar calc-embedded-new-formula-hook +This hook is called each time that Embedded mode is enabled for a +new formula. +@end defvar + @defvar calc-edit-mode-hook This hook is called by @code{calc-edit} (and the other ``edit'' commands) when the temporary editing buffer is being created. @@ -34894,6 +34912,7 @@ The default value of @code{calc-language-alist} is @end defvar @defvar calc-embedded-announce-formula +@defvarx calc-embedded-announce-formula-alist See @ref{Customizing Embedded Mode}.@* The variable @code{calc-embedded-announce-formula} helps determine what formulas @kbd{M-# a} will activate in a buffer. It is a @@ -34905,10 +34924,33 @@ activated. (Calc also uses other patterns to find formulas, such as The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks for @samp{%Embed} followed by any number of lines beginning with @samp{%} and a space. + +The variable @code{calc-embedded-announce-formula-alist} is used to +set @code{calc-embedded-announce-formula} to different regular +expressions depending on the major mode of the editing buffer. +It consists of a list of pairs of the form @code{(@var{MAJOR-MODE} . +@var{REGEXP})}, and its default value is +@example + ((c++-mode . "//Embed\n\\(// .*\n\\)*") + (c-mode . "/\\*Embed\\*/\n\\(/\\* .*\\*/\n\\)*") + (f90-mode . "!Embed\n\\(! .*\n\\)*") + (fortran-mode . "C Embed\n\\(C .*\n\\)*") + (html-helper-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (html-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (nroff-mode . "\\\\\"Embed\n\\(\\\\\" .*\n\\)*") + (pascal-mode . "@{Embed@}\n\\(@{.*@}\n\\)*") + (sgml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (xml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*") + (texinfo-mode . "@@c Embed\n\\(@@c .*\n\\)*")) +@end example +Any major modes added to @code{calc-embedded-announce-formula-alist} +should also be added to @code{calc-embedded-open-close-plain-alist} +and @code{calc-embedded-open-close-mode-alist}. @end defvar @defvar calc-embedded-open-formula @defvarx calc-embedded-close-formula +@defvarx calc-embedded-open-close-formula-alist See @ref{Customizing Embedded Mode}.@* The variables @code{calc-embedded-open-formula} and @code{calc-embedded-open-formula} control the region that Calc will @@ -34933,10 +34975,20 @@ Lines beginning with @samp{.EQ} and @samp{.EN} (@dfn{eqn} delimiters); @item Lines containing a single @samp{%} or @samp{.\"} symbol and nothing else. @end enumerate + +The variable @code{calc-embedded-open-close-formula-alist} is used to +set @code{calc-embedded-open-formula} and +@code{calc-embedded-close-formula} to different regular +expressions depending on the major mode of the editing buffer. +It consists of a list of lists of the form +@code{(@var{MAJOR-MODE} @var{OPEN-FORMULA-REGEXP} +@var{CLOSE-FORMULA-REGEXP})}, and its default value is +@code{nil}. @end defvar @defvar calc-embedded-open-word @defvarx calc-embedded-close-word +@defvarx calc-embedded-open-close-word-alist See @ref{Customizing Embedded Mode}.@* The variables @code{calc-embedded-open-word} and @code{calc-embedded-close-word} control the region that Calc will @@ -34946,10 +34998,20 @@ regular expressions. The default values of @code{calc-embedded-open-word} and @code{calc-embedded-close-word} are @code{"^\\|[^-+0-9.eE]"} and @code{"$\\|[^-+0-9.eE]"} respectively. + +The variable @code{calc-embedded-open-close-word-alist} is used to +set @code{calc-embedded-open-word} and +@code{calc-embedded-close-word} to different regular +expressions depending on the major mode of the editing buffer. +It consists of a list of lists of the form +@code{(@var{MAJOR-MODE} @var{OPEN-WORD-REGEXP} +@var{CLOSE-WORD-REGEXP})}, and its default value is +@code{nil}. @end defvar @defvar calc-embedded-open-plain @defvarx calc-embedded-close-plain +@defvarx calc-embedded-open-close-plain-alist See @ref{Customizing Embedded Mode}.@* The variables @code{calc-embedded-open-plain} and @code{calc-embedded-open-plain} are used to delimit ``plain'' @@ -34962,10 +35024,35 @@ The default string for @code{calc-embedded-open-plain} is @code{calc-embedded-close-plain} is @code{" %%%\n"}, without the trailing newline here, the first line of a Big mode formula that followed might be shifted over with respect to the other lines. + +The variable @code{calc-embedded-open-close-plain-alist} is used to +set @code{calc-embedded-open-plain} and +@code{calc-embedded-close-plain} to different strings +depending on the major mode of the editing buffer. +It consists of a list of lists of the form +@code{(@var{MAJOR-MODE} @var{OPEN-PLAIN-STRING} +@var{CLOSE-PLAIN-STRING})}, and its default value is +@example + ((c++-mode "// %% " " %%\n") + (c-mode "/* %% " " %% */\n") + (f90-mode "! %% " " %%\n") + (fortran-mode "C %% " " %%\n") + (html-helper-mode "<!-- %% " " %% -->\n") + (html-mode "<!-- %% " " %% -->\n") + (nroff-mode "\\\" %% " " %%\n") + (pascal-mode "@{%% " " %%@}\n") + (sgml-mode "<!-- %% " " %% -->\n") + (xml-mode "<!-- %% " " %% -->\n") + (texinfo-mode "@@c %% " " %%\n")) +@end example +Any major modes added to @code{calc-embedded-open-close-plain-alist} +should also be added to @code{calc-embedded-announce-formula-alist} +and @code{calc-embedded-open-close-mode-alist}. @end defvar @defvar calc-embedded-open-new-formula @defvarx calc-embedded-close-new-formula +@defvarx calc-embedded-open-close-new-formula-alist See @ref{Customizing Embedded Mode}.@* The variables @code{calc-embedded-open-new-formula} and @code{calc-embedded-close-new-formula} are strings which are @@ -34980,10 +35067,20 @@ also @code{"\n\n"}. The final newline is omitted by @w{@kbd{M-# f}} if typed at the end of a line. (It follows that if @kbd{M-# f} is typed on a blank line, both a leading opening newline and a trailing closing newline are omitted.) + +The variable @code{calc-embedded-open-close-new-formula-alist} is used to +set @code{calc-embedded-open-new-formula} and +@code{calc-embedded-close-new-formula} to different strings +depending on the major mode of the editing buffer. +It consists of a list of lists of the form +@code{(@var{MAJOR-MODE} @var{OPEN-NEW-FORMULA-STRING} +@var{CLOSE-NEW-FORMULA-STRING})}, and its default value is +@code{nil}. @end defvar @defvar calc-embedded-open-mode @defvarx calc-embedded-close-mode +@defvarx calc-embedded-open-close-mode-alist See @ref{Customizing Embedded Mode}.@* The variables @code{calc-embedded-open-mode} and @code{calc-embedded-close-mode} are strings which Calc will place before @@ -34997,6 +35094,30 @@ and the default value of @code{calc-embedded-close-mode} is If you change the value of @code{calc-embedded-close-mode}, it is a good idea still to end with a newline so that mode annotations will appear on lines by themselves. + +The variable @code{calc-embedded-open-close-mode-alist} is used to +set @code{calc-embedded-open-mode} and +@code{calc-embedded-close-mode} to different strings +expressions depending on the major mode of the editing buffer. +It consists of a list of lists of the form +@code{(@var{MAJOR-MODE} @var{OPEN-MODE-STRING} +@var{CLOSE-MODE-STRING})}, and its default value is +@example + ((c++-mode "// " "\n") + (c-mode "/* " " */\n") + (f90-mode "! " "\n") + (fortran-mode "C " "\n") + (html-helper-mode "<!-- " " -->\n") + (html-mode "<!-- " " -->\n") + (nroff-mode "\\\" " "\n") + (pascal-mode "@{ " " @}\n") + (sgml-mode "<!-- " " -->\n") + (xml-mode "<!-- " " -->\n") + (texinfo-mode "@@c " "\n")) +@end example +Any major modes added to @code{calc-embedded-open-close-mode-alist} +should also be added to @code{calc-embedded-announce-formula-alist} +and @code{calc-embedded-open-close-plain-alist}. @end defvar @node Reporting Bugs, Summary, Customizable Variables, Top diff --git a/man/calendar.texi b/man/calendar.texi index 293905ca544..e5ddaa28e1b 100644 --- a/man/calendar.texi +++ b/man/calendar.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2005 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Calendar/Diary, Gnus, Dired, Top @chapter The Calendar and the Diary @@ -235,9 +235,9 @@ the months on it. Scrolling the calendar means moving the strip horizontally, so that new months become visible in the window. @table @kbd -@item C-x < +@item < Scroll calendar one month forward (@code{scroll-calendar-left}). -@item C-x > +@item > Scroll calendar one month backward (@code{scroll-calendar-right}). @item C-v @itemx @key{NEXT} @@ -249,15 +249,15 @@ Scroll calendar three months backward (@code{scroll-calendar-right-three-months}). @end table -@kindex C-x < @r{(Calendar mode)} +@kindex < @r{(Calendar mode)} @findex scroll-calendar-left -@kindex C-x > @r{(Calendar mode)} +@kindex > @r{(Calendar mode)} @findex scroll-calendar-right The most basic calendar scroll commands scroll by one month at a time. This means that there are two months of overlap between the -display before the command and the display after. @kbd{C-x <} scrolls +display before the command and the display after. @kbd{<} scrolls the calendar contents one month to the left; that is, it moves the -display forward in time. @kbd{C-x >} scrolls the contents to the +display forward in time. @kbd{>} scrolls the contents to the right, which moves backwards in time. @kindex C-v @r{(Calendar mode)} diff --git a/man/cc-mode.texi b/man/cc-mode.texi index b9113088d44..5f9164dbf34 100644 --- a/man/cc-mode.texi +++ b/man/cc-mode.texi @@ -67,7 +67,7 @@ This manual is for CC Mode in Emacs. Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003 Free Software Foundation, Inc. + 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/cl.texi b/man/cl.texi index c150e0d2b4d..8fc54ed02d8 100644 --- a/man/cl.texi +++ b/man/cl.texi @@ -5,7 +5,7 @@ @copying This file documents the GNU Emacs Common Lisp emulation package. -Copyright (C) 1993, 2002, 2005 Free Software Foundation, Inc. +Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -136,7 +136,7 @@ Lisp version of the function (e.g., @code{assoc*}). The package described here was written by Dave Gillespie, @file{daveg@@synaptics.com}. It is a total rewrite of the original 1986 @file{cl.el} package by Cesar Quiroz. Most features of the -the Quiroz package have been retained; any incompatibilities are +Quiroz package have been retained; any incompatibilities are noted in the descriptions below. Care has been taken in this version to ensure that each function is defined efficiently, concisely, and with minimal impact on the rest of the Emacs @@ -736,6 +736,11 @@ Thus @code{(typep @var{object} 'null)} is equivalent to @code{(null @var{object})}. @item +The type symbol @code{atom} represents all objects that are not cons +cells. Thus @code{(typep @var{object} 'atom)} is equivalent to +@code{(atom @var{object})}. + +@item The type symbol @code{real} is a synonym for @code{number}, and @code{fixnum} is a synonym for @code{integer}. diff --git a/man/cmdargs.texi b/man/cmdargs.texi index 5094a924cc7..dad7e61dbf2 100644 --- a/man/cmdargs.texi +++ b/man/cmdargs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, -@c 2001, 03, 04, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Emacs Invocation, X Resources, GNU Free Documentation License, Top @appendix Command Line Arguments for Emacs Invocation @@ -478,10 +478,15 @@ This variable defaults to @file{~/.bash_history} if you use Bash, to otherwise. @item HOME The location of the user's files in the directory tree; used for -expansion of file names starting with a tilde (@file{~}). On MS-DOS, it -defaults to the directory from which Emacs was started, with @samp{/bin} -removed from the end if it was present. On Windows, the default value -of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}. +expansion of file names starting with a tilde (@file{~}). On MS-DOS, +it defaults to the directory from which Emacs was started, with +@samp{/bin} removed from the end if it was present. On Windows, the +default value of @env{HOME} is the @file{Application Data} +subdirectory of the user profile directory (normally, this is +@file{C:/Documents and Settings/@var{username}/Application Data}, +where @var{username} is your user name), though for backwards +compatibility @file{C:/} will be used instead if a @file{.emacs} file +is found there. @item HOSTNAME The name of the machine that Emacs is running on. @item INCPATH diff --git a/man/commands.texi b/man/commands.texi index e0208473419..facc3d6f3a9 100644 --- a/man/commands.texi +++ b/man/commands.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Characters, Keys and Commands diff --git a/man/custom.texi b/man/custom.texi index ffded429c48..d531d92eb0f 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2004,2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Customization, Quitting, Amusements, Top @chapter Customization @@ -33,9 +33,6 @@ replay sequences of keys. you can control their functioning. * Key Bindings:: The keymaps say what command each key runs. By changing them, you can "redefine keys". -* Keyboard Translations:: If your keyboard passes an undesired code - for a key, you can tell Emacs to - substitute another code. * Syntax:: The syntax table controls how words and expressions are parsed. * Init File:: How to write common customizations in the @@ -78,16 +75,16 @@ directly turns Outline minor mode on and off. To check whether a given minor mode works this way, use @kbd{C-h v} to ask for documentation on the variable name. - These minor-mode variables provide a good way for Lisp programs to turn -minor modes on and off; they are also useful in a file's local variables -list. But please think twice before setting minor modes with a local -variables list, because most minor modes are a matter of user -preference---other users editing the same file might not want the same -minor modes you prefer. + These minor-mode variables provide a good way for Lisp programs to +turn minor modes on and off; they are also useful in a file's local +variables list (@pxref{File Variables}). But please think twice +before setting minor modes with a local variables list, because most +minor modes are a matter of user preference---other users editing the +same file might not want the same minor modes you prefer. - The buffer-local minor modes include Abbrev mode, Auto Fill mode, -Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents mode, -Outline minor mode, Overwrite mode, and Binary Overwrite mode. + The most useful buffer-local minor modes include Abbrev mode, Auto +Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents +mode, Outline minor mode, Overwrite mode, and Binary Overwrite mode. Abbrev mode allows you to define abbreviations that automatically expand as you type them. For example, @samp{amd} might expand to @samp{abbrev @@ -146,11 +143,11 @@ they overwrite other characters and can be overwritten by them. In Binary Overwrite mode, digits after @kbd{C-q} specify an octal character code, as usual. - The following minor modes normally apply to all buffers at once. -Since each is enabled or disabled by the value of a variable, you -@emph{can} set them differently for particular buffers, by explicitly -making the corresponding variables local in those buffers. -@xref{Locals}. + Here are some useful minor modes that normally apply to all buffers +at once. Since each is enabled or disabled by the value of a +variable, you @emph{can} set them differently for particular buffers, +by explicitly making the corresponding variables local in those +buffers. @xref{Locals}. Icomplete mode displays an indication of available completions when you are in the minibuffer and completion is active. @xref{Completion @@ -184,7 +181,7 @@ attributes (@pxref{Faces}). @findex customize @cindex customization buffer - You can browse interactively through the the user options and change + You can browse interactively through the user options and change some of them using @kbd{M-x customize}. This command creates a @dfn{customization buffer}, which offers commands to navigate through a logically organized structure of the Emacs user options; you can @@ -222,10 +219,6 @@ under it. It looks like this, in part: Customization of the One True Editor. See also [Manual]. -Confirm Kill Emacs: [Hide] [Value Menu] Don't confirm - [State]: this option is unchanged from its standard setting. -How to ask for confirmation when leaving Emacs. [More] - Editing group: [Go to Group] Basic text editing facilities. @@ -854,8 +847,9 @@ recently added hook functions are executed first. If you play with adding various different versions of a hook function by calling @code{add-hook} over and over, remember that all -the versions you added will remain in the hook variable together. -To clear them out, you can do @code{(setq @var{hook-variable} nil)}. +the versions you added will remain in the hook variable together. You +can clear out individual functions with @code{remove-hook}, or do +@code{(setq @var{hook-variable} nil)} to remove everything. @node Locals @subsection Local Variables @@ -1638,14 +1632,14 @@ word: Many keyboards have a ``numeric keypad'' on the right hand side. The numeric keys in the keypad double up as cursor motion keys, toggled by a key labelled @samp{Num Lock}. By default, Emacs -translates these keys to the corresponding keys in the main keyboard -(@pxref{Keyboard Translations}). For example, when @samp{Num Lock} is -on, the key labelled @samp{8} on the numeric keypad produces -@code{kp-8}, which is translated to @kbd{8}; when @samp{Num Lock} is -off, the same key produces @code{kp-up}, which is translated to -@key{UP}. If you rebind a key such as @kbd{8} or @key{UP}, it affects -the equivalent keypad key too. However, if you rebind a @samp{kp-} -key directly, that won't affect its non-keypad equivalent. +translates these keys to the corresponding keys in the main keyboard. +For example, when @samp{Num Lock} is on, the key labelled @samp{8} on +the numeric keypad produces @code{kp-8}, which is translated to +@kbd{8}; when @samp{Num Lock} is off, the same key produces +@code{kp-up}, which is translated to @key{UP}. If you rebind a key +such as @kbd{8} or @key{UP}, it affects the equivalent keypad key too. +However, if you rebind a @samp{kp-} key directly, that won't affect +its non-keypad equivalent. Emacs provides a convenient method for binding the numeric keypad keys, using the variables @code{keypad-setup}, @@ -1893,52 +1887,6 @@ invoke it; disabling also applies if the command is invoked using @kbd{M-x}. Disabling a command has no effect on calling it as a function from Lisp programs. -@node Keyboard Translations -@section Keyboard Translations - - Some keyboards do not make it convenient to send all the special -characters that Emacs uses. The most common problem case is the -@key{DEL} character. Some keyboards provide no convenient way to type -this very important character---usually because they were designed to -expect the character @kbd{C-h} to be used for deletion. On these -keyboards, if you press the key normally used for deletion, Emacs handles -the @kbd{C-h} as a prefix character and offers you a list of help -options, which is not what you want. - -@cindex keyboard translations -@findex keyboard-translate - You can work around this problem within Emacs by setting up keyboard -translations to turn @kbd{C-h} into @key{DEL} and @key{DEL} into -@kbd{C-h}, as follows: - -@example -;; @r{Translate @kbd{C-h} to @key{DEL}.} -(keyboard-translate ?\C-h ?\C-?) - -;; @r{Translate @key{DEL} to @kbd{C-h}.} -(keyboard-translate ?\C-? ?\C-h) -@end example - - Keyboard translations are not the same as key bindings in keymaps -(@pxref{Keymaps}). Emacs contains numerous keymaps that apply in -different situations, but there is only one set of keyboard -translations, and it applies to every character that Emacs reads from -the terminal. Keyboard translations take place at the lowest level of -input processing; the keys that are looked up in keymaps contain the -characters that result from keyboard translation. - - On a window system, the keyboard key named @key{DELETE} is a function -key and is distinct from the @acronym{ASCII} character named @key{DEL}. -@xref{Named ASCII Chars}. Keyboard translations affect only @acronym{ASCII} -character input, not function keys; thus, the above example used on a -window system does not affect the @key{DELETE} key. However, the -translation above isn't necessary on window systems, because Emacs can -also distinguish between the @key{BACKSPACE} key and @kbd{C-h}; and it -normally treats @key{BACKSPACE} as @key{DEL}. - - For full information about how to use keyboard translations, see -@ref{Translating Input,,,elisp, The Emacs Lisp Reference Manual}. - @node Syntax @section The Syntax Table @cindex syntax table @@ -2313,42 +2261,37 @@ Enable the use of the command @code{narrow-to-region} without confirmation. @end example @item -Adjusting the configuration to various contexts. - -In most of the cases, people want their Emacs to behave the same on -all their machines, so their configuration should be the same, no -matter whether it's GNU/Linux or not, under X11 or on a tty, with one -version of Emacs or another, ... +Adjusting the configuration to various platforms and Emacs versions. -What can happen, tho, is that depending on the circumstance some -features may or may not be available. In that case just prepend each -such customization with a little test that ensures that the feature -can be used. The best tests are usually checking that the feature is -available, rather than checking what kind of environment is -being used. +Users typically want Emacs to behave the same on all systems, so the +same init file is right for all platforms. However, sometimes it +happens that a function you use for customizing Emacs is not available +on some platforms or in older Emacs versions. To deal with that +situation, put the customization inside a conditional that tests whether +the function or facility is available, like this: @example -(if (fboundp 'blinking-cursor-mode) - (blinking-cursor-mode 0)) -@end example +(if (fboundp 'blink-cursor-mode) + (blink-cursor-mode 0)) -@example (if (boundp 'coding-category-utf-8) - (set-coding-priority '(coding-category-utf-8))) + (set-coding-priority '(coding-category-utf-8))) @end example +@noindent +You can also simply disregard the errors that occur if the +function is not defined. + @example -(require 'cl) ; To define `ignore-errors'. -(ignore-errors (set-face-background 'region "grey75")) +(condition case () + (set-face-background 'region "grey75") + (error nil)) @end example -Note also that a @code{setq} on a variable which does not exist is -generally harmless, so those usually do not need to be made -conditional on any kind of test. - +A @code{setq} on a variable which does not exist is generally +harmless, so those do not need a conditional. @end itemize - @node Terminal Init @subsection Terminal-specific Initialization diff --git a/man/dired-x.texi b/man/dired-x.texi index 3e1c724dd5a..c1a3e9dbe66 100644 --- a/man/dired-x.texi +++ b/man/dired-x.texi @@ -28,7 +28,8 @@ This documents the ``extra'' features for Dired Mode for GNU Emacs found in the file @file{dired-x.el}. -Copyright @copyright{} 1993, 1994, 2001, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to make and distribute verbatim copies of this diff --git a/man/dired.texi b/man/dired.texi index 8cb4646075e..051c735f996 100644 --- a/man/dired.texi +++ b/man/dired.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Dired, Calendar/Diary, Rmail, Top @chapter Dired, the Directory Editor @@ -1075,7 +1075,7 @@ use @kbd{M-x find-grep-dired}. This command reads two minibuffer arguments, @var{directory} and @var{regexp}; it chooses all the files in @var{directory} or its subdirectories that contain a match for @var{regexp}. It works by running the programs @code{find} and -@code{grep}. See also @kbd{M-x grep-find}, in @ref{Compilation}. +@code{grep}. See also @kbd{M-x grep-find}, in @ref{Grep Searching}. Remember to write the regular expression for @code{grep}, not for Emacs. (An alternative method of showing files whose contents match a given regexp is the @kbd{% g @var{regexp}} command, see @ref{Marks vs Flags}.) diff --git a/man/display.texi b/man/display.texi index 02854b3d6db..58e69ad4e60 100644 --- a/man/display.texi +++ b/man/display.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997, 2000, 2001, 2002, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Display, Search, Registers, Top @chapter Controlling the Display @@ -104,14 +104,18 @@ future Emacs versions. To see what faces are currently defined, and what they look like, type @kbd{M-x list-faces-display}. It's possible for a given face to look different in different frames; this command shows the appearance -in the frame in which you type it. Here are the standard faces -for specifying text appearance: +in the frame in which you type it. + +Here are the standard faces for specifying text appearance. You can +use them on specific text, when you want the effects they produce. @table @code @item default This face is used for ordinary text that doesn't specify any other face. @item bold This face uses a bold variant of the default font, if it has one. +It's up to you to choose a default font that has a bold variant, +if you want to use one. @item italic This face uses an italic variant of the default font, if it has one. @item bold-italic @@ -119,9 +123,15 @@ This face uses a bold italic variant of the default font, if it has one. @item underline This face underlines text. @item fixed-pitch -The basic fixed-pitch face. +This face forces use of a particular fixed-width font. @item variable-pitch -The basic variable-pitch face. +This face forces use of a particular variable-width font. It's +reasonable to customize this to use a different variable-width font, +if you like, but you should not make it a fixed-width font. +@item shadow +This face is used for making the text less noticeable than the surrounding +ordinary text. Usually this can be achieved by using shades of gray in +contrast with either black or white default foreground color. @end table Here's an incomplete list of faces used to highlight parts of the @@ -146,19 +156,15 @@ mode is enabled---see below). This face is used for displaying a secondary X selection (@pxref{Secondary Selection}). @item trailing-whitespace -The face for highlighting trailing whitespace when -@code{show-trailing-whitespace} is non-@code{nil}; see @ref{Useless -Whitespace}. +The face for highlighting excess spaces and tabs at the end of a line +when @code{show-trailing-whitespace} is non-@code{nil}; see +@ref{Useless Whitespace}. @item nobreak-space The face for displaying the character ``nobreak space''. @item escape-glyph The face for highlighting the @samp{\} or @samp{^} that indicates a control character. It's also used when @samp{\} indicates a nobreak space or nobreak (soft) hyphen. -@item shadow -The basic face for making the text less noticeable than the surrounding -ordinary text. Usually this is achieved by using shades of grey in -contrast with either black or white default foreground color. @end table @cindex @code{region} face @@ -175,10 +181,13 @@ appearance of these parts of the frame. @table @code @item mode-line -This face is used for the mode line of the currently selected window. -By default, it's drawn with shadows for a ``raised'' effect on window -systems, and drawn as the inverse of the default face on non-windowed -terminals. +@itemx modeline +This face is used for the mode line of the currently selected window, +and for menu bars when toolkit menus are not used. By default, it's +drawn with shadows for a ``raised'' effect on window systems, and +drawn as the inverse of the default face on non-windowed terminals. +@code{modeline} is an alias for the @code{mode-line} face, for +compatibility with old Emacs versions. @item mode-line-inactive Like @code{mode-line}, but used for mode lines of the windows other than the selected one (if @code{mode-line-in-non-selected-windows} is @@ -186,15 +195,22 @@ non-@code{nil}). This face inherits from @code{mode-line}, so changes in that face affect mode lines in all windows. @item header-line Similar to @code{mode-line} for a window's header line. Most modes -don't use the header line, but the Info mode does. +don't use the header line, but some special modes, such the Info mode, do. @item vertical-border -This face is used for the vertical divider between windows on -character terminals. By default this face inherits from the -@code{mode-line-inactive} face. +This face is used for the vertical divider between windows. +By default this face inherits from the @code{mode-line-inactive} face +on character terminals. On window systems the foreground color of +this face is used for the vertical line between windows without +scrollbars. @item minibuffer-prompt +@cindex @code{minibuffer-prompt} face +@vindex minibuffer-prompt-properties This face is used for the prompt strings displayed in the minibuffer. +By default, Emacs automatically adds this face to the value of +@code{minibuffer-prompt-properties}, which is a list of text +properties used to display the prompt text. @item fringe -@cindex fringe +@cindex @code{fringe} face The face for the fringes to the left and right of windows on graphic displays. (The fringes are the narrow portions of the Emacs frame between the text area and the window's right and left borders.) @@ -214,9 +230,16 @@ colors of this face affect the appearance of tool bar icons. @xref{Tool Bars}. @item tooltip This face is used for tooltips. @xref{Tooltips}. @item menu -This face determines the colors and font of Emacs's menus. Setting the -font of LessTif/Motif menus is currently not supported; attempts to set -the font are ignored in this case. @xref{Menu Bars}. +@cindex menu bar appearance +@cindex @code{menu} face, no effect if customized +@cindex customization of @code{menu} face +This face determines the colors and font of Emacs's menus. @xref{Menu +Bars}. Setting the font of LessTif/Motif menus is currently not +supported; attempts to set the font are ignored in this case. +Likewise, attempts to customize this face in Emacs built with GTK and +in the MS-Windows port are ignored by the respective GUI toolkits; +you need to use system-wide styles and options to change the +appearance of the menus. @end table @node Font Lock @@ -1004,15 +1027,6 @@ global-hl-line-mode} enables or disables the same mode globally. This section contains information for customization only. Beginning users should skip it. -@vindex mode-line-inverse-video - The variable @code{mode-line-inverse-video} is an obsolete way of -controlling whether the mode line is displayed in inverse video; the -preferred way of doing this is to change the @code{mode-line} face. -@xref{Mode Line}. However, if @code{mode-line-inverse-video} has a -value of @code{nil}, then the @code{mode-line} face will be ignored, -and mode-lines will be drawn using the default text face. -@xref{Faces}. - @vindex inverse-video If the variable @code{inverse-video} is non-@code{nil}, Emacs attempts to invert all the lines of the display from what they normally are. @@ -1135,7 +1149,7 @@ is the default value for @code{indicate-buffer-boundaries} in buffers that do not override it. @vindex baud-rate - The variable @code{baud-rate} holds the output speed of the + The variable @anchor{baud-rate}@code{baud-rate} holds the output speed of the terminal, as far as Emacs knows. Setting this variable does not change the speed of actual data transmission, but the value is used for calculations. On terminals, it affects padding, and decisions diff --git a/man/ebrowse.texi b/man/ebrowse.texi index 8e3510242cf..93c82fbbba0 100644 --- a/man/ebrowse.texi +++ b/man/ebrowse.texi @@ -10,7 +10,8 @@ @copying This file documents Ebrowse, a C++ class browser for GNU Emacs. -Copyright @copyright{} 2000, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/ediff.texi b/man/ediff.texi index 7b997e4b0eb..1991aa642d3 100644 --- a/man/ediff.texi +++ b/man/ediff.texi @@ -25,8 +25,8 @@ This file documents Ediff, a comprehensive visual interface to Unix diff and patch utilities. -Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi index 06c0a4d77dc..7bd36f3ce46 100644 --- a/man/emacs-mime.texi +++ b/man/emacs-mime.texi @@ -9,7 +9,7 @@ @copying This file documents the Emacs MIME interface functionality. -Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 +Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation @@ -213,10 +213,6 @@ Set the undisplayer object. @findex mm-handle-disposition Return the parsed @code{Content-Disposition} of the part. -@item mm-handle-disposition -@findex mm-handle-disposition -Return the description of the part. - @item mm-get-content-id Returns the handle(s) referred to by @code{Content-ID}. @@ -813,7 +809,9 @@ by using the @code{encoding} @acronym{MML} tag (@pxref{MML Definition}). @item mm-coding-system-priorities @vindex mm-coding-system-priorities Prioritize coding systems to use for outgoing messages. The default -is @code{nil}, which means to use the defaults in Emacs. It is a list of +is @code{nil}, which means to use the defaults in Emacs, but is +@code{(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)} when +running Emacs in the Japanese language environment. It is a list of coding system symbols (aliases of coding systems are also allowed, use @kbd{M-x describe-coding-system} to make sure you are specifying correct coding system names). For example, if you have configured Emacs @@ -880,8 +878,9 @@ used, of course. @vindex mm-mime-mule-charset-alist Things are slightly more complicated when running Emacs with @sc{mule} support. In this case, a list of the @sc{mule} charsets used in the -part is obtained, and the @sc{mule} charsets are translated to @acronym{MIME} -charsets by consulting the variable @code{mm-mime-mule-charset-alist}. +part is obtained, and the @sc{mule} charsets are translated to +@acronym{MIME} charsets by consulting the table provided by Emacs itself +or the variable @code{mm-mime-mule-charset-alist} for XEmacs. If this results in a single @acronym{MIME} charset, this is used to encode the part. But if the resulting list of @acronym{MIME} charsets contains more than one element, two things can happen: If it is possible to encode the @@ -1168,7 +1167,7 @@ in the subsequent sections. This chapter describes the basic, ground-level functions for parsing and handling. Covered here is parsing @code{From} lines, removing comments from header lines, decoding encoded words, parsing date headers and so -on. High-level functionality is dealt with in the next chapter +on. High-level functionality is dealt with in the first chapter (@pxref{Decoding and Viewing}). @menu @@ -1504,7 +1503,7 @@ Take a time and return the number of days that represents. @item safe-date-to-time Take a date and return a time. If the date is not syntactically valid, -return a ``zero'' date. +return a ``zero'' time. @item time-less-p Take two times and say whether the first time is less (i. e., earlier) diff --git a/man/emacs-xtra.texi b/man/emacs-xtra.texi index 94a37c2ec5e..d17a506a498 100644 --- a/man/emacs-xtra.texi +++ b/man/emacs-xtra.texi @@ -10,8 +10,7 @@ @copying This manual describes specialized features of Emacs. -Copyright (C) 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/emacs.texi b/man/emacs.texi index a4e713fd6f6..6eb78640bd4 100644 --- a/man/emacs.texi +++ b/man/emacs.texi @@ -11,8 +11,8 @@ This is the @value{EDITION} edition of the @cite{GNU Emacs Manual}, updated for Emacs version @value{EMACSVER}. -Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, -1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -787,9 +787,6 @@ Customization you can control their functioning. * Key Bindings:: The keymaps say what command each key runs. By changing them, you can "redefine keys". -* Keyboard Translations:: If your keyboard passes an undesired code - for a key, you can tell Emacs to - substitute another code. * Syntax:: The syntax table controls how words and expressions are parsed. * Init File:: How to write common customizations in the diff --git a/man/entering.texi b/man/entering.texi index fe76bf34844..1d04ab427f6 100644 --- a/man/entering.texi +++ b/man/entering.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Entering Emacs, Exiting, Text Characters, Top @chapter Entering and Exiting Emacs diff --git a/man/eshell.texi b/man/eshell.texi index 82e957f4de8..fe36780955b 100644 --- a/man/eshell.texi +++ b/man/eshell.texi @@ -8,7 +8,8 @@ @copying This manual is for Eshell, the Emacs shell. -Copyright @copyright{} 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/eudc.texi b/man/eudc.texi index b5ff83be14a..23df55bb97b 100644 --- a/man/eudc.texi +++ b/man/eudc.texi @@ -12,7 +12,8 @@ EUDC is the Emacs Unified Directory Client, a common interface to directory servers using various protocols such as LDAP or the CCSO white pages directory system (PH/QI) -Copyright 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/faq.texi b/man/faq.texi index bccc23e181c..1212ed87d8e 100644 --- a/man/faq.texi +++ b/man/faq.texi @@ -10,7 +10,7 @@ @set VER 21.3 @copying -Copyright 2001, 2002, 2003 Free Software Foundation, Inc. +Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copyright 1994,1995,1996,1997,1998,1999,2000 Reuven M. Lerner@* Copyright 1992,1993 Steven Byrnes@* Copyright 1990,1991,1992 Joseph Brian Wells@* @@ -1005,23 +1005,11 @@ administrator, because the most recent FAQ should not expire for a while. @item -Via HTTP or FTP. You can always fetch the latest FAQ from - -@uref{http://www.lerner.co.il/emacs/} and - -@uref{ftp://ftp.lerner.co.il/pub/emacs/} - -@item In the Emacs distribution. Since Emacs 18.56, the FAQ at the time of release has been part of the Emacs distribution as either @file{etc/FAQ} or @file{man/faq.texi} (@pxref{File-name conventions}). @item -Via the World Wide Web. A hypertext version is available at - -@uref{http://www.lerner.co.il/emacs/} - -@item Via anonymous ftp and e-mail from @file{rtfm.mit.edu} (and its mirror in Europe), the main repository for FAQs and other items posted to news.answers. The Emacs FAQs are available at @@ -1046,13 +1034,6 @@ send usenet/news.answers/GNU-Emacs-FAQ/part5 For more information, send email to @email{mail-server@@rtfm.mit.edu} with @samp{help} and @samp{index} in the body on separate lines. - -@item -As the very last resort, you can e-mail a request to -@email{emacs-faq@@lerner.co.il}. Don't do this unless you have made a -good-faith effort to obtain the FAQ list via one of the methods listed -above. - @end itemize @c ------------------------------------------------------------ @@ -2206,7 +2187,7 @@ otherwise. @inforef{Frame Commands, Frame Commands, emacs}. @cindex Unix regeps, differences from Emacs @cindex Text strings, putting regexps in -@inforef{Regexps, Regexps, emacs}. +@inforef{Regexp Backslash, Regexp Backslash, emacs}. The @code{or} operator is @samp{\|}, not @samp{|}, and the grouping operators are @samp{\(} and @samp{\)}. Also, the string syntax for a backslash is @@ -4637,9 +4618,9 @@ Good question! @cindex Keys, swapping @cindex @code{keyboard-translate} -In Emacs 19, you can swap two keys (or key sequences) by using the -@code{keyboard-translate} function. For example, to turn @kbd{C-h} into -@key{DEL} and @key{DEL} to @kbd{C-h}, use +You can swap two keys (or key sequences) by using the +@code{keyboard-translate} function. For example, to turn @kbd{C-h} +into @key{DEL} and @key{DEL} to @kbd{C-h}, use @lisp (keyboard-translate ?\C-h ?\C-?) ; translate `C-h' to DEL @@ -4651,6 +4632,11 @@ The first key sequence of the pair after the function identifies what is produced by the keyboard; the second, what is matched for in the keymaps. +However, in the specific case of @kbd{C-h} and @key{DEL}, you should +toggle @code{normal-erase-is-backspace-mode} instead of calling +@code{keyboard-translate}. @inforef{DEL Does Not Delete, DEL Does Not Delete, +emacs}. + Keyboard translations are not the same as key bindings in keymaps. Emacs contains numerous keymaps that apply in different situations, but there is only one set of keyboard translations, and it applies to every @@ -4659,8 +4645,6 @@ take place at the lowest level of input processing; the keys that are looked up in keymaps contain the characters that result from keyboard translation. -@inforef{Keyboard Translations, Keyboard Translations, emacs}. - @node Producing C-XXX with the keyboard, No Meta key, Swapping keys, Key bindings @section How do I produce C-XXX with my keyboard? @cindex Producing control characters diff --git a/man/files.texi b/man/files.texi index 26f6af37603..912fc6f7bf9 100644 --- a/man/files.texi +++ b/man/files.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, -@c 2001, 2004, 2005 Free Software Foundation, Inc. +@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Files, Buffers, Keyboard Macros, Top @chapter File Handling @@ -464,8 +464,9 @@ buffer as ``modified'' so that @kbd{C-x C-s} in that buffer @kindex C-x C-w @findex write-file If you wish to mark the buffer as visiting a different file and save it -right away, use @kbd{C-x C-w} (@code{write-file}). It is precisely -equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s}. +right away, use @kbd{C-x C-w} (@code{write-file}). It is +equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s} +(except that @kbd{C-x C-w} asks for confirmation if the file exists). @kbd{C-x C-s} used on a buffer that is not visiting a file has the same effect as @kbd{C-x C-w}; that is, it reads a file name, marks the buffer as visiting that file, and saves it there. The default file name in @@ -1642,7 +1643,7 @@ them; they exist only in the records of the master file. @kindex C-x v g For some backends, you can display the file @dfn{annotated} with per-line version information and using colors to enhance the visual -appearance, with the the command @kbd{M-x vc-annotate}. +appearance, with the command @kbd{M-x vc-annotate}. It creates a new buffer to display file's text, colored to show how old each part is. Text colored red is new, blue means old, and intermediate colors indicate @@ -2906,7 +2907,7 @@ string; the default is @code{"-c"} to specify a context diff. @findex diff-goto-source After running @kbd{M-x diff}, you can use @kbd{C-x `} to visit successive changed locations in the two source files, as in -Compilation mode (@pxref{Compilation}.) In the @samp{*diff*} buffer, +Compilation mode (@pxref{Compilation Mode}.) In the @samp{*diff*} buffer, you can move to a particular hunk of changes and type @kbd{C-c C-c} (@code{diff-goto-source}) to visit the corresponding source location. @@ -2917,13 +2918,19 @@ recent backup. If you specify the name of a backup file, of. @findex compare-windows - The command @kbd{M-x compare-windows} compares the text in the current -window with that in the next window. Comparison starts at point in each -window, and each starting position is pushed on the mark ring in its -respective buffer. Then point moves forward in each window, a character -at a time, until a mismatch between the two windows is reached. Then -the command is finished. For more information about windows in Emacs, -@ref{Windows}. + The command @kbd{M-x compare-windows} compares the text in the +current window with that in the next window. (For more information +about windows in Emacs, @ref{Windows}.) Comparison starts at point in +each window, after pushing each initial point value on the mark ring +in its respective buffer. Then it moves point forward in each window, +one character at a time, until it reaches characters that don't match. +Then the command exits. + + If point in the two windows is followed by non-matching text when +the command starts, it tries heuristically to advance up to matching +text in the two windows, and then exits. So if you use @kbd{M-x +compare-windows} repeatedly, each time it either skips one matching +range or finds the start of another. @vindex compare-ignore-case @vindex compare-ignore-whitespace @@ -3253,6 +3260,7 @@ File Names}). @section Quoted File Names @cindex quoting file names +@cindex file names, quote special characters You can @dfn{quote} an absolute file name to prevent special characters and syntax in it from having their special effects. The way to do this is to add @samp{/:} at the beginning. diff --git a/man/fixit.texi b/man/fixit.texi index 08c5eeee2ec..f58d3c835a6 100644 --- a/man/fixit.texi +++ b/man/fixit.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Fixit, Keyboard Macros, Search, Top @chapter Commands for Fixing Typos diff --git a/man/flymake.texi b/man/flymake.texi index 7a9ca11f4d5..4f5223e3bd9 100644 --- a/man/flymake.texi +++ b/man/flymake.texi @@ -11,7 +11,7 @@ This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), which is a universal on-the-fly syntax checker for GNU Emacs. -Copyright @copyright{} 2004 Free Software Foundation, Inc. +Copyright @copyright{} 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/forms.texi b/man/forms.texi index 74876760ccc..adc3fe8a0b2 100644 --- a/man/forms.texi +++ b/man/forms.texi @@ -18,7 +18,8 @@ @copying This file documents Forms mode, a form-editing major mode for GNU Emacs. -Copyright 1989, 1997, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989, 1997, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/frames.texi b/man/frames.texi index e5bada851ad..8e058867fcd 100644 --- a/man/frames.texi +++ b/man/frames.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 99, 2000, 2001, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, +@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Frames, International, Windows, Top @chapter Frames and X Windows @@ -495,10 +495,9 @@ parameter, as shown here: Here's a similar example for specifying a foreground color: @example -(add-to-list 'default-frame-alist '(background-color . "blue")) +(add-to-list 'default-frame-alist '(foreground-color . "blue")) @end example - @node Frame Commands @section Frame Commands @@ -844,7 +843,7 @@ feature, use @kbd{M-x mouse-wheel-mode}. The variables @code{mouse-wheel-follow-mouse} and @code{mouse-wheel-scroll-amount} determine where and by how much buffers are scrolled. The variable -@code{mouse-wheel-progressive-speed} determines whether the the scroll +@code{mouse-wheel-progressive-speed} determines whether the scroll speed is linked to how fast you move the wheel. @node Drag and Drop diff --git a/man/glossary.texi b/man/glossary.texi index 78abbfb30b7..bab69b2c4dc 100644 --- a/man/glossary.texi +++ b/man/glossary.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Glossary, Key Index, Intro, Top @unnumbered Glossary @@ -681,7 +682,7 @@ keymap binds the character @kbd{C-n} to the command function @item Keyboard Translation Table The keyboard translation table is an array that translates the character codes that come from the terminal into the character codes that make up -key sequences. @xref{Keyboard Translations}. +key sequences. @item Kill Ring The kill ring is where all text you have killed recently is saved. diff --git a/man/gnu.texi b/man/gnu.texi index 4185f8f9114..51e1a5615ff 100644 --- a/man/gnu.texi +++ b/man/gnu.texi @@ -1,11 +1,13 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 1986, 1987, 1993, 1995 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1995, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @ifclear justgnu @node Manifesto,, MS-DOS, Top @unnumbered The GNU Manifesto @end ifclear @ifset justgnu -Copyright (C) 1985, 1993, 2001 Free Software Foundation, Inc. +Copyright (C) 1985, 1993, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -39,9 +41,10 @@ Since that time, we have learned about certain common misunderstandings that different wording could help avoid. Footnotes added in 1993 help clarify these points. -For up-to-date information about the available GNU software, please see -the latest issue of the GNU's Bulletin. The list is much too long to -include here. +For up-to-date information about the available GNU software, please +see @uref{http://www.gnu.org}. For software tasks to work on, see +@uref{http://savannah.gnu.org/projects/tasklist}. For other ways to +contribute, see @uref{http://www.gnu.org/help}. @end quotation @unnumberedsec What's GNU? Gnu's Not Unix! @@ -380,7 +383,17 @@ practice they would still make considerably more than that.) other people's lives; and it is usually used to make their lives more difficult. -People who have studied the issue of intellectual property rights carefully +People who have studied the issue of intellectual property +rights@footnote{In the 80s I had not yet realized how confusing it was +to speak of ``the issue'' of ``intellectual property.'' That term is +obviously biased; more subtle is the fact that it lumps together +various disparate laws which raise very different issues. Nowadays I +urge people to reject the term ``intellectual property'' entirely, +lest it lead others to suppose that those laws form one coherent +issue. The way to be clear is to discuss patents, copyrights, and +trademarks separately. See +@uref{http://www.gnu.org/philosophy/not-ipr.xhtml} for more +explanation of how this term spreads confusion and bias.} carefully (such as lawyers) say that there is no intrinsic right to intellectual property. The kinds of supposed intellectual property rights that the government recognizes were created by specific acts of legislation for @@ -489,9 +502,15 @@ operating systems onto the new hardware. The sale of teaching, hand-holding and maintenance services could also employ programmers. -People with new ideas could distribute programs as freeware, asking for -donations from satisfied users, or selling hand-holding services. I have -met people who are already working this way successfully. +People with new ideas could distribute programs as +freeware@footnote{Subsequently we have learned to distinguish between +"free software" and "freeware". The term "freeware" means software +you are free to redistribute, but usually you are not free to study +and change the source code, so most of it is not free software. See +@uref{http://www.gnu.org/philosophy/words-to-avoid.html} for more +explanation.}, asking for donations from satisfied users, or selling +hand-holding services. I have met people who are already working this +way successfully. Users with related needs can form users' groups, and pay dues. A group would contract with programming companies to write programs that the diff --git a/man/gnus.texi b/man/gnus.texi index b1d5be22651..131a92fae64 100644 --- a/man/gnus.texi +++ b/man/gnus.texi @@ -7,9 +7,8 @@ @syncodeindex pg cp @copying -Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -1468,15 +1467,17 @@ startup files. If you want to turn backup creation off, say something like: @vindex gnus-init-file @vindex gnus-site-init-file When Gnus starts, it will read the @code{gnus-site-init-file} -(@file{.../site-lisp/gnus} by default) and @code{gnus-init-file} +(@file{.../site-lisp/gnus-init} by default) and @code{gnus-init-file} (@file{~/.gnus} by default) files. These are normal Emacs Lisp files and can be used to avoid cluttering your @file{~/.emacs} and @file{site-init} files with Gnus stuff. Gnus will also check for files with the same names as these, but with @file{.elc} and @file{.el} suffixes. In other words, if you have set @code{gnus-init-file} to @file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el}, -and finally @file{~/.gnus} (in this order). - +and finally @file{~/.gnus} (in this order). If Emacs was invoked with +the @option{-q} or @option{--no-init-file} options (@pxref{Initial +Options, ,Initial Options, emacs, The Emacs Manual}), Gnus doesn't read +@code{gnus-init-file}. @node Auto Save @@ -9405,7 +9406,7 @@ newsreaders and mailers that do not understand or use @acronym{MIME}, and just send out messages without saying what character sets they use. To help a bit with this, some local news hierarchies have policies that say what character set is the default. For instance, the @samp{fj} -hierarchy uses @code{iso-2022-jp-2}. +hierarchy uses @code{iso-2022-jp}. @vindex gnus-group-charset-alist This knowledge is encoded in the @code{gnus-group-charset-alist} diff --git a/man/help.texi b/man/help.texi index 29c06b499df..bcae911d55f 100644 --- a/man/help.texi +++ b/man/help.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Help, Mark, M-x, Top @chapter Help diff --git a/man/idlwave.texi b/man/idlwave.texi index 8226c0ac63f..f9e167893a0 100644 --- a/man/idlwave.texi +++ b/man/idlwave.texi @@ -29,8 +29,8 @@ Emacs, and interacting with an IDL shell run as a subprocess. This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE @value{VERSION} -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -60,8 +60,8 @@ license to the document, as described in section 6 of the license. This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for IDLWAVE version @value{VERSION}, @value{DATE}. @sp 2 -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @sp 2 @cindex Copyright, of IDLWAVE Permission is granted to copy, distribute and/or modify this document diff --git a/man/indent.texi b/man/indent.texi index 48a54747714..c748f5010b1 100644 --- a/man/indent.texi +++ b/man/indent.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997, 2004 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Indentation, Text, Major Modes, Top @chapter Indentation diff --git a/man/info.texi b/man/info.texi index e6c508b4b49..3a0ba2b3947 100644 --- a/man/info.texi +++ b/man/info.texi @@ -14,8 +14,8 @@ This file describes how to use Info, the on-line, menu-driven GNU documentation system. -Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -Free Software Foundation, Inc. +Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -238,7 +238,7 @@ line says that this is node @samp{Help} in the file @file{info}. (look at it now) says that the @samp{Next} node after this one is the node called @samp{Help-P}. An advanced Info command lets you go to any node whose name you know. In the stand-alone Info reader program, -the header line shows the names of this node and the info file as +the header line shows the names of this node and the Info file as well. In Emacs, the header line is duplicated in a special typeface, and the duplicate remains at the top of the window all the time even if you scroll through the node. @@ -284,7 +284,7 @@ node, @samp{Help-^L}. If you read this in Emacs, you will see an @samp{Info} item in the menu bar, close to its right edge. Clicking the mouse on the @samp{Info} menu-bar item opens a menu of commands which include -@samp{Next} and @samp{Prev} (and also some others which you didn't yet +@samp{Next} and @samp{Previous} (and also some others which you didn't yet learn about). This all probably seems insultingly simple so far, but @emph{please @@ -671,10 +671,12 @@ mistake. Another way to move to the menu subtopic lines and between them is to type @key{TAB}. Each time you type a @key{TAB}, you move to the -next subtopic line. To move to a previous subtopic line, type -@kbd{M-@key{TAB}}---that is, press and hold the @key{META} key and then -press @key{TAB}. (On some keyboards, the @key{META} key might be labeled -@samp{Alt}.) +next subtopic line. To move to a previous subtopic line in the +stand-alone reader, type @kbd{M-@key{TAB}}---that is, press and hold +the @key{META} key and then press @key{TAB}. (On some keyboards, the +@key{META} key might be labeled @samp{Alt}.) In Emacs Info, type +@kbd{S-@key{TAB}} to move to a previous subtopic line (press and hold +the @key{Shift} key and then press @key{TAB}). Once you move cursor to a subtopic line, press @key{RET} to go to that subtopic's node. @@ -727,7 +729,8 @@ usually used to ``stay on the same level but go backwards''. @code{Info-up}). That puts you at the @emph{front} of the node---to get back to where you were reading you have to type some @key{SPC}s. (Some Info readers, such as the one built into Emacs, put you at the -same place where you were reading in @samp{Help-M}.) +menu subtopic line which points to the subnode that the @kbd{u} command +brought you from.) Another way to go Up is to click @kbd{Mouse-2} on the @samp{Up} pointer shown in the header line (provided that you have a mouse). @@ -785,8 +788,14 @@ to cancel the @kbd{f}. type a @kbd{Control-g} and see how the @samp{f} gives up. @end format - The @key{TAB} and @kbd{M-@key{TAB}} key, which move between menu -items in a menu, also move between cross references outside of menus. + The @key{TAB}, @kbd{M-@key{TAB}} and @kbd{S-@key{TAB}} keys, +which move between menu items in a menu, also move between cross +references outside of menus. + + Clicking @kbd{Mouse-2} on or near a cross reference also follows the +reference. You can see that the cross reference is mouse-sensitive by +moving the mouse pointer to the reference and watching how the +underlying text and the mouse pointer change in response. Sometimes a cross reference (or a node) can lead to another file (in other words another ``manual''), or, on occasion, even a file on a @@ -795,36 +804,22 @@ stand-alone Info avoid using remote links). Such a cross reference looks like this: @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU Documentation Format}. (After following this link, type @kbd{l} to get back to this node.) Here the name @samp{texinfo} -between parentheses (shown in the stand-alone version) refers to the -file name. This file name appears in cross references and node names -if it differs from the current file. In Emacs, the file name is -hidden (along with other text). (Use @kbd{M-x visible-mode} to show -or hide it.) - - The remainder of this node applies only to the Emacs version. If -you use the stand-alone version, you can type @kbd{n} immediately. - - To some users, switching manuals is a much bigger switch than -switching sections. These users like to know that they are going to -be switching to another manual (and which one) before actually doing -so, especially given that, if one does not notice, Info commands like -@kbd{t} (see the next node) can have confusing results. - - If you put your mouse over the cross reference and if the cross -reference leads to a different manual, then the information appearing -in a separate box (tool tip) or in the echo area, will mention the -file the cross reference will carry you to (between parentheses). -This is also true for menu subtopic names. If you have a mouse, just -leave it over the @samp{Overview} cross reference above and watch what -happens. - - If you always like to have that information available without having -to move your mouse over the cross reference, set -@code{Info-hide-note-references} to a value other than @code{t} -(@pxref{Emacs Info Variables}). You might also want to do that if you -have a lot of cross references to files on remote machines and have -non-permanent or slow access, since otherwise you might not be able to -distinguish between local and remote links. +between parentheses refers to the file name. This file name appears +in cross references and node names if it differs from the current +file, so you can always know that you are going to be switching to +another manual and which one. + +However, Emacs normally hides some other text in cross-references. +If you put your mouse over the cross reference, then the information +appearing in a separate box (tool tip) or in the echo area will show +the full cross-reference including the file name and the node name of +the cross reference. If you have a mouse, just leave it over the +cross reference @xref{Top,, Overview of Texinfo, texinfo, Texinfo: +The GNU Documentation Format}, and watch what happens. If you +always like to have that information visible without having to move +your mouse over the cross reference, use @kbd{M-x visible-mode}, or +set @code{Info-hide-note-references} to a value other than @code{t} +(@pxref{Emacs Info Variables}). @format >> Now type @kbd{n} to learn more commands. @@ -845,8 +840,9 @@ This allows Info readers to go to the exact line of an entry, not just the start of the containing node.) You can get to the index from the main menu of the file with the -@kbd{m} command; then you can use the @kbd{m} command again in the -index node to go to the node that describes the topic you want. +@kbd{m} command and the name of the index node; then you can use the +@kbd{m} command again in the index node to go to the node that +describes the topic you want. There is also a short-cut Info command, @kbd{i}, which does all of that for you. It searches the index for a given topic (a string) and @@ -854,8 +850,8 @@ goes to the node which is listed in the index for that topic. @xref{Info Search}, for a full explanation. @kindex l @r{(Info mode)} -@findex Info-last -@cindex going back in Info mode +@findex Info-history-back +@cindex going back in Info history If you have been moving around to different nodes and wish to retrace your steps, the @kbd{l} command (@kbd{l} for @dfn{last}) will do that, one node-step at a time. As you move from node to node, Info @@ -863,7 +859,7 @@ records the nodes where you have been in a special history list. The @kbd{l} command revisits nodes in the history list; each successive @kbd{l} command moves one step back through the history. - In Emacs, @kbd{l} runs the command @code{Info-last}. + In Emacs, @kbd{l} runs the command @code{Info-history-back}. @format >> Try typing @kbd{p p n} and then three @kbd{l}'s, pausing in between @@ -875,6 +871,13 @@ where @emph{you} last were, whereas @kbd{p} always moves to the node which the header says is the @samp{Previous} node (from this node, the @samp{Prev} link leads to @samp{Help-Xref}). +@kindex r @r{(Info mode)} +@findex Info-history-forward +@cindex going forward in Info history + You can use the @kbd{r} command (@code{Info-history-forward} in Emacs) +to revisit nodes in the history list in the forward direction, so that +@kbd{r} will return you to the node you came from by typing @kbd{l}. + @kindex d @r{(Info mode)} @findex Info-directory @cindex go to Directory node @@ -898,11 +901,6 @@ This is useful if you want to browse the manual's main menu, or select some specific top-level menu item. The Emacs command run by @kbd{t} is @code{Info-top-node}. - Clicking @kbd{Mouse-2} on or near a cross reference also follows the -reference. You can see that the cross reference is mouse-sensitive by -moving the mouse pointer to the reference and watching how the -underlying text and the mouse pointer change in response. - @format >> Now type @kbd{n} to see the last node of the course. @end format @@ -935,7 +933,7 @@ Documentation Format}. * Menus:: How to add to or create menus in Info nodes. * Cross-refs:: How to add cross-references to Info nodes. * Tags:: How to make tags tables for Info files. -* Checking:: Checking an Info File +* Checking:: Checking an Info File. * Emacs Info Variables:: Variables modifying the behavior of Emacs Info. @end menu @@ -969,7 +967,7 @@ the node @samp{Top} in the Info file @file{dir}. Likewise, The node name @samp{*} specifies the whole file. So you can look at all of the current file by typing @kbd{g*@key{RET}} or all of any -other file with @kbd{g(@var{filename})@key{RET}}. +other file with @kbd{g(@var{filename})*@key{RET}}. @subheading @kbd{1}--@kbd{9} choose a menu subtopic by its number @@ -1017,7 +1015,7 @@ current node. @findex clone-buffer @cindex multiple Info buffers If you are reading Info in Emacs, you can select a new independent -Info buffer in another window by typing @kbd{M-n}. The new buffer +Info buffer in the same window by typing @kbd{M-n}. The new buffer starts out as an exact copy of the old one, but you will be able to move independently between nodes in the two buffers. (In Info mode, @kbd{M-n} runs the Emacs command @code{clone-buffer}.) @@ -1028,6 +1026,11 @@ m} and @kbd{C-u g} go to a new node in exactly the same way that @kbd{m} and @kbd{g} do, but they do so in a new Info buffer which they select in another window. + Another way to produce new Info buffers in Emacs is to use a numeric +prefix argument for the @kbd{C-h i} command (@code{info}) which +switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} +switches to the buffer @samp{*info*<2>}, creating it if necessary. + @node Info Search, Add, Advanced, Expert Info @comment node-name, next, previous, up @section How to search Info documents for specific subjects @@ -1083,10 +1086,12 @@ you type inside Emacs to run the command bound to @kbd{C-f}. In Emacs, @kbd{i} runs the command @code{Info-index}. @findex info-apropos +@findex index-apropos If you don't know what manual documents something, try the @kbd{M-x -info-apropos} command. It prompts for a string and then looks up that -string in all the indices of all the Info documents installed on your -system. +info-apropos} command in Emacs, or the @kbd{M-x index-apropos} command +in the stand-alone reader. It prompts for a string and then looks up +that string in all the indices of all the Info documents installed on +your system. @kindex s @r{(Info mode)} @findex Info-search @@ -1095,10 +1100,10 @@ It switches to the next node if and when that is necessary. You type @kbd{s} followed by the string to search for, terminated by @key{RET}. To search for the same string again, just @kbd{s} followed by @key{RET} will do. The file's nodes are scanned in the order -they are in in the file, which has no necessary relationship to the +they are in the file, which has no necessary relationship to the order that they may be in the tree structure of menus and @samp{next} pointers. But normally the two orders are not very different. In any -case, you can always do a @kbd{b} to find out what node you have +case, you can always look at the echo area to find out what node you have reached, if the header is not visible (this can happen, because @kbd{s} puts your cursor at the occurrence of the string, not at the beginning of the node). @@ -1109,6 +1114,15 @@ compatibility with other GNU packages that use @kbd{M-s} for a similar kind of search command. Both @kbd{s} and @kbd{M-s} run in Emacs the command @code{Info-search}. +@kindex C-s @r{(Info mode)} +@kindex C-r @r{(Info mode)} +@findex isearch + Instead of using @kbd{s} in Emacs Info and in the stand-alone Info, +you can use an incremental search started with @kbd{C-s} or @kbd{C-r}. +It can search through multiple Info nodes. @xref{Incremental Search,,, +emacs, The GNU Emacs Manual}. In Emacs, this behavior is enabled only +if the variable @code{Info-isearch-search} is non-@code{nil} +(@pxref{Emacs Info Variables}). @node Add, Menus, Info Search, Expert Info @comment node-name, next, previous, up @@ -1245,9 +1259,9 @@ the nodes in a file to form a connected structure. In fact, this file has two connected components. You are in one of them, which is under the node @samp{Top}; the other contains the node @samp{Help} which the @kbd{h} command goes to. In fact, since there is no garbage -collector, nothing terrible happens if a substructure is not pointed -to, but such a substructure is rather useless since nobody can -ever find out that it exists. +collector on the node graph, nothing terrible happens if a substructure +is not pointed to, but such a substructure is rather useless since nobody +can ever find out that it exists. @node Cross-refs, Tags, Menus, Expert Info @comment node-name, next, previous, up @@ -1328,7 +1342,7 @@ manner. @comment node-name, next, previous, up @section Tags Tables for Info Files -@cindex tags tables in info files +@cindex tags tables in Info files You can speed up the access to nodes of a large Info file by giving it a tags table. Unlike the tags table for a program, the tags table for an Info file lives inside the file itself and is used @@ -1408,22 +1422,30 @@ initialize it, or @code{Info-default-directory-list} if there is no @env{INFOPATH} variable in the environment. If you wish to customize the Info directory search list for both Emacs -info and stand-alone Info, it is best to set the @env{INFOPATH} +Info and stand-alone Info, it is best to set the @env{INFOPATH} environment variable, since that applies to both programs. @item Info-additional-directory-list A list of additional directories to search for Info documentation files. These directories are not searched for merging the @file{dir} file. -@item Info-fontify -When set to a non-@code{nil} value, enables highlighting of Info -files. The default is @code{t}. You can change how the highlighting -looks by customizing the faces @code{info-node}, @code{info-xref}, -@code{info-header-xref}, @code{info-header-node}, @code{info-menu-5}, -@code{info-menu-header}, and @code{info-title-@var{n}-face} (where -@var{n} is the level of the section, a number between 1 and 4). To -customize a face, type @kbd{M-x customize-face @key{RET} @var{face} -@key{RET}}, where @var{face} is one of the face names listed here. +@item Info-mode-hook +Hooks run when @code{Info-mode} is called. By default, it contains +the hook @code{turn-on-font-lock} which enables highlighting of Info +files. You can change how the highlighting looks by customizing the +faces @code{info-node}, @code{info-xref}, @code{info-xref-visited}, +@code{info-header-xref}, @code{info-header-node}, @code{info-menu-header}, +@code{info-menu-star}, and @code{info-title-@var{n}} (where @var{n} +is the level of the section, a number between 1 and 4). To customize +a face, type @kbd{M-x customize-face @key{RET} @var{face} @key{RET}}, +where @var{face} is one of the face names listed here. + +@item Info-fontify-maximum-menu-size +Maximum size of menu to fontify if @code{font-lock-mode} is non-@code{nil}. + +@item Info-fontify-visited-nodes +If non-@code{nil}, menu items and cross-references pointing to visited +nodes are displayed in the @code{info-xref-visited} face. @item Info-use-header-line If non-@code{nil}, Emacs puts in the Info buffer a header line showing @@ -1449,6 +1471,9 @@ subnode indicated by the following menu item. Setting this option to program, which visits the first subnode from the menu only when you hit the end of the current node. The default is @code{nil}. +@item Info-isearch-search +If non-@code{nil}, isearch in Info searches through multiple nodes. + @item Info-enable-active-nodes When set to a non-@code{nil} value, allows Info to execute Lisp code associated with nodes. The Lisp code is executed when the node is diff --git a/man/killing.texi b/man/killing.texi index 006af200c06..bcb170ac265 100644 --- a/man/killing.texi +++ b/man/killing.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Killing, Yanking, Mark, Top diff --git a/man/kmacro.texi b/man/kmacro.texi index e19c1434813..0693eefca54 100644 --- a/man/kmacro.texi +++ b/man/kmacro.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Keyboard Macros, Files, Fixit, Top @chapter Keyboard Macros diff --git a/man/m-x.texi b/man/m-x.texi index 5a33bab0737..46d3fab046e 100644 --- a/man/m-x.texi +++ b/man/m-x.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node M-x, Help, Minibuffer, Top @chapter Running Commands by Name diff --git a/man/macos.texi b/man/macos.texi index 9451f35f4a5..bcb25a7e52e 100644 --- a/man/macos.texi +++ b/man/macos.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. +@c Copyright (C) 2000, 2001, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Mac OS, MS-DOS, Antinews, Top @appendix Emacs and the Mac OS diff --git a/man/maintaining.texi b/man/maintaining.texi index b11ae6b6cdd..2af47f6ecaf 100644 --- a/man/maintaining.texi +++ b/man/maintaining.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, -@c 2001, 2005 Free Software Foundation, Inc. +@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Maintaining, Abbrevs, Building, Top @chapter Maintaining Programs @@ -849,7 +849,7 @@ continue to exist. Emacs and have Emacs show you the matching lines one by one. This works much like running a compilation; finding the source locations of the @code{grep} matches works like finding the compilation errors. -@xref{Compilation}. +@xref{Grep Searching}. @node List Tags @subsection Tags Table Inquiries diff --git a/man/major.texi b/man/major.texi index 23e0f8e116f..74613a24321 100644 --- a/man/major.texi +++ b/man/major.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Major Modes, Indentation, International, Top @chapter Major Modes diff --git a/man/makefile.w32-in b/man/makefile.w32-in index ec14ae3abe3..a5543a8c440 100644 --- a/man/makefile.w32-in +++ b/man/makefile.w32-in @@ -1,7 +1,6 @@ #### -*- Makefile -*- for the Emacs Manual and other documentation. -# Copyright (C) 2003, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -109,7 +108,6 @@ EMACSSOURCES= \ $(srcdir)/kmacro.texi info: $(INFO_TARGETS) - $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) dvi: $(DVI_TARGETS) @@ -124,6 +122,9 @@ dvi: $(DVI_TARGETS) # Some Windows ports of makeinfo seem to require -o to come before the # texi filename, contrary to GNU standards. +$(infodir)/dir: + $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) + $(infodir)/info: $(INFOSOURCES) $(MAKEINFO) --no-split -o $@ info.texi diff --git a/man/mark.texi b/man/mark.texi index 5f4c44de9e1..eb21a51cb27 100644 --- a/man/mark.texi +++ b/man/mark.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Mark, Killing, Help, Top @chapter The Mark and the Region diff --git a/man/message.texi b/man/message.texi index ce78e1bb68b..7e4ffb84d72 100644 --- a/man/message.texi +++ b/man/message.texi @@ -8,8 +8,8 @@ @copying This file documents Message, the Emacs message composition mode. -Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/mh-e.texi b/man/mh-e.texi index 7f95178fde1..babe1a15aa0 100644 --- a/man/mh-e.texi +++ b/man/mh-e.texi @@ -15,7 +15,8 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of @cite{mh-e, The Emacs Interface to MH}, for mh-e, Version @value{VERSION}. -Copyright 1995, 2001, 2002, 2004 Free Software Foundation, Inc. +Copyright (C) 1995, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/mini.texi b/man/mini.texi index 0a775000722..3797260f9cc 100644 --- a/man/mini.texi +++ b/man/mini.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 00, 2001 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Minibuffer, M-x, Basic, Top @chapter The Minibuffer @@ -270,7 +270,7 @@ Completion}. @end ifnottex @item ? Display a list of all possible completions of the text in the minibuffer -(@code{minibuffer-list-completions}). +(@code{minibuffer-completion-help}). @end table @kindex SPC diff --git a/man/misc.texi b/man/misc.texi index b52264e1f57..baebc6bf4d0 100644 --- a/man/misc.texi +++ b/man/misc.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2004, 2005 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Miscellaneous Commands diff --git a/man/msdog.texi b/man/msdog.texi index a5aea27f161..782a239ed42 100644 --- a/man/msdog.texi +++ b/man/msdog.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node MS-DOS, Manifesto, Mac OS, Top @appendix Emacs and MS-DOS @@ -583,6 +583,12 @@ However, due to incompatibilities between MS-DOS/MS-Windows and other systems, there are several DOS-specific aspects of this support that you should be aware of. This section describes these aspects. + The description below is largely specific to the MS-DOS port of +Emacs, especially where it talks about practical implications for +Emacs users. For other operating systems, see the @file{code-pages.el} +package, which implements support for MS-DOS- and MS-Windows-specific +encodings for all platforms other than MS-DOS. + @table @kbd @item M-x dos-codepage-setup Set up Emacs display and coding systems as appropriate for the current @@ -721,7 +727,8 @@ DOS codepages for the same locale. For example, DOS codepage 850 supports the same character set as Windows codepage 1252; DOS codepage 855 supports the same character set as Windows codepage 1251, etc. The MS-Windows version of Emacs uses the current codepage for display -when invoked with the @samp{-nw} option. +when invoked with the @samp{-nw} option. Support for codepages in the +Windows port of Emacs is part of the @file{code-pages.el} package. @node MS-DOS Processes @section Subprocesses on MS-DOS diff --git a/man/mule.texi b/man/mule.texi index 0f9873cdb0d..fa5e1246f25 100644 --- a/man/mule.texi +++ b/man/mule.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1997, 1999, 2000, 2001, 2005 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, +@c 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node International, Major Modes, Frames, Top @chapter International Character Set Support @@ -592,12 +593,15 @@ coding systems @code{no-conversion}, @code{raw-text} and @cindex international files from DOS/Windows systems A special class of coding systems, collectively known as @dfn{codepages}, is designed to support text encoded by MS-Windows and -MS-DOS software. To use any of these systems, you need to create it -with @kbd{M-x codepage-setup}. @xref{MS-DOS and MULE}. After -creating the coding system for the codepage, you can use it as any -other coding system. For example, to visit a file encoded in codepage -850, type @kbd{C-x @key{RET} c cp850 @key{RET} C-x C-f @var{filename} -@key{RET}}. +MS-DOS software. The names of these coding systems are +@code{cp@var{nnnn}}, where @var{nnnn} is a 3- or 4-digit number of the +codepage. You can use these encodings just like any other coding +system; for example, to visit a file encoded in codepage 850, type +@kbd{C-x @key{RET} c cp850 @key{RET} C-x C-f @var{filename} +@key{RET}}@footnote{ +In the MS-DOS port of Emacs, you need to create a @code{cp@var{nnn}} +coding system with @kbd{M-x codepage-setup}, before you can use it. +@xref{MS-DOS and MULE}.}. In addition to converting various representations of non-@acronym{ASCII} characters, a coding system can perform end-of-line conversion. Emacs @@ -818,7 +822,7 @@ pattern, are decoded correctly. One of the builtin If Emacs recognizes the encoding of a file incorrectly, you can reread the file using the correct coding system by typing @kbd{C-x -@key{RET} c @var{coding-system} @key{RET} M-x revert-buffer +@key{RET} r @var{coding-system} @key{RET}}. To see what coding system Emacs actually used to decode the file, look at the coding system mnemonic letter near the left edge of the mode line (@pxref{Mode Line}), or type @kbd{C-h C @key{RET}}. @@ -1105,7 +1109,7 @@ C-w} to specify a new file name for that buffer. @findex recode-file-name If a mistake occurs when encoding a file name, use the command -command @kbd{M-x recode-file-name} to change the file name's coding +@kbd{M-x recode-file-name} to change the file name's coding system. This prompts for an existing file name, its old coding system, and the coding system to which you wish to convert. diff --git a/man/org.texi b/man/org.texi index 1c1ac5ae4f9..0545cf462ff 100644 --- a/man/org.texi +++ b/man/org.texi @@ -4,8 +4,8 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 3.13 -@set DATE July 2005 +@set VERSION 3.15 +@set DATE September 2005 @dircategory Emacs @direntry @@ -94,7 +94,7 @@ Introduction * Summary:: Brief summary of what Org-mode does * Installation and Activation:: How to install Org-mode -* Feedback:: Bug reportes, ideas, patches etc. +* Feedback:: Bug reports, ideas, patches etc. Document Structure @@ -116,9 +116,11 @@ Tables Calculations in tables * Formula syntax:: How to write a formula -* Applying a formula:: How to get a formula executed -* Recalculation:: Re-applying all formulas in a table -* Summing:: Summing columns and rows +* Column formulas:: Formulas valid for all fields in a column +* Advanced features:: Field names, parameters and automatic recalc +* Named-field formulas:: Formulas valid in single fields +* Editing/debugging formulas:: Changing a stored formula +* Appetizer:: Hyperlinks @@ -180,7 +182,7 @@ Miscellaneous @menu * Summary:: Brief summary of what Org-mode does * Installation and Activation:: How to install Org-mode -* Feedback:: Bug reportes, ideas, patches etc. +* Feedback:: Bug reports, ideas, patches etc. @end menu @node Summary, Installation and Activation, Introduction, Introduction @@ -198,7 +200,7 @@ help to work with the tree. Tables are easily created with a built-in table editor. Org-mode supports ToDo items, deadlines, time stamps, and scheduling. It dynamically compiles entries into an agenda that utilizes and smoothly integrates much of the Emacs calendar and diary. -Plain text URL-like links connect to websites, emails, usenet +Plain text URL-like links connect to websites, emails, Usenet messages, BBDB entries, and any files related to the projects. For printing and sharing of notes, an Org-mode file can be exported as a structured ASCII file, or as HTML. @@ -715,10 +717,19 @@ above. @cindex calculations, in tables @kindex C-c = @item C-c = -Replace current field with the result of a formula. When called with a -@kbd{C-u} prefix, apply the equation in the current field and down -through the current column to a horizonal separator line or the end of -the table. For details, see @ref{Table calculations}. +Install a new formula for the current column and replace current field +with the result of the formula. + +@kindex C-u C-c = +@item C-u C-c = +Install a new formula for the current field, which must be a named +field. Evaluate the formula and replace the field content with the +result. + +@kindex C-c ' +@item C-c ' +Edit all formulas associated with the current table in a separate +buffer. @kindex C-c * @item C-c * @@ -729,9 +740,9 @@ first horizontal separator line). For details, see @ref{Table calculations}. @kindex C-# @item C-# -Rotate the recalculation mark in first column through the states +Rotate the calculation mark in first column through the states @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of -these marks see @ref{Table calculations}. When there is an active +these marks see @ref{Advanced features}. When there is an active region, change all marks in the region. @kindex C-c ? @@ -791,36 +802,58 @@ it off with @section Calculations in tables @cindex calculations, in tables -While the Org-mode table editor misses many features of a full -spreadsheet, it nevertheless has very useful capabilities to compute -fields. In horizontal direction, it can use complex expressions to -compute a field from other fields @emph{in the same row}, using named -columns, constants and parameters. The Emacs @file{calc} package is -required for this feature to work. In vertical direction, only -summing is supported. +The table editor has some spreadsheet-like capabilities. The Emacs +@file{calc} package is required for this feature to work. There are +basically two levels of complexity for table calculations in Org-mode. +On the basic level, tables do only horizontal computations, so a field +can be computed from other fields @emph{in the same row}, and Org-mode +assumes that there is only one formula for each column. This is very +efficient to work with and enough for many tasks. On the complex +level, columns and individual fields can be named for easier +referencing in formulas, individual named fields can have their own +formula associated with them, and recalculation can be automated. @menu * Formula syntax:: How to write a formula -* Applying a formula:: How to get a formula executed -* Recalculation:: Re-applying all formulas in a table -* Summing:: Summing columns and rows +* Column formulas:: Formulas valid for all fields in a column +* Advanced features:: Field names, parameters and automatic recalc +* Named-field formulas:: Formulas valid in single fields +* Editing/debugging formulas:: Changing a stored formula +* Appetizer:: Taste the power of calc @end menu -@node Formula syntax, Applying a formula, Table calculations, Table calculations +@node Formula syntax, Column formulas, Table calculations, Table calculations @subsection Formula syntax -A formula for horizontal computations can be any algebraic expression -understood by the Emacs @file{calc} package. Before evaluation, -variable substitution takes place: @samp{$} is replaced by the field -the cursor is currently in, and $1..$n reference the fields in the -current row. @samp{$name} is interpreted as the name of a column, -parameter or constant. Constants are defined globally through the -variable @code{org-table-formula-constants}. If you have the +A formula can be any algebraic expression understood by the Emacs +@file{calc} package. Before evaluation by @code{calc-eval} +(@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc +from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable +substitution takes place: + +@example + $ @r{refers to the current field} + $3 @r{refers to the field in column 3 of the current row} + $3..$7 @r{a vector of the fields in columns 3-7 of current row} + $P1..$P3 @r{vector of column range, using column names} + &2 @r{second data field above the current, in same column} + &5-2 @r{vector from fifth to second field above current} + &III-II @r{vector of fields between 2nd and 3rd hline above} + &III @r{vector of fields between third hline above and current field} + $name @r{a named field, parameter or constant} +@end example + +The range vectors can be directly fed into the calc vector functions +like functions @samp{vmean} and @samp{vsum}. + +@samp{$name} is interpreted as the name of a column, parameter or +constant. Constants are defined globally through the variable +@code{org-table-formula-constants}. If you have the @file{constants.el} package, it will also be used to resolve -constants, including natural constants like @samp{$k} for Plancks +constants, including natural constants like @samp{$k} for Planck's constant, units like @samp{$km} for kilometers. Column names and parameters can be specified in special table lines. These are -described below, see @ref{Recalculation}. +described below, see @ref{Advanced features}. A formula can contain an optional mode string after a semicolon. This string consists of flags to influence calc's modes@footnote{By @@ -833,66 +866,65 @@ switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, @samp{e2} or @samp{f4} to switch to normal, scientific, engineering, or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F}, and @samp{S} to turn on degrees, radians, fraction and symbolic modes, -respectively. In addition, you may provide a @code{printf} specifier -to reformat the final result. A few examples: +respectively. In addition, you may provide a @code{printf} format +specifier to reformat the final result. A few examples: @example $1+$2 @r{Sum of first and second field} $1+$2;%.2f @r{Same, format result to two decimals} exp($2)+exp($1) @r{Math functions can be used} $;%.1f @r{Reformat current cell to 1 decimal} - ($3-32)*5/9 @r{degrees F -> C conversion} + ($3-32)*5/9 @r{Degrees F -> C conversion} $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} - tan($1);Dp3s1 @r{compute in degrees, precision 3, display SCI 1} - vmean($2..$7) @r{compute column range mean, using vector function} + tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} + sin($1);Dp3%.1e @r{Same, but use printf specifier for display} + vmean($2..$7) @r{Compute column range mean, using vector function} + vsum(&III) @r{Sum numbers from 3rd hline above to here} taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} @end example -@node Applying a formula, Recalculation, Formula syntax, Table calculations -@subsection Applying a formula +@node Column formulas, Advanced features, Formula syntax, Table calculations +@subsection Column formulas To apply a formula to a field, type it directly into the field, preceded by an equal sign, like @samp{=$1+$2}. When you press @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the -field, the formula will be evaluated and replaced with the result. If -the field contains only @samp{=}, the formula most recently applied -anywhere in the @emph{same column} will be used. +field, the formula will be stored as the formula for the current +column, evaluated and the current field replaced with the result. If +the field contains only @samp{=}, the previously stored formula for +this column is used. For each column, Org-mode will remember the most recently used -formula. The information is stored in a special line directly below -the table. When adding/deleting/moving columns with the appropriate -commands, the stored equations will be modified accordingly. When a -column used in a calculation is removed, references to this column -become invalid and will cause an error upon applying the equation. +formula. The information is stored in a special line starting with +@samp{#+TBLFM} directly below the table. When adding/deleting/moving +columns with the appropriate commands, the stored equations will be +modified accordingly. When a column used in a calculation is removed, +references to this column become invalid and will cause an error upon +applying the equation. Instead of typing an equation into the field, you may also use the command @kbd{C-c =}. It prompts for a formula (with default taken -from the @samp{#+TBLFM:} line) and applies it to the current field. -If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will -be applied to the current field and down to the next separator line -or the end of the table. A numerical prefix will apply it to that -many fields in the current column. - -When the evaluation of a formula leads to an error, the field content -becomes the string @samp{#ERROR}. If you would like see what is going -on during variable substitution and calculation in order to find a -bug, turn on formula debugging in the menu and repeat the calculation -by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. -Detailed information will be displayed. - -@node Recalculation, Summing, Applying a formula, Table calculations -@subsection Recalculation +from the @samp{#+TBLFM:} line) and applies it to the current field. A +numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many +subsequent fields in the current column. To recompute all the fields in a line, use the command @kbd{C-c *}. It re-applies all stored equations to the current row, from left to right. With a @kbd{C-u} prefix, this will be done to every line in the table, so use this command it you want to make sure the entire -table is up-to-date. A more automatic way of recalculating the -current line requires marking the line: If the first column of a row -contains only @samp{#}, the row will be re-computed with every -@key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row. Here is an -example of a table that collects exam results of students, with some -rows activated for semi-automatic computations. - +table is up-to-date. @kbd{C-u C-c C-c} is another way to update the +entire table. Global updating does not touch the line(s) above the +first horizontal separator line, assuming that this is the table +header. + +@node Advanced features, Named-field formulas, Column formulas, Table calculations +@subsection Advanced features + +If you want want the recalculation of fields to happen automatically, +or if you want to be able to assign a formula to an individual field +(instead of an entire column) you need to reserve the first column of +the table for special marking characters. Here is an example of a +table that collects exam results of students and makes use of these +features: @example @group |---+---------+--------+--------+--------+-------+------| @@ -903,50 +935,112 @@ rows activated for semi-automatic computations. | ^ | | m1 | m2 | m3 | mt | | |---+---------+--------+--------+--------+-------+------| | # | Peter | 10 | 8 | 23 | 41 | 8.2 | -| # | Sara | 7 | 14 | 19 | 40 | 8.0 | +| # | Sara | 6 | 14 | 19 | 39 | 7.8 | | # | Sam | 2 | 4 | 3 | 9 | 1.8 | |---+---------+--------+--------+--------+-------+------| +| | Average | | | | 29.7 | | +| ^ | | | | | at | | | $ | max=50 | | | | | | |---+---------+--------+--------+--------+-------+------| -#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f +#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f @end group @end example -@noindent -The example also demonstrates a number of features: -@enumerate -@item -If the first field of a row contains only @samp{!}, this row defines -@emph{names} for the different columns so that you can write -@samp{$Tot} instead of @samp{$6} --- useful in larger tables, -when counting columns becomes error prone. -@item -If the first field of a row contains only @samp{$}, fields in this row -can define @emph{parameters} for formulas. For example, if a field in -a @samp{$} row contains @samp{max=50}, then formulas in this table can -refer to the value 50 using @samp{$max}. Parameters work exactly like -constants, only that they can be defined on a per-table basis. -Changing a parameter and then recalculating the table can be useful -and fun. -@item -It the first field contains only @samp{^}, fields in this row define -names for the fields in the row above, for example @samp{$m1} for -@samp{10}. Similarly, if the marking character is @samp{_}, the names -are valie for the fields in the row below. -@item -A column range @samp{$P1..$P3} is expanded to a vector, so that calc's -vector functions (in this case @samp{vsum}, but there are many more) -can be applied to ranges. For a range, columns may be referenced by -name or number, in either sequence. -@end enumerate -@noindent If a table contains any line with @samp{#} as the -first field, @kbd{C-u C-c *} will only change the marked lines and -leave all unmarked lines alone. You can also mark a line with -@samp{*}. These lines will also be recalculated with @kbd{C-u C-c *}, -but not upon @key{TAB} and @key{RET}. Use this for lines which are -slow to calculate. +@noindent @b{Important}: Please note that for these special tables, +recalculating the table with @kbd{C-u C-c *} does only affect rows +which are marked @samp{#} or @samp{*}, and named fields. The column +formulas are not applied in rows with empty first field. + +The marking characters have the following meaning: +@table @samp +@item ! +The fields in this line define names for the columns, so that you may +refer to a column as @samp{$Tot} instead of @samp{$6}. +@item ^ +This row define names for the fields @emph{above} the row. With such +a definition, any formula in the table may use @samp{$m1} to refer to +the value @samp{10}. Also, named fields can have their own formula +associated with them. +@item _ +Similar to @samp{^}, but defines names for the fields in the row +@emph{below}. +@item $ +Fields in this row can define @emph{parameters} for formulas. For +example, if a field in a @samp{$} row contains @samp{max=50}, then +formulas in this table can refer to the value 50 using @samp{$max}. +Parameters work exactly like constants, only that they can be defined on +a per-table basis. Changing a parameter and then recalculating the +table can be useful. +@item # +Fields in this row are automatically recalculated when pressing +@key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row. Also, this row +is selected for a global recalculation with @kbd{C-u C-c *}. Unmarked +lines will be left alone by this command. +@item * +Selects this line for global recalculation with @kbd{C-u C-c *}, but +not for automatic recalculation. Use this when automatic +recalculation slows down editing too much. +@item +Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}. +All lines that should be recalculated should be marked with @samp{#} +or @samp{*}. +@end table + +@node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations +@subsection Named-field formulas -Just to wet your appetite on what can be done with the fantastic +A named field can have its own formula associated with it. In the +example above, this is used for the @samp{at} field that contains +the average result of the students. To enter a formula for a named +field, just type it onto the buffer, preceded by @samp{:=}. Or use +@kbd{C-u C-c =}. This equation will be stored below the table like +@samp{$name=...}. Any recalculation in the table (even if only +requested for the current line) will also update all named field +formulas. + +@node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations +@subsection Editing and debugging formulas + +To edit a column or field formula, you can use the commands @kbd{C-c +=} and @kbd{C-u C-c =}, respectively. The currently active expression +is then presented as default in the minibuffer, were it may be edited. + +Note that making a table field blank does not remove the formula +associated with the field - during the next recalculation the field +will be filled again. To remove a formula from a field, you have to +give an empty reply when prompted for the formula, or to edit the +@samp{#+TBLFM} line. + +@kindex C-c C-c +You may edit the @samp{#+TBLFM} directly and re-apply +the changed equations with @kbd{C-c C-c} in that line, or with the +normal recalculation commands in the table. + +@kindex C-c ' +@kindex C-c C-c +@kindex C-c C-q +@kindex C-c ? +In particular for large tables with many formulas, it is convenient to +use the command @kbd{C-c '} to edit the formulas of the current table +in a separate buffer. That buffer will show the formulas one per +line, and you are free to edit, add and remove formulas. Press +@kbd{C-c ?} on a @samp{$...} expression to get information about its +interpretation. Exiting the buffer with @kbd{C-c C-c} only stores the +modified formulas below the table. Exiting with @kbd{C-u C-c C-c} +also applies them to the entire table. @kbd{C-c C-q} exits without +installing the changes. + +When the evaluation of a formula leads to an error, the field content +becomes the string @samp{#ERROR}. If you would like see what is going +on during variable substitution and calculation in order to find a +bug, turn on formula debugging in the menu and repeat the calculation +by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. +Detailed information will be displayed. + +@node Appetizer, , Editing/debugging formulas, Table calculations +@subsection Appetizer + +Finally, just to wet your appetite on what can be done with the fantastic @file{calc} package, here is a table that computes the Taylor series for a couple of functions (homework: try that with Excel :-) @@ -966,22 +1060,6 @@ for a couple of functions (homework: try that with Excel :-) @end group @end example -@node Summing, , Recalculation, Table calculations -@subsection Summing - -Finally, when typing a formula into a field, a number of special -keywords execute predefined sums over the current row or column and -enter the result into the current field. These calculations are -one-off, the formula is not stored, and you will neet to re-enter it -in order to compute again. - -@example -= @r{Execute the stored formula valid in this column.} -=sum @r{Sum all fields above the current (alias @code{=sumv}).} -=sumh @r{Sum all fields to the left of the current field.} -=sum3 @r{Same as @samp{=sum}, but use just 3 fields above current.} -@end example - @node orgtbl-mode, table.el, Table calculations, Tables @section The Orgtbl minor mode @cindex orgtbl-mode @@ -1029,7 +1107,7 @@ possible. @chapter Hyperlinks @cindex hyperlinks -Just like HMTL, Org-mode provides links to other files, usenet +Just like HMTL, Org-mode provides links to other files, Usenet articles, emails and much more. @menu @@ -1050,7 +1128,7 @@ articles, emails and much more. @cindex USENET links @cindex SHELL links -Org-mode supports links to files, websites, usenet and email messages; +Org-mode supports links to files, websites, Usenet and email messages; and BBDB database entries. Links are just plain-text URL-like locators, optionally enclosed by angular brackets. The following list shows examples for each link type. @@ -1142,13 +1220,14 @@ the @emph{Remember} package by John Wiegley. @emph{Remember} lets you store quick notes with little interruption of your work flow. See @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more information. The notes produced by @emph{Remember} can be stored in -different ways, and Org-mode files are a good target. -Org-mode allows to file away notes either to a default file, or -directly to the correct location in your Org-mode outline tree. The -following customization will tell @emph{Remember} to use org files as -target, and to create annotations compatible with Org-mode links. +different ways, and Org-mode files are a good target. Org-mode allows +to file away notes either to a default file, or directly to the +correct location in your Org-mode outline tree. The following +customization@footnote{The two autoload forms are only necessary if +@file{org.el} is not part of the Emacs distribution or and XEmacs +package.} will tell @emph{Remember} to use org files as target, and to +create annotations compatible with Org-mode links. -@c FIXME: The autoload will not be necessary when Org-mode is part of Emacs @example (autoload 'org-remember-annotation "org") (autoload 'org-remember-handler "org") @@ -1457,7 +1536,7 @@ continuing until the entry is marked DONE. An example: @end example @item SCHEDULED -@cindex DEADLINE keyword +@cindex SCHEDULED keyword If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you are planning to start working on that task on the given date. The headline will be listed under the given date. In addition, a reminder @@ -2138,8 +2217,10 @@ horizontal separator line will be formatted as table header fields. @cindex fixed width @item -Lines starting with @samp{:} are typeset in a fixed-width font, to -allow quoting of computer code etc. +If a headline starts with the word @samp{QUOTE}, the text below the +headline will be typeset as fixed-width, to allow quoting of computer +codes etc. Lines starting with @samp{:} are also typeset in +fixed-width font. @cindex HTML tags @item @@ -2233,7 +2314,6 @@ Toggle the COMMENT keyword at the beginning of an entry. @cindex completion, of TODO keywords @cindex completion, of dictionary words @cindex completion, of option keywords -@cindex completion, of keyword formulas Org-mode supports in-buffer completion. This type of completion does not make use of the minibuffer. You simply type a few letters into @@ -2254,8 +2334,6 @@ After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or option keyword is already complete, pressing @kbd{M-@key{TAB}} again will insert example settings for this keyword. @item -After @samp{=}, complete keyword formulas for tables. -@item Elsewhere, complete dictionary words using ispell. @end itemize @end table @@ -2376,7 +2454,7 @@ checks for the availability of calc by looking for the function been installed properly. As of Emacs 22, calc is part of the Emacs distribution. Another possibility for interaction between the two packages is using calc for embedded calculations. @xref{Embedded Mode, -, Embedded Mode, calc, The calc maanual}. +, Embedded Mode, calc, GNU Emacs Calc Manual}. @cindex @file{constants.el} @item @file{constants.el} by Carsten Dominik In a table formula (@pxref{Table calculations}), it is possible to use @@ -2431,7 +2509,7 @@ have found too hard to fix. @item If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the filling is correctly disabled. However, if some text directly -(without an empty line in between) preceeds or follows a table, calling +(without an empty line in between) precedes or follows a table, calling @code{fill-paragraph} in that text will also fill the table like normal text. Also, @code{fill-region} does bypass the @code{fill-paragraph} code and will fill tables like normal text. @@ -2490,7 +2568,8 @@ beta testing and contributed a number of very useful ideas. Christian Schlauer proposed angular brackets around links, among other things. @item -David Wainberg suggested to implement an archiving mechanism. +David Wainberg suggested to implement an archiving mechanism and helped +testing. @item Linking to VM/BBDB/GNUS was inspired by Tom Shannon's @file{organizer-mode.el}. diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi index de9b962e4a5..26ca071d2e4 100644 --- a/man/pcl-cvs.texi +++ b/man/pcl-cvs.texi @@ -7,7 +7,7 @@ @copying Copyright @copyright{} 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -1999, 2000, 2002, 2004 Free Software Foundation, Inc. + 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/pgg.texi b/man/pgg.texi index 8593a9e64a2..203f0cda371 100644 --- a/man/pgg.texi +++ b/man/pgg.texi @@ -8,7 +8,7 @@ @copying This file describes the PGG. -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. Copyright (C) 2001 Daiki Ueno. @quotation diff --git a/man/picture.texi b/man/picture.texi index 465c35143cc..46a735122df 100644 --- a/man/picture.texi +++ b/man/picture.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Picture, Sending Mail, Abbrevs, Top @chapter Editing Pictures diff --git a/man/programs.texi b/man/programs.texi index 83d8d6aa0b8..d5b608a288c 100644 --- a/man/programs.texi +++ b/man/programs.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, -@c 2001, 2005 Free Software Foundation, Inc. +@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Programs, Building, Text, Top @chapter Editing Programs @@ -1016,7 +1016,7 @@ for example, in C mode the value of the variable is after the @samp{/*} itself, and accepts C++ style comments also. (Note that @samp{\\} is needed in Lisp syntax to include a @samp{\} in the string, which is needed to deny the first star its special meaning -in regexp syntax. @xref{Regexps}.) +in regexp syntax. @xref{Regexp Backslash}.) @vindex comment-start @vindex comment-end diff --git a/man/reftex.texi b/man/reftex.texi index f6e5a6da082..12c4ce6e416 100644 --- a/man/reftex.texi +++ b/man/reftex.texi @@ -25,7 +25,8 @@ citations and indices for LaTeX documents with Emacs. This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for @b{Ref@TeX{}} @value{VERSION} -Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/regs.texi b/man/regs.texi index 41b2e639855..0e3c9073ac7 100644 --- a/man/regs.texi +++ b/man/regs.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Registers, Display, Rectangles, Top @chapter Registers diff --git a/man/rmail.texi b/man/rmail.texi index 091d1e60b74..71181b0db34 100644 --- a/man/rmail.texi +++ b/man/rmail.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Rmail, Dired, Sending Mail, Top @chapter Reading Mail with Rmail diff --git a/man/sc.texi b/man/sc.texi index 11ae3d139ce..2189539476c 100644 --- a/man/sc.texi +++ b/man/sc.texi @@ -15,7 +15,8 @@ This document describes the Supercite Version 3.1 package for citing and attributing the replies for various GNU Emacs mail and news reading subsystems. -Copyright @copyright{} 1993, 2001, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -948,7 +949,7 @@ to: (setq mail-citation-hook 'sc-cite-original) @end example -Note the lack of of a single quote on the first argument to @code{setq}. +Note the lack of a single quote on the first argument to @code{setq}. @node MH-E with any Emacsen, VM with any Emacsen, Emacs 18 MUAs, Getting Connected @comment node-name, next, previous, up diff --git a/man/screen.texi b/man/screen.texi index a2f20e1721d..cd8224a6db2 100644 --- a/man/screen.texi +++ b/man/screen.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Screen, User Input, Acknowledgments, Top @chapter The Organization of the Screen diff --git a/man/search.texi b/man/search.texi index de530f7ee01..0233f7ce8de 100644 --- a/man/search.texi +++ b/man/search.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2004, 2005 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Search, Fixit, Display, Top @chapter Searching and Replacement @@ -24,6 +24,8 @@ asks interactively which occurrences to replace. * Word Search:: Search for sequence of words. * Regexp Search:: Search for match for a regexp. * Regexps:: Syntax of regular expressions. +* Regexp Backslash:: Regular expression constructs starting with `\'. +* Regexp Example:: A complex regular expression explained. * Search Case:: To ignore case while searching, or not. * Replace:: Search, and replace some or all matches. * Other Repeating Search:: Operating on all matches for some regexp. @@ -210,7 +212,7 @@ of bindings, look at the documentation of @code{isearch-mode} with @cindex searching for non-@acronym{ASCII} characters @cindex input method, during incremental search - To enter non-@acronym{ASCII} characters in an incrementral search, + To enter non-@acronym{ASCII} characters in an incremental search, you must use an input method (@pxref{Input Methods}). If an input method is enabled in the current buffer when you start the search, you can use it while you type the search string also. Emacs indicates @@ -294,7 +296,7 @@ commands such as @kbd{@key{PRIOR}} (@code{scroll-down}), @kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter}) within the search, thus letting you see more of the text near the current match. You must run these commands via their key sequences to -stay in the search---typing M-x @var{comand-name} will always +stay in the search---typing M-x @var{command-name} will always terminate a search. You can give prefix arguments to these commands in the usual way. @@ -309,6 +311,16 @@ handy during a search. You can make other commands usable within an incremental search by giving the command a non-@code{nil} @code{isearch-scroll} property. +For example, to make @kbd{C-h l} usable within an incremental search +in all future Emacs sessions, use @kbd{C-h c} to find what command it +runs. (You type @kbd{C-h c C-h l}; it says @code{view-lossage}.) Then +you can put the following line in your @file{.emacs} file (@pxref{Init File}): + +@example +(put 'view-lossage 'isearch-scroll t) +@end example + +@noindent This works for commands that don't permanently change point, the buffer contents, the match data, the current buffer, or the selected window and frame. The command must not delete the current window and @@ -331,7 +343,8 @@ its new position of point. @vindex search-slow-speed The slow terminal style of display is used when the terminal baud rate is less than or equal to the value of the variable @code{search-slow-speed}, -initially 1200. See @code{baud-rate} in @ref{Display Custom}. +initially 1200. See also the discussion of the variable @code{baud-rate} +(@pxref{baud-rate,, Customization of Display}). @vindex search-slow-window-lines The number of lines to use in slow terminal search display is controlled @@ -658,20 +671,26 @@ has two functions: it quotes the special characters (including Because @samp{\} quotes special characters, @samp{\$} is a regular expression that matches only @samp{$}, and @samp{\[} is a regular expression that matches only @samp{[}, and so on. + +See the following section for the special constructs that begin +with @samp{\}. @end table -Note: for historical compatibility, special characters are treated as + Note: for historical compatibility, special characters are treated as ordinary ones if they are in contexts where their special meanings make no sense. For example, @samp{*foo} treats @samp{*} as ordinary since there is no preceding expression on which the @samp{*} can act. It is poor practice to depend on this behavior; it is better to quote the special character anyway, -regardless of where it appears.@refill +regardless of where it appears. + +@node Regexp Backslash +@section Backslash in Regular Expressions -For the most part, @samp{\} followed by any character matches only that -character. However, there are several exceptions: two-character -sequences starting with @samp{\} that have special meanings. The second -character in the sequence is always an ordinary character when used on -its own. Here is a table of @samp{\} constructs. + For the most part, @samp{\} followed by any character matches only +that character. However, there are several exceptions: two-character +sequences starting with @samp{\} that have special meanings. The +second character in the sequence is always an ordinary character when +used on its own. Here is a table of @samp{\} constructs. @table @kbd @item \| @@ -825,8 +844,11 @@ matches any character that does @emph{not} belong to category The constructs that pertain to words and syntax are controlled by the setting of the syntax table (@pxref{Syntax}). - Here is a complicated regexp. It is a simplified version of the -regexp that Emacs uses, by default, to recognize the end of a sentence +@node Regexp Example +@section Regular Expression Example + + Here is a complicated regexp---a simplified version of the regexp +that Emacs uses, by default, to recognize the end of a sentence together with any whitespace that follows. We show its Lisp syntax to distinguish the spaces from the tab characters. In Lisp syntax, the string constant begins and ends with a double-quote. @samp{\"} stands @@ -853,27 +875,6 @@ for Lisp syntax. In commands that use ordinary minibuffer input to read a regexp, you would quote the @kbd{C-j} by preceding it with a @kbd{C-q} to prevent @kbd{C-j} from exiting the minibuffer. -@ignore -@c I commented this out because it is missing vital information -@c and therefore useless. For instance, what do you do to *use* the -@c regular expression when it is finished? What jobs is this good for? -@c -- rms - -@findex re-builder -@cindex authoring regular expressions - For convenient interactive development of regular expressions, you -can use the @kbd{M-x re-builder} command. It provides a convenient -interface for creating regular expressions, by giving immediate visual -feedback. The buffer from which @code{re-builder} was invoked becomes -the target for the regexp editor, which pops in a separate window. At -all times, all the matches in the target buffer for the current -regular expression are highlighted. Each parenthesized sub-expression -of the regexp is shown in a distinct face, which makes it easier to -verify even very complex regexps. (On displays that don't support -colors, Emacs blinks the cursor around the matched text, as it does -for matching parens.) -@end ignore - @node Search Case @section Searching and Case @@ -916,7 +917,7 @@ searches also, including those performed by the replace commands Global search-and-replace operations are not needed often in Emacs, but they are available. In addition to the simple @kbd{M-x replace-string} command which replaces all occurrences, -there is a @kbd{M-x query-replace} command which finds each occurrence +there is @kbd{M-%} (@code{query-replace}), which presents each occurrence of the pattern and asks you whether to replace it. The replace commands normally operate on the text from point to the @@ -1012,7 +1013,15 @@ M-x replace-regexp @key{RET} \(c[ad]+r\)-safe @key{RET} \1 @key{RET} performs the inverse transformation. To include a @samp{\} in the text to replace with, you must enter @samp{\\}. - You can also use Lisp expressions to calculate parts of the + If you want to enter part of the replacement string by hand each +time, use @samp{\?} in the replacement string. Each replacement will +ask you to edit the replacement string in the minibuffer, putting +point where the @samp{\?} was. + + The remainder of this subsection is intended for specialized tasks +and requires knowledge of Lisp. Most readers can skip it. + + You can use Lisp expressions to calculate parts of the replacement string. To do this, write @samp{\,} followed by the expression in the replacement string. Each replacement calculates the value of the expression and converts it to text without quoting (if @@ -1050,22 +1059,6 @@ M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET} \,(format "%-72sABC%05d" \& \#) @key{RET} @end example - If you want to enter part of the replacement string by hand each -time, use @samp{\?} in the replacement string. Each replacement will -ask you to edit the replacement string in the minibuffer, putting -point where the @samp{\?} was. For example, - -@example -M-x replace-regexp @key{RET} \\footnote@{ @key{RET} -\&\\label@{fn:\#\?@} @key{RET} -@end example - -@noindent -will add labels starting with @samp{\label@{fn:0@}} to occurrences of -@samp{\footnote@{}, but letting you edit each replacement before -performing it. To number the labels starting at 1, use @samp{\,(1+ -\#)} instead of @samp{\#}. - @node Replacement and Case, Query Replace, Regexp Replace, Replace @subsection Replace Commands and Case @@ -1257,7 +1250,8 @@ Display a list showing each line in the buffer that contains a match for @var{regexp}. To limit the search to part of the buffer, narrow to that part (@pxref{Narrowing}). A numeric argument @var{n} specifies that @var{n} lines of context are to be displayed before and -after each matching line. +after each matching line. Currently, @code{occur} can not correctly +handle multiline matches. @kindex RET @r{(Occur mode)} @kindex o @r{(Occur mode)} @@ -1271,7 +1265,7 @@ searched and moves point to the original of the chosen occurrence. does not select it. Occur mode supports the @code{next-error} functionality described in -in @ref{Compilation Mode}. +@ref{Compilation Mode}. @item M-x list-matching-lines Synonym for @kbd{M-x occur}. @@ -1290,19 +1284,31 @@ after point. In Transient Mark mode, if the region is active, the command operates on the region instead. @item M-x flush-lines @key{RET} @var{regexp} @key{RET} -Delete each line that contains a match for @var{regexp}, operating on -the text after point. In Transient Mark mode, if the region is -active, the command operates on the region instead. +This command deletes each line that contains a match for @var{regexp}, +operating on the text after point; it deletes the current line +if it contains a match starting after point. In Transient Mark mode, +if the region is active, the command operates on the region instead; +it deletes a line partially contained in the region if it contains a +match entirely contained in the region. + +If a match is split across lines, @code{flush-lines} deletes all those +lines. It deletes the lines before starting to look for the next +match; hence, it ignores a match starting on the same line at which +another match ended. @item M-x keep-lines @key{RET} @var{regexp} @key{RET} -Delete each line that @emph{does not} contain a match for -@var{regexp}, operating on the text after point. In Transient Mark -mode, if the region is active, the command operates on the region -instead. +This command deletes each line that @emph{does not} contain a match for +@var{regexp}, operating on the text after point; if point is not at the +beginning of a line, it always keeps the current line. In Transient +Mark mode, if the region is active, the command operates on the region +instead; it never deletes lines that are only partially contained in +the region (a newline that ends a line counts as part of that line). + +If a match is split across lines, this command keeps all those lines. @end table You can also search multiple files under control of a tags table -(@pxref{Tags Search}) or through Dired @kbd{A} command +(@pxref{Tags Search}) or through the Dired @kbd{A} command (@pxref{Operating on Files}), or ask the @code{grep} program to do it (@pxref{Grep Searching}). diff --git a/man/sending.texi b/man/sending.texi index e63e5bb9c4c..6fa5c1b0485 100644 --- a/man/sending.texi +++ b/man/sending.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2003 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Sending Mail, Rmail, Picture, Top @chapter Sending Mail diff --git a/man/ses.texi b/man/ses.texi index 9667161f673..10d52dd66e0 100644 --- a/man/ses.texi +++ b/man/ses.texi @@ -3,12 +3,15 @@ @setfilename ../info/ses @settitle SES: Simple Emacs Spreadsheet @setchapternewpage off +@syncodeindex fn cp +@syncodeindex vr cp +@syncodeindex ky cp @c %**end of header @copying This file documents SES: the Simple Emacs Spreadsheet. -Copyright @copyright{} 2002, 2005 Free Software Foundation, Inc. +Copyright @copyright{} 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -534,7 +537,7 @@ the formula becomes @end lisp and the new row is not included in the sum. -The macro @code{(ses-range @var{from} @var{to})} evalutes to a list of +The macro @code{(ses-range @var{from} @var{to})} evaluates to a list of the values in a rectangle of cells. If your formula is @lisp (apply '+ (ses-range A1 A3)) @@ -655,7 +658,7 @@ tabs, so these are replaced with question marks. @table @kbd @item C-c C-t Confine a cell to its own column (@code{ses-truncate-cell}). This -alows you to move point to a rightward cell that would otherwise be +allows you to move point to a rightward cell that would otherwise be covered by a spill-over. If you don't change the rightward cell, the confined cell will spill over again the next time it is reprinted. @@ -704,7 +707,7 @@ substitute always signals an error. Formulas or printers that you type in are checked immediately for safety. If found to be possibly unsafe and you press N to disapprove, -the action is cancelled and the old formula or printer will remain. +the action is canceled and the old formula or printer will remain. Besides viruses (which try to copy themselves to other files), @code{unsafep} can also detect all other kinds of Trojan horses, such as @@ -919,19 +922,10 @@ cell. @c =================================================================== @node Index, Acknowledgements, For Gurus, Top -@unnumbered Concept Index +@unnumbered Index @printindex cp -@heading Function Index - -@printindex fn - -@heading Variable Index - -@printindex vr - - @c =================================================================== @node Acknowledgements, , Index, Top diff --git a/man/sieve.texi b/man/sieve.texi index a41463c5316..21da1f22c1b 100644 --- a/man/sieve.texi +++ b/man/sieve.texi @@ -9,7 +9,7 @@ @copying This file documents the Emacs Sieve package. -Copyright (C) 2001 Free Software Foundation, Inc. +Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/smtpmail.texi b/man/smtpmail.texi index f75b48dddd4..847d7c7d74c 100644 --- a/man/smtpmail.texi +++ b/man/smtpmail.texi @@ -3,7 +3,7 @@ @settitle Emacs SMTP Library @syncodeindex vr fn @copying -Copyright @copyright{} 2003, 2004 Free Software Foundation, Inc. +Copyright @copyright{} 2003, 2004, 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/speedbar.texi b/man/speedbar.texi index 40296f57082..58dd4b435e1 100644 --- a/man/speedbar.texi +++ b/man/speedbar.texi @@ -5,7 +5,8 @@ @syncodeindex fn cp @copying -Copyright @copyright{} 1999, 2000, 2002, 2004 Free Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -68,7 +69,7 @@ authors of other packages to provide speedbar summaries customized to the needs of that mode. Throughout this manual, activities are defined as `clicking on', or -`expanding' items. Clicking means using using @kbd{Mouse-2} on a +`expanding' items. Clicking means using @kbd{Mouse-2} on a button. Expanding refers to clicking on an expansion button to display an expanded summary of the entry the expansion button is on. @xref{Basic Navigation}. diff --git a/man/texinfo.tex b/man/texinfo.tex index ef68971341a..eb7ea101e61 100644 --- a/man/texinfo.tex +++ b/man/texinfo.tex @@ -3,10 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2005-02-08.10} +\def\texinfoversion{2005-08-10.17} % -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -% 2000, 01, 02 Free Software Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, +% 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +% 2005 Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as diff --git a/man/text.texi b/man/text.texi index 13510deda6c..01cacc1a62e 100644 --- a/man/text.texi +++ b/man/text.texi @@ -1,6 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2002, 2004 -@c Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Text, Programs, Indentation, Top @chapter Commands for Human Languages @@ -228,7 +228,7 @@ normally similar to the following regexp: @end example @noindent -This example is explained in the section on regexps. @xref{Regexps}. +This example is explained in the section on regexps. @xref{Regexp Example}. If you want to use just one space between sentences, you should set @code{sentence-end} to this value: @@ -2664,7 +2664,7 @@ recognition commands (@pxref{Table Recognition}) are equipped with a convenience feature (turned on by default). During table recognition, the contents of a cell are examined to determine which justification was originally applied to the cell and then applies this justification -to the the cell. This is a speculative algorithm and is therefore not +to the cell. This is a speculative algorithm and is therefore not perfect, however, the justification is deduced correctly most of the time. If you desire to disable this feature, customize the variable @code{table-detect-cell-alignment} to set it to @code{nil}. diff --git a/man/tramp.texi b/man/tramp.texi index 756b467157c..b28292cff87 100644 --- a/man/tramp.texi +++ b/man/tramp.texi @@ -25,8 +25,8 @@ @end macro @copying -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free -Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -218,10 +218,10 @@ How file names, directories and localnames are mangled and managed @chapter An overview of @value{tramp} @cindex overview -After the installation of @value{tramp} into your @value{emacsname}, you -will be able to access files on remote machines as though they were -local. Access to the remote file system for editing files, version -control, and @command{dired} are transparently enabled. +After the installation of @value{tramp} into your @value{emacsname}, +you will be able to access files on remote machines as though they +were local. Access to the remote file system for editing files, +version control, and @code{dired} are transparently enabled. Your access to the remote machine can be with the @command{rsh}, @command{rlogin}, @command{telnet} programs or with any similar @@ -289,9 +289,9 @@ Communication with this process happens through an goes into a buffer. @item -The remote host may prompt for a login name (for @command{telnet}). The -login name is given in the file name, so @value{tramp} sends the login name and -a newline. +The remote host may prompt for a login name (for @command{telnet}). +The login name is given in the file name, so @value{tramp} sends the +login name and a newline. @item The remote host may prompt for a password or pass phrase (for @@ -365,7 +365,6 @@ you are finished, you type @kbd{C-x C-s} to save the buffer. Again, @value{tramp} transfers the file contents to the remote host either inline or out-of-band. This is the reverse of what happens when reading the file. - @end itemize I hope this has provided you with a basic overview of what happens @@ -653,7 +652,6 @@ easy to implement, so I haven't got around to it, yet. @item @option{sshx} @cindex method sshx @cindex sshx method -@cindex Cygwin (with sshx method) As you would expect, this is similar to @option{ssh}, only a little different. Whereas @option{ssh} opens a normal interactive shell on @@ -674,9 +672,9 @@ in without such questions. This is also useful for Windows users where @command{ssh}, when invoked from an @value{emacsname} buffer, tells them that it is not allocating a pseudo tty. When this happens, the login shell is wont -to not print any shell prompt, which confuses @value{tramp} mightily. For -reasons unknown, some Windows ports for @command{ssh} (maybe the -Cygwin one) require the doubled @samp{-t} option. +to not print any shell prompt, which confuses @value{tramp} mightily. +For reasons unknown, some Windows ports for @command{ssh} require the +doubled @samp{-t} option. This supports the @samp{-p} kludge. @@ -817,7 +815,6 @@ This method supports the @samp{-p} hack. @cindex scpx method @cindex scp (with scpx method) @cindex ssh (with scpx method) -@cindex Cygwin (with scpx method) As you would expect, this is similar to @option{scp}, only a little different. Whereas @option{scp} opens a normal interactive shell on @@ -832,7 +829,6 @@ This is also useful for Windows users where @command{ssh}, when invoked from an @value{emacsname} buffer, tells them that it is not allocating a pseudo tty. When this happens, the login shell is wont to not print any shell prompt, which confuses @value{tramp} mightily. -Maybe this applies to the Cygwin port of SSH. This method supports the @samp{-p} hack. @@ -1025,7 +1021,7 @@ For example: '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n")) @end lisp -Now you can use an @code{sshf} hop which connects to port 4400 instead of +Now you can use an @option{sshf} hop which connects to port 4400 instead of the standard port. @@ -1074,16 +1070,16 @@ Another consideration with the selection of transfer methods is the environment you will use them in and, especially when used over the Internet, the security implications of your preferred method. -The @command{rsh} and @command{telnet} methods send your password as -plain text as you log in to the remote machine, as well as transferring -the files in such a way that the content can easily be read from other -machines. +The @option{rsh} and @option{telnet} methods send your password as +plain text as you log in to the remote machine, as well as +transferring the files in such a way that the content can easily be +read from other machines. If you need to connect to remote systems that are accessible from the -Internet, you should give serious thought to using @command{ssh} based +Internet, you should give serious thought to using @option{ssh} based methods to connect. These provide a much higher level of security, -making it a non-trivial exercise for someone to obtain your password or -read the content of the files you are editing. +making it a non-trivial exercise for someone to obtain your password +or read the content of the files you are editing. @subsection Which method is the right one for me? @@ -1101,28 +1097,29 @@ methods might be more efficient, but I guess that most people will want to edit mostly small files. I guess that these days, most people can access a remote machine by -using @code{ssh}. So I suggest that you use the @code{ssh} method. -So, type @kbd{C-x C-f +using @command{ssh}. So I suggest that you use the @option{ssh} +method. So, type @kbd{C-x C-f @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd @key{RET}} to edit the @file{/etc/motd} file on the other host. -If you can't use @code{ssh} to log in to the remote host, then select a -method that uses a program that works. For instance, Windows users -might like the @code{plink} method which uses the PuTTY implementation -of @code{ssh}. Or you use Kerberos and thus like @code{krlogin}. +If you can't use @option{ssh} to log in to the remote host, then +select a method that uses a program that works. For instance, Windows +users might like the @option{plink} method which uses the PuTTY +implementation of @command{ssh}. Or you use Kerberos and thus like +@option{krlogin}. For the special case of editing files on the local host as another -user, see the @code{su} or @code{sudo} method. It offers shortened -syntax for the @samp{root} account, like +user, see the @option{su} or @option{sudo} methods. They offer +shortened syntax for the @samp{root} account, like @file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}. -People who edit large files may want to consider @code{scp} instead of -@code{ssh}, or @code{pscp} instead of @code{plink}. These out-of-band -methods are faster than inline methods for large files. Note, however, -that out-of-band methods suffer from some limitations. Please try -first whether you really get a noticeable speed advantage from using an -out-of-band method! Maybe even for large files, inline methods are -fast enough. +People who edit large files may want to consider @option{scp} instead +of @option{ssh}, or @option{pscp} instead of @option{plink}. These +out-of-band methods are faster than inline methods for large files. +Note, however, that out-of-band methods suffer from some limitations. +Please try first whether you really get a noticeable speed advantage +from using an out-of-band method! Maybe even for large files, inline +methods are fast enough. @node Customizing Methods @@ -1365,16 +1362,16 @@ the remote host such that it behaves like @value{tramp} expects. This might be inconvenient because you have to invest a lot of effort into shell setup before you can begin to use @value{tramp}. -The package, therefore, pursues a combined approach. It tries to figure -out some of the more common setups, and only requires you to avoid -really exotic stuff. For example, it looks through a list of +The package, therefore, pursues a combined approach. It tries to +figure out some of the more common setups, and only requires you to +avoid really exotic stuff. For example, it looks through a list of directories to find some programs on the remote host. And also, it knows that it is not obvious how to check whether a file exists, and -therefore it tries different possibilities. (On some hosts and shells, -the command @code{test -e} does the trick, on some hosts the shell -builtin doesn't work but the program @code{/usr/bin/test -e} or -@code{/bin/test -e} works. And on still other hosts, @code{ls -d} is -the right way to do this.) +therefore it tries different possibilities. (On some hosts and +shells, the command @command{test -e} does the trick, on some hosts +the shell builtin doesn't work but the program @command{/usr/bin/test +-e} or @command{/bin/test -e} works. And on still other hosts, +@command{ls -d} is the right way to do this.) Below you find a discussion of a few things that @value{tramp} does not deal with, and that you therefore have to set up correctly. @@ -1409,11 +1406,11 @@ different user. The default value of @code{shell-prompt-pattern}, which is reported to work well in many circumstances. -@item @code{tset} and other questions +@item @command{tset} and other questions @cindex Unix command tset @cindex tset Unix command -Some people invoke the @code{tset} program from their shell startup +Some people invoke the @command{tset} program from their shell startup scripts which asks the user about the terminal type of the shell. Maybe some shells ask other questions when they are started. @value{tramp} does not know how to answer these questions. There are two approaches @@ -1443,20 +1440,21 @@ This weird effect was actually reported by a @value{tramp} user! @item Non-Bourne commands in @file{.profile} After logging in to the remote host, @value{tramp} issues the command -@code{exec /bin/sh}. (Actually, the command is slightly different.) -When @code{/bin/sh} is executed, it reads some init files, such as -@file{~/.shrc} or @file{~/.profile}. +@command{exec /bin/sh}. (Actually, the command is slightly +different.) When @command{/bin/sh} is executed, it reads some init +files, such as @file{~/.shrc} or @file{~/.profile}. Now, some people have a login shell which is not @code{/bin/sh} but a Bourne-ish shell such as bash or ksh. Some of these people might put -their shell setup into the files @code{~/.shrc} or @code{~/.profile}. +their shell setup into the files @file{~/.shrc} or @file{~/.profile}. This way, it is possible for non-Bourne constructs to end up in those -files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf -on those constructs. +files. Then, @command{exec /bin/sh} might cause the Bourne shell to +barf on those constructs. -As an example, imagine somebody putting @code{export FOO=bar} into the -file @file{~/.profile}. The standard Bourne shell does not understand -this syntax and will emit a syntax error when it reaches this line. +As an example, imagine somebody putting @command{export FOO=bar} into +the file @file{~/.profile}. The standard Bourne shell does not +understand this syntax and will emit a syntax error when it reaches +this line. Another example is the tilde (@code{~}) character, say when adding @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this @@ -1467,8 +1465,8 @@ What can you do about this? Well, one possibility is to make sure that everything in @file{~/.shrc} and @file{~/.profile} on all remote hosts is Bourne-compatible. In the -above example, instead of @code{export FOO=bar}, you might use -@code{FOO=bar; export FOO} instead. +above example, instead of @command{export FOO=bar}, you might use +@command{FOO=bar; export FOO} instead. The other possibility is to put your non-Bourne shell setup into some other files. For example, bash reads the file @file{~/.bash_profile} @@ -1476,14 +1474,15 @@ instead of @file{~/.profile}, if the former exists. So bash aficionados just rename their @file{~/.profile} to @file{~/.bash_profile} on all remote hosts, and Bob's your uncle. -The @value{tramp} developers would like to circumvent this problem, so if you -have an idea about it, please tell us. However, we are afraid it is not -that simple: before saying @code{exec /bin/sh}, @value{tramp} does not know -which kind of shell it might be talking to. It could be a Bourne-ish -shell like ksh or bash, or it could be a csh derivative like tcsh, or -it could be zsh, or even rc. If the shell is Bourne-ish already, then -it might be prudent to omit the @code{exec /bin/sh} step. But how to -find out if the shell is Bourne-ish? +The @value{tramp} developers would like to circumvent this problem, so +if you have an idea about it, please tell us. However, we are afraid +it is not that simple: before saying @command{exec /bin/sh}, +@value{tramp} does not know which kind of shell it might be talking +to. It could be a Bourne-ish shell like ksh or bash, or it could be a +csh derivative like tcsh, or it could be zsh, or even rc. If the +shell is Bourne-ish already, then it might be prudent to omit the +@command{exec /bin/sh} step. But how to find out if the shell is +Bourne-ish? @end table @@ -1630,38 +1629,44 @@ This section needs a lot of work! Please help. @cindex method sshx with Cygwin @cindex sshx method with Cygwin -If you use the Cygwin installation of ssh (you have to explicitly select -it in the installer), then it should work out of the box to just select -@code{sshx} as the connection method. You can find information about -setting up Cygwin in their FAQ at @uref{http://cygwin.com/faq/}. +The recent Cygwin installation of @command{ssh} works only with a +Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x +eshell}, and starting @kbd{ssh test.machine}. The problem is evident +if you see a message like this: + +@example +Pseudo-terminal will not be allocated because stdin is not a terminal. +@end example + +Older @command{ssh} versions of Cygwin are told to cooperate with +@value{tramp} selecting @option{sshx} as the connection method. You +can find information about setting up Cygwin in their FAQ at +@uref{http://cygwin.com/faq/}. @cindex method scpx with Cygwin @cindex scpx method with Cygwin -If you wish to use the @code{scpx} connection method, then you might -have the problem that @value{emacsname} calls @code{scp} with a +If you wish to use the @option{scpx} connection method, then you might +have the problem that @value{emacsname} calls @command{scp} with a Windows filename such as @code{c:/foo}. The Cygwin version of -@code{scp} does not know about Windows filenames and interprets this +@command{scp} does not know about Windows filenames and interprets this as a remote filename on the host @code{c}. -One possible workaround is to write a wrapper script for @code{scp} +One possible workaround is to write a wrapper script for @option{scp} which converts the Windows filename to a Cygwinized filename. -I guess that another workaround is to run @value{emacsname} under -Cygwin, or to run a Cygwinized @value{emacsname}. - @cindex Cygwin and ssh-agent @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows -If you want to use either @code{ssh} based method on Windows, then you -might encounter problems with @code{ssh-agent}. Using this program, -you can avoid typing the pass-phrase every time you log in. However, -if you start @value{emacsname} from a desktop shortcut, then the -environment variable @code{SSH_AUTH_SOCK} is not set and so -@value{emacsname} and thus @value{tramp} and thus @code{ssh} and -@code{scp} started from @value{tramp} cannot communicate with -@code{ssh-agent}. It works better to start @value{emacsname} from +If you want to use either @option{ssh} based method on Windows, then +you might encounter problems with @command{ssh-agent}. Using this +program, you can avoid typing the pass-phrase every time you log in. +However, if you start @value{emacsname} from a desktop shortcut, then +the environment variable @code{SSH_AUTH_SOCK} is not set and so +@value{emacsname} and thus @value{tramp} and thus @command{ssh} and +@command{scp} started from @value{tramp} cannot communicate with +@command{ssh-agent}. It works better to start @value{emacsname} from the shell. -If anyone knows how to start @code{ssh-agent} under Windows in such a +If anyone knows how to start @command{ssh-agent} under Windows in such a way that desktop shortcuts can profit, please holler. I don't really know anything at all about Windows@dots{} @@ -2108,10 +2113,10 @@ remote host. There's this @file{~/.sh_history} file on the remote host which keeps growing and growing. What's that? -Sometimes, @value{tramp} starts @code{ksh} on the remote host for tilde -expansion. Maybe @code{ksh} saves the history by default. @value{tramp} -tries to turn off saving the history, but maybe you have to help. For -example, you could put this in your @file{.kshrc}: +Sometimes, @value{tramp} starts @command{ksh} on the remote host for +tilde expansion. Maybe @command{ksh} saves the history by default. +@value{tramp} tries to turn off saving the history, but maybe you have +to help. For example, you could put this in your @file{.kshrc}: @example if [ -f $HOME/.sh_history ] ; then @@ -2316,18 +2321,18 @@ effect while preserving the @value{tramp} file name information. @itemize @bullet @item The uuencode method does not always work. -Due to the design of @value{tramp}, the encoding and decoding programs need to -read from stdin and write to stdout. On some systems, @code{uudecode -o --} will read stdin and write the decoded file to stdout, on other -systems @code{uudecode -p} does the same thing. But some systems have -uudecode implementations which cannot do this at all---it is not -possible to call these uudecode implementations with suitable parameters -so that they write to stdout. +Due to the design of @value{tramp}, the encoding and decoding programs +need to read from stdin and write to stdout. On some systems, +@command{uudecode -o -} will read stdin and write the decoded file to +stdout, on other systems @command{uudecode -p} does the same thing. +But some systems have uudecode implementations which cannot do this at +all---it is not possible to call these uudecode implementations with +suitable parameters so that they write to stdout. Of course, this could be circumvented: the @code{begin foo 644} line could be rewritten to put in some temporary file name, then -@code{uudecode} could be called, then the temp file could be printed and -deleted. +@command{uudecode} could be called, then the temp file could be +printed and deleted. But I have decided that this is too fragile to reliably work, so on some systems you'll have to do without the uuencode methods. @@ -2368,13 +2373,12 @@ to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}. In case of unified filenames, all @value{emacsname} download sites are added to @code{tramp-default-method-alist} with default method -@code{ftp} @xref{Default Method}. These settings shouldn't be touched +@option{ftp} @xref{Default Method}. These settings shouldn't be touched for proper working of the @value{emacsname} package system. The syntax for unified filenames is described in the @value{tramp} manual for @value{emacsothername}. @end ifset - @end itemize @node Concept Index diff --git a/man/trampver.texi b/man/trampver.texi index 33a0aacbb9e..a77ae82d49b 100644 --- a/man/trampver.texi +++ b/man/trampver.texi @@ -4,7 +4,7 @@ @c In the Tramp CVS, the version number is auto-frobbed from @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. -@set trampver 2.0.49 +@set trampver 2.0.50 @c Other flags from configuration @set prefix /usr/local diff --git a/man/trouble.texi b/man/trouble.texi index e7534ed2560..f9d56d22194 100644 --- a/man/trouble.texi +++ b/man/trouble.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2001,2004 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, +@c 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @iftex @chapter Dealing with Common Problems @@ -303,8 +304,7 @@ the following in your @file{.emacs} file: When flow control is enabled, you must type @kbd{C-\} to get the effect of a @kbd{C-s}, and type @kbd{C-^} to get the effect of a -@kbd{C-q}. (These aliases work by means of keyboard translations; see -@ref{Keyboard Translations}.) +@kbd{C-q}. @node Memory Full @subsection Running out of Memory @@ -368,7 +368,7 @@ available. For each buffer, it lists a buffer number. To save a buffer, use @code{ysave-buffer}; you specify the buffer number, and the file name to write that buffer into. You should use a file name which does not already exist; if the file does exist, the script does -not make make a backup of its old contents. +not make a backup of its old contents. @node Emergency Escape @subsection Emergency Escape diff --git a/man/url.texi b/man/url.texi index cccd79a0e7e..f60890afb26 100644 --- a/man/url.texi +++ b/man/url.texi @@ -21,7 +21,8 @@ @ifnottex This file documents the URL loading package. -Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004 Free Software Foundation +Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004, + 2005 Free Software Foundation, Inc. Copyright (C) 1993, 1994, 1995, 1996 William M. Perry Permission is granted to copy, distribute and/or modify this document @@ -50,7 +51,8 @@ License.'' @page @vskip 0pt plus 1filll Copyright @copyright{} 1993, 1994, 1995, 1996 William M. Perry@* -Copyright @copyright{} 1996, 1997, 1998, 1999, 2002 Free Software Foundation +Copyright @copyright{} 1996, 1997, 1998, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -1065,7 +1067,7 @@ accessed at the given @var{time}. @defopt url-history-track If non-@code{nil}, the library will keep track of all the URLs -accessed. If is is @code{t}, the list is saved to disk at the end of +accessed. If it is @code{t}, the list is saved to disk at the end of each Emacs session. The default is @code{nil}. @end defopt diff --git a/man/vip.texi b/man/vip.texi index cba1998f011..5bc1e23da3c 100644 --- a/man/vip.texi +++ b/man/vip.texi @@ -4,7 +4,8 @@ @settitle VIP @copying -Copyright @copyright{} 1987, 2001, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/viper.texi b/man/viper.texi index 7b3a888c8ca..4e71eaee296 100644 --- a/man/viper.texi +++ b/man/viper.texi @@ -7,8 +7,8 @@ @setfilename ../info/viper @copying -Copyright @copyright{} 1995, 1996, 1997, 2001, 2002 Free Software -Foundation, Inc. +Copyright @copyright{} 1995, 1996, 1997, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -507,9 +507,8 @@ modes designed for editing files, such as cc-mode or latex-mode, use key sequences that begin with @kbd{C-x} and @kbd{C-c}. There is also a key that lets you temporarily escape to Vi command state -from Emacs or Insert states: typing @kbd{C-c \} will let you execute a -single Vi command while staying in Viper's Emacs or Insert state. -In Insert state, the same can also be achieved by typing @kbd{C-z}. +from the Insert state: typing @kbd{C-z} will let you execute a +single Vi command while staying in Viper's Insert state. @node Vi State, Insert State, Emacs State, States in Viper @@ -4502,6 +4501,7 @@ kin@@isi.com (Kin Cho), kwzh@@gnu.org (Karl Heuer), lindstro@@biostat.wisc.edu (Mary Lindstrom), lektu@@terra.es (Juanma Barranquero), +lennart.borgman.073@@student.lu.se (Lennart Borgman), minakaji@@osaka.email.ne.jp (Mikio Nakajima), Mark.Bordas@@East.Sun.COM (Mark Bordas), meyering@@comco.com (Jim Meyering), @@ -4519,6 +4519,7 @@ sawdey@@lcse.umn.edu (Aaron Sawdey), simonb@@prl.philips.co.uk (Simon Blanchard), spadgett1@@nc.rr.com (Samuel Padgett), stephen@@farrell.org (Stephen Farrell), +storm@@cua.dk (Kim F. Storm), sudish@@MindSpring.COM (Sudish Joseph), schwab@@issan.informatik.uni-dortmund.de (Andreas Schwab) terra@@diku.dk (Morten Welinder), diff --git a/man/windows.texi b/man/windows.texi index 092a678901b..023b96340ff 100644 --- a/man/windows.texi +++ b/man/windows.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004 Free Software Foundation, Inc. +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, +@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Windows, Frames, Buffers, Top @chapter Multiple Windows @@ -94,7 +95,8 @@ numeric argument specifies how many lines to give to the top window. @kbd{C-x 3} (@code{split-window-horizontally}) breaks the selected window into two side-by-side windows. A numeric argument specifies how many columns to give the one on the left. If you are not using -scrollbars, a line of vertical bars separates the two windows. +scrollbars, a vertical line separates the two windows. +You can customize its color with the face @code{vertical-border}. Windows that are not the full width of the screen have mode lines, but they are truncated. On terminals where Emacs does not support highlighting, truncated mode lines sometimes do not appear in inverse diff --git a/man/woman.texi b/man/woman.texi index fdcc8901339..0d827ef34c3 100644 --- a/man/woman.texi +++ b/man/woman.texi @@ -17,7 +17,8 @@ This file documents WoMan: A program to browse Unix manual pages `W.O. (without) man'. -Copyright @copyright{} 2001, 2002, 2004 Free Software Foundation, Inc. +Copyright @copyright{} 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/man/xresources.texi b/man/xresources.texi index b5090afd260..1e0783eac61 100644 --- a/man/xresources.texi +++ b/man/xresources.texi @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1987,93,94,95,1997,2001,03 Free Software Foundation, Inc. +@c Copyright (C) 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2003, +@c 2004, 2005 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node X Resources, Antinews, Emacs Invocation, Top @appendix X Options and Resources @@ -932,7 +933,7 @@ This is the color for editable text. In Emacs, this color is used for the text fields in the file dialog. @item font_name = "@var{font}" -This specifies the the font for text in the widget. @var{font} is a +This specifies the font for text in the widget. @var{font} is a Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact syntax. The names are case insensitive. diff --git a/msdos/ChangeLog b/msdos/ChangeLog index 1fd237ded28..ee8dc3fe9d5 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -609,8 +609,8 @@ ;; coding: iso-2022-7bit-unix ;; End: - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/msdos/README b/msdos/README index a972c53814f..3827d2944d7 100644 --- a/msdos/README +++ b/msdos/README @@ -6,8 +6,7 @@ The files emacs.ico and emacs.pif are for using the DJGPP version on Windows 3.X. Since these are binary files, their copyright notice is reproduced here: -# Copyright (C) 1993 -# Free Software Foundation, Inc. +# Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/mainmake b/msdos/mainmake index 4f0193baabb..d09f11b4e40 100644 --- a/msdos/mainmake +++ b/msdos/mainmake @@ -1,4 +1,5 @@ -# Copyright (C) 1993,1994,1995,1996,2001 Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2 index e7e615da73c..b31dcb8905c 100644 --- a/msdos/mainmake.v2 +++ b/msdos/mainmake.v2 @@ -1,7 +1,7 @@ # Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*- -# Copyright (C) 1996,1997,1998,1999,2000,2001,2002 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/msdos/sed1.inp b/msdos/sed1.inp index 67257d9c9fe..2efbde37a6f 100644 --- a/msdos/sed1.inp +++ b/msdos/sed1.inp @@ -2,8 +2,8 @@ # Configuration script for src/makefile # ---------------------------------------------------------------------- # -# Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000 -# Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index 93b4f7d5d89..358faa24dc4 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -2,8 +2,8 @@ # Configuration script for src/Makefile under DJGPP v2.x # ---------------------------------------------------------------------- # -# Copyright (C) 1996, 1997, 1999, 2000, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed2.inp b/msdos/sed2.inp index 4580f0e623e..945b753d01d 100644 --- a/msdos/sed2.inp +++ b/msdos/sed2.inp @@ -2,8 +2,8 @@ # Configuration script for src/config.h # ---------------------------------------------------------------------- # -# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, +# 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 31687bf0086..3beb48650e7 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -2,8 +2,8 @@ # Configuration script for src/config.h under DJGPP v2.x # ---------------------------------------------------------------------- # -# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, +# 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed2x.inp b/msdos/sed2x.inp index a1af086077f..b1cbd696030 100644 --- a/msdos/sed2x.inp +++ b/msdos/sed2x.inp @@ -2,8 +2,7 @@ # Extra configuration script for src/config.h for DesqView/X # ---------------------------------------------------------------------- # -# Copyright (C) 1994 -# Free Software Foundation, Inc. +# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed3.inp b/msdos/sed3.inp index 6ae9c54eeaf..efbe448d0d1 100644 --- a/msdos/sed3.inp +++ b/msdos/sed3.inp @@ -2,8 +2,8 @@ # Configuration script for lib-src/makefile # ---------------------------------------------------------------------- # -# Copyright (C) 1993, 1994, 1995 -# Free Software Foundation, Inc. +# Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp index 657c2d4e5ff..46d9f2fc894 100644 --- a/msdos/sed3v2.inp +++ b/msdos/sed3v2.inp @@ -2,8 +2,8 @@ # Configuration script for lib-src/makefile under DJGPP v2 # ---------------------------------------------------------------------- # -# Copyright (C) 1996, 1998, 2000 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 2000, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed4.inp b/msdos/sed4.inp index 22588115382..23883bc8e2d 100644 --- a/msdos/sed4.inp +++ b/msdos/sed4.inp @@ -2,8 +2,7 @@ # Configuration script for src/paths.h # ---------------------------------------------------------------------- # -# Copyright (C) 1994 -# Free Software Foundation, Inc. +# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed5x.inp b/msdos/sed5x.inp index 6f05df8a26a..c9a3ac998ce 100644 --- a/msdos/sed5x.inp +++ b/msdos/sed5x.inp @@ -2,8 +2,7 @@ # Configuration script for oldxmenu/makefile for DesqView/X # ---------------------------------------------------------------------- # -# Copyright (C) 1994 -# Free Software Foundation, Inc. +# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sed6.inp b/msdos/sed6.inp index 686d3aa92ae..2aae6aa441c 100644 --- a/msdos/sed6.inp +++ b/msdos/sed6.inp @@ -3,8 +3,8 @@ # lispintro/Makefile under DJGPP v2.x # --------------------------------------------------------------------------- # -# Copyright (C) 1997, 2000, 2001 -# Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp index bb81e7ec113..287dfad7c44 100644 --- a/msdos/sedleim.inp +++ b/msdos/sedleim.inp @@ -2,8 +2,8 @@ # Configuration script for leim/Makefile under DJGPP v2.x # ---------------------------------------------------------------------- # -# Copyright (C) 1999, 2000 -# Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp index 9cff732a445..bb7d8b8e620 100644 --- a/msdos/sedlisp.inp +++ b/msdos/sedlisp.inp @@ -2,8 +2,7 @@ # Configuration script for lisp/Makefile under DJGPP v2.x # ---------------------------------------------------------------------- # -# Copyright (C) 2000, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/nt/.gitignore b/nt/.gitignore index c577a6a341f..26f5de661a0 100644 --- a/nt/.gitignore +++ b/nt/.gitignore @@ -1,3 +1,7 @@ *-spd *.pdb .arch-inventory +config.log +makefile +obj +oo diff --git a/nt/ChangeLog b/nt/ChangeLog index c95fd78ab7d..854410b4f58 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,31 @@ +2005-08-10 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Add `obj' and `oo' for in-place installations. + +2005-07-30 Eli Zaretskii <eliz@gnu.org> + + * config.nt: (HAVE_GETOPT_H, HAVE_GETOPT_LONG_ONLY): Undefine. + +2005-07-29 Juanma Barranquero <lekktu@gmail.com> + + * configure.bat: Don't create lisp/Makefile.unix. + +2005-07-28 Juanma Barranquero <lekktu@gmail.com> + + * .cvsignore: Add `makefile' and `config.log'. + +2005-07-26 Paul Eggert <eggert@cs.ucla.edu> + + Merge gnulib getopt implementation into Emacs. + + * inc/gettext.h: Remove; no longer needed now that + lib-src/gettext.h exists. + +2005-07-16 Eli Zaretskii <eliz@gnu.org> + + * configure.bat: Finish config.log with a line that indicates that + the configure step was successful. + 2005-07-04 Lute Kamstra <lute@gnu.org> Update FSF's address in GPL notices. @@ -1151,8 +1179,8 @@ ;; coding: iso-2022-7bit ;; End: - Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/nt/INSTALL b/nt/INSTALL index ecf42a29b12..ed960b06bdd 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -1,7 +1,7 @@ Building and Installing Emacs on Windows NT/2K/XP and Windows 95/98/ME - Copyright (c) 2001,2004,2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. See the end of the file for copying permissions. If you used WinZip to unpack the distribution, we suggest to diff --git a/nt/README b/nt/README index dce733fb657..0bb1625fecd 100644 --- a/nt/README +++ b/nt/README @@ -1,6 +1,6 @@ Emacs for Windows NT/2000 and Windows 95/98/ME - Copyright (c) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. See the end of the INSTALL file in this directory for copying permissions. This directory contains support for compiling and running GNU Emacs on diff --git a/nt/addpm.c b/nt/addpm.c index 398737839c9..0827d2453c0 100644 --- a/nt/addpm.c +++ b/nt/addpm.c @@ -1,5 +1,5 @@ /* Add entries to the GNU Emacs Program Manager folder. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/addsection.c b/nt/addsection.c index 20ab5cf5163..5a58f3e1c07 100644 --- a/nt/addsection.c +++ b/nt/addsection.c @@ -1,5 +1,5 @@ /* Add an uninitialized data section to an executable. - Copyright (C) 1999, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c index 58be32984a9..be7c7531bf6 100644 --- a/nt/cmdproxy.c +++ b/nt/cmdproxy.c @@ -1,5 +1,5 @@ /* Proxy shell designed for use with Emacs on Windows 95 and NT. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Accepts subset of Unix sh(1) command-line options, for compatability with elisp code written for Unix. When possible, executes external diff --git a/nt/config.nt b/nt/config.nt index ac59faa211c..4b8c38823af 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -1,5 +1,6 @@ /* GNU Emacs site configuration template file. -*- C -*- - Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -270,6 +271,12 @@ Boston, MA 02110-1301, USA. */ /* Define if `struct timeval' is declared by <sys/time.h>. */ #undef HAVE_TIMEVAL +/* Define to 1 if you have the <getopt.h> header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long_only' function. */ +#undef HAVE_GETOPT_LONG_ONLY + /* If using GNU, then support inline function declarations. */ #ifdef __GNUC__ #define INLINE __inline__ diff --git a/nt/configure.bat b/nt/configure.bat index 6a44a3b82c4..b5f78f2ab51 100755 --- a/nt/configure.bat +++ b/nt/configure.bat @@ -1,7 +1,7 @@ @echo off
rem ----------------------------------------------------------------------
rem Configuration script for MS Windows 95/98/Me and NT/2000/XP
-rem Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+rem Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
rem Free Software Foundation, Inc.
rem This file is part of GNU Emacs.
@@ -499,7 +499,6 @@ copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile copy /b config.settings+%MAKECMD%.defs+..\man\makefile.w32-in ..\man\makefile
copy /b config.settings+%MAKECMD%.defs+..\lispref\makefile.w32-in ..\lispref\makefile
copy /b config.settings+%MAKECMD%.defs+..\lispintro\makefile.w32-in ..\lispintro\makefile
-if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile.in Makefile.unix
if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile
copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
rem Use the default (no-op) Makefile.in if the nt version is not present.
@@ -513,6 +512,7 @@ if not exist ..\site-lisp\subdirs.el copy subdirs.el ..\site-lisp\subdirs.el echo.
echo Emacs successfully configured.
+echo Emacs successfully configured. >>config.log
echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
goto end
diff --git a/nt/ddeclient.c b/nt/ddeclient.c index 6661e84f244..540cac24ebf 100644 --- a/nt/ddeclient.c +++ b/nt/ddeclient.c @@ -1,5 +1,5 @@ /* Simple client interface to DDE servers. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/emacs.rc b/nt/emacs.rc index 6220ab0ffa1..b233bcd845f 100644 --- a/nt/emacs.rc +++ b/nt/emacs.rc @@ -26,7 +26,7 @@ BEGIN VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0" VALUE "FileVersion", "21, 3, 50, 0\0" VALUE "InternalName", "Emacs\0" - VALUE "LegalCopyright", "Copyright (C) 2002\0" + VALUE "LegalCopyright", "Copyright (C) 2002, 2003, 2004, 2005\0" VALUE "OriginalFilename", "emacs.exe" VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0" VALUE "ProductVersion", "21, 3, 50, 0\0" diff --git a/nt/envadd.bat b/nt/envadd.bat index 3e9a49ef292..d48e6cc8bf1 100644 --- a/nt/envadd.bat +++ b/nt/envadd.bat @@ -1,7 +1,7 @@ rem Hack to change/add environment variables in the makefiles for the
rem Windows platform.
rem
-rem Copyright (c) 2003 Free Software Foundation, Inc.
+rem Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
rem
rem This file is part of GNU Emacs.
rem
diff --git a/nt/gmake.defs b/nt/gmake.defs index e077aef5024..c3f20fbeabe 100644 --- a/nt/gmake.defs +++ b/nt/gmake.defs @@ -1,5 +1,6 @@ # -*- Makefile -*- definition file for building GNU Emacs on Windows NT. -# Copyright (c) 2000-2001 Free Software Foundation, Inc. +# Copyright (c) 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # GNU Emacs is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/nt/inc/grp.h b/nt/inc/grp.h index b44cbe543fd..39f98d31cdc 100755 --- a/nt/inc/grp.h +++ b/nt/inc/grp.h @@ -1,5 +1,5 @@ /* Replacement grp.h file for building GNU Emacs on Windows. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h index 228eefb2396..19b8a65adda 100644 --- a/nt/inc/sys/socket.h +++ b/nt/inc/sys/socket.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995 Free Software Foundation, Inc. +/* Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 5d793751f56..fb1ea246663 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -1,5 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# Top level makefile for building GNU Emacs on Windows NT
#
diff --git a/nt/multi-install-info.bat b/nt/multi-install-info.bat index ea318af8405..f06f94c9ca4 100644 --- a/nt/multi-install-info.bat +++ b/nt/multi-install-info.bat @@ -3,7 +3,7 @@ rem Hack to run install-info with multiple info files on the command
rem line on the Windows platform.
rem
-rem Copyright (c) 2003 Free Software Foundation, Inc.
+rem Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
rem
rem This file is part of GNU Emacs.
rem
diff --git a/nt/nmake.defs b/nt/nmake.defs index 1876dffa59f..76a3462969e 100644 --- a/nt/nmake.defs +++ b/nt/nmake.defs @@ -1,5 +1,6 @@ # -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
-# Copyright (c) 2000-2001 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/nt/paths.h b/nt/paths.h index 5c1c4bfd332..0bb883067c3 100644 --- a/nt/paths.h +++ b/nt/paths.h @@ -1,5 +1,5 @@ -/* Copyright (C) 1993, 1995, 1997, 1999, 2001 - Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/preprep.c b/nt/preprep.c index 21cc92e305b..e99fe38a484 100644 --- a/nt/preprep.c +++ b/nt/preprep.c @@ -1,5 +1,5 @@ /* Pro-process emacs.exe for profiling by MSVC. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/nt/runemacs.c b/nt/runemacs.c index afa5340ef53..709389deb8f 100644 --- a/nt/runemacs.c +++ b/nt/runemacs.c @@ -1,3 +1,23 @@ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs 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. + +GNU Emacs 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., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ + + /* Simple program to start Emacs with its console window hidden. diff --git a/oldXMenu/Activate.c b/oldXMenu/Activate.c index 2f81299cbb6..d03534e144a 100644 --- a/oldXMenu/Activate.c +++ b/oldXMenu/Activate.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ #include "copyright.h" diff --git a/oldXMenu/AddPane.c b/oldXMenu/AddPane.c index b7b52c0f642..4bb16c8d573 100644 --- a/oldXMenu/AddPane.c +++ b/oldXMenu/AddPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/AddSel.c b/oldXMenu/AddSel.c index 40bbbde704c..a063b63f557 100644 --- a/oldXMenu/AddSel.c +++ b/oldXMenu/AddSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog index 31a786cc23a..afe7607115a 100644 --- a/oldXMenu/ChangeLog +++ b/oldXMenu/ChangeLog @@ -443,8 +443,8 @@ ;; coding: iso-2022-7bit-unix ;; End: - Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 - Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/oldXMenu/ChgPane.c b/oldXMenu/ChgPane.c index 123f18dec5a..7c8ff91f88c 100644 --- a/oldXMenu/ChgPane.c +++ b/oldXMenu/ChgPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/ChgSel.c b/oldXMenu/ChgSel.c index 7dce694c410..e0fcb224f3e 100644 --- a/oldXMenu/ChgSel.c +++ b/oldXMenu/ChgSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c index bac3f079f60..d4b32f2e937 100644 --- a/oldXMenu/Create.c +++ b/oldXMenu/Create.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ #include "copyright.h" diff --git a/oldXMenu/DelPane.c b/oldXMenu/DelPane.c index bdb084b36f3..6d042e757f8 100644 --- a/oldXMenu/DelPane.c +++ b/oldXMenu/DelPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/DelSel.c b/oldXMenu/DelSel.c index 78b73113162..7f14aa74fa6 100644 --- a/oldXMenu/DelSel.c +++ b/oldXMenu/DelSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Destroy.c b/oldXMenu/Destroy.c index 8d904a53872..b0b9ed77569 100644 --- a/oldXMenu/Destroy.c +++ b/oldXMenu/Destroy.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Error.c b/oldXMenu/Error.c index 1eb521b1642..0bd4fcc8782 100644 --- a/oldXMenu/Error.c +++ b/oldXMenu/Error.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/EvHand.c b/oldXMenu/EvHand.c index 073d0ab90b4..c9e8b36c873 100644 --- a/oldXMenu/EvHand.c +++ b/oldXMenu/EvHand.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/FindPane.c b/oldXMenu/FindPane.c index 945d4595cab..c886d6f7b7a 100644 --- a/oldXMenu/FindPane.c +++ b/oldXMenu/FindPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/FindSel.c b/oldXMenu/FindSel.c index 1fed1114732..5a91faf0f8f 100644 --- a/oldXMenu/FindSel.c +++ b/oldXMenu/FindSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/InsPane.c b/oldXMenu/InsPane.c index 682423a4a05..805a978bb74 100644 --- a/oldXMenu/InsPane.c +++ b/oldXMenu/InsPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/InsSel.c b/oldXMenu/InsSel.c index f3e2c4d7fb0..103081ac446 100644 --- a/oldXMenu/InsSel.c +++ b/oldXMenu/InsSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Internal.c b/oldXMenu/Internal.c index f1367a07351..0fea995a899 100644 --- a/oldXMenu/Internal.c +++ b/oldXMenu/Internal.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Locate.c b/oldXMenu/Locate.c index 47db7fa1103..90fad2c7b2a 100644 --- a/oldXMenu/Locate.c +++ b/oldXMenu/Locate.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Post.c b/oldXMenu/Post.c index 3b39d796823..2be31aebe39 100644 --- a/oldXMenu/Post.c +++ b/oldXMenu/Post.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/Recomp.c b/oldXMenu/Recomp.c index b4bc4da3f72..a10c380427e 100644 --- a/oldXMenu/Recomp.c +++ b/oldXMenu/Recomp.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/SetAEQ.c b/oldXMenu/SetAEQ.c index daddc1aa946..9124561dcbe 100644 --- a/oldXMenu/SetAEQ.c +++ b/oldXMenu/SetAEQ.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/SetFrz.c b/oldXMenu/SetFrz.c index 243cc64e0ed..8e778a66760 100644 --- a/oldXMenu/SetFrz.c +++ b/oldXMenu/SetFrz.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/SetPane.c b/oldXMenu/SetPane.c index 39a87ac5ce3..907dba3b233 100644 --- a/oldXMenu/SetPane.c +++ b/oldXMenu/SetPane.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/SetSel.c b/oldXMenu/SetSel.c index 4fe0c82a131..06e2c76069f 100644 --- a/oldXMenu/SetSel.c +++ b/oldXMenu/SetSel.c @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/X10.h b/oldXMenu/X10.h index e1abcbbe6c5..63bf90f38d2 100644 --- a/oldXMenu/X10.h +++ b/oldXMenu/X10.h @@ -15,6 +15,7 @@ * */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * X10.h - Header definition and support file for the C subroutine diff --git a/oldXMenu/XCrAssoc.c b/oldXMenu/XCrAssoc.c index 67239a26d31..0c8203579e8 100644 --- a/oldXMenu/XCrAssoc.c +++ b/oldXMenu/XCrAssoc.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* Permission to use, copy, modify, distribute, and sell this software and its diff --git a/oldXMenu/XDelAssoc.c b/oldXMenu/XDelAssoc.c index 1c72447f931..286353f46cf 100644 --- a/oldXMenu/XDelAssoc.c +++ b/oldXMenu/XDelAssoc.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* Permission to use, copy, modify, distribute, and sell this software and its diff --git a/oldXMenu/XDestAssoc.c b/oldXMenu/XDestAssoc.c index 137c49f613d..eab0511bb66 100644 --- a/oldXMenu/XDestAssoc.c +++ b/oldXMenu/XDestAssoc.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* Permission to use, copy, modify, distribute, and sell this software and its diff --git a/oldXMenu/XLookAssoc.c b/oldXMenu/XLookAssoc.c index ea7303bad61..b1b53d9dd6a 100644 --- a/oldXMenu/XLookAssoc.c +++ b/oldXMenu/XLookAssoc.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* Permission to use, copy, modify, distribute, and sell this software and its diff --git a/oldXMenu/XMakeAssoc.c b/oldXMenu/XMakeAssoc.c index ffe19adc410..d749ec8d04c 100644 --- a/oldXMenu/XMakeAssoc.c +++ b/oldXMenu/XMakeAssoc.c @@ -1,4 +1,5 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* Permission to use, copy, modify, distribute, and sell this software and its diff --git a/oldXMenu/XMenu.h b/oldXMenu/XMenu.h index 46e390d3b0a..84bf72a5df9 100644 --- a/oldXMenu/XMenu.h +++ b/oldXMenu/XMenu.h @@ -1,6 +1,7 @@ #include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/XMenuInt.h b/oldXMenu/XMenuInt.h index e96dfb1e910..fd272300c60 100644 --- a/oldXMenu/XMenuInt.h +++ b/oldXMenu/XMenuInt.h @@ -1,5 +1,6 @@ /* Copyright Massachusetts Institute of Technology 1985 */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package diff --git a/oldXMenu/copyright.h b/oldXMenu/copyright.h index c5a4316043d..dffc63ac63e 100644 --- a/oldXMenu/copyright.h +++ b/oldXMenu/copyright.h @@ -16,5 +16,7 @@ without express or implied warranty. */ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ + /* arch-tag: c689b1bc-a3ba-41a1-baa0-a3622b5445b2 (do not change this comment) */ diff --git a/oldXMenu/insque.c b/oldXMenu/insque.c index 2b1f52bb02a..2395e4ea2d3 100644 --- a/oldXMenu/insque.c +++ b/oldXMenu/insque.c @@ -1,3 +1,5 @@ +/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ + /* This file implements the emacs_insque and emacs_remque functions, copies of the insque and remque functions of BSD. They and all their callers have been renamed to emacs_mumble to allow us to diff --git a/src/.gdbinit b/src/.gdbinit index 66b9e64ec7a..462b6a86c5f 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -129,20 +129,24 @@ define pitx end if ($it->what == IT_CHARACTER) if ($it->len == 1 && $it->c >= ' ' && it->c < 255) - printf "ch='%c'", $it->c + printf " ch='%c'", $it->c else - printf "ch=[%d,%d]", $it->c, $it->len + printf " ch=[%d,%d]", $it->c, $it->len end else if ($it->what == IT_IMAGE) - printf "IMAGE=%d", $it->image_id + printf " IMAGE=%d", $it->image_id else + printf " " output $it->what end end if ($it->method != GET_FROM_BUFFER) printf " next=" output $it->method + if ($it->method == GET_FROM_STRING) + printf "[%d]", $it->current.string_pos.charpos + end end printf "\n" if ($it->region_beg_charpos >= 0) diff --git a/src/ChangeLog b/src/ChangeLog index d70edd2fbf9..09a3ba2d825 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,577 @@ +2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * dispnew.c (window_to_frame_hpos, update_window): + Avoid gcc warning about unused variable `f'. + +2005-08-31 Jason Rumney <jasonr@gnu.org> + + * w32menu.c (add_menu_item): If unicode_append_menu returns an + error, revert to using AppendMenu. + +2005-08-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * image.c (PIX_MASK_DRAW, PIX_MASK_RETAIN): Remove argument. + All uses changed. + [MAC_OS] (XPutPixel, XGetPixel): Add efficient versions for common + cases. + (x_create_x_image_and_pixmap) [MAC_OS]: Don't call x_destroy_x_image. + [MAC_OS] (find_image_fsspec) [!MAC_OSX]: Don't use FSRef. + Use posix_pathname_to_fsspec. + [MAC_OS] (xpm_load_image): Fill in background_transparent field + while we have mask. + + * macgui.h [!TARGET_API_MAC_CARBON] (GetPixDepth): New define. + + * macterm.h (PIX_MASK_DRAW, PIX_MASK_RETAIN): Move defines to image.c. + +2005-08-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * syntax.c (update_syntax_table): Properly reproduce the special +1 + setting of e_property at the end of the buffer when bumping into the + INTERVALS_AT_ONCE limit. + +2005-08-27 Eli Zaretskii <eliz@gnu.org> + + * emacs.c (USAGE1): Fix the description of the -Q option. + +2005-08-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * xdisp.c (pos_visible_p): Yet another int/Lisp_Object mixup (YAILOM). + +2005-08-26 Kim F. Storm <storm@cua.dk> + + * xdisp.c (resize_mini_window): Fix 2005-08-20 change. + Don't move PT to new window start. + +2005-08-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * keyboard.c (kbd_buffer_get_event) [MAC_OS]: Make events for + ICONIFY/DEICONIFY_EVENT. + + * macterm.c (mac_copy_area, mac_copy_area_with_mask): + Restore background color. + (mac_handle_visibility_change): New function. + (x_make_frame_invisible, x_iconify_frame) + (XTread_socket) [!USE_CARBON_EVENTS]: Use it. + [USE_CARBON_EVENTS] (mac_handle_window_event) + (install_window_handler): Handle visibility change events. + (x_make_frame_visible): Don't reposition window if it is iconified + or asked for visible before. Select and uncollapse window when it + is made visible. + (x_make_frame_invisible): Don't reset x_highlight_frame. + (x_iconify_frame): Likewise. Make invisible frame visible before + it is iconified. + (read_socket_inev): Move variable outside #if USE_CARBON_EVENTS. + (do_window_update): Don't change visibility of invisible frame. + +2005-08-22 Juri Linkov <juri@jurta.org> + + * term.c (turn_on_face): Check for TS_set_foreground and + TS_set_background depending on standout_mode. Simplify. + +2005-08-21 Kim F. Storm <storm@cua.dk> + + * fringe.c (update_window_fringes): Only put TOP and BOTTOM + bitmaps on fully visible rows. + + * fringe.c (update_window_fringes): Replace FORCE_P arg with + KEEP_CURRENT_P arg; if non-zero, don't update current row fringes, + and return 0. + + * xdisp.c (redisplay_window): Call update_window_fringes with + KEEP_CURRENT_P non-0 if we are going to refresh fringes later. + +2005-08-20 Richard M. Stallman <rms@gnu.org> + + * xdisp.c (display_echo_area_1): Get display start pos from w->start. + (resize_mini_window): Set w->start, and PT, so as to display the tail + end of the buffer, if it doesn't all fit. + +2005-08-18 Kim F. Storm <storm@cua.dk> + + * xdisp.c (calc_pixel_width_or_height): Use actual display + resolution when available instead of Vdisplay_pixels_per_inch. + +2005-08-17 Kim F. Storm <storm@cua.dk> + + * xdisp.c (pos_visible_p): Adjust X value if window is hscrolled. + + * dispnew.c (buffer_posn_from_coords): Check that target row is + within matrix. + +2005-08-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * xterm.c (x_wm_set_icon_pixmap): Move GTK specific code to + xg_set_frame_icon and call it. + + * gtkutil.c (xg_set_frame_icon): New function. + + * gtkutil.h (xg_set_frame_icon): Declare it. + +2005-08-16 Kim F. Storm <storm@cua.dk> + + * dispnew.c (increment_row_positions): Skip non-enabled rows. + + * window.c (SAVED_WINDOW_VECTOR_SIZE): Remove dangerous define. + (Fcurrent_window_configuration): Use VECSIZE macro instead. + +2005-08-15 Richard M. Stallman <rms@gnu.org> + + * xdisp.c (message3_nolog): Clear echo_message_buffer. + +2005-08-15 Kim F. Storm <storm@cua.dk> + + * lisp.h (QUIT) [!SYNC_INPUT]: Throw t to Vthrow_on_input. + + * process.c (deactivate_process, status_notify, read_process_output) + (update_status, status_convert, decode_status, allocate_pty) + (make_process, remove_process, list_processes_1) + (create_process_1, unwind_request_sigio, read_process_output) + (send_process, keyboard_bit_set): Declare static. + (Fdelete_process): Simplify. Pass process to status_notify, so we + don't try to read output from it. + (status_notify): New arg deleting_process--don't try to read + output from that process. + + * lisp.h (deactivate_process, status_notify, read_process_output): + Remove prototypes. + +2005-08-14 Richard M. Stallman <rms@gnu.org> + + * image.c (syms_of_image): Init Qxbm, Qpbm before calling + define_image_type. + +2005-08-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * gtkutil.c (xg_get_pixbuf_from_pix_and_mask): New function. + (xg_get_image_for_pixmap): Move some code to + xg_get_pixbuf_from_pix_and_mask, and call it. + + * gtkutil.h (xg_get_pixbuf_from_pix_and_mask): Declare. + + * xterm.c (x_wm_set_icon_pixmap): Call xg_get_pixbuf_from_pix_and_mask + to get an GTK icon and set it with GTK functions to avoid having GTK + override an icon set with just X functions. + +2005-08-11 Richard M. Stallman <rms@gnu.org> + + * image.c (syms_of_image): Init image_types here, and call + define_image_type. + (init_image): Not here. + +2005-08-09 Richard M. Stallman <rms@gnu.org> + + * bytecode.c (BYTE_CODE_QUIT): Throw t to Vthrow_on_input. + + * lisp.h (QUIT): Throw t to Vthrow_on_input. + +2005-08-09 Thien-Thi Nguyen <ttn@gnu.org> + + * floatfns.c (Fexpt): Use floats for negative exponent. + +2005-08-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * gtkutil.c (xg_modify_menubar_widgets): Remove semicolon that + should not be there, causing menu display errors with GTK 2.6.9. + +2005-08-07 Richard M. Stallman <rms@gnu.org> + + * floatfns.c (Fexpt): Undo previous change. + + * dispnew.c (Fframe_or_buffer_changed_p): Take an arg + so it can be used with various state vectors. + + * emacs.c (endif): Convert -script into -scriptload. + (standard_args): Add -scriptload. Allow -basic-display with one dash. + + * fns.c (syms_of_fns): Add `emacs' to features. + + * term.c (set_terminal_modes): If no TS_termcap_modes string, + output newlines to scroll the old screen contents off the screen. + +2005-08-06 Thien-Thi Nguyen <ttn@gnu.org> + + * floatfns.c (Fexpt): Use floats for negative exponent. + Reported by D Goel. + +2005-08-02 Richard M. Stallman <rms@gnu.org> + + * frame.c (Fframe_char_width): Doc fix. + +2005-07-30 Juanma Barranquero <lekktu@gmail.com> + + * xdisp.c (syms_of_xdisp) <redisplay-end-trigger-functions>: + Defvar it. + +2005-07-28 Juanma Barranquero <lekktu@gmail.com> + + * w32fns.c (my_set_window_pos, my_show_window): Don't declare. + (my_create_window, my_create_tip_window): Make static. + + * w32term.c (my_show_window, my_set_window_pos, my_set_focus) + (my_set_foreground_window, my_destroy_window): Make static. + +2005-07-26 Paul Eggert <eggert@cs.ucla.edu> + + Merge gnulib getopt implementation into Emacs. + + * s/cygwin.h (C_SWITCH_SYSTEM): Remove, since gettext.h is + now part of lib-src. + +2005-07-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters). + +2005-07-25 Jason Rumney <jasonr@gnu.org> + + * w32menu.c (w32_menu_display_help): Suppress tooltip when + navigating menus with the keyboard. + +2005-07-23 Richard M. Stallman <rms@gnu.org> + + * insdel.c (syms_of_insdel): staticpro combine_after_change_buffer. + + * bytecode.c (MAYBE_GC): Test gc_cons_threshold and + gc_relative_threshold, one by one. + + * keyboard.c (read_char): Test gc_cons_threshold. + (syms_of_keyboard): staticpro Qecho_area_clear_hook. + + * eval.c (Feval, Ffuncall): Test gc_cons_threshold and + gc_relative_threshold, one by one. + + * alloc.c (gc_cons_threshold): Not static. + (gc_cons_combined_threshold): Var deleted. + (gc_relative_threshold): New variable. + (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold + instead of gc_cons_combined_threshold. + + * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare. + (gc_cons_combined_threshold): Declaration deleted. + +2005-07-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * mac.c: Don't include stdlib.h or string.h. + (Fdo_applescript, Fmac_file_name_to_posix) + (Fmac_file_name_to_posix): Doc fixes. + [TARGET_API_MAC_CARBON] (Fmac_get_preference) + (Fmac_code_convert_string): Likewise. + [MAC_OSX] (init_mac_osx_environment): Fall back on terminal mode + if the executable is not contained in a bundle. + + * macfns.c: Don't include stdlib.h or string.h. Include atimer.h. + (gray_width, gray_height): Remove defines. + (gray_bits, gray_bitmap_width, gray_bitmap_height) + (gray_bitmap_bits): Remove variables. + (lispy_function_keys): Remove extern. + (free_frame_menubar): Add extern. + (x_window_to_frame): Remove function. + (unwind_create_tip_frame): Add declaration. + (x_set_name_internal): New function. + (x_set_name, x_set_title): Use it. + (Fx_create_frame, Fx_display_grayscale_p, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_planes) + (Fx_display_color_cells, Fx_server_max_request_size) + (Fx_server_vendor, Fx_server_version, Fx_display_screens) + (Fx_display_mm_height, Fx_display_mm_width) + (Fx_display_backing_store, Fx_display_visual_class) + (Fx_display_save_under, Fx_synchronize, Fx_show_tip): Doc fixes. + + * macmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes. + + * macselect.c (Fx_own_selection_internal): Follow error conventions. + (Fx_get_selection_internal, Fx_selection_owner_p) + (Fx_selection_exists_p): Doc fixes. + (syms_of_macselect) <selection-converter-alist>: Likewise. + +2005-07-21 Juanma Barranquero <lekktu@gmail.com> + + * buffer.c (syms_of_buffer) <cursor-type>: Doc fix. + + * ccl.c (Fregister_ccl_program): Fix typos in docstring. + (Fccl_execute_on_string): Likewise; add usage info. + + * composite.c (Fcompose_region_internal) + (Fcompose_string_internal): + Improve argument/docstring consistency. + + * minibuf.c (Fminibuffer_prompt_end, Feval_minibuffer): + Fix typos in docstrings. + + * textprop.c (Fnext_char_property_change) + (Fprevious_char_property_change): Doc fixes. + + * window.c (Fset_window_margins, Fset_window_fringes): + Improve argument/docstring consistency. + + * xfaces.c (Finternal_lisp_face_p): Doc fix. + +2005-07-21 Andreas Schwab <schwab@suse.de> + + * eval.c (restore_stack_limits): Return a value. + +2005-07-20 Juanma Barranquero <lekktu@gmail.com> + + * eval.c (Fdefvar): Doc fix. + +2005-07-20 Kim F. Storm <storm@cua.dk> + + * fileio.c (Fdo_auto_save, do_auto_save_unwind): + Use make_save_value to unwind protect stream. + + * lread.c (Fload, load_unwind): + Use make_save_value to unwind protect stream. + +2005-07-19 Juanma Barranquero <lekktu@gmail.com> + + * eval.c (Fprog2, Fcalled_interactively_p), + (syms_of_eval) <debug-on-quit>: Doc fixes. + (syms_of_eval) <max-specpdl-size>: + (Finteractive_p): Fix typos in docstrings. + +2005-07-19 Kim F. Storm <storm@cua.dk> + + * w32fns.c (Vx_hand_shape): Variable removed. + (syms_of_w32fns): Intern and staticpro Qw32_charset_default. + +2005-07-19 Kenichi Handa <handa@m17n.org> + + * fns.c (Fstring_as_multibyte): Escape backslashes in the docstring. + +2005-07-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * buffer.h (Fgenerate_new_buffer_name): Declare (for use in coding.c). + +2005-07-18 Kim F. Storm <storm@cua.dk> + + * frame.h (struct frame): New member already_hscrolled_p. + + * xdisp.c (redisplay_internal): Only try to hscroll each frame once + to avoid redisplay looping hscrolling back and forth ad infinitum. + +2005-07-18 Juri Linkov <juri@jurta.org> + + * buffer.c (scroll-up-aggressively, scroll-down-aggressively): + * keymap.c (Fminor_mode_key_binding): + * macterm.c (mac-emulate-three-button-mouse): + Delete duplicate duplicate words. + +2005-07-18 Ken Raeburn <raeburn@gnu.org> + + * minibuf.c (Ftest_completion): Fix odd syntax in test. + +2005-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macfns.c (x_set_cursor_color): Use XSetBackground and XSetForeground. + + * macgui.h (struct _XGC): New struct. + (GC): Use it. + (GCForeground, GCBackground, GCFont): Use X11 mask values. + (XCreateGC, XParseGeometry): Move externs to macterm.h. + + * macterm.c (x_bitmap_icon, x_make_frame_visible): Remove declarations. + (XSetFont): Add declaration. + (mac_set_forecolor, mac_set_backcolor, mac_set_colors): + Remove functions. + (GC_FORE_COLOR, GC_BACK_COLOR, GC_FONT, MAC_WINDOW_NORMAL_GC): + New defines. + (XDrawLine, mac_draw_line_to_pixmap, XClearWindow) + (mac_draw_bitmap, XCreatePixmapFromBitmapData, XFillRectangle) + (mac_draw_rectangle, mac_draw_string_common, mac_scroll_area): + Use them. + (mac_erase_rectangle): New function. + (XClearArea, x_draw_fringe_bitmap, x_clear_glyph_string_rect) + (x_draw_stretch_glyph_string): Use it. + (XChangeGC, XCreateGC, XGetGCValues, XSetForeground) + (XSetBackground, XSetFont): Adjust for new GC implementation. + (x_draw_fringe_bitmap, x_draw_box_rect): Use GC to set colors. + (XTset_vertical_scroll_bar): Clear area under scroll bar. + + * macterm.h (struct mac_display_info): Change types of + scratch_cursor_gc black_relief.gc, and white_relief.gc to GC. + (XCreateGC, XParseGeometry): Move externs from macgui.h. + + * xfaces.c [MAC_OS] (XCreateGC): Remove extern. + +2005-07-16 Richard M. Stallman <rms@gnu.org> + + * buffer.c (Fmake_overlay): Doc fix. + +2005-07-16 Eli Zaretskii <eliz@gnu.org> + + * w32proc.c (syms_of_ntproc): staticpro Qhigh, Qlow, + Vw32_valid_locale_ids, and Vw32_valid_codepages. + +2005-07-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * mac.c [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): + Use Fstring_as_unibyte instead of string_make_unibyte. + +2005-07-15 Richard M. Stallman <rms@gnu.org> + + * xdisp.c (select_frame_for_redisplay): Use find_symbol_value. + +2005-07-15 Kim F. Storm <storm@cua.dk> + + * xdisp.c: Fix redisplay loop in last change. + (IT_POS_VALID_AFTER_MOVE_P): New macro. + (move_it_vertically_backward, move_it_by_lines): Use it. + +2005-07-14 Jason Rumney <jasonr@gnu.org> + + * w32.c (init_environment): Default HOME directory to user's + appdata directory if possible. + +2005-07-14 Kim F. Storm <storm@cua.dk> + + * .gdbinit (pitx): Fix output format. Print string charpos. + + * lread.c (syms_of_lread): Initialize seen_list. + + * search.c (syms_of_search): Staticpro searchbuf.whitespace_regexp. + + * syntax.c (syms_of_syntax): Staticpro lisp objects in gl_state. + Staticpro re_match_object. + +2005-07-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macselect.c (get_scrap_target_type_list): Avoid NULL pointer + dereference. + + * macterm.c (mac_window_to_frame): Remove duplicate define. + +2005-07-14 Kenichi Handa <handa@m17n.org> + + * coding.c (code_convert_region_unwind): ARG is changed to a cons. + (code_convert_region): Adjust for the above change. + (set_conversion_work_buffer): If the work buffer is already in + use, generate a new buffer and return it. Otherwise return Qnil. + (run_pre_post_conversion_on_str): Adjust for the above change. + (run_pre_write_conversin_on_c_str): Likewise. + +2005-07-13 Kim F. Storm <storm@cua.dk> + + * xdisp.c (start_display): Don't reseat to next visible line start + if current start position is in a string or image. + (move_it_vertically_backward): Be sure to move out of strings and + images when moving it2 forward. + (move_it_by_lines): When moving forward, move to next buffer + position if we end up in a string or image. When moving backward, + count rows moved over when moving to start of current row in case + row starts in middle of a string or image. Also move further + backward if we end up in a string or image. + (try_cursor_movement): If overlay string spans multiple lines, + move backward to set cursor on start of an overlay string. + (cursor_row_p): Row is ok if cursor is at newline from string, but + string starts on this line (so we always position cursor at start + of string). + + * indent.c (Fvertical_motion): If start position is on an image, + don't move back if we move too far (that's almost certain to happen). + + * xdisp.c (cursor_row_fully_visible_p): Allow partially visible + row in minibuffer windows. + (try_window): Don't check margins in minibuffer windows. + +2005-07-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macterm.c: Don't include stdlib.h or composite.h. + (x_use_underline_position_properties, last_mouse_press_frame) + (x_noop_count, Qvendor_specific_keysyms): Remove unused variables. + (syms_of_macterm, mac_initialize): Don't initialize them. + (waiting_for_input, initial_argv, initial_argc) + (Vcommand_line_args, Vx_no_window_manager, errno, window_scroll) + (set_frame_menubar, path_from_vol_dir_name): Remove externs. + (extra_keyboard_modifiers): Fix type in extern. + (x_window_to_frame, x_window_to_scroll_bar): Remove declarations. + (x_scroll_bar_report_motion): Add argument types to declaration. + (mac_compute_glyph_string_overhangs): Add declaration. + (disable_mouse_highlight): Remove unused variable. + [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click) + (x_scroll_bar_handle_press, x_scroll_bar_handle_release) + (x_scroll_bar_handle_drag): Remove argument `timestamp'. + All callers changed. + [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click): Don't set + timestamp. + [USE_CARBON_EVENTS] (mac_handle_mouse_event): Likewise. + (x_scroll_bar_create, XTset_vertical_scroll_bar): Show scroll bar + only when its width is less than the height. + (XTredeem_scroll_bar): Sync with xterm.c. + (font_name_table, font_name_table_size, font_name_count): + Make static. + (drag_and_drop_file_list): Remove variable. Previous use is now + local to function. + (do_ae_open_documents): Move DRAG_N_DROP event construction part + from XTread_socket. + (XTread_socket): Consolidate setting of event timestamp. + Move DRAG_N_DROP event construction part to do_ae_open_documents. + Support extra_keyboard_modifiers. + + * xfaces.c (try_font_list) [MAC_OS]: Try font family name + beginning with that for ASCII. + +2005-07-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * alloc.c (gc_cons_combined_threshold, Vgc_cons_percentage): New vars. + (Fgarbage_collect, init_alloc_once): Set gc_cons_combined_threshold. + (syms_of_alloc): Declare gc-cons-percentage. + + * eval.c (Feval, Ffuncall): + * keyboard.c (read_char): + * bytecode.c (MAYBE_GC): Use gc_cons_combined_threshold. + + * lisp.h (gc_cons_combined_threshold): Declare. + +2005-07-12 Kim F. Storm <storm@cua.dk> + + * coding.c (Qprocess_argument): + * coding.h (Qprocess_argument): Remove unused var. + + * xselect.c (intern): Remove dup. intern and staticpro for QTIMESTAMP. + +2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * mac.c [!TARGET_API_MAC_CARBON]: Include charset.h, coding.h, and + Endian.h. + [!MAC_OSX] (fchmod, fchown): New functions. + (mac_get_code_from_arg): Don't accept Lisp integer as argument. + Use SBYTES and EndianU32_BtoN. + (mac_get_object_from_code): Return 4 byte string even if argument + is 0. Use make_unibyte_string and EndianU32_NtoB. + (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator) + (Fmac_set_file_type): Fix documents and argument declarations. + Don't specify kFSCatInfoNodeFlags. Support Mac OS Classic. + +2005-07-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * window.c (Frecenter): Yet another int/Lisp_Object mixup (YAILOM). + +2005-07-11 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * xfaces.c (x_update_menu_appearance): Use fontSet resource for + Lucid if X_I18N, font otherwise. + +2005-07-10 Steven Tamm <steventamm@mac.com> + + * mac.c (Fmac_get_file_type, Fmac_get_file_creator): Add. + (Fmac_set_file_type, Fmac_set_file_creator): Add. + (mac_get_object_from_code, mac_get_code_from_arg): Add. + +2005-07-10 Richard M. Stallman <rms@gnu.org> + + * lread.c (Qeval_buffer_list, Veval_buffer_list): New vars. + (syms_of_lread): Set up eval-buffer-list. + (Feval_buffer, Feval_region): Bind eval-buffer-list. + +2005-07-08 Richard M. Stallman <rms@gnu.org> + + * eval.c (Fdefvar): Allow defvaring a constant to itself quoted. + +2005-07-08 Kim F. Storm <storm@cua.dk> + + * keyboard.c (menu_bar_items): Don't GCPRO menu_bar_items_vector here. + (syms_of_keyboard): Initialize and staticpro menu_bar_items_vector. + 2005-07-07 Kim F. Storm <storm@cua.dk> * window.c (Frecenter): Fix last change (set iarg before use). @@ -11,7 +585,7 @@ * w32console.c (initialize_w32_display): Detect when the console dimensions are insane, and default to 80x25 instead. - (w32_use_full_screen_buffer): default to NIL. + (w32_use_full_screen_buffer): Default to NIL. 2005-07-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> @@ -19,8 +593,8 @@ VERTICAL_BORDER_FACE_ID for vertical border line. (mac_encode_char): Call check_ccl_update in advance. (mac_to_x_fontname, x_font_name_to_mac_font_name) - (init_font_name_table, mac_do_list_fonts, XLoadQueryFont): Don't - assume that font family length is less than 32. + (init_font_name_table, mac_do_list_fonts, XLoadQueryFont): + Don't assume that font family length is less than 32. (x_compute_min_glyph_bounds): Make static. (x_load_font): Never set fonts_changed_p to zero. @@ -71,8 +645,7 @@ 2005-07-01 Masatake YAMATO <jet@gyve.org> - * emacs.c (main): Passing ADD_NO_RANDOMIZE to - `personality'. + * emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'. 2005-06-30 Juri Linkov <juri@jurta.org> @@ -200,7 +773,7 @@ 2005-06-22 Miles Bader <miles@gnu.org> - * xfaces.c (Qvertical_border): Renamed from `Qvertical_divider'. + * xfaces.c (Qvertical_border): Rename from `Qvertical_divider'. (realize_basic_faces, syms_of_xfaces): Update references to it. * dispextern.h (enum face_id): Rename `VERTICAL_DIVIDER_FACE_ID' to `VERTICAL_BORDER_FACE_ID'. @@ -239,8 +812,8 @@ 2005-06-17 Richard M. Stallman <rms@gnu.org> - * xdisp.c (get_next_display_element): Reverse - test of Vshow_nonbreak_escape. + * xdisp.c (get_next_display_element): + Reverse test of Vshow_nonbreak_escape. * term.c (produce_special_glyphs): Use spec_glyph_lookup_face. (Ftty_no_underline): New function. diff --git a/src/Makefile.in b/src/Makefile.in index d118557db37..2e4b4f6ad76 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,6 +1,6 @@ # Makefile for GNU Emacs. -# Copyright (C) 1985, 87, 88, 93, 94, 95, 99, 2000, 01, 03, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/src/abbrev.c b/src/abbrev.c index 8cb87f2c884..84054892910 100644 --- a/src/abbrev.c +++ b/src/abbrev.c @@ -1,6 +1,6 @@ /* Primitives for word-abbrev mode. - Copyright (C) 1985, 1986, 1993, 1996, 1998, 2001,02,03,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1996, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/alloc.c b/src/alloc.c index dddfda828e6..3861d87c3d8 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -172,10 +172,16 @@ EMACS_INT misc_objects_consed; EMACS_INT intervals_consed; EMACS_INT strings_consed; -/* Number of bytes of consing since GC before another GC should be done. */ +/* Minimum number of bytes of consing since GC before next GC. */ EMACS_INT gc_cons_threshold; +/* Similar minimum, computed from Vgc_cons_percentage. */ + +EMACS_INT gc_relative_threshold; + +static Lisp_Object Vgc_cons_percentage; + /* Nonzero during GC. */ int gc_in_progress; @@ -4899,6 +4905,24 @@ returns nil, because real GC can't be done. */) if (gc_cons_threshold < 10000) gc_cons_threshold = 10000; + if (FLOATP (Vgc_cons_percentage)) + { /* Set gc_cons_combined_threshold. */ + EMACS_INT total = 0; + + total += total_conses * sizeof (struct Lisp_Cons); + total += total_symbols * sizeof (struct Lisp_Symbol); + total += total_markers * sizeof (union Lisp_Misc); + total += total_string_size; + total += total_vector_size * sizeof (Lisp_Object); + total += total_floats * sizeof (struct Lisp_Float); + total += total_intervals * sizeof (struct interval); + total += total_strings * sizeof (struct Lisp_String); + + gc_relative_threshold = total * XFLOAT_DATA (Vgc_cons_percentage); + } + else + gc_relative_threshold = 0; + if (garbage_collection_messages) { if (message_p || minibuf_level > 0) @@ -5988,6 +6012,8 @@ init_alloc_once () staticidx = 0; consing_since_gc = 0; gc_cons_threshold = 100000 * sizeof (Lisp_Object); + gc_relative_threshold = 0; + #ifdef VIRT_ADDR_VARIES malloc_sbrk_unused = 1<<22; /* A large number */ malloc_sbrk_used = 100000; /* as reasonable as any number */ @@ -6019,7 +6045,15 @@ allocated since the last garbage collection. All data types count. Garbage collection happens automatically only when `eval' is called. By binding this temporarily to a large number, you can effectively -prevent garbage collection during a part of the program. */); +prevent garbage collection during a part of the program. +See also `gc-cons-percentage'. */); + + DEFVAR_LISP ("gc-cons-percentage", &Vgc_cons_percentage, + doc: /* *Portion of the heap used for allocation. +Garbage collection can happen automatically once this portion of the heap +has been allocated since the last garbage collection. +If this portion is smaller than `gc-cons-threshold', this is ignored. */); + Vgc_cons_percentage = make_float (0.1); DEFVAR_INT ("pure-bytes-used", &pure_bytes_used, doc: /* Number of bytes of sharable Lisp data allocated so far. */); diff --git a/src/atimer.c b/src/atimer.c index 9ac6d529b99..f8ed1b265ec 100644 --- a/src/atimer.c +++ b/src/atimer.c @@ -1,5 +1,5 @@ /* Asynchronous timers. - Copyright (C) 2000, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/atimer.h b/src/atimer.h index 5057eb2be24..d5ad9c674d5 100644 --- a/src/atimer.h +++ b/src/atimer.h @@ -1,5 +1,5 @@ /* Asynchronous timers. - Copyright (C) 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/blockinput.h b/src/blockinput.h index 36559715533..0eaebbe34df 100644 --- a/src/blockinput.h +++ b/src/blockinput.h @@ -1,5 +1,6 @@ /* blockinput.h - interface to blocking complicated interrupt-driven input. - Copyright (C) 1989, 1993, 2004 Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/buffer.c b/src/buffer.c index 43727ce7b9d..30626f11a24 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1,6 +1,7 @@ /* Buffer manipulation primitives for GNU Emacs. - Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, - 2000, 01, 02, 03, 04, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, + 1995, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -3557,10 +3558,12 @@ DEFUN ("make-overlay", Fmake_overlay, Smake_overlay, 2, 5, 0, doc: /* Create a new overlay with range BEG to END in BUFFER. If omitted, BUFFER defaults to the current buffer. BEG and END may be integers or markers. -The fourth arg FRONT-ADVANCE, if non-nil, makes the -front delimiter advance when text is inserted there. -The fifth arg REAR-ADVANCE, if non-nil, makes the -rear delimiter advance when text is inserted there. */) +The fourth arg FRONT-ADVANCE, if non-nil, makes the marker +for the front of the overlay advance when text is inserted there +(which means the text *is not* included in the overlay). +The fifth arg REAR-ADVANCE, if non-nil, makes the marker +for the rear of the overlay advance when text is inserted there +(which means the text *is* included in the overlay). */) (beg, end, buffer, front_advance, rear_advance) Lisp_Object beg, end, buffer; Lisp_Object front_advance, rear_advance; @@ -5727,7 +5730,7 @@ that fraction of the window's height from the bottom of the window. When the value is 0.0, point goes at the bottom line, which in the simple case that you moved off with C-f means scrolling just one line. 1.0 means point goes at the top, so that in that simple case, the window -window scrolls by a full window height. Meaningful values are +scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive. */); DEFVAR_PER_BUFFER ("scroll-down-aggressively", @@ -5740,7 +5743,7 @@ that fraction of the window's height from the top of the window. When the value is 0.0, point goes at the top line, which in the simple case that you moved off with C-b means scrolling just one line. 1.0 means point goes at the bottom, so that in that simple case, the window -window scrolls by a full window height. Meaningful values are +scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive. */); /*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol, @@ -5928,15 +5931,15 @@ is a member of the list. */); doc: /* Cursor to use when this buffer is in the selected window. Values are interpreted as follows: - t use the cursor specified for the frame - nil don't display a cursor - box display a filled box cursor - hollow display a hollow box cursor - bar display a vertical bar cursor with default width - (bar . WIDTH) display a vertical bar cursor with width WIDTH - hbar display a horizontal bar cursor with default height + t use the cursor specified for the frame + nil don't display a cursor + box display a filled box cursor + hollow display a hollow box cursor + bar display a vertical bar cursor with default width + (bar . WIDTH) display a vertical bar cursor with width WIDTH + hbar display a horizontal bar cursor with default height (hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT - ANYTHING ELSE display a hollow box cursor. + ANYTHING ELSE display a hollow box cursor When the buffer is displayed in a nonselected window, this variable has no effect; the cursor appears as a hollow box. */); diff --git a/src/buffer.h b/src/buffer.h index 8d170c87567..2387af65a47 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1,6 +1,6 @@ /* Header file for the buffer manipulation primitives. - Copyright (C) 1985,86,93,94,95,97,98,99,2000,01,03,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -855,6 +855,7 @@ EXFUN (Fget_file_buffer, 1); EXFUN (Fnext_overlay_change, 1); EXFUN (Fdelete_overlay, 1); EXFUN (Fbuffer_local_value, 2); +EXFUN (Fgenerate_new_buffer_name, 2); /* Functions to call before and after each text change. */ extern Lisp_Object Vbefore_change_functions; diff --git a/src/bytecode.c b/src/bytecode.c index 73b8f60a1a8..e5a3e7b2a7c 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -1,6 +1,6 @@ /* Execution of byte code produced by bytecomp.el. - Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -355,13 +355,14 @@ unmark_byte_stack () /* Garbage collect if we have consed enough since the last time. We do this at every branch, to avoid loops that never GC. */ -#define MAYBE_GC() \ - if (consing_since_gc > gc_cons_threshold) \ - { \ - BEFORE_POTENTIAL_GC (); \ - Fgarbage_collect (); \ - AFTER_POTENTIAL_GC (); \ - } \ +#define MAYBE_GC() \ + if (consing_since_gc > gc_cons_threshold \ + && consing_since_gc > gc_relative_threshold) \ + { \ + BEFORE_POTENTIAL_GC (); \ + Fgarbage_collect (); \ + AFTER_POTENTIAL_GC (); \ + } \ else /* Check for jumping out of range. */ @@ -388,7 +389,7 @@ unmark_byte_stack () Vquit_flag = Qnil; \ BEFORE_POTENTIAL_GC (); \ if (EQ (Vthrow_on_input, flag)) \ - Fthrow (Vthrow_on_input, Qnil); \ + Fthrow (Vthrow_on_input, Qt); \ Fsignal (Qquit, Qnil); \ AFTER_POTENTIAL_GC (); \ } \ diff --git a/src/callint.c b/src/callint.c index 10db39ddce4..5979e495ac3 100644 --- a/src/callint.c +++ b/src/callint.c @@ -1,6 +1,6 @@ /* Call a Lisp function interactively. - Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 03, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 2000, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/callproc.c b/src/callproc.c index b78fae1d075..47930819c07 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1,6 +1,6 @@ /* Synchronous subprocess invocation for GNU Emacs. Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, - 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/casefiddle.c b/src/casefiddle.c index b063ef7510a..454d184b99b 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c @@ -1,6 +1,6 @@ /* GNU Emacs case conversion functions. - Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1985, 1994, 1997, 1998, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/casetab.c b/src/casetab.c index 448a236f565..874bb7599f0 100644 --- a/src/casetab.c +++ b/src/casetab.c @@ -1,5 +1,6 @@ /* GNU Emacs routines to deal with case tables. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/ccl.c b/src/ccl.c index b6381f7a0cb..562215218bc 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -1,7 +1,7 @@ /* CCL (Code Conversion Language) interpreter. Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. - Copyright (C) 2001, 2002 Free Software Foundation, Inc. Licensed to the Free Software Foundation. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2209,7 +2209,7 @@ DEFUN ("ccl-execute-on-string", Fccl_execute_on_string, Sccl_execute_on_string, 3, 5, 0, doc: /* Execute CCL-PROGRAM with initial STATUS on STRING. -CCL-PROGRAM is a symbol registered by register-ccl-program, +CCL-PROGRAM is a symbol registered by `register-ccl-program', or a compiled code generated by `ccl-compile' (for backward compatibility, in this case, the execution is slower). @@ -2230,7 +2230,8 @@ It returns the contents of write buffer as a string, If the optional 5th arg UNIBYTE-P is non-nil, the returned string is a unibyte string. By default it is a multibyte string. -See the documentation of `define-ccl-program' for the detail of CCL program. */) +See the documentation of `define-ccl-program' for the detail of CCL program. +usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBYTE-P) */) (ccl_prog, status, str, contin, unibyte_p) Lisp_Object ccl_prog, status, str, contin, unibyte_p; { @@ -2297,8 +2298,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */ DEFUN ("register-ccl-program", Fregister_ccl_program, Sregister_ccl_program, 2, 2, 0, - doc: /* Register CCL program CCL_PROG as NAME in `ccl-program-table'. -CCL_PROG should be a compiled CCL program (vector), or nil. + doc: /* Register CCL program CCL-PROG as NAME in `ccl-program-table'. +CCL-PROG should be a compiled CCL program (vector), or nil. If it is nil, just reserve NAME as a CCL program name. Return index number of the registered CCL program. */) (name, ccl_prog) diff --git a/src/charset.c b/src/charset.c index e7b6897ea98..3676c9b8a71 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1,7 +1,7 @@ /* Basic multilingual character support. Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. - Copyright (C) 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/charset.h b/src/charset.h index 43791baf0c5..a5cdca21bbb 100644 --- a/src/charset.h +++ b/src/charset.h @@ -1,7 +1,7 @@ /* Header for multibyte character handler. Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1,5 +1,6 @@ /* Cursor motion subroutines for GNU Emacs. - Copyright (C) 1985, 1995 Free Software Foundation, Inc. + Copyright (C) 1985, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. based primarily on public domain code written by Chris Torek This file is part of GNU Emacs. @@ -1,5 +1,6 @@ /* Cursor motion calculation definitions for GNU Emacs - Copyright (C) 1985, 1989 Free Software Foundation, Inc. + Copyright (C) 1985, 1989, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/cmds.c b/src/cmds.c index 7940f3cf216..cc5bd90cca7 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -1,6 +1,6 @@ /* Simple built-in editing commands. - Copyright (C) 1985, 93, 94, 95, 96, 97, 1998, 2001, 02, 03 - Free Software Foundation, Inc. + Copyright (C) 1985, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/coding.c b/src/coding.c index 808f1e7d9c2..9d2d04af6cb 100644 --- a/src/coding.c +++ b/src/coding.c @@ -1,7 +1,7 @@ /* Coding system handler (conversion, detection, and etc). Copyright (C) 1995,97,1998,2002,2003 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. - Copyright (C) 2001,2002,2003 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -365,7 +365,7 @@ Lisp_Object Qsafe_chars; Lisp_Object Qvalid_codes; extern Lisp_Object Qinsert_file_contents, Qwrite_region; -Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument; +Lisp_Object Qcall_process, Qcall_process_region; Lisp_Object Qstart_process, Qopen_network_stream; Lisp_Object Qtarget_idx; @@ -5349,12 +5349,17 @@ static int shrink_conversion_region_threshhold = 1024; } \ } while (0) +/* ARG is (CODING . BUFFER) where CODING is what to be set in + Vlast_coding_system_used and BUFFER if non-nil is a buffer to + kill. */ static Lisp_Object code_convert_region_unwind (arg) Lisp_Object arg; { inhibit_pre_post_conversion = 0; - Vlast_coding_system_used = arg; + Vlast_coding_system_used = XCAR (arg); + if (! NILP (XCDR (arg))) + Fkill_buffer (XCDR (arg)); return Qnil; } @@ -5607,7 +5612,7 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace) Lisp_Object new; record_unwind_protect (code_convert_region_unwind, - Vlast_coding_system_used); + Fcons (Vlast_coding_system_used, Qnil)); /* We should not call any more pre-write/post-read-conversion functions while this pre-write-conversion is running. */ inhibit_pre_post_conversion = 1; @@ -5975,7 +5980,7 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace) TEMP_SET_PT_BOTH (from, from_byte); prev_Z = Z; record_unwind_protect (code_convert_region_unwind, - Vlast_coding_system_used); + Fcons (Vlast_coding_system_used, Qnil)); saved_coding_system = Vlast_coding_system_used; Vlast_coding_system_used = coding->symbol; /* We should not call any more pre-write/post-read-conversion @@ -6021,17 +6026,31 @@ static Lisp_Object Vcode_conversion_workbuf_name; /* Set the current buffer to the working buffer prepared for code-conversion. MULTIBYTE specifies the multibyteness of the - buffer. */ + buffer. Return the buffer we set if it must be killed after use. + Otherwise return Qnil. */ -static struct buffer * +static Lisp_Object set_conversion_work_buffer (multibyte) int multibyte; { - Lisp_Object buffer; + Lisp_Object buffer, buffer_to_kill; struct buffer *buf; buffer = Fget_buffer_create (Vcode_conversion_workbuf_name); buf = XBUFFER (buffer); + if (buf == current_buffer) + { + /* As we are already in the work buffer, we must generate a new + buffer for the work. */ + Lisp_Object name; + + name = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil); + buffer = buffer_to_kill = Fget_buffer_create (name); + buf = XBUFFER (buffer); + } + else + buffer_to_kill = Qnil; + delete_all_overlays (buf); buf->directory = current_buffer->directory; buf->read_only = Qnil; @@ -6044,7 +6063,7 @@ set_conversion_work_buffer (multibyte) Fwiden (); del_range_2 (BEG, BEG_BYTE, Z, Z_BYTE, 0); buf->enable_multibyte_characters = multibyte ? Qt : Qnil; - return buf; + return buffer_to_kill; } Lisp_Object @@ -6057,10 +6076,9 @@ run_pre_post_conversion_on_str (str, coding, encodep) struct gcpro gcpro1, gcpro2; int multibyte = STRING_MULTIBYTE (str); Lisp_Object old_deactivate_mark; + Lisp_Object buffer_to_kill; record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); - record_unwind_protect (code_convert_region_unwind, - Vlast_coding_system_used); /* It is not crucial to specbind this. */ old_deactivate_mark = Vdeactivate_mark; GCPRO2 (str, old_deactivate_mark); @@ -6068,7 +6086,9 @@ run_pre_post_conversion_on_str (str, coding, encodep) /* We must insert the contents of STR as is without unibyte<->multibyte conversion. For that, we adjust the multibyteness of the working buffer to that of STR. */ - set_conversion_work_buffer (multibyte); + buffer_to_kill = set_conversion_work_buffer (multibyte); + record_unwind_protect (code_convert_region_unwind, + Fcons (Vlast_coding_system_used, buffer_to_kill)); insert_from_string (str, 0, 0, SCHARS (str), SBYTES (str), 0); @@ -6111,6 +6131,7 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding) struct buffer *cur = current_buffer; Lisp_Object old_deactivate_mark, old_last_coding_system_used; Lisp_Object args[3]; + Lisp_Object buffer_to_kill; /* It is not crucial to specbind this. */ old_deactivate_mark = Vdeactivate_mark; @@ -6120,7 +6141,7 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding) /* We must insert the contents of STR as is without unibyte<->multibyte conversion. For that, we adjust the multibyteness of the working buffer to that of STR. */ - set_conversion_work_buffer (coding->src_multibyte); + buffer_to_kill = set_conversion_work_buffer (coding->src_multibyte); insert_1_both (*str, nchars, nbytes, 0, 0, 0); UNGCPRO; inhibit_pre_post_conversion = 1; @@ -6144,6 +6165,8 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding) coding->src_multibyte = ! NILP (current_buffer->enable_multibyte_characters); set_buffer_internal (cur); + if (! NILP (buffer_to_kill)) + Fkill_buffer (buffer_to_kill); } diff --git a/src/coding.h b/src/coding.h index 4081b7f2028..158ebbf289f 100644 --- a/src/coding.h +++ b/src/coding.h @@ -1,7 +1,7 @@ /* Header for coding system handler. - Copyright (C) 2004, 2005 Free Software Foundation, Inc. Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -628,7 +628,7 @@ extern int code_convert_region P_ ((int, int, int, int, struct coding_system *, extern Lisp_Object run_pre_post_conversion_on_str P_ ((Lisp_Object, struct coding_system *, int)); -extern void run_pre_write_conversin_on_c_str P_ ((unsigned char **, int *, +extern void run_pre_write_conversin_on_c_str P_ ((unsigned char **, int *, int, int, struct coding_system *)); @@ -666,7 +666,7 @@ extern Lisp_Object eol_mnemonic_undecided; #ifdef emacs extern Lisp_Object Qfile_coding_system; -extern Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument; +extern Lisp_Object Qcall_process, Qcall_process_region; extern Lisp_Object Qstart_process, Qopen_network_stream; extern Lisp_Object Qwrite_region; diff --git a/src/commands.h b/src/commands.h index 9486467e2fe..7ad593577ad 100644 --- a/src/commands.h +++ b/src/commands.h @@ -1,5 +1,6 @@ /* Definitions needed by most editing commands. - Copyright (C) 1985, 1994 Free Software Foundation, Inc. + Copyright (C) 1985, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/composite.c b/src/composite.c index dffac5c01f9..daa6dceb3c6 100644 --- a/src/composite.c +++ b/src/composite.c @@ -1,7 +1,7 @@ /* Composite sequence support. Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -716,8 +716,8 @@ DEFUN ("compose-region-internal", Fcompose_region_internal, Compose text in the region between START and END. Optional 3rd and 4th arguments are COMPONENTS and MODIFICATION-FUNC for the composition. See `compose-region' for more detail. */) - (start, end, components, mod_func) - Lisp_Object start, end, components, mod_func; + (start, end, components, modification_func) + Lisp_Object start, end, components, modification_func; { validate_region (&start, &end); if (!NILP (components) @@ -726,7 +726,7 @@ for the composition. See `compose-region' for more detail. */) && !STRINGP (components)) CHECK_VECTOR (components); - compose_text (XINT (start), XINT (end), components, mod_func, Qnil); + compose_text (XINT (start), XINT (end), components, modification_func, Qnil); return Qnil; } @@ -737,8 +737,8 @@ DEFUN ("compose-string-internal", Fcompose_string_internal, Compose text between indices START and END of STRING. Optional 4th and 5th arguments are COMPONENTS and MODIFICATION-FUNC for the composition. See `compose-string' for more detail. */) - (string, start, end, components, mod_func) - Lisp_Object string, start, end, components, mod_func; + (string, start, end, components, modification_func) + Lisp_Object string, start, end, components, modification_func; { CHECK_STRING (string); CHECK_NUMBER (start); @@ -749,7 +749,7 @@ for the composition. See `compose-string' for more detail. */) || XINT (end) > SCHARS (string)) args_out_of_range (start, end); - compose_text (XINT (start), XINT (end), components, mod_func, string); + compose_text (XINT (start), XINT (end), components, modification_func, string); return string; } diff --git a/src/composite.h b/src/composite.h index 9dfe597631e..26cf13d27d4 100644 --- a/src/composite.h +++ b/src/composite.h @@ -1,7 +1,7 @@ /* Header for composite sequence handler. Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/config.in b/src/config.in index f4ab9fbb3dd..dc2c07667fb 100644 --- a/src/config.in +++ b/src/config.in @@ -191,6 +191,12 @@ Boston, MA 02110-1301, USA. */ /* Define to 1 if you have the `getloadavg' function. */ #undef HAVE_GETLOADAVG +/* Define to 1 if you have the <getopt.h> header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long_only' function. */ +#undef HAVE_GETOPT_LONG_ONLY + /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE @@ -785,9 +791,9 @@ Boston, MA 02110-1301, USA. */ /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ @@ -846,6 +852,10 @@ Boston, MA 02110-1301, USA. */ /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#undef __GETOPT_PREFIX + /* Define like PROTOTYPES; this can be used by system headers. */ #undef __PROTOTYPES diff --git a/src/cxux-crt0.s b/src/cxux-crt0.s index 615837eaeb4..71076eb8b5f 100644 --- a/src/cxux-crt0.s +++ b/src/cxux-crt0.s @@ -1,6 +1,6 @@ /* * External symbol setup file for GNU Emacs on CX/UX - * Copyright (C) 1990 Free Software Foundation, Inc. + * Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. * * This file is part of GNU Emacs. * diff --git a/src/data.c b/src/data.c index 09cb6c8b40a..b187a3e748a 100644 --- a/src/data.c +++ b/src/data.c @@ -1,6 +1,6 @@ /* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter. - Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001, 03, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/dired.c b/src/dired.c index 55f96d28888..927276e15c0 100644 --- a/src/dired.c +++ b/src/dired.c @@ -1,6 +1,6 @@ /* Lisp functions for making directory listings. - Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -131,7 +131,7 @@ Lisp_Object directory_files_internal_unwind (dh) Lisp_Object dh; { - DIR *d = (DIR *) ((XINT (XCAR (dh)) << 16) + XINT (XCDR (dh))); + DIR *d = (DIR *) XSAVE_VALUE (dh)->pointer; closedir (d); return Qnil; } @@ -155,7 +155,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format) int count = SPECPDL_INDEX (); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; DIRENTRY *dp; - int retry_p; /* Because of file name handlers, these functions might call Ffuncall, and cause a GC. */ @@ -189,12 +188,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format) /* Now *bufp is the compiled form of MATCH; don't call anything which might compile a new regexp until we're done with the loop! */ - /* Do this opendir after anything which might signal an error; if - an error is signaled while the directory stream is open, we - have to make sure it gets closed, and setting up an - unwind_protect to do so would be a pain. */ - retry: - d = opendir (SDATA (dirfilename)); if (d == NULL) report_file_error ("Opening directory", Fcons (directory, Qnil)); @@ -203,8 +196,7 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format) file-attributes on filenames, both of which can throw, so we must do a proper unwind-protect. */ record_unwind_protect (directory_files_internal_unwind, - Fcons (make_number (((unsigned long) d) >> 16), - make_number (((unsigned long) d) & 0xffff))); + make_save_value (d, 0)); directory_nbytes = SBYTES (directory); re_match_object = Qt; @@ -222,10 +214,15 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format) errno = 0; dp = readdir (d); + if (dp == NULL && (0 #ifdef EAGAIN - if (dp == NULL && errno == EAGAIN) - continue; + || errno == EAGAIN +#endif +#ifdef EINTR + || errno == EINTR #endif + )) + { QUIT; continue; } if (dp == NULL) break; @@ -316,22 +313,11 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format) } } - retry_p = 0; -#ifdef EINTR - retry_p |= errno == EINTR; -#endif - closedir (d); /* Discard the unwind protect. */ specpdl_ptr = specpdl + count; - if (retry_p) - { - list = Qnil; - goto retry; - } - if (NILP (nosort)) list = Fsort (Fnreverse (list), attrs ? Qfile_attributes_lessp : Qstring_lessp); @@ -519,8 +505,7 @@ file_name_completion (file, dirname, all_flag, ver_flag) report_file_error ("Opening directory", Fcons (dirname, Qnil)); record_unwind_protect (directory_files_internal_unwind, - Fcons (make_number (((unsigned long) d) >> 16), - make_number (((unsigned long) d) & 0xffff))); + make_save_value (d, 0)); /* Loop reading blocks */ /* (att3b compiler bug requires do a null comparison this way) */ @@ -532,8 +517,19 @@ file_name_completion (file, dirname, all_flag, ver_flag) #ifdef VMS dp = (*readfunc) (d); #else + errno = 0; dp = readdir (d); + if (dp == NULL && (0 +# ifdef EAGAIN + || errno == EAGAIN +# endif +# ifdef EINTR + || errno == EINTR +# endif + )) + { QUIT; continue; } #endif + if (!dp) break; len = NAMLEN (dp); diff --git a/src/dispextern.h b/src/dispextern.h index ac9c007bc4d..1c802e9e332 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1,6 +1,6 @@ /* Interface definitions for display code. - Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1985, 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/dispnew.c b/src/dispnew.c index 4924ce2217b..2cb661c6ba7 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -1,6 +1,7 @@ /* Updating of data structures for redisplay. - Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1171,6 +1172,9 @@ increment_row_positions (row, delta, delta_bytes) MATRIX_ROW_END_CHARPOS (row) += delta; MATRIX_ROW_END_BYTEPOS (row) += delta_bytes; + if (!row->enabled_p) + return; + /* Increment positions in glyphs. */ for (area = 0; area < LAST_AREA; ++area) for (i = 0; i < row->used[area]; ++i) @@ -3309,9 +3313,7 @@ window_to_frame_hpos (w, hpos) struct window *w; int hpos; { - struct frame *f = XFRAME (w->frame); - - xassert (!FRAME_WINDOW_P (f)); + xassert (!FRAME_WINDOW_P (XFRAME (w->frame))); hpos += WINDOW_LEFT_EDGE_COL (w); return hpos; } @@ -4099,10 +4101,8 @@ update_window (w, force_p) extern Lisp_Object do_mouse_tracking; struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w))); #if GLYPH_DEBUG - struct frame *f = XFRAME (WINDOW_FRAME (w)); - /* Check that W's frame doesn't have glyph matrices. */ - xassert (FRAME_WINDOW_P (f)); + xassert (FRAME_WINDOW_P (XFRAME (WINDOW_FRAME (w)))); #endif /* Check pending input the first time so that we can quickly return. */ @@ -5806,8 +5806,9 @@ buffer_posn_from_coords (w, x, y, pos, object, dx, dy, width, height) } #endif - row = MATRIX_ROW (w->current_matrix, it.vpos); - if (row->enabled_p) + if (it.vpos < w->current_matrix->nrows + && (row = MATRIX_ROW (w->current_matrix, it.vpos), + row->enabled_p)) { if (it.hpos < row->used[TEXT_AREA]) { @@ -6488,68 +6489,106 @@ usage: (sit-for SECONDS &optional NODISP OLD-NODISP) */) /* A vector of size >= 2 * NFRAMES + 3 * NBUFFERS + 1, containing the session's frames, frame names, buffers, buffer-read-only flags, and - buffer-modified-flags, and a trailing sentinel (so we don't need to - add length checks). */ + buffer-modified-flags. */ static Lisp_Object frame_and_buffer_state; DEFUN ("frame-or-buffer-changed-p", Fframe_or_buffer_changed_p, - Sframe_or_buffer_changed_p, 0, 0, 0, + Sframe_or_buffer_changed_p, 0, 1, 0, doc: /* Return non-nil if the frame and buffer state appears to have changed. -The state variable is an internal vector containing all frames and buffers, +VARIABLE is a variable name whose value is either nil or a state vector +that will be updated to contain all frames and buffers, aside from buffers whose names start with space, -along with the buffers' read-only and modified flags, which allows a fast -check to see whether the menu bars might need to be recomputed. +along with the buffers' read-only and modified flags. This allows a fast +check to see whether buffer menus might need to be recomputed. If this function returns non-nil, it updates the internal vector to reflect -the current state. */) - () +the current state. + +If VARIABLE is nil, an internal variable is used. Users should not +pass nil for VARIABLE. */) + (variable) + Lisp_Object variable; { - Lisp_Object tail, frame, buf; - Lisp_Object *vecp; + Lisp_Object state, tail, frame, buf; + Lisp_Object *vecp, *end; int n; - vecp = XVECTOR (frame_and_buffer_state)->contents; + if (! NILP (variable)) + { + CHECK_SYMBOL (variable); + state = Fsymbol_value (variable); + if (! VECTORP (state)) + goto changed; + } + else + state = frame_and_buffer_state; + + vecp = XVECTOR (state)->contents; + end = vecp + XVECTOR (state)->size; + FOR_EACH_FRAME (tail, frame) { + if (vecp == end) + goto changed; if (!EQ (*vecp++, frame)) goto changed; + if (vecp == end) + goto changed; if (!EQ (*vecp++, XFRAME (frame)->name)) goto changed; } - /* Check that the buffer info matches. - No need to test for the end of the vector - because the last element of the vector is lambda - and that will always cause a mismatch. */ + /* Check that the buffer info matches. */ for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) { buf = XCDR (XCAR (tail)); /* Ignore buffers that aren't included in buffer lists. */ if (SREF (XBUFFER (buf)->name, 0) == ' ') continue; + if (vecp == end) + goto changed; if (!EQ (*vecp++, buf)) goto changed; + if (vecp == end) + goto changed; if (!EQ (*vecp++, XBUFFER (buf)->read_only)) goto changed; + if (vecp == end) + goto changed; if (!EQ (*vecp++, Fbuffer_modified_p (buf))) goto changed; } + if (vecp == end) + goto changed; /* Detect deletion of a buffer at the end of the list. */ if (EQ (*vecp, Qlambda)) return Qnil; + + /* Come here if we decide the data has changed. */ changed: - /* Start with 1 so there is room for at least one lambda at the end. */ + /* Count the size we will need. + Start with 1 so there is room for at least one lambda at the end. */ n = 1; FOR_EACH_FRAME (tail, frame) n += 2; for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) n += 3; - /* Reallocate the vector if it's grown, or if it's shrunk a lot. */ - if (n > XVECTOR (frame_and_buffer_state)->size - || n + 20 < XVECTOR (frame_and_buffer_state)->size / 2) + /* Reallocate the vector if data has grown to need it, + or if it has shrunk a lot. */ + if (! VECTORP (state) + || n > XVECTOR (state)->size + || n + 20 < XVECTOR (state)->size / 2) /* Add 20 extra so we grow it less often. */ - frame_and_buffer_state = Fmake_vector (make_number (n + 20), Qlambda); - vecp = XVECTOR (frame_and_buffer_state)->contents; + { + state = Fmake_vector (make_number (n + 20), Qlambda); + if (! NILP (variable)) + Fset (variable, state); + else + frame_and_buffer_state = state; + } + + /* Record the new data in the (possibly reallocated) vector. */ + vecp = XVECTOR (state)->contents; FOR_EACH_FRAME (tail, frame) { *vecp++ = frame; @@ -6567,12 +6606,12 @@ the current state. */) } /* Fill up the vector with lambdas (always at least one). */ *vecp++ = Qlambda; - while (vecp - XVECTOR (frame_and_buffer_state)->contents - < XVECTOR (frame_and_buffer_state)->size) + while (vecp - XVECTOR (state)->contents + < XVECTOR (state)->size) *vecp++ = Qlambda; /* Make sure we didn't overflow the vector. */ - if (vecp - XVECTOR (frame_and_buffer_state)->contents - > XVECTOR (frame_and_buffer_state)->size) + if (vecp - XVECTOR (state)->contents + > XVECTOR (state)->size) abort (); return Qt; } diff --git a/src/disptab.h b/src/disptab.h index 30b2a7a7486..41f4bcbfdbf 100644 --- a/src/disptab.h +++ b/src/disptab.h @@ -1,5 +1,5 @@ /* Things for GLYPHS and glyph tables. - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/doc.c b/src/doc.c index 6d8b625affe..6d54aeceacd 100644 --- a/src/doc.c +++ b/src/doc.c @@ -1,6 +1,6 @@ /* Record indices of function doc strings stored in a file. - Copyright (C) 1985, 86,93,94,95,97,98,99,2000,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/doprnt.c b/src/doprnt.c index 1cfc5aecee6..5d824038faf 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -1,7 +1,7 @@ /* Output like sprintf to a buffer of specified size. Also takes args differently: pass one pointer to an array of strings in addition to the format string which is separate. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/dosfns.c b/src/dosfns.c index 6192836e970..c256595cc13 100644 --- a/src/dosfns.c +++ b/src/dosfns.c @@ -1,7 +1,7 @@ /* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991. Major changes May-July 1993 Morten Welinder (only 10% original code left) - Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001 - Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/dosfns.h b/src/dosfns.h index 594c3d980c6..40aaf524e23 100644 --- a/src/dosfns.h +++ b/src/dosfns.h @@ -2,8 +2,8 @@ Coded by Manabu Higashida, 1991. Modified by Morten Welinder, 1993-1994. - Copyright (C) 1991, 1994, 1995, 1997, 1999 - Free Software Foundation, Inc. + Copyright (C) 1991, 1994, 1995, 1997, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/ecrt0.c b/src/ecrt0.c index 95b69b11c01..5ee24dfae8c 100644 --- a/src/ecrt0.c +++ b/src/ecrt0.c @@ -1,5 +1,6 @@ /* C code startup routine. - Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1992, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/editfns.c b/src/editfns.c index 05888fd4843..da4533d2537 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1,6 +1,7 @@ /* Lisp functions pertaining to editing. - Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/emacs.c b/src/emacs.c index af23f8b9136..8724cbf2928 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1,6 +1,6 @@ /* Fully extensible Emacs, running on Unix, intended for GNU. - Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2001, - 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -267,7 +267,7 @@ Initialization options:\n\ --no-site-file do not load site-start.el\n\ --no-splash do not display a splash screen on startup\n\ --no-window-system, -nw do not communicate with X, ignoring $DISPLAY\n\ ---quick, -Q equivalent to -q --no-site-file\n\ +--quick, -Q equivalent to -q --no-site-file --no-splash\n\ --script FILE run FILE as an Emacs Lisp script\n\ --terminal, -t DEVICE use DEVICE for terminal I/O\n\ --unibyte, --no-multibyte run Emacs in unibyte mode\n\ @@ -1154,9 +1154,9 @@ main (argc, argv if (argmatch (argv, argc, "-script", "--script", 3, &junk, &skip_args)) { noninteractive = 1; /* Set batch mode. */ - /* Convert --script to -l, un-skip it, and sort again so that -l will be - handled in proper sequence. */ - argv[skip_args - 1] = "-l"; + /* Convert --script to --scriptload, un-skip it, and sort again + so that it will be handled in proper sequence. */ + argv[skip_args - 1] = "-scriptload"; skip_args -= 2; sort_args (argc, argv); } @@ -1837,7 +1837,7 @@ struct standard_args standard_args[] = { "-itype", 0, 15, 0 }, { "-iconic", "--iconic", 15, 0 }, { "-D", "--basic-display", 12, 0}, - { "--basic-display", 0, 12, 0}, + { "-basic-display", 0, 12, 0}, { "-bg", "--background-color", 10, 1 }, { "-background", 0, 10, 1 }, { "-fg", "--foreground-color", 10, 1 }, @@ -1871,6 +1871,7 @@ struct standard_args standard_args[] = { "-directory", 0, 0, 1 }, { "-l", "--load", 0, 1 }, { "-load", 0, 0, 1 }, + { "-scriptload", "--scriptload", 0, 1 }, { "-f", "--funcall", 0, 1 }, { "-funcall", 0, 0, 1 }, { "-eval", "--eval", 0, 1 }, diff --git a/src/epaths.in b/src/epaths.in index be91cb485ae..ee965cb7615 100644 --- a/src/epaths.in +++ b/src/epaths.in @@ -1,6 +1,6 @@ /* Hey Emacs, this is -*- C -*- code! */ -/* Copyright (C) 1993, 1995, 1997, 1999, 2001 - Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/eval.c b/src/eval.c index f625258229e..a867d00150e 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1,6 +1,6 @@ /* Evaluator for GNU Emacs Lisp interpreter. Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1999, 2000, 2001, - 2002, 2004, 2005 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -235,6 +235,7 @@ restore_stack_limits (data) { max_specpdl_size = XINT (XCAR (data)); max_lisp_eval_depth = XINT (XCDR (data)); + return Qnil; } /* Call the Lisp debugger, giving it argument ARG. */ @@ -471,10 +472,10 @@ usage: (prog1 FIRST BODY...) */) } DEFUN ("prog2", Fprog2, Sprog2, 2, UNEVALLED, 0, - doc: /* Eval X, Y and BODY sequentially; value from Y. -The value of Y is saved during the evaluation of the remaining args, -whose values are discarded. -usage: (prog2 X Y BODY...) */) + doc: /* Eval FORM1, FORM2 and BODY sequentially; value from FORM2. +The value of FORM2 is saved during the evaluation of the +remaining args, whose values are discarded. +usage: (prog2 FORM1 FORM2 BODY...) */) (args) Lisp_Object args; { @@ -564,8 +565,8 @@ usage: (function ARG) */) DEFUN ("interactive-p", Finteractive_p, Sinteractive_p, 0, 0, 0, doc: /* Return t if the function was run directly by user input. -This means that the function was called with call-interactively (which -includes being called as the binding of a key) +This means that the function was called with `call-interactively' +\(which includes being called as the binding of a key) and input is currently coming from the keyboard (not in keyboard macro), and Emacs is not running in batch mode (`noninteractive' is nil). @@ -586,14 +587,14 @@ unconditionally for that argument. (`p' is a good way to do this.) */) DEFUN ("called-interactively-p", Fcalled_interactively_p, Scalled_interactively_p, 0, 0, 0, - doc: /* Return t if the function using this was called with call-interactively. + doc: /* Return t if the function using this was called with `call-interactively'. This is used for implementing advice and other function-modifying features of Emacs. The cleanest way to test whether your function was called with -`call-interactively', the way to do that is by adding an extra -optional argument, and making the `interactive' spec specify non-nil -unconditionally for that argument. (`p' is a good way to do this.) */) +`call-interactively' is by adding an extra optional argument, +and making the `interactive' spec specify non-nil unconditionally +for that argument. (`p' is a good way to do this.) */) () { return interactive_p (1) ? Qt : Qnil; @@ -779,7 +780,7 @@ The return value is BASE-VARIABLE. */) DEFUN ("defvar", Fdefvar, Sdefvar, 1, UNEVALLED, 0, - doc: /* Define SYMBOL as a variable. + doc: /* Define SYMBOL as a variable, and return SYMBOL. You are not required to define a variable in order to use it, but the definition can supply documentation and an initial value in a way that tags can recognize. @@ -806,10 +807,6 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */) register Lisp_Object sym, tem, tail; sym = Fcar (args); - if (SYMBOL_CONSTANT_P (sym)) - error ("Constant symbol `%s' specified in defvar", - SDATA (SYMBOL_NAME (sym))); - tail = Fcdr (args); if (!NILP (Fcdr (Fcdr (tail)))) error ("Too many arguments"); @@ -817,6 +814,18 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */) tem = Fdefault_boundp (sym); if (!NILP (tail)) { + if (SYMBOL_CONSTANT_P (sym)) + { + /* For upward compatibility, allow (defvar :foo (quote :foo)). */ + Lisp_Object tem = Fcar (tail); + if (! (CONSP (tem) + && EQ (XCAR (tem), Qquote) + && CONSP (XCDR (tem)) + && EQ (XCAR (XCDR (tem)), sym))) + error ("Constant symbol `%s' specified in defvar", + SDATA (SYMBOL_NAME (sym))); + } + if (NILP (tem)) Fset_default (sym, Feval (Fcar (tail))); else @@ -2085,7 +2094,8 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0, return form; QUIT; - if (consing_since_gc > gc_cons_threshold) + if (consing_since_gc > gc_cons_threshold + && consing_since_gc > gc_relative_threshold) { GCPRO1 (form); Fgarbage_collect (); @@ -2785,7 +2795,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) register int i; QUIT; - if (consing_since_gc > gc_cons_threshold) + if (consing_since_gc > gc_cons_threshold + && consing_since_gc > gc_relative_threshold) Fgarbage_collect (); if (++lisp_eval_depth > max_lisp_eval_depth) @@ -2851,8 +2862,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) val = (*XSUBR (fun)->function) (internal_args[0]); goto done; case 2: - val = (*XSUBR (fun)->function) (internal_args[0], - internal_args[1]); + val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1]); goto done; case 3: val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1], @@ -2860,8 +2870,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) goto done; case 4: val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1], - internal_args[2], - internal_args[3]); + internal_args[2], internal_args[3]); goto done; case 5: val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1], @@ -3387,7 +3396,7 @@ void syms_of_eval () { DEFVAR_INT ("max-specpdl-size", &max_specpdl_size, - doc: /* *Limit on number of Lisp variable bindings & unwind-protects. + doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's. If Lisp code tries to increase the total number past this amount, an error is signaled. You can safely use a value considerably larger than the default value, @@ -3484,10 +3493,8 @@ It does not apply to errors handled by `condition-case'. */); Vdebug_ignored_errors = Qnil; DEFVAR_BOOL ("debug-on-quit", &debug_on_quit, - doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example). -Does not apply if quit is handled by a `condition-case'. -When you evaluate an expression interactively, this variable -is temporarily non-nil if `eval-expression-debug-on-quit' is non-nil. */); + doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example). +Does not apply if quit is handled by a `condition-case'. */); debug_on_quit = 0; DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call, diff --git a/src/fileio.c b/src/fileio.c index 769dc14e77d..53b989f52e2 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1,6 +1,7 @@ /* File IO for GNU Emacs. - Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -5820,13 +5821,13 @@ auto_save_1 () } static Lisp_Object -do_auto_save_unwind (stream) /* used as unwind-protect function */ - Lisp_Object stream; +do_auto_save_unwind (arg) /* used as unwind-protect function */ + Lisp_Object arg; { + FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer; auto_saving = 0; - if (!NILP (stream)) - fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16 - | XFASTINT (XCDR (stream)))); + if (stream != NULL) + fclose (stream); return Qnil; } @@ -5871,8 +5872,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) int auto_saved = 0; int do_handled_files; Lisp_Object oquit; - FILE *stream; - Lisp_Object lispstream; + FILE *stream = NULL; int count = SPECPDL_INDEX (); int orig_minibuffer_auto_raise = minibuffer_auto_raise; int old_message_p = 0; @@ -5924,24 +5924,10 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) } stream = fopen (SDATA (listfile), "w"); - if (stream != NULL) - { - /* Arrange to close that file whether or not we get an error. - Also reset auto_saving to 0. */ - lispstream = Fcons (Qnil, Qnil); - XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16); - XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff); - } - else - lispstream = Qnil; - } - else - { - stream = NULL; - lispstream = Qnil; } - record_unwind_protect (do_auto_save_unwind, lispstream); + record_unwind_protect (do_auto_save_unwind, + make_save_value (stream, 0)); record_unwind_protect (do_auto_save_unwind_1, make_number (minibuffer_auto_raise)); minibuffer_auto_raise = 0; diff --git a/src/filelock.c b/src/filelock.c index de348f61a90..fc6839f5f88 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -1,6 +1,6 @@ /* Lock files for editing. - Copyright (C) 1985, 86, 87, 93, 94, 96, 98, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 1994, 1996, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/filemode.c b/src/filemode.c index 130cbace773..6257c6a7664 100644 --- a/src/filemode.c +++ b/src/filemode.c @@ -1,5 +1,6 @@ /* filemode.c -- make a string describing file modes - Copyright (C) 1985, 1990, 1993 Free Software Foundation, Inc. + Copyright (C) 1985, 1990, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. 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 diff --git a/src/firstfile.c b/src/firstfile.c index cf6dbf3e888..b16f3a3dc44 100644 --- a/src/firstfile.c +++ b/src/firstfile.c @@ -1,5 +1,5 @@ /* Mark beginning of data space to dump as pure, for GNU Emacs. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/floatfns.c b/src/floatfns.c index 529e7b76e39..79574e0a69b 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -1,5 +1,6 @@ /* Primitive operations on floating point for GNU Emacs Lisp interpreter. - Copyright (C) 1988, 1993, 1994, 1999, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -460,7 +461,8 @@ DEFUN ("expt", Fexpt, Sexpt, 2, 2, 0, CHECK_NUMBER_OR_FLOAT (arg1); CHECK_NUMBER_OR_FLOAT (arg2); if (INTEGERP (arg1) /* common lisp spec */ - && INTEGERP (arg2)) /* don't promote, if both are ints */ + && INTEGERP (arg2) /* don't promote, if both are ints, and */ + && 0 <= XINT (arg2)) /* we are sure the result is not fractional */ { /* this can be improved by pre-calculating */ EMACS_INT acc, x, y; /* some binary powers of x then accumulating */ Lisp_Object val; diff --git a/src/fns.c b/src/fns.c index f1e83f727a5..1e26ec9a392 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1,6 +1,7 @@ /* Random utility Lisp functions. - Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1153,13 +1154,13 @@ Beware, this often doesn't really do what you think it does. It is similar to (decode-coding-string STRING 'emacs-mule-unix). If you're not sure, whether to use `string-as-multibyte' or `string-to-multibyte', use `string-to-multibyte'. Beware: - (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201) - (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300) - (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300) - (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201) + (aref (string-as-multibyte "\\201") 0) -> 129 (aka ?\\201) + (aref (string-as-multibyte "\\300") 0) -> 192 (aka ?\\300) + (aref (string-as-multibyte "\\300\\201") 0) -> 192 (aka ?\\300) + (aref (string-as-multibyte "\\300\\201") 1) -> 129 (aka ?\\201) but - (aref (string-as-multibyte "\201\300") 0) -> 2240 - (aref (string-as-multibyte "\201\300") 1) -> <error> */) + (aref (string-as-multibyte "\\201\\300") 0) -> 2240 + (aref (string-as-multibyte "\\201\\300") 1) -> <error> */) (string) Lisp_Object string; { @@ -5832,7 +5833,7 @@ syms_of_fns () DEFVAR_LISP ("features", &Vfeatures, doc: /* A list of symbols which are the features of the executing emacs. Used by `featurep' and `require', and altered by `provide'. */); - Vfeatures = Qnil; + Vfeatures = Fcons (intern ("emacs"), Qnil); Qsubfeatures = intern ("subfeatures"); staticpro (&Qsubfeatures); diff --git a/src/fontset.c b/src/fontset.c index e3bb1ced2f4..4529e6c2134 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -1,7 +1,7 @@ /* Fontset handler. - Copyright (C) 2004 Free Software Foundation, Inc. Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/fontset.h b/src/fontset.h index 7d2def16cfc..3a4932af6c0 100644 --- a/src/fontset.h +++ b/src/fontset.h @@ -1,6 +1,7 @@ /* Header for fontset handler. Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/frame.c b/src/frame.c index 864ec625c2c..ecbae7f593f 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1,6 +1,6 @@ /* Generic frame functions. - Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003, 2004, 2005 - Free Software Foundation. + Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2582,8 +2582,7 @@ DEFUN ("frame-char-width", Fframe_char_width, Sframe_char_width, 0, 1, 0, doc: /* Width in pixels of characters in the font in frame FRAME. If FRAME is omitted, the selected frame is used. -The width is the same for all characters, because -currently Emacs supports only fixed-width fonts. +On a graphical screen, the width is the standard width of the default font. For a terminal screen, the value is always 1. */) (frame) Lisp_Object frame; diff --git a/src/frame.h b/src/frame.h index 81d3477121e..838b61bb703 100644 --- a/src/frame.h +++ b/src/frame.h @@ -1,5 +1,6 @@ /* Define frame-object for GNU Emacs. - Copyright (C) 1993, 1994, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -443,6 +444,10 @@ struct frame realized. Reset to zero whenever the default face changes. Used to see the difference between a font change and face change. */ unsigned default_face_done_p : 1; + + /* Set to non-zero if this frame has already been hscrolled during + current redisplay. */ + unsigned already_hscrolled_p : 1; }; #ifdef MULTI_KBOARD @@ -808,13 +813,13 @@ extern Lisp_Object selected_frame; Display-related Macros ***********************************************************************/ -/* Canonical y-unit on frame F. +/* Canonical y-unit on frame F. This value currently equals the line height of the frame (which is the height of the default font of F). */ #define FRAME_LINE_HEIGHT(F) ((F)->line_height) -/* Canonical x-unit on frame F. +/* Canonical x-unit on frame F. This value currently equals the average width of the default font of F. */ #define FRAME_COLUMN_WIDTH(F) ((F)->column_width) diff --git a/src/fringe.c b/src/fringe.c index 7731c0302e9..25de5aa604e 100644 --- a/src/fringe.c +++ b/src/fringe.c @@ -1,6 +1,7 @@ /* Fringe handling (split from xdisp.c). - Copyright (C) 1985,86,87,88,93,94,95,97,98,99,2000,01,02,03,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, + 1998, 1999, 2000, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -777,13 +778,14 @@ draw_window_fringes (w, no_fringe) /* Recalculate the bitmaps to show in the fringes of window W. - If FORCE_P is 0, only mark rows with modified bitmaps for update in - redraw_fringe_bitmaps_p; else mark all rows for update. */ + Only mark rows with modified bitmaps for update in redraw_fringe_bitmaps_p. + + If KEEP_CURRENT_P is 0, update current_matrix too. */ int -update_window_fringes (w, force_p) +update_window_fringes (w, keep_current_p) struct window *w; - int force_p; + int keep_current_p; { struct glyph_row *row, *cur = 0; int yb = window_text_bottom_y (w); @@ -849,7 +851,8 @@ update_window_fringes (w, force_p) { if (!done_top) { - if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer))) + if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer)) + && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row)) row->indicate_bob_p = !NILP (boundary_top); else row->indicate_top_line_p = !NILP (arrow_top); @@ -858,7 +861,8 @@ update_window_fringes (w, force_p) if (!done_bot) { - if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer))) + if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer)) + && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row)) row->indicate_eob_p = !NILP (boundary_bot), done_bot = 1; else if (y + row->height >= yb) row->indicate_bottom_line_p = !NILP (arrow_bot), done_bot = 1; @@ -943,8 +947,7 @@ update_window_fringes (w, force_p) else right = NO_FRINGE_BITMAP; - if (force_p - || row->y != cur->y + if (row->y != cur->y || row->visible_height != cur->visible_height || row->ends_at_zv_p != cur->ends_at_zv_p || left != cur->left_fringe_bitmap @@ -953,11 +956,15 @@ update_window_fringes (w, force_p) || right_face_id != cur->right_fringe_face_id || cur->redraw_fringe_bitmaps_p) { - redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1; - cur->left_fringe_bitmap = left; - cur->right_fringe_bitmap = right; - cur->left_fringe_face_id = left_face_id; - cur->right_fringe_face_id = right_face_id; + redraw_p = row->redraw_fringe_bitmaps_p = 1; + if (!keep_current_p) + { + cur->redraw_fringe_bitmaps_p = 1; + cur->left_fringe_bitmap = left; + cur->right_fringe_bitmap = right; + cur->left_fringe_face_id = left_face_id; + cur->right_fringe_face_id = right_face_id; + } } if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap) @@ -975,7 +982,7 @@ update_window_fringes (w, force_p) row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1; } - return redraw_p; + return redraw_p && !keep_current_p; } diff --git a/src/getloadavg.c b/src/getloadavg.c index 191f7d4244f..a2ae9bc310b 100644 --- a/src/getloadavg.c +++ b/src/getloadavg.c @@ -1,6 +1,6 @@ /* Get the system load averages. - Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997, 2003 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, + 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with gnulib. Bugs can be reported to bug-gnulib@gnu.org. diff --git a/src/getpagesize.h b/src/getpagesize.h index 20f19279cd0..ed47f80b0e0 100644 --- a/src/getpagesize.h +++ b/src/getpagesize.h @@ -1,5 +1,6 @@ /* Emulate getpagesize on systems that lack it. - Copyright (C) 1986, 1992, 1995, 2001 Free Software Foundation, Inc. + Copyright (C) 1986, 1992, 1995, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/gmalloc.c b/src/gmalloc.c index 08de77df0e0..55aedb7801b 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -5,7 +5,8 @@ /* The malloc headers and source files from the C library follow here. */ /* Declarations for `malloc' and friends. - Copyright 1990, 91, 92, 93, 95, 96, 99 Free Software Foundation, Inc. + Copyright (C) 1990, 1991, 1992, 1993, 1995, 1996, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Written May 1989 by Mike Haertel. This library is free software; you can redistribute it and/or diff --git a/src/gtkutil.c b/src/gtkutil.c index 1cb1004f576..3b590e0faed 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -1,6 +1,5 @@ /* Functions for creating and updating GTK widgets. - Copyright (C) 2003 - Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -240,6 +239,64 @@ xg_create_default_cursor (dpy) return gdk_cursor_new_for_display (gdpy, GDK_LEFT_PTR); } +/* Apply GMASK to GPIX and return a GdkPixbuf with an alpha channel. */ + +static GdkPixbuf * +xg_get_pixbuf_from_pix_and_mask (gpix, gmask, cmap) + GdkPixmap *gpix; + GdkPixmap *gmask; + GdkColormap *cmap; +{ + int x, y, width, height, rowstride, mask_rowstride; + GdkPixbuf *icon_buf, *tmp_buf; + guchar *pixels; + guchar *mask_pixels; + + gdk_drawable_get_size (gpix, &width, &height); + tmp_buf = gdk_pixbuf_get_from_drawable (NULL, gpix, cmap, + 0, 0, 0, 0, width, height); + icon_buf = gdk_pixbuf_add_alpha (tmp_buf, FALSE, 0, 0, 0); + g_object_unref (G_OBJECT (tmp_buf)); + + if (gmask) + { + GdkPixbuf *mask_buf = gdk_pixbuf_get_from_drawable (NULL, + gmask, + NULL, + 0, 0, 0, 0, + width, height); + guchar *pixels = gdk_pixbuf_get_pixels (icon_buf); + guchar *mask_pixels = gdk_pixbuf_get_pixels (mask_buf); + int rowstride = gdk_pixbuf_get_rowstride (icon_buf); + int mask_rowstride = gdk_pixbuf_get_rowstride (mask_buf); + int y; + + for (y = 0; y < height; ++y) + { + guchar *iconptr, *maskptr; + int x; + + iconptr = pixels + y * rowstride; + maskptr = mask_pixels + y * mask_rowstride; + + for (x = 0; x < width; ++x) + { + /* In a bitmap, RGB is either 255/255/255 or 0/0/0. Checking + just R is sufficient. */ + if (maskptr[0] == 0) + iconptr[3] = 0; /* 0, 1, 2 is R, G, B. 3 is alpha. */ + + iconptr += rowstride/width; + maskptr += mask_rowstride/width; + } + } + + g_object_unref (G_OBJECT (mask_buf)); + } + + return icon_buf; +} + /* For the image defined in IMG, make and return a GtkImage. For displays with 8 planes or less we must make a GdkPixbuf and apply the mask manually. Otherwise the highlightning and dimming the tool bar code in GTK does @@ -312,60 +369,15 @@ xg_get_image_for_pixmap (f, img, widget, old_widget) } else { + /* This is a workaround to make icons look good on pseudo color displays. Apparently GTK expects the images to have an alpha channel. If they don't, insensitive and activated icons will look bad. This workaround does not work on monochrome displays, and is not needed on true color/static color displays (i.e. 16 bits and higher). */ - int x, y, width, height, rowstride, mask_rowstride; - GdkPixbuf *icon_buf, *tmp_buf; - guchar *pixels; - guchar *mask_pixels; - - gdk_drawable_get_size (gpix, &width, &height); - tmp_buf = gdk_pixbuf_get_from_drawable (NULL, - gpix, - gtk_widget_get_colormap (widget), - 0, 0, 0, 0, width, height); - icon_buf = gdk_pixbuf_add_alpha (tmp_buf, FALSE, 0, 0, 0); - g_object_unref (G_OBJECT (tmp_buf)); - - if (gmask) - { - GdkPixbuf *mask_buf = gdk_pixbuf_get_from_drawable (NULL, - gmask, - NULL, - 0, 0, 0, 0, - width, height); - guchar *pixels = gdk_pixbuf_get_pixels (icon_buf); - guchar *mask_pixels = gdk_pixbuf_get_pixels (mask_buf); - int rowstride = gdk_pixbuf_get_rowstride (icon_buf); - int mask_rowstride = gdk_pixbuf_get_rowstride (mask_buf); - int y; - - for (y = 0; y < height; ++y) - { - guchar *iconptr, *maskptr; - int x; - - iconptr = pixels + y * rowstride; - maskptr = mask_pixels + y * mask_rowstride; - - for (x = 0; x < width; ++x) - { - /* In a bitmap, RGB is either 255/255/255 or 0/0/0. Checking - just R is sufficient. */ - if (maskptr[0] == 0) - iconptr[3] = 0; /* 0, 1, 2 is R, G, B. 3 is alpha. */ - - iconptr += rowstride/width; - maskptr += mask_rowstride/width; - } - } - - g_object_unref (G_OBJECT (mask_buf)); - } + GdkColormap *cmap = gtk_widget_get_colormap (widget); + GdkPixbuf *icon_buf = xg_get_pixbuf_from_pix_and_mask (gpix, gmask, cmap); if (! old_widget) old_widget = GTK_IMAGE (gtk_image_new_from_pixbuf (icon_buf)); @@ -940,6 +952,24 @@ xg_set_background_color (f, bg) } +/* Set the frame icon to ICON_PIXMAP/MASK. This must be done with GTK + functions so GTK does not overwrite the icon. */ + +void +xg_set_frame_icon (f, icon_pixmap, icon_mask) + FRAME_PTR f; + Pixmap icon_pixmap; + Pixmap icon_mask; +{ + GdkDisplay *gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f)); + GdkPixmap *gpix = gdk_pixmap_foreign_new_for_display (gdpy, icon_pixmap); + GdkPixmap *gmask = gdk_pixmap_foreign_new_for_display (gdpy, icon_mask); + GdkPixbuf *gp = xg_get_pixbuf_from_pix_and_mask (gpix, gmask, NULL); + + gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), gp); +} + + /*********************************************************************** Dialog functions @@ -2607,7 +2637,7 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p, xg_update_menubar (menubar, f, &list, list, 0, val->contents, select_cb, highlight_cb, cl_data); - if (deep_p); + if (deep_p) { widget_value *cur; diff --git a/src/gtkutil.h b/src/gtkutil.h index 08ba9ee1314..aea4ee9e7cf 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -1,6 +1,5 @@ /* Definitions and headers for GTK widgets. - Copyright (C) 2003 - Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -200,6 +199,10 @@ extern void x_wm_set_size_hint P_ ((FRAME_PTR f, int user_position)); extern void xg_set_background_color P_ ((FRAME_PTR f, unsigned long bg)); +extern void xg_set_frame_icon P_ ((FRAME_PTR f, + Pixmap icon_pixmap, + Pixmap icon_mask)); + /* Mark all callback data that are Lisp_object:s during GC. */ extern void xg_mark_data P_ ((void)); diff --git a/src/image.c b/src/image.c index 928ec0437aa..6ec0734e785 100644 --- a/src/image.c +++ b/src/image.c @@ -1,6 +1,6 @@ /* Functions for image support on window system. - Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04 - Free Software Foundation. + Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -54,8 +54,8 @@ typedef struct x_bitmap_record Bitmap_Record; #define RGB_PIXEL_COLOR unsigned long -#define PIX_MASK_RETAIN(f) 0 -#define PIX_MASK_DRAW(f) 1 +#define PIX_MASK_RETAIN 0 +#define PIX_MASK_DRAW 1 #endif /* HAVE_X_WINDOWS */ @@ -71,8 +71,8 @@ typedef struct w32_bitmap_record Bitmap_Record; #define RGB_PIXEL_COLOR COLORREF -#define PIX_MASK_RETAIN(f) 0 -#define PIX_MASK_DRAW(f) 1 +#define PIX_MASK_RETAIN 0 +#define PIX_MASK_DRAW 1 #define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual #define x_defined_color w32_defined_color @@ -112,6 +112,11 @@ typedef struct mac_bitmap_record Bitmap_Record; #define RGB_PIXEL_COLOR unsigned long +/* A black pixel in a mask bitmap/pixmap means ``draw a source + pixel''. A white pixel means ``retain the current pixel''. */ +#define PIX_MASK_DRAW RGB_TO_ULONG(0,0,0) +#define PIX_MASK_RETAIN RGB_TO_ULONG(255,255,255) + #define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual #define x_defined_color mac_defined_color #define DefaultDepthOfScreen(screen) (one_mac_display_info.n_planes) @@ -181,19 +186,43 @@ XPutPixel (ximage, x, y, pixel) int x, y; unsigned long pixel; { - CGrafPtr old_port; - GDHandle old_gdh; - RGBColor color; + PixMapHandle pixmap = GetGWorldPixMap (ximage); + short depth = GetPixDepth (pixmap); - GetGWorld (&old_port, &old_gdh); - SetGWorld (ximage, NULL); + if (depth == 32) + { + char *base_addr = GetPixBaseAddr (pixmap); + short row_bytes = GetPixRowBytes (pixmap); - color.red = RED16_FROM_ULONG (pixel); - color.green = GREEN16_FROM_ULONG (pixel); - color.blue = BLUE16_FROM_ULONG (pixel); - SetCPixel (x, y, &color); + ((unsigned long *) (base_addr + y * row_bytes))[x] = pixel; + } + else if (depth == 1) + { + char *base_addr = GetPixBaseAddr (pixmap); + short row_bytes = GetPixRowBytes (pixmap); - SetGWorld (old_port, old_gdh); + if (pixel == PIX_MASK_DRAW) + base_addr[y * row_bytes + x / 8] |= (1 << 7) >> (x & 7); + else + base_addr[y * row_bytes + x / 8] &= ~((1 << 7) >> (x & 7)); + } + else + { + CGrafPtr old_port; + GDHandle old_gdh; + RGBColor color; + + GetGWorld (&old_port, &old_gdh); + SetGWorld (ximage, NULL); + + color.red = RED16_FROM_ULONG (pixel); + color.green = GREEN16_FROM_ULONG (pixel); + color.blue = BLUE16_FROM_ULONG (pixel); + + SetCPixel (x, y, &color); + + SetGWorld (old_port, old_gdh); + } } static unsigned long @@ -201,17 +230,40 @@ XGetPixel (ximage, x, y) XImagePtr ximage; int x, y; { - CGrafPtr old_port; - GDHandle old_gdh; - RGBColor color; + PixMapHandle pixmap = GetGWorldPixMap (ximage); + short depth = GetPixDepth (pixmap); - GetGWorld (&old_port, &old_gdh); - SetGWorld (ximage, NULL); + if (depth == 32) + { + char *base_addr = GetPixBaseAddr (pixmap); + short row_bytes = GetPixRowBytes (pixmap); - GetCPixel (x, y, &color); + return ((unsigned long *) (base_addr + y * row_bytes))[x]; + } + else if (depth == 1) + { + char *base_addr = GetPixBaseAddr (pixmap); + short row_bytes = GetPixRowBytes (pixmap); - SetGWorld (old_port, old_gdh); - return RGB_TO_ULONG (color.red >> 8, color.green >> 8, color.blue >> 8); + if (base_addr[y * row_bytes + x / 8] & (1 << (~x & 7))) + return PIX_MASK_DRAW; + else + return PIX_MASK_RETAIN; + } + else + { + CGrafPtr old_port; + GDHandle old_gdh; + RGBColor color; + + GetGWorld (&old_port, &old_gdh); + SetGWorld (ximage, NULL); + + GetCPixel (x, y, &color); + + SetGWorld (old_port, old_gdh); + return RGB_TO_ULONG (color.red >> 8, color.green >> 8, color.blue >> 8); + } } static void @@ -1300,7 +1352,7 @@ image_background_transparent (img, f, mask) } img->background_transparent - = (four_corners_best (mask, img->width, img->height) == PIX_MASK_RETAIN (f)); + = (four_corners_best (mask, img->width, img->height) == PIX_MASK_RETAIN); if (free_mask) Destroy_Image (mask, prev); @@ -2003,7 +2055,6 @@ x_create_x_image_and_pixmap (f, width, height, depth, ximg, pixmap) *pixmap = XCreatePixmap (display, window, width, height, depth); if (*pixmap == NO_PIXMAP) { - x_destroy_x_image (*ximg); *ximg = NULL; image_error ("Unable to create X pixmap", Qnil, Qnil); return 0; @@ -2166,10 +2217,8 @@ find_image_fsspec (specified_file, file, fss) Lisp_Object specified_file, *file; FSSpec *fss; { -#if TARGET_API_MAC_CARBON +#if MAC_OSX FSRef fsr; -#else - Str255 mac_pathname; #endif OSErr err; @@ -2178,15 +2227,12 @@ find_image_fsspec (specified_file, file, fss) return fnfErr; /* file or directory not found; incomplete pathname */ /* Try to open the image file. */ -#if TARGET_API_MAC_CARBON +#if MAC_OSX err = FSPathMakeRef (SDATA (*file), &fsr, NULL); if (err == noErr) err = FSGetCatalogInfo (&fsr, kFSCatInfoNone, NULL, NULL, fss, NULL); #else - if (posix_to_mac_pathname (SDATA (*file), mac_pathname, MAXPATHLEN+1) == 0) - return fnfErr; - c2pstr (mac_pathname); - err = FSMakeFSSpec (0, 0, mac_pathname, fss); + err = posix_pathname_to_fsspec (SDATA (*file), fss); #endif return err; } @@ -3850,24 +3896,24 @@ xpm_load (f, img) Only XPM version 3 (without any extensions) is supported. */ static int xpm_scan P_ ((unsigned char **, unsigned char *, - unsigned char **, int *)); + unsigned char **, int *)); static Lisp_Object xpm_make_color_table_v P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object), Lisp_Object (**) (Lisp_Object, unsigned char *, int))); static void xpm_put_color_table_v P_ ((Lisp_Object, unsigned char *, - int, Lisp_Object)); + int, Lisp_Object)); static Lisp_Object xpm_get_color_table_v P_ ((Lisp_Object, - unsigned char *, int)); + unsigned char *, int)); static Lisp_Object xpm_make_color_table_h P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object), Lisp_Object (**) (Lisp_Object, unsigned char *, int))); static void xpm_put_color_table_h P_ ((Lisp_Object, unsigned char *, - int, Lisp_Object)); + int, Lisp_Object)); static Lisp_Object xpm_get_color_table_h P_ ((Lisp_Object, - unsigned char *, int)); + unsigned char *, int)); static int xpm_str_to_color_key P_ ((char *)); static int xpm_load_image P_ ((struct frame *, struct image *, - unsigned char *, unsigned char *)); + unsigned char *, unsigned char *)); /* Tokens returned from xpm_scan. */ @@ -3896,49 +3942,49 @@ xpm_scan (s, end, beg, len) { /* Skip white-space. */ while (*s < end && (c = *(*s)++, isspace (c))) - ; + ; /* gnus-pointer.xpm uses '-' in its identifier. - sb-dir-plus.xpm uses '+' in its identifier. */ + sb-dir-plus.xpm uses '+' in its identifier. */ if (isalpha (c) || c == '_' || c == '-' || c == '+') - { - *beg = *s - 1; - while (*s < end && - (c = **s, isalnum (c) || c == '_' || c == '-' || c == '+')) - ++*s; - *len = *s - *beg; - return XPM_TK_IDENT; - } + { + *beg = *s - 1; + while (*s < end && + (c = **s, isalnum (c) || c == '_' || c == '-' || c == '+')) + ++*s; + *len = *s - *beg; + return XPM_TK_IDENT; + } else if (c == '"') - { - *beg = *s; - while (*s < end && **s != '"') - ++*s; - *len = *s - *beg; - if (*s < end) - ++*s; - return XPM_TK_STRING; - } + { + *beg = *s; + while (*s < end && **s != '"') + ++*s; + *len = *s - *beg; + if (*s < end) + ++*s; + return XPM_TK_STRING; + } else if (c == '/') - { - if (*s < end && **s == '*') - { - /* C-style comment. */ - ++*s; - do - { - while (*s < end && *(*s)++ != '*') - ; - } - while (*s < end && **s != '/'); - if (*s < end) - ++*s; - } - else - return c; - } + { + if (*s < end && **s == '*') + { + /* C-style comment. */ + ++*s; + do + { + while (*s < end && *(*s)++ != '*') + ; + } + while (*s < end && **s != '/'); + if (*s < end) + ++*s; + } + else + return c; + } else - return c; + return c; } return XPM_TK_EOF; @@ -3988,9 +4034,9 @@ xpm_make_color_table_h (put_func, get_func) *put_func = xpm_put_color_table_h; *get_func = xpm_get_color_table_h; return make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), - make_float (DEFAULT_REHASH_SIZE), - make_float (DEFAULT_REHASH_THRESHOLD), - Qnil, Qnil, Qnil); + make_float (DEFAULT_REHASH_SIZE), + make_float (DEFAULT_REHASH_THRESHOLD), + Qnil, Qnil, Qnil); } static void @@ -4016,7 +4062,7 @@ xpm_get_color_table_h (color_table, chars_start, chars_len) { struct Lisp_Hash_Table *table = XHASH_TABLE (color_table); int i = hash_lookup (table, make_unibyte_string (chars_start, chars_len), - NULL); + NULL); return i >= 0 ? HASH_VALUE (table, i) : Qnil; } @@ -4065,17 +4111,17 @@ xpm_load_image (f, img, contents, end) #define match() \ LA1 = xpm_scan (&s, end, &beg, &len) -#define expect(TOKEN) \ - if (LA1 != (TOKEN)) \ - goto failure; \ - else \ +#define expect(TOKEN) \ + if (LA1 != (TOKEN)) \ + goto failure; \ + else \ match () -#define expect_ident(IDENT) \ +#define expect_ident(IDENT) \ if (LA1 == XPM_TK_IDENT \ - && strlen ((IDENT)) == len && memcmp ((IDENT), beg, len) == 0) \ - match (); \ - else \ + && strlen ((IDENT)) == len && memcmp ((IDENT), beg, len) == 0) \ + match (); \ + else \ goto failure if (!(end - s >= 9 && memcmp (s, "/* XPM */", 9) == 0)) @@ -4096,7 +4142,7 @@ xpm_load_image (f, img, contents, end) memcpy (buffer, beg, len); buffer[len] = '\0'; if (sscanf (buffer, "%d %d %d %d", &width, &height, - &num_colors, &chars_per_pixel) != 4 + &num_colors, &chars_per_pixel) != 4 || width <= 0 || height <= 0 || num_colors <= 0 || chars_per_pixel <= 0) goto failure; @@ -4107,17 +4153,17 @@ xpm_load_image (f, img, contents, end) best_key = XPM_COLOR_KEY_C; else if (!NILP (Fx_display_grayscale_p (frame))) best_key = (XFASTINT (Fx_display_planes (frame)) > 2 - ? XPM_COLOR_KEY_G : XPM_COLOR_KEY_G4); + ? XPM_COLOR_KEY_G : XPM_COLOR_KEY_G4); else best_key = XPM_COLOR_KEY_M; color_symbols = image_spec_value (img->spec, QCcolor_symbols, NULL); if (chars_per_pixel == 1) color_table = xpm_make_color_table_v (&put_color_table, - &get_color_table); + &get_color_table); else color_table = xpm_make_color_table_h (&put_color_table, - &get_color_table); + &get_color_table); while (num_colors-- > 0) { @@ -4128,71 +4174,71 @@ xpm_load_image (f, img, contents, end) expect (XPM_TK_STRING); if (len <= chars_per_pixel || len >= BUFSIZ + chars_per_pixel) - goto failure; + goto failure; memcpy (buffer, beg + chars_per_pixel, len - chars_per_pixel); buffer[len - chars_per_pixel] = '\0'; str = strtok (buffer, " \t"); if (str == NULL) - goto failure; + goto failure; key = xpm_str_to_color_key (str); if (key < 0) - goto failure; + goto failure; do - { - color = strtok (NULL, " \t"); - if (color == NULL) - goto failure; + { + color = strtok (NULL, " \t"); + if (color == NULL) + goto failure; - while (str = strtok (NULL, " \t")) - { - next_key = xpm_str_to_color_key (str); - if (next_key >= 0) - break; - color[strlen (color)] = ' '; - } + while (str = strtok (NULL, " \t")) + { + next_key = xpm_str_to_color_key (str); + if (next_key >= 0) + break; + color[strlen (color)] = ' '; + } - if (key == XPM_COLOR_KEY_S) - { - if (NILP (symbol_color)) - symbol_color = build_string (color); - } - else if (max_key < key && key <= best_key) - { - max_key = key; - max_color = color; - } - key = next_key; - } + if (key == XPM_COLOR_KEY_S) + { + if (NILP (symbol_color)) + symbol_color = build_string (color); + } + else if (max_key < key && key <= best_key) + { + max_key = key; + max_color = color; + } + key = next_key; + } while (str); color_val = Qnil; if (!NILP (color_symbols) && !NILP (symbol_color)) - { - Lisp_Object specified_color = Fassoc (symbol_color, color_symbols); - - if (CONSP (specified_color) && STRINGP (XCDR (specified_color))) - if (xstricmp (SDATA (XCDR (specified_color)), "None") == 0) - color_val = Qt; - else if (x_defined_color (f, SDATA (XCDR (specified_color)), - &cdef, 0)) - color_val = make_number (cdef.pixel); - } + { + Lisp_Object specified_color = Fassoc (symbol_color, color_symbols); + + if (CONSP (specified_color) && STRINGP (XCDR (specified_color))) + if (xstricmp (SDATA (XCDR (specified_color)), "None") == 0) + color_val = Qt; + else if (x_defined_color (f, SDATA (XCDR (specified_color)), + &cdef, 0)) + color_val = make_number (cdef.pixel); + } if (NILP (color_val) && max_key > 0) - if (xstricmp (max_color, "None") == 0) - color_val = Qt; - else if (x_defined_color (f, max_color, &cdef, 0)) - color_val = make_number (cdef.pixel); + if (xstricmp (max_color, "None") == 0) + color_val = Qt; + else if (x_defined_color (f, max_color, &cdef, 0)) + color_val = make_number (cdef.pixel); if (!NILP (color_val)) - (*put_color_table) (color_table, beg, chars_per_pixel, color_val); + (*put_color_table) (color_table, beg, chars_per_pixel, color_val); expect (','); } if (!x_create_x_image_and_pixmap (f, width, height, 0, - &ximg, &img->pixmap) + &ximg, &img->pixmap) || !x_create_x_image_and_pixmap (f, width, height, 1, - &mask_img, &img->mask)) + &mask_img, &img->mask)) { image_error ("Out of memory (%s)", img->spec, Qnil); goto error; @@ -4203,21 +4249,21 @@ xpm_load_image (f, img, contents, end) expect (XPM_TK_STRING); str = beg; if (len < width * chars_per_pixel) - goto failure; + goto failure; for (x = 0; x < width; x++, str += chars_per_pixel) - { - Lisp_Object color_val = - (*get_color_table) (color_table, str, chars_per_pixel); - - XPutPixel (ximg, x, y, - (INTEGERP (color_val) ? XINT (color_val) - : FRAME_FOREGROUND_PIXEL (f))); - XPutPixel (mask_img, x, y, - (!EQ (color_val, Qt) ? PIX_MASK_DRAW (f) - : (have_mask = 1, PIX_MASK_RETAIN (f)))); - } + { + Lisp_Object color_val = + (*get_color_table) (color_table, str, chars_per_pixel); + + XPutPixel (ximg, x, y, + (INTEGERP (color_val) ? XINT (color_val) + : FRAME_FOREGROUND_PIXEL (f))); + XPutPixel (mask_img, x, y, + (!EQ (color_val, Qt) ? PIX_MASK_DRAW + : (have_mask = 1, PIX_MASK_RETAIN))); + } if (y + 1 < height) - expect (','); + expect (','); } img->width = width; @@ -4227,6 +4273,10 @@ xpm_load_image (f, img, contents, end) x_destroy_x_image (ximg); if (have_mask) { + /* Fill in the background_transparent field while we have the + mask handy. */ + image_background_transparent (img, f, mask_img); + x_put_x_image (f, mask_img, img->mask, width, height); x_destroy_x_image (mask_img); } @@ -4272,19 +4322,19 @@ xpm_load (f, img) file = x_find_image_file (file_name); GCPRO1 (file); if (!STRINGP (file)) - { - image_error ("Cannot find image file `%s'", file_name, Qnil); - UNGCPRO; - return 0; - } + { + image_error ("Cannot find image file `%s'", file_name, Qnil); + UNGCPRO; + return 0; + } contents = slurp_file (SDATA (file), &size); if (contents == NULL) - { - image_error ("Error loading XPM image `%s'", img->spec, Qnil); - UNGCPRO; - return 0; - } + { + image_error ("Error loading XPM image `%s'", img->spec, Qnil); + UNGCPRO; + return 0; + } success_p = xpm_load_image (f, img, contents, contents + size); xfree (contents); @@ -4296,7 +4346,7 @@ xpm_load (f, img) data = image_spec_value (img->spec, QCdata, NULL); success_p = xpm_load_image (f, img, SDATA (data), - SDATA (data) + SBYTES (data)); + SDATA (data) + SBYTES (data)); } return success_p; @@ -4973,7 +5023,7 @@ x_disable_image (f, img) #ifdef MAC_OS #define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, NULL, 0, NULL) -#define MaskForeground(f) PIX_MASK_DRAW (f) +#define MaskForeground(f) PIX_MASK_DRAW #else #define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, pixmap, 0, NULL) #define MaskForeground(f) WHITE_PIX_DEFAULT (f) @@ -5121,7 +5171,7 @@ x_build_heuristic_mask (f, img, how) for (y = 0; y < img->height; ++y) for (x = 0; x < img->width; ++x) XPutPixel (mask_img, x, y, (XGetPixel (ximg, x, y) != bg - ? PIX_MASK_DRAW (f) : PIX_MASK_RETAIN (f))); + ? PIX_MASK_DRAW : PIX_MASK_RETAIN)); /* Fill in the background_transparent field while we have the mask handy. */ image_background_transparent (img, f, mask_img); @@ -6123,7 +6173,7 @@ png_load (f, img) if (channels == 4) { if (mask_img) - XPutPixel (mask_img, x, y, *p > 0 ? PIX_MASK_DRAW (f) : PIX_MASK_RETAIN (f)); + XPutPixel (mask_img, x, y, *p > 0 ? PIX_MASK_DRAW : PIX_MASK_RETAIN); ++p; } } @@ -8025,6 +8075,11 @@ syms_of_image () { extern Lisp_Object Qrisky_local_variable; /* Syms_of_xdisp has already run. */ + /* Initialize this only once, since that's what we do with Vimage_types + and they are supposed to be in sync. Initializing here gives correct + operation on GNU/Linux of calling dump-emacs after loading some images. */ + image_types = NULL; + /* Must be defined now becase we're going to update it below, while defining the supported image types. */ DEFVAR_LISP ("image-types", &Vimage_types, @@ -8050,6 +8105,17 @@ listed; they're always supported. */); Vimage_type_cache = Qnil; staticpro (&Vimage_type_cache); + Qpbm = intern ("pbm"); + staticpro (&Qpbm); + ADD_IMAGE_TYPE(Qpbm); + + Qxbm = intern ("xbm"); + staticpro (&Qxbm); + ADD_IMAGE_TYPE(Qxbm); + + define_image_type (&xbm_type, 1); + define_image_type (&pbm_type, 1); + QCascent = intern (":ascent"); staticpro (&QCascent); QCmargin = intern (":margin"); @@ -8094,14 +8160,6 @@ listed; they're always supported. */); staticpro (&QCpt_height); #endif /* HAVE_GHOSTSCRIPT */ - Qpbm = intern ("pbm"); - staticpro (&Qpbm); - ADD_IMAGE_TYPE(Qpbm); - - Qxbm = intern ("xbm"); - staticpro (&Qxbm); - ADD_IMAGE_TYPE(Qxbm); - #if defined (HAVE_XPM) || defined (MAC_OS) Qxpm = intern ("xpm"); staticpro (&Qxpm); @@ -8163,11 +8221,6 @@ meaning don't clear the cache. */); void init_image () { - image_types = NULL; - - define_image_type (&xbm_type, 1); - define_image_type (&pbm_type, 1); - #ifdef MAC_OS /* Animated gifs use QuickTime Movie Toolbox. So initialize it here. */ EnterMovies (); diff --git a/src/indent.c b/src/indent.c index 2dc113a9086..68544e8059d 100644 --- a/src/indent.c +++ b/src/indent.c @@ -1,6 +1,6 @@ /* Indentation functions. Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 2000, 2001, - 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2076,6 +2076,7 @@ whether or not it is currently displayed in some window. */) { int it_start; int oselective; + int start_on_image_p; SET_TEXT_POS (pt, PT, PT_BYTE); start_display (&it, w, pt); @@ -2087,6 +2088,7 @@ whether or not it is currently displayed in some window. */) while the end position is really at some X > 0, the same X that PT had. */ it_start = IT_CHARPOS (it); + start_on_image_p = (it.method == GET_FROM_IMAGE); reseat_at_previous_visible_line_start (&it); it.current_x = it.hpos = 0; /* Temporarily disable selective display so we don't move too far */ @@ -2096,8 +2098,10 @@ whether or not it is currently displayed in some window. */) it.selective = oselective; /* Move back if we got too far. This may happen if - truncate-lines is on and PT is beyond right margin. */ - if (IT_CHARPOS (it) > it_start && XINT (lines) > 0) + truncate-lines is on and PT is beyond right margin. + It may also happen if it_start is on an image -- + in that case, don't go back. */ + if (IT_CHARPOS (it) > it_start && XINT (lines) > 0 && !start_on_image_p) move_it_by_lines (&it, -1, 0); it.vpos = 0; diff --git a/src/indent.h b/src/indent.h index 39db7b8cf5f..6026be827e8 100644 --- a/src/indent.h +++ b/src/indent.h @@ -1,5 +1,6 @@ /* Definitions for interface to indent.c - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/insdel.c b/src/insdel.c index 4760342c56b..fd416037241 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1,6 +1,6 @@ /* Buffer insertion/deletion and gap motion for GNU Emacs. - Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003, 2005 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2393,6 +2393,7 @@ void syms_of_insdel () { staticpro (&combine_after_change_list); + staticpro (&combine_after_change_buffer); combine_after_change_list = Qnil; combine_after_change_buffer = Qnil; diff --git a/src/intervals.c b/src/intervals.c index cb60061fdce..07845f95666 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -1,5 +1,6 @@ /* Code for doing intervals. - Copyright (C) 1993, 1994, 1995, 1997, 1998, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1997, 1998, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -790,14 +791,14 @@ update_interval (i, pos) /* Move right. */ if (pos < INTERVAL_LAST_POS (i) + TOTAL_LENGTH (i->right)) { - i->right->position = INTERVAL_LAST_POS (i) + - LEFT_TOTAL_LENGTH (i->right); + i->right->position = INTERVAL_LAST_POS (i) + + LEFT_TOTAL_LENGTH (i->right); i = i->right; /* Move to the right child */ } else if (NULL_PARENT (i)) - error ("Point after end of properties"); + error ("Point %d after end of properties", pos); else - i = INTERVAL_PARENT (i); + i = INTERVAL_PARENT (i); continue; } else diff --git a/src/intervals.h b/src/intervals.h index 374f8984167..418520b5c25 100644 --- a/src/intervals.h +++ b/src/intervals.h @@ -1,5 +1,6 @@ /* Definitions and global variables for intervals. - Copyright (C) 1993, 1994, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/keyboard.c b/src/keyboard.c index d2d5919fc85..74f8d7d51e0 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1,6 +1,7 @@ /* Keyboard and mouse input; editor command loop. - Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, + 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -4010,7 +4011,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu) kbd_fetch_ptr = event + 1; } #endif -#if defined (HAVE_X11) || defined (HAVE_NTGUI) +#if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (MAC_OS) else if (event->kind == ICONIFY_EVENT) { /* Make an event (iconify-frame (FRAME)). */ @@ -7001,8 +7002,6 @@ menu_bar_items (old) int i; - struct gcpro gcpro1; - /* In order to build the menus, we need to call the keymap accessors. They all call QUIT. But this function is called during redisplay, during which a quit is fatal. So inhibit @@ -7018,8 +7017,6 @@ menu_bar_items (old) menu_bar_items_vector = Fmake_vector (make_number (24), Qnil); menu_bar_items_index = 0; - GCPRO1 (menu_bar_items_vector); - /* Build our list of keymaps. If we recognize a function key and replace its escape sequence in keybuf with its symbol, or if the sequence starts with a mouse @@ -7123,7 +7120,6 @@ menu_bar_items (old) menu_bar_items_index = i; Vinhibit_quit = oquit; - UNGCPRO; return menu_bar_items_vector; } @@ -11167,6 +11163,9 @@ syms_of_keyboard () menu_bar_one_keymap_changed_items = Qnil; staticpro (&menu_bar_one_keymap_changed_items); + menu_bar_items_vector = Qnil; + staticpro (&menu_bar_items_vector); + defsubr (&Sevent_convert_list); defsubr (&Sread_key_sequence); defsubr (&Sread_key_sequence_vector); @@ -11443,6 +11442,7 @@ might happen repeatedly and make Emacs nonfunctional. */); doc: /* Normal hook run when clearing the echo area. */); #endif Qecho_area_clear_hook = intern ("echo-area-clear-hook"); + staticpro (&Qecho_area_clear_hook); SET_SYMBOL_VALUE (Qecho_area_clear_hook, Qnil); DEFVAR_LISP ("lucid-menu-bar-dirty-flag", &Vlucid_menu_bar_dirty_flag, diff --git a/src/keyboard.h b/src/keyboard.h index 10b64dfe488..0063922787f 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -1,5 +1,6 @@ /* Declarations useful when processing input. - Copyright (C) 1985, 1986, 1987, 1993 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/keymap.c b/src/keymap.c index 17c55cfd2d6..9d67f4400c0 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1,6 +1,7 @@ /* Manipulation of keymaps - Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 1999, 2000, - 2001, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1654,7 +1655,7 @@ bindings; see the description of `lookup-key' for more details about this. */) DEFUN ("minor-mode-key-binding", Fminor_mode_key_binding, Sminor_mode_key_binding, 1, 2, 0, doc: /* Find the visible minor mode bindings of KEY. -Return an alist of pairs (MODENAME . BINDING), where MODENAME is the +Return an alist of pairs (MODENAME . BINDING), where MODENAME is the symbol which names the minor mode binding KEY, and BINDING is KEY's definition in that mode. In particular, if KEY has no minor-mode bindings, return nil. If the first binding is a diff --git a/src/keymap.h b/src/keymap.h index 4fcbffbed5a..bcf14abcd89 100644 --- a/src/keymap.h +++ b/src/keymap.h @@ -1,5 +1,5 @@ /* Functions to manipulate keymaps. - Copyright (C) 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/lastfile.c b/src/lastfile.c index d03dc2c8346..a229d94fd6a 100644 --- a/src/lastfile.c +++ b/src/lastfile.c @@ -1,5 +1,5 @@ /* Mark end of data space to dump as pure, for GNU Emacs. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/lisp.h b/src/lisp.h index 5c0e9b561ad..8f37c715c29 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -1,6 +1,6 @@ /* Fundamental definitions for GNU Emacs Lisp interpreter. Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1797,7 +1797,7 @@ extern int interrupt_input_pending; Lisp_Object flag = Vquit_flag; \ Vquit_flag = Qnil; \ if (EQ (Vthrow_on_input, flag)) \ - Fthrow (Vthrow_on_input, Qnil); \ + Fthrow (Vthrow_on_input, Qt); \ Fsignal (Qquit, Qnil); \ } \ else if (interrupt_input_pending) \ @@ -1813,7 +1813,7 @@ extern int interrupt_input_pending; Lisp_Object flag = Vquit_flag; \ Vquit_flag = Qnil; \ if (EQ (Vthrow_on_input, flag)) \ - Fthrow (Vthrow_on_input, Qnil); \ + Fthrow (Vthrow_on_input, Qt); \ Fsignal (Qquit, Qnil); \ } \ } while (0) @@ -1876,10 +1876,12 @@ extern Lisp_Object Vascii_canon_table, Vascii_eqv_table; extern int consing_since_gc; -/* Threshold for doing another gc. */ +/* Thresholds for doing another gc. */ extern EMACS_INT gc_cons_threshold; +extern EMACS_INT gc_relative_threshold; + /* Structure for recording stack slots that need marking. */ /* This is a chain of structures, each of which points at a Lisp_Object variable @@ -3024,12 +3026,9 @@ extern int wait_reading_process_output P_ ((int, int, int, int, Lisp_Object, struct Lisp_Process *, int)); -extern void deactivate_process P_ ((Lisp_Object)); extern void add_keyboard_wait_descriptor P_ ((int)); extern void delete_keyboard_wait_descriptor P_ ((int)); extern void close_process_descs P_ ((void)); -extern void status_notify P_ ((void)); -extern int read_process_output P_ ((Lisp_Object, int)); extern void init_process P_ ((void)); extern void syms_of_process P_ ((void)); extern void setup_process_coding_systems P_ ((Lisp_Object)); diff --git a/src/lread.c b/src/lread.c index f159e98d4e9..94fb5ddb155 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1,6 +1,7 @@ /* Lisp parsing and input streams. - Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998, - 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -86,6 +87,7 @@ Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist Lisp_Object Qascii_character, Qload, Qload_file_name; Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; Lisp_Object Qinhibit_file_name_operation; +Lisp_Object Qeval_buffer_list, Veval_buffer_list; extern Lisp_Object Qevent_symbol_element_mask; extern Lisp_Object Qfile_exists_p; @@ -674,7 +676,6 @@ Return t if file exists. */) { register FILE *stream; register int fd = -1; - register Lisp_Object lispstream; int count = SPECPDL_INDEX (); Lisp_Object temp; struct gcpro gcpro1; @@ -904,10 +905,7 @@ Return t if file exists. */) } GCPRO1 (file); - lispstream = Fcons (Qnil, Qnil); - XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16); - XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff); - record_unwind_protect (load_unwind, lispstream); + record_unwind_protect (load_unwind, make_save_value (stream, 0)); record_unwind_protect (load_descriptor_unwind, load_descriptor_list); specbind (Qload_file_name, found); specbind (Qinhibit_file_name_operation, Qnil); @@ -957,11 +955,12 @@ Return t if file exists. */) } static Lisp_Object -load_unwind (stream) /* used as unwind-protect function in load */ - Lisp_Object stream; +load_unwind (arg) /* used as unwind-protect function in load */ + Lisp_Object arg; { - fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16 - | XFASTINT (XCDR (stream)))); + FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer; + if (stream != NULL) + fclose (stream); if (--load_in_progress < 0) load_in_progress = 0; return Qnil; } @@ -1453,6 +1452,7 @@ This function preserves the position of point. */) if (NILP (filename)) filename = XBUFFER (buf)->filename; + specbind (Qeval_buffer_list, Fcons (buf, Veval_buffer_list)); specbind (Qstandard_output, tem); record_unwind_protect (save_excursion_restore, save_excursion_save ()); BUF_SET_PT (XBUFFER (buf), BUF_BEGV (XBUFFER (buf))); @@ -1488,6 +1488,7 @@ This function does not move point. */) else tem = printflag; specbind (Qstandard_output, tem); + specbind (Qeval_buffer_list, Fcons (cbuf, Veval_buffer_list)); /* readevalloop calls functions which check the type of start and end. */ readevalloop (cbuf, 0, XBUFFER (cbuf)->filename, Feval, @@ -3962,6 +3963,10 @@ to load. See also `load-dangerous-libraries'. */); Vbytecomp_version_regexp = build_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)"); + DEFVAR_LISP ("eval-buffer-list", &Veval_buffer_list, + doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */); + Veval_buffer_list = Qnil; + /* Vsource_directory was initialized in init_lread. */ load_descriptor_list = Qnil; @@ -4003,11 +4008,15 @@ to load. See also `load-dangerous-libraries'. */); Qload_file_name = intern ("load-file-name"); staticpro (&Qload_file_name); + Qeval_buffer_list = intern ("eval-buffer-list"); + staticpro (&Qeval_buffer_list); + staticpro (&dump_path); staticpro (&read_objects); read_objects = Qnil; staticpro (&seen_list); + seen_list = Qnil; Vloads_in_progress = Qnil; staticpro (&Vloads_in_progress); diff --git a/src/m/7300.h b/src/m/7300.h index fa95b3d9c4e..bb261c9188a 100644 --- a/src/m/7300.h +++ b/src/m/7300.h @@ -1,5 +1,5 @@ /* machine description file for AT&T UNIX PC model 7300 - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Modified for this machine by mtxinu!rtech!gonzo!daveb This file is part of GNU Emacs. diff --git a/src/m/acorn.h b/src/m/acorn.h index 66978329d75..399fb7c9249 100644 --- a/src/m/acorn.h +++ b/src/m/acorn.h @@ -1,5 +1,5 @@ /* Machine description file for Acorn RISCiX machines. - Copyright (C) 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/alliant-2800.h b/src/m/alliant-2800.h index cf0afd90bb5..b59322e3d0c 100644 --- a/src/m/alliant-2800.h +++ b/src/m/alliant-2800.h @@ -1,5 +1,5 @@ /* alliant-2800.h - Alliant FX/2800 machine running Concentrix 2800. - Copyright (C) 1990, 2002 Free Software Foundation, Inc. + Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/alliant.h b/src/m/alliant.h index a32e514271d..cbc5734ab31 100644 --- a/src/m/alliant.h +++ b/src/m/alliant.h @@ -1,5 +1,6 @@ /* alliant.h Alliant machine running system version 2 or 3. - Copyright (C) 1985, 1986, 1987, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Note that for version 1 of the Alliant system you should use alliant1.h instead of this file. Use alliant4.h for version 4. diff --git a/src/m/alpha.h b/src/m/alpha.h index aff6182270f..41fefaf20fd 100644 --- a/src/m/alpha.h +++ b/src/m/alpha.h @@ -1,5 +1,6 @@ /* machine description file For the alpha chip. - Copyright (C) 1994, 1997, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 1997, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/altos.h b/src/m/altos.h index e3cf0898773..743752d99ec 100644 --- a/src/m/altos.h +++ b/src/m/altos.h @@ -1,5 +1,6 @@ /* altos machine description file Altos 3068 Unix System V Release 2 - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/amdahl.h b/src/m/amdahl.h index 8b32a2e64d1..89d4b6cb6f7 100644 --- a/src/m/amdahl.h +++ b/src/m/amdahl.h @@ -1,5 +1,6 @@ /* amdahl machine description file - Copyright (C) 1987, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/amdx86-64.h b/src/m/amdx86-64.h index 61b18dcc319..2d7d86ce7c3 100644 --- a/src/m/amdx86-64.h +++ b/src/m/amdx86-64.h @@ -1,5 +1,5 @@ /* machine description file for AMD x86-64. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/apollo.h b/src/m/apollo.h index 8fa91c004c5..4aa62b0b209 100644 --- a/src/m/apollo.h +++ b/src/m/apollo.h @@ -1,5 +1,6 @@ /* machine description file for Apollo machine. - Copyright (C) 1985, 1986, 1994, 2002, Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/arm.h b/src/m/arm.h index 1ebcf3be4a4..358445e0649 100644 --- a/src/m/arm.h +++ b/src/m/arm.h @@ -1,5 +1,5 @@ /* Machine description file for ARM-based non-RISCiX machines. - Copyright (C) 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/att3b.h b/src/m/att3b.h index 949e6b1d01b..757b47d3f37 100644 --- a/src/m/att3b.h +++ b/src/m/att3b.h @@ -1,5 +1,5 @@ /* Machine-dependent configuration for GNU Emacs for AT&T 3b machines. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Modified by David Robinson (daver@csvax.caltech.edu) 6/6/86 diff --git a/src/m/aviion.h b/src/m/aviion.h index 13a262423b0..b9a2932ef07 100644 --- a/src/m/aviion.h +++ b/src/m/aviion.h @@ -1,5 +1,6 @@ /* machine description file for Data General AViiON. - Copyright (C) 1985, 1986, 1991, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1991, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/celerity.h b/src/m/celerity.h index 0b0bb020122..639d680afdb 100644 --- a/src/m/celerity.h +++ b/src/m/celerity.h @@ -1,5 +1,6 @@ /* machine description file for Celerity. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/clipper.h b/src/m/clipper.h index 5da09e02fb8..af9f67d8a37 100644 --- a/src/m/clipper.h +++ b/src/m/clipper.h @@ -1,5 +1,6 @@ /* machine description file for clipper - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h index cb344f98f7f..48727bedbe3 100644 --- a/src/m/cnvrgnt.h +++ b/src/m/cnvrgnt.h @@ -1,5 +1,5 @@ /* machine description file for convergent S series. - Copyright (C) 1989, 2002 Free Software Foundation, Inc. + Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/convex.h b/src/m/convex.h index 97b291743dc..b7fcc71b1c3 100644 --- a/src/m/convex.h +++ b/src/m/convex.h @@ -1,5 +1,6 @@ /* machine description file for Convex (all models). - Copyright (C) 1987, 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/cydra5.h b/src/m/cydra5.h index e2813dc2a4b..9806fc30a47 100644 --- a/src/m/cydra5.h +++ b/src/m/cydra5.h @@ -1,5 +1,6 @@ /* machine description file for Cydrome's CYDRA 5 mini super computer - Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/delta88k.h b/src/m/delta88k.h index ab0a48a4e31..517a0f1744b 100644 --- a/src/m/delta88k.h +++ b/src/m/delta88k.h @@ -1,5 +1,6 @@ /* Machine description file for Motorola System V/88 machines - Copyright (C) 1985, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/dpx2.h b/src/m/dpx2.h index 7a24c3940d3..8d1ceb3db06 100644 --- a/src/m/dpx2.h +++ b/src/m/dpx2.h @@ -1,5 +1,6 @@ /* machine description for Bull DPX/2 range - Copyright (C) 1985, 1986, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/dual.h b/src/m/dual.h index 253c12bec52..134a5e7720e 100644 --- a/src/m/dual.h +++ b/src/m/dual.h @@ -1,5 +1,6 @@ /* machine description file for Dual machines using unisoft port. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/elxsi.h b/src/m/elxsi.h index f8de3609690..f702dcf0de2 100644 --- a/src/m/elxsi.h +++ b/src/m/elxsi.h @@ -1,5 +1,6 @@ /* machine description file for Elxsi machine (running enix). - Copyright (C) 1986, 1992, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 1992, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Adapted by John Salmon This file is part of GNU Emacs. diff --git a/src/m/ews4800.h b/src/m/ews4800.h index dcb46bf83d8..b377bdeddaa 100644 --- a/src/m/ews4800.h +++ b/src/m/ews4800.h @@ -1,5 +1,6 @@ /* m- file for NEC EWS4800 RISC series. - Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/gould-np1.h b/src/m/gould-np1.h index 4a267865085..1c784f28f4e 100644 --- a/src/m/gould-np1.h +++ b/src/m/gould-np1.h @@ -1,5 +1,5 @@ /* machine description file for Gould NP1 with UTX/32 3.0 (first release for NP1) - Copyright (C) 1986 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/hp800.h b/src/m/hp800.h index 64243f4be31..2f661989a15 100644 --- a/src/m/hp800.h +++ b/src/m/hp800.h @@ -1,5 +1,5 @@ /* machine description file for hp9000 series 800 machines. - Copyright (C) 1987, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h index 8886aec204c..e0b3a5ce5c3 100644 --- a/src/m/hp9000s300.h +++ b/src/m/hp9000s300.h @@ -1,5 +1,5 @@ /* machine description file for hp9000 series 200 or 300 on either HPUX or BSD. - Copyright (C) 1985, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/i860.h b/src/m/i860.h index 66ca2b8fa66..0ecf9e62087 100644 --- a/src/m/i860.h +++ b/src/m/i860.h @@ -1,5 +1,6 @@ /* machine description file for i860. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ia64.h b/src/m/ia64.h index 33d843c773f..af790946afa 100644 --- a/src/m/ia64.h +++ b/src/m/ia64.h @@ -1,5 +1,5 @@ /* machine description file for the IA-64 architecture. - Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by David Mosberger <davidm@hpl.hp.com> This file is part of GNU Emacs. diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h index b958656c3e4..3d954ae9d19 100644 --- a/src/m/ibm370aix.h +++ b/src/m/ibm370aix.h @@ -1,5 +1,6 @@ /* m/ file for IBM 370 running AIX. - Copyright (C) 1993, 1994, 2001 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h index d2202d65472..539de924d17 100644 --- a/src/m/ibmps2-aix.h +++ b/src/m/ibmps2-aix.h @@ -1,5 +1,5 @@ /* machine description file for ibm ps/2 aix386. - Copyright (C) 1989, 2002 Free Software Foundation, Inc. + Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h index b76d03bc0b7..9559f1ae62a 100644 --- a/src/m/ibmrs6000.h +++ b/src/m/ibmrs6000.h @@ -1,5 +1,5 @@ /* R2 AIX machine/system dependent defines - Copyright (C) 1988, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ibmrt-aix.h b/src/m/ibmrt-aix.h index b9ea0e6208f..44bfd77c1d0 100644 --- a/src/m/ibmrt-aix.h +++ b/src/m/ibmrt-aix.h @@ -1,5 +1,6 @@ /* RTPC AIX machine/system dependent defines - Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ibmrt.h b/src/m/ibmrt.h index 1388a46b001..f6c23d9d919 100644 --- a/src/m/ibmrt.h +++ b/src/m/ibmrt.h @@ -1,5 +1,5 @@ /* RTPC machine dependent defines - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ibms390.h b/src/m/ibms390.h index af7fbb8dfbf..323ef33f633 100644 --- a/src/m/ibms390.h +++ b/src/m/ibms390.h @@ -1,5 +1,6 @@ /* machine description file template. - Copyright (C) 1985, 1986, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/intel386.h b/src/m/intel386.h index c63dae7af0b..238015fd345 100644 --- a/src/m/intel386.h +++ b/src/m/intel386.h @@ -1,5 +1,5 @@ /* Machine description file for intel 386. - Copyright (C) 1987, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/iris4d.h b/src/m/iris4d.h index a13a6f8c2ff..93fe2062674 100644 --- a/src/m/iris4d.h +++ b/src/m/iris4d.h @@ -1,5 +1,5 @@ /* machine description file for Iris-4D machines. Use with s/irix*.h. - Copyright (C) 1987, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/irist.h b/src/m/irist.h index 71726977b23..b40ffb5dff9 100644 --- a/src/m/irist.h +++ b/src/m/irist.h @@ -1,6 +1,7 @@ /* machine description file for Silicon Graphics Iris 2500 Turbos; also possibly for non-turbo Irises with system release 2.5. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h index 9b35f03ea70..416335d1bff 100644 --- a/src/m/isi-ov.h +++ b/src/m/isi-ov.h @@ -1,5 +1,6 @@ /* machine description file for ISI 68000's - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/m68k.h b/src/m/m68k.h index 9fdcf1511b8..7b2ffa81351 100644 --- a/src/m/m68k.h +++ b/src/m/m68k.h @@ -1,5 +1,6 @@ /* Machine description file for generic Motorola 68k. - Copyright (C) 1985, 1995, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/macppc.h b/src/m/macppc.h index 36022af3e52..9e4297df3b7 100644 --- a/src/m/macppc.h +++ b/src/m/macppc.h @@ -1,5 +1,6 @@ /* machine description file For the powerpc Macintosh. - Copyright (C) 1994, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/masscomp.h b/src/m/masscomp.h index 4582e29b6bd..01fddc751f1 100644 --- a/src/m/masscomp.h +++ b/src/m/masscomp.h @@ -1,5 +1,5 @@ /* machine description file for Masscomp 5000 series running RTU, ucb universe. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/mega68.h b/src/m/mega68.h index ba7ee6b48d4..ef1623ca460 100644 --- a/src/m/mega68.h +++ b/src/m/mega68.h @@ -1,5 +1,5 @@ /* machine description file for Megatest 68000's. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/mg1.h b/src/m/mg1.h index 47d34f43768..4e4b3525d6e 100644 --- a/src/m/mg1.h +++ b/src/m/mg1.h @@ -1,5 +1,5 @@ /* machine description file for Whitechapel Computer Works MG1 (ns16000 based). - Copyright (C) 1985, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. MG-1 version by L.M.McLoughlin This file is part of GNU Emacs. diff --git a/src/m/mips-siemens.h b/src/m/mips-siemens.h index f00790210c9..fc1a8a2e0d6 100644 --- a/src/m/mips-siemens.h +++ b/src/m/mips-siemens.h @@ -1,5 +1,6 @@ /* m- file for Mips machines. - Copyright (C) 1987,1992,1993,95,2002,03 Free Software Foundation, Inc. + Copyright (C) 1987, 1992, 1993, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file contains some changes for our SVR4 based SINIX-Mips 5.4. I hope this is helpful to port the emacs to our RM?00 series and diff --git a/src/m/mips.h b/src/m/mips.h index e868423642c..28a35e02677 100644 --- a/src/m/mips.h +++ b/src/m/mips.h @@ -1,5 +1,6 @@ /* m- file for Mips machines. - Copyright (C) 1987, 1992, 1999, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1987, 1992, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/news.h b/src/m/news.h index 1d2585c09a0..dec413c3f9e 100644 --- a/src/m/news.h +++ b/src/m/news.h @@ -1,5 +1,6 @@ /* machine description file for Sony's NEWS workstations, NEWS-OS 3.0. - Copyright (C) 1985, 1986, 1989, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1989, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/next.h b/src/m/next.h index 2f2952e10f4..dfb3cd11cbf 100644 --- a/src/m/next.h +++ b/src/m/next.h @@ -1,5 +1,5 @@ /* Configuration file for the NeXT machine. - Copyright (C) 1990, 2002 Free Software Foundation, Inc. + Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/nh3000.h b/src/m/nh3000.h index 7be5c5dc7db..42255473020 100644 --- a/src/m/nh3000.h +++ b/src/m/nh3000.h @@ -1,7 +1,7 @@ /* machine description for Harris Night Hawk Series 1200 and Series 3000 MC68030-based systems (FPP on these is custom). These systems are also known as "ecx" and "gcx". - Copyright (C) 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/nh4000.h b/src/m/nh4000.h index 3d8794b2802..04068f0c065 100644 --- a/src/m/nh4000.h +++ b/src/m/nh4000.h @@ -1,6 +1,6 @@ /* machine description for Harris NightHawk 88k based machines (includes nh4000 and nh5000 machines). - Copyright (C) 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ns16000.h b/src/m/ns16000.h index 07fff86502b..49f514ced06 100644 --- a/src/m/ns16000.h +++ b/src/m/ns16000.h @@ -1,5 +1,5 @@ /* machine description file for ns16000. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ns32000.h b/src/m/ns32000.h index 9a135fe2d9f..858630b74ab 100644 --- a/src/m/ns32000.h +++ b/src/m/ns32000.h @@ -1,5 +1,6 @@ /* machine description file for National Semiconductor 32000, running Genix. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/nu.h b/src/m/nu.h index 8ca03155314..1e5518e451f 100644 --- a/src/m/nu.h +++ b/src/m/nu.h @@ -1,5 +1,5 @@ /* machine description file for TI Nu machines using system V. - Copyright (C) 1986 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/orion.h b/src/m/orion.h index e4fa8529664..a73b357d50f 100644 --- a/src/m/orion.h +++ b/src/m/orion.h @@ -1,5 +1,5 @@ /* machine description file for HLH Orion. - Copyright (C) 1985, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/orion105.h b/src/m/orion105.h index d0adaba70ec..e75a8e67a84 100644 --- a/src/m/orion105.h +++ b/src/m/orion105.h @@ -1,5 +1,5 @@ /* machine description file for HLH Orion 1/05 (Clipper). - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk> This file is part of GNU Emacs. diff --git a/src/m/pfa50.h b/src/m/pfa50.h index be430d25fdc..50e79b623ca 100644 --- a/src/m/pfa50.h +++ b/src/m/pfa50.h @@ -1,5 +1,6 @@ /* Machine description file for PFU A-series. - Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/plexus.h b/src/m/plexus.h index a2f6cc545a0..10826a70bc2 100644 --- a/src/m/plexus.h +++ b/src/m/plexus.h @@ -1,5 +1,5 @@ /* machine description file for the Plexus running System V.2. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/powermac.h b/src/m/powermac.h index c41003ae61c..14b2e110734 100644 --- a/src/m/powermac.h +++ b/src/m/powermac.h @@ -1,5 +1,5 @@ /* Machine description file for Apple Power Macintosh - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/powerpcle.h b/src/m/powerpcle.h index 34096a37d18..1dfd2df25b4 100644 --- a/src/m/powerpcle.h +++ b/src/m/powerpcle.h @@ -1,5 +1,5 @@ /* machine description file for PowerPC. - Copyright (C) 1987, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/pyramid.h b/src/m/pyramid.h index 7e0db61ec59..12010087a58 100644 --- a/src/m/pyramid.h +++ b/src/m/pyramid.h @@ -1,5 +1,6 @@ /* machine description file for pyramid. - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sequent-ptx.h b/src/m/sequent-ptx.h index 57d255a861e..3c22639e3b2 100644 --- a/src/m/sequent-ptx.h +++ b/src/m/sequent-ptx.h @@ -1,5 +1,6 @@ /* machine description file for SEQUENT machines running DYNIX/ptx - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sequent.h b/src/m/sequent.h index 7c572f54f68..f082880b4fc 100644 --- a/src/m/sequent.h +++ b/src/m/sequent.h @@ -1,5 +1,6 @@ /* machine description file for SEQUENT BALANCE machines - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sparc.h b/src/m/sparc.h index 6926aced07b..20ec53c1344 100644 --- a/src/m/sparc.h +++ b/src/m/sparc.h @@ -1,5 +1,5 @@ /* machine description file for Sun 4 SPARC. - Copyright (C) 1987, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sps7.h b/src/m/sps7.h index 3bd0c94bccd..422d2470aaa 100644 --- a/src/m/sps7.h +++ b/src/m/sps7.h @@ -1,5 +1,6 @@ /* machine description file for Bull SPS-7. - Copyright (C) 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sr2k.h b/src/m/sr2k.h index 83dbf4941ff..875f428dc1f 100644 --- a/src/m/sr2k.h +++ b/src/m/sr2k.h @@ -1,5 +1,5 @@ /* machine description file for Hitachi SR2001/SR2201 machines. - Copyright (C) 1996, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/stride.h b/src/m/stride.h index f176a7642a7..ff900d49b38 100644 --- a/src/m/stride.h +++ b/src/m/stride.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Stride Micro System-V.2.2 - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sun1.h b/src/m/sun1.h index 7ab81218705..810bad7fd58 100644 --- a/src/m/sun1.h +++ b/src/m/sun1.h @@ -1,5 +1,6 @@ /* machine description file for Sun 68000's - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sun2.h b/src/m/sun2.h index 452fdfc7c01..9df032049e3 100644 --- a/src/m/sun2.h +++ b/src/m/sun2.h @@ -1,7 +1,8 @@ /* machine description file for Sun 68000's OPERATING SYSTEM version 2. Note that "sun2.h" refers to the operating system version, not the CPU model number. See the MACHINES file for details. - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/sun386.h b/src/m/sun386.h index 782e10925ef..5970f90b98b 100644 --- a/src/m/sun386.h +++ b/src/m/sun386.h @@ -2,7 +2,7 @@ "sun2.h", but since that file is heavily cpu-specific, it was easier not to include it. - Copyright (C) 1988 Free Software Foundation, Inc. + Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/symmetry.h b/src/m/symmetry.h index 262d6474757..4954f596442 100644 --- a/src/m/symmetry.h +++ b/src/m/symmetry.h @@ -1,5 +1,6 @@ /* machine description file for SEQUENT SYMMETRY machines - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tad68k.h b/src/m/tad68k.h index 4c904aaf569..b8b3859f407 100644 --- a/src/m/tad68k.h +++ b/src/m/tad68k.h @@ -1,5 +1,5 @@ /* Machine-dependent configuration for GNU Emacs for Tadpole 68k machines - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tahoe.h b/src/m/tahoe.h index 988624839b4..47db3f93deb 100644 --- a/src/m/tahoe.h +++ b/src/m/tahoe.h @@ -1,5 +1,5 @@ /* machine description file for tahoe. - Copyright (C) 1985, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/targon31.h b/src/m/targon31.h index 08ecb681bd9..5ac18648387 100644 --- a/src/m/targon31.h +++ b/src/m/targon31.h @@ -1,5 +1,6 @@ /* targon31 machine description file - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tek4300.h b/src/m/tek4300.h index 164df72210a..a84135291cb 100644 --- a/src/m/tek4300.h +++ b/src/m/tek4300.h @@ -1,5 +1,5 @@ /* machine description file for tek4300. - Copyright (C) 1988, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tekxd88.h b/src/m/tekxd88.h index 7af3dab6a07..4db981a8096 100644 --- a/src/m/tekxd88.h +++ b/src/m/tekxd88.h @@ -1,7 +1,7 @@ /* Configuration file for the Tektronix XD88 running UTekV 3.2e, contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 1/15/93. You probably need to use gnu make (version 3.63 or higher.) - Copyright (C) 1993, 2002 Free Software Foundation, Inc. + Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/template.h b/src/m/template.h index c088efff81a..c7ce2c2cb1f 100644 --- a/src/m/template.h +++ b/src/m/template.h @@ -1,5 +1,6 @@ /* machine description file template. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tower32.h b/src/m/tower32.h index c5f34d065ea..cd4ab96de11 100644 --- a/src/m/tower32.h +++ b/src/m/tower32.h @@ -1,5 +1,5 @@ /* machine description file for the NCR Tower 32 running System V.2. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h index 927dfca93d9..2c1e55c0023 100644 --- a/src/m/tower32v3.h +++ b/src/m/tower32v3.h @@ -1,5 +1,5 @@ /* machine description file for the NCR Tower 32 running System V.3. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/ustation.h b/src/m/ustation.h index e7068f3cd86..c62d37d6429 100644 --- a/src/m/ustation.h +++ b/src/m/ustation.h @@ -1,5 +1,6 @@ /* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30). - Copyright (C) 1986, 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/vax.h b/src/m/vax.h index 22fda95abc5..d414d6b57e7 100644 --- a/src/m/vax.h +++ b/src/m/vax.h @@ -1,5 +1,6 @@ /* machine description file for vax. - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/wicat.h b/src/m/wicat.h index bd8fcefe99c..78842f32a43 100644 --- a/src/m/wicat.h +++ b/src/m/wicat.h @@ -1,5 +1,5 @@ /* machine description file for WICAT machines. - Copyright (C) 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/windowsnt.h b/src/m/windowsnt.h index 39c7baa9de6..cf48ca8aa88 100644 --- a/src/m/windowsnt.h +++ b/src/m/windowsnt.h @@ -1,6 +1,7 @@ /* Machine description file for Windows NT. - Copyright (C) 1993, 1994, 2002 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/m/xps100.h b/src/m/xps100.h index c6e54710bd6..3a851aa9ebd 100644 --- a/src/m/xps100.h +++ b/src/m/xps100.h @@ -1,7 +1,8 @@ /* xps100.h for the Honeywell XPS100 running UNIX System V.2 Mark J. Hewitt (mjh@uk.co.kernel) - Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/mac.c b/src/mac.c index ef136ab6512..0d8c99ffb1e 100644 --- a/src/mac.c +++ b/src/mac.c @@ -1,5 +1,6 @@ /* Unix emulation routines for GNU Emacs on the Mac OS. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -34,10 +35,9 @@ Boston, MA 02110-1301, USA. */ #include "macterm.h" -#if TARGET_API_MAC_CARBON #include "charset.h" #include "coding.h" -#else /* not TARGET_API_MAC_CARBON */ +#if !TARGET_API_MAC_CARBON #include <Files.h> #include <MacTypes.h> #include <TextUtils.h> @@ -53,17 +53,16 @@ Boston, MA 02110-1301, USA. */ #include <Processes.h> #include <EPPC.h> #include <MacLocales.h> +#include <Endian.h> #endif /* not TARGET_API_MAC_CARBON */ #include <utime.h> #include <dirent.h> #include <sys/types.h> #include <sys/stat.h> -#include <string.h> #include <pwd.h> #include <grp.h> #include <sys/param.h> -#include <stdlib.h> #include <fcntl.h> #if __MWERKS__ #include <unistd.h> @@ -1021,7 +1020,7 @@ xrm_cfproperty_list_to_value (plist) CFTypeID type_id = CFGetTypeID (plist); if (type_id == CFStringGetTypeID ()) - return cfstring_to_lisp (plist); + return cfstring_to_lisp (plist); else if (type_id == CFNumberGetTypeID ()) { CFStringRef string; @@ -2490,6 +2489,22 @@ chmod (const char *path, mode_t mode) int +fchmod (int fd, mode_t mode) +{ + /* say it always succeed for now */ + return 0; +} + + +int +fchown (int fd, uid_t owner, gid_t group) +{ + /* say it always succeed for now */ + return 0; +} + + +int dup (int oldd) { #ifdef __MRC__ @@ -3388,12 +3403,278 @@ initialize_applescript () } -void terminate_applescript() +void +terminate_applescript() { OSADispose (as_scripting_component, as_script_context); CloseComponent (as_scripting_component); } +/* Convert a lisp string to the 4 byte character code. */ + +OSType +mac_get_code_from_arg(Lisp_Object arg, OSType defCode) +{ + OSType result; + if (NILP(arg)) + { + result = defCode; + } + else + { + /* check type string */ + CHECK_STRING(arg); + if (SBYTES (arg) != 4) + { + error ("Wrong argument: need string of length 4 for code"); + } + result = EndianU32_BtoN (*((UInt32 *) SDATA (arg))); + } + return result; +} + +/* Convert the 4 byte character code into a 4 byte string. */ + +Lisp_Object +mac_get_object_from_code(OSType defCode) +{ + UInt32 code = EndianU32_NtoB (defCode); + + return make_unibyte_string ((char *)&code, 4); +} + + +DEFUN ("mac-get-file-creator", Fmac_get_file_creator, Smac_get_file_creator, 1, 1, 0, + doc: /* Get the creator code of FILENAME as a four character string. */) + (filename) + Lisp_Object filename; +{ + OSErr status; +#ifdef MAC_OSX + FSRef fref; +#else + FSSpec fss; +#endif + OSType cCode; + Lisp_Object result = Qnil; + CHECK_STRING (filename); + + if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) { + return Qnil; + } + filename = Fexpand_file_name (filename, Qnil); + + BLOCK_INPUT; +#ifdef MAC_OSX + status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL); +#else + status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss); +#endif + + if (status == noErr) + { +#ifdef MAC_OSX + FSCatalogInfo catalogInfo; + + status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo, + &catalogInfo, NULL, NULL, NULL); +#else + FInfo finder_info; + + status = FSpGetFInfo (&fss, &finder_info); +#endif + if (status == noErr) + { +#ifdef MAC_OSX + result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileCreator); +#else + result = mac_get_object_from_code (finder_info.fdCreator); +#endif + } + } + UNBLOCK_INPUT; + if (status != noErr) { + error ("Error while getting file information."); + } + return result; +} + +DEFUN ("mac-get-file-type", Fmac_get_file_type, Smac_get_file_type, 1, 1, 0, + doc: /* Get the type code of FILENAME as a four character string. */) + (filename) + Lisp_Object filename; +{ + OSErr status; +#ifdef MAC_OSX + FSRef fref; +#else + FSSpec fss; +#endif + OSType cCode; + Lisp_Object result = Qnil; + CHECK_STRING (filename); + + if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) { + return Qnil; + } + filename = Fexpand_file_name (filename, Qnil); + + BLOCK_INPUT; +#ifdef MAC_OSX + status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL); +#else + status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss); +#endif + + if (status == noErr) + { +#ifdef MAC_OSX + FSCatalogInfo catalogInfo; + + status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo, + &catalogInfo, NULL, NULL, NULL); +#else + FInfo finder_info; + + status = FSpGetFInfo (&fss, &finder_info); +#endif + if (status == noErr) + { +#ifdef MAC_OSX + result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileType); +#else + result = mac_get_object_from_code (finder_info.fdType); +#endif + } + } + UNBLOCK_INPUT; + if (status != noErr) { + error ("Error while getting file information."); + } + return result; +} + +DEFUN ("mac-set-file-creator", Fmac_set_file_creator, Smac_set_file_creator, 1, 2, 0, + doc: /* Set creator code of file FILENAME to CODE. +If non-nil, CODE must be a 4-character string. Otherwise, 'EMAx' is +assumed. Return non-nil if successful. */) + (filename, code) + Lisp_Object filename, code; +{ + OSErr status; +#ifdef MAC_OSX + FSRef fref; +#else + FSSpec fss; +#endif + OSType cCode; + CHECK_STRING (filename); + + cCode = mac_get_code_from_arg(code, 'EMAx'); + + if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) { + return Qnil; + } + filename = Fexpand_file_name (filename, Qnil); + + BLOCK_INPUT; +#ifdef MAC_OSX + status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL); +#else + status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss); +#endif + + if (status == noErr) + { +#ifdef MAC_OSX + FSCatalogInfo catalogInfo; + FSRef parentDir; + status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo, + &catalogInfo, NULL, NULL, &parentDir); +#else + FInfo finder_info; + + status = FSpGetFInfo (&fss, &finder_info); +#endif + if (status == noErr) + { +#ifdef MAC_OSX + ((FileInfo*)&catalogInfo.finderInfo)->fileCreator = cCode; + status = FSSetCatalogInfo(&fref, kFSCatInfoFinderInfo, &catalogInfo); + /* TODO: on Mac OS 10.2, we need to touch the parent dir, FNNotify? */ +#else + finder_info.fdCreator = cCode; + status = FSpSetFInfo (&fss, &finder_info); +#endif + } + } + UNBLOCK_INPUT; + if (status != noErr) { + error ("Error while setting creator information."); + } + return Qt; +} + +DEFUN ("mac-set-file-type", Fmac_set_file_type, Smac_set_file_type, 2, 2, 0, + doc: /* Set file code of file FILENAME to CODE. +CODE must be a 4-character string. Return non-nil if successful. */) + (filename, code) + Lisp_Object filename, code; +{ + OSErr status; +#ifdef MAC_OSX + FSRef fref; +#else + FSSpec fss; +#endif + OSType cCode; + CHECK_STRING (filename); + + cCode = mac_get_code_from_arg(code, 0); /* Default to empty code*/ + + if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) { + return Qnil; + } + filename = Fexpand_file_name (filename, Qnil); + + BLOCK_INPUT; +#ifdef MAC_OSX + status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL); +#else + status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss); +#endif + + if (status == noErr) + { +#ifdef MAC_OSX + FSCatalogInfo catalogInfo; + FSRef parentDir; + status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo, + &catalogInfo, NULL, NULL, &parentDir); +#else + FInfo finder_info; + + status = FSpGetFInfo (&fss, &finder_info); +#endif + if (status == noErr) + { +#ifdef MAC_OSX + ((FileInfo*)&catalogInfo.finderInfo)->fileType = cCode; + status = FSSetCatalogInfo(&fref, kFSCatInfoFinderInfo, &catalogInfo); + /* TODO: on Mac OS 10.2, we need to touch the parent dir, FNNotify? */ +#else + finder_info.fdType = cCode; + status = FSpSetFInfo (&fss, &finder_info); +#endif + } + } + UNBLOCK_INPUT; + if (status != noErr) { + error ("Error while setting creator information."); + } + return Qt; +} + /* Compile and execute the AppleScript SCRIPT and return the error status as function value. A zero is returned if compilation and @@ -3484,12 +3765,12 @@ do_applescript (char *script, char **result) DEFUN ("do-applescript", Fdo_applescript, Sdo_applescript, 1, 1, 0, - doc: /* Compile and execute AppleScript SCRIPT and retrieve and return the result. + doc: /* Compile and execute AppleScript SCRIPT and return the result. If compilation and execution are successful, the resulting script value is returned as a string. Otherwise the function aborts and displays the error message returned by the AppleScript scripting component. */) - (script) + (script) Lisp_Object script; { char *result, *temp; @@ -3529,16 +3810,15 @@ component. */) DEFUN ("mac-file-name-to-posix", Fmac_file_name_to_posix, Smac_file_name_to_posix, 1, 1, 0, - doc: /* Convert Macintosh filename to Posix form. */) - (mac_filename) - Lisp_Object mac_filename; + doc: /* Convert Macintosh FILENAME to Posix form. */) + (filename) + Lisp_Object filename; { char posix_filename[MAXPATHLEN+1]; - CHECK_STRING (mac_filename); + CHECK_STRING (filename); - if (mac_to_posix_pathname (SDATA (mac_filename), posix_filename, - MAXPATHLEN)) + if (mac_to_posix_pathname (SDATA (filename), posix_filename, MAXPATHLEN)) return build_string (posix_filename); else return Qnil; @@ -3547,16 +3827,15 @@ DEFUN ("mac-file-name-to-posix", Fmac_file_name_to_posix, DEFUN ("posix-file-name-to-mac", Fposix_file_name_to_mac, Sposix_file_name_to_mac, 1, 1, 0, - doc: /* Convert Posix filename to Mac form. */) - (posix_filename) - Lisp_Object posix_filename; + doc: /* Convert Posix FILENAME to Mac form. */) + (filename) + Lisp_Object filename; { char mac_filename[MAXPATHLEN+1]; - CHECK_STRING (posix_filename); + CHECK_STRING (filename); - if (posix_to_mac_pathname (SDATA (posix_filename), mac_filename, - MAXPATHLEN)) + if (posix_to_mac_pathname (SDATA (filename), mac_filename, MAXPATHLEN)) return build_string (mac_filename); else return Qnil; @@ -3571,8 +3850,8 @@ DEFUN ("mac-get-preference", Fmac_get_preference, Smac_get_preference, 1, 4, 0, doc: /* Return the application preference value for KEY. KEY is either a string specifying a preference key, or a list of key strings. If it is a list, the (i+1)-th element is used as a key for -the CFDictionary value obtained by the i-th element. If lookup is -failed at some stage, nil is returned. +the CFDictionary value obtained by the i-th element. Return nil if +lookup is failed at some stage. Optional arg APPLICATION is an application ID string. If omitted or nil, that stands for the current application. @@ -3603,7 +3882,7 @@ CFDictionary. If HASH-BOUND is a negative integer or nil, always generate alists. If HASH-BOUND >= 0, generate an alist if the number of keys in the dictionary is smaller than HASH-BOUND, and a hash table otherwise. */) - (key, application, format, hash_bound) + (key, application, format, hash_bound) Lisp_Object key, application, format, hash_bound; { CFStringRef app_id, key_str; @@ -3840,9 +4119,8 @@ charset string, or an integer as a CFStringEncoding value. On Mac OS X 10.2 and later, you can do Unicode Normalization by specifying the optional argument NORMALIZATION-FORM with a symbol NFD, NFKD, NFC, NFKC, HFS+D, or HFS+C. -On successful conversion, returns the result string, else returns -nil. */) - (string, source, target, normalization_form) +On successful conversion, return the result string, else return nil. */) + (string, source, target, normalization_form) Lisp_Object string, source, target, normalization_form; { Lisp_Object result = Qnil; @@ -3862,7 +4140,11 @@ nil. */) src_encoding = get_cfstring_encoding_from_lisp (source); tgt_encoding = get_cfstring_encoding_from_lisp (target); - string = string_make_unibyte (string); + /* We really want string_to_unibyte, but since it doesn't exist yet, we + use string_as_unibyte which works as well, except for the fact that + it's too permissive (it doesn't check that the multibyte string only + contain single-byte chars). */ + string = Fstring_as_unibyte (string); if (src_encoding != kCFStringEncodingInvalidId && tgt_encoding != kCFStringEncodingInvalidId) str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string), @@ -3897,7 +4179,7 @@ nil. */) DEFUN ("mac-clear-font-name-table", Fmac_clear_font_name_table, Smac_clear_font_name_table, 0, 0, 0, doc: /* Clear the font name table. */) - () + () { check_mac (); mac_clear_font_name_table (); @@ -4197,8 +4479,13 @@ init_mac_osx_environment () app_bundle_pathname. */ bundle = CFBundleGetMainBundle (); - if (!bundle) - return; + if (!bundle || CFBundleGetIdentifier (bundle) == NULL) + { + /* We could not find the bundle identifier. For now, prevent + the fatal error by bringing it up in the terminal. */ + inhibit_window_system = 1; + return; + } bundleURL = CFBundleCopyBundleURL (bundle); if (!bundleURL) @@ -4361,6 +4648,10 @@ syms_of_mac () #endif defsubr (&Smac_clear_font_name_table); + defsubr (&Smac_set_file_creator); + defsubr (&Smac_set_file_type); + defsubr (&Smac_get_file_creator); + defsubr (&Smac_get_file_type); defsubr (&Sdo_applescript); defsubr (&Smac_file_name_to_posix); defsubr (&Sposix_file_name_to_mac); diff --git a/src/macfns.c b/src/macfns.c index b9f7e2bed5f..160eb1f7774 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -1,5 +1,5 @@ /* Graphical user interface functions for Mac OS. - Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -21,58 +21,34 @@ Boston, MA 02110-1301, USA. */ /* Contributed by Andrew Choi (akochoi@mac.com). */ #include <config.h> - #include <stdio.h> #include <math.h> -#include <limits.h> -#include <errno.h> #include "lisp.h" -#include "charset.h" #include "macterm.h" #include "frame.h" #include "window.h" #include "buffer.h" -#include "dispextern.h" -#include "fontset.h" #include "intervals.h" +#include "dispextern.h" #include "keyboard.h" #include "blockinput.h" -#include "epaths.h" -#include "termhooks.h" +#include <epaths.h> +#include "charset.h" #include "coding.h" +#include "fontset.h" #include "systime.h" +#include "termhooks.h" +#include "atimer.h" -/* #include "bitmaps/gray.xbm" */ -#define gray_width 2 -#define gray_height 2 -static unsigned char gray_bits[] = { - 0x01, 0x02}; - -/*#include <commdlg.h> -#include <shellapi.h>*/ #include <ctype.h> #include <sys/types.h> #include <sys/stat.h> +#include <limits.h> +#include <errno.h> #include <sys/param.h> -#include <stdlib.h> -#include <string.h> - -/*extern void free_frame_menubar (); -extern double atof (); -extern int w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state); -extern int quit_char;*/ - -extern char *lispy_function_keys[]; - -/* The gray bitmap `bitmaps/gray'. This is done because macterm.c uses - it, and including `bitmaps/gray' more than once is a problem when - config.h defines `static' as an empty replacement string. */ - -int gray_bitmap_width = gray_width; -int gray_bitmap_height = gray_height; -unsigned char *gray_bitmap_bits = gray_bits; +extern void free_frame_menubar (); /* Non-zero means we're allowed to display an hourglass cursor. */ @@ -109,46 +85,13 @@ Lisp_Object Vx_no_window_manager; Lisp_Object Vx_pixel_size_width_font_regexp; -/* Evaluate this expression to rebuild the section of syms_of_macfns - that initializes and staticpros the symbols declared below. Note - that Emacs 18 has a bug that keeps C-x C-e from being able to - evaluate this expression. - -(progn - ;; Accumulate a list of the symbols we want to initialize from the - ;; declarations at the top of the file. - (goto-char (point-min)) - (search-forward "/\*&&& symbols declared here &&&*\/\n") - (let (symbol-list) - (while (looking-at "Lisp_Object \\(Q[a-z_]+\\)") - (setq symbol-list - (cons (buffer-substring (match-beginning 1) (match-end 1)) - symbol-list)) - (forward-line 1)) - (setq symbol-list (nreverse symbol-list)) - ;; Delete the section of syms_of_... where we initialize the symbols. - (search-forward "\n /\*&&& init symbols here &&&*\/\n") - (let ((start (point))) - (while (looking-at "^ Q") - (forward-line 2)) - (kill-region start (point))) - ;; Write a new symbol initialization section. - (while symbol-list - (insert (format " %s = intern (\"" (car symbol-list))) - (let ((start (point))) - (insert (substring (car symbol-list) 1)) - (subst-char-in-region start (point) ?_ ?-)) - (insert (format "\");\n staticpro (&%s);\n" (car symbol-list))) - (setq symbol-list (cdr symbol-list))))) - - */ - -/*&&& symbols declared here &&&*/ Lisp_Object Qnone; Lisp_Object Qsuppress_icon; Lisp_Object Qundefined_color; Lisp_Object Qcancel_timer; +/* In dispnew.c */ + extern Lisp_Object Vwindow_system_version; #if 0 /* Use xstricmp instead. */ @@ -243,40 +186,11 @@ check_x_display_info (frame) return dpyinfo; } - -/* Return the Emacs frame-object corresponding to a mac window. - It could be the frame's main window or an icon window. */ - -/* This function can be called during GC, so use GC_xxx type test macros. */ - -struct frame * -x_window_to_frame (dpyinfo, wdesc) - struct mac_display_info *dpyinfo; - WindowPtr wdesc; -{ - Lisp_Object tail, frame; - struct frame *f; - - for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) - { - frame = XCAR (tail); - if (!GC_FRAMEP (frame)) - continue; - f = XFRAME (frame); - if (!FRAME_W32_P (f) || FRAME_MAC_DISPLAY_INFO (f) != dpyinfo) - continue; - /*if (f->output_data.w32->hourglass_window == wdesc) - return f;*/ - - /* MAC_TODO: Check tooltips when supported. */ - if (FRAME_MAC_WINDOW (f) == wdesc) - return f; - } - return 0; -} + static Lisp_Object unwind_create_frame P_ ((Lisp_Object)); +static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object)); void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); @@ -302,6 +216,8 @@ static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *, extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *)); + + /* Store the screen positions of frame F into XPTR and YPTR. These are the positions of the containing window manager window, not Emacs's own window. */ @@ -1570,9 +1486,10 @@ x_set_cursor_color (f, arg, oldval) { BLOCK_INPUT; /* Update frame's cursor_gc. */ - f->output_data.mac->cursor_gc->foreground = fore_pixel; - f->output_data.mac->cursor_gc->background = pixel; - + XSetBackground (FRAME_MAC_DISPLAY (f), + f->output_data.mac->cursor_gc, pixel); + XSetForeground (FRAME_MAC_DISPLAY (f), + f->output_data.mac->cursor_gc, fore_pixel); UNBLOCK_INPUT; if (FRAME_VISIBLE_P (f)) @@ -1833,8 +1750,49 @@ x_set_tool_bar_lines (f, value, oldval) } + +/* Set the Mac window title to NAME for frame F. */ + +static void +x_set_name_internal (f, name) + FRAME_PTR f; + Lisp_Object name; +{ + if (FRAME_MAC_WINDOW (f)) + { + if (STRING_MULTIBYTE (name)) +#if TARGET_API_MAC_CARBON + name = ENCODE_UTF_8 (name); +#else + name = ENCODE_SYSTEM (name); +#endif + + BLOCK_INPUT; + + { +#if TARGET_API_MAC_CARBON + CFStringRef windowTitle = + cfstring_create_with_utf8_cstring (SDATA (name)); + + SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle); + CFRelease (windowTitle); +#else + Str255 windowTitle; + if (strlen (SDATA (name)) < 255) + { + strcpy (windowTitle, SDATA (name)); + c2pstr (windowTitle); + SetWTitle (FRAME_MAC_WINDOW (f), windowTitle); + } +#endif + } + + UNBLOCK_INPUT; + } +} + /* Change the name of frame F to NAME. If NAME is nil, set F's name to - w32_id_name. + mac_id_name. If EXPLICIT is non-zero, that indicates that lisp code is setting the name; if NAME is a string, set F's name to NAME and set @@ -1864,7 +1822,7 @@ x_set_name (f, name, explicit) else if (f->explicit_name) return; - /* If NAME is nil, set the name to the w32_id_name. */ + /* If NAME is nil, set the name to the mac_id_name. */ if (NILP (name)) { /* Check for no change needed in this very common case @@ -1888,37 +1846,7 @@ x_set_name (f, name, explicit) if (! NILP (f->title)) name = f->title; - if (FRAME_MAC_WINDOW (f)) - { - if (STRING_MULTIBYTE (name)) -#if TARGET_API_MAC_CARBON - name = ENCODE_UTF_8 (name); -#else - name = ENCODE_SYSTEM (name); -#endif - - BLOCK_INPUT; - - { -#if TARGET_API_MAC_CARBON - CFStringRef windowTitle = - cfstring_create_with_utf8_cstring (SDATA (name)); - - SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle); - CFRelease (windowTitle); -#else - Str255 windowTitle; - if (strlen (SDATA (name)) < 255) - { - strcpy (windowTitle, SDATA (name)); - c2pstr (windowTitle); - SetWTitle (FRAME_MAC_WINDOW (f), windowTitle); - } -#endif - } - - UNBLOCK_INPUT; - } + x_set_name_internal (f, name); } /* This function should be called when the user's lisp code has @@ -1969,38 +1897,10 @@ x_set_title (f, name, old_name) if (NILP (name)) name = f->name; + else + CHECK_STRING (name); - if (FRAME_MAC_WINDOW (f)) - { - if (STRING_MULTIBYTE (name)) -#if TARGET_API_MAC_CARBON - name = ENCODE_UTF_8 (name); -#else - name = ENCODE_SYSTEM (name); -#endif - - BLOCK_INPUT; - - { -#if TARGET_API_MAC_CARBON - CFStringRef windowTitle = - cfstring_create_with_utf8_cstring (SDATA (name)); - - SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle); - CFRelease (windowTitle); -#else - Str255 windowTitle; - if (strlen (SDATA (name)) < 255) - { - strcpy (windowTitle, SDATA (name)); - c2pstr (windowTitle); - SetWTitle (FRAME_MAC_WINDOW (f), windowTitle); - } -#endif - } - - UNBLOCK_INPUT; - } + x_set_name_internal (f, name); } void @@ -2469,7 +2369,7 @@ unwind_create_frame (frame) DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, 1, 1, 0, - doc: /* Make a new window, which is called a \"frame\" in Emacs terms. + doc: /* Make a new window, which is called a "frame" in Emacs terms. Returns an Emacs frame object. ALIST is an alist of frame parameters. If the parameters specify that the frame should not have a minibuffer, @@ -2478,7 +2378,7 @@ then `default-minibuffer-frame' must be a frame whose minibuffer can be shared by the new frame. This function is an internal primitive--use `make-frame' instead. */) - (parms) + (parms) Lisp_Object parms; { struct frame *f; @@ -2803,7 +2703,7 @@ x_get_focus_frame (frame) DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, doc: /* Internal function called by `color-defined-p', which see. */) - (color, frame) + (color, frame) Lisp_Object color, frame; { XColor foo; @@ -2819,7 +2719,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0, doc: /* Internal function called by `color-values', which see. */) - (color, frame) + (color, frame) Lisp_Object color, frame; { XColor foo; @@ -2842,7 +2742,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0, DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0, doc: /* Internal function called by `display-color-p', which see. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2855,12 +2755,12 @@ DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0, DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p, 0, 1, 0, - doc: /* Return t if the X display supports shades of gray. + doc: /* Return t if DISPLAY supports shades of gray. Note that color displays do support shades of gray. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2873,11 +2773,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width, 0, 1, 0, - doc: /* Returns the width in pixels of the X display DISPLAY. + doc: /* Returns the width in pixels of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2887,11 +2787,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-pixel-height", Fx_display_pixel_height, Sx_display_pixel_height, 0, 1, 0, - doc: /* Returns the height in pixels of the X display DISPLAY. + doc: /* Returns the height in pixels of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2901,11 +2801,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes, 0, 1, 0, - doc: /* Returns the number of bitplanes of the display DISPLAY. + doc: /* Returns the number of bitplanes of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2915,11 +2815,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells, 0, 1, 0, - doc: /* Returns the number of color cells of the display DISPLAY. + doc: /* Returns the number of color cells of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2931,11 +2831,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-server-max-request-size", Fx_server_max_request_size, Sx_server_max_request_size, 0, 1, 0, - doc: /* Returns the maximum request size of the server of display DISPLAY. + doc: /* Returns the maximum request size of the server of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -2944,18 +2844,18 @@ If omitted or nil, that stands for the selected frame's display. */) } DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, - doc: /* Returns the vendor ID string of the Mac OS system (Apple). + doc: /* Returns the "vendor ID" string of the Mac OS system (Apple). The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { return build_string ("Apple Computers"); } DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, - doc: /* Returns the version numbers of the server of display DISPLAY. + doc: /* Returns the version numbers of the Mac OS system. The value is a list of three integers: the major and minor version numbers, and the vendor-specific release number. See also the function `x-server-vendor'. @@ -2963,7 +2863,7 @@ number. See also the function `x-server-vendor'. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { int mac_major_version; @@ -2988,22 +2888,22 @@ If omitted or nil, that stands for the selected frame's display. */) } DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, - doc: /* Return the number of screens on the server of display DISPLAY. + doc: /* Return the number of screens on the server of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { return make_number (1); } DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, - doc: /* Return the height in millimeters of the X display DISPLAY. + doc: /* Return the height in millimeters of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { /* MAC_TODO: this is an approximation, and only of the main display */ @@ -3014,11 +2914,11 @@ If omitted or nil, that stands for the selected frame's display. */) } DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, - doc: /* Return the width in millimeters of the X display DISPLAY. + doc: /* Return the width in millimeters of DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { /* MAC_TODO: this is an approximation, and only of the main display */ @@ -3030,12 +2930,12 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-backing-store", Fx_display_backing_store, Sx_display_backing_store, 0, 1, 0, - doc: /* Returns an indication of whether display DISPLAY does backing store. + doc: /* Returns an indication of whether DISPLAY does backing store. The value may be `always', `when-mapped', or `not-useful'. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { return intern ("not-useful"); @@ -3043,14 +2943,14 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-visual-class", Fx_display_visual_class, Sx_display_visual_class, 0, 1, 0, - doc: /* Returns the visual class of the display DISPLAY. + doc: /* Returns the visual class of DISPLAY. The value is one of the symbols `static-gray', `gray-scale', `static-color', `pseudo-color', `true-color', or `direct-color'. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); @@ -3074,11 +2974,11 @@ If omitted or nil, that stands for the selected frame's display. */) DEFUN ("x-display-save-under", Fx_display_save_under, Sx_display_save_under, 0, 1, 0, - doc: /* Returns t if the display DISPLAY supports the save-under feature. + doc: /* Returns t if DISPLAY supports the save-under feature. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. */) - (display) + (display) Lisp_Object display; { return Qnil; @@ -3168,7 +3068,7 @@ DISPLAY is the name of the display to connect to. Optional second arg XRM-STRING is a string of resources in xrdb format. If the optional third arg MUST-SUCCEED is non-nil, terminate Emacs if we can't open the connection. */) - (display, xrm_string, must_succeed) + (display, xrm_string, must_succeed) Lisp_Object display, xrm_string, must_succeed; { unsigned char *xrm_option; @@ -3213,8 +3113,8 @@ DEFUN ("x-close-connection", Fx_close_connection, doc: /* Close the connection to DISPLAY's server. For DISPLAY, specify either a frame or a display name (a string). If DISPLAY is nil, that stands for the selected frame's display. */) - (display) - Lisp_Object display; + (display) + Lisp_Object display; { struct mac_display_info *dpyinfo = check_x_display_info (display); int i; @@ -3240,7 +3140,7 @@ If DISPLAY is nil, that stands for the selected frame's display. */) DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0, doc: /* Return the list of display names that Emacs has connections to. */) - () + () { Lisp_Object tail, result; @@ -3252,13 +3152,8 @@ DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0, } DEFUN ("x-synchronize", Fx_synchronize, Sx_synchronize, 1, 2, 0, - doc: /* If ON is non-nil, report errors as soon as the erring request is made. -If ON is nil, allow buffering of requests. -This is a noop on Mac OS systems. -The optional second argument DISPLAY specifies which display to act on. -DISPLAY should be either a frame or a display name (a string). -If DISPLAY is omitted or nil, that stands for the selected frame's display. */) - (on, display) + doc: /* This is a noop on Mac OS systems. */) + (on, display) Lisp_Object display, on; { return Qnil; @@ -3317,7 +3212,7 @@ DEFUN ("x-delete-window-property", Fx_delete_window_property, Sx_delete_window_property, 1, 2, 0, doc: /* Remove window property PROP from X window of FRAME. FRAME nil or omitted means use the selected frame. Value is PROP. */) - (prop, frame) + (prop, frame) Lisp_Object prop, frame; { #if 0 /* MAC_TODO : port window properties to Mac */ @@ -3345,7 +3240,7 @@ DEFUN ("x-window-property", Fx_window_property, Sx_window_property, If FRAME is nil or omitted, use the selected frame. Value is nil if FRAME hasn't a property with name PROP or if PROP has no string value. */) - (prop, frame) + (prop, frame) Lisp_Object prop, frame; { #if 0 /* MAC_TODO : port window properties to Mac */ @@ -3947,7 +3842,7 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y) DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0, doc: /* Show STRING in a "tooltip" window on frame FRAME. -A tooltip window is a small X window displaying a string. +A tooltip window is a small window displaying a string. FRAME nil or omitted means use the selected frame. @@ -3957,7 +3852,7 @@ change the tooltip's appearance. Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil means use the default timeout of 5 seconds. -If the list of frame parameters PARAMS contains a `left' parameters, +If the list of frame parameters PARMS contains a `left' parameter, the tooltip is displayed at that x-position. Otherwise it is displayed at the mouse position, with offset DX added (default is 5 if DX isn't specified). Likewise for the y-position; if a `top' frame @@ -4215,7 +4110,7 @@ Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file selection box, if specified. Ensure that file exists if MUSTMATCH is non-nil. If ONLY-DIR-P is non-nil, the user can only select directories. */) - (prompt, dir, default_filename, mustmatch, only_dir_p) + (prompt, dir, default_filename, mustmatch, only_dir_p) Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; { struct frame *f = SELECTED_FRAME (); diff --git a/src/macgui.h b/src/macgui.h index d9948278d1b..607890317e1 100644 --- a/src/macgui.h +++ b/src/macgui.h @@ -1,5 +1,6 @@ /* Definitions and headers for communication on the Mac OS. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -86,6 +87,10 @@ typedef GWorldPtr Pixmap; #define FACE_DEFAULT (~0) +#if !TARGET_API_MAC_CARBON +#define GetPixDepth(pmh) ((*(pmh))->pixelSize) +#endif + /* Emulate XCharStruct. */ typedef struct _XCharStruct @@ -180,15 +185,24 @@ typedef struct _XGCValues XFontStruct *font; } XGCValues; -typedef XGCValues *GC; +typedef struct _XGC +{ + /* Original value. */ + XGCValues xgcv; + + /* Cached data members follow. */ + + /* QuickDraw foreground color. */ + RGBColor fore_color; -extern XGCValues * -XCreateGC (void *, Window, unsigned long, XGCValues *); + /* QuickDraw background color. */ + RGBColor back_color; +} *GC; -#define GCForeground 0x01 -#define GCBackground 0x02 -#define GCFont 0x03 -#define GCGraphicsExposures 0 +#define GCForeground (1L<<2) +#define GCBackground (1L<<3) +#define GCFont (1L<<14) +#define GCGraphicsExposures 0 /* Bit Gravity */ @@ -248,8 +262,6 @@ typedef struct { #define PBaseSize (1L << 8) /* program specified base for incrementing */ #define PWinGravity (1L << 9) /* program specified window gravity */ -extern int XParseGeometry (); - typedef struct { int x, y; unsigned width, height; diff --git a/src/macmenu.c b/src/macmenu.c index ab266f6f0b5..a68ff04e405 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -1,5 +1,6 @@ /* Menu support for GNU Emacs on the for Mac OS. - Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -611,37 +612,48 @@ cleanup_popup_menu (arg) DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0, doc: /* Pop up a deck-of-cards menu and return user's selection. -POSITION is a position specification. This is either a mouse button -event or a list ((XOFFSET YOFFSET) WINDOW) where XOFFSET and YOFFSET -are positions in pixels from the top left corner of WINDOW's frame -\(WINDOW may be a frame object instead of a window). This controls the -position of the center of the first line in the first pane of the -menu, not the top left of the menu as a whole. If POSITION is t, it -means to use the current mouse position. +POSITION is a position specification. This is either a mouse button event +or a list ((XOFFSET YOFFSET) WINDOW) +where XOFFSET and YOFFSET are positions in pixels from the top left +corner of WINDOW. (WINDOW may be a window or a frame object.) +This controls the position of the top left of the menu as a whole. +If POSITION is t, it means to use the current mouse position. MENU is a specifier for a menu. For the simplest case, MENU is a keymap. The menu items come from key bindings that have a menu string as well as -a definition; actually, the \"definition\" in such a key binding looks like +a definition; actually, the "definition" in such a key binding looks like \(STRING . REAL-DEFINITION). To give the menu a title, put a string into the keymap as a top-level element. If REAL-DEFINITION is nil, that puts a nonselectable string in the menu. Otherwise, REAL-DEFINITION should be a valid key binding definition. -You can also use a list of keymaps as MENU. Then each keymap makes a -separate pane. When MENU is a keymap or a list of keymaps, the return -value is a list of events. +You can also use a list of keymaps as MENU. + Then each keymap makes a separate pane. -Alternatively, you can specify a menu of multiple panes with a list of -the form (TITLE PANE1 PANE2...), where each pane is a list of -form (TITLE ITEM1 ITEM2...). -Each ITEM is normally a cons cell (STRING . VALUE); but a string can -appear as an item--that makes a nonselectable line in the menu. +When MENU is a keymap or a list of keymaps, the return value is the +list of events corresponding to the user's choice. Note that +`x-popup-menu' does not actually execute the command bound to that +sequence of events. + +Alternatively, you can specify a menu of multiple panes + with a list of the form (TITLE PANE1 PANE2...), +where each pane is a list of form (TITLE ITEM1 ITEM2...). +Each ITEM is normally a cons cell (STRING . VALUE); +but a string can appear as an item--that makes a nonselectable line +in the menu. With this form of menu, the return value is VALUE from the chosen item. If POSITION is nil, don't display the menu at all, just precalculate the -cached information about equivalent key sequences. */) - (position, menu) +cached information about equivalent key sequences. + +If the user gets rid of the menu without making a valid choice, for +instance by clicking the mouse away from a valid choice or by typing +keyboard input, then this normally results in a quit and +`x-popup-menu' does not return. But if POSITION is a mouse button +event (indicating that the user invoked the menu with the mouse) then +no quit occurs and `x-popup-menu' returns nil. */) + (position, menu) Lisp_Object position, menu; { Lisp_Object keymap, tem; @@ -840,7 +852,7 @@ If POSITION is t, it means to use the frame the mouse is on. The dialog box appears in the middle of the specified frame. CONTENTS specifies the alternatives to display in the dialog box. -It is a list of the form (TITLE ITEM1 ITEM2...). +It is a list of the form (DIALOG ITEM1 ITEM2...). Each ITEM is a cons cell (STRING . VALUE). The return value is VALUE from the chosen item. @@ -850,8 +862,12 @@ on the left of the dialog box and all following items on the right. \(By default, approximately half appear on each side.) If HEADER is non-nil, the frame title for the box is "Information", -otherwise it is "Question". */) - (position, contents, header) +otherwise it is "Question". + +If the user gets rid of the dialog box without making a valid choice, +for instance using the window manager, then this produces a quit and +`x-popup-dialog' does not return. */) + (position, contents, header) Lisp_Object position, contents, header; { FRAME_PTR f = NULL; diff --git a/src/macros.c b/src/macros.c index 6f854018d6a..8167e274dab 100644 --- a/src/macros.c +++ b/src/macros.c @@ -1,5 +1,6 @@ /* Keyboard macros. - Copyright (C) 1985, 1986, 1993, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/macros.h b/src/macros.h index d9b99b9984e..7acd46dc2ed 100644 --- a/src/macros.h +++ b/src/macros.h @@ -1,5 +1,5 @@ /* Definitions for keyboard macro interpretation in GNU Emacs. - Copyright (C) 1985 Free Software Foundation, Inc. + Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/macselect.c b/src/macselect.c index b519950eb75..63221ba3a90 100644 --- a/src/macselect.c +++ b/src/macselect.c @@ -371,7 +371,7 @@ get_scrap_target_type_list (scrap) err = GetScrapFlavorCount (scrap, &count); if (err == noErr) flavor_info = xmalloc (sizeof (ScrapFlavorInfo) * count); - if (err == noErr && flavor_info) + if (flavor_info) { err = GetScrapFlavorInfoList (scrap, &count, flavor_info); if (err != noErr) @@ -380,6 +380,8 @@ get_scrap_target_type_list (scrap) flavor_info = NULL; } } + if (flavor_info == NULL) + count = 0; #endif for (rest = Vselection_converter_alist; CONSP (rest); rest = XCDR (rest)) { @@ -710,7 +712,7 @@ anything that the functions on `selection-converter-alist' know about. */) { check_mac (); CHECK_SYMBOL (selection_name); - if (NILP (selection_value)) error ("selection-value may not be nil"); + if (NILP (selection_value)) error ("SELECTION-VALUE may not be nil"); x_own_selection (selection_name, selection_value); return selection_value; } @@ -722,11 +724,11 @@ anything that the functions on `selection-converter-alist' know about. */) DEFUN ("x-get-selection-internal", Fx_get_selection_internal, Sx_get_selection_internal, 2, 3, 0, - doc: /* Return text selected from some Mac window. + doc: /* Return text selected from some Mac application. SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. TYPE is the type of data desired, typically `STRING'. TIME_STAMP is ignored on Mac. */) - (selection_symbol, target_type, time_stamp) + (selection_symbol, target_type, time_stamp) Lisp_Object selection_symbol, target_type, time_stamp; { Lisp_Object val = Qnil; @@ -819,7 +821,7 @@ Disowning it means there is no such selection. */) DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p, 0, 1, 0, - doc: /* Whether the current Emacs process owns the given Selection. + doc: /* Whether the current Emacs process owns the given SELECTION. The arg should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. For convenience, the symbol nil is the same as `PRIMARY', @@ -864,7 +866,7 @@ and t is the same as `SECONDARY'. */) DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, 0, 1, 0, - doc: /* Whether there is an owner for the given Selection. + doc: /* Whether there is an owner for the given SELECTION. The arg should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. For convenience, the symbol nil is the same as `PRIMARY', @@ -1075,7 +1077,7 @@ a desired type to which the selection should be converted; and the local selection value (whatever was given to `x-own-selection'). The function should return the value to send to the Scrap Manager -\(a string). A return value of nil +\(must be a string). A return value of nil means that the conversion could not be done. A return value which is the symbol `NULL' means that a side-effect was executed, diff --git a/src/macterm.c b/src/macterm.c index 303557daca1..d6dbecfe800 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -1,5 +1,6 @@ /* Implementation of GUI terminal on the Mac OS. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -22,10 +23,10 @@ Boston, MA 02110-1301, USA. */ #include <config.h> #include <signal.h> + #include <stdio.h> -#include <stdlib.h> + #include "lisp.h" -#include "charset.h" #include "blockinput.h" #include "macterm.h" @@ -62,8 +63,6 @@ Boston, MA 02110-1301, USA. */ #include "systty.h" #include "systime.h" -#include "atimer.h" -#include "keymap.h" #include <ctype.h> #include <errno.h> @@ -71,7 +70,8 @@ Boston, MA 02110-1301, USA. */ #include <sys/stat.h> #include <sys/param.h> -#include "keyboard.h" +#include "charset.h" +#include "coding.h" #include "frame.h" #include "dispextern.h" #include "fontset.h" @@ -82,9 +82,10 @@ Boston, MA 02110-1301, USA. */ #include "disptab.h" #include "buffer.h" #include "window.h" +#include "keyboard.h" #include "intervals.h" -#include "composite.h" -#include "coding.h" +#include "atimer.h" +#include "keymap.h" /* Set of macros that handle mapping of Mac modifier keys to emacs. */ #define macCtrlKey (NILP (Vmac_reverse_ctrl_meta) ? controlKey : \ @@ -94,8 +95,6 @@ Boston, MA 02110-1301, USA. */ (NILP (Vmac_command_key_is_meta) ? optionKey : cmdKey) \ : controlKey) #define macAltKey (NILP (Vmac_command_key_is_meta) ? cmdKey : optionKey) - -#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP) /* Non-nil means Emacs uses toolkit scroll bars. */ @@ -114,15 +113,6 @@ static int any_help_event_p; /* Last window where we saw the mouse. Used by mouse-autoselect-window. */ static Lisp_Object last_window; -/* Non-zero means make use of UNDERLINE_POSITION font properties. */ - -int x_use_underline_position_properties; - -/* Non-zero means draw block and hollow cursor as wide as the glyph - under it. For example, if a block cursor is over a tab, it will be - drawn as wide as that tab on the display. */ - - /* This is a chain of structures for all the X displays currently in use. */ @@ -148,8 +138,6 @@ struct mac_display_info one_mac_display_info; extern struct frame *updating_frame; -extern int waiting_for_input; - /* This is a frame waiting to be auto-raised, within XTread_socket. */ struct frame *pending_autoraise_frame; @@ -177,7 +165,6 @@ struct frame *pending_autoraise_frame; /* Where the mouse was last time we reported a mouse event. */ static Rect last_mouse_glyph; -static Lisp_Object last_mouse_press_frame; /* The scroll bar in which the last X motion event occurred. @@ -211,45 +198,24 @@ static int volatile input_signal_count; static int input_signal_count; #endif -/* Used locally within XTread_socket. */ - -static int x_noop_count; - -/* Initial values of argv and argc. */ - -extern char **initial_argv; -extern int initial_argc; - -extern Lisp_Object Vcommand_line_args, Vsystem_name; - -/* Tells if a window manager is present or not. */ - -extern Lisp_Object Vx_no_window_manager; - -extern int errno; +extern Lisp_Object Vsystem_name; /* A mask of extra modifier bits to put into every keyboard char. */ -extern int extra_keyboard_modifiers; +extern EMACS_INT extra_keyboard_modifiers; /* The keysyms to use for the various modifiers. */ static Lisp_Object Qalt, Qhyper, Qsuper, Qmodifier_value; -static Lisp_Object Qvendor_specific_keysyms; - -#if 0 -extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *)); -#endif - extern int inhibit_window_system; #if __MRC__ && !TARGET_API_MAC_CARBON QDGlobals qd; /* QuickDraw global information structure. */ #endif +#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP) -struct frame * x_window_to_frame (struct mac_display_info *, WindowPtr); struct mac_display_info *mac_display_info_for_display (Display *); static void x_update_window_end P_ ((struct window *, int, int)); static int x_io_error_quitter P_ ((Display *)); @@ -289,17 +255,23 @@ static void x_flush P_ ((struct frame *f)); static void x_update_begin P_ ((struct frame *)); static void x_update_window_begin P_ ((struct window *)); static void x_after_update_window_line P_ ((struct glyph_row *)); +static void x_scroll_bar_report_motion P_ ((struct frame **, Lisp_Object *, + enum scroll_bar_part *, + Lisp_Object *, Lisp_Object *, + unsigned long *)); -static int is_emacs_window (WindowPtr); +static int is_emacs_window P_ ((WindowPtr)); -int x_bitmap_icon (struct frame *, Lisp_Object); -void x_make_frame_visible (struct frame *); - -extern void window_scroll (Lisp_Object, int, int, int); +static void XSetFont P_ ((Display *, GC, XFontStruct *)); /* Defined in macmenu.h. */ extern void menubar_selection_callback (FRAME_PTR, int); -extern void set_frame_menubar (FRAME_PTR, int, int); + +#define GC_FORE_COLOR(gc) (&(gc)->fore_color) +#define GC_BACK_COLOR(gc) (&(gc)->back_color) +#define GC_FONT(gc) ((gc)->xgcv.font) +#define MAC_WINDOW_NORMAL_GC(w) (((mac_output *) GetWRefCon (w))->normal_gc) + /* X display function emulation */ @@ -312,51 +284,6 @@ XFreePixmap (display, pixmap) } -/* Set foreground color for subsequent QuickDraw commands. Assume - graphic port has already been set. */ - -static void -mac_set_forecolor (unsigned long color) -{ - RGBColor fg_color; - - fg_color.red = RED16_FROM_ULONG (color); - fg_color.green = GREEN16_FROM_ULONG (color); - fg_color.blue = BLUE16_FROM_ULONG (color); - - RGBForeColor (&fg_color); -} - - -/* Set background color for subsequent QuickDraw commands. Assume - graphic port has already been set. */ - -static void -mac_set_backcolor (unsigned long color) -{ - RGBColor bg_color; - - bg_color.red = RED16_FROM_ULONG (color); - bg_color.green = GREEN16_FROM_ULONG (color); - bg_color.blue = BLUE16_FROM_ULONG (color); - - RGBBackColor (&bg_color); -} - -/* Set foreground and background color for subsequent QuickDraw - commands. Assume that the graphic port has already been set. */ - -static void -mac_set_colors (gc, bg_save) - GC gc; - RGBColor *bg_save; -{ - if (bg_save) - GetBackColor (bg_save); - mac_set_forecolor (gc->foreground); - mac_set_backcolor (gc->background); -} - /* Mac version of XDrawLine. */ static void @@ -366,16 +293,12 @@ XDrawLine (display, w, gc, x1, y1, x2, y2) GC gc; int x1, y1, x2, y2; { - RGBColor old_bg; - SetPortWindowPort (w); - mac_set_colors (gc, &old_bg); + RGBForeColor (GC_FORE_COLOR (gc)); MoveTo (x1, y1); LineTo (x2, y2); - - RGBBackColor (&old_bg); } void @@ -391,7 +314,7 @@ mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2) GetGWorld (&old_port, &old_gdh); SetGWorld (p, NULL); - mac_set_colors (gc, NULL); + RGBForeColor (GC_FORE_COLOR (gc)); LockPixels (GetGWorldPixMap (p)); MoveTo (x1, y1); @@ -401,32 +324,38 @@ mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2) SetGWorld (old_port, old_gdh); } -/* Mac version of XClearArea. */ -void -XClearArea (display, w, x, y, width, height, exposures) - Display *display; +static void +mac_erase_rectangle (w, gc, x, y, width, height) WindowPtr w; + GC gc; int x, y; unsigned int width, height; - int exposures; { - struct mac_output *mwp = (mac_output *) GetWRefCon (w); Rect r; - XGCValues xgc; - RGBColor old_bg; - - xgc.foreground = mwp->x_compatible.foreground_pixel; - xgc.background = mwp->x_compatible.background_pixel; SetPortWindowPort (w); - mac_set_colors (&xgc, &old_bg); + RGBBackColor (GC_BACK_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); EraseRect (&r); - RGBBackColor (&old_bg); + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); +} + + +/* Mac version of XClearArea. */ + +void +XClearArea (display, w, x, y, width, height, exposures) + Display *display; + WindowPtr w; + int x, y; + unsigned int width, height; + int exposures; +{ + mac_erase_rectangle (w, MAC_WINDOW_NORMAL_GC (w), x, y, width, height); } /* Mac version of XClearWindow. */ @@ -436,15 +365,9 @@ XClearWindow (display, w) Display *display; WindowPtr w; { - struct mac_output *mwp = (mac_output *) GetWRefCon (w); - XGCValues xgc; - - xgc.foreground = mwp->x_compatible.foreground_pixel; - xgc.background = mwp->x_compatible.background_pixel; - SetPortWindowPort (w); - mac_set_colors (&xgc, NULL); + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); #if TARGET_API_MAC_CARBON { @@ -472,7 +395,6 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p) { BitMap bitmap; Rect r; - RGBColor old_bg; bitmap.rowBytes = sizeof(unsigned short); bitmap.baseAddr = (char *)bits; @@ -480,7 +402,8 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p) SetPortWindowPort (w); - mac_set_colors (gc, &old_bg); + RGBForeColor (GC_FORE_COLOR (gc)); + RGBBackColor (GC_BACK_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); #if TARGET_API_MAC_CARBON @@ -493,7 +416,7 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p) overlay_p ? srcOr : srcCopy, 0); #endif /* not TARGET_API_MAC_CARBON */ - RGBBackColor (&old_bg); + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); } @@ -599,12 +522,16 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth) char *data; unsigned int width, height; unsigned long fg, bg; - unsigned int depth; /* not used */ + unsigned int depth; { Pixmap pixmap; BitMap bitmap; CGrafPtr old_port; GDHandle old_gdh; + static GC gc = NULL; /* not reentrant */ + + if (gc == NULL) + gc = XCreateGC (display, w, 0, NULL); pixmap = XCreatePixmap (display, w, width, height, depth); if (pixmap == NULL) @@ -613,8 +540,10 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth) GetGWorld (&old_port, &old_gdh); SetGWorld (pixmap, NULL); mac_create_bitmap_from_bitmap_data (&bitmap, data, width, height); - mac_set_forecolor (fg); - mac_set_backcolor (bg); + XSetForeground (display, gc, fg); + XSetBackground (display, gc, bg); + RGBForeColor (GC_FORE_COLOR (gc)); + RGBBackColor (GC_BACK_COLOR (gc)); LockPixels (GetGWorldPixMap (pixmap)); #if TARGET_API_MAC_CARBON CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap), @@ -642,16 +571,13 @@ XFillRectangle (display, w, gc, x, y, width, height) unsigned int width, height; { Rect r; - RGBColor old_bg; SetPortWindowPort (w); - mac_set_colors (gc, &old_bg); + RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); PaintRect (&r); /* using foreground color of gc */ - - RGBBackColor (&old_bg); } @@ -670,7 +596,7 @@ mac_fill_rectangle_to_pixmap (display, p, gc, x, y, width, height) GetGWorld (&old_port, &old_gdh); SetGWorld (p, NULL); - mac_set_colors (gc, NULL); + RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); LockPixels (GetGWorldPixMap (p)); @@ -693,16 +619,13 @@ mac_draw_rectangle (display, w, gc, x, y, width, height) unsigned int width, height; { Rect r; - RGBColor old_bg; SetPortWindowPort (w); - mac_set_colors (gc, &old_bg); + RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width + 1, y + height + 1); FrameRect (&r); /* using foreground color of gc */ - - RGBBackColor (&old_bg); } @@ -723,7 +646,7 @@ mac_draw_rectangle_to_pixmap (display, p, gc, x, y, width, height) GetGWorld (&old_port, &old_gdh); SetGWorld (p, NULL); - mac_set_colors (gc, NULL); + RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width + 1, y + height + 1); LockPixels (GetGWorldPixMap (p)); @@ -745,9 +668,6 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode, char *buf; int nchars, mode, bytes_per_char; { - RGBColor old_bg; - - SetPortWindowPort (w); #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 UInt32 textFlags, savedFlags; if (!NILP(Vmac_use_core_graphics)) { @@ -756,17 +676,22 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode, } #endif - mac_set_colors (gc, &old_bg); + SetPortWindowPort (w); + + RGBForeColor (GC_FORE_COLOR (gc)); + if (mode != srcOr) + RGBBackColor (GC_BACK_COLOR (gc)); - TextFont (gc->font->mac_fontnum); - TextSize (gc->font->mac_fontsize); - TextFace (gc->font->mac_fontface); + TextFont (GC_FONT (gc)->mac_fontnum); + TextSize (GC_FONT (gc)->mac_fontsize); + TextFace (GC_FONT (gc)->mac_fontface); TextMode (mode); MoveTo (x, y); DrawText (buf, 0, nchars * bytes_per_char); - RGBBackColor (&old_bg); + if (mode != srcOr) + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 if (!NILP(Vmac_use_core_graphics)) SwapQDTextFlags(savedFlags); @@ -871,6 +796,8 @@ mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x, &src_r, &dest_r, srcCopy, 0); #endif /* not TARGET_API_MAC_CARBON */ UnlockPixels (GetGWorldPixMap (src)); + + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); } @@ -909,26 +836,10 @@ mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y, #endif /* not TARGET_API_MAC_CARBON */ UnlockPixels (GetGWorldPixMap (mask)); UnlockPixels (GetGWorldPixMap (src)); -} - - -#if 0 -/* Convert a pair of local coordinates to global (screen) coordinates. - Assume graphic port has been properly set. */ -static void -local_to_global_coord (short *h, short *v) -{ - Point p; - p.h = *h; - p.v = *v; - - LocalToGlobal (&p); - - *h = p.h; - *v = p.v; + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); } -#endif + /* Mac replacement for XCopyArea: used only for scrolling. */ @@ -953,31 +864,17 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y) Rect src_r, dest_r; SetPort (w); -#if 0 - mac_set_colors (gc, NULL); -#endif SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); -#if 0 - /* Need to use global coordinates and screenBits since src and dest - areas overlap in general. */ - local_to_global_coord (&src_r.left, &src_r.top); - local_to_global_coord (&src_r.right, &src_r.bottom); - local_to_global_coord (&dest_r.left, &dest_r.top); - local_to_global_coord (&dest_r.right, &dest_r.bottom); - - CopyBits (&qd.screenBits, &qd.screenBits, &src_r, &dest_r, srcCopy, 0); -#else /* In Color QuickDraw, set ForeColor and BackColor as follows to avoid color mapping in CopyBits. Otherwise, it will be slow. */ ForeColor (blackColor); BackColor (whiteColor); CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); - mac_set_colors (gc, NULL); -#endif + RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); #endif /* not TARGET_API_MAC_CARBON */ } @@ -1067,28 +964,37 @@ mac_copy_area_with_mask_to_pixmap (display, src, mask, dest, gc, src_x, src_y, /* Mac replacement for XChangeGC. */ static void -XChangeGC (void * ignore, XGCValues* gc, unsigned long mask, - XGCValues *xgcv) +XChangeGC (display, gc, mask, xgcv) + Display *display; + GC gc; + unsigned long mask; + XGCValues *xgcv; { if (mask & GCForeground) - gc->foreground = xgcv->foreground; + XSetForeground (display, gc, xgcv->foreground); if (mask & GCBackground) - gc->background = xgcv->background; + XSetBackground (display, gc, xgcv->background); if (mask & GCFont) - gc->font = xgcv->font; + XSetFont (display, gc, xgcv->font); } /* Mac replacement for XCreateGC. */ -XGCValues * -XCreateGC (void * ignore, Window window, unsigned long mask, - XGCValues *xgcv) +GC +XCreateGC (display, window, mask, xgcv) + Display *display; + Window window; + unsigned long mask; + XGCValues *xgcv; { - XGCValues *gc = (XGCValues *) xmalloc (sizeof (XGCValues)); - bzero (gc, sizeof (XGCValues)); + GC gc = xmalloc (sizeof (*gc)); - XChangeGC (ignore, gc, mask, xgcv); + if (gc) + { + bzero (gc, sizeof (*gc)); + XChangeGC (display, gc, mask, xgcv); + } return gc; } @@ -1108,10 +1014,18 @@ XFreeGC (display, gc) /* Mac replacement for XGetGCValues. */ static void -XGetGCValues (void* ignore, XGCValues *gc, - unsigned long mask, XGCValues *xgcv) +XGetGCValues (display, gc, mask, xgcv) + Display *display; + GC gc; + unsigned long mask; + XGCValues *xgcv; { - XChangeGC (ignore, xgcv, mask, gc); + if (mask & GCForeground) + xgcv->foreground = gc->xgcv.foreground; + if (mask & GCBackground) + xgcv->background = gc->xgcv.background; + if (mask & GCFont) + xgcv->font = gc->xgcv.font; } @@ -1123,7 +1037,13 @@ XSetForeground (display, gc, color) GC gc; unsigned long color; { - gc->foreground = color; + if (gc->xgcv.foreground != color) + { + gc->xgcv.foreground = color; + gc->fore_color.red = RED16_FROM_ULONG (color); + gc->fore_color.green = GREEN16_FROM_ULONG (color); + gc->fore_color.blue = BLUE16_FROM_ULONG (color); + } } @@ -1135,7 +1055,25 @@ XSetBackground (display, gc, color) GC gc; unsigned long color; { - gc->background = color; + if (gc->xgcv.background != color) + { + gc->xgcv.background = color; + gc->back_color.red = RED16_FROM_ULONG (color); + gc->back_color.green = GREEN16_FROM_ULONG (color); + gc->back_color.blue = BLUE16_FROM_ULONG (color); + } +} + + +/* Mac replacement for XSetFont. */ + +static void +XSetFont (display, gc, font) + Display *display; + GC gc; + XFontStruct *font; +{ + gc->xgcv.font = font; } @@ -1182,19 +1120,6 @@ XSetWindowBackground (display, w, color) #endif } - -/* Mac replacement for XSetFont. */ - -static void -XSetFont (display, gc, font) - Display *display; - GC gc; - XFontStruct *font; -{ - gc->font = font; -} - - /* x_sync is a no-op on Mac. */ void x_sync (f) @@ -1345,7 +1270,6 @@ mac_draw_vertical_window_border (w, x, y0, y1) f->output_data.mac->normal_gc, x, y0, x, y1); } - /* End update of window W (which is equal to updated_window). Draw vertical borders between horizontally adjacent windows, and @@ -1357,7 +1281,7 @@ mac_draw_vertical_window_border (w, x, y0, y1) W may be a menu bar pseudo-window in case we don't have X toolkit support. Such windows don't have a cursor, so don't display it - here. */ + here. */ static void x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p) @@ -1390,14 +1314,6 @@ x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p) dpyinfo->mouse_face_window = Qnil; } -#if 0 - /* Unhide the caret. This won't actually show the cursor, unless it - was visible before the corresponding call to HideCaret in - x_update_window_begin. */ - if (w32_use_visible_system_caret) - SendMessage (w32_system_caret_hwnd, WM_EMACS_SHOW_CARET, 0, 0); -#endif - updated_window = NULL; } @@ -1483,19 +1399,18 @@ x_after_update_window_line (desired_row) height > 0)) { int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); + /* Internal border is drawn below the tool bar. */ if (WINDOWP (f->tool_bar_window) && w == XWINDOW (f->tool_bar_window)) y -= width; BLOCK_INPUT; - XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 0, y, width, height, 0); XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), FRAME_PIXEL_WIDTH (f) - width, y, width, height, 0); - UNBLOCK_INPUT; } } @@ -1515,7 +1430,6 @@ x_draw_fringe_bitmap (w, row, p) struct frame *f = XFRAME (WINDOW_FRAME (w)); Display *display = FRAME_MAC_DISPLAY (f); WindowPtr window = FRAME_MAC_WINDOW (f); - XGCValues gcv; GC gc = f->output_data.mac->normal_gc; struct face *face = p->face; int rowY; @@ -1539,9 +1453,6 @@ x_draw_fringe_bitmap (w, row, p) if (p->bx >= 0 && !p->overlay_p) { - XGCValues gcv; - gcv.foreground = face->background; - #if 0 /* MAC_TODO: stipple */ /* In case the same realized face is used for fringes and for something displayed in the text (e.g. face `region' on @@ -1553,9 +1464,7 @@ x_draw_fringe_bitmap (w, row, p) XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background); #endif - XFillRectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), - &gcv, - p->bx, p->by, p->nx, p->ny); + mac_erase_rectangle (window, face->gc, p->bx, p->by, p->nx, p->ny); #if 0 /* MAC_TODO: stipple */ if (!face->stipple) @@ -1566,21 +1475,24 @@ x_draw_fringe_bitmap (w, row, p) if (p->which) { unsigned short *bits = p->bits + p->dh; + XGCValues gcv; - gcv.foreground = (p->cursor_p - ? (p->overlay_p ? face->background - : f->output_data.mac->cursor_pixel) - : face->foreground); - gcv.background = face->background; - - mac_draw_bitmap (display, window, &gcv, p->x, p->y, + XGetGCValues (display, face->gc, GCForeground, &gcv); + XSetForeground (display, face->gc, + (p->cursor_p + ? (p->overlay_p ? face->background + : f->output_data.mac->cursor_pixel) + : face->foreground)); + mac_draw_bitmap (display, window, face->gc, p->x, p->y, p->wd, p->h, bits, p->overlay_p); + XSetForeground (display, face->gc, gcv.foreground); } mac_reset_clipping (display, window); } + /* This is called when starting Emacs and when restarting after suspend. When starting Emacs, no window is mapped. And nothing must be done to Emacs's own window if it is suspended (though that @@ -1599,6 +1511,7 @@ XTreset_terminal_modes () { } + /*********************************************************************** Display Iterator @@ -1786,6 +1699,7 @@ mac_encode_char (c, char2b, font_info, two_byte_p) ***********************************************************************/ + static void x_set_glyph_string_clipping P_ ((struct glyph_string *)); static void x_set_glyph_string_gc P_ ((struct glyph_string *)); static void x_draw_glyph_string_background P_ ((struct glyph_string *, @@ -1794,6 +1708,7 @@ static void x_draw_glyph_string_foreground P_ ((struct glyph_string *)); static void x_draw_composite_glyph_string_foreground P_ ((struct glyph_string *)); static void x_draw_glyph_string_box P_ ((struct glyph_string *)); static void x_draw_glyph_string P_ ((struct glyph_string *)); +static void mac_compute_glyph_string_overhangs P_ ((struct glyph_string *)); static void x_set_cursor_gc P_ ((struct glyph_string *)); static void x_set_mode_line_face_gc P_ ((struct glyph_string *)); static void x_set_mouse_face_gc P_ ((struct glyph_string *)); @@ -2045,10 +1960,7 @@ x_clear_glyph_string_rect (s, x, y, w, h) struct glyph_string *s; int x, y, w, h; { - XGCValues xgcv; - - xgcv.foreground = s->gc->background; - XFillRectangle (s->display, s->window, &xgcv, x, y, w, h); + mac_erase_rectangle (s->window, s->gc, x, y, w, h); } @@ -2636,27 +2548,29 @@ x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width, { XGCValues xgcv; - xgcv.foreground = s->face->box_color; + XGetGCValues (s->display, s->gc, GCForeground, &xgcv); + XSetForeground (s->display, s->gc, s->face->box_color); mac_set_clip_rectangle (s->display, s->window, clip_rect); /* Top. */ - XFillRectangle (s->display, s->window, &xgcv, + XFillRectangle (s->display, s->window, s->gc, left_x, top_y, right_x - left_x + 1, width); /* Left. */ if (left_p) - XFillRectangle (s->display, s->window, &xgcv, + XFillRectangle (s->display, s->window, s->gc, left_x, top_y, width, bottom_y - top_y + 1); /* Bottom. */ - XFillRectangle (s->display, s->window, &xgcv, + XFillRectangle (s->display, s->window, s->gc, left_x, bottom_y - width + 1, right_x - left_x + 1, width); /* Right. */ if (right_p) - XFillRectangle (s->display, s->window, &xgcv, + XFillRectangle (s->display, s->window, s->gc, right_x - width + 1, top_y, width, bottom_y - top_y + 1); + XSetForeground (s->display, s->gc, xgcv.foreground); mac_reset_clipping (s->display, s->window); } @@ -3075,13 +2989,7 @@ x_draw_stretch_glyph_string (s) } else #endif /* MAC_TODO */ - { - XGCValues xgcv; - XGetGCValues (s->display, gc, GCForeground | GCBackground, &xgcv); - XSetForeground (s->display, gc, xgcv.background); - XFillRectangle (s->display, s->window, gc, x, y, w, h); - XSetForeground (s->display, gc, xgcv.foreground); - } + mac_erase_rectangle (s->window, gc, x, y, w, h); mac_reset_clipping (s->display, s->window); } @@ -3397,7 +3305,6 @@ XTring_bell () } } - /* Specify how many text lines, from the top of the window, should be affected by insert-lines and delete-lines operations. @@ -3832,43 +3739,6 @@ x_get_keysym_name (keysym) -#if 0 -/* Mouse clicks and mouse movement. Rah. */ - -/* Prepare a mouse-event in *RESULT for placement in the input queue. - - If the event is a button press, then note that we have grabbed - the mouse. */ - -static Lisp_Object -construct_mouse_click (result, event, f) - struct input_event *result; - EventRecord *event; - struct frame *f; -{ - Point mouseLoc; - - result->kind = MOUSE_CLICK_EVENT; - result->code = 0; /* only one mouse button */ - result->timestamp = event->when; - result->modifiers = event->what == mouseDown ? down_modifier : up_modifier; - - mouseLoc = event->where; - - SetPortWindowPort (FRAME_MAC_WINDOW (f)); - - GlobalToLocal (&mouseLoc); - XSETINT (result->x, mouseLoc.h); - XSETINT (result->y, mouseLoc.v); - - XSETFRAME (result->frame_or_window, f); - - result->arg = Qnil; - return Qnil; -} -#endif - - /* Function to report a mouse movement to the mainstream Emacs code. The input handler calls this. @@ -3924,18 +3794,11 @@ note_mouse_movement (frame, pos) } } -/* This is used for debugging, to turn off note_mouse_highlight. */ - -int disable_mouse_highlight; - - /************************************************************************ Mouse Face ************************************************************************/ -static struct scroll_bar *x_window_to_scroll_bar (); -static void x_scroll_bar_report_motion (); static int glyph_rect P_ ((struct frame *f, int, int, Rect *)); @@ -4147,20 +4010,16 @@ static OSStatus install_scroll_bar_timer P_ ((void)); static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval)); static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode)); static void construct_scroll_bar_click P_ ((struct scroll_bar *, int, - unsigned long, struct input_event *)); static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode, Rect *)); static void x_scroll_bar_handle_press P_ ((struct scroll_bar *, ControlPartCode, - unsigned long, struct input_event *)); static void x_scroll_bar_handle_release P_ ((struct scroll_bar *, - unsigned long, struct input_event *)); static void x_scroll_bar_handle_drag P_ ((WindowPtr, struct scroll_bar *, - Point, unsigned long, - struct input_event *)); + Point, struct input_event *)); static void x_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *, int, int, int)); @@ -4259,10 +4118,9 @@ control_part_code_to_scroll_bar_part (part_code) } static void -construct_scroll_bar_click (bar, part, timestamp, bufp) +construct_scroll_bar_click (bar, part, bufp) struct scroll_bar *bar; int part; - unsigned long timestamp; struct input_event *bufp; { bufp->kind = SCROLL_BAR_CLICK_EVENT; @@ -4270,7 +4128,6 @@ construct_scroll_bar_click (bar, part, timestamp, bufp) bufp->arg = Qnil; bufp->part = part; bufp->code = 0; - bufp->timestamp = timestamp; XSETINT (bufp->x, 0); XSETINT (bufp->y, 0); bufp->modifiers = 0; @@ -4294,10 +4151,9 @@ get_control_part_bounds (ch, part_code, rect) } static void -x_scroll_bar_handle_press (bar, part_code, timestamp, bufp) +x_scroll_bar_handle_press (bar, part_code, bufp) struct scroll_bar *bar; ControlPartCode part_code; - unsigned long timestamp; struct input_event *bufp; { int part = control_part_code_to_scroll_bar_part (part_code); @@ -4307,7 +4163,7 @@ x_scroll_bar_handle_press (bar, part_code, timestamp, bufp) if (part != scroll_bar_handle) { - construct_scroll_bar_click (bar, part, timestamp, bufp); + construct_scroll_bar_click (bar, part, bufp); HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY); } @@ -4318,14 +4174,13 @@ x_scroll_bar_handle_press (bar, part_code, timestamp, bufp) } static void -x_scroll_bar_handle_release (bar, timestamp, bufp) +x_scroll_bar_handle_release (bar, bufp) struct scroll_bar *bar; - unsigned long timestamp; struct input_event *bufp; { if (last_scroll_bar_part != scroll_bar_handle || !GC_NILP (bar->dragging)) - construct_scroll_bar_click (bar, scroll_bar_end_scroll, timestamp, bufp); + construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp); HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0); set_scroll_bar_timer (kEventDurationForever); @@ -4336,11 +4191,10 @@ x_scroll_bar_handle_release (bar, timestamp, bufp) } static void -x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp) +x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp) WindowPtr win; struct scroll_bar *bar; Point mouse_pos; - unsigned long timestamp; struct input_event *bufp; { ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); @@ -4360,13 +4214,13 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp) top_range = (XINT (bar->track_height) - (r.bottom - r.top)) * (1.0 + (float) GetControlViewSize (ch) / GetControl32BitMaximum (ch)) + .5; - + if (top < 0) top = 0; if (top > top_range) top = top_range; - construct_scroll_bar_click (bar, scroll_bar_handle, timestamp, bufp); + construct_scroll_bar_click (bar, scroll_bar_handle, bufp); XSETINT (bufp->x, top); XSETINT (bufp->y, top_range); } @@ -4404,7 +4258,7 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp) else if (part != last_scroll_bar_part || scroll_bar_timer_event_posted_p) { - construct_scroll_bar_click (bar, part, timestamp, bufp); + construct_scroll_bar_click (bar, part, bufp); last_scroll_bar_part = part; HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); set_scroll_bar_timer (SCROLL_BAR_CONTINUOUS_DELAY); @@ -4475,11 +4329,11 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height) r.bottom = disp_top + disp_height; #if TARGET_API_MAC_CARBON - ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0, - kControlScrollBarProc, (long) bar); + ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height, + 0, 0, 0, kControlScrollBarProc, (long) bar); #else - ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0, - scrollBarProc, (long) bar); + ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height, + 0, 0, 0, scrollBarProc, (long) bar); #endif SET_SCROLL_BAR_CONTROL_HANDLE (bar, ch); @@ -4604,10 +4458,12 @@ x_scroll_bar_remove (bar) UNBLOCK_INPUT; } + /* Set the handle of the vertical scroll bar for WINDOW to indicate that we are displaying PORTION characters out of a total of WHOLE characters, starting at POSITION. If WINDOW has no scroll bar, create one. */ + static void XTset_vertical_scroll_bar (w, portion, whole, position) struct window *w; @@ -4684,13 +4540,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position) && XINT (bar->width) == sb_width && XINT (bar->height) == height)) { - /* Clear areas not covered by the scroll bar because it's not as - wide as the area reserved for it . This makes sure a - previous mode line display is cleared after C-x 2 C-x 1, for - example. */ - int area_width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); + /* Since toolkit scroll bars are smaller than the space reserved + for them on the frame, we have to clear "under" them. */ XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), - left, top, area_width, height, 0); + left, top, width, height, 0); #if 0 if (sb_left + sb_width >= FRAME_PIXEL_WIDTH (f)) @@ -4702,7 +4555,8 @@ XTset_vertical_scroll_bar (w, portion, whole, position) MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top); SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, disp_height); - ShowControl (ch); + if (sb_width < disp_height) + ShowControl (ch); /* Remember new settings. */ XSETINT (bar->left, sb_left); @@ -4805,6 +4659,7 @@ XTredeem_scroll_bar (window) struct window *window; { struct scroll_bar *bar; + struct frame *f; /* We can't redeem this window's scroll bar if it doesn't have one. */ if (NILP (window->vertical_scroll_bar)) @@ -4813,36 +4668,33 @@ XTredeem_scroll_bar (window) bar = XSCROLL_BAR (window->vertical_scroll_bar); /* Unlink it from the condemned list. */ - { - FRAME_PTR f = XFRAME (WINDOW_FRAME (window)); - - if (NILP (bar->prev)) - { - /* If the prev pointer is nil, it must be the first in one of - the lists. */ - if (EQ (FRAME_SCROLL_BARS (f), window->vertical_scroll_bar)) - /* It's not condemned. Everything's fine. */ - return; - else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f), - window->vertical_scroll_bar)) - FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next; - else - /* If its prev pointer is nil, it must be at the front of - one or the other! */ - abort (); - } - else - XSCROLL_BAR (bar->prev)->next = bar->next; + f = XFRAME (WINDOW_FRAME (window)); + if (NILP (bar->prev)) + { + /* If the prev pointer is nil, it must be the first in one of + the lists. */ + if (EQ (FRAME_SCROLL_BARS (f), window->vertical_scroll_bar)) + /* It's not condemned. Everything's fine. */ + return; + else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f), + window->vertical_scroll_bar)) + FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next; + else + /* If its prev pointer is nil, it must be at the front of + one or the other! */ + abort (); + } + else + XSCROLL_BAR (bar->prev)->next = bar->next; - if (! NILP (bar->next)) - XSCROLL_BAR (bar->next)->prev = bar->prev; + if (! NILP (bar->next)) + XSCROLL_BAR (bar->next)->prev = bar->prev; - bar->next = FRAME_SCROLL_BARS (f); - bar->prev = Qnil; - XSETVECTOR (FRAME_SCROLL_BARS (f), bar); - if (! NILP (bar->next)) - XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar); - } + bar->next = FRAME_SCROLL_BARS (f); + bar->prev = Qnil; + XSETVECTOR (FRAME_SCROLL_BARS (f), bar); + if (! NILP (bar->next)) + XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar); } /* Remove all scroll bars on FRAME that haven't been saved since the @@ -4981,8 +4833,8 @@ x_scroll_bar_note_movement (bar, y_pos, t) #endif /* !USE_TOOLKIT_SCROLL_BARS */ -/* Return information to the user about the current position of the - mouse on the scroll bar. */ +/* Return information to the user about the current position of the mouse + on the scroll bar. */ static void x_scroll_bar_report_motion (fp, bar_window, part, x, y, time) @@ -5500,6 +5352,7 @@ mac_get_window_bounds (f, inner, outer) } + /* Calculate the absolute position in frame F from its current recorded position values and gravity. */ @@ -5731,7 +5584,6 @@ x_set_mouse_pixel_position (f, pix_x, pix_y) UNBLOCK_INPUT; #endif } - /* focus shifting, raising and lowering. */ @@ -5758,6 +5610,7 @@ x_unfocus_frame (f) } /* Raise frame F. */ + void x_raise_frame (f) struct frame *f; @@ -5771,6 +5624,7 @@ x_raise_frame (f) } /* Lower frame F. */ + void x_lower_frame (f) struct frame *f; @@ -5796,6 +5650,53 @@ XTframe_raise_lower (f, raise_flag) /* Change of visibility. */ +static void +mac_handle_visibility_change (f) + struct frame *f; +{ + WindowPtr wp = FRAME_MAC_WINDOW (f); + int visible = 0, iconified = 0; + struct input_event buf; + + if (IsWindowVisible (wp)) + if (IsWindowCollapsed (wp)) + iconified = 1; + else + visible = 1; + + if (!f->async_visible && visible) + { + if (f->iconified) + { + /* wait_reading_process_output will notice this and update + the frame's display structures. If we were made + invisible, we should not set garbaged, because that stops + redrawing on Update events. */ + SET_FRAME_GARBAGED (f); + + EVENT_INIT (buf); + buf.kind = DEICONIFY_EVENT; + XSETFRAME (buf.frame_or_window, f); + kbd_buffer_store_event (&buf); + } + else if (! NILP (Vframe_list) && ! NILP (XCDR (Vframe_list))) + /* Force a redisplay sooner or later to update the + frame titles in case this is the second frame. */ + record_asynch_buffer_change (); + } + else if (f->async_visible && !visible) + if (iconified) + { + EVENT_INIT (buf); + buf.kind = ICONIFY_EVENT; + XSETFRAME (buf.frame_or_window, f); + kbd_buffer_store_event (&buf); + } + + f->async_visible = visible; + f->async_iconified = iconified; +} + /* This tries to wait until the frame is really visible. However, if the window manager asks the user where to position the frame, this will return before the user finishes doing that. @@ -5820,29 +5721,32 @@ x_make_frame_visible (f) before the window gets really visible. */ if (! FRAME_ICONIFIED_P (f) && ! f->output_data.mac->asked_for_visible) - x_set_offset (f, f->left_pos, f->top_pos, 0); - - f->output_data.mac->asked_for_visible = 1; - #if TARGET_API_MAC_CARBON - if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition))) - { - struct frame *sf = SELECTED_FRAME (); - if (!FRAME_MAC_P (sf)) - RepositionWindow (FRAME_MAC_WINDOW (f), NULL, - kWindowCenterOnMainScreen); - else - RepositionWindow (FRAME_MAC_WINDOW (f), - FRAME_MAC_WINDOW (sf), + if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition))) + { + struct frame *sf = SELECTED_FRAME (); + if (!FRAME_MAC_P (sf)) + RepositionWindow (FRAME_MAC_WINDOW (f), NULL, + kWindowCenterOnMainScreen); + else + RepositionWindow (FRAME_MAC_WINDOW (f), + FRAME_MAC_WINDOW (sf), #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 - kWindowCascadeStartAtParentWindowScreen + kWindowCascadeStartAtParentWindowScreen #else - kWindowCascadeOnParentWindowScreen + kWindowCascadeOnParentWindowScreen #endif - ); - x_real_positions (f, &f->left_pos, &f->top_pos); - } + ); + x_real_positions (f, &f->left_pos, &f->top_pos); + } + else #endif + x_set_offset (f, f->left_pos, f->top_pos, 0); + + f->output_data.mac->asked_for_visible = 1; + + SelectWindow (FRAME_MAC_WINDOW (f)); + CollapseWindow (FRAME_MAC_WINDOW (f), false); ShowWindow (FRAME_MAC_WINDOW (f)); } @@ -5901,9 +5805,14 @@ void x_make_frame_invisible (f) struct frame *f; { + /* A deactivate event does not occur when the last visible frame is + made invisible. So if we clear the highlight here, it will not + be rehighlighted when it is made visible. */ +#if 0 /* Don't keep the highlight on an invisible frame. */ if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f) FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0; +#endif BLOCK_INPUT; @@ -5916,17 +5825,11 @@ x_make_frame_invisible (f) HideWindow (FRAME_MAC_WINDOW (f)); - /* We can't distinguish this from iconification - just by the event that we get from the server. - So we can't win using the usual strategy of letting - FRAME_SAMPLE_VISIBILITY set this. So do it by hand, - and synchronize with the server to make sure we agree. */ - f->visible = 0; - FRAME_ICONIFIED_P (f) = 0; - f->async_visible = 0; - f->async_iconified = 0; - UNBLOCK_INPUT; + +#if !USE_CARBON_EVENTS + mac_handle_visibility_change (f); +#endif } /* Change window state from mapped to iconified. */ @@ -5935,21 +5838,37 @@ void x_iconify_frame (f) struct frame *f; { + OSErr err; + + /* A deactivate event does not occur when the last visible frame is + iconified. So if we clear the highlight here, it will not be + rehighlighted when it is deiconified. */ +#if 0 /* Don't keep the highlight on an invisible frame. */ if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f) FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0; +#endif -#if 0 - /* Review: Since window is still visible in dock, still allow updates? */ if (f->async_iconified) return; -#endif BLOCK_INPUT; - CollapseWindow (FRAME_MAC_WINDOW (f), true); + FRAME_SAMPLE_VISIBILITY (f); + + if (! FRAME_VISIBLE_P (f)) + ShowWindow (FRAME_MAC_WINDOW (f)); + + err = CollapseWindow (FRAME_MAC_WINDOW (f), true); UNBLOCK_INPUT; + + if (err != noErr) + error ("Can't notify window manager of iconification"); + +#if !USE_CARBON_EVENTS + mac_handle_visibility_change (f); +#endif } @@ -6179,9 +6098,9 @@ x_get_font_info (f, font_idx) } /* the global font name table */ -char **font_name_table = NULL; -int font_name_table_size = 0; -int font_name_count = 0; +static char **font_name_table = NULL; +static int font_name_table_size = 0; +static int font_name_count = 0; /* Alist linking character set strings to Mac text encoding and Emacs coding system. */ @@ -7338,7 +7257,7 @@ x_load_font (f, fontname, size) /* Set global flag fonts_changed_p to non-zero if the font loaded has a character with a smaller width than any other character - before, or if the font loaded has a smalle>r height than any + before, or if the font loaded has a smaller height than any other font loaded before. If this happens, it will make a glyph matrix reallocation necessary. */ fonts_changed_p |= x_compute_min_glyph_bounds (f); @@ -7435,22 +7354,6 @@ x_find_ccl_program (fontp) #define MIN_DOC_SIZE 64 #define MAX_DOC_SIZE 32767 -#if 0 -/* sleep time for WaitNextEvent */ -#define WNE_SLEEP_AT_SUSPEND 10 -#define WNE_SLEEP_AT_RESUME 1 - -/* the flag appl_is_suspended is used both for determining the sleep - time to be passed to WaitNextEvent and whether the cursor should be - drawn when updating the display. The cursor is turned off when - Emacs is suspended. Redrawing it is unnecessary and what needs to - be done depends on whether the cursor lies inside or outside the - redraw region. So we might as well skip drawing it when Emacs is - suspended. */ -static Boolean app_is_suspended = false; -static long app_sleep_time = WNE_SLEEP_AT_RESUME; -#endif - #define EXTRA_STACK_ALLOC (256 * 1024) #define ARGV_STRING_LIST_ID 129 @@ -7485,19 +7388,17 @@ Lisp_Object Vmac_pass_command_to_system; /* If Non-nil, the Mac "Control" key is passed on to the Mac Toolbox for processing before Emacs sees it. */ Lisp_Object Vmac_pass_control_to_system; +#endif /* Points to the variable `inev' in the function XTread_socket. It is - used for passing an input event to the function back from a Carbon - event handler. */ + used for passing an input event to the function back from + Carbon/Apple event handlers. */ static struct input_event *read_socket_inev = NULL; -#endif /* Set in term/mac-win.el to indicate that event loop can now generate drag and drop events. */ Lisp_Object Qmac_ready_for_drag_n_drop; -Lisp_Object drag_and_drop_file_list; - Point saved_menu_event_location; /* Apple Events */ @@ -7777,37 +7678,30 @@ do_window_update (WindowPtr win) { if (f->async_visible == 0) { + /* Update events may occur when a frame gets iconified. */ +#if 0 f->async_visible = 1; f->async_iconified = 0; SET_FRAME_GARBAGED (f); - - /* An update event is equivalent to MapNotify on X, so report - visibility changes properly. */ - if (! NILP(Vframe_list) && ! NILP (XCDR (Vframe_list))) - /* Force a redisplay sooner or later to update the - frame titles in case this is the second frame. */ - record_asynch_buffer_change (); +#endif } else - { + { Rect r; - #if TARGET_API_MAC_CARBON - { - RgnHandle region = NewRgn (); + RgnHandle region = NewRgn (); - GetPortVisibleRegion (GetWindowPort (win), region); - GetRegionBounds (region, &r); - expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); - UpdateControls (win, region); - DisposeRgn (region); - } + GetPortVisibleRegion (GetWindowPort (win), region); + GetRegionBounds (region, &r); + expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); + UpdateControls (win, region); + DisposeRgn (region); #else r = (*win->visRgn)->rgnBBox; expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); UpdateControls (win, win->visRgn); #endif - } + } } EndUpdate (win); @@ -7833,20 +7727,12 @@ static void do_app_resume () { /* Window-activate events will do the job. */ -#if 0 - app_is_suspended = false; - app_sleep_time = WNE_SLEEP_AT_RESUME; -#endif } static void do_app_suspend () { /* Window-deactivate events will do the job. */ -#if 0 - app_is_suspended = true; - app_sleep_time = WNE_SLEEP_AT_SUSPEND; -#endif } @@ -8347,6 +8233,17 @@ mac_handle_window_event (next_handler, event, data) return noErr; } break; + + case kEventWindowShown: + case kEventWindowHidden: + case kEventWindowExpanded: + case kEventWindowCollapsed: + result = CallNextEventHandler (next_handler, event); + + mac_handle_visibility_change (mac_window_to_frame (wp)); + return noErr; + + break; } return eventNotHandledErr; @@ -8400,8 +8297,6 @@ mac_handle_mouse_event (next_handler, event, data) XSETINT (read_socket_inev->x, point.h); XSETINT (read_socket_inev->y, point.v); XSETFRAME (read_socket_inev->frame_or_window, f); - read_socket_inev->timestamp = - EventTimeToTicks (GetEventTime (event)) * (1000/60); return noErr; } @@ -8424,7 +8319,11 @@ install_window_handler (window) #if USE_CARBON_EVENTS EventTypeSpec specs_window[] = {{kEventClassWindow, kEventWindowUpdate}, - {kEventClassWindow, kEventWindowBoundsChanging}}; + {kEventClassWindow, kEventWindowBoundsChanging}, + {kEventClassWindow, kEventWindowShown}, + {kEventClassWindow, kEventWindowHidden}, + {kEventClassWindow, kEventWindowExpanded}, + {kEventClassWindow, kEventWindowCollapsed}}; EventTypeSpec specs_mouse[] = {{kEventClassMouse, kEventMouseWheelMoved}}; static EventHandlerUPP handle_window_eventUPP = NULL; static EventHandlerUPP handle_mouse_eventUPP = NULL; @@ -8475,11 +8374,6 @@ do_ae_open_application(const AppleEvent *pae, AppleEvent *preply, long prefcon) } -/* Defined in mac.c. */ -extern int -path_from_vol_dir_name (char *, int, short, long, char *); - - /* Called when we receive an AppleEvent with an ID of "kAEOpenDocuments". This routine gets the direct parameter, extracts the FSSpecs in it, and puts their names on a list. */ @@ -8503,6 +8397,9 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) DescType actual_type; Size actual_size; SelectionRange position; + Lisp_Object file_list = Qnil; + + xassert (read_socket_inev); err = AEGetParamDesc (message, keyDirectObject, typeAEList, &the_desc); if (err != noErr) @@ -8510,10 +8407,10 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) err = AEGetParamPtr (message, keyAEPosition, typeChar, &actual_type, &position, sizeof(SelectionRange), &actual_size); if (err == noErr) - drag_and_drop_file_list = Fcons (list3 (make_number (position.lineNum + 1), - make_number (position.startRange + 1), - make_number (position.endRange + 1)), - drag_and_drop_file_list); + file_list = Fcons (list3 (make_number (position.lineNum + 1), + make_number (position.startRange + 1), + make_number (position.endRange + 1)), + file_list); /* Check to see that we got all of the required parameters from the event descriptor. For an 'odoc' event this should just be the @@ -8567,12 +8464,49 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) sizeof (unix_path_name) - 1) == noErr) #endif /* x-dnd functions expect undecoded filenames. */ - drag_and_drop_file_list = - Fcons (make_unibyte_string (unix_path_name, - strlen (unix_path_name)), - drag_and_drop_file_list); + file_list = Fcons (make_unibyte_string (unix_path_name, + strlen (unix_path_name)), + file_list); } } + + /* Build a DRAG_N_DROP_EVENT type event as is done in + constuct_drag_n_drop in w32term.c. */ + if (!NILP (file_list)) + { + struct frame *f = mac_focus_frame (&one_mac_display_info); + WindowPtr wp; + Lisp_Object frame; + + read_socket_inev->kind = DRAG_N_DROP_EVENT; + read_socket_inev->code = 0; + read_socket_inev->modifiers = 0; + + XSETINT (read_socket_inev->x, 0); + XSETINT (read_socket_inev->y, 0); + + XSETFRAME (frame, f); + read_socket_inev->frame_or_window = Fcons (frame, file_list); + +#if 0 + /* Regardless of whether Emacs was suspended or in the + foreground, ask it to redraw its entire screen. Otherwise + parts of the screen can be left in an inconsistent + state. */ + wp = FRAME_MAC_WINDOW (f); + if (wp) +#if TARGET_API_MAC_CARBON + { + Rect r; + + GetWindowPortBounds (wp, &r); + InvalWindowRect (wp, &r); + } +#else /* not TARGET_API_MAC_CARBON */ + InvalRect (&(wp->portRect)); +#endif /* not TARGET_API_MAC_CARBON */ +#endif + } } error_exit: @@ -8665,11 +8599,12 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon, ItemReference theItem; HFSFlavor data; Size size = sizeof (HFSFlavor); + Lisp_Object file_list; if (GetFrontWindowOfClass (kMovableModalWindowClass, false)) return dragNotAcceptedErr; - drag_and_drop_file_list = Qnil; + file_list = Qnil; GetDragMouse (theDrag, &mouse, 0L); CountDragItems (theDrag, &items); for (index = 1; index <= items; index++) @@ -8695,15 +8630,14 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon, sizeof (unix_path_name) - 1) == noErr) #endif /* x-dnd functions expect undecoded filenames. */ - drag_and_drop_file_list = - Fcons (make_unibyte_string (unix_path_name, - strlen (unix_path_name)), - drag_and_drop_file_list); + file_list = Fcons (make_unibyte_string (unix_path_name, + strlen (unix_path_name)), + file_list); } } /* If there are items in the list, construct an event and post it to the queue like an interrupt using kbd_buffer_store_event. */ - if (!NILP (drag_and_drop_file_list)) + if (!NILP (file_list)) { struct input_event event; Lisp_Object frame; @@ -8720,7 +8654,7 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon, XSETINT (event.x, mouse.h); XSETINT (event.y, mouse.v); XSETFRAME (frame, f); - event.frame_or_window = Fcons (frame, drag_and_drop_file_list); + event.frame_or_window = Fcons (frame, file_list); event.arg = Qnil; /* Post to the interrupt queue */ kbd_buffer_store_event (&event); @@ -8979,6 +8913,7 @@ XTread_socket (sd, expected, hold_quit) { int do_help = 0; struct frame *f; + unsigned long timestamp; /* It is necessary to set this (additional) argument slot of an event to nil because keyboard.c protects incompletely @@ -8989,6 +8924,12 @@ XTread_socket (sd, expected, hold_quit) inev.arg = Qnil; #if USE_CARBON_EVENTS + timestamp = GetEventTime (eventRef) / kEventDurationMillisecond; +#else + timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ +#endif + +#if USE_CARBON_EVENTS /* Handle new events */ if (!mac_convert_event_ref (eventRef, &er)) { @@ -9089,8 +9030,6 @@ XTread_socket (sd, expected, hold_quit) #endif XSETINT (inev.x, mouse_loc.h); XSETINT (inev.y, mouse_loc.v); - inev.timestamp = er.when * (1000 / 60); - /* ticks to milliseconds */ if (dpyinfo->grabbed && tracked_scroll_bar || ch != 0 @@ -9124,10 +9063,9 @@ XTread_socket (sd, expected, hold_quit) &er, &inev); else if (er.what == mouseDown) x_scroll_bar_handle_press (bar, control_part_code, - inev.timestamp, &inev); + &inev); else - x_scroll_bar_handle_release (bar, inev.timestamp, - &inev); + x_scroll_bar_handle_release (bar, &inev); #else /* not USE_TOOLKIT_SCROLL_BARS */ x_scroll_bar_handle_click (bar, control_part_code, &er, &inev); @@ -9301,8 +9239,7 @@ XTread_socket (sd, expected, hold_quit) if (dpyinfo->grabbed && tracked_scroll_bar) #ifdef USE_TOOLKIT_SCROLL_BARS x_scroll_bar_handle_drag (wp, tracked_scroll_bar, - mouse_pos, er.when * (1000 / 60), - &inev); + mouse_pos, &inev); #else /* not USE_TOOLKIT_SCROLL_BARS */ x_scroll_bar_note_movement (tracked_scroll_bar, mouse_pos.v @@ -9390,11 +9327,10 @@ XTread_socket (sd, expected, hold_quit) EVENT_INIT (event); event.kind = NO_EVENT; - x_scroll_bar_handle_release (tracked_scroll_bar, - er.when * (1000 / 60), - &event); + x_scroll_bar_handle_release (tracked_scroll_bar, &event); if (event.kind != NO_EVENT) { + event.timestamp = timestamp; kbd_buffer_store_event_hold (&event, hold_quit); count++; } @@ -9470,6 +9406,7 @@ XTread_socket (sd, expected, hold_quit) event.kind = LANGUAGE_CHANGE_EVENT; event.arg = Qnil; event.code = current_key_script; + event.timestamp = timestamp; kbd_buffer_store_event (&event); count++; } @@ -9534,58 +9471,18 @@ XTread_socket (sd, expected, hold_quit) #else inev.modifiers = mac_to_emacs_modifiers (er.modifiers); #endif + inev.modifiers |= (extra_keyboard_modifiers + & (meta_modifier | alt_modifier + | hyper_modifier | super_modifier)); XSETFRAME (inev.frame_or_window, mac_focus_frame (dpyinfo)); - inev.timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ break; case kHighLevelEvent: - drag_and_drop_file_list = Qnil; - - AEProcessAppleEvent(&er); - - /* Build a DRAG_N_DROP_EVENT type event as is done in - constuct_drag_n_drop in w32term.c. */ - if (!NILP (drag_and_drop_file_list)) - { - struct frame *f = mac_focus_frame (dpyinfo); - WindowPtr wp; - Lisp_Object frame; - - inev.kind = DRAG_N_DROP_EVENT; - inev.code = 0; - inev.timestamp = er.when * (1000 / 60); - /* ticks to milliseconds */ -#if USE_CARBON_EVENTS - inev.modifiers = mac_event_to_emacs_modifiers (eventRef); -#else - inev.modifiers = mac_to_emacs_modifiers (er.modifiers); -#endif - - XSETINT (inev.x, 0); - XSETINT (inev.y, 0); - - XSETFRAME (frame, f); - inev.frame_or_window = Fcons (frame, drag_and_drop_file_list); - -#if 0 - /* Regardless of whether Emacs was suspended or in the - foreground, ask it to redraw its entire screen. - Otherwise parts of the screen can be left in an - inconsistent state. */ - wp = FRAME_MAC_WINDOW (f); - if (wp) -#if TARGET_API_MAC_CARBON - { - Rect r; + read_socket_inev = &inev; + AEProcessAppleEvent (&er); + read_socket_inev = NULL; + break; - GetWindowPortBounds (wp, &r); - InvalWindowRect (wp, &r); - } -#else /* not TARGET_API_MAC_CARBON */ - InvalRect (&(wp->portRect)); -#endif /* not TARGET_API_MAC_CARBON */ -#endif - } default: break; } @@ -9595,6 +9492,7 @@ XTread_socket (sd, expected, hold_quit) if (inev.kind != NO_EVENT) { + inev.timestamp = timestamp; kbd_buffer_store_event_hold (&inev, hold_quit); count++; } @@ -9634,6 +9532,29 @@ XTread_socket (sd, expected, hold_quit) pending_autoraise_frame = 0; } +#if !USE_CARBON_EVENTS + /* Check which frames are still visible. We do this here because + there doesn't seem to be any direct notification from the Window + Manager that the visibility of a window has changed (at least, + not in all cases). */ + { + Lisp_Object tail, frame; + + FOR_EACH_FRAME (tail, frame) + { + struct frame *f = XFRAME (frame); + + /* The tooltip has been drawn already. Avoid the + SET_FRAME_GARBAGED in mac_handle_visibility_change. */ + if (EQ (frame, tip_frame)) + continue; + + if (FRAME_MAC_P (f)) + mac_handle_visibility_change (f); + } + } +#endif + UNBLOCK_INPUT; return count; } @@ -10067,7 +9988,7 @@ mac_check_for_quit_char () kbd_buffer_store_event (&e); } } -#endif /* MAC_OSX */ +#endif /* MAC_OSX */ static void init_menu_bar () @@ -10171,7 +10092,6 @@ mac_initialize () bottom */ baud_rate = 19200; - x_noop_count = 0; last_tool_bar_item = -1; any_help_event_p = 0; @@ -10243,12 +10163,6 @@ syms_of_macterm () staticpro (&last_mouse_scroll_bar); last_mouse_scroll_bar = Qnil; - staticpro (&Qvendor_specific_keysyms); - Qvendor_specific_keysyms = intern ("vendor-specific-keysyms"); - - staticpro (&last_mouse_press_frame); - last_mouse_press_frame = Qnil; - Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop"); staticpro (&Qmac_ready_for_drag_n_drop); @@ -10260,14 +10174,6 @@ syms_of_macterm () Vx_toolkit_scroll_bars = Qnil; #endif - DEFVAR_BOOL ("x-use-underline-position-properties", - &x_use_underline_position_properties, - doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties. -nil means ignore them. If you encounter fonts with bogus -UNDERLINE_POSITION font properties, for example 7x13 on XFree prior -to 4.1, set this to nil. */); - x_use_underline_position_properties = 0; - staticpro (&last_mouse_motion_frame); last_mouse_motion_frame = Qnil; @@ -10292,7 +10198,7 @@ useful for non-standard keyboard layouts. */); doc: /* t means that when the option-key is held down while pressing the mouse button, the click will register as mouse-2 and while the command-key is held down, the click will register as mouse-3. -'reverse means that the the option-key will register for mouse-3 +'reverse means that the option-key will register for mouse-3 and the command-key will register for mouse-2. nil means that no emulation should be done and the modifiers should be placed on the mouse-1 event. */); diff --git a/src/macterm.h b/src/macterm.h index ea5f7db6084..948fa486aba 100644 --- a/src/macterm.h +++ b/src/macterm.h @@ -1,5 +1,6 @@ /* Display module for Mac OS. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -38,11 +39,6 @@ Boston, MA 02110-1301, USA. */ #define BLACK_PIX_DEFAULT(f) RGB_TO_ULONG(0,0,0) #define WHITE_PIX_DEFAULT(f) RGB_TO_ULONG(255,255,255) -/* A black pixel in a mask bitmap/pixmap means ``draw a source - pixel''. A white pixel means ``retain the current pixel''. */ -#define PIX_MASK_DRAW(f) BLACK_PIX_DEFAULT(f) -#define PIX_MASK_RETAIN(f) WHITE_PIX_DEFAULT(f) - #define FONT_WIDTH(f) ((f)->max_bounds.width) #define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) #define FONT_BASE(f) ((f)->ascent) @@ -149,7 +145,7 @@ struct mac_display_info int smallest_font_height; /* Reusable Graphics Context for drawing a cursor in a non-default face. */ - XGCValues *scratch_cursor_gc; + GC scratch_cursor_gc; /* These variables describe the range of text currently shown in its mouse-face, together with the window they apply to. As long as @@ -388,7 +384,7 @@ struct mac_output { /* Relief GCs, colors etc. */ struct relief { - XGCValues *gc; + GC gc; unsigned long pixel; int allocated_p; } @@ -598,6 +594,8 @@ EXFUN (Fx_display_color_p, 1); EXFUN (Fx_display_grayscale_p, 1); EXFUN (Fx_display_planes, 1); extern void x_free_gcs P_ ((struct frame *)); +extern int XParseGeometry P_ ((char *, int *, int *, unsigned int *, + unsigned int *)); /* Defined in macterm.c. */ @@ -611,6 +609,7 @@ extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowPtr, char *, unsigned long, unsigned long, unsigned int)); extern void XFreePixmap P_ ((Display *, Pixmap)); +extern GC XCreateGC P_ ((Display *, Window, unsigned long, XGCValues *)); extern void XSetForeground P_ ((Display *, GC, unsigned long)); extern void XSetBackground P_ ((Display *, GC, unsigned long)); extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long)); diff --git a/src/makefile.w32-in b/src/makefile.w32-in index a4084046fac..1ee232949d9 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -1,5 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. -# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # diff --git a/src/marker.c b/src/marker.c index d6029c79c9d..11b077761e5 100644 --- a/src/marker.c +++ b/src/marker.c @@ -1,5 +1,6 @@ /* Markers: examining, setting and deleting. - Copyright (C) 1985, 1997, 1998, 2003 Free Software Foundation, Inc. + Copyright (C) 1985, 1997, 1998, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/md5.c b/src/md5.c index 039213fd76b..4f055447eac 100644 --- a/src/md5.c +++ b/src/md5.c @@ -1,6 +1,7 @@ /* Functions to compute MD5 message digest of files or memory blocks. according to the definition of MD5 in RFC 1321 from April 1992. - Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of the GNU Emacs. The GNU C Library is free software; you can redistribute it and/or diff --git a/src/md5.h b/src/md5.h index 229da8daa8d..adcc6bf48f6 100644 --- a/src/md5.h +++ b/src/md5.h @@ -1,6 +1,7 @@ /* Declaration of functions and data types used for MD5 sum computing library functions. - Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. The GNU C Library is free software; you can redistribute it and/or diff --git a/src/mem-limits.h b/src/mem-limits.h index aac8a396172..d7ac6a3e366 100644 --- a/src/mem-limits.h +++ b/src/mem-limits.h @@ -1,5 +1,6 @@ /* Includes for memory limit warnings. - Copyright (C) 1990, 93, 94, 95, 1996, 2004 Free Software Foundation, Inc. + Copyright (C) 1990, 1993, 1994, 1995, 1996, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/minibuf.c b/src/minibuf.c index e04be1465ed..8f07a4603c4 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1,6 +1,6 @@ /* Minibuffer input and completion. - Copyright (C) 1985,86,93,94,95,96,97,98,99,2000,01,03,04,05 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -350,7 +350,7 @@ BUFFER can be a buffer or a buffer name. */) DEFUN ("minibuffer-prompt-end", Fminibuffer_prompt_end, Sminibuffer_prompt_end, 0, 0, 0, doc: /* Return the buffer position of the end of the minibuffer prompt. -Return (point-min) if current buffer is not a mini-buffer. */) +Return (point-min) if current buffer is not a minibuffer. */) () { /* This function is written to be most efficient when there's a prompt. */ @@ -1019,7 +1019,7 @@ DEFUN ("eval-minibuffer", Feval_minibuffer, Seval_minibuffer, 1, 2, 0, Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS is a string to insert in the minibuffer before reading. \(INITIAL-CONTENTS can also be a cons of a string and an integer. Such -arguments are used as in `read-from-minibuffer') */) +arguments are used as in `read-from-minibuffer'.) */) (prompt, initial_contents) Lisp_Object prompt, initial_contents; { @@ -1763,7 +1763,7 @@ the values STRING, PREDICATE and `lambda'. */) || NILP (alist)) { tem = Fassoc_string (string, alist, completion_ignore_case ? Qt : Qnil); - if NILP (tem) + if (NILP (tem)) return Qnil; } else if (VECTORP (alist)) diff --git a/src/mktime.c b/src/mktime.c index c61f1463564..025f54d95c2 100644 --- a/src/mktime.c +++ b/src/mktime.c @@ -1,5 +1,6 @@ /* Convert a `struct tm' to a time_t value. - Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Contributed by Paul Eggert (eggert@twinsun.com). NOTE: The canonical source of this file is maintained with the GNU C Library. diff --git a/src/msdos.c b/src/msdos.c index 07ee522f98f..4ea4ab0cf1d 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -1,6 +1,6 @@ /* MS-DOS specific C utilities. -*- coding: raw-text -*- - Copyright (C) 1993, 94, 95, 96, 97, 1999, 2000, 01, 2003 - Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/msdos.h b/src/msdos.h index 7f2f013fd13..b6c6aca1493 100644 --- a/src/msdos.h +++ b/src/msdos.h @@ -1,5 +1,6 @@ /* MS-DOS specific C utilities, interface. - Copyright (C) 1993, 2001 Free Software Foundation, Inc. + Copyright (C) 1993, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/prefix-args.c b/src/prefix-args.c index 8c4043f83cb..c2f6303786f 100644 --- a/src/prefix-args.c +++ b/src/prefix-args.c @@ -1,5 +1,5 @@ /* prefix-args.c - echo each argument, prefixed by a string. - Copyright (C) 1992 Free Software Foundation, Inc. + Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/print.c b/src/print.c index 6150ff2efe6..65c48b6d82b 100644 --- a/src/print.c +++ b/src/print.c @@ -1,6 +1,7 @@ /* Lisp object printing and output streams. - Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, - 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/process.c b/src/process.c index 3879821c2fa..f23b8368f6d 100644 --- a/src/process.c +++ b/src/process.c @@ -1,6 +1,7 @@ /* Asynchronous subprocess control for GNU Emacs. - Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1998, 1999, - 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, + 1996, 1998, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -293,7 +294,10 @@ static Lisp_Object Vprocess_adaptive_read_buffering; #include "sysselect.h" -extern int keyboard_bit_set P_ ((SELECT_TYPE *)); +static int keyboard_bit_set P_ ((SELECT_TYPE *)); +static void deactivate_process P_ ((Lisp_Object)); +static void status_notify P_ ((struct Lisp_Process *)); +static int read_process_output P_ ((Lisp_Object, int)); /* If we support a window system, turn on the code to poll periodically to detect C-g. It isn't actually used when doing interrupt input. */ @@ -390,9 +394,9 @@ static char pty_name[24]; /* Compute the Lisp form of the process status, p->status, from the numeric status that was returned by `wait'. */ -Lisp_Object status_convert (); +static Lisp_Object status_convert (); -void +static void update_status (p) struct Lisp_Process *p; { @@ -406,7 +410,7 @@ update_status (p) /* Convert a process status word in Unix format to the list that we use internally. */ -Lisp_Object +static Lisp_Object status_convert (w) WAITTYPE w; { @@ -425,7 +429,7 @@ status_convert (w) /* Given a status-list, extract the three pieces of information and store them individually through the three pointers. */ -void +static void decode_status (l, symbol, code, coredump) Lisp_Object l; Lisp_Object *symbol; @@ -504,7 +508,7 @@ status_message (p) The file name of the terminal corresponding to the pty is left in the variable pty_name. */ -int +static int allocate_pty () { register int c, i; @@ -589,7 +593,7 @@ allocate_pty () } #endif /* HAVE_PTYS */ -Lisp_Object +static Lisp_Object make_process (name) Lisp_Object name; { @@ -633,7 +637,7 @@ make_process (name) return val; } -void +static void remove_process (proc) register Lisp_Object proc; { @@ -767,23 +771,27 @@ nil, indicating the current buffer's process. */) (process) register Lisp_Object process; { + register struct Lisp_Process *p; + process = get_process (process); - XPROCESS (process)->raw_status_low = Qnil; - XPROCESS (process)->raw_status_high = Qnil; - if (NETCONN_P (process)) + p = XPROCESS (process); + + p->raw_status_low = Qnil; + p->raw_status_high = Qnil; + if (NETCONN1_P (p)) { - XPROCESS (process)->status = Fcons (Qexit, Fcons (make_number (0), Qnil)); - XSETINT (XPROCESS (process)->tick, ++process_tick); - status_notify (); + p->status = Fcons (Qexit, Fcons (make_number (0), Qnil)); + XSETINT (p->tick, ++process_tick); + status_notify (p); } - else if (XINT (XPROCESS (process)->infd) >= 0) + else if (XINT (p->infd) >= 0) { Fkill_process (process, Qnil); /* Do this now, since remove_process will make sigchld_handler do nothing. */ - XPROCESS (process)->status + p->status = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil)); - XSETINT (XPROCESS (process)->tick, ++process_tick); - status_notify (); + XSETINT (p->tick, ++process_tick); + status_notify (p); } remove_process (process); return Qnil; @@ -1237,7 +1245,7 @@ IP address. Returns nil if format of ADDRESS is invalid. */) } #endif -Lisp_Object +static Lisp_Object list_processes_1 (query_only) Lisp_Object query_only; { @@ -1707,7 +1715,7 @@ start_process_unwind (proc) return Qnil; } -void +static void create_process_1 (timer) struct atimer *timer; { @@ -2530,7 +2538,7 @@ OPTION is not a supported option, return nil instead; otherwise return t. */) /* A version of request_sigio suitable for a record_unwind_protect. */ -Lisp_Object +static Lisp_Object unwind_request_sigio (dummy) Lisp_Object dummy; { @@ -4221,7 +4229,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display, /* It's okay for us to do this and then continue with the loop, since timeout has already been zeroed out. */ clear_waiting_for_input (); - status_notify (); + status_notify (NULL); } } @@ -4739,7 +4747,7 @@ read_process_output_error_handler (error) The characters read are decoded according to PROC's coding-system for decoding. */ -int +static int read_process_output (proc, channel) Lisp_Object proc; register int channel; @@ -5130,7 +5138,7 @@ send_process_trap () This function can evaluate Lisp code and can garbage collect. */ -void +static void send_process (proc, buf, len, object) volatile Lisp_Object proc; unsigned char *volatile buf; @@ -5724,7 +5732,7 @@ process_send_signal (process, signo, current_group, nomsg) p->status = Qrun; XSETINT (p->tick, ++process_tick); if (!nomsg) - status_notify (); + status_notify (NULL); break; #endif /* ! defined (SIGCONT) */ case SIGINT: @@ -6392,8 +6400,9 @@ exec_sentinel (proc, reason) This is usually done while Emacs is waiting for keyboard input but can be done at other times. */ -void -status_notify () +static void +status_notify (deleting_process) + struct Lisp_Process *deleting_process; { register Lisp_Object proc, buffer; Lisp_Object tail, msg; @@ -6429,6 +6438,7 @@ status_notify () && ! EQ (p->status, Qlisten) && ! EQ (p->command, Qt) /* Network process not stopped. */ && XINT (p->infd) >= 0 + && p != deleting_process && read_process_output (proc, XINT (p->infd)) > 0); buffer = p->buffer; @@ -6624,7 +6634,7 @@ delete_keyboard_wait_descriptor (desc) /* Return nonzero if *MASK has a bit set that corresponds to one of the keyboard input descriptors. */ -int +static int keyboard_bit_set (mask) SELECT_TYPE *mask; { diff --git a/src/process.h b/src/process.h index a58b08a197e..cadc9b7031c 100644 --- a/src/process.h +++ b/src/process.h @@ -1,5 +1,6 @@ /* Definitions for asynchronous process control in GNU Emacs. - Copyright (C) 1985, 1994 Free Software Foundation, Inc. + Copyright (C) 1985, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/puresize.h b/src/puresize.h index 2e7637c6724..7951f7ecbf2 100644 --- a/src/puresize.h +++ b/src/puresize.h @@ -1,5 +1,5 @@ /* How much read-only Lisp storage a dumped Emacs needs. - Copyright (C) 1993, 2002 Free Software Foundation, Inc. + Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/ralloc.c b/src/ralloc.c index 824fb536fc1..35a8cb9c58a 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -1,5 +1,6 @@ /* Block-relocating memory allocator. - Copyright (C) 1993, 1995, 2000 Free Software Foundation, Inc. + Copyright (C) 1993, 1995, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/regex.c b/src/regex.c index c82bdb0edd9..fd18864110b 100644 --- a/src/regex.c +++ b/src/regex.c @@ -2,7 +2,8 @@ 0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993,94,95,96,97,98,99,2000,04 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 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 diff --git a/src/regex.h b/src/regex.h index 89532b7ee9f..557700dc93d 100644 --- a/src/regex.h +++ b/src/regex.h @@ -1,7 +1,8 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985,89,90,91,92,93,95,2000 Free Software Foundation, Inc. + Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 2000, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. 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 diff --git a/src/region-cache.c b/src/region-cache.c index 22eac35ca86..d49278eb886 100644 --- a/src/region-cache.c +++ b/src/region-cache.c @@ -1,6 +1,6 @@ /* Caching facts about regions of the buffer, for optimization. - Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1995 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/region-cache.h b/src/region-cache.h index 5c27d00740f..51d2ceb1e62 100644 --- a/src/region-cache.h +++ b/src/region-cache.h @@ -1,5 +1,6 @@ /* Header file: Caching facts about regions of the buffer, for optimization. - Copyright (C) 1985, 1986, 1993, 1995 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h index 8fe7bd8fa24..eedfe3d15be 100644 --- a/src/s/aix3-1.h +++ b/src/s/aix3-1.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on IBM AIX version 3.1 - Copyright (C) 1985, 1986, 1990, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1990, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/bsd4-1.h b/src/s/bsd4-1.h index 7316841e212..f36bc016ca8 100644 --- a/src/s/bsd4-1.h +++ b/src/s/bsd4-1.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on bsd 4.1. - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/bsd4-2.h b/src/s/bsd4-2.h index 386ab1bbbe5..f4e60b0fdbd 100644 --- a/src/s/bsd4-2.h +++ b/src/s/bsd4-2.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on bsd 4.2 - Copyright (C) 1985, 1986, 1994 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h index bbb2715bdf7..37d6a63e984 100644 --- a/src/s/bsd4-3.h +++ b/src/s/bsd4-3.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on bsd 4.3 - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/cxux.h b/src/s/cxux.h index 2af6d006095..118d93d579c 100644 --- a/src/s/cxux.h +++ b/src/s/cxux.h @@ -1,5 +1,5 @@ /* Header file for Harris CXUX. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/cygwin.h b/src/s/cygwin.h index 0094ef793dc..921cff35bc7 100644 --- a/src/s/cygwin.h +++ b/src/s/cygwin.h @@ -1,7 +1,8 @@ /* Template for system description header files. This file describes the parameters that system description files should define or not. - Copyright (C) 1985, 1986, 1992, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -123,8 +124,6 @@ Boston, MA 02110-1301, USA. */ emacs lisp pointers */ #define DATA_SEG_BITS 0x20000000 #define LINKER $(CC) -Wl,--image-base,DATA_SEG_BITS -/* gettext.h is in a strange place */ -#define C_SWITCH_SYSTEM -I/usr/share/gettext /* Use terminfo instead of termcap. Fewer environment variables to go wrong, more terminal types. */ diff --git a/src/s/darwin.h b/src/s/darwin.h index fea5b4c282d..fad445d7557 100644 --- a/src/s/darwin.h +++ b/src/s/darwin.h @@ -1,5 +1,5 @@ /* System description header file for Darwin (Mac OS X). - Copyright (C) 2001, 02, 2004 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/dgux.h b/src/s/dgux.h index fb01b539f27..82956a900d9 100644 --- a/src/s/dgux.h +++ b/src/s/dgux.h @@ -1,6 +1,7 @@ /* Definitions file for GNU Emacs running on Data General's DG/UX version 4.32 upto and including 5.4.1. - Copyright (C) 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1994, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/dgux4.h b/src/s/dgux4.h index d866d63e6ce..35834ad4da2 100644 --- a/src/s/dgux4.h +++ b/src/s/dgux4.h @@ -1,6 +1,6 @@ /* Definitions file for GNU Emacs running on Data General's DG/UX Release 4.10 and above. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/dgux5-4-3.h b/src/s/dgux5-4-3.h index a95420595a1..7ec88a435eb 100644 --- a/src/s/dgux5-4-3.h +++ b/src/s/dgux5-4-3.h @@ -1,6 +1,6 @@ /* Definitions file for GNU Emacs running on Data General's DG/UX version 5.4 Release 3.00 and above. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/dgux5-4r2.h b/src/s/dgux5-4r2.h index c2c7461a204..3f059c32c24 100644 --- a/src/s/dgux5-4r2.h +++ b/src/s/dgux5-4r2.h @@ -1,6 +1,6 @@ /* Definitions file for GNU Emacs running on Data General's DG/UX 5.4 Release 2.xx systems. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/freebsd.h b/src/s/freebsd.h index dc26eb9f399..83949fd2819 100644 --- a/src/s/freebsd.h +++ b/src/s/freebsd.h @@ -1,8 +1,8 @@ /* System description header for FreeBSD systems. This file describes the parameters that system description files should define or not. - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/gnu-linux.h b/src/s/gnu-linux.h index 2563496af5c..f87dcaded1b 100644 --- a/src/s/gnu-linux.h +++ b/src/s/gnu-linux.h @@ -1,5 +1,6 @@ /* This file is the configuration file for Linux-based GNU systems - Copyright (C) 1985, 86, 92, 94, 96, 1999, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1992, 1994, 1996, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/gnu.h b/src/s/gnu.h index 79e5a88a7b9..0da816c32d3 100644 --- a/src/s/gnu.h +++ b/src/s/gnu.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on the GNU Hurd. - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/hpux.h b/src/s/hpux.h index 665b1f3063d..30ade71bf20 100644 --- a/src/s/hpux.h +++ b/src/s/hpux.h @@ -1,6 +1,7 @@ /* Definitions file for GNU Emacs running on HPUX release 7.0. Based on AT&T System V.2. - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/iris3-5.h b/src/s/iris3-5.h index 8815bb56f39..a3b6c8ad0ad 100644 --- a/src/s/iris3-5.h +++ b/src/s/iris3-5.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Silicon Graphics 3.5 - Copyright (C) 1987, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h index 64187428c29..1d8b96cc23f 100644 --- a/src/s/iris3-6.h +++ b/src/s/iris3-6.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Silicon Graphics system 3.6. - Copyright (C) 1987, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/irix3-3.h b/src/s/irix3-3.h index 60dd6d49c79..a613779913a 100644 --- a/src/s/irix3-3.h +++ b/src/s/irix3-3.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Silicon Graphics Irix system 3.3. - Copyright (C) 1987, 1990, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 1990, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/lynxos.h b/src/s/lynxos.h index 55de8cba6f9..614735d290d 100644 --- a/src/s/lynxos.h +++ b/src/s/lynxos.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on LynxOS-3.0.1 - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h index c4697db34db..b1989318fba 100644 --- a/src/s/ms-w32.h +++ b/src/s/ms-w32.h @@ -1,5 +1,6 @@ /* System description file for Windows NT. - Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/msdos.h b/src/s/msdos.h index 5a0cbba5959..9469b33227f 100644 --- a/src/s/msdos.h +++ b/src/s/msdos.h @@ -1,6 +1,7 @@ /* System description file for MS-DOS - Copyright (C) 1993, 1996, 1997, 2001 Free Software Foundation, Inc. + Copyright (C) 1993, 1996, 1997, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/newsos5.h b/src/s/newsos5.h index c674bfc559d..d2bed2189be 100644 --- a/src/s/newsos5.h +++ b/src/s/newsos5.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Sony's NEWS-OS 5.0.2 - Copyright (C) 1992, 1994 Free Software Foundation, Inc. + Copyright (C) 1992, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/nextstep.h b/src/s/nextstep.h index 9253e6acffc..0c0b01c10bd 100644 --- a/src/s/nextstep.h +++ b/src/s/nextstep.h @@ -1,5 +1,6 @@ /* Configuration file for the NeXTstep system. - Copyright (C) 1990, 1995 Free Software Foundation, Inc. + Copyright (C) 1990, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/ptx.h b/src/s/ptx.h index e490ba659a2..1411dee70d8 100644 --- a/src/s/ptx.h +++ b/src/s/ptx.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on Sequent DYNIX/ptx 1.x/2.x - Copyright (C) 1987, 1990, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 1990, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/riscix1-1.h b/src/s/riscix1-1.h index ccfa5704b85..aee5d6ddc58 100644 --- a/src/s/riscix1-1.h +++ b/src/s/riscix1-1.h @@ -1,5 +1,5 @@ /* Definitions file for GNU Emacs running on RISCiX 1.1 (bsd 4.3) - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/riscix12.h b/src/s/riscix12.h index b0e00e780cc..625b667d7b5 100644 --- a/src/s/riscix12.h +++ b/src/s/riscix12.h @@ -1,5 +1,5 @@ /* Definitions file for GNU Emacs running on RISCiX 1.2 (bsd 4.3) - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/rtu.h b/src/s/rtu.h index 92afbaf6328..b2d0c16e59a 100644 --- a/src/s/rtu.h +++ b/src/s/rtu.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on RTU 3.0, ucb universe. - Copyright (C) 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/sco4.h b/src/s/sco4.h index 757eb0b57b0..627007e9a52 100644 --- a/src/s/sco4.h +++ b/src/s/sco4.h @@ -1,5 +1,6 @@ /* System description file for SCO 3.2v4. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/sco5.h b/src/s/sco5.h index e490a91b608..9fbbf072a12 100644 --- a/src/s/sco5.h +++ b/src/s/sco5.h @@ -1,5 +1,5 @@ /* System description file for SCO 3.2v5. - Copyright (C) 1996, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/template.h b/src/s/template.h index 5ef1049164d..0610e16473a 100644 --- a/src/s/template.h +++ b/src/s/template.h @@ -1,7 +1,8 @@ /* Template for system description header files. This file describes the parameters that system description files should define or not. - Copyright (C) 1985, 1986, 1992, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/umax.h b/src/s/umax.h index 1741b1d04e3..f4923f33053 100644 --- a/src/s/umax.h +++ b/src/s/umax.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on UMAX 4.2 - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/unipl5-2.h b/src/s/unipl5-2.h index 05d162239a8..cca703adb82 100644 --- a/src/s/unipl5-2.h +++ b/src/s/unipl5-2.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.2 - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/usg5-0.h b/src/s/usg5-0.h index 21b469dcd55..5f9943f8477 100644 --- a/src/s/usg5-0.h +++ b/src/s/usg5-0.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on AT&T's System V.0 - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/usg5-2-2.h b/src/s/usg5-2-2.h index dff90efb225..b090f3c32b6 100644 --- a/src/s/usg5-2-2.h +++ b/src/s/usg5-2-2.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on AT&T's System V Release 2.2 - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/usg5-2.h b/src/s/usg5-2.h index 0da477276fd..e63bddfc060 100644 --- a/src/s/usg5-2.h +++ b/src/s/usg5-2.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on AT&T's System V Release 2.0 - Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h index 285bae670df..12259936928 100644 --- a/src/s/usg5-3.h +++ b/src/s/usg5-3.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on AT&T's System V Release 3 - Copyright (C) 1987, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h index 4edda95b39c..b8c2f8d9fa2 100644 --- a/src/s/usg5-4.h +++ b/src/s/usg5-4.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running on AT&T's System V Release 4 - Copyright (C) 1987, 1990, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1987, 1990, 1999, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/vms.h b/src/s/vms.h index 9afd69b8539..e3c9dc725c0 100644 --- a/src/s/vms.h +++ b/src/s/vms.h @@ -1,5 +1,5 @@ /* system description header for VMS - Copyright (C) 1986 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/s/xenix.h b/src/s/xenix.h index 763a10956ff..e67b897faff 100644 --- a/src/s/xenix.h +++ b/src/s/xenix.h @@ -1,5 +1,6 @@ /* Definitions file for GNU Emacs running SCO Xenix 386 Release 2.2 - Copyright (C) 1988, 1999 Free Software Foundation, Inc. + Copyright (C) 1988, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/scroll.c b/src/scroll.c index f73f6f4fa80..04db528cc64 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -1,5 +1,6 @@ /* Calculate what line insertion or deletion to do, and do it, - Copyright (C) 1985, 1986, 1990, 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1990, 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/search.c b/src/search.c index 6beaa2d4186..aa7f6fda699 100644 --- a/src/search.c +++ b/src/search.c @@ -1,6 +1,6 @@ /* String search routines for GNU Emacs. - Copyright (C) 1985, 86,87,93,94,97,98, 1999, 2004 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 1994, 1997, 1998, 1999, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -3085,6 +3085,7 @@ syms_of_search () searchbufs[i].regexp = Qnil; searchbufs[i].whitespace_regexp = Qnil; staticpro (&searchbufs[i].regexp); + staticpro (&searchbufs[i].whitespace_regexp); searchbufs[i].next = (i == REGEXP_CACHE_SIZE-1 ? 0 : &searchbufs[i+1]); } searchbuf_head = &searchbufs[0]; diff --git a/src/sheap.c b/src/sheap.c index b7f01d448a8..635c3dc0144 100644 --- a/src/sheap.c +++ b/src/sheap.c @@ -1,8 +1,7 @@ /* simulate sbrk() with an array in .bss, for unexec() support for Cygwin; complete rewrite of xemacs Cygwin unexec() code - Copyright (C) 2004 - Free Software Foundation, Inc. + Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/sound.c b/src/sound.c index 93e456cbc48..1e6a17d0275 100644 --- a/src/sound.c +++ b/src/sound.c @@ -1,5 +1,6 @@ /* sound.c -- sound support. - Copyright (C) 1998, 1999, 2001 Free Software Foundation. + Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/strftime.c b/src/strftime.c index 41566ec868e..88a54b7bee4 100644 --- a/src/strftime.c +++ b/src/strftime.c @@ -1,5 +1,5 @@ -/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2003 - Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with gnulib. Bugs can be reported to bug-gnulib@gnu.org. diff --git a/src/sunfns.c b/src/sunfns.c index 6a16e6cc08f..8de639b7480 100644 --- a/src/sunfns.c +++ b/src/sunfns.c @@ -1,5 +1,6 @@ /* Functions for Sun Windows menus and selection buffer. - Copyright (C) 1987, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is probably totally obsolete. In any case, the FSF is unwilling to support it. We agreed to include it in our distribution diff --git a/src/syntax.c b/src/syntax.c index 480fa6de82a..2043cff63d6 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -1,5 +1,6 @@ /* GNU Emacs routines to deal with syntax tables; also word and list parsing. - Copyright (C) 1985, 87, 93, 94, 95, 97, 1998, 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1985, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -132,7 +133,7 @@ update_syntax_table (charpos, count, init, object) { Lisp_Object tmp_table; int cnt = 0, invalidate = 1; - INTERVAL i, oldi; + INTERVAL i; if (init) { @@ -163,7 +164,7 @@ update_syntax_table (charpos, count, init, object) gl_state.e_property = INTERVAL_LAST_POS (i) - gl_state.offset; goto update; } - oldi = i = count > 0 ? gl_state.forward_i : gl_state.backward_i; + i = count > 0 ? gl_state.forward_i : gl_state.backward_i; /* We are guaranteed to be called with CHARPOS either in i, or further off. */ @@ -248,7 +249,8 @@ update_syntax_table (charpos, count, init, object) } else { - gl_state.b_property = i->position + LENGTH (i) - gl_state.offset; + gl_state.b_property + = i->position + LENGTH (i) - gl_state.offset; gl_state.backward_i = i; } return; @@ -257,7 +259,12 @@ update_syntax_table (charpos, count, init, object) { if (count > 0) { - gl_state.e_property = i->position + LENGTH (i) - gl_state.offset; + gl_state.e_property + = i->position + LENGTH (i) - gl_state.offset + /* e_property at EOB is not set to ZV but to ZV+1, so that + we can do INC(from);UPDATE_SYNTAX_TABLE_FORWARD without + having to check eob between the two. */ + + (NULL_INTERVAL_P (next_interval (i)) ? 1 : 0); gl_state.forward_i = i; } else @@ -3168,6 +3175,14 @@ syms_of_syntax () staticpro (&Vsyntax_code_object); + staticpro (&gl_state.object); + staticpro (&gl_state.global_code); + staticpro (&gl_state.current_syntax_table); + staticpro (&gl_state.old_prop); + + /* Defined in regex.c */ + staticpro (&re_match_object); + Qscan_error = intern ("scan-error"); staticpro (&Qscan_error); Fput (Qscan_error, Qerror_conditions, diff --git a/src/syntax.h b/src/syntax.h index 581b4a783e0..c29e26c20b5 100644 --- a/src/syntax.h +++ b/src/syntax.h @@ -1,5 +1,6 @@ /* Declarations having to do with GNU Emacs syntax tables. - Copyright (C) 1985, 93, 94, 97, 1998 Free Software Foundation, Inc. + Copyright (C) 1985, 1993, 1994, 1997, 1998, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/sysdep.c b/src/sysdep.c index 7f0c363f7c4..9ffb167bdf0 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1,6 +1,6 @@ /* Interfaces to system-dependent kernel and library entries. Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, - 2003, 2004, 2005 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/sysselect.h b/src/sysselect.h index 0030e737bc2..d57527f9ed1 100644 --- a/src/sysselect.h +++ b/src/sysselect.h @@ -1,5 +1,5 @@ /* sysselect.h - System-dependent definitions for the select function. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/syssignal.h b/src/syssignal.h index 2f8aa43f2f6..1e9c0dbb38a 100644 --- a/src/syssignal.h +++ b/src/syssignal.h @@ -1,5 +1,6 @@ /* syssignal.h - System-dependent definitions for signals. - Copyright (C) 1993, 1999 Free Software Foundation, Inc. + Copyright (C) 1993, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/systime.h b/src/systime.h index cf2bc0b084b..12d8d406d8e 100644 --- a/src/systime.h +++ b/src/systime.h @@ -1,5 +1,6 @@ /* systime.h - System-dependent definitions for time manipulations. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/systty.h b/src/systty.h index b322ca60087..af9f5e3aa88 100644 --- a/src/systty.h +++ b/src/systty.h @@ -1,5 +1,6 @@ /* systty.h - System-dependent definitions for terminals. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/syswait.h b/src/syswait.h index 78057e3fed4..37d59d68ac5 100644 --- a/src/syswait.h +++ b/src/syswait.h @@ -1,5 +1,6 @@ /* Define wait system call interface for Emacs. - Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/term.c b/src/term.c index e340edb6c17..77720779baf 100644 --- a/src/term.c +++ b/src/term.c @@ -1,6 +1,6 @@ /* Terminal control module for terminals described by TERMCAP - Copyright (C) 1985, 86, 87, 93, 94, 95, 98, 2000, 2001, 2002, 2005 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1998, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -245,6 +245,17 @@ tty_set_terminal_modes (struct device *display) if (tty->output) { + if (tty->TS_termcap_modes) + OUTPUT (tty, tty->TS_termcap_modes); + else + { + /* Output enough newlines to scroll all the old screen contents + off the screen, so it won't be overwritten and lost. */ + int i; + for (i = 0; i < FRAME_LINES (XFRAME (selected_frame)); i++) + putchar ('\n'); + } + OUTPUT_IF (tty, tty->TS_termcap_modes); OUTPUT_IF (tty, tty->TS_cursor_visible); OUTPUT_IF (tty, tty->TS_keypad_mode); @@ -1846,24 +1857,20 @@ turn_on_face (f, face_id) if (tty->TN_max_colors > 0) { - char *p; + char *ts, *p; - if (fg >= 0 && tty->TS_set_foreground) + ts = tty->standout_mode ? tty->TS_set_background : tty->TS_set_foreground; + if (fg >= 0 && ts) { - if (tty->standout_mode) - p = tparam (tty->TS_set_background, NULL, 0, (int) fg); - else - p = tparam (tty->TS_set_foreground, NULL, 0, (int) fg); + p = tparam (ts, NULL, 0, (int) fg); OUTPUT (tty, p); xfree (p); } - if (bg >= 0 && tty->TS_set_background) + ts = tty->standout_mode ? tty->TS_set_foreground : tty->TS_set_background; + if (bg >= 0 && ts) { - if (tty->standout_mode) - p = tparam (tty->TS_set_foreground, NULL, 0, (int) bg); - else - p = tparam (tty->TS_set_background, NULL, 0, (int) bg); + p = tparam (ts, NULL, 0, (int) bg); OUTPUT (tty, p); xfree (p); } diff --git a/src/termcap.c b/src/termcap.c index 5f2fa55556a..2f6f324eada 100644 --- a/src/termcap.c +++ b/src/termcap.c @@ -1,6 +1,6 @@ /* Work-alike for termcap, plus extra features. - Copyright (C) 1985, 86, 93, 94, 95, 2000, 2001 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. 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 diff --git a/src/termchar.h b/src/termchar.h index 1f6580b91f3..87072136317 100644 --- a/src/termchar.h +++ b/src/termchar.h @@ -1,5 +1,6 @@ /* Flags and parameters describing terminal's characteristics. - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/termhooks.h b/src/termhooks.h index 5b411c6ab78..3fea7c366fb 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -1,5 +1,6 @@ -/* Parameters and display hooks for output devices - Copyright (C) 1985,86,93,94,2003 Free Software Foundation, Inc. +/* Parameters and display hooks for output devices. + Copyright (C) 1985, 1986, 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/terminfo.c b/src/terminfo.c index 8f040d10c68..5c0aa1ccf05 100644 --- a/src/terminfo.c +++ b/src/terminfo.c @@ -1,5 +1,6 @@ /* Interface from Emacs to terminfo. - Copyright (C) 1985, 1986 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/termopts.h b/src/termopts.h index 94d3f3bb9d7..2e5da3c9948 100644 --- a/src/termopts.h +++ b/src/termopts.h @@ -1,5 +1,6 @@ /* Flags and parameters describing user options for handling the terminal. - Copyright (C) 1985, 1986, 1990 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1990, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/textprop.c b/src/textprop.c index 718051e38f2..fa9b0e498c5 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -1,6 +1,6 @@ /* Interface code for dealing with text properties. - Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -719,7 +719,7 @@ it finds a change in some text property, or the beginning or end of an overlay, and returns the position of that. If none is found, the function returns (point-max). -If the optional third argument LIMIT is non-nil, don't search +If the optional second argument LIMIT is non-nil, don't search past position LIMIT; return LIMIT if nothing is found before LIMIT. */) (position, limit) Lisp_Object position, limit; @@ -744,7 +744,7 @@ finds a change in some text property, or the beginning or end of an overlay, and returns the position of that. If none is found, the function returns (point-max). -If the optional third argument LIMIT is non-nil, don't search +If the optional second argument LIMIT is non-nil, don't search past position LIMIT; return LIMIT if nothing is found before LIMIT. */) (position, limit) Lisp_Object position, limit; diff --git a/src/tparam.c b/src/tparam.c index e05f01f4911..e593589d5cb 100644 --- a/src/tparam.c +++ b/src/tparam.c @@ -1,5 +1,6 @@ /* Merge parameters into a termcap entry string. - Copyright (C) 1985, 87, 93, 95, 2000 Free Software Foundation, Inc. + Copyright (C) 1985, 1987, 1993, 1995, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. 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 diff --git a/src/uaf.h b/src/uaf.h index 71ae7267147..7863c41227e 100644 --- a/src/uaf.h +++ b/src/uaf.h @@ -1,5 +1,5 @@ /* GNU Emacs VMS UAF definition file. - Copyright (C) 1986 Free Software Foundation, Inc. + Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/undo.c b/src/undo.c index 13ee40130a9..9839906ca7e 100644 --- a/src/undo.c +++ b/src/undo.c @@ -1,6 +1,6 @@ /* undo handling for GNU Emacs. - Copyright (C) 1990, 1993, 1994, 2000, 2002, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1990, 1993, 1994, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexaix.c b/src/unexaix.c index 4c9f2727e88..071f09898ed 100644 --- a/src/unexaix.c +++ b/src/unexaix.c @@ -1,5 +1,6 @@ /* Dump an executable image. - Copyright (C) 1985, 1986, 1987, 1988, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexalpha.c b/src/unexalpha.c index aa32f411fcb..069c39b398b 100644 --- a/src/unexalpha.c +++ b/src/unexalpha.c @@ -1,6 +1,7 @@ /* Unexec for DEC alpha. schoepf@sc.ZIB-Berlin.DE (Rainer Schoepf). - Copyright (C) 1994, 2000 Free Software Foundation, Inc. + Copyright (C) 1994, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexapollo.c b/src/unexapollo.c index d9bff963695..f1481d684a3 100644 --- a/src/unexapollo.c +++ b/src/unexapollo.c @@ -1,5 +1,6 @@ /* unexapollo.c -- COFF File UNEXEC for GNU Emacs on Apollo SR10.x - Copyright (C) 1988, 1994 Free Software Foundation, Inc. + Copyright (C) 1988, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexconvex.c b/src/unexconvex.c index cbd1dd29fda..6f05e4ae938 100644 --- a/src/unexconvex.c +++ b/src/unexconvex.c @@ -7,7 +7,8 @@ think about it, or about whether other Emacs maintenance might break it. - Copyright (C) 1985, 1986, 1988 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1988, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexcw.c b/src/unexcw.c index 77d5866136b..cfd87781a16 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -1,8 +1,7 @@ /* unexec() support for Cygwin; complete rewrite of xemacs Cygwin unexec() code - Copyright (C) 2004 - Free Software Foundation, Inc. + Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexec.c b/src/unexec.c index bf231b00626..ebf813306da 100644 --- a/src/unexec.c +++ b/src/unexec.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1985,86,87,88,92,93,94 Free Software Foundation, Inc. +/* Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexelf.c b/src/unexelf.c index 9e8b827a754..ee563b36a97 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -1,5 +1,5 @@ -/* Copyright (C) 1985,86,87,88,90,92,1999,2000,01,2003 - Free Software Foundation, Inc. +/* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexenix.c b/src/unexenix.c index 94ac3eb821d..159c0b2f6d8 100644 --- a/src/unexenix.c +++ b/src/unexenix.c @@ -6,7 +6,8 @@ we don't plan to think about it, or about whether other Emacs maintenance might break it. - Copyright (C) 1988, 1994 Free Software Foundation, Inc. + Copyright (C) 1988, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexmacosx.c b/src/unexmacosx.c index a191c0721e5..9db9622f6f5 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -1,5 +1,5 @@ /* Dump Emacs in Mach-O format for use on Mac OS X. - Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexmips.c b/src/unexmips.c index 53b40f62742..212f7ed5926 100644 --- a/src/unexmips.c +++ b/src/unexmips.c @@ -6,7 +6,8 @@ we don't plan to think about it, or about whether other Emacs maintenance might break it. - Copyright (C) 1988, 1994 Free Software Foundation, Inc. + Copyright (C) 1988, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexnext.c b/src/unexnext.c index 2a0b66bc868..b374dd8e9b8 100644 --- a/src/unexnext.c +++ b/src/unexnext.c @@ -1,5 +1,6 @@ /* Dump Emacs in macho format. - Copyright (C) 1990, 1993 Free Software Foundation, Inc. + Copyright (C) 1990, 1993, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Written by Bradley Taylor (btaylor@next.com). This file is part of GNU Emacs. diff --git a/src/unexsni.c b/src/unexsni.c index 0c67af899d5..d6b3ae68969 100644 --- a/src/unexsni.c +++ b/src/unexsni.c @@ -1,6 +1,6 @@ /* Unexec for Siemens machines running Sinix (modified SVR4). - Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995, 2002, + 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexsunos4.c b/src/unexsunos4.c index 9ad06b6adaf..5e221050f36 100644 --- a/src/unexsunos4.c +++ b/src/unexsunos4.c @@ -1,5 +1,6 @@ /* Unexec for Sunos 4 using shared libraries. - Copyright (C) 1990, 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1990, 1994, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/unexw32.c b/src/unexw32.c index 5380ca5c8f7..bc462c18a10 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -1,5 +1,5 @@ /* unexec for GNU Emacs on Windows NT. - Copyright (C) 1994, 2005 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/vm-limit.c b/src/vm-limit.c index 1840eb61c0c..0c12dec9b04 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -1,5 +1,6 @@ /* Functions for memory limit warnings. - Copyright (C) 1990, 1992 Free Software Foundation, Inc. + Copyright (C) 1990, 1992, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w16select.c b/src/w16select.c index 406f0a1b884..b0c30eb58d8 100644 --- a/src/w16select.c +++ b/src/w16select.c @@ -1,5 +1,6 @@ /* 16-bit Windows Selection processing for emacs on MS-Windows - Copyright (C) 1996, 1997, 2001 Free Software Foundation. + Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32.c b/src/w32.c index 77959037913..c7f6e3172f9 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1,5 +1,6 @@ /* Utility and Unix shadow routines for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1994, 1995, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -20,8 +21,6 @@ Boston, MA 02110-1301, USA. Geoff Voelker (voelker@cs.washington.edu) 7-29-94 */ - - #include <stddef.h> /* for offsetof */ #include <stdlib.h> #include <stdio.h> @@ -73,6 +72,7 @@ Boston, MA 02110-1301, USA. #define _ANONYMOUS_STRUCT #endif #include <windows.h> +#include <shlobj.h> #ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */ #include <sys/socket.h> @@ -100,6 +100,9 @@ Boston, MA 02110-1301, USA. #include "w32heap.h" #include "systime.h" +typedef HRESULT (WINAPI * ShGetFolderPath_fn) + (IN HWND, IN int, IN HANDLE, IN DWORD, OUT char *); + void globals_of_w32 (); extern Lisp_Object Vw32_downcase_file_names; @@ -903,7 +906,9 @@ init_environment (char ** argv) static const char * const tempdirs[] = { "$TMPDIR", "$TEMP", "$TMP", "c:/" }; + int i; + const int imax = sizeof (tempdirs) / sizeof (tempdirs[0]); /* Make sure they have a usable $TMPDIR. Many Emacs functions use @@ -942,6 +947,8 @@ init_environment (char ** argv) LPBYTE lpval; DWORD dwType; char locale_name[32]; + struct stat ignored; + char default_home[MAX_PATH]; static struct env_entry { @@ -964,6 +971,35 @@ init_environment (char ** argv) {"LANG", NULL}, }; + /* For backwards compatibility, check if a .emacs file exists in C:/ + If not, then we can try to default to the appdata directory under the + user's profile, which is more likely to be writable. */ + if (stat ("C:/.emacs", &ignored) < 0) + { + HRESULT profile_result; + /* Dynamically load ShGetFolderPath, as it won't exist on versions + of Windows 95 and NT4 that have not been updated to include + MSIE 5. Also we don't link with shell32.dll by default. */ + HMODULE shell32_dll; + ShGetFolderPath_fn get_folder_path; + shell32_dll = GetModuleHandle ("shell32.dll"); + get_folder_path = (ShGetFolderPath_fn) + GetProcAddress (shell32_dll, "SHGetFolderPathA"); + + if (get_folder_path != NULL) + { + profile_result = get_folder_path (NULL, CSIDL_APPDATA, NULL, + 0, default_home); + + /* If we can't get the appdata dir, revert to old behaviour. */ + if (profile_result == S_OK) + env_vars[0].def_value = default_home; + } + + /* Unload shell32.dll, it is not needed anymore. */ + FreeLibrary (shell32_dll); + } + /* Get default locale info and use it for LANG. */ if (GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP, diff --git a/src/w32.h b/src/w32.h index 622a2256f0f..2981e5bb979 100644 --- a/src/w32.h +++ b/src/w32.h @@ -2,7 +2,7 @@ #define EMACS_W32_H /* Support routines for the NT version of Emacs. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32bdf.c b/src/w32bdf.c index e8612c7b5d6..10780f2f0c9 100644 --- a/src/w32bdf.c +++ b/src/w32bdf.c @@ -1,5 +1,5 @@ /* Implementation of BDF font handling on the Microsoft W32 API. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32bdf.h b/src/w32bdf.h index ca8a5f368cb..9d3d306d56f 100644 --- a/src/w32bdf.h +++ b/src/w32bdf.h @@ -1,5 +1,5 @@ /* Definitions and header for handling BDF fonts on the Microsoft W32 API. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32console.c b/src/w32console.c index 0ebda179667..a81591fb96f 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -1,5 +1,6 @@ /* Terminal hooks for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1992, 1999 Free Software Foundation, Inc. + Copyright (C) 1992, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32fns.c b/src/w32fns.c index eedc06dda12..93469418137 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -1,6 +1,6 @@ /* Graphical user interface functions for the Microsoft W32 API. - Copyright (C) 1989, 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 01, 04 - Free Software Foundation, Inc. + Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -153,7 +153,7 @@ int display_hourglass_p; over text or in the modeline. */ Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; -Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape, Vx_hand_shape; +Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape; /* The shape when over mouse-sensitive text. */ @@ -395,10 +395,10 @@ x_window_to_frame (dpyinfo, wdesc) } -BOOL my_show_window P_ ((struct frame *, HWND, int)); -void my_set_window_pos P_ ((HWND, HWND, int, int, int, int, UINT)); static Lisp_Object unwind_create_frame P_ ((Lisp_Object)); static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object)); +static void my_create_window P_ ((struct frame *)); +static void my_create_tip_window P_ ((struct frame *)); /* TODO: Native Input Method support; see x_create_im. */ void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); @@ -3847,7 +3847,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam) return 0; } -void +static void my_create_window (f) struct frame * f; { @@ -3863,7 +3863,7 @@ my_create_window (f) indirectly via the Window thread, as we do not need to process Window messages for the tooltip. Creating tooltips indirectly also creates deadlocks when tooltips are created for menu items. */ -void +static void my_create_tip_window (f) struct frame *f; { @@ -8760,6 +8760,8 @@ versions of Windows) characters. */); staticpro (&Qw32_charset_ansi); Qw32_charset_ansi = intern ("w32-charset-ansi"); staticpro (&Qw32_charset_symbol); + Qw32_charset_default = intern ("w32-charset-default"); + staticpro (&Qw32_charset_default); Qw32_charset_symbol = intern ("w32-charset-symbol"); staticpro (&Qw32_charset_shiftjis); Qw32_charset_shiftjis = intern ("w32-charset-shiftjis"); diff --git a/src/w32gui.h b/src/w32gui.h index 1fd145cd026..644adcea924 100644 --- a/src/w32gui.h +++ b/src/w32gui.h @@ -1,5 +1,5 @@ /* Definitions and headers for communication on the Microsoft W32 API. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32heap.c b/src/w32heap.c index 7de08bb2b4e..a0c50da5506 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -1,5 +1,5 @@ /* Heap management routines for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32heap.h b/src/w32heap.h index 259d0bf9ede..1b3b815b115 100644 --- a/src/w32heap.h +++ b/src/w32heap.h @@ -1,5 +1,5 @@ /* Heap management routines (including unexec) for GNU Emacs on Windows NT. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32inevt.c b/src/w32inevt.c index cc7c5e1e612..ffa2cd0989a 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -1,5 +1,6 @@ /* Input event support for Emacs on the Microsoft W32 API. - Copyright (C) 1992, 1993, 1995 Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 1995, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32inevt.h b/src/w32inevt.h index f811c96c313..e0a9428720f 100644 --- a/src/w32inevt.h +++ b/src/w32inevt.h @@ -1,5 +1,5 @@ /* Input routines for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32menu.c b/src/w32menu.c index 065355f8755..d441d14b259 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -1,5 +1,6 @@ /* Menu support for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1986,88,93,94,96,98,1999,2003 Free Software Foundation, Inc. + Copyright (C) 1986, 1988, 1993, 1994, 1996, 1998, 1999, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2320,7 +2321,23 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) item != NULL ? (UINT) item : (UINT) wv->call_data, utf16_string); - if (fuFlags & MF_OWNERDRAW) + if (!return_value) + { + /* On W9x/ME, unicode menus are not supported, though AppendMenuW + apparently does exist at least in some cases and appears to be + stubbed out to do nothing. out_string is UTF-8, but since + our standard menus are in English and this is only going to + happen the first time a menu is used, the encoding is + of minor importance compared with menus not working at all. */ + return_value = + AppendMenu (menu, fuFlags, + item != NULL ? (UINT) item: (UINT) wv->call_data, + out_string); + /* Don't use unicode menus in future. */ + unicode_append_menu = NULL; + } + + if (unicode_append_menu && (fuFlags & MF_OWNERDRAW)) local_free (out_string); } else @@ -2418,8 +2435,11 @@ w32_menu_display_help (HWND owner, HMENU menu, UINT item, UINT flags) struct frame *f = x_window_to_frame (&one_w32_display_info, owner); Lisp_Object frame, help; - /* No help echo on owner-draw menu items. */ - if (flags & MF_OWNERDRAW || flags & MF_POPUP) + /* No help echo on owner-draw menu items, or when the keyboard is used + to navigate the menus, since tooltips are distracting if they pop + up elsewhere. */ + if (flags & MF_OWNERDRAW || flags & MF_POPUP + || !(flags & MF_MOUSESELECT)) help = Qnil; else { diff --git a/src/w32proc.c b/src/w32proc.c index 0e3f8f2fd47..628a763c675 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -1,5 +1,6 @@ /* Process support for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1992, 95, 99, 2000, 01, 04 Free Software Foundation, Inc. + Copyright (C) 1992, 1995, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2146,6 +2147,8 @@ syms_of_ntproc () { Qhigh = intern ("high"); Qlow = intern ("low"); + staticpro (&Qhigh); + staticpro (&Qlow); #ifdef HAVE_SOCKETS defsubr (&Sw32_has_winsock); @@ -2241,6 +2244,9 @@ the truename of a file can be slow. */); Note that this option is only useful for files on NTFS volumes, where hard links are supported. Moreover, it slows down `file-attributes' noticeably. */); Vw32_get_true_file_attributes = Qt; + + staticpro (&Vw32_valid_locale_ids); + staticpro (&Vw32_valid_codepages); } /* end of ntproc.c */ diff --git a/src/w32reg.c b/src/w32reg.c index a70835ac303..40d84df3d14 100644 --- a/src/w32reg.c +++ b/src/w32reg.c @@ -1,5 +1,6 @@ /* Emulate the X Resource Manager through the registry. - Copyright (C) 1990, 1993, 1994 Free Software Foundation. + Copyright (C) 1990, 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32select.c b/src/w32select.c index db29c078149..3556c62a35f 100644 --- a/src/w32select.c +++ b/src/w32select.c @@ -1,5 +1,6 @@ /* Selection processing for Emacs on the Microsoft W32 API. - Copyright (C) 1993, 1994, 2004 Free Software Foundation. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32term.c b/src/w32term.c index abf8e377ef1..4e7ed968b8d 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -1,6 +1,6 @@ /* Implementation of GUI terminal on the Microsoft W32 API. - Copyright (C) 1989, 93, 94, 95, 96, 1997, 1998, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -272,6 +272,11 @@ static void x_draw_hollow_cursor P_ ((struct window *, struct glyph_row *)); static void x_draw_bar_cursor P_ ((struct window *, struct glyph_row *, int, enum text_cursor_kinds)); static void w32_clip_to_row P_ ((struct window *, struct glyph_row *, int, HDC)); +static BOOL my_show_window P_ ((struct frame *, HWND, int)); +static void my_set_window_pos P_ ((HWND, HWND, int, int, int, int, UINT)); +static void my_set_focus P_ ((struct frame *, HWND)); +static void my_set_foreground_window P_ ((HWND)); +static void my_destroy_window P_ ((struct frame *, HWND)); static Lisp_Object Qvendor_specific_keysyms; @@ -3632,7 +3637,7 @@ my_create_scrollbar (f, bar) /*#define ATTACH_THREADS*/ -BOOL +static BOOL my_show_window (FRAME_PTR f, HWND hwnd, int how) { #ifndef ATTACH_THREADS @@ -3643,7 +3648,7 @@ my_show_window (FRAME_PTR f, HWND hwnd, int how) #endif } -void +static void my_set_window_pos (HWND hwnd, HWND hwndAfter, int x, int y, int cx, int cy, UINT flags) { @@ -3661,7 +3666,7 @@ my_set_window_pos (HWND hwnd, HWND hwndAfter, #endif } -void +static void my_set_focus (f, hwnd) struct frame * f; HWND hwnd; @@ -3670,14 +3675,15 @@ my_set_focus (f, hwnd) (WPARAM) hwnd, 0); } -void +static void my_set_foreground_window (hwnd) HWND hwnd; { SendMessage (hwnd, WM_EMACS_SETFOREGROUND, (WPARAM) hwnd, 0); } -void + +static void my_destroy_window (f, hwnd) struct frame * f; HWND hwnd; diff --git a/src/w32term.h b/src/w32term.h index 1557a45653f..34932c44d3b 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -1,5 +1,6 @@ /* Definitions and headers for communication on the Microsoft W32 API. - Copyright (C) 1995, 2001 Free Software Foundation, Inc. + Copyright (C) 1995, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/w32xfns.c b/src/w32xfns.c index ba705d9498d..46a71b942c7 100644 --- a/src/w32xfns.c +++ b/src/w32xfns.c @@ -1,5 +1,6 @@ /* Functions taken directly from X sources for use with the Microsoft W32 API. - Copyright (C) 1989, 1992, 1993, 1994, 1995, 1999 Free Software Foundation. + Copyright (C) 1989, 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/widget.c b/src/widget.c index fdd927cb175..0386890d93b 100644 --- a/src/widget.c +++ b/src/widget.c @@ -1,5 +1,6 @@ /* The emacs frame widget. - Copyright (C) 1992, 1993, 2000 Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 2000, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/widget.h b/src/widget.h index 174a6a720de..00d743234c0 100644 --- a/src/widget.h +++ b/src/widget.h @@ -1,5 +1,5 @@ /* The emacs frame widget public header file. - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/widgetprv.h b/src/widgetprv.h index ce087e825cb..2027b4f602d 100644 --- a/src/widgetprv.h +++ b/src/widgetprv.h @@ -1,5 +1,5 @@ /* The emacs frame widget private header file. - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/window.c b/src/window.c index c0cf06d5e46..3140bbaf001 100644 --- a/src/window.c +++ b/src/window.c @@ -1,7 +1,7 @@ /* Window creation, deletion and examination for GNU Emacs. Does not include redisplay. Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000, - 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -5626,8 +5626,6 @@ struct saved_window Lisp_Object scroll_bar_width, vertical_scroll_bar_type; }; -#define SAVED_WINDOW_VECTOR_SIZE 24 /* Arg to Fmake_vector */ - #define SAVED_WINDOW_N(swv,n) \ ((struct saved_window *) (XVECTOR ((swv)->contents[(n)]))) @@ -6207,7 +6205,7 @@ redirection (see `redirect-frame-focus'). */) data->saved_windows = tem; for (i = 0; i < n_windows; i++) XVECTOR (tem)->contents[i] - = Fmake_vector (make_number (SAVED_WINDOW_VECTOR_SIZE), Qnil); + = Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil); save_window_save (FRAME_ROOT_WINDOW (f), XVECTOR (tem), 0); XSETWINDOW_CONFIGURATION (tem, data); return (tem); @@ -6248,33 +6246,33 @@ Second arg LEFT-WIDTH specifies the number of character cells to reserve for the left marginal area. Optional third arg RIGHT-WIDTH does the same for the right marginal area. A nil width parameter means no margin. */) - (window, left, right) - Lisp_Object window, left, right; + (window, left_width, right_width) + Lisp_Object window, left_width, right_width; { struct window *w = decode_window (window); /* Translate negative or zero widths to nil. Margins that are too wide have to be checked elsewhere. */ - if (!NILP (left)) + if (!NILP (left_width)) { - CHECK_NUMBER (left); - if (XINT (left) <= 0) - left = Qnil; + CHECK_NUMBER (left_width); + if (XINT (left_width) <= 0) + left_width = Qnil; } - if (!NILP (right)) + if (!NILP (right_width)) { - CHECK_NUMBER (right); - if (XINT (right) <= 0) - right = Qnil; + CHECK_NUMBER (right_width); + if (XINT (right_width) <= 0) + right_width = Qnil; } - if (!EQ (w->left_margin_cols, left) - || !EQ (w->right_margin_cols, right)) + if (!EQ (w->left_margin_cols, left_width) + || !EQ (w->right_margin_cols, right_width)) { - w->left_margin_cols = left; - w->right_margin_cols = right; + w->left_margin_cols = left_width; + w->right_margin_cols = right_width; adjust_window_margins (w); @@ -6319,22 +6317,22 @@ the command `set-fringe-style'. If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes outside of the display margins. By default, fringes are drawn between display marginal areas and the text area. */) - (window, left, right, outside_margins) - Lisp_Object window, left, right, outside_margins; + (window, left_width, right_width, outside_margins) + Lisp_Object window, left_width, right_width, outside_margins; { struct window *w = decode_window (window); - if (!NILP (left)) - CHECK_NATNUM (left); - if (!NILP (right)) - CHECK_NATNUM (right); + if (!NILP (left_width)) + CHECK_NATNUM (left_width); + if (!NILP (right_width)) + CHECK_NATNUM (right_width); - if (!EQ (w->left_fringe_width, left) - || !EQ (w->right_fringe_width, right) + if (!EQ (w->left_fringe_width, left_width) + || !EQ (w->right_fringe_width, right_width) || !EQ (w->fringes_outside_margins, outside_margins)) { - w->left_fringe_width = left; - w->right_fringe_width = right; + w->left_fringe_width = left_width; + w->right_fringe_width = right_width; w->fringes_outside_margins = outside_margins; adjust_window_margins (w); diff --git a/src/window.h b/src/window.h index 7e34ddee26c..4ca46b20af5 100644 --- a/src/window.h +++ b/src/window.h @@ -1,6 +1,6 @@ /* Window definitions for GNU Emacs. - Copyright (C) 1985,86,93,95,97,98,99, 2000,01,03,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xdisp.c b/src/xdisp.c index 1754598f929..a32cb70f436 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1,6 +1,7 @@ /* Display generation from window structure and buffer text. - Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -231,7 +232,7 @@ extern Lisp_Object Qhelp_echo; Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions; -Lisp_Object Qredisplay_end_trigger_functions; +Lisp_Object Qredisplay_end_trigger_functions, Vredisplay_end_trigger_functions; Lisp_Object Qinhibit_point_motion_hooks; Lisp_Object QCeval, QCfile, QCdata, QCpropertize; Lisp_Object Qfontified; @@ -1333,6 +1334,9 @@ pos_visible_p (w, charpos, x, y, rtop, rbot, exact_mode_line_heights_p) current_header_line_height = current_mode_line_height = -1; + if (visible_p && XFASTINT (w->hscroll) > 0) + *x -= XFASTINT (w->hscroll); + return visible_p; } @@ -2395,7 +2399,9 @@ start_display (it, w, pos) init_iterator (it, w, CHARPOS (pos), BYTEPOS (pos), row, DEFAULT_FACE_ID); it->first_vpos = first_vpos; - if (!it->truncate_lines_p) + /* Don't reseat to previous visible line start if current start + position is in a string or image. */ + if (it->method == GET_FROM_BUFFER && !it->truncate_lines_p) { int start_at_line_beg_p; int first_y = it->current_y; @@ -5858,6 +5864,15 @@ next_element_from_composition (it) Moving an iterator without producing glyphs ***********************************************************************/ +/* Check if iterator is at a position corresponding to a valid buffer + position after some move_it_ call. */ + +#define IT_POS_VALID_AFTER_MOVE_P(it) \ + ((it)->method == GET_FROM_STRING \ + ? IT_STRING_CHARPOS (*it) == 0 \ + : 1) + + /* Move iterator IT to a specified buffer or X position within one line on the display without producing glyphs. @@ -6366,8 +6381,12 @@ move_it_vertically_backward (it, dy) y-distance. */ it2 = *it; it2.max_ascent = it2.max_descent = 0; - move_it_to (&it2, start_pos, -1, -1, it2.vpos + 1, - MOVE_TO_POS | MOVE_TO_VPOS); + do + { + move_it_to (&it2, start_pos, -1, -1, it2.vpos + 1, + MOVE_TO_POS | MOVE_TO_VPOS); + } + while (!IT_POS_VALID_AFTER_MOVE_P (&it2)); xassert (IT_CHARPOS (*it) >= BEGV); it3 = it2; @@ -6565,21 +6584,45 @@ move_it_by_lines (it, dvpos, need_y_p) last_height = 0; } else if (dvpos > 0) - move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS); + { + move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS); + if (!IT_POS_VALID_AFTER_MOVE_P (it)) + move_it_to (it, IT_CHARPOS (*it) + 1, -1, -1, -1, MOVE_TO_POS); + } else { struct it it2; int start_charpos, i; /* Start at the beginning of the screen line containing IT's - position. */ + position. This may actually move vertically backwards, + in case of overlays, so adjust dvpos accordingly. */ + dvpos += it->vpos; move_it_vertically_backward (it, 0); + dvpos -= it->vpos; /* Go back -DVPOS visible lines and reseat the iterator there. */ start_charpos = IT_CHARPOS (*it); - for (i = -dvpos; i && IT_CHARPOS (*it) > BEGV; --i) + for (i = -dvpos; i > 0 && IT_CHARPOS (*it) > BEGV; --i) back_to_previous_visible_line_start (it); reseat (it, it->current.pos, 1); + + /* Move further back if we end up in a string or an image. */ + while (!IT_POS_VALID_AFTER_MOVE_P (it)) + { + /* First try to move to start of display line. */ + dvpos += it->vpos; + move_it_vertically_backward (it, 0); + dvpos -= it->vpos; + if (IT_POS_VALID_AFTER_MOVE_P (it)) + break; + /* If start of line is still in string or image, + move further back. */ + back_to_previous_visible_line_start (it); + reseat (it, it->current.pos, 1); + dvpos--; + } + it->current_x = it->hpos = 0; /* Above call may have moved too far if continuation lines @@ -7044,6 +7087,9 @@ message3_nolog (m, nbytes, multibyte) set_message (NULL, m, nbytes, multibyte); if (minibuffer_auto_raise) Fraise_frame (frame); + /* Assume we are not echoing. + (If we are, echo_now will override this.) */ + echo_message_buffer = Qnil; } else clear_message (1, 1); @@ -7587,13 +7633,16 @@ display_echo_area_1 (a1, a2, a3, a4) int window_height_changed_p = 0; /* Do this before displaying, so that we have a large enough glyph - matrix for the display. */ + matrix for the display. If we can't get enough space for the + whole text, display the last N lines. That works by setting w->start. */ window_height_changed_p = resize_mini_window (w, 0); + /* Use the starting position chosen by resize_mini_window. */ + SET_TEXT_POS_FROM_MARKER (start, w->start); + /* Display. */ clear_glyph_matrix (w->desired_matrix); XSETWINDOW (window, w); - SET_TEXT_POS (start, BEG, BEG_BYTE); try_window (window, start, 0); return window_height_changed_p; @@ -7649,8 +7698,14 @@ resize_mini_window_1 (a1, exactly, a3, a4) /* Resize mini-window W to fit the size of its contents. EXACT:P means size the window exactly to the size needed. Otherwise, it's - only enlarged until W's buffer is empty. Value is non-zero if - the window height has been changed. */ + only enlarged until W's buffer is empty. + + Set W->start to the right place to begin display. If the whole + contents fit, start at the beginning. Otherwise, start so as + to make the end of the contents appear. This is particularly + important for y-or-n-p, but seems desirable generally. + + Value is non-zero if the window height has been changed. */ int resize_mini_window (w, exact_p) @@ -7662,6 +7717,11 @@ resize_mini_window (w, exact_p) xassert (MINI_WINDOW_P (w)); + /* By default, start display at the beginning. */ + set_marker_both (w->start, w->buffer, + BUF_BEGV (XBUFFER (w->buffer)), + BUF_BEGV_BYTE (XBUFFER (w->buffer))); + /* Don't resize windows while redisplaying a window; it would confuse redisplay functions when the size of the window they are displaying changes from under them. Such a resizing can happen, @@ -7725,7 +7785,7 @@ resize_mini_window (w, exact_p) if (height > max_height) { height = max_height; - init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); + init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID); move_it_vertically_backward (&it, (height - 1) * unit); start = it.current.pos; } @@ -10050,7 +10110,9 @@ select_frame_for_redisplay (frame) (BUFFER_LOCAL_VALUEP (val) || SOME_BUFFER_LOCAL_VALUEP (val))) && XBUFFER_LOCAL_VALUE (val)->check_frame) - Fsymbol_value (sym); + /* Use find_symbol_value rather than Fsymbol_value + to avoid an error if it is void. */ + find_symbol_value (sym); for (tail = XFRAME (old)->param_alist; CONSP (tail); tail = XCDR (tail)) if (CONSP (XCAR (tail)) @@ -10061,7 +10123,7 @@ select_frame_for_redisplay (frame) (BUFFER_LOCAL_VALUEP (val) || SOME_BUFFER_LOCAL_VALUEP (val))) && XBUFFER_LOCAL_VALUE (val)->check_frame) - Fsymbol_value (sym); + find_symbol_value (sym); } @@ -10135,6 +10197,16 @@ redisplay_internal (preserve_echo_area) ++redisplaying_p; specbind (Qinhibit_free_realized_faces, Qnil); + { + Lisp_Object tail, frame; + + FOR_EACH_FRAME (tail, frame) + { + struct frame *f = XFRAME (frame); + f->already_hscrolled_p = 0; + } + } + retry: pause = 0; reconsider_clip_changes (w, current_buffer); @@ -10569,8 +10641,12 @@ redisplay_internal (preserve_echo_area) if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) { /* See if we have to hscroll. */ - if (hscroll_windows (f->root_window)) - goto retry; + if (!f->already_hscrolled_p) + { + f->already_hscrolled_p = 1; + if (hscroll_windows (f->root_window)) + goto retry; + } /* Prevent various kinds of signals during display update. stdio is not robust about handling @@ -11301,7 +11377,7 @@ cursor_row_fully_visible_p (w, force_p, current_matrix_p) window_height = window_box_height (w); if (row->height >= window_height) { - if (!force_p || w->vscroll) + if (!force_p || MINI_WINDOW_P (w) || w->vscroll) return 1; } return 0; @@ -11831,7 +11907,10 @@ try_cursor_movement (window, startp, scroll_step) while (!row->mode_line_p && (MATRIX_ROW_START_CHARPOS (row) > PT || (MATRIX_ROW_START_CHARPOS (row) == PT - && MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P (row))) + && (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P (row) + || (/* STARTS_IN_MIDDLE_OF_STRING_P (row) */ + row > w->current_matrix->rows + && (row-1)->ends_in_newline_from_string_p)))) && (row->y > top_scroll_margin || CHARPOS (startp) == BEGV)) { @@ -12661,10 +12740,9 @@ redisplay_window (window, just_this_one_p) #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f) - && update_window_fringes (w, 0) - && !just_this_one_p - && (used_current_matrix_p || overlay_arrow_seen) - && !w->pseudo_window_p) + && update_window_fringes (w, (just_this_one_p + || (!used_current_matrix_p && !overlay_arrow_seen) + || w->pseudo_window_p))) { update_begin (f); BLOCK_INPUT; @@ -12741,7 +12819,8 @@ try_window (window, pos, check_margins) } /* Don't let the cursor end in the scroll margins. */ - if (check_margins) + if (check_margins + && !MINI_WINDOW_P (w)) { int this_scroll_margin, cursor_height; @@ -15006,10 +15085,12 @@ cursor_row_p (w, row) if (PT == MATRIX_ROW_END_CHARPOS (row)) { /* If the row ends with a newline from a string, we don't want - the cursor there (if the row is continued it doesn't end in a - newline). */ + the cursor there, but we still want it at the start of the + string if the string starts in this row. + If the row is continued it doesn't end in a newline. */ if (CHARPOS (row->end.string_pos) >= 0) - cursor_row_p = row->continued_p; + cursor_row_p = (row->continued_p + || PT >= MATRIX_ROW_START_CHARPOS (row)); else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row)) { /* If the row ends in middle of a real character, @@ -17566,6 +17647,15 @@ calc_pixel_width_or_height (res, it, prop, font, width_p, align_to) if (pixels > 0) { double ppi; +#ifdef HAVE_WINDOW_SYSTEM + if (FRAME_WINDOW_P (it->f) + && (ppi = (width_p + ? FRAME_X_DISPLAY_INFO (it->f)->resx + : FRAME_X_DISPLAY_INFO (it->f)->resy), + ppi > 0)) + return OK_PIXELS (ppi / pixels); +#endif + if ((ppi = NUMVAL (Vdisplay_pixels_per_inch), ppi > 0) || (CONSP (Vdisplay_pixels_per_inch) && (ppi = (width_p @@ -23001,7 +23091,7 @@ of the top or bottom of the window. */); scroll_margin = 0; DEFVAR_LISP ("display-pixels-per-inch", &Vdisplay_pixels_per_inch, - doc: /* Pixels per inch on current display. + doc: /* Pixels per inch value for non-window system displays. Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */); Vdisplay_pixels_per_inch = make_float (72.0); @@ -23088,6 +23178,12 @@ and its new display-start position. Note that the value of `window-end' is not valid when these functions are called. */); Vwindow_scroll_functions = Qnil; + DEFVAR_LISP ("redisplay-end-trigger-functions", &Vredisplay_end_trigger_functions, + doc: /* Functions called when redisplay of a window reaches the end trigger. +Each function is called with two arguments, the window and the end trigger value. +See `set-window-redisplay-end-trigger'. */); + Vredisplay_end_trigger_functions = Qnil; + DEFVAR_BOOL ("mouse-autoselect-window", &mouse_autoselect_window, doc: /* *Non-nil means autoselect window with mouse pointer. */); mouse_autoselect_window = 0; diff --git a/src/xfaces.c b/src/xfaces.c index 0667d3823c7..06022383cb9 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -1,6 +1,6 @@ /* xfaces.c -- "Face" primitives. - Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation. + Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -786,8 +786,6 @@ x_free_gc (f, gc) #ifdef MAC_OS /* Mac OS emulation of GCs */ -extern XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *); - static INLINE GC x_create_gc (f, mask, xgcv) struct frame *f; @@ -3926,7 +3924,7 @@ Value is a vector of face attributes. */) DEFUN ("internal-lisp-face-p", Finternal_lisp_face_p, Sinternal_lisp_face_p, 1, 2, 0, doc: /* Return non-nil if FACE names a face. -If optional second parameter FRAME is non-nil, check for the +If optional second argument FRAME is non-nil, check for the existence of a frame-local face with name FACE on that frame. Otherwise check for the existence of a global face. */) (face, frame) @@ -4735,7 +4733,12 @@ x_update_menu_appearance (f) const char *suffix = "List"; Bool motif = True; #else +#if defined HAVE_X_I18N + + const char *suffix = "Set"; +#else const char *suffix = ""; +#endif Bool motif = False; #endif #if defined HAVE_X_I18N @@ -6757,14 +6760,21 @@ try_font_list (f, attrs, family, registry, fonts, prefer_face_family) nfonts = try_alternative_families (f, try_family, registry, fonts); #ifdef MAC_OS - /* When realizing the default face and a font spec does not matched - exactly, Emacs looks for ones with the same registry as the - default font. On the Mac, this is mac-roman, which does not work - if the family is -etl-fixed, e.g. The following widens the - choices and fixes that problem. */ - if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry) - && xstricmp (SDATA (registry), "mac-roman") == 0) - nfonts = try_alternative_families (f, try_family, Qnil, fonts); + if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry)) + if (xstricmp (SDATA (registry), "mac-roman") == 0) + /* When realizing the default face and a font spec does not + matched exactly, Emacs looks for ones with the same registry + as the default font. On the Mac, this is mac-roman, which + does not work if the family is -etl-fixed, e.g. The + following widens the choices and fixes that problem. */ + nfonts = try_alternative_families (f, try_family, Qnil, fonts); + else if (SBYTES (try_family) > 0 + && SREF (try_family, SBYTES (try_family) - 1) != '*') + /* Some Central European/Cyrillic font family names have the + Roman counterpart name as their prefix. */ + nfonts = try_alternative_families (f, concat2 (try_family, + build_string ("*")), + registry, fonts); #endif if (EQ (try_family, family)) diff --git a/src/xfns.c b/src/xfns.c index f629ee31aef..11f4c2eadb1 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1,6 +1,6 @@ /* Functions for the X window system. Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005 Free Software Foundation. + 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xmenu.c b/src/xmenu.c index 321e6deb7c6..4abf89655df 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -1,6 +1,6 @@ /* X Communication module for terminals which understand the X protocol. - Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2003, 2004, - 2005 Free Software Foundation, Inc. + Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xrdb.c b/src/xrdb.c index 248e5eba64d..822fb6e2624 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -1,5 +1,6 @@ /* Deal with the X Resource Manager. - Copyright (C) 1990, 1993, 1994, 2000, 2001 Free Software Foundation. + Copyright (C) 1990, 1993, 1994, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xselect.c b/src/xselect.c index e7c6d57f870..432365fdb63 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -1,6 +1,6 @@ /* X Selection processing for Emacs. - Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004 - Free Software Foundation. + Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2986,7 +2986,6 @@ A value of 0 means wait as long as necessary. This is initialized from the QTEXT = intern ("TEXT"); staticpro (&QTEXT); QCOMPOUND_TEXT = intern ("COMPOUND_TEXT"); staticpro (&QCOMPOUND_TEXT); QUTF8_STRING = intern ("UTF8_STRING"); staticpro (&QUTF8_STRING); - QTIMESTAMP = intern ("TIMESTAMP"); staticpro (&QTIMESTAMP); QDELETE = intern ("DELETE"); staticpro (&QDELETE); QMULTIPLE = intern ("MULTIPLE"); staticpro (&QMULTIPLE); QINCR = intern ("INCR"); staticpro (&QINCR); diff --git a/src/xsmfns.c b/src/xsmfns.c index 88bc416e5d9..fc427a29790 100644 --- a/src/xsmfns.c +++ b/src/xsmfns.c @@ -1,6 +1,6 @@ /* Session management module for systems which understand the X Session management protocol. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xterm.c b/src/xterm.c index aa0ea804ae6..04f9b895742 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -1,6 +1,6 @@ /* X Communication module for terminals which understand the X protocol. Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -9285,7 +9285,14 @@ x_wm_set_icon_pixmap (f, pixmap_id) #endif } -#ifdef USE_X_TOOLKIT /* same as in x_wm_set_window_state. */ + +#ifdef USE_GTK + { + xg_set_frame_icon (f, icon_pixmap, icon_mask); + return; + } + +#elif defined (USE_X_TOOLKIT) /* same as in x_wm_set_window_state. */ { Arg al[1]; @@ -9295,12 +9302,12 @@ x_wm_set_icon_pixmap (f, pixmap_id) XtSetValues (f->output_data.x->widget, al, 1); } -#else /* not USE_X_TOOLKIT */ +#else /* not USE_X_TOOLKIT && not USE_GTK */ f->output_data.x->wm_hints.flags |= (IconPixmapHint | IconMaskHint); XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); -#endif /* not USE_X_TOOLKIT */ +#endif /* not USE_X_TOOLKIT && not USE_GTK */ } void diff --git a/src/xterm.h b/src/xterm.h index 835434d0901..aa615d06a17 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1,6 +1,6 @@ /* Definitions and headers for communication with X protocol. - Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000,01,02,03,04 - Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. |