Mercurial > emacs
changeset 83072:b1f57ac99be5
Merged in changes from CVS HEAD
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-126
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-127
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-128
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-129
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-130
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-131
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-132
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-133
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-134
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-135
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-136
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-137
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-112
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 07 Mar 2004 15:30:22 +0000 |
parents | 3edf0340391b (current diff) fbd1a5a744ac (diff) |
children | ced0b1beba09 |
files | ChangeLog lisp/ChangeLog lisp/allout.el lisp/startup.el src/buffer.c src/fringe.c src/indent.c src/w32term.c src/window.c src/window.h src/xdisp.c src/xfns.c |
diffstat | 66 files changed, 1125 insertions(+), 521 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,12 +1,15 @@ +2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * Makefile.in (maintainer-clean): Clean in the lisp dir as well. + (bootstrap): Use the new boostrap-prepare target in lisp. + 2004-02-18 Kim F. Storm <storm@cua.dk> - * INSTALL.CVS: Add info about ssh/cvs related problems and - work-around. + * INSTALL.CVS: Add info about ssh/cvs related problems and work-around. 2004-02-16 Eli Zaretskii <eliz@elta.co.il> - * make-dist: Don't link index.*perm and permute-index into - tempdir. + * make-dist: Don't link index.*perm and permute-index into tempdir. 2004-02-14 Jonathan Yavner <jyavner@member.fsf.org>
--- a/Makefile.in Sat Mar 06 12:15:27 2004 +0000 +++ b/Makefile.in Sun Mar 07 15:30:22 2004 +0000 @@ -2,8 +2,8 @@ # DIST: make most of the changes to this file you might want, so try # DIST: that first. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,2004 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -634,6 +634,7 @@ -(cd lispref && $(MAKE) $(MFLAGS) maintainer-clean) -(cd lispintro && $(MAKE) $(MFLAGS) maintainer-clean) (cd leim; $(MAKE) $(MFLAGS) maintainer-clean) + (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean) ${top_distclean} ### This doesn't actually appear in the coding standards, but Karl @@ -734,7 +735,7 @@ fi bootstrap: bootstrap-clean-before info FRC - (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean) + (cd lisp; $(MAKE) $(MFLAGS) bootstrap-prepare) (cd src; $(MAKE) $(MFLAGS) bootstrap) (cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=../src/bootstrap-emacs${EXEEXT}) (cd src; $(MAKE) $(MFLAGS) mostlyclean)
--- a/etc/NEWS Sat Mar 06 12:15:27 2004 +0000 +++ b/etc/NEWS Sun Mar 07 15:30:22 2004 +0000 @@ -1826,6 +1826,11 @@ configuration files. * Lisp Changes in Emacs 21.4 + +** New macro with-local-quit temporarily sets inhibit-quit to nil for use +around potentially blocking or long-running code in timers +and post-command-hooks. + +++ ** New face attribute `min-colors' can be used to tailor the face color to the number of colors supported by a display, and define the @@ -1863,6 +1868,18 @@ identifying the current fringe bitmaps in the display line at a given buffer position. A nil value means no bitmap. +** Multiple overlay arrows can now be defined and managed via the new +variable `overlay-arrow-variable-list'. It contains a list of +varibles which contain overlay arrow position markers, including +the original `overlay-arrow-position' variable. + +Each variable on this list may have individual `overlay-arrow-string' +and `overlay-arrow-bitmap' properties that specify an overlay arrow +string (for non-window terminals) or fringe bitmap (for window +systems) to display at the corresponding overlay arrow position. +If either property is not set, the default `overlay-arrow-string' or +'overlay-arrow-fringe-bitmap' will be used. + +++ ** New function `line-number-at-pos' returns line number of current line in current buffer, or if optional buffer position is given, line
--- a/etc/TUTORIAL.fr Sat Mar 06 12:15:27 2004 +0000 +++ b/etc/TUTORIAL.fr Sun Mar 07 15:30:22 2004 +0000 @@ -638,7 +638,7 @@ correspond pas non plus à un fichier ; il contient la liste des messages apparus dans la ligne d'état pendant votre session Emacs. ->> Faites C-x C-b *Messages* <Entrée> pour visualiser le tampon des +>> Faites C-x b *Messages* <Entrée> pour visualiser le tampon des messages. Puis, faites C-x b TUTORIAL <Entrée> pour revenir à ce didacticiel.
--- a/leim/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/leim/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,20 @@ +2004-02-28 Kenichi Handa <handa@m17n.org> + + * Makefile.in (all): Depends on ${WORLD} instead of ${TIT} and + ${MISC-DIC}. + (clean, mostlyclean): Don't delete *.elc distributed with tarball. + (maintainer-clean): Delete files that are not in CVS repository. + + * makefile.nt (all): Depends on $(WORLD) instead of $(TIT) and + $(MISC-DIC). + (clean, mostlyclean): Don't delete *.elc distributed with tarball. + (maintainer-clean): Delete files that are not in CVS repository. + + * makefile.w32-in (all): Depends on $(WORLD) instead of $(TIT) and + $(MISC-DIC). + (clean, mostlyclean): Don't delete *.elc distributed with tarball. + (maintainer-clean): Delete files that are not in CVS repository. + 2004-02-16 J,bi(Br,bt(Bme Marant <jmarant@nerim.net> (tiny change) * Makefile.in (distclean maintainer-clean): Depend on clean.
--- a/leim/Makefile.in Sat Mar 06 12:15:27 2004 +0000 +++ b/leim/Makefile.in Sun Mar 07 15:30:22 2004 +0000 @@ -147,7 +147,7 @@ .el.elc: ${RUN-EMACS} -f batch-byte-compile $< -all: ${BUILT-EMACS} ${SUBDIRS} ${TIT} ${MISC-DIC} leim-list.el +all: ${BUILT-EMACS} ${SUBDIRS} ${WORLD} leim-list.el # To ensure that we can run Emacs. This target is ignored (never # being hit) if a user changes default value of EMACS. @@ -223,14 +223,17 @@ -chmod -R a+r ${INSTALLDIR} clean mostlyclean: - rm -f ${TIT} ${NON-TIT} ${WORLD} ${TIT:.elc=.el} \ - ${MISC-DIC} ${MISC-DIC:.elc=.el} leim-list.el + rm -f ${TIT} ${TIT:.elc=.el} ${MISC-DIC} ${MISC-DIC:.elc=.el} \ + leim-list.el -distclean maintainer-clean: clean +distclean: clean if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi rm -f Makefile -extraclean: distclean +maintainer-clean: distclean + rm -f ${WORLD} + +extraclean: maintainer-clean -rm -f *~ \#* m/?*~ s/?*~ # arch-tag: f666a939-8145-4d64-a6a6-cc1f61bd32ca
--- a/leim/makefile.nt Sat Mar 06 12:15:27 2004 +0000 +++ b/leim/makefile.nt Sun Mar 07 15:30:22 2004 +0000 @@ -132,7 +132,7 @@ TIT=$(CHINESE_TIT) NON_TIT=$(CHINESE_NON_TIT) $(JAPANESE) $(KOREAN) $(EUROPEAN) $(MISC) -all: $(BUILT_EMACS) $(SUBDIRS) $(TIT) $(MISC_DIC) leim-list.el +all: $(BUILT_EMACS) $(SUBDIRS) $(WORLD) leim-list.el # To ensure that we can run Emacs. This target is ignored (never # being hit) if a user changes default value of EMACS. @@ -196,11 +196,13 @@ for %%f in ($(TIT_EL:/=\)) do $(DEL) %%f for %%f in ($(MISC_DIC:/=\)) do $(DEL) %%f for %%f in ($(MISC_DIC_EL:/=\)) do $(DEL) %%f - for %%f in ($(WORLD:/=\)) do $(DEL) %%f $(DEL) leim-list.el -distclean maintainer-clean: +distclean: clean if exist stamp-subdir $(DELTREE) $(SUBDIRS) $(DEL) stamp-subdir +maintainer-clean: distclean + for %%f in ($(WORLD:/=\)) do $(DEL) %%f + # arch-tag: cded53b4-4803-496b-8c05-7daff80e5b3b
--- a/leim/makefile.w32-in Sat Mar 06 12:15:27 2004 +0000 +++ b/leim/makefile.w32-in Sun Mar 07 15:30:22 2004 +0000 @@ -142,7 +142,7 @@ .el.elc: $(RUN_EMACS) -f batch-byte-compile $< -all: $(BUILT_EMACS) $(SUBDIRS) $(TIT) $(MISC_DIC) leim-list.el +all: $(BUILT_EMACS) $(SUBDIRS) $(WORLD) leim-list.el # To ensure that we can run Emacs. This target is ignored (never # being hit) if a user changes default value of EMACS. @@ -192,14 +192,16 @@ clean mostlyclean: - $(FOREACH) $(TIT) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) - - $(FOREACH) $(WORLD) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) - $(FOREACH) $(MISC_DIC) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) - $(FOREACH) $(TIT:.elc=.el) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) - $(FOREACH) $(MISC_DIC:.elc=.el) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) - $(DEL) leim-list.el -distclean maintainer-clean: +distclean clean: if exist stamp-subdir $(DELTREE) $(SUBDIRS) - $(DEL) stamp-subdir +maintainer-clean: distclean + - $(FOREACH) $(WORLD) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR) + # arch-tag: 08250c45-fa9c-4f39-a175-a0c5c36dd67b
--- a/lib-src/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/lib-src/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,7 @@ +2004-03-01 Juanma Barranquero <lektu@terra.es> + + * makefile.w32-in (obj): Add fringe.c. + 2004-02-14 Paul Eggert <eggert@twinsun.com> * rcs2log: Work correctly if CVSROOT specifies :fork: or @@ -9,7 +13,7 @@ along with some related bugs I discovered by inspecting how CVS itself parses $CVSROOT. -2004-02-04 J,bi(Br,bt(Bme Marant <jmarant@nerim.net> (tiny) +2004-02-04 J,bi(Br,bt(Bme Marant <jmarant@nerim.net> (tiny change) * emacsclient.c (decode_options): Fix handling of alternate editor. @@ -1638,7 +1642,7 @@ Now used as element of a linked list. (patterns, num_patterns): Global variables deleted. (p_head): New global variable. - (forced_lang): New global variable (replaces lang_func). + (forced_lang): New global variable (replaces lang_func). (get_language_from_name, get_language_from_interpreter) (get_language_from_suffix): Semantics changed. All callers changed. (last_node): New global variable. @@ -2902,7 +2906,7 @@ * etags.c (lowcase): Use the standard tolower function. (substitute): Remove some wrong and some useless code related with - escape `\` character in regexp replacement string. + escape '\' character in regexp replacement string. (TEX_defenv): Added part, appendix, entry, index. Removed typeout. (lang_suffixes): New suffixes: .hpp for C++; .f90 for Fortran; .bib, .ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp; @@ -3923,7 +3927,7 @@ 1994-02-17 Francesco Potorti` (pot@cnuce.cnr.it) - * etags.c (--absolute-pathnames): option removed. + * etags.c (--absolute-pathnames): Option removed. 1994-02-16 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4384,8 +4388,8 @@ 1993-05-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - * Makefile.in: (${archlibdir}): Use `(cd foo && pwd)` instead of - `(cd foo ; pwd)` to get the canonical name of a directory; cd + * Makefile.in: (${archlibdir}): Use `(cd foo && pwd)' instead of + `(cd foo ; pwd)' to get the canonical name of a directory; cd might fail, and have pwd print out the current directory. * movemail.c [MAIL_USE_POP] (main): Don't use non-portable @@ -5070,7 +5074,7 @@ * etags.c (C_entries): Process token before handling end of line. When inner loops reach end of line, just back up. Let the real end of line processing happen in just one place. - (consider_token): Likewise. + (consider_token): Likewise. 1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu) @@ -5183,7 +5187,7 @@ 1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu) - * etags.c (getit): Recognize '$' as beginning identifiers. + * etags.c (getit): Recognize '$' as beginning identifiers. 1990-02-22 David Lawrence (tale@pogo.ai.mit.edu)
--- a/lib-src/makefile.w32-in Sat Mar 06 12:15:27 2004 +0000 +++ b/lib-src/makefile.w32-in Sun Mar 07 15:30:22 2004 +0000 @@ -126,7 +126,7 @@ # # From ..\src\makefile.nt. # -obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c casetab.c category.c ccl.c charset.c cm.c cmds.c coding.c data.c dired.c dispnew.c doc.c doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c floatfns.c fns.c fontset.c frame.c gmalloc.c indent.c insdel.c intervals.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c print.c process.c ralloc.c regex.c region-cache.c scroll.c search.c sound.c strftime.c syntax.c sysdep.c term.c termcap.c textprop.c tparam.c undo.c unexw32.c vm-limit.c w32.c w32console.c w32fns.c w32heap.c w32inevt.c w32menu.c w32proc.c w32reg.c w32select.c w32term.c w32xfns.c window.c xdisp.c xfaces.c xfaces.c +obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c casetab.c category.c ccl.c charset.c cm.c cmds.c coding.c data.c dired.c dispnew.c doc.c doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c floatfns.c fns.c fontset.c frame.c fringe.c gmalloc.c indent.c insdel.c intervals.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c print.c process.c ralloc.c regex.c region-cache.c scroll.c search.c sound.c strftime.c syntax.c sysdep.c term.c termcap.c textprop.c tparam.c undo.c unexw32.c vm-limit.c w32.c w32console.c w32fns.c w32heap.c w32inevt.c w32menu.c w32proc.c w32reg.c w32select.c w32term.c w32xfns.c window.c xdisp.c xfaces.c xfaces.c # # These are the lisp files that are loaded up in loadup.el #
--- a/lisp/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,18 +1,140 @@ +2004-03-05 Nick Roberts <nick@nick.uklinux.net> + + * gdb-ui.el (gdb-assembler-mode): Create a second overlay arrow + for the assembler buffer. + (gdb-assembler-custom): Position the overlay arrow. + (gdb-put-arrow, gdb-remove-arrow): Delete functions. + +2004-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * mail/sendmail.el (mail-mode): Set comment-start-skip. + + * newcomment.el (uncomment-region): Allow non-terminated comment. + (comment-normalize-vars): Check the user-specified comstart marker. + +2004-03-04 Jesper Harder <harder@ifa.au.dk> + + * sort.el (sort-columns): Don't use external 'sort' on ms-windows. + Otherwise, do use it if the region only contains font-lock text + properties. + +2004-03-04 Masatake YAMATO <jet@gyve.org> + + * hexl.el (hexl-mode): Set `hexl-print-current-point-info' + as the callback function for eldoc. + (hexl-print-current-point-info): New function. + (hexl-current-address): Print the address in both decimal + and hexadecimal format. + +2004-03-04 Richard M. Stallman <rms@gnu.org> + + * mail/rmail.el (rmail-convert-to-babyl-format): + Specify t for UNIBYTE when calling mail-unquote-printable-region. + + * mail/mail-utils.el (mail-unquote-printable-region): + New arg UNIBYTE. + + * startup.el (command-switch-alist): Doc fix. + + * simple.el (undo): Temporarily set this-command to `undo-start', + then set it to `undo' once undo-start returns without error. + + * simple.el (minibuffer-history-sexp-flag): Doc fix. + + * simple.el (kill-line): Don't disregard trailing whitespace + in eol condition, if show-trailing-whitespace is set. + + * mouse-sel.el (mouse-sel-has-been-enabled): New var. + (mouse-sel-mode): When enabling, set mouse-sel-has-been-enabled. + When disabling, restore old values only if mouse-sel-has-been-enabled. + + * isearch.el (isearch-*-char): New arg WANT-BACKSLASH. + (isearch-{-char): New function. + (isearch-mode-map): Bind { to isearch-{-char. + + * font-lock.el (lisp-font-lock-keywords-2): + Turn off the CL with-... and do-... general patterns. + Instead, recognize several specific with... and do... constructs. + + * files.el (switch-to-buffer-other-window): + Bind same-window-buffer-names and same-window-regexps to nil. + (switch-to-buffer-other-frame): Likewise. + +2004-03-03 Stefan Monnier <monnier@iro.umontreal.ca> + + * textmodes/fill.el (fill-comment-paragraph): Be more careful when + recognizing leading comment on code line. + +2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * textmodes/fill.el (fill-paragraph): Don't check comment-start-skip, + only comment-start (in case the mode hasn't set it). + + * Makefile.in (AUTOGENEL): New var. + (bootstrap-prepare): Rename from bootstrap-clean. + Don't remove elc files. + (maintainer-clean): New target. + + * xml.el (xml-get-attribute-or-nil): Simplify. + +2004-03-02 Juri Linkov <juri@jurta.org> + + * net/browse-url.el (browse-url-netscape, browse-url-mozilla) + (browse-url-galeon, browse-url-epiphany): Encode dollar signs in + URL to prevent their substitution with the environment variable + values by browsers. + +2004-03-03 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Doc fix. + (ps-print-version): New version number (6.6.3). + (ps-right-header, ps-right-footer, ps-left-header, ps-left-footer): + Docstring fix. + (ps-kill-emacs-check): Check if ps-print temporary buffer is killed + before printing. + (ps-time-stamp-yyyy-mm-dd): New fun. + (ps-time-stamp-iso8601): Alias for ps-time-stamp-yyyy-mm-dd. + +2004-03-02 Kim F. Storm <storm@cua.dk> + + * gdb-ui.el (gdb-mouse-toggle-breakpoint): Remove debug message. + +2004-03-01 Juanma Barranquero <lektu@terra.es> + + * allout.el (allout-rebullet-heading): Fix typo in docstring. + + * desktop.el (desktop-file-version) + (desktop-after-read-hook): Fix typos. + (desktop-clear-preserve-buffers): Remove redundant info in + docstring already shown by the obsolescence message. + (desktop-truncate, desktop-internal-v2s) + (desktop-value-to-string): Change argument name to match docstring. + + * emulation/tpu-edt.el (tpu-set-mark): Fix typo in docstring. + + * eshell/em-smart.el (eshell-smart-maybe-jump-to-end): Fix typo in + docstring. + +2004-02-29 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * printing.el: Replace "As Is..." in PostScript file print/preview by + "No Preprocessing...". Suggested by Colin Marquardt + <marquardt@zmd.de>. + (pr-insert-section-4): Adjust buffer interface. + 2004-02-29 Kai Grossjohann <kai.grossjohann@gmx.net> Version 2.0.39 of Tramp released. * net/tramp.el (tramp-handle-file-local-copy) - (tramp-handle-write-region, tramp-open-connection-rsh): Variable - name typo. Small change. From Patrick Tullmann + (tramp-handle-write-region, tramp-open-connection-rsh): + Variable name typo. Small change. From Patrick Tullmann <tullmann@flux.utah.edu>. (tramp-process-connection-type): New variable. (tramp-maybe-open-connection): Use it. - (tramp-do-copy-or-rename-via-buffer): Handle KEEP-DATE arg, if - possible. + (tramp-do-copy-or-rename-via-buffer): Handle KEEP-DATE arg if possible. (tramp-touch): Set last-modified time of a remote file. - (tramp-handle-write-region): Say which function is used when - encoding. + (tramp-handle-write-region): Say which function is used when encoding. 2004-02-29 Michael Albinus <Michael.Albinus@alcatel.de> @@ -28,7 +150,7 @@ output. If it was received chunkwise, there have been problems. Remove the "prompt not found" error message; it is obvious. Simplify algorithm. - (tramp-smb-process-running): Removed. Since we acknowledge the + (tramp-smb-process-running): Remove. Since we acknowledge the virtual prompt for shares, there's no need for distinction of reading shares (process ends afterwards) and interactive mode of smblient. @@ -38,23 +160,21 @@ (tramp-smb-maybe-open-connection): Set `process-connection-type' to 'pty. Suggested by Piet van Oostrum <piet@cs.uu.nl>. (top-level): Setting default value in `tramp-default-method-alist' - corrected. Order of USER and HOST have been wrong. Nobody - claimed for months ... - (tramp-smb-maybe-open-connection): Use - `tramp-process-connection-type'. - (tramp-smb-open-connection): Clear password cache if login has - failed. - - * net/tramp.el (tramp-completion-mode) Don't check for 'xemacs but + corrected. Order of USER and HOST have been wrong. + Nobody complaimed for months ... + (tramp-smb-maybe-open-connection): Use `tramp-process-connection-type'. + (tramp-smb-open-connection): Clear password cache if login has failed. + + * net/tramp.el (tramp-completion-mode) Don't check for 'xemacs' but `tramp-unified-filenames'. (tramp-completion-mode): Make test for XEmacs explicitely. - `event-to-character' can exists in Emacs packages too. Reported - by Matt Swift <swift@alum.mit.edu>. + `event-to-character' can exists in Emacs packages too. + Reported by Matt Swift <swift@alum.mit.edu>. (tramp-buffer-name): Buffer name must contain the user if exists. Reported by Adrian Phillips <a.phillips@met.no>. - (tramp-do-copy-or-rename-file): Handle out-of-band methods. Call - `tramp-do-copy-or-rename-file-out-of-band' this case. - (tramp-do-copy-or-rename-file-out-of-band): Renamed from + (tramp-do-copy-or-rename-file): Handle out-of-band methods. + Call `tramp-do-copy-or-rename-file-out-of-band' this case. + (tramp-do-copy-or-rename-file-out-of-band): Rename from `tramp-do-copy-or-rename-file-one-local', because it handles also the case both files use the same out-of-band method. Implementation added. @@ -70,16 +190,16 @@ (tramp-completion-function-alist): It's a defvar now, because we want to apply the optimized `tramp-set-completion-function' instead of a static list. - (tramp-set-completion-function): Implementation tuned. Avoid - double entries, and entries where the function or the + (tramp-set-completion-function): Implementation tuned. + Avoid double entries, and entries where the function or the file/directory doesn't exist. (tramp-parse-shostkeys, tramp-parse-sknownhosts): New functions for SSH2. (tramp-file-name-handler-alist): Add `dired-compress-file' entry. (tramp-handle-dired-compress-file): New function. (tramp-async-proc): New variable. - (tramp-handle-shell-command): Adding asynchronous processes. They - are far from being perfect, but it works at least for + (tramp-handle-shell-command): Adding asynchronous processes. + They are far from being perfect, but it works at least for `find-grep-dired' and `find-name-dired' in Emacs 21.4. (top-level): Require password.el if visible. Should be mandatory once No Gnus has found its way into (X)Emacs. @@ -87,8 +207,8 @@ `read-passwd' otherwise. `ange-ftp-read-passwd' isn't used as fallback any longer. (tramp-clear-passwd): New function. - (tramp-process-actions, tramp-process-multi-actions): Clear - password cache if login has failed. + (tramp-process-actions, tramp-process-multi-actions): + Clear password cache if login has failed. * net/tramp-ftp.el (Commentary): Remove pointer to EFS. It has its own module. @@ -119,8 +239,7 @@ relative directory names. (dired-at-point-prompter): Treat directories as a directory, get the directory component from files. - (ffap-string-at-point): Return string from region if region is - active. + (ffap-string-at-point): Return string from region if region is active. (ffap-file-at-point): Remove redundant code. 2004-02-28 Kim F. Storm <storm@cua.dk> @@ -140,8 +259,8 @@ (gdb-put-breakpoint-icon): New defun which displays a breakpoint icon in fringe (if available), or else as icon or text in display margin. Creates necessary icons in breakpoint-bitmap, - breakpoint-enabled-icon, and/or breakpoint-disabled-icon. Also - make left window margin if required. + breakpoint-enabled-icon, and/or breakpoint-disabled-icon. + Also make left window margin if required. (gdb-remove-breakpoint-icons): New defun to remove breakpoint icons inserted by gdb-put-breakpoint-icon. Remove left margin if no longer needed. @@ -152,7 +271,7 @@ 2004-02-27 Kevin Ryde <user42@zip.com.au> * info-look.el: In scheme-mode symbol regexp, disallow backquote and - comma, so that it DTRT in macros. + comma, so that it DTRT in macros. 2004-02-27 Markus Rost <rost@mathematik.uni-bielefeld.de> @@ -170,11 +289,10 @@ * font-lock.el (font-lock-comment-face, font-lock-string-face) (font-lock-keyword-face, font-lock-function-name-face) - (font-lock-variable-name-face, font-lock-constant-face): Use - `min-colors'. - - * isearch.el (isearch, isearch-lazy-highlight-face): Use - `min-colors'. + (font-lock-variable-name-face, font-lock-constant-face): + Use `min-colors'. + + * isearch.el (isearch, isearch-lazy-highlight-face): Use `min-colors'. 2004-02-25 Vinicius Jose Latorre <viniciusjl@ig.com.br> @@ -191,8 +309,8 @@ * ebnf-abn.el: New file, implements an ABNF parser. * ebnf2ps.el: Doc fix. Accept ABNF (Augmented BNF). New arrow shapes: - semi-up-hollow, semi-up-full, semi-down-hollow and semi-down-full. Fix - a bug on productions like test = {"test"}* | ( "tt" ["test"] ). + semi-up-hollow, semi-up-full, semi-down-hollow and semi-down-full. + Fix a bug on productions like test = {"test"}* | ( "tt" ["test"] ). Reported by Markus Dreyer <mdreyer@ix.urz.uni-heidelberg.de>. (ebnf-version): New version number (4.0). (ebnf-print-directory, ebnf-print-file, ebnf-spool-directory) @@ -238,10 +356,9 @@ (gdb-var-delete): Make interactive (really). (gdb-edit-value): Make non-interactive. - * progmodes/gud.el (gud-install-speedbar-variables): Bind - gdb-var-delete to "D". - (gud-speedbar-menu-items): Add gdb-var-delete and, indirectly, - gdb-edit-value. + * progmodes/gud.el (gud-speedbar-menu-items): + Add gdb-var-delete and, indirectly, gdb-edit-value. + (gud-install-speedbar-variables): Bind gdb-var-delete to "D". (gud-speedbar-buttons): Remove gdb-var-delete from tag-line. (gud-gdb-marker-filter): Add comment for annotations. @@ -260,8 +377,7 @@ 2004-02-21 Stephen Compall <s11@member.fsf.org> * saveplace.el (save-place-forget-unreadable-files) - (save-place-save-skipped, save-place-skip-check-regexp): New - defcustoms. + (save-place-save-skipped, save-place-skip-check-regexp): New vars. (save-place-forget-unreadable-files): New function. (save-place-alist-to-file): Use it to filter out files that are no longer readable. @@ -293,7 +409,7 @@ 2004-02-20 John Wiegley <johnw@newartisans.com> - * eshell/em-pred.el (eshell-modifier-alist): Changed the "eval + * eshell/em-pred.el (eshell-modifier-alist): Change the "eval again" modifier from 'e' to 'E', since 'e' is also used by the "file extension" modifier. @@ -312,8 +428,8 @@ * gdb-ui.el (gdb-use-colon-colon-notation): Set default to nil for case of variables defined in compound statements. - (gdb-setup-windows, gdb-source-info, gdb-source-info): Simplify - constructions using switch-to-buffer. + (gdb-setup-windows, gdb-source-info, gdb-source-info): + Simplify constructions using switch-to-buffer. 2004-02-19 Simon Josefsson <jas@extundo.com> @@ -401,7 +517,7 @@ * rmail-spam-filter.el: (vm-use-spam-filter) (rsf-min-region-length-added-to-spam-list): New variables. (rsf-bbdb-auto-delete-spam-bbdb-entries): Rename from - rmail-bbdb-auto-delete-spam-entries. Added cc: to recipients for + rmail-bbdb-auto-delete-spam-entries. Add cc: to recipients for spam testing. Don't delete spam message if automatic deletion after output via variable rmail-delete-after-output is turned on. (rsf-bbdb-dont-create-entries-for-deleted-messages): Rename from @@ -571,6 +687,7 @@ (diff, diff-backup): Use it. (diff): Clean up the args construction. Use backquote. Use listp instead of consp to avoid putting a nil arg. + (diff): Add a revert-buffer function. 2004-02-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> @@ -3061,7 +3178,7 @@ 2003-08-26 Glenn Morris <gmorris@ast.cam.ac.uk> - * mail/smtpmail.el Fix previous change: + * mail/smtpmail.el: Fix previous change. (smtpmail-send-queued-mail): Set smtpmail-mail-address before calling smtpmail-via-smtp. (smtpmail-via-smtp): Add fall-back values for envelope-from.
--- a/lisp/Makefile.in Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/Makefile.in Sun Mar 07 15:30:22 2004 +0000 @@ -1,5 +1,5 @@ # Maintenance productions for the Lisp directory -# Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 2000, 01, 03, 2004 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -110,6 +110,13 @@ $(lisp)/term/wyse50.el \ $(lisp)/version.el +# Elisp files auto-generated. +AUTOGENEL = loaddefs.el \ + cus-load.el \ + finder-inf.el \ + subdirs.el \ + eshell/esh-groups.el + # Files to compile before others during a bootstrap. This is done to # speed up the bootstrap process. The CC files are compiled first # because CC mode tweaks the compilation process, and requiring @@ -131,14 +138,14 @@ setwins=subdirs=`find $$wd -type d -print`; \ for file in $$subdirs; do \ - case $$file in */Old | */RCS | */CVS | */CVS/* | */.arch-ids | */.arch-ids/* | */=* ) ;; \ + case $$file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* ) ;; \ *) wins="$$wins $$file" ;; \ esac; \ done setwins_almost=subdirs=`find $$wd -type d -print`; \ for file in $$subdirs; do \ - case $$file in */Old | */RCS | */CVS | */CVS/* | */=* | */obsolete | */term ) ;; \ + case $$file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; \ *) wins="$$wins $$file" ;; \ esac; \ done @@ -294,11 +301,8 @@ # it's necessary for generating the binary (because loaddefs.el is an # automatically generated file, we don't want to store it in the source # repository). -# -# Remove compiled Lisp files so that bootstrap-emacs will be built from -# sources only. -bootstrap-clean: +bootstrap-prepare: if test -x $(EMACS); then \ $(MAKE) $(MFLAGS) autoloads; \ else \ @@ -306,7 +310,9 @@ cp $(lisp)/ldefs-boot.el $(lisp)/loaddefs.el; \ fi \ fi - cd $(lisp); rm -f *.elc */*.elc + +maintainer-clean: + cd $(lisp); rm -f *.elc */*.elc $(AUTOGENEL) # Generate/update files for the bootstrap process.
--- a/lisp/allout.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/allout.el Sun Mar 07 15:30:22 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Ken Manheimer <klm@zope.com> ;; Maintainer: Ken Manheimer <klm@zope.com> ;; Created: Dec 1991 - first release to usenet -;; Version: $Id: allout.el,v 1.45 2003/10/16 16:28:30 eliz Exp $|| +;; Version: $Id: allout.el,v 1.46 2004/03/01 22:44:04 lektu Exp $|| ;; Keywords: outlines mode wp languages ;; This file is part of GNU Emacs. @@ -508,7 +508,7 @@ ;;;_ : Version ;;;_ = allout-version (defvar allout-version - (let ((rcs-rev "$Revision: 1.45 $")) + (let ((rcs-rev "$Revision: 1.46 $")) (condition-case err (save-match-data (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev) @@ -3015,9 +3015,9 @@ numbered form. It has effect only if `allout-numbered-bullet' is non-nil and soliciting was not explicitly invoked (via first arg). Its effect, numbering or denumbering, then depends on the setting -of the forth arg, INDEX. - -If NUMBER-CONTROL is non-nil and forth arg INDEX is nil, then the +of the fourth arg, INDEX. + +If NUMBER-CONTROL is non-nil and fourth arg INDEX is nil, then the prefix of the topic is forced to be non-numbered. Null index and non-nil NUMBER-CONTROL forces denumbering. Non-nil INDEX (and non-nil NUMBER-CONTROL) forces a numbered-prefix form. If non-nil
--- a/lisp/desktop.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/desktop.el Sun Mar 07 15:30:22 2004 +0000 @@ -90,7 +90,7 @@ (mapcar 'require '(info dired reporter))) (defvar desktop-file-version "206" - "Verion number of desktop file format. + "Version number of desktop file format. Written into the desktop file and used at desktop read to provide backward compatibility.") @@ -163,7 +163,7 @@ :group 'desktop) (defcustom desktop-after-read-hook nil - "Normal hook run after a sucessful `desktop-read'. + "Normal hook run after a successful `desktop-read'. May e.g. be used to show a buffer list." :type 'hook :group 'desktop) @@ -212,8 +212,7 @@ ;; Maintained for backward compatibility (defcustom desktop-clear-preserve-buffers nil "*List of buffer names that `desktop-clear' should not delete. -This variable is maintained for backward compatibility only. Use -`desktop-clear-preserve-buffers-regexp' instead." +This variable is maintained for backward compatibility only." :type '(repeat string) :group 'desktop) (make-obsolete-variable 'desktop-clear-preserve-buffers @@ -349,9 +348,9 @@ "Hooks run after all buffers are loaded; intended for internal use.") ;; ---------------------------------------------------------------------------- -(defun desktop-truncate (l n) +(defun desktop-truncate (list n) "Truncate LIST to at most N elements destructively." - (let ((here (nthcdr (1- n) l))) + (let ((here (nthcdr (1- n) list))) (if (consp here) (setcdr here nil)))) @@ -424,22 +423,22 @@ value))) ;; ---------------------------------------------------------------------------- -(defun desktop-internal-v2s (val) +(defun desktop-internal-v2s (value) "Convert VALUE to a pair (QUOTE . TXT); (eval (read TXT)) gives VALUE. 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 val) (null val) (eq t val)) - (cons 'may (prin1-to-string val))) - ((stringp val) - (let ((copy (copy-sequence val))) + ((or (numberp value) (null value) (eq t value)) + (cons 'may (prin1-to-string value))) + ((stringp value) + (let ((copy (copy-sequence value))) (set-text-properties 0 (length copy) nil copy) ;; Get rid of text properties because we cannot read them (cons 'may (prin1-to-string copy)))) - ((symbolp val) - (cons 'must (prin1-to-string val))) - ((vectorp val) + ((symbolp value) + (cons 'must (prin1-to-string value))) + ((vectorp value) (let* ((special nil) (pass1 (mapcar (lambda (el) @@ -447,7 +446,7 @@ (if (null (car res)) (setq special t)) res)) - val))) + value))) (if special (cons nil (concat "(vector " (mapconcat (lambda (el) @@ -458,8 +457,8 @@ " ") ")")) (cons 'may (concat "[" (mapconcat 'cdr pass1 " ") "]"))))) - ((consp val) - (let ((p val) + ((consp value) + (let ((p value) newlist use-list* anynil) @@ -489,13 +488,13 @@ ")")) (cons 'must (concat "(" (mapconcat 'cdr newlist " ") ")"))))) - ((subrp val) + ((subrp value) (cons nil (concat "(symbol-function '" - (substring (prin1-to-string val) 7 -1) + (substring (prin1-to-string value) 7 -1) ")"))) - ((markerp val) - (let ((pos (prin1-to-string (marker-position val))) - (buf (prin1-to-string (buffer-name (marker-buffer val))))) + ((markerp value) + (let ((pos (prin1-to-string (marker-position value))) + (buf (prin1-to-string (buffer-name (marker-buffer value))))) (cons nil (concat "(let ((mk (make-marker)))" " (add-hook 'desktop-delay-hook" " (list 'lambda '() (list 'set-marker mk " @@ -504,12 +503,12 @@ (cons 'may "\"Unprintable entity\"")))) ;; ---------------------------------------------------------------------------- -(defun desktop-value-to-string (val) +(defun desktop-value-to-string (value) "Convert VALUE to a string that when read evaluates to the same value. Not all types of values are supported." (let* ((print-escape-newlines t) (float-output-format nil) - (quote.txt (desktop-internal-v2s val)) + (quote.txt (desktop-internal-v2s value)) (quote (car quote.txt)) (txt (cdr quote.txt))) (if (eq quote 'must)
--- a/lisp/emulation/tpu-edt.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/emulation/tpu-edt.el Sun Mar 07 15:30:22 2004 +0000 @@ -551,7 +551,7 @@ (t (mark)))) (defun tpu-set-mark (pos) - "TPU-edt verion of the `set-mark' function. + "TPU-edt version of the `set-mark' function. Sets the mark at POS and activates the region according to the current version of Emacs." (set-mark pos)
--- a/lisp/eshell/em-smart.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/eshell/em-smart.el Sun Mar 07 15:30:22 2004 +0000 @@ -242,7 +242,7 @@ (defun eshell-smart-maybe-jump-to-end () "Jump to the end of the input buffer. -This is done whenever a command exits sucessfully and both the command +This is done whenever a command exits successfully and both the command and the end of the buffer are still visible." (when (and (= eshell-last-command-status 0) (if (eq eshell-review-quick-commands 'not-even-short-output)
--- a/lisp/files.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/files.el Sun Mar 07 15:30:22 2004 +0000 @@ -855,7 +855,9 @@ This uses the function `display-buffer' as a subroutine; see its documentation for additional customization information." (interactive "BSwitch to buffer in other window: ") - (let ((pop-up-windows t)) + (let ((pop-up-windows t) + ;; Don't let these interfere. + same-window-buffer-names same-window-regexps) (pop-to-buffer buffer t norecord))) (defun switch-to-buffer-other-frame (buffer &optional norecord) @@ -866,7 +868,8 @@ This uses the function `display-buffer' as a subroutine; see its documentation for additional customization information." (interactive "BSwitch to buffer in other frame: ") - (let ((pop-up-frames t)) + (let ((pop-up-frames t) + same-window-buffer-names same-window-regexps) (pop-to-buffer buffer t norecord) (raise-frame (window-frame (selected-window)))))
--- a/lisp/font-lock.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/font-lock.el Sun Mar 07 15:30:22 2004 +0000 @@ -1890,10 +1890,13 @@ "condition-case" "track-mouse" "eval-after-load" "eval-and-compile" "eval-when-compile" "eval-when" + "with-category-table" "with-current-buffer" "with-electric-help" + "with-local-quit" "with-no-warnings" "with-output-to-string" "with-output-to-temp-buffer" + "with-selected-window" "with-syntax-table" "with-temp-buffer" "with-temp-file" "with-temp-message" - "with-timeout") t) + "with-timeout" "with-timeout-handler") t) "\\>") 1) ;; @@ -1908,7 +1911,13 @@ "proclaim" "declaim" "declare" "symbol-macrolet" "lexical-let" "lexical-let*" "flet" "labels" "compiler-let" "destructuring-bind" "macrolet" "tagbody" "block" - "return" "return-from") t) + "return" "return-from" + "with-accessors" "with-compilation-unit" + "with-condition-restarts" "with-hash-table-iterator" + "with-input-from-string" "with-open-file" + "with-open-stream" "with-output-to-string" + "with-package-iterator" "with-simple-restart" + "with-slots" "with-standard-io-syntax") t) "\\>") 1) ;; @@ -1933,8 +1942,11 @@ ;; ELisp and CLisp `&' keywords as types. '("\\&\\sw+\\>" . font-lock-type-face) ;; - ;; CL `with-' and `do-' constructs - '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) +;;; This is too general -- rms. +;;; A user complained that he has functions whose names start with `do' +;;; and that they get the wrong color. +;;; ;; CL `with-' and `do-' constructs +;;; '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) ))) "Gaudy level highlighting for Lisp modes.")
--- a/lisp/gdb-ui.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/gdb-ui.el Sun Mar 07 15:30:22 2004 +0000 @@ -1087,7 +1087,6 @@ (interactive "e") (mouse-minibuffer-check event) (let ((posn (event-end event))) - (message "pt=%S posn=%S" (posn-point posn) posn) (if (numberp (posn-point posn)) (with-selected-window (posn-window posn) (save-excursion @@ -1808,32 +1807,6 @@ left-margin-width right-margin-width)))) -(defun gdb-put-arrow (putstring pos) - "Put arrow string PUTSTRING in the left margin in front of POS -in the current buffer. PUTSTRING is displayed by putting an -overlay into the current buffer with a `before-string' -\"gdb-arrow\" that has a `display' property whose value is -PUTSTRING. POS may be an integer or marker." - (let ((gdb-string "gdb-arrow") - (buffer (current-buffer))) - (let ((overlay (make-overlay pos pos buffer)) - (prop (list (list 'margin 'left-margin) putstring))) - (put-text-property 0 (length gdb-string) 'display prop gdb-string) - (overlay-put overlay 'put-arrow t) - (overlay-put overlay 'before-string gdb-string)))) - -(defun gdb-remove-arrow (&optional buffer) - "Remove arrow in BUFFER. -Remove only images that were put in BUFFER with calls to `put-arrow'. -BUFFER nil or omitted means use the current buffer." - (unless buffer - (setq buffer (current-buffer))) - (let ((overlays (overlays-in (point-min) (point-max)))) - (while overlays - (let ((overlay (car overlays))) - (when (overlay-get overlay 'put-arrow) - (delete-overlay overlay))) - (setq overlays (cdr overlays))))) ;; ;; Assembler buffer. @@ -1850,16 +1823,20 @@ (defun gdb-assembler-custom () (let ((buffer (gdb-get-buffer 'gdb-assembler-buffer)) - (gdb-arrow-position 1) (address) (flag)) + (pos 1) (address) (flag)) (with-current-buffer buffer (if (not (equal gdb-current-address "main")) (progn - (gdb-remove-arrow) (goto-char (point-min)) (if (re-search-forward gdb-current-address nil t) (progn - (setq gdb-arrow-position (point)) - (gdb-put-arrow "=>" (point)))))) + (setq pos (point)) + (setq gdb-overlay-arrow-string "=>") + (beginning-of-line) + (or gdb-overlay-arrow-position + (setq gdb-overlay-arrow-position (make-marker))) + (set-marker gdb-overlay-arrow-position + (point) (current-buffer)))))) ;; remove all breakpoint-icons in assembler buffer before updating. (gdb-remove-breakpoint-icons (point-min) (point-max))) (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) @@ -1880,7 +1857,7 @@ (if (re-search-forward address nil t) (gdb-put-breakpoint-icon (eq flag ?y)))))))) (if (not (equal gdb-current-address "main")) - (set-window-point (get-buffer-window buffer) gdb-arrow-position)))) + (set-window-point (get-buffer-window buffer) pos)))) (defvar gdb-assembler-mode-map (let ((map (make-sparse-keymap))) @@ -1893,6 +1870,8 @@ \\{gdb-assembler-mode-map}" (setq major-mode 'gdb-assembler-mode) (setq mode-name "Machine") + (push 'gdb-overlay-arrow-position overlay-arrow-variable-list) + (setq gdb-overlay-arrow-position nil) (setq fringes-outside-margins t) (setq buffer-read-only t) (use-local-map gdb-assembler-mode-map)
--- a/lisp/gnus/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/gnus/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,7 @@ +2004-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * message.el (message-mode): Set comment-start-skip. + 2004-02-08 Andreas Schwab <schwab@suse.de> * nnlistserv.el (nnlistserv-kk-wash-article): Fix paren nesting. @@ -30,8 +34,8 @@ 2003-05-06 Jesper Harder <harder@ifa.au.dk> - * gnus-cus.el (gnus-group-customize, gnus-score-parameters): Don't - quote nil and t in docstrings. + * gnus-cus.el (gnus-group-customize, gnus-score-parameters): + Don't quote nil and t in docstrings. * gnus-score.el (gnus-score-lower-thread): Likewise. @@ -47,8 +51,7 @@ 2003-02-18 Juanma Barranquero <lektu@terra.es> - * ietf-drums.el (ietf-drums-remove-whitespace): Fix character - constant. + * ietf-drums.el (ietf-drums-remove-whitespace): Fix character constant. 2003-02-14 Juanma Barranquero <lektu@terra.es>
--- a/lisp/gnus/message.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/gnus/message.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,5 +1,5 @@ ;;; message.el --- composing mail and news messages -*- coding: iso-latin-1 -*- -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -1531,7 +1531,10 @@ (set (make-local-variable 'message-mime-part) 0) (message-setup-fill-variables) ;; Allow using comment commands to add/remove quoting. - (set (make-local-variable 'comment-start) message-yank-prefix) + (when message-yank-prefix + (set (make-local-variable 'comment-start) message-yank-prefix) + (set (make-local-variable 'comment-start-skip) + (concat "^" (regexp-quote message-yank-prefix) "[ \t]*"))) ;;(when (fboundp 'mail-hist-define-keys) ;; (mail-hist-define-keys)) (if (featurep 'xemacs)
--- a/lisp/help-at-pt.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/help-at-pt.el Sun Mar 07 15:30:22 2004 +0000 @@ -101,7 +101,7 @@ If a timer is already active, there are two ways to make the new value take effect immediately. After setting the value, you can first call `help-at-pt-cancel-timer' and then set a new timer -with `help-at-pt-set-timer' . Alternatively, you can set this +with `help-at-pt-set-timer'. Alternatively, you can set this variable through Custom. This will not set a timer if none is active, but if one is already active, Custom will make it use the new value."
--- a/lisp/hexl.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/hexl.el Sun Mar 07 15:30:22 2004 +0000 @@ -42,6 +42,8 @@ ;;; Code: +(require 'eldoc) + ;; ;; vars here ;; @@ -236,6 +238,13 @@ (add-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer nil t) + ;; Set a callback function for eldoc. + (set (make-variable-buffer-local 'eldoc-print-current-symbol-info-function) + 'hexl-print-current-point-info) + (eldoc-add-command-completions "hexl-") + (eldoc-remove-command "hexl-save-buffer" + "hexl-current-address") + (if hexl-follow-ascii (hexl-follow-ascii 1))) (run-hooks 'hexl-mode-hook)) @@ -361,9 +370,15 @@ (- current-column 41) (/ (- current-column (/ current-column 5)) 2)))) (when (interactive-p) - (message "Current address is %d" hexl-address)) + (message "Current address is %d/0x%08x" hexl-address hexl-address)) hexl-address)) +(defun hexl-print-current-point-info () + "Return current hexl-address in string. +This function is indented to be used as eldoc callback." + (let ((addr (hexl-current-address))) + (format "Current address is %d/0x%08x" addr addr))) + (defun hexl-address-to-marker (address) "Return buffer position for ADDRESS." (interactive "nAddress: ")
--- a/lisp/isearch.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/isearch.el Sun Mar 07 15:30:22 2004 +0000 @@ -301,6 +301,7 @@ ;; 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. @@ -1186,21 +1187,30 @@ (isearch-update)) +(defun isearch-{-char () + "Handle \{ specially in regexps." + (interactive) + (isearch-*-char t)) + ;; *, ?, and | chars can make a regexp more liberal. ;; They can make a regexp match sooner or make it succeed instead of failing. ;; So go back to place last successful search started ;; or to the last ^S/^R (barrier), whichever is nearer. ;; + needs no special handling because the string must match at least once. -(defun isearch-*-char () - "Handle * and ? specially in regexps." +(defun isearch-*-char (&optional want-backslash) + "Handle * and ? specially in regexps. +When WANT-BACKSLASH is non-nil, do special handling for \{." (interactive) (if isearch-regexp (let ((idx (length isearch-string))) (while (and (> idx 0) (eq (aref isearch-string (1- idx)) ?\\)) (setq idx (1- idx))) - (when (= (mod (- (length isearch-string) idx) 2) 0) + ;; * and ? are special when not preceded by \. + ;; { is special when it is preceded by \. + (when (= (mod (- (length isearch-string) idx) 2) + (if want-backslash 1 0)) (setq isearch-adjusted t) ;; Get the isearch-other-end from before the last search. ;; We want to start from there,
--- a/lisp/mail/mail-utils.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/mail/mail-utils.el Sun Mar 07 15:30:22 2004 +0000 @@ -108,11 +108,15 @@ (apply 'concat (nreverse (cons (substring string i) strings)))))) ;;;###autoload -(defun mail-unquote-printable-region (beg end &optional wrapper noerror) +(defun mail-unquote-printable-region (beg end &optional wrapper noerror + unibyte) "Undo the \"quoted printable\" encoding in buffer from BEG to END. If the optional argument WRAPPER is non-nil, we expect to find and remove the wrapper characters =?ISO-8859-1?Q?....?=. -If NOERROR is non-nil, return t if successful." +If NOERROR is non-nil, return t if successful. +If UNIBYTE is non-nil, insert converted characters as unibyte. +That is useful if you are going to character code decoding afterward, +as Rmail does." (interactive "r\nP") (let (failed) (save-match-data @@ -131,13 +135,16 @@ ((= (char-after (match-beginning 1)) ?=) (replace-match "=")) ((match-beginning 2) - (replace-match - (make-string 1 - (+ (* 16 (mail-unquote-printable-hexdigit - (char-after (match-beginning 2)))) - (mail-unquote-printable-hexdigit - (char-after (1+ (match-beginning 2)))))) - t t)) + (let ((char (+ (* 16 (mail-unquote-printable-hexdigit + (char-after (match-beginning 2)))) + (mail-unquote-printable-hexdigit + (char-after (1+ (match-beginning 2))))))) + (if unibyte + (progn + (replace-match "") + ;; insert-char will insert this as unibyte, + (insert-char char 1)) + (replace-match (make-string 1 char) t t)))) (noerror (setq failed t)) (t
--- a/lisp/mail/rmail.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/mail/rmail.el Sun Mar 07 15:30:22 2004 +0000 @@ -1733,7 +1733,7 @@ (if quoted-printable-header-field-end (save-excursion (unless - (mail-unquote-printable-region header-end (point) nil t) + (mail-unquote-printable-region header-end (point) nil t t) (message "Malformed MIME quoted-printable message")) ;; Change "quoted-printable" to "8bit", ;; to reflect the decoding we just did. @@ -1880,7 +1880,7 @@ (if quoted-printable-header-field-end (save-excursion (unless - (mail-unquote-printable-region header-end (point) nil t) + (mail-unquote-printable-region header-end (point) nil t t) (message "Malformed MIME quoted-printable message")) ;; Change "quoted-printable" to "8bit", @@ -1917,7 +1917,10 @@ (goto-char (point-min)) (while (search-forward "\n\^_" nil t); single char (replace-match "\n^_")))); 2 chars: "^" and "_" - (or (bolp) (newline)) ; in case we lost the final newline. + ;; This is for malformed messages that don't end in newline. + ;; There shouldn't be any, but some users say occasionally + ;; there are some. + (or (bolp) (newline)) (insert ?\^_) (setq last-coding-system-used nil) (or rmail-enable-mime
--- a/lisp/mail/sendmail.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/mail/sendmail.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,6 @@ ;;; sendmail.el --- mail sending commands for Emacs. -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 98, 2000, 2001, 2002, 2003 +;; Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 98, 2000, 2001, 2002, 03, 2004 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -512,6 +512,9 @@ ;; Allow using comment commands to add/remove quoting (this only does ;; anything if mail-yank-prefix is set to a non-nil value). (set (make-local-variable 'comment-start) mail-yank-prefix) + (if mail-yank-prefix + (set (make-local-variable 'comment-start-skip) + (concat "^" (regexp-quote mail-yank-prefix) "[ \t]*"))) (make-local-variable 'adaptive-fill-regexp) (setq adaptive-fill-regexp (concat "[ \t]*[-[:alnum:]]+>+[ \t]*\\|"
--- a/lisp/mouse-sel.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/mouse-sel.el Sun Mar 07 15:30:22 2004 +0000 @@ -196,6 +196,9 @@ ;;=== User Command ======================================================== +(defvar mouse-sel-has-been-enabled nil + "Non-nil if Mouse Sel mode has been enabled at least once.") + (defvar mouse-sel-original-bindings nil) (defvar mouse-sel-original-interprogram-cut-function nil) (defvar mouse-sel-original-interprogram-paste-function nil) @@ -252,7 +255,8 @@ (setq mouse-sel-original-interprogram-cut-function interprogram-cut-function mouse-sel-original-interprogram-paste-function - interprogram-paste-function) + interprogram-paste-function + mouse-sel-has-been-enabled t) (unless (eq mouse-sel-default-bindings 'interprogram-cut-paste) (setq interprogram-cut-function nil interprogram-paste-function nil)))) @@ -261,10 +265,13 @@ (remove-hook 'x-lost-selection-hooks 'mouse-sel-lost-selection-hook) (dolist (binding mouse-sel-original-bindings) (global-set-key (car binding) (cdr binding))) - (setq interprogram-cut-function - mouse-sel-original-interprogram-cut-function - interprogram-paste-function - mouse-sel-original-interprogram-paste-function))) + ;; Restore the old values of these variables, + ;; only if they were actually saved previously. + (if mouse-sel-has-been-enabled + (setq interprogram-cut-function + mouse-sel-original-interprogram-cut-function + interprogram-paste-function + mouse-sel-original-interprogram-paste-function)))) ;;=== Internal Variables/Constants ========================================
--- a/lisp/net/browse-url.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/net/browse-url.el Sun Mar 07 15:30:22 2004 +0000 @@ -818,8 +818,8 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) ;; URL encode any `confusing' characters in the URL. This needs to - ;; include at least commas; presumably also close parens. - (while (string-match "[,)]" url) + ;; include at least commas; presumably also close parens and dollars. + (while (string-match "[,)$]" url) (setq url (replace-match (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment)) @@ -889,8 +889,8 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) ;; URL encode any `confusing' characters in the URL. This needs to - ;; include at least commas; presumably also close parens. - (while (string-match "[,)]" url) + ;; include at least commas; presumably also close parens and dollars. + (while (string-match "[,)$]" url) (setq url (replace-match (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment)) @@ -942,8 +942,8 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) ;; URL encode any `confusing' characters in the URL. This needs to - ;; include at least commas; presumably also close parens. - (while (string-match "[,)]" url) + ;; include at least commas; presumably also close parens and dollars. + (while (string-match "[,)$]" url) (setq url (replace-match (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment)) @@ -991,8 +991,8 @@ used instead of `browse-url-new-window-flag'." (interactive (browse-url-interactive-arg "URL: ")) ;; URL encode any `confusing' characters in the URL. This needs to - ;; include at least commas; presumably also close parens. - (while (string-match "[,)]" url) + ;; include at least commas; presumably also close parens and dollars. + (while (string-match "[,)$]" url) (setq url (replace-match (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment))
--- a/lisp/newcomment.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/newcomment.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,6 @@ ;;; newcomment.el --- (un)comment regions of buffers -;; Copyright (C) 1999,2000,2003 Free Software Foundation Inc. +;; Copyright (C) 1999,2000,2003,2004 Free Software Foundation Inc. ;; Author: code extracted from Emacs-20's simple.el ;; Maintainer: Stefan Monnier <monnier@cs.yale.edu> @@ -251,8 +251,10 @@ the variables are properly set." (unless (and (not comment-start) noerror) (unless comment-start - (set (make-local-variable 'comment-start) - (read-string "No comment syntax is defined. Use: "))) + (let ((cs (read-string "No comment syntax is defined. Use: "))) + (if (zerop (length cs)) + (error "No comment syntax defined") + (set (make-local-variable 'comment-start) cs)))) ;; comment-use-syntax (when (eq comment-use-syntax 'undecided) (set (make-local-variable 'comment-use-syntax) @@ -716,35 +718,9 @@ ;; Find the end of the comment. (ept (progn (goto-char spt) - (unless - (or - (comment-forward) - ;; Allow eob as comment-end instead of \n. - (and - (eobp) - (let ((s1 (aref (syntax-table) (char-after spt))) - (s2 (aref (syntax-table) - (or (char-after (1+ spt)) 0))) - (sn (aref (syntax-table) ?\n)) - (flag->b (car (string-to-syntax "> b"))) - (flag-1b (car (string-to-syntax " 1b"))) - (flag-2b (car (string-to-syntax " 2b")))) - (cond - ;; One-character comment-start terminated by - ;; \n. - ((and - (equal sn (string-to-syntax ">")) - (equal s1 (string-to-syntax "<"))) - (insert-char ?\n 1) - t) - ;; Two-character type b comment-start - ;; terminated by \n. - ((and - (= (logand (car sn) flag->b) flag->b) - (= (logand (car s1) flag-1b) flag-1b) - (= (logand (car s2) flag-2b) flag-2b)) - (insert-char ?\n 1) - t))))) + (unless (or (comment-forward) + ;; Allow non-terminated comments. + (eobp)) (error "Can't find the comment end")) (point))) (box nil)
--- a/lisp/pcvs-info.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/pcvs-info.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,7 @@ ;;; pcvs-info.el --- internal representation of a fileinfo entry -;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2004 +;; Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: pcl-cvs @@ -219,8 +220,8 @@ (file (cvs-fileinfo->file fileinfo)) (default-directory (file-name-as-directory (expand-file-name dir))) (files (directory-files "." nil - (concat "^" (regexp-quote cvs-bakprefix) - (regexp-quote file) "\\."))) + (concat "\\`" (regexp-quote cvs-bakprefix) + (regexp-quote file) "\\(\\.[0-9]+\\.[0-9]+\\)+\\'"))) bf) (dolist (f files bf) (when (and (file-readable-p f)
--- a/lisp/printing.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/printing.el Sun Mar 07 15:30:22 2004 +0000 @@ -5,13 +5,13 @@ ;; Author: Vinicius Jose Latorre <vinicius@cpqd.com.br> ;; Maintainer: Vinicius Jose Latorre <vinicius@cpqd.com.br> -;; Time-stamp: <2004/02/26 00:43:07 vinicius> +;; Time-stamp: <2004/02/29 23:18:15 vinicius> ;; Keywords: wp, print, PostScript ;; Version: 6.7.2 ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ (defconst pr-version "6.7.2" - "printing.el, v 6.7.2 <2004/02/26 vinicius> + "printing.el, v 6.7.2 <2004/02/29 vinicius> Please send all bug fixes and enhancements to Vinicius Jose Latorre <vinicius@cpqd.com.br> @@ -517,7 +517,7 @@ ;; 5 | Print >|---\ | |Despool... | | ;; 6 | Text Printer: name >|-\ | | +-----------+ | ;; +-----------------------------+ | | | +---------+ +------------+ -;; III 7 |[ ]Landscape | | | \-|Directory| | As Is... | Ia +;; III 7 |[ ]Landscape | | | \-|Directory| | No Prep... | Ia ;; 8 |[ ]Print Header | | | |Buffer | +------------+ Ib ;; 9 |[ ]Print Header Frame | | | |Region | | name >|- C ;; 10 |[ ]Line Number | | | +---------+ +------------+ @@ -581,8 +581,8 @@ ;; ;; NOTE 2: There are the following options for PostScript file ;; processing: -;; Ia. Print the file *as is*, that is, send it directly to -;; PostScript printer. +;; Ia. Print the file *No Preprocessing*, that is, send it +;; directly to PostScript printer. ;; Ib. PostScript utility processing selection. ;; See `pr-ps-utility-alist' and `pr-setting-database' for ;; documentation. @@ -2415,7 +2415,7 @@ ["Other..." (pr-ps-mode-preview nil t) :keys "\\[pr-ps-mode-preview]"]) ("File" - ["As Is..." (call-interactively 'pr-ps-file-preview) + ["No Preprocessing..." (call-interactively 'pr-ps-file-preview) :keys "\\[pr-ps-file-preview]" :help "Preview PostScript file"] "--" @@ -2470,7 +2470,7 @@ ["Other..." (pr-ps-mode-ps-print nil t) :keys "\\[pr-ps-mode-ps-print]"]) ("File" - ["As Is..." (call-interactively 'pr-ps-file-ps-print) + ["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print) :keys "\\[pr-ps-file-ps-print]" :help "Send PostScript file to printer"] "--" @@ -2624,7 +2624,7 @@ ["Other..." (pr-ps-mode-preview nil t) :keys "\\[pr-ps-mode-preview]"]) ("File" - ["As Is..." (call-interactively 'pr-ps-file-preview) + ["No Preprocessing..." (call-interactively 'pr-ps-file-preview) :keys "\\[pr-ps-file-preview]"] "--" ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist] @@ -2672,7 +2672,7 @@ ["Other..." (pr-ps-mode-ps-print nil t) :keys "\\[pr-ps-mode-ps-print]"]) ("File" - ["As Is..." (call-interactively 'pr-ps-file-ps-print) + ["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print) :keys "\\[pr-ps-file-ps-print]"] "--" ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist] @@ -2861,7 +2861,7 @@ 5 | Print >|---\\ | |Despool... | | 6 | Text Printer: name >|-\\ | | +-----------+ | +-----------------------------+ | | | +---------+ +------------+ -III 7 |[ ]Landscape | | | \\-|Directory| | As Is... | Ia +III 7 |[ ]Landscape | | | \\-|Directory| | No Prep... | Ia 8 |[ ]Print Header | | | |Buffer | +------------+ Ib 9 |[ ]Print Header Frame | | | |Region | | name >|- C 10 |[ ]Line Number | | | +---------+ +------------+ @@ -2923,8 +2923,8 @@ switch from gnus *Summary* buffer first. NOTE 2: There are the following options for PostScript file processing: - Ia. Print the file *as is*, that is, send it directly to - PostScript printer. + Ia. Print the file *No Preprocessing*, that is, send it + directly to PostScript printer. Ib. PostScript utility processing selection. See `pr-ps-utility-alist' and `pr-setting-database' for documentation. @@ -3130,7 +3130,7 @@ NOTE 2: Don't forget to download and install the utilities declared on `pr-ps-utility-alist'. - * Use It AS-IS : + * No Preprocessing: If it's turned on, don't use the PostScript utility to preprocess the PostScript file before printing/previewing. @@ -5752,9 +5752,8 @@ (pr-choice-alist pr-ps-utility-alist) "\n PostScript Utility : " " ") - ;; 1c. PostScript File: Use It AS-IS - (pr-insert-toggle 'pr-i-ps-as-is " Use It ") - (pr-insert-italic "AS-IS")) + ;; 1c. PostScript File: No Preprocessing + (pr-insert-toggle 'pr-i-ps-as-is " No Preprocessing")) (defun pr-insert-section-2 () @@ -5882,7 +5881,8 @@ (pr-insert-toggle 'pr-print-using-ghostscript " Print via Ghostscript\n ") ;; 4. Settings: Upside-Down Page Parity - (pr-insert-toggle 'ps-print-upside-down " Upside-Down ") + (pr-insert-toggle 'ps-print-upside-down " Upside-Down") + (pr-insert-italic "\n\nSelect Pages : " 2 14) (pr-insert-menu "Page Parity" 'ps-even-or-odd-pages (mapcar #'(lambda (alist) (list 'quote
--- a/lisp/progmodes/ebnf-iso.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/progmodes/ebnf-iso.el Sun Mar 07 15:30:22 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> -;; Time-stamp: <2004/02/22 14:24:55 vinicius> +;; Time-stamp: <2004/02/29 18:31:33 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.7 @@ -113,7 +113,8 @@ ;; ISO EBNF accepts the characters given by <character> production above, ;; HORIZONTAL TAB (^I), VERTICAL TAB (^K), NEWLINE (^J or ^M) and FORM FEED ;; (^L), any other characters are illegal. But ebnf2ps accepts also the -;; european 8-bit accentuated characters (from \240 to \377) and underscore. +;; european 8-bit accentuated characters (from \240 to \377) and underscore +;; (_). ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- a/lisp/progmodes/ebnf-otz.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/progmodes/ebnf-otz.el Sun Mar 07 15:30:22 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> -;; Time-stamp: <2004/02/22 14:24:37 vinicius> +;; Time-stamp: <2004/02/29 18:40:14 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.0 @@ -38,6 +38,46 @@ ;; See ebnf2ps.el for documentation. ;; ;; +;; Optimizations +;; ------------- +;; +;; +;; *To be implemented*: +;; left recursion: +;; A = B | A C B | A C D. ==> A = B {C (B | D)}*. +;; +;; right recursion: +;; A = B | C A. ==> A = {C}* B. +;; A = B | D | C A | E A. ==> A = { C | E }* ( B | D ). +;; +;; optional: +;; A = B | C B. ==> A = [C] B. +;; A = B | B C. ==> A = B [C]. +;; A = D | B D | B C D. ==> A = [B [C]] D. +;; +;; +;; *Already implemented*: +;; left recursion: +;; A = B | A C. ==> A = B {C}*. +;; A = B | A B. ==> A = {B}+. +;; A = | A B. ==> A = {B}*. +;; A = B | A C B. ==> A = {B || C}+. +;; A = B | D | A C | A E. ==> A = ( B | D ) { C | E }*. +;; +;; optional: +;; A = B | . ==> A = [B]. +;; A = | B . ==> A = [B]. +;; +;; factoration: +;; A = B C | B D. ==> A = B (C | D). +;; A = C B | D B. ==> A = (C | D) B. +;; A = B C E | B D E. ==> A = B (C | D) E. +;; +;; none: +;; A = B | C | . ==> A = B | C | . +;; A = B | C A D. ==> A = B | C A D. +;; +;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Code:
--- a/lisp/progmodes/ebnf-yac.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/progmodes/ebnf-yac.el Sun Mar 07 15:30:22 2004 +0000 @@ -5,7 +5,7 @@ ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> -;; Time-stamp: <2004/02/22 14:24:17 vinicius> +;; Time-stamp: <2004/02/29 20:23:29 vinicius> ;; Keywords: wp, ebnf, PostScript ;; Version: 1.2.1 @@ -68,7 +68,7 @@ ;; Name = "[A-Za-z][A-Za-z0-9_.]*". ;; ;; Comment = "/*" "any character, but the sequence \"*/\"" "*/" -;; | "//" "any character" "\\n". +;; | "//" "any character, but the newline \"\\n\"" "\\n". ;; ;; ;; In other words, a valid Name begins with a letter (upper or lower case)
--- a/lisp/progmodes/sh-script.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/progmodes/sh-script.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,6 @@ ;;; sh-script.el --- shell-script editing commands for Emacs -;; Copyright (C) 1993, 94, 95, 96, 97, 1999, 2001, 2003 +;; Copyright (C) 1993, 94, 95, 96, 97, 1999, 2001, 03, 2004 ;; Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> @@ -917,7 +917,7 @@ ;; Skip through one pattern (while (or (/= 0 (skip-syntax-backward "w_")) - (/= 0 (skip-chars-backward "?[]*/\\")) + (/= 0 (skip-chars-backward "?[]*@/\\")) (and (sh-is-quoted-p (1- (point))) (goto-char (- (point) 2))) (when (memq (char-before) '(?\" ?\'))
--- a/lisp/ps-print.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/ps-print.el Sun Mar 07 15:30:22 2004 +0000 @@ -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 Free Software Foundation, Inc. +;; 2003, 2004 Free Software Foundation, Inc. ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) ;; Jacques Duthen (was <duthen@cegelec-red.fr>) @@ -10,12 +10,12 @@ ;; Maintainer: Kenichi Handa <handa@etl.go.jp> (multi-byte characters) ;; Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Keywords: wp, print, PostScript -;; Time-stamp: <2003/07/10 19:19:12 vinicius> -;; Version: 6.6.2 +;; Time-stamp: <2004/02/29 00:07:55 vinicius> +;; Version: 6.6.3 ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ -(defconst ps-print-version "6.6.2" - "ps-print.el, v 6.6.2 <2003/07/10 vinicius> +(defconst ps-print-version "6.6.3" + "ps-print.el, v 6.6.3 <2004/02/29 vinicius> Vinicius's last change version -- this file may have been edited as part of Emacs without changes to the version number. When reporting bugs, please also @@ -1213,6 +1213,9 @@ ;; ;; [vinicius] Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; +;; 20040229 +;; `ps-time-stamp-yyyy-mm-dd', `ps-time-stamp-iso8601' +;; ;; 20010619 ;; `ps-time-stamp-locale-default' ;; @@ -1261,7 +1264,7 @@ ;; ;; [keinichi] 19990509 Kein'ichi Handa <handa@etl.go.jp> ;; -;; `ps-print-region-function' +;; `ps-print-region-function' ;; ;; [vinicius] Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; @@ -1274,7 +1277,7 @@ ;; ;; [keinichi] 19980819 Kein'ichi Handa <handa@etl.go.jp> ;; -;; Multi-byte buffer handling. +;; Multi-byte buffer handling. ;; ;; [vinicius] Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; @@ -1370,9 +1373,11 @@ ;; Thanks to David X Callaway <dxc@xprt.net> for helping debugging PostScript ;; level 1 compatibility. ;; -;; Thanks to Colin Marquardt <colin.marquardt@usa.alcatel.com> for upside-down, -;; line number step, line number start and zebra stripe follow suggestions, and -;; for XEmacs beta-tests. +;; Thanks to Colin Marquardt <colin.marquardt@usa.alcatel.com> for: +;; - upside-down, line number step, line number start and zebra stripe +;; follow suggestions. +;; - `ps-time-stamp-yyyy-mm-dd' and `ps-time-stamp-iso8601' suggestion. +;; - and for XEmacs beta-tests. ;; ;; Thanks to Klaus Berndl <klaus.berndl@sdm.de> for user defined PostScript ;; prologue code suggestion, for odd/even printing suggestion and for @@ -3111,7 +3116,9 @@ For symbols with bound functions, the function is called and should return a string to be inserted into the array. For symbols with bound values, the value should be a string to be inserted into the array. In either case, function or -variable, the string value has PostScript string delimiters added to it." +variable, the string value has PostScript string delimiters added to it. + +If symbols are unbounded, they are silently ignored." :type '(repeat (choice :menu-tag "Left Header" :tag "Left Header" string symbol)) @@ -3135,6 +3142,11 @@ `ps-time-stamp-mon-dd-yyyy' Return date as \"Jun 18 2001\". + `ps-time-stamp-yyyy-mm-dd' Return date as \"2001-06-18\" (ISO + date). + + `ps-time-stamp-iso8601' Alias for `ps-time-stamp-yyyy-mm-dd'. + You can also create your own time stamp function by using `format-time-string' \(which see)." :type '(repeat (choice :menu-tag "Right Header" @@ -3157,7 +3169,9 @@ For symbols with bound functions, the function is called and should return a string to be inserted into the array. For symbols with bound values, the value should be a string to be inserted into the array. In either case, function or -variable, the string value has PostScript string delimiters added to it." +variable, the string value has PostScript string delimiters added to it. + +If symbols are unbounded, they are silently ignored." :version "21.1" :type '(repeat (choice :menu-tag "Left Footer" :tag "Left Footer" @@ -3182,6 +3196,11 @@ `ps-time-stamp-mon-dd-yyyy' Return date as \"Jun 18 2001\". + `ps-time-stamp-yyyy-mm-dd' Return date as \"2001-06-18\" (ISO + date). + + `ps-time-stamp-iso8601' Alias for `ps-time-stamp-yyyy-mm-dd'. + You can also create your own time stamp function by using `format-time-string' \(which see)." :version "21.1" @@ -3694,6 +3713,15 @@ (format-time-string "%b %d %Y")) +(defun ps-time-stamp-yyyy-mm-dd () + "Return date as \"2001-06-18\" (ISO date)." + (format-time-string "%Y-%m-%d")) + + +(defalias 'ps-time-stamp-iso8601 'ps-time-stamp-yyyy-mm-dd + "Alias for `ps-time-stamp-yyyy-mm-dd' (which see).") + + (defun ps-time-stamp-hh:mm:ss () "Return time as \"17:28:31\"." (format-time-string "%T")) @@ -6608,10 +6636,12 @@ (defun ps-kill-emacs-check () (let (ps-buffer) (and (setq ps-buffer (get-buffer ps-spool-buffer-name)) + (buffer-name ps-buffer) ; check if it's not killed (buffer-modified-p ps-buffer) (y-or-n-p "Unprinted PostScript waiting; print now? ") (ps-despool)) (and (setq ps-buffer (get-buffer ps-spool-buffer-name)) + (buffer-name ps-buffer) ; check if it's not killed (buffer-modified-p ps-buffer) (not (yes-or-no-p "Unprinted PostScript waiting; exit anyway? ")) (error "Unprinted PostScript"))))
--- a/lisp/simple.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/simple.el Sun Mar 07 15:30:22 2004 +0000 @@ -739,11 +739,11 @@ This is used for all minibuffer input except when an alternate history list is specified.") (defvar minibuffer-history-sexp-flag nil - "Non-nil when doing history operations on the variable `command-history'. -More generally, indicates that the history list being acted on -contains expressions rather than strings. -It is only valid if its value equals the current minibuffer depth, -to handle recursive uses of the minibuffer.") + "Control whether history list elements are expressions or strings. +If the value of this variable equals current minibuffer depth, +they are expressions; otherwise they are strings. +\(That convention is designed to do the right thing fora +recursive uses of the minibuffer.)") (setq minibuffer-history-variable 'minibuffer-history) (setq minibuffer-history-position nil) (defvar minibuffer-history-search-history nil) @@ -972,9 +972,13 @@ ;; another undo command will find the undo history empty ;; and will get another error. To begin undoing the undos, ;; you must type some other command. - (setq this-command 'undo) (let ((modified (buffer-modified-p)) (recent-save (recent-auto-save-p))) + ;; If we get an error in undo-start, + ;; the next command should not be a "consecutive undo". + ;; So set `this-command' to something other than `undo'. + (setq this-command 'undo-start) + (unless (eq last-command 'undo) (setq undo-in-region (if transient-mark-mode mark-active (and arg (not (numberp arg))))) @@ -983,6 +987,8 @@ (undo-start)) ;; get rid of initial undo boundary (undo-more 1)) + ;; If we got this far, the next command should be a consecutive undo. + (setq this-command 'undo) ;; Check to see whether we're hitting a redo record, and if ;; so, ask the user whether she wants to skip the redo/undo pair. (let ((equiv (gethash pending-undo-list undo-equiv-table))) @@ -2239,7 +2245,10 @@ (save-excursion (end-of-visible-line) (point)))) (if (or (save-excursion - (skip-chars-forward " \t" end) + ;; If trailing whitespace is visible, + ;; don't treat it as nothing. + (unless show-trailing-whitespace + (skip-chars-forward " \t" end)) (= (point) end)) (and kill-whole-line (bolp))) (forward-visible-line 1)
--- a/lisp/sort.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/sort.el Sun Mar 07 15:30:22 2004 +0000 @@ -480,19 +480,30 @@ (setq col-end (max col-beg1 col-end1)) (if (search-backward "\t" beg1 t) (error "sort-columns does not work with tabs -- use M-x untabify")) - (if (not (or (eq system-type 'vax-vms) - (text-properties-at beg1) - (< (next-property-change beg1 nil end1) end1))) + (if (not (or (memq system-type '(vax-vms windows-nt ms-dos)) + (let ((pos beg1) plist fontified) + (catch 'found + (while (< pos end1) + (setq plist (text-properties-at pos)) + (setq fontified (plist-get plist 'fontified)) + (while (consp plist) + (unless (or (eq (car plist) 'fontified) + (and (eq (car plist) 'face) + fontified)) + (throw 'found t)) + (setq plist (cddr plist))) + (setq pos (next-property-change pos nil end1))))))) ;; Use the sort utility if we can; it is 4 times as fast. - ;; Do not use it if there are any properties in the region, - ;; since the sort utility would lose the properties. + ;; Do not use it if there are any non-font-lock properties + ;; in the region, since the sort utility would lose the + ;; properties. (let ((sort-args (list (if reverse "-rt\n" "-t\n") (concat "+0." (int-to-string col-start)) (concat "-0." (int-to-string col-end))))) (when sort-fold-case (push "-f" sort-args)) (apply #'call-process-region beg1 end1 "sort" t t nil sort-args)) - ;; On VMS, use Emacs's own facilities. + ;; On VMS and ms-windows, use Emacs's own facilities. (save-excursion (save-restriction (narrow-to-region beg1 end1)
--- a/lisp/startup.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/startup.el Sun Mar 07 15:30:22 2004 +0000 @@ -83,8 +83,8 @@ (defvar command-switch-alist nil "Alist of command-line switches. Elements look like (SWITCH-STRING . HANDLER-FUNCTION). -HANDLER-FUNCTION receives switch name as sole arg; -remaining command-line args are in the variable `command-line-args-left'.") +HANDLER-FUNCTION receives the switch string as its sole argument; +the remaining command-line args are in the variable `command-line-args-left'.") (defvar command-line-args-left nil "List of command-line args not yet processed.")
--- a/lisp/textmodes/fill.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/textmodes/fill.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,6 @@ ;;; fill.el --- fill commands for Emacs -;; Copyright (C) 1985,86,92,94,95,96,97,1999,2001,02,2003 +;; Copyright (C) 1985,86,92,94,95,96,97,1999,2001,02,03,2004 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -732,7 +732,7 @@ ;; Then try our syntax-aware filling code. (and fill-paragraph-handle-comment ;; Our code only handles \n-terminated comments right now. - comment-start comment-start-skip (equal comment-end "") + comment-start (equal comment-end "") (let ((fill-paragraph-handle-comment nil)) (fill-comment-paragraph arg))) ;; If it all fails, default to the good ol' text paragraph filling. @@ -822,7 +822,11 @@ (looking-at comment-re))) ;; We may have gone too far. Go forward again. (line-beginning-position - (if (looking-at (concat ".*\\(?:" comment-start-skip "\\)")) + (if (progn + (goto-char + (or (comment-search-forward (line-end-position) t) + (point))) + (looking-at comment-re)) 1 2)))) ;; Find the beginning of the first line past the region to fill. (save-excursion
--- a/lisp/xml.el Sat Mar 06 12:15:27 2004 +0000 +++ b/lisp/xml.el Sun Mar 07 15:30:22 2004 +0000 @@ -1,6 +1,6 @@ ;;; xml.el --- XML parser -;; Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2000, 01, 03, 2004 Free Software Foundation, Inc. ;; Author: Emmanuel Briot <briot@gnat.com> ;; Maintainer: Mark A. Hershberger <mah@everybody.org> @@ -109,10 +109,7 @@ Return `nil' if the attribute was not found. See also `xml-get-attribute'." - (when (xml-node-attributes node) - (let ((value (assoc attribute (xml-node-attributes node)))) - (when value - (cdr value))))) + (cdr (assoc attribute (xml-node-attributes node)))) (defsubst xml-get-attribute (node attribute) "Get from NODE the value of ATTRIBUTE.
--- a/lispref/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,12 @@ +2004-03-04 Richard M. Stallman <rms@gnu.org> + + * processes.texi: Fix typos. + + * lists.texi (Building Lists): Minor clarification. + + * hash.texi (Creating Hash): Correct the meaning of t for WEAK + in make-hash-table. + 2004-02-29 Juanma Barranquero <lektu@terra.es> * makefile.w32-in (clean, maintainer-clean): Use $(DEL) instead of
--- a/lispref/abbrevs.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/abbrevs.texi Sun Mar 07 15:30:22 2004 +0000 @@ -288,12 +288,12 @@ @end defopt @defvar abbrev-start-location -This is a marker pointing to the buffer position for -@code{expand-abbrev} to use as the start of the next abbrev to be -expanded. (@code{nil} means use the word before point instead.) -@code{abbrev-start-location} is set to @code{nil} each time -@code{expand-abbrev} is called. This variable is also set by -@code{abbrev-prefix-mark}. +The value of this variable is a marker pointing to the buffer position +for @code{expand-abbrev} to use as the start of the next abbrev to be +expanded. The value can also be @code{nil}, which means to use the +word before point instead. @code{abbrev-start-location} is set to +@code{nil} each time @code{expand-abbrev} is called. This variable is +also set by @code{abbrev-prefix-mark}. @end defvar @defvar abbrev-start-location-buffer
--- a/lispref/hash.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/hash.texi Sun Mar 07 15:30:22 2004 +0000 @@ -98,7 +98,7 @@ The value, @var{weak}, must be one of @code{nil}, @code{key}, @code{value}, @code{key-or-value}, @code{key-and-value}, or @code{t} -which is an alias for @code{key-or-value}. If @var{weak} is @code{key} +which is an alias for @code{key-and-value}. If @var{weak} is @code{key} then the hash table does not prevent its keys from being collected as garbage (if they are not referenced anywhere else); if a particular key does get collected, the corresponding association is removed from the
--- a/lispref/lists.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/lists.texi Sun Mar 07 15:30:22 2004 +0000 @@ -448,11 +448,11 @@ code for Emacs than @code{cons}. @defun cons object1 object2 -This function is the fundamental function for building new list +This function is the most basic function for building new list structure. It creates a new cons cell, making @var{object1} the -@sc{car}, and @var{object2} the @sc{cdr}. It then returns the new cons -cell. The arguments @var{object1} and @var{object2} may be any Lisp -objects, but most often @var{object2} is a list. +@sc{car}, and @var{object2} the @sc{cdr}. It then returns the new +cons cell. The arguments @var{object1} and @var{object2} may be any +Lisp objects, but most often @var{object2} is a list. @example @group
--- a/lispref/markers.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/markers.texi Sun Mar 07 15:30:22 2004 +0000 @@ -337,9 +337,10 @@ This function reports the current insertion type of @var{marker}. @end defun -Most functions that create markers, without explicitly specifying an -insertion type, create them with insertion type @code{nil}. Also, the -mark has, by default, insertion type @code{nil}. +Most functions that create markers, without an argument allowing to +specify the insertion type, create them with insertion type +@code{nil}. Also, the mark has, by default, insertion type +@code{nil}. @node Moving Markers @section Moving Marker Positions
--- a/lispref/processes.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/lispref/processes.texi Sun Mar 07 15:30:22 2004 +0000 @@ -382,7 +382,7 @@ @defun call-process-shell-command command &optional infile destination display &rest args This function executes the shell command @var{command} synchronously -in separate process. The final arguments @var{args} are additional +in a separate process. The final arguments @var{args} are additional arguments to add at the end of @var{command}. The other arguments are handled as in @code{call-process}. @end defun @@ -1512,7 +1512,7 @@ @code{listen}. None of those values is possible for a real subprocess. @xref{Process Information}. - You can stop and resume operation of a network processes by calling + You can stop and resume operation of a network process by calling @code{stop-process} and @code{continue-process}. For a server process, being stopped means not accepting new connections. (Up to 5 connection requests will be queued for when you resume the server; you @@ -1667,10 +1667,10 @@ @section Datagrams @cindex datagrams - A datagram connection communicates with individual packets -rather than streams of data. Each call to @code{process-send} -sends one datagram packet, and each datagram received results -in one call to the filter function. + A datagram connection communicates with individual packets rather +than streams of data. Each call to @code{process-send} sends one +datagram packet (@pxref{Input to Processes}), and each datagram +received results in one call to the filter function. The datagram connection doesn't have to talk with the same remote peer all the time. It has a @dfn{remote peer address} which specifies @@ -1771,10 +1771,10 @@ @item An ``unsupported family'' address is represented by a cons @code{(@var{f} . @var{av})}, where @var{f} is the family number and -@var{av} is a vector specifying the socket address using with one -element per address data byte. Do not rely on this format in portable -code, as it may depend on implementation defined constants, data -sizes, and data structure alignment. +@var{av} is a vector specifying the socket address using one element +per address data byte. Do not rely on this format in portable code, +as it may depend on implementation defined constants, data sizes, and +data structure alignment. @end itemize @item :nowait @var{bool}
--- a/man/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/man/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,17 @@ +2004-03-04 Richard M. Stallman <rms@gnu.org> + + * search.texi (Regexps): Explain that ^ and $ have their + special meanings only in certain contexts. + + * programs.texi (Expressions): Doc C-M-SPC as alias for C-M-@. + + * mule.texi (Specify Coding): Doc C-x RET F. + + * buffers.texi (Misc Buffer): Explain use of M-x rename-uniquely + for multiple compile and grep buffers. + (Indirect Buffers): Don't recommand clone-indirect-buffer + for multiple compile and grep buffers. + 2004-02-29 Simon Josefsson <jas@extundo.com> * smtpmail.texi (Authentication): Changed the list of supported
--- a/man/buffers.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/man/buffers.texi Sun Mar 07 15:30:22 2004 +0000 @@ -217,14 +217,18 @@ specify a name that is in use for some other buffer, an error happens and no renaming is done. - @kbd{M-x rename-uniquely} renames the current buffer to a similar name -with a numeric suffix added to make it both different and unique. This -command does not need an argument. It is useful for creating multiple -shell buffers: if you rename the @samp{*Shell*} buffer, then do @kbd{M-x -shell} again, it makes a new shell buffer named @samp{*Shell*}; -meanwhile, the old shell buffer continues to exist under its new name. -This method is also good for mail buffers, compilation buffers, and most -Emacs features that create special buffers with particular names. + @kbd{M-x rename-uniquely} renames the current buffer to a similar +name with a numeric suffix added to make it both different and unique. +This command does not need an argument. It is useful for creating +multiple shell buffers: if you rename the @samp{*Shell*} buffer, then +do @kbd{M-x shell} again, it makes a new shell buffer named +@samp{*Shell*}; meanwhile, the old shell buffer continues to exist +under its new name. This method is also good for mail buffers, +compilation buffers, and most Emacs features that create special +buffers with particular names. (With some of these features, such as +@kbd{M-x compile}, @kbd{M-x grep} an @kbd{M-x info}, you need to +switch to some other buffer before using the command, in order for it +to make a different buffer.) @findex view-buffer @kbd{M-x view-buffer} is much like @kbd{M-x view-file} (@pxref{Misc @@ -471,22 +475,21 @@ One way to use indirect buffers is to display multiple views of an outline. @xref{Outline Views}. -@cindex multiple @samp{*info*} and @samp{*Help*} buffers A quick and handy way to make an indirect buffer is with the command @kbd{M-x clone-indirect-buffer}. It creates and selects an indirect buffer whose base buffer is the current buffer. With a numeric argument, it prompts for the name of the indirect buffer; otherwise it defaults to the name of the current buffer, modifying it by adding a -@samp{<@var{n}>} prefix if required. @kbd{C-x 4 c} +@samp{<@var{n}>} suffix if required. @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window}) works like @kbd{M-x -clone-indirect-buffer}, but it selects the cloned buffer in another -window. These commands come in handy if you want to create new -@samp{*info*} or @samp{*Help*} buffers, for example. +clone-indirect-buffer}, but it selects the new buffer in another +window. - The more general way is with the command @kbd{M-x -make-indirect-buffer}. It creates an indirect buffer from buffer -@var{base-buffer}, under the name @var{indirect-name}. It prompts for -both @var{base-buffer} and @var{indirect-name} using the minibuffer. + The more general way to make an indirect buffer is with the command +@kbd{M-x make-indirect-buffer}. It creates an indirect buffer from +buffer @var{base-buffer}, under the name @var{indirect-name}. It +prompts for both @var{base-buffer} and @var{indirect-name} using the +minibuffer. @node Buffer Convenience @section Convenience Features and Customization of Buffer Handling
--- a/man/mule.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/man/mule.texi Sun Mar 07 15:30:22 2004 +0000 @@ -917,6 +917,12 @@ Use coding system @var{coding} for transferring selections to and from other programs through the window system. +@item C-x @key{RET} F @var{coding} @key{RET} +Use coding system @var{coding} for encoding and decoding file +@emph{names}. This affects the use of non-ASCII characters in file +names. It has no effect on reading and writing the @emph{contents} of +files. + @item C-x @key{RET} X @var{coding} @key{RET} Use coding system @var{coding} for transferring @emph{one} selection---the next one---to or from the window system. @@ -1044,12 +1050,16 @@ @vindex file-name-coding-system @cindex file names with non-@acronym{ASCII} characters - The variable @code{file-name-coding-system} specifies a coding system -to use for encoding file names. If you set the variable to a coding -system name (as a Lisp symbol or a string), Emacs encodes file names -using that coding system for all file operations. This makes it -possible to use non-@acronym{ASCII} characters in file names---or, at least, those -non-@acronym{ASCII} characters which the specified coding system can encode. +@findex set-file-name-coding-system +@kindex C-x @key{RET} F + The variable @code{file-name-coding-system} specifies a coding +system to use for encoding file names. If you set the variable to a +coding system name (as a Lisp symbol or a string), Emacs encodes file +names using that coding system for all file operations. This makes it +possible to use non-@acronym{ASCII} characters in file names---or, at +least, those non-@acronym{ASCII} characters which the specified coding +system can encode. Use @kbd{C-x @key{RET} F} +(@code{set-file-name-coding-system}) to specify this interactively. If @code{file-name-coding-system} is @code{nil}, Emacs uses a default coding system determined by the selected language environment. In the
--- a/man/programs.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/man/programs.texi Sun Mar 07 15:30:22 2004 +0000 @@ -641,6 +641,7 @@ @item C-M-t Transpose expressions (@code{transpose-sexps}). @item C-M-@@ +@itemx C-M-@key{SPC} Put mark after following expression (@code{mark-sexp}). @end table @@ -701,12 +702,14 @@ at or after point and the mark. @kindex C-M-@@ +@kindex C-M-@key{SPC} @findex mark-sexp To set the region around the next balanced expression in the buffer, use @kbd{C-M-@@} (@code{mark-sexp}), which sets mark at the same place that @kbd{C-M-f} would move to. @kbd{C-M-@@} takes arguments like @kbd{C-M-f}. In particular, a negative argument is useful for putting the mark at the beginning of the previous balanced expression. +The alias @kbd{C-M-@key{SPC}} is equivalent to @kbd{C-M-@@}. In languages that use infix operators, such as C, it is not possible to recognize all balanced expressions as such because there can be
--- a/man/search.texi Sat Mar 06 12:15:27 2004 +0000 +++ b/man/search.texi Sun Mar 07 15:30:22 2004 +0000 @@ -576,10 +576,18 @@ match anything. Thus, @samp{^foo} matches a @samp{foo} that occurs at the beginning of a line. +For historical compatibility reasons, @samp{^} can be used with this +meaning only at the beginning of the regular expression, or after +@samp{\(} or @samp{\|}. + @item @kbd{$} is similar to @samp{^} but matches only at the end of a line. Thus, @samp{x+$} matches a string of one @samp{x} or more at the end of a line. +For historical compatibility reasons, @samp{$} can be used with this +meaning only at the end of the regular expression, or before @samp{\)} +or @samp{\|}. + @item @kbd{\} has two functions: it quotes the special characters (including @samp{\}), and it introduces additional special constructs.
--- a/src/ChangeLog Sat Mar 06 12:15:27 2004 +0000 +++ b/src/ChangeLog Sun Mar 07 15:30:22 2004 +0000 @@ -1,3 +1,78 @@ +2004-03-04 Richard M. Stallman <rms@gnu.org> + + * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS): New definition. + + * window.c (Fdisplay_buffer): Doc fix. + + * buffer.c (Fpop_to_buffer): Doc fix. + +2004-03-03 Kim F. Storm <storm@cua.dk> + + * xdisp.c (display_line): Fix call to get_overlay_arrow_glyph_row. + +2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * editfns.c (Ftranslate_region): Lisp_Object/int mixup. + +2004-03-02 Richard M. Stallman <rms@gnu.org> + + * indent.c (compute_motion): Save vpos in prev_vpos, like hpos etc. + +2004-03-02 Kenichi Handa <handa@m17n.org> + + * doc.c (Fsubstitute_command_keys): Fix counding bytes. + +2004-03-02 Kim F. Storm <storm@cua.dk> + + * window.h (struct window): New member overlay_arrow_bitmap. + + * window.c (make_window): Initialize overlay_arrow_bitmap. + + * xdisp.c (Voverlay_arrow_variable_list): New variable to properly + implement and integrate multiple overlay arrows with redisplay. + (syms_of_xdisp): DEFVAR_LISP and initialize it. + (last_arrow_position, last_arrow_string): Replace by properties. + (Qlast_arrow_position, Qlast_arrow_string) + (Qoverlay_arrow_string, Qoverlay_arrow_bitmap): New variables. + (syms_of_xdisp): Intern and staticpro them. + (overlay_arrow_string_or_property, update_overlay_arrows) + (overlay_arrow_in_current_buffer_p, overlay_arrows_changed_p) + (overlay_arrow_at_row): New functions for multiple overlay arrows. + (redisplay_internal): Use them instead of directly accessing + Voverlay_arrow_position etc. for multiple overlay arrows. + (mark_window_display_accurate): Use update_overlay_arrows. + (try_cursor_movement): Use overlay_arrow_in_current_buffer_p. + (try_window_id): Use overlay_arrows_changed_p. + (get_overlay_arrow_glyph_row): Add overlay_arrow_string arg. + (display_line): Use overlay_arrow_at_row to check multiple + overlay arrows, and get relevant overlay-arrow-string and + overlay-arrow-bitmap. Set w->overlay_arrow_bitmap accordingly. + (produce_image_glyph): Set pixel_width = 0 for fringe bitmap. + (syms_of_xdisp): Remove last_arrow_position and last_arrow_string. + + * fringe.c (draw_fringe_bitmap): Use w->overlay_arrow_bitmap if set. + (update_window_fringes): Remove unused code. + +2004-03-01 Jason Rumney <jasonr@gnu.org> + + * w32term.c (w32_read_socket): Fix last change to ButtonPress handling. + +2004-03-01 Juanma Barranquero <lektu@terra.es> + + * fringe.c (Fdefine_fringe_bitmap): Fix typo in docstring. + + * makefile.w32-in ($(BLD)/fringe.$(O)): Add dependencies. + +2004-03-01 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * xfns.c (Fx_display_color_cells): Use number of planes to calculate + how many colors can be displayed. + +2004-03-01 Kenichi Handa <handa@m17n.org> + + * editfns.c (Ftranslate_region): Handle multibyte chars in TABLE + correctly. + 2004-02-28 Kim F. Storm <storm@cua.dk> * dispnew.c (update_window): Update header line also if there are @@ -11,11 +86,11 @@ 2004-02-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> - * xfns.c (x_window): Fixed indentation. + * xfns.c (x_window): Fix indentation. * xterm.c (x_calc_absolute_position): Call x_real_positions to get WM window sizes and use those to calculate position. - (x_set_offset): Removed code commented out. + (x_set_offset): Remove code commented out. 2004-02-28 Miles Bader <miles@gnu.org> @@ -39,7 +114,7 @@ * keyboard.h (kbd_buffer_store_event_hold): Add prototype. (gen_help_event): Fix prototype. - * macterm.c (XTread_socket): Remove bufp_r and + * macterm.c (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg. Rework to use just one, local, inev input_event. Store inev directly in fifo using kbd_buffer_store_event_hold. @@ -51,7 +126,7 @@ initialize local hold_quit event to handle postponed quit event (and store it if set by kbd_buffer_store_event_hold). - * term.c (read_socket_hook): Fix arg list. + * term.c (read_socket_hook): Fix arg list. * termhooks.h (read_socket_hook): Fix prototype. @@ -73,9 +148,9 @@ * xsmfns.c (x_session_check_input): Remove numchars arg. - * xterm.c (x_focus_changed, x_detect_focus_change): Remove - numchars arg. Always store event into bufp arg. Return nothing. - Callers changed accordingly. + * xterm.c (x_focus_changed, x_detect_focus_change): + Remove numchars arg. Always store event into bufp arg. + Return nothing. Callers changed accordingly. (glyph_rect): Simplify. (STORE_KEYSYM_FOR_DEBUG): New macro. (SET_SAVED_MENU_EVENT): Use inev instead of bufp, etc. @@ -106,15 +181,14 @@ * xterm.h (x_session_check_input): Fix prototype. 2004-02-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> - - * s/darwin.h (LD_SWITCH_SYSTEM_TEMACS): Add `-framework - QuickTime'. - + + * s/darwin.h (LD_SWITCH_SYSTEM_TEMACS): Add `-framework QuickTime'. + * dispextern.h [MAC_OSX]: Do not include Carbon/Carbon.h (now in macgui.h). - + * emacs.c (main) [HAVE_CARBON]: Call init_xfns. - + * macgui.h [MAC_OSX]: Include Carbon/Carbon.h. (mktime, DEBUG, Z, free, malloc, realloc, max, min) (init_process) [MAC_OSX] : Avoid conflicts with Carbon/Carbon.h. @@ -123,18 +197,16 @@ (Bitmap): Remove typedef. (Pixmap): Change int to GWorldPtr. - * macmenu.c [MAC_OSX]: Do not include Carbon/Carbon.h (now in - macgui.h). - - * macterm.h [MAC_OSX]: Do not include Carbon/Carbon.h (now in - macgui.h). - (RED16_FROM_ULONG, GREEN16_FROM_ULONG, BLUE16_FROM_ULONG): New - #define to extract 16-bit depth color components from unsigned + * macmenu.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h). + + * macterm.h [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h). + (RED16_FROM_ULONG, GREEN16_FROM_ULONG, BLUE16_FROM_ULONG): + New #define to extract 16-bit depth color components from unsigned long representation. (PIX_MASK_DRAW, PIX_MASK_RETAIN): New #define to represent pixel colors used for masks. (struct mac_display_info): Add color_p. Remove n_cbits. - + * macfns.c: Include sys/types.h and sys/stat.h. [MAC_OSX]: Do not include Carbon/Carbon.h (now in macgui.h). Include QuickTime/QuickTime.h. @@ -145,11 +217,11 @@ (ZPixmap): New #define for compatibility with xfns.c. (XGetImage, XPutPixel, XGetPixel, XDestroyImage) (x_create_x_image_and_pixmap, x_destroy_x_image, x_put_x_image) - (find_image_fsspec, image_load_qt_1, image_load_quicktime): New - functions. + (find_image_fsspec, image_load_qt_1, image_load_quicktime): + New functions. (four_corners_best, x_create_x_image_and_pixmap) - (x_destroy_x_image, unwind_create_frame, x_disable_image, - (x_edge_detection, init_color_table, colors_in_color_table, + (x_destroy_x_image, unwind_create_frame, x_disable_image) + (x_edge_detection, init_color_table, colors_in_color_table) (lookup_rgb_color, lookup_pixel_color, postprocess_image) (x_put_x_image, slurp_file, xbm_scan, xbm_load, xbm_load_image) (xbm_image_p, xbm_read_bitmap_data, xbm_file_p, x_to_xcolors) @@ -168,14 +240,13 @@ (enum pbm_keyword_index, pbm_format, enum png_keyword_index) (png_format, png_image_p, enum jpeg_keyword_index, jpeg_format) (jpeg_image_p, enum tiff_keyword_index, tiff_format, tiff_image_p) - (enum gif_keyword_index, gif_format, gif_image_p): Sync with - xfns.c. + (enum gif_keyword_index, gif_format, gif_image_p): Sync with xfns.c. (x_make_gc): Sync with xfns.c. Enclose unused `border_tile' with #if 0. (x_free_gcs): Sync with xfns.c. Enclose unused `border_tile' with #if 0. Free white_relief.gc and black_relief.gc. - (unwind_create_frame, x_emboss, x_laplace, x_edge_detection): New - functions (from xfns.c). + (unwind_create_frame, x_emboss, x_laplace, x_edge_detection): + New functions (from xfns.c). (Fx_create_frame): Record unwind_create_frame. (Fxw_display_color_p): Use dpyinfo->color_p. (Fx_display_grayscale_p, Fx_display_planes): Don't use @@ -187,14 +258,13 @@ (Fimage_size, Fimage_mask_p, four_corners_best, image_background) (x_clear_image_1, postprocess_image, slurp_file, xbm_load_image) (xbm_file_p, x_to_xcolors, x_from_xcolors, x_detect_edges) - (image_background_transparent): New function (from xfns.c). Use - PIX_MASK_DRAW/PIX_MASK_RETAIN. + (image_background_transparent): New function (from xfns.c). + Use PIX_MASK_DRAW/PIX_MASK_RETAIN. (image_load_quicktime): Add declaration. [MAC_OSX] (image_load_quartz2d): Likewise. [MAC_OSX] (CGImageCreateWithPNGDataProviderProcType): New typedef. [MAC_OSX] (MyCGImageCreateWithPNGDataProvider): New variable. - [MAC_OSX] (init_image_func_pointer, image_load_quartz2d): New - functions. + [MAC_OSX] (init_image_func_pointer, image_load_quartz2d): New funs. (xbm_load_image_from_file, x_laplace_read_row) (x_laplace_write_row, pbm_read_file): Remove functions. [HAVE_XPM] (enum xpm_keyword_index, xpm_format, xpm_image_p) @@ -203,23 +273,22 @@ (lookup_rgb_color): Don't lookup color table. Just do gamma correction. (COLOR_INTENSITY): New #define (from xfns.c). - (x_disable_image): New function (from xfns.c). Use - PIX_MASK_DRAW/PIX_MASK_RETAIN. - (x_build_heuristic_mask): Sync with xfns.c. Use - PIX_MASK_DRAW/PIX_MASK_RETAIN. + (x_disable_image): New function (from xfns.c). + Use PIX_MASK_DRAW/PIX_MASK_RETAIN. + (x_build_heuristic_mask): Sync with xfns.c. + Use PIX_MASK_DRAW/PIX_MASK_RETAIN. (HAVE_PBM): Remove #ifdef. (pbm_load): Sync with xfns.c. Set img->width and img->height before IMAGE_BACKGROUND. - (png_image_p, png_load): Don't enclose declarations with #if - HAVE_PNG. + (png_image_p, png_load): Don't enclose declarations with #if HAVE_PNG. (Qpng, enum png_keyword_index, png_format, png_type, png_image_p): Don't enclose with #if HAVE_PNG. [!HAVE_PNG] (png_load) [MAC_OSX]: Use image_load_quartz2d if a - symbol _CGImageCreateWithPNGDataProvider is defined. Otherwise - use image_load_quicktime. + symbol _CGImageCreateWithPNGDataProvider is defined. + Otherwise use image_load_quicktime. [!HAVE_PNG] (png_load) [!MAC_OSX]: Use image_load_quicktime. - [HAVE_PNG] (png_load): Sync with xfns.c. Use - PIX_MASK_DRAW/PIX_MASK_RETAIN. + [HAVE_PNG] (png_load): Sync with xfns.c. + Use PIX_MASK_DRAW/PIX_MASK_RETAIN. (jpeg_image_p, jpeg_load): Don't enclose declarations with #if HAVE_JPEG. (Qjpeg, enum jpeg_keyword_index, jpeg_format, jpeg_type) @@ -232,11 +301,10 @@ (Qtiff, enum tiff_keyword_index, tiff_format, tiff_type) (tiff_image_p): Don't enclose with #if HAVE_TIFF. [!HAVE_TIFF] (tiff_load): Use image_load_quicktime. - [HAVE_TIFF] (tiff_error_handler, tiff_warning_handler): New - functions (from xfns.c). + [HAVE_TIFF] (tiff_error_handler, tiff_warning_handler): + New functions (from xfns.c). [HAVE_TIFF] (tiff_load): Sync with xfns.c. - (gif_image_p, gif_load): Don't enclose declarations with #if - HAVE_GIF. + (gif_image_p, gif_load): Don't enclose declarations with #if HAVE_GIF. (Qgif, enum gif_keyword_index, gif_format, gif_type, gif_image_p): Don't enclose with #if HAVE_GIF. [!HAVE_GIF] (gif_load): Use Quicktime Movie Toolbox if it is @@ -253,12 +321,11 @@ image types. Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and HAVE_PNG. Add defsubr for Simage_size and Simage_mask_p. (init_xfns): Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and - HAVE_PNG. Call EnterMovies to support animated gifs. Call - init_image_func_pointer to bind a symbol + HAVE_PNG. Call EnterMovies to support animated gifs. + Call init_image_func_pointer to bind a symbol _CGImageCreateWithPNGDataProvider if it is defined. - - * macterm.c [MAC_OSX]: Do not include Carbon/Carbon.h (now in - macgui.h). + + * macterm.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h). (x_draw_bar_cursor): Sync declaration with xterm.c. (XFreePixmap, mac_draw_rectangle_to_pixmap, mac_copy_area) (mac_copy_area_to_pixmap): Implementation with GWorld (offscreen @@ -266,16 +333,16 @@ (mac_set_forecolor, mac_set_backcolor): Use RED16_FROM_ULONG etc. (mac_draw_line_to_pixmap, XCreatePixmap) (XCreatePixmapFromBitmapData, mac_fill_rectangle_to_pixmap) - (mac_copy_area_with_mask, mac_copy_area_with_mask_to_pixmap): New - functions. - (mac_draw_bitmap) [TARGET_API_MAC_CARBON]: Use - GetPortBitMapForCopyBits instead of the cast to Bitmap *. Cast - bits to char *. + (mac_copy_area_with_mask, mac_copy_area_with_mask_to_pixmap): + New functions. + (mac_draw_bitmap) [TARGET_API_MAC_CARBON]: + Use GetPortBitMapForCopyBits instead of the cast to Bitmap *. + Cast bits to char *. (reflect_byte): New function (from w32fns.c). (mac_create_bitmap_from_bitmap_data): Use it and don't stuff bits due to byte alignment. - (mac_scroll_area) [TARGET_API_MAC_CARBON]: Use - GetPortBitMapForCopyBits instead of the cast to Bitmap *. + (mac_scroll_area) [TARGET_API_MAC_CARBON]: + Use GetPortBitMapForCopyBits instead of the cast to Bitmap *. (XSetForeground): Remove static (now used in macfns.c). (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New #define (from w32term.c). (mac_alloc_lighter_color, x_destroy_window): Sync with w32term.c. @@ -293,18 +360,16 @@ (x_free_frame_resources): New funcion (from xterm.c). (XTread_socket): Call handle_tool_bar_click if mouse up/down event occurs in tool bar area. - (mac_initialize_display_info): Remove dpyinfo->n_cbits. Set - dpyinfo->color_p. Determine dpyinfo->n_planes using HasDepth. + (mac_initialize_display_info): Remove dpyinfo->n_cbits. + Set dpyinfo->color_p. Determine dpyinfo->n_planes using HasDepth. Initialize image cache. (stricmp, wildstrieq, mac_font_pattern_match, mac_font_match): Enclose unused functions with #if 0. (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): New variables. (decode_mac_font_name): New function to apply code conversions - from a mac font name to an XLFD font name according to its script - code. + from a mac font name to an XLFD font name according to its script code. (x_font_name_to_mac_font_name): Apply code conversion from an XLFD - font name to a mac font name according to REGISTRY and ENCODING - fields. + font name to a mac font name according to REGISTRY and ENCODING fields. (init_font_name_table) [TARGET_API_MAC_CARBON]: Don't use a font whose name starts with `.'. (init_font_name_table): Use decode_mac_font_name. Add both @@ -345,7 +410,7 @@ * xfns.c (lookup_image): Remove xassert(!interrupt_input_blocked); BLOCK_INPUT can be nested, so it doesn't make much sense. -2004-02-24 Michael Mauger <mmaug@yahoo.com> +2004-02-24 Michael Mauger <mmaug@yahoo.com> * w32fns.c (slurp_file, xbm_scan, xbm_load_image) (xbm_read_bitmap_data): Use unsigned char for image data. @@ -363,8 +428,8 @@ * emacs.c (USAGE1): Split into two halves. (USAGE2): Second half of the old USAGE1. - (USAGE3): Renamed from USAGE2. - (USAGE4): Renamed from USAGE3. + (USAGE3): Rename from USAGE2. + (USAGE4): Rename from USAGE3. 2004-02-21 Juri Linkov <juri@jurta.org> @@ -387,8 +452,8 @@ in one call to read_socket_hook. Value is 8. (read_avail_input): Separate and rework handling of read_socket_hook and non-read_socket_hook cases. Use smaller input_event buffer - in read_socket_hook case, and repeat if full buffer is read. Use - new local variable 'discard' to skip input after C-g. + in read_socket_hook case, and repeat if full buffer is read. + Use new local variable 'discard' to skip input after C-g. In non-read_socket_hook case, just use a single input_event, and call kbd_buffer_store_event on the fly for each character. @@ -595,7 +660,7 @@ Add prototypes. * macterm.c (mac_draw_bitmap): Add overlay_p arg. - (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps; + (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps; thanks to YAMAMOTO Mitsuharu for advice on how to do this. Use cursor color for displaying cursor in fringe. (x_redisplay_interface): Add null handlers for @@ -756,7 +821,7 @@ * makefile.w32-in, w32fns.c: Add `default-printer-name' function. -2004-01-27 Steven Tamm <steventamm@mac.com> +2004-01-27 Steven Tamm <steventamm@mac.com> * unexmacosx.c (unexec_copy): Do not copy more than was requested to prevent overwriting during unexec. @@ -767,7 +832,7 @@ * process.h: Add extern to synch_process_termsig. -2004-01-27 Steven Tamm <steventamm@mac.com> +2004-01-27 Steven Tamm <steventamm@mac.com> * macterm.c (make_mac_frame, make_mac_terminal_frame): Move setting of scroll bars from make_mac_frame to @@ -884,7 +949,7 @@ * buffer.h (struct buffer): New member indicate_buffer_boundaries. - * buffer.c (init_buffer_once): Set buffer_defaults and + * buffer.c (init_buffer_once): Set buffer_defaults and buffer_local_flags for indicate_buffer_boundaries. (syms_of_buffer): Defvar_per_buffer it, and defvar_lisp_nopro default- variable for it. @@ -1095,7 +1160,7 @@ to the definition of `signal' in the Elisp manual. * eval.c (Fsignal): Ditto. -2003-12-29 James Clark <jjc@jclark.com> (tiny change) +2003-12-29 James Clark <jjc@jclark.com> (tiny change) * fns.c (internal_equal): Return t for two NaN arguments. @@ -1221,7 +1286,7 @@ * minibuf.c (Fcompleting_read): Undo previous change. -2003-12-25 Lars Hansen <larsh@math.ku.dk> +2003-12-25 Lars Hansen <larsh@math.ku.dk> * dired.c (Fdirectory_files, Fdirectory_files_and_attributes): Arguments GCPRO'ed in call to file name handler. @@ -1410,7 +1475,7 @@ * xdisp.c (note_mode_line_or_margin_highlight): Adapt to new mode_line_string and marginal_area_string parameters. -2003-11-22 Lars Hansen <larsh@math.ku.dk> +2003-11-22 Lars Hansen <larsh@math.ku.dk> * w32.c (struct the_group, getgrgid): Add. * mac.c (struct my_group, getgrgid): Add. @@ -1504,7 +1569,7 @@ * frame.c (store_frame_param): * fontset.c (Fset_fontset_font): * emacs.c (shut_down_emacs): - * ccl.c (ccl_driver): Remove period at end of error message. + * ccl.c (ccl_driver): Remove period at end of error message. * config.in: Regenerate. @@ -1809,7 +1874,7 @@ Set BUF_INTERVALS (buffer)->up_obj when appropriate. Handle over_used when splitting UNDER. -2003-09-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> +2003-09-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * regex.c (regex_compile): Free the stack when returning from function. @@ -2064,7 +2129,7 @@ * w32term.c (w32_read_socket): Fix WM_MOUSEWHEEL assignment. -2003-08-26 Terje Rosten <terjeros@phys.ntnu.no> +2003-08-26 Terje Rosten <terjeros@phys.ntnu.no> * xfns.c (Vgtk_version_string): New variable. (syms_of_xfns): DEFVAR_LISP it. Provide gtk. @@ -3358,11 +3423,11 @@ (draw_fringe_bitmap): Rework to handle per-window fringes and new fringe vs. display margin position. (hscroll_window_tree): Use window_box_width instead of window_box. - (redisplay_window): Adapt to per-window scroll bars. - (draw_glyphs): Rework to handle per-window fringes and scroll + (redisplay_window): Adapt to per-window scroll bars. + (draw_glyphs): Rework to handle per-window fringes and scroll bars, and new fringe vs. display margin position. Use WINDOW_LEFT_EDGE_X, WINDOW_TOTAL_WIDTH, and window_box_left. - (x_clear_end_of_line): Adapt to per-window fringes and scroll + (x_clear_end_of_line): Adapt to per-window fringes and scroll bars, and new fringe vs. display margin position. Fix bug which increased total width of full_width rows by width of scroll bars although window's total width already includes that. @@ -4429,7 +4494,7 @@ (w32_draw_window_cursor): New W32-specific functions for RIF. (w32_redisplay_interface): Add new members. - * w32gui.h (No_Cursor): Define as 0 for W32. + * w32gui.h (No_Cursor): Define as 0 for W32. (XRectangle): Add X compatible rectangle type. (NativeRectangle): Declare as RECT for W32. (CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros. @@ -5517,7 +5582,7 @@ * lisp.h: Declare Vx_resource_name extern. - * keyboard.c (kbd_buffer_get_event): Check MENU_BAR_ACTIVATE_EVENT + * keyboard.c (kbd_buffer_get_event): Check MENU_BAR_ACTIVATE_EVENT for USE_GTK. (make_lispy_event): Check MENU_BAR_EVENT for USE_GTK. @@ -5904,12 +5969,12 @@ Its primary purpose at this time is to initialize the global variable track_mouse_event_fn. - * w32fns.c (w32_wnd_proc): Remove initialization of + * w32fns.c (w32_wnd_proc): Remove initialization of track_mouse_event_fn from the handler for the WM_SETFOCUS message. * w32fns.c (syms_of_w32fns): Call globals_of_w32fns. - * w32menu.c (globals_of_w32menu): New function. Used to + * w32menu.c (globals_of_w32menu): New function. Used to initialize those global variables that must always be initialized on startup even when the global variable initialized is non zero. Its primary purpose at this time is to initialize the global @@ -11096,7 +11161,7 @@ 2001-12-03 Pavel Jan,Am(Bk <Pavel@Janik.cz> - * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief` an option. + * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief' an option. 2001-12-02 Pavel Jan,Am(Bk <Pavel@Janik.cz>
--- a/src/buffer.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/buffer.c Sun Mar 07 15:30:22 2004 +0000 @@ -1675,8 +1675,9 @@ doc: /* Select buffer BUFFER in some window, preferably a different one. If BUFFER is nil, then some other buffer is chosen. If `pop-up-windows' is non-nil, windows can be split to do this. -If optional second arg OTHER-WINDOW is non-nil, insist on finding another -window even if BUFFER is already visible in the selected window. +If optional second arg OTHER-WINDOW is nil, insist on finding another +window even if BUFFER is already visible in the selected window, +and ignore `same-window-regexps' and `same-window-buffer-names'. This uses the function `display-buffer' as a subroutine; see the documentation of `display-buffer' for additional customization information.
--- a/src/doc.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/doc.c Sun Mar 07 15:30:22 2004 +0000 @@ -821,7 +821,7 @@ start = strp; start_idx = start - SDATA (string); - while ((strp - SDATA (string) < SCHARS (string)) + while ((strp - SDATA (string) < SBYTES (string)) && *strp != '}' && *strp != '>') strp++;
--- a/src/editfns.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/editfns.c Sun Mar 07 15:30:22 2004 +0000 @@ -1,5 +1,5 @@ /* Lisp functions pertaining to editing. - Copyright (C) 1985,86,87,89,93,94,95,96,97,98, 1999, 2000, 2001, 02, 2003 + Copyright (C) 1985,86,87,89,93,94,95,96,97,98,1999,2000,01,02,03,2004 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2741,85 +2741,84 @@ doc: /* From START to END, translate characters according to TABLE. TABLE is a string; the Nth character in it is the mapping for the character with code N. -This function does not alter multibyte characters. It returns the number of characters changed. */) (start, end, table) Lisp_Object start; Lisp_Object end; register Lisp_Object table; { - register int pos_byte, stop; /* Limits of the region. */ register unsigned char *tt; /* Trans table. */ register int nc; /* New character. */ int cnt; /* Number of changes made. */ int size; /* Size of translate table. */ - int pos; + int pos, pos_byte; int multibyte = !NILP (current_buffer->enable_multibyte_characters); + int string_multibyte; validate_region (&start, &end); CHECK_STRING (table); - size = SBYTES (table); + if (multibyte != (SCHARS (table) < SBYTES (table))) + table = (multibyte + ? string_make_multibyte (table) + : string_make_unibyte (table)); + string_multibyte = SCHARS (table) < SBYTES (table); + + size = SCHARS (table); tt = SDATA (table); - pos_byte = CHAR_TO_BYTE (XINT (start)); - stop = CHAR_TO_BYTE (XINT (end)); - modify_region (current_buffer, XINT (start), XINT (end)); pos = XINT (start); + pos_byte = CHAR_TO_BYTE (pos); + modify_region (current_buffer, pos, XINT (end)); cnt = 0; - for (; pos_byte < stop; ) + for (; pos < XINT (end); ) { register unsigned char *p = BYTE_POS_ADDR (pos_byte); - int len; + unsigned char *str; + int len, str_len; int oc; - int pos_byte_next; if (multibyte) - oc = STRING_CHAR_AND_LENGTH (p, stop - pos_byte, len); + oc = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, len); else oc = *p, len = 1; - pos_byte_next = pos_byte + len; - if (oc < size && len == 1) + if (oc < size) { - nc = tt[oc]; + if (string_multibyte) + { + str = tt + string_char_to_byte (table, oc); + nc = STRING_CHAR_AND_LENGTH (str, MAX_MULTIBYTE_LENGTH, str_len); + } + else + { + str = tt + oc; + nc = tt[oc], str_len = 1; + } if (nc != oc) { - /* Take care of the case where the new character - combines with neighboring bytes. */ - if (!ASCII_BYTE_P (nc) - && (CHAR_HEAD_P (nc) - ? ! CHAR_HEAD_P (FETCH_BYTE (pos_byte + 1)) - : (pos_byte > BEG_BYTE - && ! ASCII_BYTE_P (FETCH_BYTE (pos_byte - 1))))) + if (len != str_len) { Lisp_Object string; - string = make_multibyte_string (tt + oc, 1, 1); /* This is less efficient, because it moves the gap, - but it handles combining correctly. */ - replace_range (pos, pos + 1, string, - 1, 0, 1); - pos_byte_next = CHAR_TO_BYTE (pos); - if (pos_byte_next > pos_byte) - /* Before combining happened. We should not - increment POS. So, to cancel the later - increment of POS, we decrease it now. */ - pos--; - else - INC_POS (pos_byte_next); + but it should multibyte characters correctly. */ + string = make_multibyte_string (str, 1, str_len); + replace_range (pos, pos + 1, string, 1, 0, 1); + len = str_len; } else { record_change (pos, 1); - *p = nc; + while (str_len-- > 0) + *p++ = *str++; signal_after_change (pos, 1, 1); update_compositions (pos, pos + 1, CHECK_BORDER); } ++cnt; } } - pos_byte = pos_byte_next; + pos_byte += len; pos++; }
--- a/src/fringe.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/fringe.c Sun Mar 07 15:30:22 2004 +0000 @@ -637,7 +637,10 @@ draw_fringe_bitmap_1 (w, row, left_p, overlay, NO_FRINGE_BITMAP); if (left_p && row->overlay_arrow_p) - draw_fringe_bitmap_1 (w, row, 1, 1, OVERLAY_ARROW_BITMAP); + draw_fringe_bitmap_1 (w, row, 1, 1, + (w->overlay_arrow_bitmap + ? w->overlay_arrow_bitmap + : OVERLAY_ARROW_BITMAP)); } @@ -738,7 +741,7 @@ { unsigned indicate_bob_p, indicate_top_line_p; unsigned indicate_eob_p, indicate_bottom_line_p; - + row = w->desired_matrix->rows + rn; if (!row->enabled_p) row = w->current_matrix->rows + rn; @@ -747,7 +750,7 @@ indicate_top_line_p = row->indicate_top_line_p; indicate_eob_p = row->indicate_eob_p; indicate_bottom_line_p = row->indicate_bottom_line_p; - + row->indicate_bob_p = row->indicate_top_line_p = 0; row->indicate_eob_p = row->indicate_bottom_line_p = 0; @@ -800,10 +803,6 @@ left = row->left_user_fringe_bitmap; left_face_id = row->left_user_fringe_face_id; } -#if 0 /* this is now done via an overlay */ - else if (row->overlay_arrow_p) - left = OVERLAY_ARROW_BITMAP; -#endif else if (row->indicate_bob_p && boundary_pos <= 0) left = ((row->indicate_eob_p && boundary_pos < 0) ? LEFT_BRACKET_BITMAP : TOP_LEFT_ANGLE_BITMAP); @@ -882,7 +881,7 @@ } -/* Compute actual fringe widths for frame F. +/* Compute actual fringe widths for frame F. If REDRAW is 1, redraw F if the fringe settings was actually modified and F is visible. @@ -1099,7 +1098,7 @@ BITS is either a string or a vector of integers. HEIGHT is height of bitmap. If HEIGHT is nil, use length of BITS. WIDTH must be an integer between 1 and 16, or nil which defaults to 8. -Optional forth arg ALIGN may be one of `top', `center', or `bottom', +Optional fourth arg ALIGN may be one of `top', `center', or `bottom', indicating the positioning of the bitmap relative to the rows where it is used; the default is to center the bitmap. Fourth arg may also be a list (ALIGN PERIODIC) where PERIODIC non-nil specifies that the bitmap @@ -1133,7 +1132,7 @@ fill2 = fb.height - h - fill1; } } - + if (NILP (width)) fb.width = 8; else @@ -1220,7 +1219,7 @@ DEFUN ("set-fringe-bitmap-face", Fset_fringe_bitmap_face, Sset_fringe_bitmap_face, 1, 2, 0, - doc: /* Set face for fringe bitmap FRINGE-ID to FACE. + doc: /* Set face for fringe bitmap FRINGE-ID to FACE. If FACE is nil, reset face to default fringe face. */) (fringe_id, face) Lisp_Object fringe_id, face; @@ -1247,7 +1246,7 @@ DEFUN ("fringe-bitmaps-at-pos", Ffringe_bitmaps_at_pos, Sfringe_bitmaps_at_pos, 0, 2, 0, - doc: /* Return fringe bitmaps of row containing position POS in window WINDOW. + doc: /* Return fringe bitmaps of row containing position POS in window WINDOW. If WINDOW is nil, use selected window. If POS is nil, use value of point in that window. Return value is a cons (LEFT . RIGHT) where LEFT and RIGHT are the fringe bitmap numbers for the bitmaps in the left and right fringe, @@ -1349,7 +1348,7 @@ { /* Destroy row bitmaps. */ int bt; - + for (bt = NO_FRINGE_BITMAP + 1; bt < max_used_fringe_bitmap; bt++) rif->destroy_fringe_bitmap (bt); }
--- a/src/indent.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/indent.c Sun Mar 07 15:30:22 2004 +0000 @@ -1199,7 +1199,6 @@ = (INTEGERP (current_buffer->selective_display) ? XINT (current_buffer->selective_display) : !NILP (current_buffer->selective_display) ? -1 : 0); - int prev_hpos = 0; int selective_rlen = (selective && dp && VECTORP (DISP_INVIS_VECTOR (dp)) ? XVECTOR (DISP_INVIS_VECTOR (dp))->size : 0); @@ -1227,6 +1226,8 @@ int wide_column_end_hpos = 0; int prev_pos; /* Previous buffer position. */ int prev_pos_byte; /* Previous buffer position. */ + int prev_hpos = 0; + int prev_vpos = 0; int contin_hpos; /* HPOS of last column of continued line. */ int prev_tab_offset; /* Previous tab offset. */ @@ -1275,6 +1276,7 @@ pos = prev_pos; pos_byte = prev_pos_byte; hpos = prev_hpos; + vpos = prev_vpos; tab_offset = prev_tab_offset; } break; @@ -1384,6 +1386,7 @@ if (pos >= next_boundary) next_boundary = pos + 1; prev_hpos = width; + prev_vpos = vpos; prev_tab_offset = tab_offset; } } @@ -1416,6 +1419,7 @@ pos = prev_pos; pos_byte = prev_pos_byte; hpos = prev_hpos; + vpos = prev_vpos; tab_offset = prev_tab_offset; /* NOTE on contin_hpos, hpos, and prev_hpos. @@ -1436,10 +1440,6 @@ hpos = contin_hpos; vpos = vpos - 1; } - else if (c == '\n') - /* If previous character is NEWLINE, - set VPOS back to previous line */ - vpos = vpos - 1; break; } @@ -1457,6 +1457,7 @@ pos = prev_pos; pos_byte = prev_pos_byte; hpos = prev_hpos; + vpos = prev_vpos; tab_offset = prev_tab_offset; } break; @@ -1465,6 +1466,7 @@ break; prev_hpos = hpos; + prev_vpos = vpos; prev_pos = pos; prev_pos_byte = pos_byte; wide_column_end_hpos = 0;
--- a/src/makefile.w32-in Sat Mar 06 12:15:27 2004 +0000 +++ b/src/makefile.w32-in Sun Mar 07 15:30:22 2004 +0000 @@ -723,6 +723,21 @@ $(SRC)/w32term.h \ $(SRC)/window.h +$(BLD)/fringe.$(O) : \ + $(SRC)/fringe.c \ + $(EMACS_ROOT)/src/s/ms-w32.h \ + $(EMACS_ROOT)/src/m/intel386.h \ + $(EMACS_ROOT)/src/config.h \ + $(SRC)/atimer.h \ + $(SRC)/blockinput.h \ + $(SRC)/buffer.h \ + $(SRC)/dispextern.h \ + $(SRC)/frame.h \ + $(SRC)/systime.h \ + $(SRC)/w32bdf.h \ + $(SRC)/w32gui.h \ + $(SRC)/window.h + $(BLD)/gmalloc.$(O) : \ $(SRC)/gmalloc.c \ $(EMACS_ROOT)/src/s/ms-w32.h \
--- a/src/s/sol2-6.h Sat Mar 06 12:15:27 2004 +0000 +++ b/src/s/sol2-6.h Sun Mar 07 15:30:22 2004 +0000 @@ -7,5 +7,10 @@ #define UNEXEC unexsol.o #endif +/* "Dennis McRitchie" <dmcr@Princeton.EDU> reported failures + with GNU ld without this. */ + +#define LD_SWITCH_SYSTEM_TEMACS -znocombreloc + /* arch-tag: 71ea3857-89dc-4395-9623-77964e6ed3ca (do not change this comment) */
--- a/src/w32term.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/w32term.c Sun Mar 07 15:30:22 2004 +0000 @@ -4394,7 +4394,7 @@ if (tool_bar_p || (dpyinfo->w32_focus_frame - && f == dpyinfo->w32_focus_frame)) + && f != dpyinfo->w32_focus_frame)) inev.kind = NO_EVENT; }
--- a/src/window.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/window.c Sun Mar 07 15:30:22 2004 +0000 @@ -281,6 +281,7 @@ p->fringes_outside_margins = Qnil; p->scroll_bar_width = Qnil; p->vertical_scroll_bar_type = Qt; + p->overlay_arrow_bitmap = 0; Vwindow_list = Qnil; return val; @@ -3269,9 +3270,10 @@ If `display-buffer-reuse-frames' is non-nil, and another frame is currently displaying BUFFER, then simply raise that frame. -The variables `special-display-buffer-names', `special-display-regexps', -`same-window-buffer-names', and `same-window-regexps' customize how certain -buffer names are handled. +The variables `special-display-buffer-names', +`special-display-regexps', `same-window-buffer-names', and +`same-window-regexps' customize how certain buffer names are handled. +The latter two take effect only if NOT-THIS-WINDOW is t. If optional argument FRAME is `visible', search all visible frames. If FRAME is 0, search all visible and iconified frames.
--- a/src/window.h Sat Mar 06 12:15:27 2004 +0000 +++ b/src/window.h Sun Mar 07 15:30:22 2004 +0000 @@ -254,6 +254,9 @@ /* This is handy for undrawing the cursor. */ int phys_cursor_ascent, phys_cursor_height; + /* Alternate overlay-arrow-bitmap in this window. */ + int overlay_arrow_bitmap; + /* Non-zero means the cursor is currently displayed. This can be set to zero by functions overpainting the cursor image. */ unsigned phys_cursor_on_p : 1;
--- a/src/xdisp.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/xdisp.c Sun Mar 07 15:30:22 2004 +0000 @@ -403,6 +403,13 @@ Lisp_Object Vglobal_mode_string; + +/* List of variables (symbols) which hold markers for overlay arrows. + The symbols on this list are examined during redisplay to determine + where to display overlay arrows. */ + +Lisp_Object Voverlay_arrow_variable_list; + /* Marker for where to display an arrow on top of the buffer text. */ Lisp_Object Voverlay_arrow_position; @@ -411,11 +418,17 @@ Lisp_Object Voverlay_arrow_string; -/* Values of those variables at last redisplay. However, if - Voverlay_arrow_position is a marker, last_arrow_position is its +/* Values of those variables at last redisplay are stored as + properties on `overlay-arrow-position' symbol. However, if + Voverlay_arrow_position is a marker, last-arrow-position is its numerical position. */ -static Lisp_Object last_arrow_position, last_arrow_string; +Lisp_Object Qlast_arrow_position, Qlast_arrow_string; + +/* Alternative overlay-arrow-string and overlay-arrow-bitmap + properties on a symbol in overlay-arrow-variable-list. */ + +Lisp_Object Qoverlay_arrow_string, Qoverlay_arrow_bitmap; /* Like mode-line-format, but for the title bar on a visible frame. */ @@ -828,7 +841,8 @@ static int compute_window_start_on_continuation_line P_ ((struct window *)); static Lisp_Object safe_eval_handler P_ ((Lisp_Object)); static void insert_left_trunc_glyphs P_ ((struct it *)); -static struct glyph_row *get_overlay_arrow_glyph_row P_ ((struct window *)); +static struct glyph_row *get_overlay_arrow_glyph_row P_ ((struct window *, + Lisp_Object)); static void extend_face_to_end_of_line P_ ((struct it *)); static int append_space P_ ((struct it *, int)); static int make_cursor_line_fully_visible P_ ((struct window *)); @@ -9316,6 +9330,153 @@ } +static Lisp_Object +overlay_arrow_string_or_property (var, pbitmap) + Lisp_Object var; + int *pbitmap; +{ + Lisp_Object pstr = Fget (var, Qoverlay_arrow_string); + Lisp_Object bitmap; + + if (pbitmap) + { + *pbitmap = 0; + if (bitmap = Fget (var, Qoverlay_arrow_bitmap), INTEGERP (bitmap)) + *pbitmap = XINT (bitmap); + } + + if (!NILP (pstr)) + return pstr; + return Voverlay_arrow_string; +} + +/* Return 1 if there are any overlay-arrows in current_buffer. */ +static int +overlay_arrow_in_current_buffer_p () +{ + Lisp_Object vlist; + + for (vlist = Voverlay_arrow_variable_list; + CONSP (vlist); + vlist = XCDR (vlist)) + { + Lisp_Object var = XCAR (vlist); + Lisp_Object val; + + if (!SYMBOLP (var)) + continue; + val = find_symbol_value (var); + if (MARKERP (val) + && current_buffer == XMARKER (val)->buffer) + return 1; + } + return 0; +} + + +/* Return 1 if any overlay_arrows have moved or overlay-arrow-string + has changed. */ + +static int +overlay_arrows_changed_p () +{ + Lisp_Object vlist; + + for (vlist = Voverlay_arrow_variable_list; + CONSP (vlist); + vlist = XCDR (vlist)) + { + Lisp_Object var = XCAR (vlist); + Lisp_Object val, pstr; + + if (!SYMBOLP (var)) + continue; + val = find_symbol_value (var); + if (!MARKERP (val)) + continue; + if (! EQ (COERCE_MARKER (val), + Fget (var, Qlast_arrow_position)) + || ! (pstr = overlay_arrow_string_or_property (var, 0), + EQ (pstr, Fget (var, Qlast_arrow_string)))) + return 1; + } + return 0; +} + +/* Mark overlay arrows to be updated on next redisplay. */ + +static void +update_overlay_arrows (up_to_date) + int up_to_date; +{ + Lisp_Object vlist; + + for (vlist = Voverlay_arrow_variable_list; + CONSP (vlist); + vlist = XCDR (vlist)) + { + Lisp_Object var = XCAR (vlist); + + if (!SYMBOLP (var)) + continue; + + if (up_to_date) + { + Lisp_Object val = find_symbol_value (var); + Fput (var, Qlast_arrow_position, + COERCE_MARKER (val)); + Fput (var, Qlast_arrow_string, + overlay_arrow_string_or_property (var, 0)); + } + else if (up_to_date < 0 + || !NILP (Fget (var, Qlast_arrow_position))) + { + Fput (var, Qlast_arrow_position, Qt); + Fput (var, Qlast_arrow_string, Qt); + } + } +} + + +/* Return overlay arrow string at row, or nil. */ + +static Lisp_Object +overlay_arrow_at_row (f, row, pbitmap) + struct frame *f; + struct glyph_row *row; + int *pbitmap; +{ + Lisp_Object vlist; + + for (vlist = Voverlay_arrow_variable_list; + CONSP (vlist); + vlist = XCDR (vlist)) + { + Lisp_Object var = XCAR (vlist); + Lisp_Object val; + + if (!SYMBOLP (var)) + continue; + + val = find_symbol_value (var); + + if (MARKERP (val) + && current_buffer == XMARKER (val)->buffer + && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) + { + val = overlay_arrow_string_or_property (var, pbitmap); + if (FRAME_WINDOW_P (f)) + return Qt; + else if (STRINGP (val)) + return val; + break; + } + } + + *pbitmap = 0; + return Qnil; +} + /* Return 1 if point moved out of or into a composition. Otherwise return 0. PREV_BUF and PREV_PT are the last point buffer and position. BUF and PT are the current point buffer and position. */ @@ -9595,8 +9756,7 @@ /* If specs for an arrow have changed, do thorough redisplay to ensure we remove any arrow that should no longer exist. */ - if (! EQ (COERCE_MARKER (Voverlay_arrow_position), last_arrow_position) - || ! EQ (Voverlay_arrow_string, last_arrow_string)) + if (overlay_arrows_changed_p ()) consider_all_windows_p = windows_or_buffers_changed = 1; /* Normally the message* functions will have already displayed and @@ -10056,11 +10216,7 @@ CHARPOS (this_line_start_pos) = 0; /* Let the overlay arrow be updated the next time. */ - if (!NILP (last_arrow_position)) - { - last_arrow_position = Qt; - last_arrow_string = Qt; - } + update_overlay_arrows (0); /* If we pause after scrolling, some rows in the current matrices of some windows are not valid. */ @@ -10076,8 +10232,8 @@ consider_all_windows_p is set. */ mark_window_display_accurate_1 (w, 1); - last_arrow_position = COERCE_MARKER (Voverlay_arrow_position); - last_arrow_string = Voverlay_arrow_string; + /* Say overlay arrows are up to date. */ + update_overlay_arrows (1); if (FRAME_DISPLAY (sf)->frame_up_to_date_hook != 0) FRAME_DISPLAY (sf)->frame_up_to_date_hook (sf); @@ -10273,16 +10429,14 @@ if (accurate_p) { - last_arrow_position = COERCE_MARKER (Voverlay_arrow_position); - last_arrow_string = Voverlay_arrow_string; + update_overlay_arrows (1); } else { /* Force a thorough redisplay the next time by setting last_arrow_position and last_arrow_string to t, which is unequal to any useful value of Voverlay_arrow_... */ - last_arrow_position = Qt; - last_arrow_string = Qt; + update_overlay_arrows (-1); } } @@ -11033,8 +11187,7 @@ && INTEGERP (w->window_end_vpos) && XFASTINT (w->window_end_vpos) < w->current_matrix->nrows && (FRAME_WINDOW_P (f) - || !MARKERP (Voverlay_arrow_position) - || current_buffer != XMARKER (Voverlay_arrow_position)->buffer)) + || !overlay_arrow_in_current_buffer_p ())) { int this_scroll_margin; struct glyph_row *row = NULL; @@ -12786,8 +12939,7 @@ GIVE_UP (10); /* Can use this if overlay arrow position and or string have changed. */ - if (!EQ (last_arrow_position, COERCE_MARKER (Voverlay_arrow_position)) - || !EQ (last_arrow_string, Voverlay_arrow_string)) + if (overlay_arrows_changed_p ()) GIVE_UP (12); @@ -13724,14 +13876,15 @@ arrow. Only used for non-window-redisplay windows. */ static struct glyph_row * -get_overlay_arrow_glyph_row (w) - struct window *w; +get_overlay_arrow_glyph_row (w, overlay_arrow_string) + struct window *w; + Lisp_Object overlay_arrow_string; { struct frame *f = XFRAME (WINDOW_FRAME (w)); struct buffer *buffer = XBUFFER (w->buffer); struct buffer *old = current_buffer; - const unsigned char *arrow_string = SDATA (Voverlay_arrow_string); - int arrow_len = SCHARS (Voverlay_arrow_string); + const unsigned char *arrow_string = SDATA (overlay_arrow_string); + int arrow_len = SCHARS (overlay_arrow_string); const unsigned char *arrow_end = arrow_string + arrow_len; const unsigned char *p; struct it it; @@ -13758,7 +13911,7 @@ /* Get its face. */ ilisp = make_number (p - arrow_string); - face = Fget_text_property (ilisp, Qface, Voverlay_arrow_string); + face = Fget_text_property (ilisp, Qface, overlay_arrow_string); it.face_id = compute_char_face (f, it.c, face); /* Compute its width, get its glyphs. */ @@ -14197,6 +14350,8 @@ struct it *it; { struct glyph_row *row = it->glyph_row; + int overlay_arrow_bitmap; + Lisp_Object overlay_arrow_string; /* We always start displaying at hpos zero even if hscrolled. */ xassert (it->hpos == 0 && it->current_x == 0); @@ -14592,17 +14747,16 @@ mark this glyph row as the one containing the overlay arrow. This is clearly a mess with variable size fonts. It would be better to let it be displayed like cursors under X. */ - if (MARKERP (Voverlay_arrow_position) - && current_buffer == XMARKER (Voverlay_arrow_position)->buffer - && (MATRIX_ROW_START_CHARPOS (row) - == marker_position (Voverlay_arrow_position)) - && STRINGP (Voverlay_arrow_string) - && ! overlay_arrow_seen) + if (! overlay_arrow_seen + && (overlay_arrow_string + = overlay_arrow_at_row (it->f, row, &overlay_arrow_bitmap), + !NILP (overlay_arrow_string))) { /* Overlay arrow in window redisplay is a fringe bitmap. */ if (!FRAME_WINDOW_P (it->f)) { - struct glyph_row *arrow_row = get_overlay_arrow_glyph_row (it->w); + struct glyph_row *arrow_row + = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string); struct glyph *glyph = arrow_row->glyphs[TEXT_AREA]; struct glyph *arrow_end = glyph + arrow_row->used[TEXT_AREA]; struct glyph *p = row->glyphs[TEXT_AREA]; @@ -14626,6 +14780,7 @@ } overlay_arrow_seen = 1; + it->w->overlay_arrow_bitmap = overlay_arrow_bitmap; row->overlay_arrow_p = 1; } @@ -17707,6 +17862,9 @@ if (it->image_id < 0) { /* Fringe bitmap. */ + it->ascent = it->phys_ascent = 0; + it->descent = it->phys_descent = 0; + it->pixel_width = 0; it->nglyphs = 0; return; } @@ -21433,10 +21591,15 @@ list_of_error = Fcons (intern ("error"), Qnil); staticpro (&list_of_error); - last_arrow_position = Qnil; - last_arrow_string = Qnil; - staticpro (&last_arrow_position); - staticpro (&last_arrow_string); + Qlast_arrow_position = intern ("last-arrow-position"); + staticpro (&Qlast_arrow_position); + Qlast_arrow_string = intern ("last-arrow-string"); + staticpro (&Qlast_arrow_string); + + Qoverlay_arrow_string = intern ("overlay-arrow-string"); + staticpro (&Qoverlay_arrow_string); + Qoverlay_arrow_bitmap = intern ("overlay-arrow-bitmap"); + staticpro (&Qoverlay_arrow_bitmap); echo_buffer[0] = echo_buffer[1] = Qnil; staticpro (&echo_buffer[0]); @@ -21500,9 +21663,17 @@ Voverlay_arrow_position = Qnil; DEFVAR_LISP ("overlay-arrow-string", &Voverlay_arrow_string, - doc: /* String to display as an arrow. See also `overlay-arrow-position'. */); + doc: /* String to display as an arrow in non-window frames. +See also `overlay-arrow-position'. */); Voverlay_arrow_string = Qnil; + DEFVAR_LISP ("overlay-arrow-variable-list", &Voverlay_arrow_variable_list, + doc: /* List of variables (symbols) which hold markers for overlay arrows. +The symbols on this list are examined during redisplay to determine +where to display overlay arrows. */); + Voverlay_arrow_variable_list + = Fcons (intern ("overlay-arrow-position"), Qnil); + DEFVAR_INT ("scroll-step", &scroll_step, doc: /* *The number of lines to try scrolling a window by when point moves out. If that fails to bring point back on frame, point is centered instead.
--- a/src/xfns.c Sat Mar 06 12:15:27 2004 +0000 +++ b/src/xfns.c Sun Mar 07 15:30:22 2004 +0000 @@ -3762,8 +3762,17 @@ { struct x_display_info *dpyinfo = check_x_display_info (display); - return make_number (DisplayCells (dpyinfo->display, - XScreenNumberOfScreen (dpyinfo->screen))); + int nr_planes = DisplayPlanes (dpyinfo->display, + XScreenNumberOfScreen (dpyinfo->screen)); + + /* Truncate nr_planes to 24 to avoid integer overflow. + Some displays says 32, but only 24 bits are actually significant. + There are only very few and rare video cards that have more than + 24 significant bits. Also 24 bits is more than 16 million colors, + it "should be enough for everyone". */ + if (nr_planes > 24) nr_planes = 24; + + return make_number (1 << nr_planes); } DEFUN ("x-server-max-request-size", Fx_server_max_request_size,