Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-56

Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 204-225)

   - Update from CVS
   - Sync from erc--emacs--0
   - Merge from gnus--rel--5.10
   - Improve tq.el.
   - Update from CVS: src/puresize.h (PURESIZE_RATIO): Reduce to 10/6.

 * gnus--rel--5.10  (patch 81-85)

   - Update from CVS
   - Merge from emacs--devo--0
This commit is contained in:
Miles Bader 2006-04-17 08:41:12 +00:00
commit cfc2051d0e
131 changed files with 7365 additions and 5139 deletions

View file

@ -33,6 +33,10 @@ Assigned to Bill Wohler <wohler@newt.com>.
* BUGS * BUGS
** Stefan Monnier's March 20 bug report about 3d boxes in header line.
** Is there a basic problem with cl-byte-compile-compiler-macro?
** Markus Gritsch's report about Emacs looping on Windoze with the following ** Markus Gritsch's report about Emacs looping on Windoze with the following
.emacs file, and then reduce Emacs frame width to "something quite narrow": .emacs file, and then reduce Emacs frame width to "something quite narrow":
(setq-default truncate-lines t) (setq-default truncate-lines t)
@ -72,7 +76,7 @@ you're going to handle.
DIRECTORY STATUS IN CHARGE DIRECTORY STATUS IN CHARGE
--------- ------ --------- --------- ------ ---------
etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org)) etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org))
leim working Kenichi Handa leim done Kenichi Handa
lib-src done ttn lib-src done ttn
lisp done ttn lisp done ttn
lisp/calc done Jay Belanger lisp/calc done Jay Belanger
@ -81,8 +85,8 @@ lisp/emacs-lisp done ttn
lisp/emulation done ttn lisp/emulation done ttn
lisp/eshell done ttn lisp/eshell done ttn
lisp/gnus done Romain Francoise lisp/gnus done Romain Francoise
lisp/international working Kenichi Handa lisp/international done Kenichi Handa
lisp/language working Kenichi Handa lisp/language done Kenichi Handa
lisp/mail done ttn lisp/mail done ttn
lisp/mh-e done Bill Wohler lisp/mh-e done Bill Wohler
lisp/net done ttn lisp/net done ttn

View file

@ -1,3 +1,21 @@
2006-04-12 Kenichi Handa <handa@m17n.org>
* PROBLEMS (C-SPC fails ...): Explicitly say fcitx in the header.
2006-04-11 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: (section{Tables}): Document column narrowing.
(section{Links}): Document bracket links.
2006-04-11 Kenichi Handa <handa@m17n.org>
* PROBLEMS (C-SPC fails ...): Add description for fcitx.
2006-04-10 Bill Wohler <wohler@newt.com>
* NEWS: Add package-version keyword to `defcustom' and mention
associated variable `customize-package-emacs-version-alist'.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de> 2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* NEWS: Add string-or-null-p. * NEWS: Add string-or-null-p.

View file

@ -3766,6 +3766,12 @@ variables, including buffer-local and frame-local variables.
** defcustom changes: ** defcustom changes:
+++
*** The package-version keyword has been added to provide
`customize-changed-options' functionality to packages in the future.
Developers who make use of this keyword must also update the new
variable `customize-package-emacs-version-alist'.
+++ +++
*** The new customization type `float' requires a floating point number. *** The new customization type `float' requires a floating point number.
@ -4035,6 +4041,12 @@ in DEF before the terminal colon and space.
A file local variables list cannot specify a string with text A file local variables list cannot specify a string with text
properties--any specified text properties are discarded. properties--any specified text properties are discarded.
+++
*** The variable `enable-local-variables' controls how local variable
lists are handled. t, the default, specifies the standard querying
behavior. :safe means use only safe values, and ignore the rest.
nil means ignore them all. Anything else means always query.
+++ +++
*** The variable `safe-local-eval-forms' specifies a list of forms that *** The variable `safe-local-eval-forms' specifies a list of forms that
are ok to evaluate when they appear in an `eval' local variables are ok to evaluate when they appear in an `eval' local variables
@ -10859,9 +10871,6 @@ SNMPv2 MIBs. It has entries on `auto-mode-alist'.
editing SQL files, and M-x sql-interactive-mode for interacting with editing SQL files, and M-x sql-interactive-mode for interacting with
SQL interpreters. It has an entry on `auto-mode-alist'. SQL interpreters. It has an entry on `auto-mode-alist'.
*** M-x highlight-changes-mode provides a minor mode displaying buffer
changes with a special face.
*** ispell4.el has been deleted. It got in the way of ispell.el and *** ispell4.el has been deleted. It got in the way of ispell.el and
this was hard to fix reliably. It has long been obsolete -- use this was hard to fix reliably. It has long been obsolete -- use
Ispell 3.1 and ispell.el. Ispell 3.1 and ispell.el.

View file

@ -995,7 +995,7 @@ xmodmap command to the xdm setup script for that display.
Use the shell command `xset bc' to make the old X Menu package work. Use the shell command `xset bc' to make the old X Menu package work.
*** C-SPC fails to work on Fedora GNU/Linux. *** C-SPC fails to work on Fedora GNU/Linux (or with fcitx input method).
Fedora Core 4 steals the C-SPC key by default for the `iiimx' program Fedora Core 4 steals the C-SPC key by default for the `iiimx' program
which is the input method for some languages. It blocks Emacs users which is the input method for some languages. It blocks Emacs users
@ -1009,6 +1009,12 @@ Another is to specify `Emacs*useXIM: false' in your X resources.
Another is to build Emacs with the `--without-xim' configure option. Another is to build Emacs with the `--without-xim' configure option.
The same problem happens on any other system if you are using fcitx
(Chinese input method) which by default use C-SPC for toggling. If
you want to use fcitx with Emacs, you have two choices. Toggle fcitx
by another key (e.g. C-\) by modifying ~/.fcitx/config, or be
accustomed to use C-@ for `set-mark-command'.
*** M-SPC seems to be ignored as input. *** M-SPC seems to be ignored as input.
See if your X server is set up to use this as a command See if your X server is set up to use this as a command

View file

@ -9,10 +9,13 @@ to the FSF.
* Small but important fixes needed in existing features: * Small but important fixes needed in existing features:
** Distribute a bar cursor of width > 1 evenly between the two glyphs
on each side of the bar (what to do at the edges?).
** Make vc-checkin avoid reverting the buffer if has not changed after ** Make vc-checkin avoid reverting the buffer if has not changed after
the checkin. Comparing (md5 BUFFER) to (md5 FILE) should be enough. the checkin. Comparing (md5 BUFFER) to (md5 FILE) should be enough.
** Make vc-annotate show place the cursor in the annotate buffer at the ** Make vc-annotate show place the cursor in the annotate buffer at the
same line as the current buffer. same line as the current buffer.
** buffer-offer-save should be a permanent local. ** buffer-offer-save should be a permanent local.
@ -69,7 +72,7 @@ to the FSF.
** Redesign the load-history data structure so it can cope better ** Redesign the load-history data structure so it can cope better
with evaluating definitions of the same function from different files, with evaluating definitions of the same function from different files,
recording which file the latest definition came from. recording which file the latest definition came from.
* Important features: * Important features:
** Provide user-friendly ways to list all available font families, ** Provide user-friendly ways to list all available font families,
@ -158,7 +161,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
** Emacs Lisp mode could put an overlay on the defun for every ** Emacs Lisp mode could put an overlay on the defun for every
function that has advice. The overlay could have `after-text' like " function that has advice. The overlay could have `after-text' like "
[Function has advice]". It might look like [Function has advice]". It might look like
(defun foo [Function has advice] (x y) (defun foo [Function has advice] (x y)
The overlay could also be a button that you could use to view the advice. The overlay could also be a button that you could use to view the advice.
** ange-ftp ** ange-ftp
@ -261,7 +264,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA,
but it's a valuable feature worth making more general. but it's a valuable feature worth making more general.
** Support simultaneous tty and X frames. [See the multi-tty branch of Emacs ** Support simultaneous tty and X frames. [See the multi-tty branch of Emacs
at http://lorentey.hu/project/emacs.] at http://lorentey.hu/project/emacs.]
** Provide MIME support for Rmail using the Gnus MIME library. [Maybe ** Provide MIME support for Rmail using the Gnus MIME library. [Maybe

View file

@ -1,4 +1,6 @@
% Reference Card for Org Mode 4.10 % Reference Card for Org Mode
\def\orgversionnumber{4.23}
\def\year{2006}
% %
%**start of header %**start of header
\newcount\columnsperpage \newcount\columnsperpage
@ -58,9 +60,6 @@
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas. % for their many good ideas.
\def\orgversionnumber{4.10}
\def\year{2006}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ 2004, 2005, 2006\ Free Software Foundation, Inc. \centerline{\small \copyright\ 2004, 2005, 2006\ Free Software Foundation, Inc.
Permissions on back. v\orgversionnumber}} Permissions on back. v\orgversionnumber}}
@ -367,10 +366,8 @@ \section{Timestamps}
\key{insert SCHEDULED timestamp}{C-c C-s} \key{insert SCHEDULED timestamp}{C-c C-s}
\key{create sparse tree with all deadlines due}{C-c C-w} \key{create sparse tree with all deadlines due}{C-c C-w}
\key{the time between 2 dates in a time range}{C-c C-y} \key{the time between 2 dates in a time range}{C-c C-y}
\key{change timestamp at cursor by $-1$ day}{S-LEFT$^4$} \key{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^4$}
\key{change timestamp at cursor by $+1$ day}{S-RIGHT$^4$} \key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^4$}
\key{change year/month/day at cursor by $-1$}{S-DOWN$^4$}
\key{change year/month/day at cursor by $+1$}{S-UP$^4$}
\key{access the calendar for the current date}{C-c >} \key{access the calendar for the current date}{C-c >}
\key{insert timestamp matching date in calendar}{C-c <} \key{insert timestamp matching date in calendar}{C-c <}
\key{access agenda for current date}{C-c C-o} \key{access agenda for current date}{C-c C-o}
@ -386,6 +383,7 @@ \section{Links}
\key{globally store link to the current location}{C-c l$^2$} \key{globally store link to the current location}{C-c l$^2$}
\key{insert a link (TAB completes stored links)}{C-c C-l} \key{insert a link (TAB completes stored links)}{C-c C-l}
\key{insert file link with file name completion}{C-u C-c C-l} \key{insert file link with file name completion}{C-u C-c C-l}
\key{edit (also hidden part of) link at point}{C-c C-l}
\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o} \key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o}
\key{open link at point (3: in emacs)}{mouse-2/3} \key{open link at point (3: in emacs)}{mouse-2/3}
@ -399,24 +397,26 @@ \section{Links}
\key{\kbd{<<<My Target>>>}}{\rm radio target$^3$} \key{\kbd{<<<My Target>>>}}{\rm radio target$^3$}
\key{\kbd{[[*this text]]}}{\rm find headline} \key{\kbd{[[*this text]]}}{\rm find headline}
\metax{\kbd{[[this text]]}}{\rm find target or text in buffer} \metax{\kbd{[[this text]]}}{\rm find target or text in buffer}
\metax{\kbd{[[this text][description]]}}{\rm optional link text}
{\bf External Links} {\bf External Links}
\key{\kbd{<file:/home/dominik/img/mars.jpg>}}{\rm file, absolute} \key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute}
\key{\kbd{<file:papers/last.pdf>}}{\rm file, relative} \key{\kbd{file:papers/last.pdf}}{\rm file, relative}
\key{\kbd{<file:projects.org::*that text>}}{\rm find headline} \key{\kbd{file:projects.org::*that text}}{\rm find headline}
\key{\kbd{<file:projects.org::find me>}}{\rm find tgt/string} \key{\kbd{file:projects.org::find me}}{\rm find tgt/string}
\key{\kbd{<file:projects.org::/regexp/>}}{\rm regexp search} \key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
\key{\kbd{<http://www.astro.uva.nl/~dominik>}}{\rm on the web} \key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
\key{\kbd{<mailto:adent@galaxy.net>}}{\rm EMail address} \key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
\key{\kbd{<news:comp.emacs>}}{\rm Usenet group} \key{\kbd{news:comp.emacs}}{\rm Usenet group}
\key{\kbd{<bbdb:Richard Stallman>}}{\rm BBDB person} \key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
\key{\kbd{<shell:ls *.org>}}{\rm shell command} \key{\kbd{shell:ls *.org}}{\rm shell command}
\key{\kbd{<gnus:group>}}{\rm GNUS group} \key{\kbd{gnus:group}}{\rm GNUS group}
\key{\kbd{<gnus:group\#id>}}{\rm GNUS message} \key{\kbd{gnus:group\#id}}{\rm GNUS message}
\key{\kbd{<vm|wl|mhe|rmail:folder>}}{\rm Mail folder} \key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder}
\key{\kbd{<vm|wl|mhe|rmail:folder\#id>}}{\rm Mail message} \key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message}
%\key{\kbd{<vm://myself@some.where.org/folder\#id>}}{\rm VM remote} \metax{\kbd{[[external link][description]]}}{\rm optional link text}
%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
\section{Tables} \section{Tables}
@ -425,11 +425,10 @@ \section{Tables}
{\bf Creating a table} {\bf Creating a table}
\metax{insert a new Org-mode table}{M-x org-table-create} %\metax{insert a new Org-mode table}{M-x org-table-create}
\metax{... or just start typing, e.g.}{|Name|Phone|Age RET |- TAB} \metax{just start typing, e.g.}{|Name|Phone|Age RET |- TAB}
\key{convert region to table}{C-c C-c} \key{convert region to table}{C-c |}
\key{... separator at least 3 spaces}{C-3 C-c C-c} \key{... separator at least 3 spaces}{C-3 C-c |}
%\key{... prompt for separator regexp}{C-u C-c C-c}
{\bf Commands available inside tables} {\bf Commands available inside tables}
@ -465,9 +464,7 @@ \section{Tables}
\key{paste rectangular region}{C-c C-x C-y} \key{paste rectangular region}{C-c C-x C-y}
\key{fill paragraph across selected cells}{C-c C-q} \key{fill paragraph across selected cells}{C-c C-q}
{\bf Calculations} {\bf Calculations} (in combination with Emacs \kbd{calc} package)
These need the Emacs calc package installed.
\key{set and eval column formula}{C-c =} \key{set and eval column formula}{C-c =}
\key{set and eval named-field formula}{C-u C-c =} \key{set and eval named-field formula}{C-u C-c =}
@ -475,8 +472,8 @@ \section{Tables}
\key{re-apply all stored equations to current line}{C-c *} \key{re-apply all stored equations to current line}{C-c *}
\key{re-apply all stored equations to entire table}{C-u C-c *} \key{re-apply all stored equations to entire table}{C-u C-c *}
\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation %\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
in lines starting with: {\tt | \# |}. %in lines starting with: {\tt | \# |}.
\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#} \key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
@ -484,9 +481,9 @@ \section{Tables}
\key{sum numbers in current column/rectangle}{C-c +} \key{sum numbers in current column/rectangle}{C-c +}
\key{copy down with increment}{S-RET$^4$} \key{copy down with increment}{S-RET$^4$}
A formula can also be typed directly into into a field and will Formulas typed in field are executed by \kbd{TAB},
executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}. A leading \kbd{=} \kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
introduces a column formula, \kbd{:=} a named-field formula. formula, \kbd{:=} a named-field formula.
\key{Example: Add Col1 and Col2}{=\$1+\$2} \key{Example: Add Col1 and Col2}{=\$1+\$2}
\key{... with printf format specification}{=\$1+\$2;\%.2f} \key{... with printf format specification}{=\$1+\$2;\%.2f}
@ -496,7 +493,9 @@ \section{Tables}
{\bf Miscellaneous} {\bf Miscellaneous}
\key{toggle visibility of vertical lines}{C-c |} \key{to limit column width to \kbd{N} characters, use}{...| <N> |...}
\key{edit the current field in a separate window}{C-c `}
\key{make current field fully visible}{C-u TAB}
\metax{export as tab-separated file}{M-x org-table-export} \metax{export as tab-separated file}{M-x org-table-export}
\metax{import tab-separated file}{M-x org-table-import} \metax{import tab-separated file}{M-x org-table-import}

View file

@ -1,5 +1,5 @@
# Makefile for leim subdirectory in GNU Emacs. # Makefile for leim subdirectory in GNU Emacs.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
# National Institute of Advanced Industrial Science and Technology (AIST) # National Institute of Advanced Industrial Science and Technology (AIST)

View file

@ -1,6 +1,6 @@
;;; quail/croatian.el -- Quail package for inputing Croatian -*-coding: iso-8859-2;-*- ;;; quail/croatian.el -- Quail package for inputing Croatian -*-coding: iso-8859-2;-*-
;; Copyright (C) 2002 Free Software Foundation, Inc. ;; Copyright (C) 2003 Free Software Foundation, Inc.
;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>, ;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>,
;; modeled after czech.el by Milan Zamazal. ;; modeled after czech.el by Milan Zamazal.

View file

@ -1,7 +1,7 @@
;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters ;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters
;; Copyright (C) 2001 Free Software Foundation, Inc. ;; Copyright (C) 2001 Free Software Foundation, Inc.
;; Copyright (C) 1997, 2005 ;; Copyright (C) 1997
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -2,7 +2,7 @@
;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
;; Copyright (C) 1997, 2005 ;; Copyright (C) 1997, 2003
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,6 +1,6 @@
;;; hangul3.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*- ;;; hangul3.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
;; Copyright (C) 1997, 2002 ;; Copyright (C) 1997, 2002
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,5 +1,6 @@
;;; hanja.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*- ;;; hanja.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 1997 Free Software Foundation, Inc.
;; Copyright (C) 1997 ;; Copyright (C) 1997
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,5 +1,6 @@
;;; japanese.el --- Quail package for inputting Japanese -*-coding: iso-2022-7bit;-*- ;;; japanese.el --- Quail package for inputting Japanese -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 2001 Free Software Foundation, Inc.
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: utf-8;-*- ;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: utf-8;-*-
;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
;; Copyright (C) 1997, 1999 ;; Copyright (C) 1999
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*- ;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*-
;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Copyright (C) 2001 ;; Copyright (C) 2001, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; latin-post.el --- Quail packages for inputting various European characters -*-coding: utf-8;-*- ;;; latin-post.el --- Quail packages for inputting various European characters -*-coding: utf-8;-*-
;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
;; Copyright (C) 1997 ;; Copyright (C) 1997, 1999
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021
;; Copyright (C) 2003 ;; Copyright (C) 2003

View file

@ -1,8 +1,8 @@
;;; latin-pre.el --- Quail packages for inputting various European characters -*-coding: utf-8;-*- ;;; latin-pre.el --- Quail packages for inputting various European characters -*-coding: utf-8;-*-
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
;; Copyright (C) 1997, 1999, 2005 ;; Copyright (C) 1997, 1998, 1999, 2000, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,6 +1,6 @@
;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols) -*-coding: iso-2022-7bit;-*- ;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols) -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 1997, 2000 ;; Copyright (C) 1997, 2000, 2003
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: iso-2022-7bit;-*- ;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 1995 Free Software Foundation, Inc. ;; Copyright (C) 1997 Free Software Foundation, Inc.
;; Copyright (C) 1995, 1998, 1999, 2000 ;; Copyright (C) 1997, 1998, 1999, 2000
;; National Institute of Advanced Industrial Science and Technology (AIST) ;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021 ;; Registration Number H14PRO021

View file

@ -1,3 +1,282 @@
2006-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
* newcomment.el (comment-add): New function.
(comment-region-default, comment-dwim): Use it.
2006-04-15 Michael Olson <mwolson@gnu.org>
* emacs-lisp/tq.el: Improve comments.
(tq-queue-head-question): New accessor function.
(tq-queue-head-regexp, tq-queue-head-closure, tq-queue-head-fn):
Update for modified queue structure.
(tq-queue-add): Accept `question' argument.
(tq-queue-pop): If a question is pending, send it.
(tq-enqueue): Accept new optional argument `delay-question'.
If this is non-nil, and at least one other question is pending a
response, queue the question rather than sending it immediately.
2006-04-15 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
* calendar/appt.el (appt-add): Check whether an appointment is
already present in appt-time-msg-list. Simplify code.
2006-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/cc-langs.el (c-mode-menu):
Don't presume c-subword-mode is bound.
2006-04-13 Bill Wohler <wohler@newt.com>
* cus-edit.el (customize-package-emacs-version-alist): Update docstring.
(customize-package-emacs-version): Use cdr instead of cadr now
that alists use dotted pairs.
* custom.el (defcustom): Fix docstring for :package-version.
2006-04-13 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-display-shell-command-buffer): New defvar.
(tramp-handle-shell-command): Display output buffer only when
`tramp-display-shell-command-buffer' is true.
(tramp-handle-process-file): Set `tramp-display-shell-command-buffer'.
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-set-autofill-regexps): Set only the local
values of `adaptive-fill-regexp' and `adaptive-fill-function'.
2006-04-13 Romain Francoise <romain@orebokech.com>
* pcvs-parse.el (cvs-parse-table): Use `with-temp-buffer' to avoid
leaving temporary .cvsignore buffers behind.
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el: (org-set-regexps-and-options)
(org-get-current-options): Better names for the startup folding
options.
2006-04-13 Thien-Thi Nguyen <ttn@gnu.org>
* vc.el (vc-annotate): Arrange for point to end up at the same
line number as in the original, but only when using a new buffer.
2006-04-12 Davis Herring <herring@lanl.gov> (tiny change)
* files.el (hack-one-local-variable-eval-safep):
Recognize `edebug-form-spec' for `put', but only if it passes
`edebug-basic-spec'. Generalize `put' handling.
* emacs-lisp/edebug.el (edebug-basic-spec): New function for
vetting file-local form specs.
* allout.el (allout-layout): Autoload its `safe-local-variable'
property.
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el: (org-ctrl-c-ctrl-c): Improve documentation string.
(org-agenda-mouse-1-follows-link)
(org-mouse-1-follows-link): New options.
(org-format-agenda-item): Fix bug if TAGS is nil.
(org-agenda-get-scheduled): Quote `priority' symbol in plist.
2006-04-13 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-set-gud-minor-mode-existing-buffers):
GDB 6.1+ gives full filename for "info sources" so use
file-name-nondirectory.
2006-04-12 Romain Francoise <romain@orebokech.com>
* subr.el (read-passwd): Bind `message-log-max' to nil.
2006-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/perl-mode.el (perl-indent-new-calculate):
Recompute parse-start after jumping backward by a whole sexp.
2006-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
* vc.el (vc-ensure-vc-buffer): Only change current-buffer, not the
window configuration.
(vc-annotate-display-select): Select the buffer so that current-buffer
(and selected-window) is the output buffer at the end of vc-annotate.
2006-04-11 J.D. Smith <jdsmith@as.arizona.edu>
* vc.el (vc-annotate-color-map): Add custom TTY color map for
8-color terminals, to use all of the colors in a sensible order.
256-color terminals work well with the standard map.
(vc-annotate-lines): Only strip the first color character if it
is "#", to allow for terminal-style named colors.
(vc-annotate-warp-version): Pass buf to `goto-line' to ensure
the correct buffer is scrolled.
2006-04-11 Richard Stallman <rms@gnu.org>
* emacs-lisp/bytecomp.el (byte-compile-file):
Bind enable-local-variables to :safe, and make normal-mode obey it.
* files.el (enable-local-variables): Allow value :safe.
(normal-mode): Doc fix.
(hack-local-variables): Implement enable-local-variables = :safe.
(hack-local-variables-confirm): Don't prevent quitting.
2006-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
* loadhist.el (unload-feature): A bit of sanity check of
load-history entries. Cancel timer-vars before unbinding them.
* hexl.el (hexl-isearch-search-function): Fix regexp-building code to
quote special chars, and make the trick work on the hex part of the
buffer as well.
(hexl-mode, hexl-save-buffer, hexl-mode-exit)
(hexl-maybe-dehexlify-buffer): Use restore-buffer-modified-p.
* startup.el (normal-splash-screen): Fix last change so we don't wait
2 minutes if we don't show the splash screen.
2006-04-11 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-export-plain-list-max-depth)
(org-table-spaces-around-separators)
(org-radio-targets, org-activate-camels)
(org-table-spaces-around-invisible-separators): Options removed.
(org-time-stamp-rounding-minutes, org-remember-templates)
(org-ellipsis, org-activate-links, org-descriptive-links):
New options.
(org-remember-apply-template, org-current-time)
(org-finish-edit-table-field)
(org-link-unescape, org-link-escape)
(org-string-width, org-table-clean-line, org-html-do-expand)
(org-edit-agenda-file-list, org-store-new-agenda-file-list)
(org-read-agenda-file-list): New functions.
(org-table-edit-field)
(org-table-create-or-convert-from-region): New commands
(org-table-toggle-vline-visibility): Command removed.
(org-table-convert-region): Made a command.
(orgtbl-deleta-backward-char,orgtbl-delete-char): Remove commands.
Replace with the normal org- functions.
(org-self-insert-command): Don't trigger realign unnecessarily
when blanking a field that is not full.
(org-mode): `Set buffer-invisibility-spec' for links.
(org-activate-links2): Hide link part and only show descriptive
part of the link.
(org-insert-link): Modify for new linking system.
(org-store-link): Store description separately, for use by
`org-insert-link'.
(org-table-align): Use `org-string-width'.
(defgroup): Completely new group structure for custom variables.
(org-agenda-files): Option: Single file name allowed. Function:
Optional argument unrestrited means ignore any restricitons.
(org-install-agenda-files-menu): Find a buffer in Org-mode before
trying to modify the menu. Use generalized access to
`org-agenda-files.'
(org-agenda-list, org-todo-list, org-cycle-agenda-files)
(org-agenda-file-to-front, org-remove-file, org-diary)
(org-tags-view, org-export-icalendar-all-agenda-files)
(org-export-icalendar-combine-agenda-files): Use generalized
access to `org-agenda-files'.
(org-remember-handler): Correctly preserve heading if present.
(org-table-insert-row, org-table-insert-hline): Deal with
invisible characters.
2006-04-10 J.D. Smith <jdsmith@as.arizona.edu>
* vc.el (vc-annotate-display-mode): Made default 'fullscale.
(vc-annotate-color-map): New 18 element constant
value/saturation, rotating hue colormap, from red->blue.
(vc-annotate-mode-menu): "Default" -> "By Color Map Range".
(vc-annotate-display-select): Switch to annotate-mode elsewhere.
(vc-annotate): To avoid killing the required local variables,
set them before the end of `with-output-to-temp-buffer', and
after first switching to annotate-mode.
(vc-annotate-warp-version): Add buffer argument in goto-line to
ensure annotation, not source, is scrolled.
2006-04-10 Bill Wohler <wohler@newt.com>
* custom.el (defcustom, custom-handle-keyword):
Add :package-version keyword.
(custom-add-package-version): New function. Sets value of new
property 'custom-package-version from :package-version keyword.
(defcustom): Create Common Keywords section in docstring.
(defface, defgroup): Replace definitions of a select few keywords
with a reference to the Common Keywords in defcustom.
(defcustom, defface, defgroup): Replace reference to Customization
chapter in manual with hyperlink.
* cus-edit.el (customize-package-emacs-version-alist):
New variable.
(customize-changed-options): Add check for custom-package-version.
(customize-package-emacs-version): New function to look up Emacs
version corresponding to the given package version.
* emacs-lisp/find-func.el (find-function-regexp): Allow dashes in
defun name, in similar fashion to find-variable-regexp.
2006-04-10 Eli Zaretskii <eliz@gnu.org>
* international/mule-cmds.el (set-locale-environment): Fix last
change for when the locale's preferences don't specify any encoding.
2006-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/find-func.el (find-function-search-for-symbol): Fix regexp
so the defined var/fun doesn't need to be quoted.
2006-04-10 Richard Stallman <rms@gnu.org>
* finder.el (finder-mode-map): Add n and p bindings.
2006-04-10 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-init-1): Re-initialise gdb-main-file to nil.
(gdb-get-version): Make it work for pre "interpreter mi" (GDB 5.3?).
(gdb-setup-windows): Put something in source window if we can't find
the source file.
(gdb-frame-handler): Make it work again with just assembly.
(gdb-data-list-register-values-handler): Make it work when there is
no stack.
2006-04-09 Richard Stallman <rms@gnu.org>
* mail/rmail.el (rmail-mime-charset-pattern): Ignore format and delsp
specs while looking for charset.
* textmodes/picture.el (picture-mode-exit): Run picture-mode-exit-hook.
* play/landmark.el (lm-font-lock-face-O, lm-font-lock-face-X):
Make them faces.
(lm-font-lock-keywords): Update appropriately.
2006-04-10 Kim F. Storm <storm@cua.dk>
* simple.el (filter-buffer-substring): Add NOPROPS arg, so
it can also replace buffer-substring-no-properties.
* emulation/cua-base.el (cua-delete-region, cua-paste)
(cua-repeat-replace-region): Use filter-buffer-substring.
* emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
(cua-cut-region-to-global-mark): Likewise.
* emulation/cua-rect.el (cua--extract-rectangle)
(cua-incr-rectangle, cua--rectangle-aux-replace): Likewise.
2006-04-09 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
* textmodes/bibtex.el (bibtex-entry-update): New optional arg
entry-type. Add field delimiters to numerical fields if they are
not present.
2006-04-09 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
* textmodes/bibtex.el (bibtex-find-text-internal): Add new element
string-const to return value.
(bibtex-remove-delimiters): Use it.
2006-04-08 Stefan Monnier <monnier@iro.umontreal.ca> 2006-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/bytecomp.el (byte-compile-form): Don't call * emacs-lisp/bytecomp.el (byte-compile-form): Don't call
@ -57,12 +336,11 @@
(rcirc-multiline-minor-mode-map): New mode map. (rcirc-multiline-minor-mode-map): New mode map.
(rcirc-edit-multiline): Put multiline-edit buffer in (rcirc-edit-multiline): Put multiline-edit buffer in
rcirc-multiline-major-mode along with rcirc-multiline-minor-mode. rcirc-multiline-major-mode along with rcirc-multiline-minor-mode.
(rcirc-print): Any line starting with an ignored nick will be (rcirc-print): Ignore any line starting with an ignored nick.
ignored.
(rcirc-print): Decode using rcirc-decode-coding-system. (rcirc-print): Decode using rcirc-decode-coding-system.
(rcirc-track-minor-mode): Update global-mode-string when disabling (rcirc-track-minor-mode): Update global-mode-string when disabling
this mode. this mode.
(minor-mode-alist): add LowPri indicator. (minor-mode-alist): Add LowPri indicator.
(rcirc-toggle-low-priority): New function. (rcirc-toggle-low-priority): New function.
(rcirc-last-non-irc-buffer): Prefix arg now no means switch to (rcirc-last-non-irc-buffer): Prefix arg now no means switch to
next lowpriority buffer with activity. next lowpriority buffer with activity.
@ -95,8 +373,7 @@
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de> 2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* pgg-gpg.el: Revert to revision 1.8 to allow the use of * pgg-gpg.el: Revert to revision 1.8 to allow the use of gpg-agent.
gpg-agent.
2006-04-07 Nick Roberts <nickrob@snap.net.nz> 2006-04-07 Nick Roberts <nickrob@snap.net.nz>
@ -109,21 +386,20 @@
* textmodes/paragraphs.el (sentence-end): Use string-or-null-p. * textmodes/paragraphs.el (sentence-end): Use string-or-null-p.
* textmodes/ispell.el (ispell-local-dictionary): Use * textmodes/ispell.el (ispell-local-dictionary): Use string-or-null-p.
string-or-null-p.
* files.el: Update comment about safe-local-variable declarations. * files.el: Update comment about safe-local-variable declarations.
2006-04-06 J.D. Smith <jdsmith@as.arizona.edu> 2006-04-06 J.D. Smith <jdsmith@as.arizona.edu>
* progmodes/idlwave.el: Updated to IDLWAVE version 6.0. See * progmodes/idlwave.el: Updated to IDLWAVE version 6.0.
idlwave.org. See idlwave.org.
* progmodes/idlw-shell.el: Updated to IDLWAVE version 6.0. See * progmodes/idlw-shell.el: Updated to IDLWAVE version 6.0.
idlwave.org. Includes code to obsolete idlw-rinfo.el. See idlwave.org. Includes code to obsolete idlw-rinfo.el.
* progmodes/idlw-help.el: Updated to IDLWAVE version 6.0. See * progmodes/idlw-help.el: Updated to IDLWAVE version 6.0.
idlwave.org. See idlwave.org.
* progmodes/idlw-complete-structtag.el: Updated to IDLWAVE * progmodes/idlw-complete-structtag.el: Updated to IDLWAVE
version 6.0 (minimal changes). See idlwave.org. version 6.0 (minimal changes). See idlwave.org.
@ -194,8 +470,8 @@
2006-04-05 Daiki Ueno <ueno@unixuser.org> 2006-04-05 Daiki Ueno <ueno@unixuser.org>
* pgg-gpg.el (pgg-gpg-encrypt-region, pgg-gpg-sign-region): Wait * pgg-gpg.el (pgg-gpg-encrypt-region, pgg-gpg-sign-region):
for BEGIN_SIGNING too, new in GnuPG 1.4.3. Wait for BEGIN_SIGNING too, new in GnuPG 1.4.3.
2006-04-05 Kenichi Handa <handa@m17n.org> 2006-04-05 Kenichi Handa <handa@m17n.org>
@ -208,8 +484,7 @@
default-enable-multibyte-characters. This reverts the change from default-enable-multibyte-characters. This reverts the change from
revision 6.17 which is no longer necessary because the passphrase revision 6.17 which is no longer necessary because the passphrase
is sent separately now. GnuPG messages are unreadable under is sent separately now. GnuPG messages are unreadable under
multibyte locales with default-enable-multibyte-characters set to multibyte locales with default-enable-multibyte-characters set to nil.
nil.
2006-04-04 Andreas Schwab <schwab@suse.de> 2006-04-04 Andreas Schwab <schwab@suse.de>

View file

@ -666,6 +666,7 @@ the layout used for the allout.el source file.)
`allout-layout' can additionally have the value `t', in which `allout-layout' can additionally have the value `t', in which
case the value of `allout-default-layout' is used.") case the value of `allout-default-layout' is used.")
(make-variable-buffer-local 'allout-layout) (make-variable-buffer-local 'allout-layout)
;;;###autoload
(put 'allout-layout 'safe-local-variable t) (put 'allout-layout 'safe-local-variable t)
;;;_ : Topic header format ;;;_ : Topic header format

View file

@ -498,11 +498,11 @@ The time should be in either 24 hour format or am/pm format."
(interactive "sTime (hh:mm[am/pm]): \nsMessage: ") (interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
(unless (string-match appt-time-regexp new-appt-time) (unless (string-match appt-time-regexp new-appt-time)
(error "Unacceptable time-string")) (error "Unacceptable time-string"))
(let* ((appt-time-string (concat new-appt-time " " new-appt-msg)) (let ((time-msg (list (list (appt-convert-time new-appt-time))
(appt-time (list (appt-convert-time new-appt-time))) (concat new-appt-time " " new-appt-msg) t)))
(time-msg (list appt-time appt-time-string t))) (unless (member time-msg appt-time-msg-list)
(setq appt-time-msg-list (nconc appt-time-msg-list (list time-msg))) (setq appt-time-msg-list
(setq appt-time-msg-list (appt-sort-list appt-time-msg-list)))) (appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))
;;;###autoload ;;;###autoload
(defun appt-delete () (defun appt-delete ()

View file

@ -786,7 +786,7 @@ when the action is chosen.")
(if (or (and (= 1 (length children)) (if (or (and (= 1 (length children))
(memq (widget-type (car children)) (memq (widget-type (car children))
'(custom-variable custom-face))) '(custom-variable custom-face)))
(y-or-n-p "Reset all settings' buffer text to show current values? ")) (y-or-n-p "Reset all settings' buffer text to show current values? "))
(mapc (lambda (widget) (mapc (lambda (widget)
(if (memq (widget-get widget :custom-state) (if (memq (widget-get widget :custom-state)
'(modified changed)) '(modified changed))
@ -1079,6 +1079,33 @@ Show the buffer in another window, but don't select it."
(defvar customize-changed-options-previous-release "21.1" (defvar customize-changed-options-previous-release "21.1"
"Version for `customize-changed-options' to refer back to by default.") "Version for `customize-changed-options' to refer back to by default.")
;; Packages will update this variable, so make it available.
;;;###autoload
(defvar customize-package-emacs-version-alist nil
"Alist mapping versions of Emacs to versions of a package.
These package versions are listed in the :package-version
keyword used in `defcustom', `defgroup', and `defface'. Its
elements look like this:
(PACKAGE (PVERSION . EVERSION)...)
For each PACKAGE, which is a symbol, there are one or more
elements that contain a package version PVERSION with an
associated Emacs version EVERSION. These versions are strings.
For example, the MH-E package updates this alist with the
following:
(add-to-list 'customize-package-emacs-version-alist
'(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\")
(\"7.0\" . \"22.1\") (\"7.1\" . \"22.1\")
(\"7.2\" . \"22.1\") (\"7.3\" . \"22.1\")
(\"7.4\" . \"22.1\") (\"8.0\" . \"22.1\")))
The value of PACKAGE needs to be unique and it needs to match the
PACKAGE value appearing in the :package-version keyword. Since
the user might see the value in a error message, a good choice is
the official name of the package, such as MH-E or Gnus.")
;;;###autoload ;;;###autoload
(defalias 'customize-changed 'customize-changed-options) (defalias 'customize-changed 'customize-changed-options)
@ -1119,7 +1146,12 @@ that were added or redefined since that version."
(let (found) (let (found)
(mapatoms (mapatoms
(lambda (symbol) (lambda (symbol)
(let ((version (get symbol 'custom-version))) (let* ((package-version (get symbol 'custom-package-version))
(version
(or (and package-version
(customize-package-emacs-version symbol
package-version))
(get symbol 'custom-version))))
(if version (if version
(when (customize-version-lessp since-version version) (when (customize-version-lessp since-version version)
(if (or (get symbol 'custom-group) (if (or (get symbol 'custom-group)
@ -1135,6 +1167,32 @@ that were added or redefined since that version."
(error "No user option defaults have been changed since Emacs %s" (error "No user option defaults have been changed since Emacs %s"
since-version)))) since-version))))
(defun customize-package-emacs-version (symbol package-version)
"Return Emacs version of SYMBOL.
PACKAGE-VERSION has the form (PACKAGE . VERSION). The VERSION of
PACKAGE is looked up in the associated list
`customize-package-emacs-version-alist' to find the version of
Emacs that is associated with it."
(let (package-versions emacs-version)
;; Use message instead of error since we want user to be able to
;; see the rest of the symbols even if a package author has
;; botched things up.
(cond ((not (listp package-version))
(message "Invalid package-version value for %s" symbol))
((setq package-versions (assq (car package-version)
customize-package-emacs-version-alist))
(setq emacs-version
(cdr (assoc (cdr package-version) package-versions)))
(unless emacs-version
(message "%s version %s not found in %s" symbol
(cdr package-version)
"customize-package-emacs-version-alist")))
(t
(message "Package %s neglected to update %s"
(car package-version)
"customize-package-emacs-version-alist")))
emacs-version))
(defun customize-version-lessp (version1 version2) (defun customize-version-lessp (version1 version2)
;; Why are the versions strings, and given that they are, why aren't ;; Why are the versions strings, and given that they are, why aren't
;; they converted to numbers and compared as such here? -- fx ;; they converted to numbers and compared as such here? -- fx

View file

@ -203,8 +203,27 @@ The following keywords are meaningful:
:type VALUE should be a widget type for editing the symbol's value. :type VALUE should be a widget type for editing the symbol's value.
:options VALUE should be a list of valid members of the widget type. :options VALUE should be a list of valid members of the widget type.
:initialize
VALUE should be a function used to initialize the
variable. It takes two arguments, the symbol and value
given in the `defcustom' call. The default is
`custom-initialize-reset'.
:set VALUE should be a function to set the value of the symbol.
It takes two arguments, the symbol to set and the value to
give it. The default choice of function is `custom-set-default'.
:get VALUE should be a function to extract the value of symbol.
The function takes one argument, a symbol, and should return
the current value for that symbol. The default choice of function
is `custom-default-value'.
:require
VALUE should be a feature symbol. If you save a value
for this option, then when your `.emacs' file loads the value,
it does (require VALUE) first.
The following common keywords are also meaningful.
:group VALUE should be a customization group. :group VALUE should be a customization group.
Add SYMBOL to that group. Add SYMBOL (or FACE with `defface') to that group.
:link LINK-DATA :link LINK-DATA
Include an external link after the documentation string for this Include an external link after the documentation string for this
item. This is a sentence containing an active field which item. This is a sentence containing an active field which
@ -248,26 +267,19 @@ The following keywords are meaningful:
An item can have more than one external link; however, most items An item can have more than one external link; however, most items
have none at all. have none at all.
:initialize
VALUE should be a function used to initialize the
variable. It takes two arguments, the symbol and value
given in the `defcustom' call. The default is
`custom-initialize-reset'.
:set VALUE should be a function to set the value of the symbol.
It takes two arguments, the symbol to set and the value to
give it. The default choice of function is `custom-set-default'.
:get VALUE should be a function to extract the value of symbol.
The function takes one argument, a symbol, and should return
the current value for that symbol. The default choice of function
is `custom-default-value'.
:require
VALUE should be a feature symbol. If you save a value
for this option, then when your `.emacs' file loads the value,
it does (require VALUE) first.
:version :version
VALUE should be a string specifying that the variable was VALUE should be a string specifying that the variable was
first introduced, or its default value was changed, in Emacs first introduced, or its default value was changed, in Emacs
version VERSION. version VERSION.
:package-version
VALUE should be a list with the form (PACKAGE . VERSION)
specifying that the variable was first introduced, or its
default value was changed, in PACKAGE version VERSION. This
keyword takes priority over :version. The PACKAGE and VERSION
must appear in the alist `customize-package-emacs-version-alist'.
Since PACKAGE must be unique and the user might see it in an
error message, a good choice is the official name of the
package, such as MH-E or Gnus.
:tag LABEL :tag LABEL
Use LABEL, a string, instead of the item's name, to label the item Use LABEL, a string, instead of the item's name, to label the item
in customization menus and buffers. in customization menus and buffers.
@ -286,8 +298,8 @@ to load a file defining variables with this form, or with
_outside_ any bindings for these variables. \(`defvar' and _outside_ any bindings for these variables. \(`defvar' and
`defconst' behave similarly in this respect.) `defconst' behave similarly in this respect.)
Read the section about customization in the Emacs Lisp manual for more See Info node `(elisp) Customization' in the Emacs Lisp manual
information." for more information."
(declare (doc-string 3)) (declare (doc-string 3))
;; It is better not to use backquote in this file, ;; It is better not to use backquote in this file,
;; because that makes a bootstrapping problem ;; because that makes a bootstrapping problem
@ -314,10 +326,8 @@ The remaining arguments should have the form
[KEYWORD VALUE]... [KEYWORD VALUE]...
The following KEYWORDs are defined: For a list of valid keywords, see the common keywords listed in
`defcustom'.
:group VALUE should be a customization group.
Add FACE to that group.
SPEC should be an alist of the form ((DISPLAY ATTS)...). SPEC should be an alist of the form ((DISPLAY ATTS)...).
@ -368,8 +378,8 @@ corresponding ITEMs. These are the defined REQ values:
the function `display-supports-face-attributes-p' for more the function `display-supports-face-attributes-p' for more
information on exactly how testing is done. information on exactly how testing is done.
Read the section about customization in the Emacs Lisp manual for more See Info node `(elisp) Customization' in the Emacs Lisp manual
information." for more information."
(declare (doc-string 3)) (declare (doc-string 3))
;; It is better not to use backquote in this file, ;; It is better not to use backquote in this file,
;; because that makes a bootstrapping problem ;; because that makes a bootstrapping problem
@ -426,16 +436,11 @@ The remaining arguments should have the form
[KEYWORD VALUE]... [KEYWORD VALUE]...
The following KEYWORDs are defined: For a list of valid keywords, see the common keywords listed in
`defcustom'.
:group VALUE should be a customization group. See Info node `(elisp) Customization' in the Emacs Lisp manual
Add SYMBOL to that group. for more information."
:version VALUE should be a string specifying that the group was introduced
in Emacs version VERSION.
Read the section about customization in the Emacs Lisp manual for more
information."
(declare (doc-string 3)) (declare (doc-string 3))
;; It is better not to use backquote in this file, ;; It is better not to use backquote in this file,
;; because that makes a bootstrapping problem ;; because that makes a bootstrapping problem
@ -489,6 +494,8 @@ Fourth argument TYPE is the custom option type."
(custom-add-to-group value symbol type)) (custom-add-to-group value symbol type))
((eq keyword :version) ((eq keyword :version)
(custom-add-version symbol value)) (custom-add-version symbol value))
((eq keyword :package-version)
(custom-add-package-version symbol value))
((eq keyword :link) ((eq keyword :link)
(custom-add-link symbol value)) (custom-add-link symbol value))
((eq keyword :load) ((eq keyword :load)
@ -540,6 +547,10 @@ For other custom types, this has no effect."
"To the custom option SYMBOL add the version VERSION." "To the custom option SYMBOL add the version VERSION."
(put symbol 'custom-version (purecopy version))) (put symbol 'custom-version (purecopy version)))
(defun custom-add-package-version (symbol version)
"To the custom option SYMBOL add the package version VERSION."
(put symbol 'custom-package-version (purecopy version)))
(defun custom-add-load (symbol load) (defun custom-add-load (symbol load)
"To the custom option SYMBOL add the dependency LOAD. "To the custom option SYMBOL add the dependency LOAD.
LOAD should be either a library file name, or a feature name." LOAD should be either a library file name, or a feature name."

View file

@ -1650,8 +1650,12 @@ The value is non-nil if there were no errors, nil if errors."
;; If they change the file name, then change it for the output also. ;; If they change the file name, then change it for the output also.
(let ((buffer-file-name filename) (let ((buffer-file-name filename)
(default-major-mode 'emacs-lisp-mode) (default-major-mode 'emacs-lisp-mode)
;; Ignore unsafe local variables.
;; We only care about a few of them for our purposes.
(enable-local-variables :safe)
(enable-local-eval nil)) (enable-local-eval nil))
(normal-mode) ;; Arg of t means don't alter enable-local-variables.
(normal-mode t)
(setq filename buffer-file-name)) (setq filename buffer-file-name))
;; Set the default directory, in case an eval-when-compile uses it. ;; Set the default directory, in case an eval-when-compile uses it.
(setq default-directory (file-name-directory filename))) (setq default-directory (file-name-directory filename)))

View file

@ -258,6 +258,20 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
edebug-form-spec edebug-form-spec
)) ))
;;;###autoload
(defun edebug-basic-spec (spec)
"Return t if SPEC uses only extant spec symbols.
An extant spec symbol is a symbol that is not a function and has a
`edebug-form-spec' property."
(cond ((listp spec)
(catch 'basic
(while spec
(unless (edebug-basic-spec (car spec)) (throw 'basic nil))
(setq spec (cdr spec)))
t))
((symbolp spec)
(unless (functionp spec) (get spec 'edebug-form-spec)))))
;;; Utilities ;;; Utilities
;; Define edebug-gensym - from old cl.el ;; Define edebug-gensym - from old cl.el

View file

@ -64,7 +64,7 @@
(concat (concat
"^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\ "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\
ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\ ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\
foo\\|[^cfgv]\\w+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ foo\\|[^cfgv]\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\
menu-bar-make-toggle\\)" menu-bar-make-toggle\\)"
find-function-space-re find-function-space-re
"\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)") "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)")
@ -228,8 +228,16 @@ The search is done in the source for library LIBRARY."
(with-syntax-table emacs-lisp-mode-syntax-table (with-syntax-table emacs-lisp-mode-syntax-table
(goto-char (point-min)) (goto-char (point-min))
(if (or (re-search-forward regexp nil t) (if (or (re-search-forward regexp nil t)
;; `regexp' matches definitions using known forms like
;; `defun', or `defvar'. But some functions/variables
;; are defined using special macros (or functions), so
;; if `regexp' can't find the definition, we look for
;; something of the form "(SOMETHING <symbol> ...)".
;; This fails to distinguish function definitions from
;; variable declarations (or even uses thereof), but is
;; a good pragmatic fallback.
(re-search-forward (re-search-forward
(concat "^([^ ]+" find-function-space-re "['(]" (concat "^([^ ]+" find-function-space-re "['(]?"
(regexp-quote (symbol-name symbol)) (regexp-quote (symbol-name symbol))
"\\_>") "\\_>")
nil t)) nil t))

View file

@ -27,18 +27,56 @@
;;; Commentary: ;;; Commentary:
;; manages receiving a stream asynchronously, ;; This file manages receiving a stream asynchronously, parsing it
;; parsing it into transactions, and then calling ;; into transactions, and then calling the associated handler function
;; handler functions ;; upon the completion of each transaction.
;; Our basic structure is the queue/process/buffer triple. Each entry ;; Our basic structure is the queue/process/buffer triple. Each entry
;; of the queue is a regexp/closure/function triple. We buffer ;; of the queue part is a list of question, regexp, closure, and
;; bytes from the process until we see the regexp at the head of the ;; function that is consed to the last element.
;; queue. Then we call the function with the closure and the
;; collected bytes. ;; A transaction queue may be created by calling `tq-create'.
;; A request may be added to the queue by calling `tq-enqueue'. If
;; the `delay-question' argument is non-nil, we will wait to send the
;; question to the process until it has finished sending other input.
;; Otherwise, once a request is enqueued, we send the given question
;; immediately to the process.
;; We then buffer bytes from the process until we see the regexp that
;; was provided in the call to `tq-enqueue'. Then we call the
;; provided function with the closure and the collected bytes. If we
;; have indicated that the question from the next transaction was not
;; sent immediately, send it at this point, awaiting the response.
;;; Code: ;;; Code:
;;; Accessors
;; This part looks like (queue . (process . buffer))
(defun tq-queue (tq) (car tq))
(defun tq-process (tq) (car (cdr tq)))
(defun tq-buffer (tq) (cdr (cdr tq)))
;; The structure of `queue' is as follows
;; ((question regexp closure . fn)
;; <other queue entries>)
;; question: string to send to the process
(defun tq-queue-head-question (tq) (car (car (tq-queue tq))))
;; regexp: regular expression that matches the end of a response from
;; the process
(defun tq-queue-head-regexp (tq) (car (cdr (car (tq-queue tq)))))
;; closure: additional data to pass to function
(defun tq-queue-head-closure (tq) (car (cdr (cdr (car (tq-queue tq))))))
;; fn: function to call upon receiving a complete response from the
;; process
(defun tq-queue-head-fn (tq) (cdr (cdr (cdr (car (tq-queue tq))))))
;; Determine whether queue is empty
(defun tq-queue-empty (tq) (not (tq-queue tq)))
;;; Core functionality
;;;###autoload ;;;###autoload
(defun tq-create (process) (defun tq-create (process)
"Create and return a transaction queue communicating with PROCESS. "Create and return a transaction queue communicating with PROCESS.
@ -54,33 +92,37 @@ to a tcp server on another machine."
(tq-filter ',tq string))) (tq-filter ',tq string)))
tq)) tq))
;;; accessors (defun tq-queue-add (tq question re closure fn)
(defun tq-queue (tq) (car tq))
(defun tq-process (tq) (car (cdr tq)))
(defun tq-buffer (tq) (cdr (cdr tq)))
(defun tq-queue-add (tq re closure fn)
(setcar tq (nconc (tq-queue tq) (setcar tq (nconc (tq-queue tq)
(cons (cons re (cons closure fn)) nil))) (cons (cons question (cons re (cons closure fn))) nil)))
'ok) 'ok)
(defun tq-queue-head-regexp (tq) (car (car (tq-queue tq)))) (defun tq-queue-pop (tq)
(defun tq-queue-head-fn (tq) (cdr (cdr (car (tq-queue tq))))) (setcar tq (cdr (car tq)))
(defun tq-queue-head-closure (tq) (car (cdr (car (tq-queue tq))))) (let ((question (tq-queue-head-question tq)))
(defun tq-queue-empty (tq) (not (tq-queue tq))) (when question
(defun tq-queue-pop (tq) (setcar tq (cdr (car tq))) (null (car tq))) (process-send-string (tq-process tq) question)))
(null (car tq)))
(defun tq-enqueue (tq question regexp closure fn &optional delay-question)
;;; must add to queue before sending!
(defun tq-enqueue (tq question regexp closure fn)
"Add a transaction to transaction queue TQ. "Add a transaction to transaction queue TQ.
This sends the string QUESTION to the process that TQ communicates with. This sends the string QUESTION to the process that TQ communicates with.
When the corresponding answer comes back, we call FN
with two arguments: CLOSURE, and the answer to the question. When the corresponding answer comes back, we call FN with two
arguments: CLOSURE, which may contain additional data that FN
needs, and the answer to the question.
REGEXP is a regular expression to match the entire answer; REGEXP is a regular expression to match the entire answer;
that's how we tell where the answer ends." that's how we tell where the answer ends.
(tq-queue-add tq regexp closure fn)
(process-send-string (tq-process tq) question)) If DELAY-QUESTION is non-nil, delay sending this question until
the process has finished replying to any previous questions.
This produces more reliable results with some processes."
(let ((sendp (or (not delay-question)
(not (tq-queue-head-question tq)))))
(tq-queue-add tq (unless sendp question) regexp closure fn)
(when sendp
(process-send-string (tq-process tq) question))))
(defun tq-close (tq) (defun tq-close (tq)
"Shut down transaction queue TQ, terminating the process." "Shut down transaction queue TQ, terminating the process."

View file

@ -769,7 +769,7 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil."
(let ((start (mark)) (end (point))) (let ((start (mark)) (end (point)))
(or (<= start end) (or (<= start end)
(setq start (prog1 end (setq end start)))) (setq start (prog1 end (setq end start))))
(setq cua--last-deleted-region-text (buffer-substring start end)) (setq cua--last-deleted-region-text (filter-buffer-substring start end))
(if cua-delete-copy-to-register-0 (if cua-delete-copy-to-register-0
(set-register ?0 cua--last-deleted-region-text)) (set-register ?0 cua--last-deleted-region-text))
(delete-region start end) (delete-region start end)
@ -858,7 +858,7 @@ If global mark is active, copy from register or one character."
(if regtxt (if regtxt
(cua--insert-at-global-mark regtxt) (cua--insert-at-global-mark regtxt)
(when (not (eobp)) (when (not (eobp))
(cua--insert-at-global-mark (buffer-substring (point) (+ (point) count))) (cua--insert-at-global-mark (filter-buffer-substring (point) (+ (point) count)))
(forward-char count)))) (forward-char count))))
(buffer-read-only (buffer-read-only
(message "Cannot paste into a read-only buffer")) (message "Cannot paste into a read-only buffer"))
@ -875,7 +875,7 @@ If global mark is active, copy from register or one character."
(setq paste-lines (cua--delete-rectangle)) (setq paste-lines (cua--delete-rectangle))
(if (= paste-lines 1) (if (= paste-lines 1)
(setq paste-lines nil))) ;; paste all (setq paste-lines nil))) ;; paste all
(if (string= (buffer-substring (point) (mark)) (if (string= (filter-buffer-substring (point) (mark))
(car kill-ring)) (car kill-ring))
(current-kill 1)) (current-kill 1))
(cua-delete-region))) (cua-delete-region)))
@ -950,7 +950,7 @@ of text."
(setq s (car u) e (cdr u))))))) (setq s (car u) e (cdr u)))))))
(setq cua--repeat-replace-text (setq cua--repeat-replace-text
(cond ((and s e (<= s e) (= s (mark t))) (cond ((and s e (<= s e) (= s (mark t)))
(buffer-substring-no-properties s e)) (filter-buffer-substring s e nil t))
((and (null s) (eq u elt)) ;; nothing inserted ((and (null s) (eq u elt)) ;; nothing inserted
"") "")
(t (t

View file

@ -143,7 +143,7 @@ With prefix argument, don't jump to global mark when cancelling it."
(let ((src-buf (current-buffer))) (let ((src-buf (current-buffer)))
(save-excursion (save-excursion
(if (equal (marker-buffer cua--global-mark-marker) src-buf) (if (equal (marker-buffer cua--global-mark-marker) src-buf)
(let ((text (buffer-substring-no-properties start end))) (let ((text (filter-buffer-substring start end nil t)))
(goto-char (marker-position cua--global-mark-marker)) (goto-char (marker-position cua--global-mark-marker))
(insert text)) (insert text))
(set-buffer (marker-buffer cua--global-mark-marker)) (set-buffer (marker-buffer cua--global-mark-marker))
@ -167,7 +167,7 @@ With prefix argument, don't jump to global mark when cancelling it."
(if (and (< start (marker-position cua--global-mark-marker)) (if (and (< start (marker-position cua--global-mark-marker))
(< (marker-position cua--global-mark-marker) end)) (< (marker-position cua--global-mark-marker) end))
(message "Can't move region into itself") (message "Can't move region into itself")
(let ((text (buffer-substring-no-properties start end)) (let ((text (filter-buffer-substring start end nil t))
(p1 (copy-marker start)) (p1 (copy-marker start))
(p2 (copy-marker end))) (p2 (copy-marker end)))
(goto-char (marker-position cua--global-mark-marker)) (goto-char (marker-position cua--global-mark-marker))

View file

@ -631,7 +631,7 @@ If command is repeated at same position, delete the rectangle."
(if (not (cua--rectangle-virtual-edges)) (if (not (cua--rectangle-virtual-edges))
(cua--rectangle-operation nil nil nil nil nil ; do not tabify (cua--rectangle-operation nil nil nil nil nil ; do not tabify
'(lambda (s e l r) '(lambda (s e l r)
(setq rect (cons (buffer-substring-no-properties s e) rect)))) (setq rect (cons (filter-buffer-substring s e nil t) rect))))
(cua--rectangle-operation nil 1 nil nil nil ; do not tabify (cua--rectangle-operation nil 1 nil nil nil ; do not tabify
'(lambda (s e l r v) '(lambda (s e l r v)
(let ((copy t) (bs 0) (as 0) row) (let ((copy t) (bs 0) (as 0) row)
@ -649,7 +649,7 @@ If command is repeated at same position, delete the rectangle."
(setq as (- r (max (current-column) l)) (setq as (- r (max (current-column) l))
e (point))) e (point)))
(setq row (if (and copy (> e s)) (setq row (if (and copy (> e s))
(buffer-substring-no-properties s e) (filter-buffer-substring s e nil t)
"")) ""))
(when (> bs 0) (when (> bs 0)
(setq row (concat (make-string bs ?\s) row))) (setq row (concat (make-string bs ?\s) row)))
@ -1127,12 +1127,12 @@ The length of STRING need not be the same as the rectangle width."
'(lambda (s e l r) '(lambda (s e l r)
(cond (cond
((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t) ((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t)
(let* ((txt (buffer-substring-no-properties (match-beginning 1) (match-end 1))) (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t))
(n (string-to-number txt 16)) (n (string-to-number txt 16))
(fmt (format "0x%%0%dx" (length txt)))) (fmt (format "0x%%0%dx" (length txt))))
(replace-match (format fmt (+ n increment))))) (replace-match (format fmt (+ n increment)))))
((re-search-forward "\\( *-?[0-9]+\\)" e t) ((re-search-forward "\\( *-?[0-9]+\\)" e t)
(let* ((txt (buffer-substring-no-properties (match-beginning 1) (match-end 1))) (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t))
(prefix (if (= (aref txt 0) ?0) "0" "")) (prefix (if (= (aref txt 0) ?0) "0" ""))
(n (string-to-number txt 10)) (n (string-to-number txt 10))
(fmt (format "%%%s%dd" prefix (length txt)))) (fmt (format "%%%s%dd" prefix (length txt))))
@ -1213,7 +1213,7 @@ The numbers are formatted according to the FORMAT string."
(when replace (when replace
(goto-char (point-min)) (goto-char (point-min))
(while (not (eobp)) (while (not (eobp))
(setq z (cons (buffer-substring (point) (line-end-position)) z)) (setq z (cons (filter-buffer-substring (point) (line-end-position)) z))
(forward-line 1)))) (forward-line 1))))
(if (not cua--debug) (if (not cua--debug)
(kill-buffer auxbuf)) (kill-buffer auxbuf))

View file

@ -1,3 +1,23 @@
2006-04-05 Diane Murray <disumu@x3y2z1.net>
* erc.el (erc-cmd-SV): Removed the exclamation point. Show the
build date as it's shown in `emacs-version'.
* erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix
with the same face property as the previous character.
2006-04-02 Michael Olson <mwolson@gnu.org>
* erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el,
erc.el: Make sure to include a newline inside of negated classes,
so that a newline is not matched.
2006-04-01 Michael Olson <mwolson@gnu.org>
* erc-backend.el (erc-server-connect-function): Don't try to
detect the existence of the `open-network-stream-nowait' function,
since I can't find it in Emacs21, XEmacs21, or Emacs22.
2006-03-26 Michael Olson <mwolson@gnu.org> 2006-03-26 Michael Olson <mwolson@gnu.org>
* erc.el (erc-header-line): New face that will be used to colorize * erc.el (erc-header-line): New face that will be used to colorize

View file

@ -312,13 +312,7 @@ alist."
:type '(repeat (cons (string :tag "Target") :type '(repeat (cons (string :tag "Target")
coding-system))) coding-system)))
(defcustom erc-server-connect-function (defcustom erc-server-connect-function 'open-network-stream
(if (and (fboundp 'open-network-stream-nowait)
;; CVS Emacs claims to define open-network-stream-nowait on
;; windows, however, it does, in fact, not work.
(not (memq system-type '(windows-nt cygwin ms-dos darwin))))
'open-network-stream-nowait
'open-network-stream)
"Function used to initiate a connection. "Function used to initiate a connection.
It should take same arguments as `open-network-stream' does." It should take same arguments as `open-network-stream' does."
:group 'erc-server :group 'erc-server
@ -762,10 +756,10 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
(substring string 1 posn))) (substring string 1 posn)))
(setf (erc-response.command msg) (setf (erc-response.command msg)
(let* ((bposn (string-match "[^ ]" string posn)) (let* ((bposn (string-match "[^ \n]" string posn))
(eposn (string-match " " string bposn))) (eposn (string-match " " string bposn)))
(setq posn (and eposn (setq posn (and eposn
(string-match "[^ ]" string eposn))) (string-match "[^ \n]" string eposn)))
(substring string bposn eposn))) (substring string bposn eposn)))
(while (and posn (while (and posn
@ -773,7 +767,7 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
(push (let* ((bposn posn) (push (let* ((bposn posn)
(eposn (string-match " " string bposn))) (eposn (string-match " " string bposn)))
(setq posn (and eposn (setq posn (and eposn
(string-match "[^ ]" string eposn))) (string-match "[^ \n]" string eposn)))
(substring string bposn eposn)) (substring string bposn eposn))
(erc-response.command-args msg))) (erc-response.command-args msg)))
(when posn (when posn

View file

@ -139,7 +139,7 @@ in the alist is `nil', prompt for the appropriate values."
(defun erc-ezb-add-session (message) (defun erc-ezb-add-session (message)
"Add an EZBounce session to the session list." "Add an EZBounce session to the session list."
(when (and erc-ezb-inside-session-listing (when (and erc-ezb-inside-session-listing
(string-match "^\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\)$" message)) (string-match "^\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\)$" message))
(let ((id (match-string 1 message)) (let ((id (match-string 1 message))
(nick (match-string 2 message)) (nick (match-string 2 message))
(to (match-string 3 message))) (to (match-string 3 message)))

View file

@ -92,7 +92,7 @@ servers, presumably in the same domain."
(or erc-server-announced-name erc-session-server)))) (or erc-server-announced-name erc-session-server))))
(when (erc-current-nick-p nick) (when (erc-current-nick-p nick)
(when (and erc-autojoin-domain-only (when (and erc-autojoin-domain-only
(string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server)) (string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
(setq server (match-string 1 server))) (setq server (match-string 1 server)))
(let ((elem (assoc server erc-autojoin-channels-alist))) (let ((elem (assoc server erc-autojoin-channels-alist)))
(if elem (if elem
@ -115,7 +115,7 @@ servers, presumably in the same domain."
(or erc-server-announced-name erc-session-server)))) (or erc-server-announced-name erc-session-server))))
(when (erc-current-nick-p nick) (when (erc-current-nick-p nick)
(when (and erc-autojoin-domain-only (when (and erc-autojoin-domain-only
(string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server)) (string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
(setq server (match-string 1 server))) (setq server (match-string 1 server)))
(let ((elem (assoc server erc-autojoin-channels-alist))) (let ((elem (assoc server erc-autojoin-channels-alist)))
(when elem (when elem

View file

@ -64,7 +64,8 @@ sever buffer."
:group 'erc-netsplit :group 'erc-netsplit
:type 'boolean) :type 'boolean)
(defcustom erc-netsplit-regexp "^[^ @!\"]+\\.[^ @!]+ [^ @!]+\\.[^ @!\"]+$" (defcustom erc-netsplit-regexp
"^[^ @!\"\n]+\\.[^ @!\n]+ [^ @!\n]+\\.[^ @!\"\n]+$"
"This regular expression should match quit reasons produced "This regular expression should match quit reasons produced
by netsplits." by netsplits."
:group 'erc-netsplit :group 'erc-netsplit
@ -131,7 +132,7 @@ join from that split has been detected or not.")
(defun erc-netsplit-MODE (proc parsed) (defun erc-netsplit-MODE (proc parsed)
"Hide mode changes from servers." "Hide mode changes from servers."
;; regexp matches things with a . in them, and no ! or @ in them. ;; regexp matches things with a . in them, and no ! or @ in them.
(when (string-match "^[^@!]+\\.[^@!]+$" (erc-response.sender parsed)) (when (string-match "^[^@!\n]+\\.[^@!\n]+$" (erc-response.sender parsed))
(and erc-netsplit-debug (and erc-netsplit-debug
(erc-display-message (erc-display-message
parsed 'notice (process-buffer proc) parsed 'notice (process-buffer proc)

View file

@ -3132,7 +3132,7 @@ the message given by REASON."
(defun erc-cmd-SV () (defun erc-cmd-SV ()
"Say the current ERC and Emacs version into channel." "Say the current ERC and Emacs version into channel."
(erc-send-message (format "I'm using ERC %s with %s %s (%s%s%s)!" (erc-send-message (format "I'm using ERC %s with %s %s (%s%s) of %s."
erc-version-string erc-version-string
(if (featurep 'xemacs) "XEmacs" "GNU Emacs") (if (featurep 'xemacs) "XEmacs" "GNU Emacs")
emacs-version emacs-version
@ -3155,7 +3155,7 @@ the message given by REASON."
x-toolkit-scroll-bars))) x-toolkit-scroll-bars)))
"") "")
(if (featurep 'multi-tty) ", multi-tty" "")) (if (featurep 'multi-tty) ", multi-tty" ""))
(concat ", built " erc-emacs-build-time))) erc-emacs-build-time))
t) t)
(defun erc-cmd-SM () (defun erc-cmd-SM ()
@ -3490,7 +3490,7 @@ If FACE is non-nil, it will be used to propertize the prompt. If it is nil,
If `point' is at the beginning of a channel name, use that as default." If `point' is at the beginning of a channel name, use that as default."
(interactive (interactive
(list (list
(let ((chnl (if (looking-at "\\([&#+!][^ ]+\\)") (match-string 1) "")) (let ((chnl (if (looking-at "\\([&#+!][^ \n]+\\)") (match-string 1) ""))
(table (when (erc-server-buffer-live-p) (table (when (erc-server-buffer-live-p)
(set-buffer (process-buffer erc-server-process)) (set-buffer (process-buffer erc-server-process))
erc-channel-list))) erc-channel-list)))
@ -4734,12 +4734,12 @@ EmacsSpeak support."
Return a list of the three separate tokens." Return a list of the three separate tokens."
(cond (cond
((string-match "^\\([^!]*\\)!\\([^@]*\\)@\\(.*\\)$" string) ((string-match "^\\([^!\n]*\\)!\\([^@\n]*\\)@\\(.*\\)$" string)
(list (match-string 1 string) (list (match-string 1 string)
(match-string 2 string) (match-string 2 string)
(match-string 3 string))) (match-string 3 string)))
;; Some bogus bouncers send Nick!(null), try to live with that. ;; Some bogus bouncers send Nick!(null), try to live with that.
((string-match "^\\([^!]*\\)!\\(.*\\)$" string) ((string-match "^\\([^!\n]*\\)!\\(.*\\)$" string)
(list (match-string 1 string) (list (match-string 1 string)
"" ""
(match-string 2 string))) (match-string 2 string)))
@ -5053,7 +5053,7 @@ user matches any regexp in `erc-ignore-reply-list'."
"Return the addressed target in MSG. "Return the addressed target in MSG.
The addressed target is the string before the first colon in MSG." The addressed target is the string before the first colon in MSG."
(if (string-match "^\\([^: ]*\\):" msg) (if (string-match "^\\([^: \n]*\\):" msg)
(match-string 1 msg) (match-string 1 msg)
nil)) nil))

View file

@ -444,14 +444,19 @@ use `before-save-hook'.")
(defcustom enable-local-variables t (defcustom enable-local-variables t
"*Control use of local variables in files you visit. "*Control use of local variables in files you visit.
The value can be t, nil or something else. The value can be t, nil, :safe, or something else.
A value of t means file local variables specifications are obeyed A value of t means file local variables specifications are obeyed
if all the specified variable values are safe; if any values are if all the specified variable values are safe; if any values are
not safe, Emacs queries you, once, whether to set them all. not safe, Emacs queries you, once, whether to set them all.
\(When you say yes to certain values, they are remembered as safe.)
:safe means set the safe variables, and ignore the rest.
nil means always ignore the file local variables.
A value of nil means always ignore the file local variables.
Any other value means always query you once whether to set them all. Any other value means always query you once whether to set them all.
\(When you say yes to certain values, they are remembered as safe, but
this has no effect when `enable-local-variables' is \"something else\".)
This variable also controls use of major modes specified in This variable also controls use of major modes specified in
a -*- line. a -*- line.
@ -460,6 +465,7 @@ The command \\[normal-mode], when used interactively,
always obeys file local variable specifications and the -*- line, always obeys file local variable specifications and the -*- line,
and ignores this variable." and ignores this variable."
:type '(choice (const :tag "Obey" t) :type '(choice (const :tag "Obey" t)
(const :tag "Safe Only" :safe)
(const :tag "Ignore" nil) (const :tag "Ignore" nil)
(other :tag "Query" other)) (other :tag "Query" other))
:group 'find-file) :group 'find-file)
@ -1779,8 +1785,7 @@ Uses the visited file name, the -*- line, and the local variables spec.
This function is called automatically from `find-file'. In that case, This function is called automatically from `find-file'. In that case,
we may set up the file-specified mode and local variables, we may set up the file-specified mode and local variables,
depending on the value of `enable-local-variables': if it is t, we do; depending on the value of `enable-local-variables'.
if it is nil, we don't; otherwise, we query.
In addition, if `local-enable-local-variables' is nil, we do In addition, if `local-enable-local-variables' is nil, we do
not set local variables (though we do notice a mode specified with -*-.) not set local variables (though we do notice a mode specified with -*-.)
@ -2413,8 +2418,7 @@ n -- to ignore the local variables list.")
"" ""
", or C-v to scroll"))) ", or C-v to scroll")))
(goto-char (point-min)) (goto-char (point-min))
(let ((inhibit-quit t) (let ((cursor-in-echo-area t)
(cursor-in-echo-area t)
(exit-chars (exit-chars
(if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g))) (if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
done) done)
@ -2426,9 +2430,7 @@ n -- to ignore the local variables list.")
(condition-case nil (condition-case nil
(scroll-up) (scroll-up)
(error (goto-char (point-min)))) (error (goto-char (point-min))))
(setq done (memq (downcase char) exit-chars))))) (setq done (memq (downcase char) exit-chars))))))
(if (= char ?\C-g)
(setq quit-flag nil)))
(setq char (downcase char)) (setq char (downcase char))
(when (and offer-save (= char ?!) unsafe-vars) (when (and offer-save (= char ?!) unsafe-vars)
(dolist (elt unsafe-vars) (dolist (elt unsafe-vars)
@ -2616,13 +2618,22 @@ is specified, returning t if it is specified."
(and (risky-local-variable-p var val) (and (risky-local-variable-p var val)
(push elt risky-vars)) (push elt risky-vars))
(push elt unsafe-vars)))) (push elt unsafe-vars))))
(if (or (and (eq enable-local-variables t) (if (eq enable-local-variables :safe)
(null unsafe-vars) ;; If caller wants only the safe variables,
(null risky-vars)) ;; install only them.
(hack-local-variables-confirm
result unsafe-vars risky-vars))
(dolist (elt result) (dolist (elt result)
(hack-one-local-variable (car elt) (cdr elt))))) (unless (or (memq (car elt) unsafe-vars)
(memq (car elt) risky-vars))
(hack-one-local-variable (car elt) (cdr elt))))
;; Query, except in the case where all are known safe
;; if the user wants no quuery in that case.
(if (or (and (eq enable-local-variables t)
(null unsafe-vars)
(null risky-vars))
(hack-local-variables-confirm
result unsafe-vars risky-vars))
(dolist (elt result)
(hack-one-local-variable (car elt) (cdr elt))))))
(run-hooks 'hack-local-variables-hook)))))) (run-hooks 'hack-local-variables-hook))))))
(defun safe-local-variable-p (sym val) (defun safe-local-variable-p (sym val)
@ -2678,12 +2689,14 @@ It is dangerous if either of these conditions are met:
(and (eq (car exp) 'put) (and (eq (car exp) 'put)
(hack-one-local-variable-quotep (nth 1 exp)) (hack-one-local-variable-quotep (nth 1 exp))
(hack-one-local-variable-quotep (nth 2 exp)) (hack-one-local-variable-quotep (nth 2 exp))
(memq (nth 1 (nth 2 exp)) (let ((prop (nth 1 (nth 2 exp))) (val (nth 3 exp)))
'(lisp-indent-hook)) (cond ((eq prop 'lisp-indent-hook)
;; Only allow safe values of lisp-indent-hook; ;; Only allow safe values of lisp-indent-hook;
;; not functions. ;; not functions.
(or (numberp (nth 3 exp)) (or (numberp val) (equal val ''defun)))
(equal (nth 3 exp) ''defun))) ((eq prop 'edebug-form-spec)
;; Only allow indirect form specs.
(edebug-basic-spec val)))))
;; Allow expressions that the user requested. ;; Allow expressions that the user requested.
(member exp safe-local-eval-forms) (member exp safe-local-eval-forms)
;; Certain functions can be allowed with safe arguments ;; Certain functions can be allowed with safe arguments

View file

@ -104,6 +104,8 @@
(define-key map [mouse-2] 'finder-mouse-select) (define-key map [mouse-2] 'finder-mouse-select)
(define-key map "\C-m" 'finder-select) (define-key map "\C-m" 'finder-select)
(define-key map "?" 'finder-summary) (define-key map "?" 'finder-summary)
(define-key map "n" 'next-line)
(define-key map "p" 'previous-line)
(define-key map "q" 'finder-exit) (define-key map "q" 'finder-exit)
(define-key map "d" 'finder-list-keywords) (define-key map "d" 'finder-list-keywords)
map)) map))

View file

@ -1,3 +1,59 @@
2006-04-12 Ralf Angeli <angeli@iwi.uni-sb.de>
* flow-fill.el (fill-flowed): Remove trailing space from blank
quoted lines.
2006-04-12 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-art.el (gnus-article-mode): Set
cursor-in-non-selected-windows to nil.
2006-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-mime-view-part-as-charset): Ignore charset
that the part specifies.
* mm-decode.el (mm-display-part): Work with external parts and
usual parts similarly.
* mm-extern.el (mm-inline-external-body): Use mm-display-part
instead of gnus-display-mime.
* gnus-uu.el (gnus-uu-save-article): Put mml tags instead of part
tag to summarized topics part in order to encode non-ASCII text.
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'.
2006-04-11 Arne J,Ax(Brgensen <arne@arnested.dk>
* gnus-sieve.el (gnus-sieve-generate): Delete from the start of
the sieve region.
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.el: Gnus v5.10.8 is released.
2006-04-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new
layout.
* rfc2047.el (rfc2047-decode-encoded-words): Don't message about
unknown charset.
* message.el (message-header-synonyms): Add Original-To to the
default.
* gnus-sum.el (gnus-get-newsgroup-headers-xover): group is an
optional parameter.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* pgg-gpg.el: Revert to revision 7.15 to allow the use of
gpg-agent.
2006-04-06 Reiner Steib <Reiner.Steib@gmx.de> 2006-04-06 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-fun.el (gnus): Require it for gnus-directory. * gnus-fun.el (gnus): Require it for gnus-directory.

View file

@ -114,7 +114,7 @@ RFC 2646 suggests 66 characters for readability."
(set-buffer (or (current-buffer) buffer)) (set-buffer (or (current-buffer) buffer))
(goto-char (point-min)) (goto-char (point-min))
;; Remove space stuffing. ;; Remove space stuffing.
(while (re-search-forward "^ " nil t) (while (re-search-forward "^\\( \\|>+ $\\)" nil t)
(delete-char -1) (delete-char -1)
(forward-line 1)) (forward-line 1))
(goto-char (point-min)) (goto-char (point-min))

View file

@ -3809,6 +3809,7 @@ commands:
(make-local-variable 'gnus-article-ignored-charsets) (make-local-variable 'gnus-article-ignored-charsets)
;; Prevent recent Emacsen from displaying non-break space as "\ ". ;; Prevent recent Emacsen from displaying non-break space as "\ ".
(set (make-local-variable 'nobreak-char-display) nil) (set (make-local-variable 'nobreak-char-display) nil)
(setq cursor-in-non-selected-windows nil)
(gnus-set-default-directory) (gnus-set-default-directory)
(buffer-disable-undo) (buffer-disable-undo)
(setq buffer-read-only t) (setq buffer-read-only t)
@ -4477,19 +4478,29 @@ are decompressed."
specified charset." specified charset."
(interactive (list nil current-prefix-arg)) (interactive (list nil current-prefix-arg))
(gnus-article-check-buffer) (gnus-article-check-buffer)
(let* ((handle (or handle (get-text-property (point) 'gnus-data))) (let ((handle (or handle (get-text-property (point) 'gnus-data)))
contents charset (fun (get-text-property (point) 'gnus-callback))
(b (point)) (gnus-newsgroup-ignored-charsets 'gnus-all)
(inhibit-read-only t)) gnus-newsgroup-charset type charset)
(when handle (when handle
(if (mm-handle-undisplayer handle) (if (mm-handle-undisplayer handle)
(mm-remove-part handle)) (mm-remove-part handle))
(let ((gnus-newsgroup-charset (when fun
(or (cdr (assq arg (setq gnus-newsgroup-charset
gnus-summary-show-article-charset-alist)) (or (cdr (assq arg gnus-summary-show-article-charset-alist))
(mm-read-coding-system "Charset: "))) (mm-read-coding-system "Charset: ")))
(gnus-newsgroup-ignored-charsets 'gnus-all)) ;; Strip the charset parameter from `handle'.
(gnus-article-press-button))))) (setq type (mm-handle-type
(if (equal (mm-handle-media-type handle)
"message/external-body")
(progn
(unless (mm-handle-cache handle)
(mm-extern-cache-contents handle))
(mm-handle-cache handle))
handle))
charset (assq 'charset (cdr type)))
(delq charset type)
(funcall fun handle)))))
(defun gnus-mime-view-part-externally (&optional handle) (defun gnus-mime-view-part-externally (&optional handle)
"View the MIME part under point with an external viewer." "View the MIME part under point with an external viewer."
@ -5972,7 +5983,7 @@ groups."
;; Regexp suggested by Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de> ;; Regexp suggested by Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de>
(defcustom gnus-button-valid-localpart-regexp (defcustom gnus-button-valid-localpart-regexp
"[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t ]*" "[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t @]*"
"Regular expression that matches a localpart of mail addresses or MIDs." "Regular expression that matches a localpart of mail addresses or MIDs."
:version "22.1" :version "22.1"
:group 'gnus-article-buttons :group 'gnus-article-buttons

View file

@ -107,7 +107,7 @@ See the documentation for these variables and functions for details."
(find-file gnus-sieve-file) (find-file gnus-sieve-file)
(goto-char (point-min)) (goto-char (point-min))
(if (re-search-forward (regexp-quote gnus-sieve-region-start) nil t) (if (re-search-forward (regexp-quote gnus-sieve-region-start) nil t)
(delete-region (match-end 0) (delete-region (match-beginning 0)
(or (re-search-forward (regexp-quote (or (re-search-forward (regexp-quote
gnus-sieve-region-end) nil t) gnus-sieve-region-end) nil t)
(point))) (point)))

View file

@ -5962,7 +5962,8 @@ Return a list of headers that match SEQUENCE (see
(allp (cond (allp (cond
((eq gnus-read-all-available-headers t) ((eq gnus-read-all-available-headers t)
t) t)
((stringp gnus-read-all-available-headers) ((and (stringp gnus-read-all-available-headers)
group)
(string-match gnus-read-all-available-headers group)) (string-match gnus-read-all-available-headers group))
(t (t
nil))) nil)))

View file

@ -839,7 +839,9 @@ When called interactively, prompt for REGEXP."
"Date: %s\nFrom: %s\nSubject: %s Digest\n\n" "Date: %s\nFrom: %s\nSubject: %s Digest\n\n"
(message-make-date) name name)) (message-make-date) name name))
(when (and message-forward-as-mime gnus-uu-digest-buffer) (when (and message-forward-as-mime gnus-uu-digest-buffer)
(insert "<#part type=message/rfc822>\nSubject: Topics\n\n")) (insert
"<#mml type=message/rfc822>\nSubject: Topics\n\n<#/mml>\n")
(forward-line -1))
(insert "Topics:\n"))) (insert "Topics:\n")))
(when (not (eq in-state 'end)) (when (not (eq in-state 'end))
(setq state (list 'middle)))) (setq state (list 'middle))))

View file

@ -2749,7 +2749,8 @@ prefix FORCE is given."
(message-carefully-insert-headers headers))) (message-carefully-insert-headers headers)))
(defcustom message-header-synonyms (defcustom message-header-synonyms
'((To Cc Bcc)) '((To Cc Bcc)
(Original-To))
"List of lists of header synonyms. "List of lists of header synonyms.
E.g., if this list contains a member list with elements `Cc' and `To', E.g., if this list contains a member list with elements `Cc' and `To',
then `message-carefully-insert-headers' will not insert a `To' header then `message-carefully-insert-headers' will not insert a `To' header

View file

@ -672,7 +672,14 @@ external if displayed external."
(mailcap-parse-mailcaps) (mailcap-parse-mailcaps)
(if (mm-handle-displayed-p handle) (if (mm-handle-displayed-p handle)
(mm-remove-part handle) (mm-remove-part handle)
(let* ((type (mm-handle-media-type handle)) (let* ((ehandle (if (equal (mm-handle-media-type handle)
"message/external-body")
(progn
(unless (mm-handle-cache handle)
(mm-extern-cache-contents handle))
(mm-handle-cache handle))
handle))
(type (mm-handle-media-type ehandle))
(method (mailcap-mime-info type)) (method (mailcap-mime-info type))
(filename (or (mail-content-type-get (filename (or (mail-content-type-get
(mm-handle-disposition handle) 'filename) (mm-handle-disposition handle) 'filename)
@ -680,8 +687,8 @@ external if displayed external."
(mm-handle-type handle) 'name) (mm-handle-type handle) 'name)
"<file>")) "<file>"))
(external mm-enable-external)) (external mm-enable-external))
(if (and (mm-inlinable-p handle) (if (and (mm-inlinable-p ehandle)
(mm-inlined-p handle)) (mm-inlined-p ehandle))
(progn (progn
(forward-line 1) (forward-line 1)
(mm-display-inline handle) (mm-display-inline handle)
@ -689,7 +696,7 @@ external if displayed external."
(when (or method (when (or method
(not no-default)) (not no-default))
(if (and (not method) (if (and (not method)
(equal "text" (car (split-string type)))) (equal "text" (car (split-string type "/"))))
(progn (progn
(forward-line 1) (forward-line 1)
(mm-insert-inline handle (mm-get-part handle)) (mm-insert-inline handle (mm-get-part handle))

View file

@ -157,25 +157,11 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
(save-excursion (save-excursion
(save-restriction (save-restriction
(narrow-to-region (point) (point)) (narrow-to-region (point) (point))
(let* ((type (regexp-quote (mm-display-part (mm-handle-cache handle))))
(mm-handle-media-type (mm-handle-cache handle)))) ;; Move undisplayer added to the cached handle to the parent.
;; Force the part to be displayed (but if there is no (mm-handle-set-undisplayer
;; method to display, a user will be prompted to save). handle (mm-handle-undisplayer (mm-handle-cache handle)))
;; See `gnus-mime-display-single'. (mm-handle-set-undisplayer (mm-handle-cache handle) nil)))
(mm-inline-override-types nil)
(mm-attachment-override-types
(cons type mm-attachment-override-types))
(mm-automatic-display (cons type mm-automatic-display))
(mm-automatic-external-display
(cons type mm-automatic-external-display))
;; Suppress adding of button to the cached part.
(gnus-inhibit-mime-unbuttonizing nil))
(gnus-display-mime (mm-handle-cache handle)))
;; Move undisplayer added to the cached handle to the parent.
(mm-handle-set-undisplayer
handle
(mm-handle-undisplayer (mm-handle-cache handle)))
(mm-handle-set-undisplayer (mm-handle-cache handle) nil)))))
(provide 'mm-extern) (provide 'mm-extern)

View file

@ -142,7 +142,7 @@
(setq article (if (and article (< start article)) article start)) (setq article (if (and article (< start article)) article start))
(goto-char point) (goto-char point)
(while (re-search-forward (while (re-search-forward
"<a name=\"\\([0-9]+\\)\">\\([^<]+\\)</a>.*\n.*score:\\([^)]+\\))" "<a name=\"\\([0-9]+\\)\">\\([^<]+\\)</a>.*\n.*\n.*score:\\([^)]+\\))"
nil t) nil t)
(setq cid (match-string 1) (setq cid (match-string 1)
subject (match-string 2) subject (match-string 2)

View file

@ -851,11 +851,8 @@ ENCODED-WORD)."
(let (word charset cs encoding text rest) (let (word charset cs encoding text rest)
(while words (while words
(setq word (pop words)) (setq word (pop words))
(if (and (or (setq cs (rfc2047-charset-to-coding-system (if (and (setq cs (rfc2047-charset-to-coding-system
(setq charset (car word)))) (setq charset (car word))))
(progn
(message "Unknown charset: %s" charset)
nil))
(condition-case code (condition-case code
(cond ((char-equal ?B (nth 1 word)) (cond ((char-equal ?B (nth 1 word))
(setq text (base64-decode-string (setq text (base64-decode-string

View file

@ -38,7 +38,7 @@
;; grouping. ;; grouping.
;; ;;
;; -iso in `hexl-options' will allow iso characters to display in the ;; -iso in `hexl-options' will allow iso characters to display in the
;; ASCII region of the screen (if your emacs supports this) instead of ;; ASCII region of the screen (if your Emacs supports this) instead of
;; changing them to dots. ;; changing them to dots.
;;; Code: ;;; Code:
@ -62,7 +62,7 @@ and \"-de\" when dehexlifying a buffer."
:group 'hexl) :group 'hexl)
(defcustom hexl-iso "" (defcustom hexl-iso ""
"If your emacs can handle ISO characters, this should be set to "If your Emacs can handle ISO characters, this should be set to
\"-iso\" otherwise it should be \"\"." \"-iso\" otherwise it should be \"\"."
:type 'string :type 'string
:group 'hexl) :group 'hexl)
@ -229,7 +229,7 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
original-point)) original-point))
(or (bolp) (setq original-point (1- original-point)))) (or (bolp) (setq original-point (1- original-point))))
(hexlify-buffer) (hexlify-buffer)
(set-buffer-modified-p modified)) (restore-buffer-modified-p modified))
(make-local-variable 'hexl-max-address) (make-local-variable 'hexl-max-address)
(setq hexl-max-address max-address) (setq hexl-max-address max-address)
(condition-case nil (condition-case nil
@ -300,9 +300,16 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
(lambda (string &optional bound noerror count) (lambda (string &optional bound noerror count)
(funcall (funcall
(if isearch-forward 're-search-forward 're-search-backward) (if isearch-forward 're-search-forward 're-search-backward)
(if (> (length string) 80) (let ((textre
(regexp-quote string) (if (> (length string) 80)
(mapconcat 'string string "\\(?:\n\\(?:[:a-f0-9]+ \\)+ \\)?")) (regexp-quote string)
(mapconcat (lambda (c) (regexp-quote (string c))) string
"\\(?:\n\\(?:[:a-f0-9]+ \\)+ \\)?"))))
(if (string-match "\\` ?\\([a-f0-9]+ \\)*[a-f0-9]+ ?\\'" string)
(concat textre "\\|"
(mapconcat 'regexp-quote (split-string string " ")
" \\(?: .+\n[a-f0-9]+: \\)?"))
textre))
bound noerror count)) bound noerror count))
(let ((isearch-search-fun-function nil)) (let ((isearch-search-fun-function nil))
(isearch-search-fun)))) (isearch-search-fun))))
@ -318,34 +325,33 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
"Save a hexl format buffer as binary in visited file if modified." "Save a hexl format buffer as binary in visited file if modified."
(interactive) (interactive)
(if hexl-in-save-buffer nil (if hexl-in-save-buffer nil
(set-buffer-modified-p (if (buffer-modified-p) (restore-buffer-modified-p
(save-excursion (if (buffer-modified-p)
(let ((buf (generate-new-buffer " hexl")) (let ((buf (generate-new-buffer " hexl"))
(name (buffer-name)) (name (buffer-name))
(file-name (buffer-file-name)) (start (point-min))
(start (point-min)) (end (point-max))
(end (point-max)) modified)
modified) (with-current-buffer buf
(set-buffer buf) (insert-buffer-substring name start end)
(insert-buffer-substring name start end) (set-buffer name)
(set-buffer name) (dehexlify-buffer)
(dehexlify-buffer) ;; Prevent infinite recursion.
;; Prevent infinite recursion. (let ((hexl-in-save-buffer t))
(let ((hexl-in-save-buffer t)) (save-buffer))
(save-buffer)) (setq modified (buffer-modified-p))
(setq modified (buffer-modified-p)) (delete-region (point-min) (point-max))
(delete-region (point-min) (point-max)) (insert-buffer-substring buf start end)
(insert-buffer-substring buf start end) (kill-buffer buf)
(kill-buffer buf) modified))
modified)) (message "(No changes need to be saved)")
(message "(No changes need to be saved)") nil))
nil))
;; Return t to indicate we have saved t ;; Return t to indicate we have saved t
t)) t))
;;;###autoload ;;;###autoload
(defun hexl-find-file (filename) (defun hexl-find-file (filename)
"Edit file FILENAME in hexl-mode. "Edit file FILENAME in `hexl-mode'.
Switch to a buffer visiting file FILENAME, creating one in none exists." Switch to a buffer visiting file FILENAME, creating one in none exists."
(interactive (interactive
(list (list
@ -367,7 +373,7 @@ With arg, don't unhexlify buffer."
(original-point (1+ (hexl-current-address)))) (original-point (1+ (hexl-current-address))))
(dehexlify-buffer) (dehexlify-buffer)
(remove-hook 'write-contents-functions 'hexl-save-buffer t) (remove-hook 'write-contents-functions 'hexl-save-buffer t)
(set-buffer-modified-p modified) (restore-buffer-modified-p modified)
(goto-char original-point) (goto-char original-point)
;; Maybe adjust point for the removed CR characters. ;; Maybe adjust point for the removed CR characters.
(when (eq (coding-system-eol-type buffer-file-coding-system) 1) (when (eq (coding-system-eol-type buffer-file-coding-system) 1)
@ -403,7 +409,7 @@ Ask the user for confirmation."
(original-point (1+ (hexl-current-address)))) (original-point (1+ (hexl-current-address))))
(dehexlify-buffer) (dehexlify-buffer)
(remove-hook 'write-contents-functions 'hexl-save-buffer t) (remove-hook 'write-contents-functions 'hexl-save-buffer t)
(set-buffer-modified-p modified) (restore-buffer-modified-p modified)
(goto-char original-point)))) (goto-char original-point))))
(defun hexl-current-address (&optional validate) (defun hexl-current-address (&optional validate)
@ -917,14 +923,14 @@ Customize the variable `hexl-follow-ascii' to disable this feature."
))))) )))))
(defun hexl-activate-ruler () (defun hexl-activate-ruler ()
"Activate `ruler-mode'" "Activate `ruler-mode'."
(require 'ruler-mode) (require 'ruler-mode)
(set (make-local-variable 'ruler-mode-ruler-function) (set (make-local-variable 'ruler-mode-ruler-function)
'hexl-mode-ruler) 'hexl-mode-ruler)
(ruler-mode 1)) (ruler-mode 1))
(defun hexl-follow-line () (defun hexl-follow-line ()
"Activate `hl-line-mode'" "Activate `hl-line-mode'."
(require 'frame) (require 'frame)
(require 'hl-line) (require 'hl-line)
(with-no-warnings (with-no-warnings
@ -1071,5 +1077,5 @@ This function is assumed to be used as call back function for `hl-line-mode'."
(provide 'hexl) (provide 'hexl)
;;; arch-tag: d5a7aa8a-9bce-480b-bcff-6c4c7ca5ea4a ;; arch-tag: d5a7aa8a-9bce-480b-bcff-6c4c7ca5ea4a
;;; hexl.el ends here ;;; hexl.el ends here

View file

@ -2476,7 +2476,9 @@ See also `locale-charset-language-names', `locale-language-names',
;; If a specific EOL conversion was specified in the default ;; If a specific EOL conversion was specified in the default
;; buffer-file-coding-system, preserve it in the coding system ;; buffer-file-coding-system, preserve it in the coding system
;; we will be using from now on. ;; we will be using from now on.
(if (memq default-eol-type '(0 1 2 unix dos mac)) (if (and (memq default-eol-type '(0 1 2 unix dos mac))
coding-system
(coding-system-p coding-system))
(setq coding-system (coding-system-change-eol-conversion (setq coding-system (coding-system-change-eol-conversion
coding-system default-eol-type))) coding-system default-eol-type)))

View file

@ -32,6 +32,8 @@
;;; Code: ;;; Code:
(eval-when-compile (require 'cl))
(defun feature-symbols (feature) (defun feature-symbols (feature)
"Return the file and list of definitions associated with FEATURE. "Return the file and list of definitions associated with FEATURE.
The value is actually the element of `load-history' The value is actually the element of `load-history'
@ -207,23 +209,29 @@ such as redefining an Emacs function."
(elp-restore-function elt)))) (elp-restore-function elt))))
(dolist (x unload-hook-features-list) (dolist (x unload-hook-features-list)
(if (consp x) (if (consp x)
(cond (case (car x)
;; Remove any feature names that this file provided. ;; Remove any feature names that this file provided.
((eq (car x) 'provide) (provide
(setq features (delq (cdr x) features))) (setq features (delq (cdr x) features)))
((eq (car x) 'defun) (defun
(let ((fun (cdr x))) (let ((fun (cdr x)))
(when (fboundp fun) (when (fboundp fun)
(when (fboundp 'ad-unadvise) (when (fboundp 'ad-unadvise)
(ad-unadvise fun)) (ad-unadvise fun))
(fmakunbound fun)
(let ((aload (get fun 'autoload))) (let ((aload (get fun 'autoload)))
(when aload (if aload
(fset fun (cons 'autoload aload)))))))) (fset fun (cons 'autoload aload))
(fmakunbound fun))))))
(require nil)
(t (message "Unexpected element %s in load-history" x)))
;; Kill local values as much as possible. ;; Kill local values as much as possible.
(dolist (buf (buffer-list)) (dolist (buf (buffer-list))
(with-current-buffer buf (with-current-buffer buf
(if (and (boundp x) (timerp (symbol-value x)))
(cancel-timer (symbol-value x)))
(kill-local-variable x))) (kill-local-variable x)))
(if (and (boundp x) (timerp (symbol-value x)))
(cancel-timer (symbol-value x)))
;; Get rid of the default binding if we can. ;; Get rid of the default binding if we can.
(unless (local-variable-if-set-p x) (unless (local-variable-if-set-p x)
(makunbound x)))) (makunbound x))))
@ -232,5 +240,5 @@ such as redefining an Emacs function."
(provide 'loadhist) (provide 'loadhist)
;;; arch-tag: 70bb846a-c413-4f01-bf88-78dba4ac0798 ;; arch-tag: 70bb846a-c413-4f01-bf88-78dba4ac0798
;;; loadhist.el ends here ;;; loadhist.el ends here

View file

@ -623,7 +623,9 @@ the variable `rmail-mime-feature'.")
;;;###autoload ;;;###autoload
(defvar rmail-mime-charset-pattern (defvar rmail-mime-charset-pattern
"^content-type:[ ]*text/plain;[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?" (concat "^content-type:[ ]*text/plain;"
"\\(?:[ \t\n]*\\(format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*"
"[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?")
"Regexp to match MIME-charset specification in a header of message. "Regexp to match MIME-charset specification in a header of message.
The first parenthesized expression should match the MIME-charset name.") The first parenthesized expression should match the MIME-charset name.")

View file

@ -1,3 +1,129 @@
2006-04-15 Bill Wohler <wohler@newt.com>
* mh-compat.el (mh-font-lock-add-keywords): Fix typo in docstring.
2006-04-14 Bill Wohler <wohler@newt.com>
* mh-funcs.el (view-exit-action): No need to wrap defvar with
eval-when-compile when shushing compiler.
* mh-mime.el (mh-identity-pgg-default-user-id): Ditto.
* mh-seq.el (view-exit-action): Ditto.
* mh-show.el (font-lock-auto-fontify): Ditto.
* mh-utils.el (mh-speed-flists-cache): Ditto
* mh-acros.el (struct, x, y): No need to wrap defvar with
eval-when-compile when shushing compiler, even when
mh-do-in-xemacs or another construct is used.
* mh-comp.el (sendmail-coding-system): Ditto.
* mh-e.el (mark-active): Ditto.
* mh-folder.el (desktop-save-buffer, font-lock-auto-fontify)
(image-load-path, font-lock-defaults): Ditto.
* mh-letter.el (image-load-path, font-lock-defaults): Ditto.
* mh-mime.el (dots, type, ov)
(mm-verify-function-alist, mm-decrypt-function-alist)
(pressed-details): Ditto.
* mh-search.el (pick-folder, mh-do-in-xemacs)
(mh-mairix-folder, mh-flists-search-folders)
(which-func-mode, mh-speed-flists-inhibit-flag): Ditto.
* mh-seq.el (tool-bar-mode): Ditto.
* mh-utils.el (completion-root-regexp)
(minibuffer-completing-file-name): Ditto.
* mh-xface.el (default-enable-multibyte-characters): Ditto.
* mh-compat.el (mh-font-lock-add-keywords): New alias for
font-lock-add-keywords. Returns nil on XEmacs.
* mh-e.el: Add MH-E function and variable keywords such as
mh-defun-compat and mh-defcustom to font-lock-keywords.
2006-04-13 Bill Wohler <wohler@newt.com>
* mh-e.el (customize-package-emacs-version-alist)
(mh-e, mh-alias, mh-folder, mh-folder-selection)
(mh-identity, mh-inc, mh-junk, mh-letter, mh-ranges)
(mh-scan-line-formats, mh-search, mh-sending-mail, )
(mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar)
(mh-hooks, mh-faces, mh-alias-completion-ignore-case-flag)
(mh-alias-expand-aliases-flag, mh-alias-flash-on-comma)
(mh-alias-insert-file, mh-alias-insertion-location)
(mh-alias-local-users, mh-alias-local-users-prefix)
(mh-alias-passwd-gecos-comma-separator-flag)
(mh-new-messages-folders, mh-ticked-messages-folders)
(mh-large-folder, mh-recenter-summary-flag)
(mh-recursive-folders-flag, mh-sortm-args)
(mh-default-folder-for-message-function, )
(mh-default-folder-list, mh-default-folder-must-exist-flag)
(mh-default-folder-prefix, mh-identity-list)
(mh-auto-fields-list, mh-auto-fields-prompt-flag)
(mh-identity-default, mh-identity-handlers, mh-inc-prog)
(mh-inc-spool-list, mh-junk-background, mh-junk-disposition)
(mh-junk-program, mh-compose-insertion)
(mh-compose-skipped-header-fields)
(mh-compose-space-does-completion-flag)
(mh-delete-yanked-msg-window-flag)
(mh-extract-from-attribution-verb, mh-ins-buf-prefix)
(mh-letter-complete-function, mh-letter-fill-column)
(mh-mml-method-default, mh-signature-file-name)
(mh-signature-separator-flag, mh-x-face-file, )
(mh-yank-behavior, mh-interpret-number-as-range-flag)
(mh-adaptive-cmd-note-flag, mh-scan-format-file, mh-scan-prog)
(mh-search-program, mh-compose-forward-as-mime-flag)
(mh-compose-letter-function, mh-compose-prompt-flag)
(mh-forward-subject-format, mh-insert-x-mailer-flag)
(mh-redist-full-contents-flag, mh-reply-default-reply-to)
(mh-reply-show-message-flag, )
(mh-refile-preserves-sequences-flag, mh-tick-seq)
(mh-update-sequences-after-mh-show-flag)
(mh-bury-show-buffer-flag, mh-clean-message-header-flag)
(mh-decode-mime-flag, )
(mh-display-buttons-for-alternatives-flag)
(mh-display-buttons-for-inline-parts-flag)
(mh-do-not-confirm-flag, mh-fetch-x-image-url)
(mh-graphical-smileys-flag, mh-graphical-emphasis-flag)
(mh-highlight-citation-style, mh-invisible-header-fields)
(mh-invisible-header-fields-default, mh-lpr-command-format)
(mh-max-inline-image-height, mh-max-inline-image-width)
(mh-mhl-format-file, mh-mime-save-parts-default-directory)
(mh-print-background-flag, mh-show-maximum-size)
(mh-show-use-xface-flag, mh-store-default-directory)
(mh-summary-height, mh-speed-update-interval)
(mh-show-threads-flag, mh-tool-bar-search-function)
(mh-defcustom, mh-after-commands-processed-hook)
(mh-alias-reloaded-hook, mh-before-commands-processed-hook)
(mh-before-quit-hook, mh-before-send-letter-hook)
(mh-delete-msg-hook, mh-find-path-hook, mh-folder-mode-hook)
(mh-forward-hook, mh-inc-folder-hook, )
(mh-insert-signature-hook, )
(mh-kill-folder-suppress-prompt-hooks, mh-letter-mode-hook)
(mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook)
(mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook)
(mh-unseen-updated-hook, mh-folder-address, mh-folder-body)
(mh-folder-cur-msg-number, mh-folder-date, mh-folder-deleted)
(mh-folder-followup, mh-folder-msg-number, mh-folder-refiled)
(mh-folder-sent-to-me-hint, mh-folder-sent-to-me-sender)
(mh-folder-subject, mh-folder-tick, mh-folder-to)
(mh-letter-header-field, mh-search-folder, mh-show-cc)
(mh-show-date, mh-show-from, mh-show-header, mh-show-pgg-bad)
(mh-show-pgg-good, mh-show-pgg-unknown, mh-show-signature)
(mh-show-subject, mh-show-to, mh-show-xface, )
(mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages)
(mh-speedbar-selected-folder)
(mh-speedbar-selected-folder-with-unseen-messages): Use dotted
notation in :package-version keyword.
2006-04-07 Bill Wohler <wohler@newt.com> 2006-04-07 Bill Wohler <wohler@newt.com>
* mh-e.el (mh-path, mh-variant): Define with mh-defcustom and add * mh-e.el (mh-path, mh-variant): Define with mh-defcustom and add

View file

@ -130,7 +130,9 @@ check if variable `transient-mark-mode' is active."
(boundp 'mark-active) mark-active)))) (boundp 'mark-active) mark-active))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar struct) (defvar x) (defvar y))) (defvar struct) ; XEmacs
(defvar x) ; XEmacs
(defvar y) ; XEmacs
;;;###mh-autoload ;;;###mh-autoload
(defmacro mh-defstruct (name-spec &rest fields) (defmacro mh-defstruct (name-spec &rest fields)

View file

@ -215,7 +215,7 @@ ignored."
(setq other-headers (cdr other-headers))))) (setq other-headers (cdr other-headers)))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar sendmail-coding-system))) (defvar sendmail-coding-system) ; XEmacs
;;;###autoload ;;;###autoload
(defun mh-send-letter (&optional arg) (defun mh-send-letter (&optional arg)

View file

@ -40,7 +40,7 @@
;; versions of Gnus. ;; versions of Gnus.
;; Items are listed alphabetically (except for mh-require which is ;; Items are listed alphabetically (except for mh-require which is
;; needed by a lesser character). ;; needed sooner it would normally appear).
(require 'mh-acros) (require 'mh-acros)
@ -115,6 +115,11 @@ introduced in Emacs 22."
`(face-background ,face ,frame) `(face-background ,face ,frame)
`(face-background ,face ,frame ,inherit))) `(face-background ,face ,frame ,inherit)))
(mh-defun-compat mh-font-lock-add-keywords font-lock-add-keywords
(mode keywords &optional how)
"XEmacs does not have `font-lock-add-keywords'.
This function returns nil on that system.")
(mh-defun-compat mh-image-load-path-for-library (mh-defun-compat mh-image-load-path-for-library
image-load-path-for-library (library image &optional path no-error) image-load-path-for-library (library image &optional path no-error)
"Return a suitable search path for images used by LIBRARY. "Return a suitable search path for images used by LIBRARY.

File diff suppressed because it is too large Load diff

View file

@ -522,11 +522,10 @@ font-lock is done highlighting.")
(add-to-list 'which-func-modes 'mh-folder-mode)) (add-to-list 'which-func-modes 'mh-folder-mode))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar desktop-save-buffer)
(defvar desktop-save-buffer) (defvar font-lock-auto-fontify)
(defvar font-lock-auto-fontify) (defvar image-load-path)
(defvar image-load-path) (defvar font-lock-defaults) ; XEmacs
(mh-do-in-xemacs (defvar font-lock-defaults)))
(defvar mh-folder-buttons-init-flag nil) (defvar mh-folder-buttons-init-flag nil)

View file

@ -138,7 +138,7 @@ Display the results only if something went wrong."
(display-buffer mh-temp-buffer))) (display-buffer mh-temp-buffer)))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar view-exit-action)) (defvar view-exit-action)
;;;###mh-autoload ;;;###mh-autoload
(defun mh-list-folders () (defun mh-list-folders ()

View file

@ -278,9 +278,8 @@ searching for `mh-mail-header-separator' in the buffer."
(defvar mh-letter-buttons-init-flag nil) (defvar mh-letter-buttons-init-flag nil)
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar image-load-path)
(defvar image-load-path) (defvar font-lock-defaults) ; XEmacs
(mh-do-in-xemacs (defvar font-lock-defaults)))
;; Ensure new buffers won't get this mode if default-major-mode is nil. ;; Ensure new buffers won't get this mode if default-major-mode is nil.
(put 'mh-letter-mode 'mode-class 'special) (put 'mh-letter-mode 'mode-class 'special)

View file

@ -825,7 +825,9 @@ being used to highlight the signature in a MIME part."
;;; Button Display ;;; Button Display
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar dots) (defvar type) (defvar ov))) (defvar dots) ; XEmacs
(defvar type) ; XEmacs
(defvar ov) ; XEmacs
(defun mh-insert-mime-button (handle index displayed) (defun mh-insert-mime-button (handle index displayed)
"Insert MIME button for HANDLE. "Insert MIME button for HANDLE.
@ -870,12 +872,9 @@ by commands like \"K v\" which operate on individual MIME parts."
(mh-funcall-if-exists overlay-put ov 'evaporate t)))) (mh-funcall-if-exists overlay-put ov 'evaporate t))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar mm-verify-function-alist) ; < Emacs 22
(when (< emacs-major-version 22) (defvar mm-decrypt-function-alist) ; < Emacs 22
(defvar mm-verify-function-alist) (defvar pressed-details) ; XEmacs
(defvar mm-decrypt-function-alist))
(mh-do-in-xemacs
(defvar pressed-details)))
(defun mh-insert-mime-security-button (handle) (defun mh-insert-mime-security-button (handle)
"Display buttons for PGP message, HANDLE." "Display buttons for PGP message, HANDLE."
@ -1537,7 +1536,7 @@ a prefix argument NOCONFIRM."
(after-find-file nil))) (after-find-file nil)))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar mh-identity-pgg-default-user-id)) (defvar mh-identity-pgg-default-user-id)
;;;###mh-autoload ;;;###mh-autoload
(defun mh-mml-secure-message-encrypt (method) (defun mh-mml-secure-message-encrypt (method)

View file

@ -324,7 +324,7 @@ folder containing the index search results."
count (> (hash-table-count msg-hash) 0))))))) count (> (hash-table-count msg-hash) 0)))))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar pick-folder))) (defvar pick-folder) ; XEmacs
(defun mh-search-folder (folder window-config) (defun mh-search-folder (folder window-config)
"Search FOLDER for messages matching a pattern. "Search FOLDER for messages matching a pattern.
@ -404,10 +404,8 @@ or nothing to search all folders."
(mh-index-sequenced-messages folders mh-tick-seq)) (mh-index-sequenced-messages folders mh-tick-seq))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar mh-mairix-folder) ; XEmacs
(mh-do-in-xemacs (defvar mh-flists-search-folders) ; XEmacs
(defvar mh-mairix-folder)
(defvar mh-flists-search-folders)))
;;;###mh-autoload ;;;###mh-autoload
(defun mh-index-sequenced-messages (folders sequence) (defun mh-index-sequenced-messages (folders sequence)
@ -1414,9 +1412,7 @@ being the list of messages originally from that folder."
(mh-require 'which-func nil t) (mh-require 'which-func nil t)
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar which-func-mode) ; < Emacs 22, XEmacs
(if (or mh-xemacs-flag (< emacs-major-version 22))
(defvar which-func-mode)))
;;;###mh-autoload ;;;###mh-autoload
(defun mh-index-create-imenu-index () (defun mh-index-create-imenu-index ()
@ -1441,7 +1437,7 @@ being the list of messages originally from that folder."
mh-index-data) mh-index-data)
;; Shush compiler ;; Shush compiler
(eval-when-compile (if mh-xemacs-flag (defvar mh-speed-flists-inhibit-flag))) (defvar mh-speed-flists-inhibit-flag) ; XEmacs
;;;###mh-autoload ;;;###mh-autoload
(defun mh-index-execute-commands () (defun mh-index-execute-commands ()

View file

@ -134,7 +134,7 @@ you want to delete the messages, use \"\\[universal-argument]
(apply #'mh-speed-flists t folders-changed)))) (apply #'mh-speed-flists t folders-changed))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar view-exit-action)) (defvar view-exit-action)
;;;###mh-autoload ;;;###mh-autoload
(defun mh-list-sequences () (defun mh-list-sequences ()
@ -202,7 +202,7 @@ MESSAGE appears."
" ")))) " "))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar tool-bar-mode))) (defvar tool-bar-mode) ; XEmacs
;;;###mh-autoload ;;;###mh-autoload
(defun mh-narrow-to-seq (sequence) (defun mh-narrow-to-seq (sequence)

View file

@ -815,7 +815,7 @@ operation."
(put 'mh-show-mode 'mode-class 'special) (put 'mh-show-mode 'mode-class 'special)
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar font-lock-auto-fontify)) (defvar font-lock-auto-fontify)
;;;###mh-autoload ;;;###mh-autoload
(define-derived-mode mh-show-mode text-mode "MH-Show" (define-derived-mode mh-show-mode text-mode "MH-Show"

View file

@ -657,7 +657,7 @@ See `expand-file-name' for description of DEFAULT."
(defvar mh-folder-hist nil) (defvar mh-folder-hist nil)
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar mh-speed-flists-cache)) (defvar mh-speed-flists-cache)
(defvar mh-allow-root-folder-flag nil (defvar mh-allow-root-folder-flag nil
"Non-nil means \"+\" is an acceptable folder name. "Non-nil means \"+\" is an acceptable folder name.
@ -718,10 +718,8 @@ and FLAG determines whether the completion is over."
(t (file-exists-p path)))))))) (t (file-exists-p path))))))))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar completion-root-regexp) ; XEmacs
(mh-do-in-xemacs (defvar minibuffer-completing-file-name) ; XEmacs
(defvar completion-root-regexp)
(defvar minibuffer-completing-file-name)))
(defun mh-folder-completing-read (prompt default allow-root-folder-flag) (defun mh-folder-completing-read (prompt default allow-root-folder-flag)
"Read folder name with PROMPT and default result DEFAULT. "Read folder name with PROMPT and default result DEFAULT.

View file

@ -60,8 +60,7 @@
(funcall mh-show-xface-function))) (funcall mh-show-xface-function)))
;; Shush compiler. ;; Shush compiler.
(eval-when-compile (defvar default-enable-multibyte-characters) ; XEmacs
(mh-do-in-xemacs (defvar default-enable-multibyte-characters)))
(defun mh-face-display-function () (defun mh-face-display-function ()
"Display a Face, X-Face, or X-Image-URL header field. "Display a Face, X-Face, or X-Image-URL header field.

View file

@ -3584,6 +3584,10 @@ the result will be a local, non-Tramp, filename."
"Global variable keeping asynchronous process object. "Global variable keeping asynchronous process object.
Used in `tramp-handle-shell-command'") Used in `tramp-handle-shell-command'")
(defvar tramp-display-shell-command-buffer t
"Whether to display output buffer of `shell-command'.
This is necessary for handling DISPLAY of `process-file'.")
(defun tramp-handle-shell-command (command &optional output-buffer error-buffer) (defun tramp-handle-shell-command (command &optional output-buffer error-buffer)
"Like `shell-command' for tramp files. "Like `shell-command' for tramp files.
This will break if COMMAND prints a newline, followed by the value of This will break if COMMAND prints a newline, followed by the value of
@ -3692,7 +3696,8 @@ This will break if COMMAND prints a newline, followed by the value of
(skip-chars-forward "^ ") (skip-chars-forward "^ ")
(setq status (read (current-buffer))))) (setq status (read (current-buffer)))))
(unless (zerop (buffer-size)) (unless (zerop (buffer-size))
(display-buffer output-buffer)) (when tramp-display-shell-command-buffer
(display-buffer output-buffer)))
status)) status))
;; The following is only executed if something strange was ;; The following is only executed if something strange was
;; happening. Emit a helpful message and do it anyway. ;; happening. Emit a helpful message and do it anyway.
@ -3707,11 +3712,10 @@ This will break if COMMAND prints a newline, followed by the value of
(when (and (numberp buffer) (zerop buffer)) (when (and (numberp buffer) (zerop buffer))
(error "Implementation does not handle immediate return")) (error "Implementation does not handle immediate return"))
(when (consp buffer) (error "Implementation does not handle error files")) (when (consp buffer) (error "Implementation does not handle error files"))
(shell-command (let ((tramp-display-shell-command-buffer display))
(mapconcat 'tramp-shell-quote-argument (shell-command
(cons program args) (mapconcat 'tramp-shell-quote-argument (cons program args) " ")
" ") buffer)))
buffer))
;; File Editing. ;; File Editing.

View file

@ -895,6 +895,11 @@ indentation to be kept as it was before narrowing."
(delete-char n) (delete-char n)
(setq ,bindent (- ,bindent n))))))))))) (setq ,bindent (- ,bindent n)))))))))))
(defun comment-add (arg)
(if (and (null arg) (= (string-match "[ \t]*\\'" comment-start) 1))
comment-add
(1- (prefix-numeric-value arg))))
(defun comment-region-internal (beg end cs ce (defun comment-region-internal (beg end cs ce
&optional ccs cce block lines indent) &optional ccs cce block lines indent)
"Comment region BEG .. END. "Comment region BEG .. END.
@ -999,7 +1004,6 @@ The strings used as comment starts are built from
(defun comment-region-default (beg end &optional arg) (defun comment-region-default (beg end &optional arg)
(let* ((numarg (prefix-numeric-value arg)) (let* ((numarg (prefix-numeric-value arg))
(add comment-add)
(style (cdr (assoc comment-style comment-styles))) (style (cdr (assoc comment-style comment-styles)))
(lines (nth 2 style)) (lines (nth 2 style))
(block (nth 1 style)) (block (nth 1 style))
@ -1032,8 +1036,7 @@ The strings used as comment starts are built from
((consp arg) (uncomment-region beg end)) ((consp arg) (uncomment-region beg end))
((< numarg 0) (uncomment-region beg end (- numarg))) ((< numarg 0) (uncomment-region beg end (- numarg)))
(t (t
(setq numarg (if (and (null arg) (= (length comment-start) 1)) (setq numarg (comment-add arg))
add (1- numarg)))
(comment-region-internal (comment-region-internal
beg end beg end
(let ((s (comment-padright comment-start numarg))) (let ((s (comment-padright comment-start numarg)))
@ -1091,9 +1094,8 @@ You can configure `comment-style' to change the way regions are commented."
;; FIXME: If there's no comment to kill on this line and ARG is ;; FIXME: If there's no comment to kill on this line and ARG is
;; specified, calling comment-kill is not very clever. ;; specified, calling comment-kill is not very clever.
(if arg (comment-kill (and (integerp arg) arg)) (comment-indent)) (if arg (comment-kill (and (integerp arg) arg)) (comment-indent))
(let ((add (if arg (prefix-numeric-value arg) (let ((add (comment-add arg)))
(if (= (length comment-start) 1) comment-add 0)))) ;; Some modes insist on keeping column 0 comment in column 0
;; Some modes insist on keeping column 0 comment in column 0
;; so we need to move away from it before inserting the comment. ;; so we need to move away from it before inserting the comment.
(indent-according-to-mode) (indent-according-to-mode)
(insert (comment-padright comment-start add)) (insert (comment-padright comment-start add))

View file

@ -271,8 +271,8 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
;; on the current branch (either because it only exists in other ;; on the current branch (either because it only exists in other
;; branches, or because it's been removed). ;; branches, or because it's been removed).
(if (ignore-errors (if (ignore-errors
(with-current-buffer (with-temp-buffer
(find-file-noselect (expand-file-name (insert-file-contents (expand-file-name
".cvsignore" (file-name-directory dir))) ".cvsignore" (file-name-directory dir)))
(goto-char (point-min)) (goto-char (point-min))
(re-search-forward (re-search-forward

View file

@ -211,22 +211,24 @@
(defvar lm-emacs-won () (defvar lm-emacs-won ()
"*For making font-lock use the winner's face for the line.") "*For making font-lock use the winner's face for the line.")
(defvar lm-font-lock-face-O (defface lm-font-lock-face-O '((((class color)) :foreground "red")
(if (display-color-p) (t :weight bold))
(list (facemenu-get-face 'fg:red) 'bold)) "*Face to use for Emacs' O."
"*Face to use for Emacs' O.") :version "22.1"
:group 'lm)
(defvar lm-font-lock-face-X (defface lm-font-lock-face-X '((((class color)) :foreground "green")
(if (display-color-p) (t :weight bold))
(list (facemenu-get-face 'fg:green) 'bold)) "*Face to use for your X."
"*Face to use for your X.") :version "22.1"
:group 'lm)
(defvar lm-font-lock-keywords (defvar lm-font-lock-keywords
'(("O" . lm-font-lock-face-O) '(("O" . 'lm-font-lock-face-O)
("X" . lm-font-lock-face-X) ("X" . 'lm-font-lock-face-X)
("[-|/\\]" 0 (if lm-emacs-won ("[-|/\\]" 0 (if lm-emacs-won
lm-font-lock-face-O 'lm-font-lock-face-O
lm-font-lock-face-X))) 'lm-font-lock-face-X)))
"*Font lock rules for Lm.") "*Font lock rules for Lm.")
(put 'lm-mode 'front-sticky (put 'lm-mode 'front-sticky

View file

@ -267,7 +267,8 @@ the evaluated constant value at compile time."
["Hungry delete" c-toggle-hungry-state ["Hungry delete" c-toggle-hungry-state
:style toggle :selected c-hungry-delete-key] :style toggle :selected c-hungry-delete-key]
["Subword mode" c-subword-mode ["Subword mode" c-subword-mode
:style toggle :selected c-subword-mode]))) :style toggle :selected (and (boundp 'c-subword-mode)
c-subword-mode)])))
;;; Syntax tables. ;;; Syntax tables.

View file

@ -417,7 +417,8 @@ With arg, use separate IO iff arg is positive."
(goto-char (point-min)) (goto-char (point-min))
(when (search-forward "read in on demand:" nil t) (when (search-forward "read in on demand:" nil t)
(while (re-search-forward gdb-source-file-regexp nil t) (while (re-search-forward gdb-source-file-regexp nil t)
(push (or (match-string 1) (match-string 2)) gdb-source-file-list)) (push (file-name-nondirectory (or (match-string 1) (match-string 2)))
gdb-source-file-list))
(dolist (buffer (buffer-list)) (dolist (buffer (buffer-list))
(with-current-buffer buffer (with-current-buffer buffer
(when (and buffer-file-name (when (and buffer-file-name
@ -524,6 +525,7 @@ With arg, use separate IO iff arg is positive."
gdb-frame-number nil gdb-frame-number nil
gdb-var-list nil gdb-var-list nil
gdb-force-update t gdb-force-update t
gdb-main-file nil
gdb-first-post-prompt t gdb-first-post-prompt t
gdb-prompting nil gdb-prompting nil
gdb-input-queue nil gdb-input-queue nil
@ -580,8 +582,7 @@ With arg, use separate IO iff arg is positive."
(defun gdb-get-version () (defun gdb-get-version ()
(goto-char (point-min)) (goto-char (point-min))
(if (and (re-search-forward gdb-error-regexp nil t) (if (re-search-forward "Undefined\\( mi\\)* command:" nil t)
(string-match ".*(missing implementation)" (match-string 1)))
(setq gdb-version "pre-6.4") (setq gdb-version "pre-6.4")
(setq gdb-version "6.4+")) (setq gdb-version "6.4+"))
(gdb-init-2)) (gdb-init-2))
@ -2746,7 +2747,11 @@ corresponding to the mode line clicked."
(switch-to-buffer (switch-to-buffer
(if gud-last-last-frame (if gud-last-last-frame
(gud-find-file (car gud-last-last-frame)) (gud-find-file (car gud-last-last-frame))
(gud-find-file gdb-main-file))) (if gdb-main-file
(gud-find-file gdb-main-file)
;; Put buffer list in window if we
;; can't find a source file.
(list-buffers-noselect))))
(when gdb-use-separate-io-buffer (when gdb-use-separate-io-buffer
(split-window-horizontally) (split-window-horizontally)
(other-window 1) (other-window 1)
@ -3139,19 +3144,18 @@ BUFFER nil or omitted means use the current buffer."
(if (re-search-forward "Stack level \\([0-9]+\\)" nil t) (if (re-search-forward "Stack level \\([0-9]+\\)" nil t)
(setq gdb-frame-number (match-string 1))) (setq gdb-frame-number (match-string 1)))
(goto-char (point-min)) (goto-char (point-min))
(if (re-search-forward (when (re-search-forward ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-+?\\)\
".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\) (\\(\\S-*?\\):[0-9]+?);? " \\(?: (\\(\\S-+?\\):[0-9]+?)\\)*;? "
nil t) nil t)
(progn (setq gdb-selected-frame (match-string 2))
(setq gdb-selected-frame (match-string 2)) (if (gdb-get-buffer 'gdb-locals-buffer)
(if (gdb-get-buffer 'gdb-locals-buffer) (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) (setq mode-name (concat "Locals:" gdb-selected-frame))))
(setq mode-name (concat "Locals:" gdb-selected-frame)))) (if (gdb-get-buffer 'gdb-assembler-buffer)
(if (gdb-get-buffer 'gdb-assembler-buffer) (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer) (setq mode-name (concat "Machine:" gdb-selected-frame))))
(setq mode-name (concat "Machine:" gdb-selected-frame)))) (setq gdb-frame-address (match-string 1))
(setq gdb-frame-address (match-string 1)))) (if (and (match-string 3) gud-overlay-arrow-position)
(if gud-overlay-arrow-position
(let ((buffer (marker-buffer gud-overlay-arrow-position)) (let ((buffer (marker-buffer gud-overlay-arrow-position))
(position (marker-position gud-overlay-arrow-position))) (position (marker-position gud-overlay-arrow-position)))
(when (and buffer (string-equal (buffer-name buffer) (match-string 3))) (when (and buffer (string-equal (buffer-name buffer) (match-string 3)))
@ -3160,9 +3164,9 @@ BUFFER nil or omitted means use the current buffer."
(if (string-equal gdb-frame-number "0") (if (string-equal gdb-frame-number "0")
nil nil
'((overlay-arrow . hollow-right-triangle)))) '((overlay-arrow . hollow-right-triangle))))
(set-marker gud-overlay-arrow-position position))))) (set-marker gud-overlay-arrow-position position))))))
(goto-char (point-min)) (goto-char (point-min))
(if (re-search-forward " source language \\(\\S-*\\)\." nil t) (if (re-search-forward " source language \\(\\S-+\\)\." nil t)
(setq gdb-current-language (match-string 1))) (setq gdb-current-language (match-string 1)))
(gdb-invalidate-assembler)) (gdb-invalidate-assembler))
@ -3281,11 +3285,12 @@ in_scope=\"\\(.*?\\)\".*?}")
gdb-pending-triggers)) gdb-pending-triggers))
(goto-char (point-min)) (goto-char (point-min))
(if (re-search-forward gdb-error-regexp nil t) (if (re-search-forward gdb-error-regexp nil t)
(with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) (let ((err (match-string 1)))
(let ((buffer-read-only nil)) (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
(erase-buffer) (let ((buffer-read-only nil))
(insert (match-string 1)) (erase-buffer)
(goto-char (point-min)))) (insert err)
(goto-char (point-min)))))
(let ((register-list (reverse gdb-register-names)) (let ((register-list (reverse gdb-register-names))
(register nil) (register-string nil) (register-values nil)) (register nil) (register-string nil) (register-values nil))
(goto-char (point-min)) (goto-char (point-min))

View file

@ -721,7 +721,10 @@ changed by, or (parse-state) if line starts in a quoted string."
(save-excursion (save-excursion
(forward-char 1) (forward-char 1)
(forward-sexp -1) (forward-sexp -1)
(perl-indent-new-calculate 'virtual nil parse-start))) (perl-indent-new-calculate
;; Recalculate the parsing-start, since we may have jumped
;; dangerously close (typically in the case of nested functions).
'virtual nil (save-excursion (perl-beginning-of-function)))))
(and (and (= (following-char) ?{) (and (and (= (following-char) ?{)
(save-excursion (forward-char) (perl-hanging-paren-p))) (save-excursion (forward-char) (perl-hanging-paren-p)))
(+ (or default (perl-calculate-indent parse-start)) (+ (or default (perl-calculate-indent parse-start))

View file

@ -2332,7 +2332,7 @@ return value of `filter-buffer-substring'.
If this variable is nil, no filtering is performed.") If this variable is nil, no filtering is performed.")
(defun filter-buffer-substring (beg end &optional delete) (defun filter-buffer-substring (beg end &optional delete noprops)
"Return the buffer substring between BEG and END, after filtering. "Return the buffer substring between BEG and END, after filtering.
The buffer substring is passed through each of the filter The buffer substring is passed through each of the filter
functions in `buffer-substring-filters', and the value from the functions in `buffer-substring-filters', and the value from the
@ -2342,21 +2342,36 @@ is nil, the buffer substring is returned unaltered.
If DELETE is non-nil, the text between BEG and END is deleted If DELETE is non-nil, the text between BEG and END is deleted
from the buffer. from the buffer.
If NOPROPS is non-nil, final string returned does not include
text properties, while the string passed to the filters still
includes text properties from the buffer text.
Point is temporarily set to BEG before calling Point is temporarily set to BEG before calling
`buffer-substring-filters', in case the functions need to know `buffer-substring-filters', in case the functions need to know
where the text came from. where the text came from.
This function should be used instead of `buffer-substring' or This function should be used instead of `buffer-substring',
`delete-and-extract-region' when you want to allow filtering to `buffer-substring-no-properties', or `delete-and-extract-region'
take place. For example, major or minor modes can use when you want to allow filtering to take place. For example,
`buffer-substring-filters' to extract characters that are special major or minor modes can use `buffer-substring-filters' to
to a buffer, and should not be copied into other buffers." extract characters that are special to a buffer, and should not
(save-excursion be copied into other buffers."
(goto-char beg) (cond
(let ((string (if delete (delete-and-extract-region beg end) ((or delete buffer-substring-filters)
(buffer-substring beg end)))) (save-excursion
(dolist (filter buffer-substring-filters string) (goto-char beg)
(setq string (funcall filter string)))))) (let ((string (if delete (delete-and-extract-region beg end)
(buffer-substring beg end))))
(dolist (filter buffer-substring-filters)
(setq string (funcall filter string)))
(if noprops
(set-text-properties 0 (length string) nil string))
string)))
(noprops
(buffer-substring-no-properties beg end))
(t
(buffer-substring beg end))))
;;;; Window system cut and paste hooks. ;;;; Window system cut and paste hooks.
@ -3742,7 +3757,7 @@ If point reaches the beginning or end of buffer, it stops there.
To ignore intangibility, bind `inhibit-point-motion-hooks' to t." To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
(interactive "p") (interactive "p")
(or arg (setq arg 1)) (or arg (setq arg 1))
(let ((orig (point))) (let ((orig (point)))
;; Move by lines, if ARG is not 1 (the default). ;; Move by lines, if ARG is not 1 (the default).

View file

@ -1538,17 +1538,15 @@ Type \\[describe-distribution] for information on getting the latest version."))
;; Display the input that we set up in the buffer. ;; Display the input that we set up in the buffer.
(set-buffer-modified-p nil) (set-buffer-modified-p nil)
(goto-char (point-min)) (goto-char (point-min))
(save-window-excursion (if (or (window-minibuffer-p)
(condition-case nil (window-dedicated-p (selected-window)))
(switch-to-buffer (current-buffer)) ;; There's no point is using pop-to-buffer since creating
;; In case we're in a dedicated or minibuffer-only window. ;; a new frame will generate enough events that the
(error ;; subsequent `sit-for' will immediately return anyway.
;; There's no point is using pop-to-buffer since creating nil ;; (pop-to-buffer (current-buffer))
;; a new frame will generate enough events that the (save-window-excursion
;; subsequent `sit-for' will immediately return anyway. (switch-to-buffer (current-buffer))
;; (pop-to-buffer (current-buffer)) (sit-for 120))))
))
(sit-for 120)))
;; Unwind ... ensure splash buffer is killed ;; Unwind ... ensure splash buffer is killed
(kill-buffer "GNU Emacs")))) (kill-buffer "GNU Emacs"))))

View file

@ -1540,7 +1540,8 @@ by doing (clear-string STRING)."
(let ((pass nil) (let ((pass nil)
(c 0) (c 0)
(echo-keystrokes 0) (echo-keystrokes 0)
(cursor-in-echo-area t)) (cursor-in-echo-area t)
(message-log-max nil))
(add-text-properties 0 (length prompt) (add-text-properties 0 (length prompt)
minibuffer-prompt-properties prompt) minibuffer-prompt-properties prompt)
(while (progn (message "%s%s" (while (progn (message "%s%s"

View file

@ -2856,25 +2856,45 @@ is non-nil."
(bibtex-autofill-entry)) (bibtex-autofill-entry))
(run-hooks 'bibtex-add-entry-hook))) (run-hooks 'bibtex-add-entry-hook)))
(defun bibtex-entry-update () (defun bibtex-entry-update (&optional entry-type)
"Update an existing BibTeX entry. "Update an existing BibTeX entry.
In the BibTeX entry at point, make new fields for those items that may occur In the BibTeX entry at point, make new fields for those items that may occur
according to `bibtex-field-list', but are not yet present." according to `bibtex-field-list', but are not yet present.
(interactive) Also, add field delimiters to numerical fields if they are not present.
If ENTRY-TYPE is non-nil, change first the entry type to ENTRY-TYPE.
When called interactively with a prefix arg, query for a value of ENTRY-TYPE."
(interactive
(list (if current-prefix-arg
(let ((completion-ignore-case t))
(completing-read "New entry type: " bibtex-entry-field-alist
nil t nil 'bibtex-entry-type-history)))))
(save-excursion (save-excursion
(bibtex-beginning-of-entry) (bibtex-beginning-of-entry)
;; For inserting new fields, we use the fact that (when (looking-at bibtex-entry-maybe-empty-head)
;; `bibtex-parse-entry' moves point to the end of the last field. (goto-char (match-end 0))
(let* ((fields-alist (bibtex-parse-entry)) (if entry-type
(field-list (bibtex-field-list (save-excursion
(cdr (assoc "=type=" fields-alist))))) (replace-match (concat "@" entry-type) nil nil nil 1))
(skip-chars-backward " \t\n") (setq entry-type (bibtex-type-in-head)))
(dolist (field (car field-list)) (let* ((field-list (bibtex-field-list entry-type))
(unless (assoc-string (car field) fields-alist t) (required (copy-tree (car field-list)))
(bibtex-make-field field))) (optional (copy-tree (cdr field-list)))
(dolist (field (cdr field-list)) bounds)
(unless (assoc-string (car field) fields-alist t) (while (setq bounds (bibtex-parse-field))
(bibtex-make-optional-field field)))))) (let ((fname (bibtex-name-in-field bounds t))
(end (copy-marker (bibtex-end-of-field bounds) t)))
(setq required (delete (assoc-string fname required t) required)
optional (delete (assoc-string fname optional t) optional))
(when (string-match "\\`[0-9]+\\'"
(bibtex-text-in-field-bounds bounds))
(goto-char (bibtex-end-of-text-in-field bounds))
(insert (bibtex-field-right-delimiter))
(goto-char (bibtex-start-of-text-in-field bounds))
(insert (bibtex-field-left-delimiter)))
(goto-char end)))
(skip-chars-backward " \t\n")
(dolist (field required) (bibtex-make-field field))
(dolist (field optional) (bibtex-make-optional-field field))))))
(defun bibtex-parse-entry (&optional content) (defun bibtex-parse-entry (&optional content)
"Parse entry at point, return an alist. "Parse entry at point, return an alist.
@ -3613,17 +3633,20 @@ interactive calls."
(defun bibtex-find-text-internal (&optional noerror subfield comma) (defun bibtex-find-text-internal (&optional noerror subfield comma)
"Find text part of current BibTeX field or entry head. "Find text part of current BibTeX field or entry head.
Return list (NAME START-TEXT END-TEXT END) with field or entry name, Return list (NAME START-TEXT END-TEXT END STRING-CONST) with field
start and end of text and end of field or entry head, or nil if not found. or entry name, start and end of text, and end of field or entry head.
If optional arg NOERROR is non-nil, an error message is suppressed if text STRING-CONST is a flag which is non-nil if current subfield delimited by #
is not found. If optional arg SUBFIELD is non-nil START-TEXT and END-TEXT is a BibTeX string constant. Return value is nil if field or entry head
correspond to the current subfield delimited by #. are not found.
If optional arg NOERROR is non-nil, an error message is suppressed
if text is not found. If optional arg SUBFIELD is non-nil START-TEXT
and END-TEXT correspond to the current subfield delimited by #.
Optional arg COMMA is as in `bibtex-enclosing-field'." Optional arg COMMA is as in `bibtex-enclosing-field'."
(save-excursion (save-excursion
(let ((pnt (point)) (let ((pnt (point))
(bounds (bibtex-enclosing-field comma t)) (bounds (bibtex-enclosing-field comma t))
(case-fold-search t) (case-fold-search t)
name start-text end-text end failure done no-sub) name start-text end-text end failure done no-sub string-const)
(bibtex-beginning-of-entry) (bibtex-beginning-of-entry)
(cond (bounds (cond (bounds
(setq name (bibtex-name-in-field bounds t) (setq name (bibtex-name-in-field bounds t)
@ -3667,9 +3690,11 @@ Optional arg COMMA is as in `bibtex-enclosing-field'."
(goto-char start-text) (goto-char start-text)
(while (not done) (while (not done)
(if (or (prog1 (looking-at bibtex-field-const) (if (or (prog1 (looking-at bibtex-field-const)
(setq end-text (match-end 0))) (setq end-text (match-end 0)
string-const t))
(prog1 (setq bounds (bibtex-parse-field-string)) (prog1 (setq bounds (bibtex-parse-field-string))
(setq end-text (cdr bounds)))) (setq end-text (cdr bounds)
string-const nil)))
(progn (progn
(if (and (<= start-text pnt) (<= pnt end-text)) (if (and (<= start-text pnt) (<= pnt end-text))
(setq done t) (setq done t)
@ -3678,7 +3703,7 @@ Optional arg COMMA is as in `bibtex-enclosing-field'."
(setq start-text (goto-char (match-end 0))))) (setq start-text (goto-char (match-end 0)))))
(setq done t failure t))))) (setq done t failure t)))))
(cond ((not failure) (cond ((not failure)
(list name start-text end-text end)) (list name start-text end-text end string-const))
((and no-sub (not noerror)) ((and no-sub (not noerror))
(error "Not on text part of BibTeX field")) (error "Not on text part of BibTeX field"))
((not noerror) (error "Not on BibTeX field")))))) ((not noerror) (error "Not on BibTeX field"))))))
@ -3712,13 +3737,10 @@ is as in `bibtex-enclosing-field'. It is t for interactive calls."
Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for Optional arg COMMA is as in `bibtex-enclosing-field'. It is t for
interactive calls." interactive calls."
(interactive (list t)) (interactive (list t))
(let* ((bounds (bibtex-find-text-internal nil t comma)) (let ((bounds (bibtex-find-text-internal nil t comma)))
(start (nth 1 bounds)) (unless (nth 4 bounds)
(end (nth 2 bounds))) (delete-region (1- (nth 2 bounds)) (nth 2 bounds))
(if (memq (char-before end) '(?\} ?\")) (delete-region (nth 1 bounds) (1+ (nth 1 bounds))))))
(delete-region (1- end) end))
(if (memq (char-after start) '(?\{ ?\"))
(delete-region start (1+ start)))))
(defun bibtex-kill-field (&optional copy-only comma) (defun bibtex-kill-field (&optional copy-only comma)
"Kill the entire enclosing BibTeX field. "Kill the entire enclosing BibTeX field.

File diff suppressed because it is too large Load diff

View file

@ -758,8 +758,9 @@ they are not defaultly assigned to keys."
(defun picture-mode-exit (&optional nostrip) (defun picture-mode-exit (&optional nostrip)
"Undo `picture-mode' and return to previous major mode. "Undo `picture-mode' and return to previous major mode.
With no argument strips whitespace from end of every line in Picture buffer With no argument, strip whitespace from end of every line in Picture buffer;
otherwise just return to previous mode." otherwise, just return to previous mode.
Runs `picture-mode-exit-hook' at the end."
(interactive "P") (interactive "P")
(if (not (eq major-mode 'picture-mode)) (if (not (eq major-mode 'picture-mode))
(error "You aren't editing a Picture") (error "You aren't editing a Picture")
@ -769,7 +770,8 @@ With no argument strips whitespace from end of every line in Picture buffer
(setq major-mode picture-mode-old-major-mode) (setq major-mode picture-mode-old-major-mode)
(kill-local-variable 'tab-stop-list) (kill-local-variable 'tab-stop-list)
(setq truncate-lines picture-mode-old-truncate-lines) (setq truncate-lines picture-mode-old-truncate-lines)
(force-mode-line-update))) (force-mode-line-update)
(run-hooks 'picture-mode-exit-hook)))
(provide 'picture) (provide 'picture)

View file

@ -5,7 +5,7 @@
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
;; Maintainer's Time-stamp: <2006-02-06 15:11:58 ttn> ;; Maintainer's Time-stamp: <2006-04-12 20:30:56 rms>
;; Maintainer: Stephen Gildea <gildea@stop.mail-abuse.org> ;; Maintainer: Stephen Gildea <gildea@stop.mail-abuse.org>
;; Keywords: tools ;; Keywords: tools
@ -93,6 +93,7 @@ historical default."
:type 'string :type 'string
:group 'time-stamp :group 'time-stamp
:version "20.1") :version "20.1")
;;;###autoload(put 'time-stamp-format 'safe-local-variable 'stringp)
(defcustom time-stamp-active t (defcustom time-stamp-active t
"*Non-nil to enable time-stamping of buffers by \\[time-stamp]. "*Non-nil to enable time-stamping of buffers by \\[time-stamp].
@ -150,7 +151,7 @@ Do not change `time-stamp-line-limit', `time-stamp-start',
incompatible with other people's files! If you must change them for some incompatible with other people's files! If you must change them for some
application, do so in the local variables section of the time-stamped file application, do so in the local variables section of the time-stamped file
itself.") itself.")
;;;###autoload(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
(defvar time-stamp-start "Time-stamp:[ \t]+\\\\?[\"<]+" ;Do not change! (defvar time-stamp-start "Time-stamp:[ \t]+\\\\?[\"<]+" ;Do not change!
"Regexp after which the time stamp is written by \\[time-stamp]. "Regexp after which the time stamp is written by \\[time-stamp].
@ -163,7 +164,7 @@ Do not change `time-stamp-line-limit', `time-stamp-start',
incompatible with other people's files! If you must change them for some incompatible with other people's files! If you must change them for some
application, do so in the local variables section of the time-stamped file application, do so in the local variables section of the time-stamped file
itself.") itself.")
;;;###autoload(put 'time-stamp-start 'safe-local-variable t)
(defvar time-stamp-end "\\\\?[\">]" ;Do not change! (defvar time-stamp-end "\\\\?[\">]" ;Do not change!
"Regexp marking the text after the time stamp. "Regexp marking the text after the time stamp.
@ -183,6 +184,7 @@ Do not change `time-stamp-start', `time-stamp-end', `time-stamp-pattern',
or `time-stamp-inserts-lines' for yourself or you will be incompatible or `time-stamp-inserts-lines' for yourself or you will be incompatible
with other people's files! If you must change them for some application, with other people's files! If you must change them for some application,
do so in the local variables section of the time-stamped file itself.") do so in the local variables section of the time-stamped file itself.")
;;;###autoload(put 'time-stamp-end 'safe-local-variable t)
(defvar time-stamp-inserts-lines nil ;Do not change! (defvar time-stamp-inserts-lines nil ;Do not change!
@ -199,6 +201,7 @@ Do not change `time-stamp-end' or `time-stamp-inserts-lines' for
yourself or you will be incompatible with other people's files! yourself or you will be incompatible with other people's files!
If you must change them for some application, do so in the local If you must change them for some application, do so in the local
variables section of the time-stamped file itself.") variables section of the time-stamped file itself.")
;;;###autoload(put 'time-stamp-inserts-lines 'safe-local-variable t)
(defvar time-stamp-count 1 ;Do not change! (defvar time-stamp-count 1 ;Do not change!
@ -209,6 +212,7 @@ Do not change `time-stamp-count' for yourself or you will be
incompatible with other people's files! If you must change it for incompatible with other people's files! If you must change it for
some application, do so in the local variables section of the some application, do so in the local variables section of the
time-stamped file itself.") time-stamped file itself.")
;;;###autoload(put 'time-stamp-count 'safe-local-variable 'integerp)
(defvar time-stamp-pattern nil ;Do not change! (defvar time-stamp-pattern nil ;Do not change!
@ -244,6 +248,7 @@ Do not change `time-stamp-pattern' `time-stamp-line-limit',
incompatible with other people's files! If you must change them for incompatible with other people's files! If you must change them for
some application, do so only in the local variables section of the some application, do so only in the local variables section of the
time-stamped file itself.") time-stamped file itself.")
;;;###autoload(put 'time-stamp-pattern 'safe-local-variable 'stringp)

View file

@ -584,9 +584,9 @@ See `run-hooks'."
:group 'vc :group 'vc
:version "21.1") :version "21.1")
(defcustom vc-annotate-display-mode nil (defcustom vc-annotate-display-mode 'fullscale
"Which mode to color the output of \\[vc-annotate] with by default." "Which mode to color the output of \\[vc-annotate] with by default."
:type '(choice (const :tag "Default" nil) :type '(choice (const :tag "By Color Map Range" nil)
(const :tag "Scale to Oldest" scale) (const :tag "Scale to Oldest" scale)
(const :tag "Scale Oldest->Newest" fullscale) (const :tag "Scale Oldest->Newest" fullscale)
(number :tag "Specify Fractional Number of Days" (number :tag "Specify Fractional Number of Days"
@ -617,30 +617,64 @@ version control backend imposes itself."
;; Annotate customization ;; Annotate customization
(defcustom vc-annotate-color-map (defcustom vc-annotate-color-map
'(( 20. . "#FFCC00") (if (and (tty-display-color-p) (<= (display-color-cells) 8))
( 40. . "#FF6666") ;; A custom sorted TTY colormap
( 60. . "#FF6600") (let* ((colors
( 80. . "#FF3300") (sort
(100. . "#FF00FF") (delq nil
(120. . "#FF0000") (mapcar (lambda (x)
(140. . "#CCCC00") (if (not (or
(160. . "#CC00CC") (string-equal (car x) "white")
(180. . "#BC8F8F") (string-equal (car x) "black") ))
(200. . "#99CC00") (car x)))
(220. . "#999900") (tty-color-alist)))
(240. . "#7AC5CD") (lambda (a b)
(260. . "#66CC00") (cond
(280. . "#33CC33") ((or (string-equal a "red") (string-equal b "blue")) t)
(300. . "#00CCFF") ((or (string-equal b "red") (string-equal a "blue")) nil)
(320. . "#00CC99") ((string-equal a "yellow") t)
(340. . "#0099FF")) ((string-equal b "yellow") nil)
((string-equal a "cyan") t)
((string-equal b "cyan") nil)
((string-equal a "green") t)
((string-equal b "green") nil)
((string-equal a "magenta") t)
((string-equal b "magenta") nil)
(t (string< a b))))))
(date 20.)
(delta (/ (- 360. date) (1- (length colors)))))
(mapcar (lambda (x)
(prog1
(cons date x)
(setq date (+ date delta)))) colors))
;; Normal colormap: hue stepped from 0-240deg, value=1., saturation=0.75
'(( 20. . "#FF3F3F")
( 40. . "#FF6C3F")
( 60. . "#FF993F")
( 80. . "#FFC63F")
(100. . "#FFF33F")
(120. . "#DDFF3F")
(140. . "#B0FF3F")
(160. . "#83FF3F")
(180. . "#56FF3F")
(200. . "#3FFF56")
(220. . "#3FFF83")
(240. . "#3FFFB0")
(260. . "#3FFFDD")
(280. . "#3FF3FF")
(300. . "#3FC6FF")
(320. . "#3F99FF")
(340. . "#3F6CFF")
(360. . "#3F3FFF")))
"Association list of age versus color, for \\[vc-annotate]. "Association list of age versus color, for \\[vc-annotate].
Ages are given in units of fractional days. Default is eighteen steps Ages are given in units of fractional days. Default is eighteen
using a twenty day increment." steps using a twenty day increment, from red to blue. For TTY
displays with 8 or fewer colors, the default is red to blue with
all other colors between (excluding black and white)."
:type 'alist :type 'alist
:group 'vc) :group 'vc)
(defcustom vc-annotate-very-old-color "#0046FF" (defcustom vc-annotate-very-old-color "#3F3FFF"
"Color for lines older than the current color range in \\[vc-annotate]]." "Color for lines older than the current color range in \\[vc-annotate]]."
:type 'string :type 'string
:group 'vc) :group 'vc)
@ -852,7 +886,7 @@ However, before executing BODY, find FILE, and after BODY, save buffer."
(if vc-dired-mode (if vc-dired-mode
(set-buffer (find-file-noselect (dired-get-filename))) (set-buffer (find-file-noselect (dired-get-filename)))
(while vc-parent-buffer (while vc-parent-buffer
(pop-to-buffer vc-parent-buffer)) (set-buffer vc-parent-buffer))
(if (not buffer-file-name) (if (not buffer-file-name)
(error "Buffer %s is not associated with a file" (buffer-name)) (error "Buffer %s is not associated with a file" (buffer-name))
(if (not (vc-backend buffer-file-name)) (if (not (vc-backend buffer-file-name))
@ -2971,7 +3005,7 @@ cover the range from the oldest annotation to the newest."
(easy-menu-define vc-annotate-mode-menu vc-annotate-mode-map (easy-menu-define vc-annotate-mode-menu vc-annotate-mode-map
"VC Annotate Display Menu" "VC Annotate Display Menu"
`("VC-Annotate" `("VC-Annotate"
["Default" (unless (null vc-annotate-display-mode) ["By Color Map Range" (unless (null vc-annotate-display-mode)
(setq vc-annotate-display-mode nil) (setq vc-annotate-display-mode nil)
(vc-annotate-display-select)) (vc-annotate-display-select))
:style toggle :selected (null vc-annotate-display-mode)] :style toggle :selected (null vc-annotate-display-mode)]
@ -3013,11 +3047,7 @@ BUFFER. `vc-annotate-display-mode' specifies the highlighting mode to
use; you may override this using the second optional arg MODE." use; you may override this using the second optional arg MODE."
(interactive) (interactive)
(if mode (setq vc-annotate-display-mode mode)) (if mode (setq vc-annotate-display-mode mode))
(when buffer (pop-to-buffer (or buffer (current-buffer)))
(set-buffer buffer)
(display-buffer buffer))
(if (not vc-annotate-parent-rev)
(vc-annotate-mode))
(cond ((null vc-annotate-display-mode) (cond ((null vc-annotate-display-mode)
;; The ratio is global, thus relative to the global color-map. ;; The ratio is global, thus relative to the global color-map.
(kill-local-variable 'vc-annotate-color-map) (kill-local-variable 'vc-annotate-color-map)
@ -3077,7 +3107,11 @@ colors. `vc-annotate-background' specifies the background color."
(vc-ensure-vc-buffer) (vc-ensure-vc-buffer)
(setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef (setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef
(let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev)) (let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev))
(temp-buffer-show-function 'vc-annotate-display-select)) (temp-buffer-show-function 'vc-annotate-display-select)
;; If BUF is specified, we presume the caller maintains current line,
;; so we don't need to do it here. This implementation may give
;; strange results occasionally in the case of REV != WORKFILE-REV.
(current-line (unless buf (line-number-at-pos))))
(message "Annotating...") (message "Annotating...")
;; If BUF is specified it tells in which buffer we should put the ;; If BUF is specified it tells in which buffer we should put the
;; annotations. This is used when switching annotations to another ;; annotations. This is used when switching annotations to another
@ -3087,15 +3121,21 @@ colors. `vc-annotate-background' specifies the background color."
;; In case it had to be uniquified. ;; In case it had to be uniquified.
(setq temp-buffer-name (buffer-name)))) (setq temp-buffer-name (buffer-name))))
(with-output-to-temp-buffer temp-buffer-name (with-output-to-temp-buffer temp-buffer-name
(vc-call annotate-command file (get-buffer temp-buffer-name) rev)) (vc-call annotate-command file (get-buffer temp-buffer-name) rev)
(with-current-buffer temp-buffer-name ;; we must setup the mode first, and then set our local
(set (make-local-variable 'vc-annotate-backend) (vc-backend file)) ;; variables before the show-function is called at the exit of
(set (make-local-variable 'vc-annotate-parent-file) file) ;; with-output-to-temp-buffer
(set (make-local-variable 'vc-annotate-parent-rev) rev) (with-current-buffer temp-buffer-name
(set (make-local-variable 'vc-annotate-parent-display-mode) (if (not (equal major-mode 'vc-annotate-mode))
display-mode)) (vc-annotate-mode))
(set (make-local-variable 'vc-annotate-backend) (vc-backend file))
(message "Annotating... done"))) (set (make-local-variable 'vc-annotate-parent-file) file)
(set (make-local-variable 'vc-annotate-parent-rev) rev)
(set (make-local-variable 'vc-annotate-parent-display-mode)
display-mode)))
(when current-line
(goto-line current-line temp-buffer-name))
(message "Annotating... done")))
(defun vc-annotate-prev-version (prefix) (defun vc-annotate-prev-version (prefix)
"Visit the annotation of the version previous to this one. "Visit the annotation of the version previous to this one.
@ -3191,7 +3231,8 @@ string, then it describes a revision number, so warp to that
revision." revision."
(if (not (equal major-mode 'vc-annotate-mode)) (if (not (equal major-mode 'vc-annotate-mode))
(message "Cannot be invoked outside of a vc annotate buffer") (message "Cannot be invoked outside of a vc annotate buffer")
(let* ((oldline (line-number-at-pos)) (let* ((buf (current-buffer))
(oldline (line-number-at-pos))
(revspeccopy revspec) (revspeccopy revspec)
(newrev nil)) (newrev nil))
(cond (cond
@ -3218,10 +3259,10 @@ revision."
(when newrev (when newrev
(vc-annotate vc-annotate-parent-file newrev (vc-annotate vc-annotate-parent-file newrev
vc-annotate-parent-display-mode vc-annotate-parent-display-mode
(current-buffer)) buf)
(goto-line (min oldline (progn (goto-char (point-max)) (goto-line (min oldline (progn (goto-char (point-max))
(previous-line) (previous-line)
(line-number-at-pos)))))))) (line-number-at-pos))) buf)))))
(defun vc-annotate-compcar (threshold a-list) (defun vc-annotate-compcar (threshold a-list)
"Test successive cons cells of A-LIST against THRESHOLD. "Test successive cons cells of A-LIST against THRESHOLD.
@ -3275,7 +3316,11 @@ The annotations are relative to the current time, unless overridden by OFFSET."
(let* ((color (or (vc-annotate-compcar difference vc-annotate-color-map) (let* ((color (or (vc-annotate-compcar difference vc-annotate-color-map)
(cons nil vc-annotate-very-old-color))) (cons nil vc-annotate-very-old-color)))
;; substring from index 1 to remove any leading `#' in the name ;; substring from index 1 to remove any leading `#' in the name
(face-name (concat "vc-annotate-face-" (substring (cdr color) 1))) (face-name (concat "vc-annotate-face-"
(if (string-equal
(substring (cdr color) 0 1) "#")
(substring (cdr color) 1)
(cdr color))))
;; Make the face if not done. ;; Make the face if not done.
(face (or (intern-soft face-name) (face (or (intern-soft face-name)
(let ((tmp-face (make-face (intern face-name)))) (let ((tmp-face (make-face (intern face-name))))

View file

@ -1,3 +1,33 @@
2006-04-15 Michael Olson <mwolson@gnu.org>
* processes.texi (Transaction Queues): Mention the new optional
`delay-question' argument for `tq-enqueue'.
2006-04-13 Bill Wohler <wohler@newt.com>
* customize.texi (Common Keywords): Use dotted notation for
:package-version value. Specify its values. Improve documentation
for customize-package-emacs-version-alist.
2006-04-12 Bill Wohler <wohler@newt.com>
* customize.texi (Common Keywords): Move description of
customize-package-emacs-version-alist to @defvar.
2006-04-10 Bill Wohler <wohler@newt.com>
* customize.texi (Common Keywords): Add :package-version.
2006-04-10 Kim F. Storm <storm@cua.dk>
* text.texi (Buffer Contents): Add NOPROPS arg to
filter-buffer-substring.
2006-04-08 Kevin Ryde <user42@zip.com.au>
* os.texi (Command-Line Arguments): Update xref to emacs manual
"Command Arguments" -> "Emacs Invocation", per change there.
2006-04-08 Thien-Thi Nguyen <ttn@gnu.org> 2006-04-08 Thien-Thi Nguyen <ttn@gnu.org>
* display.texi (Other Display Specs): Arrange a @code{DOTTED-LIST} to * display.texi (Other Display Specs): Arrange a @code{DOTTED-LIST} to

View file

@ -130,8 +130,49 @@ any effect unless the code which implements the mode is loaded.
This option specifies that the item was first introduced in Emacs This option specifies that the item was first introduced in Emacs
version @var{version}, or that its default value was changed in that version @var{version}, or that its default value was changed in that
version. The value @var{version} must be a string. version. The value @var{version} must be a string.
@item :package-version '(@var{package} . @var{version})
This option specifies that the item was first introduced in
@var{package} version @var{version}, or that its default value was
changed in that version. This keyword takes priority over :version.
The value of @var{package} is a symbol and @var{version} is a string.
The @var{package} and @var{version} must appear in the alist
@code{customize-package-emacs-version-alist}. Since @var{package} must
be unique and the user might see it in an error message, a good choice
is the official name of the package, such as MH-E or Gnus.
@end table @end table
Packages that use the @code{:package-version} keyword must also update
the @code{customize-package-emacs-version-alist} variable.
@defvar customize-package-emacs-version-alist
This alist provides a mapping for the versions of Emacs that are
associated with versions of a package listed in the
@code{:package-version} keyword. Its elements look like this:
@example
(@var{package} (@var{pversion} . @var{eversion})@dots{})
@end example
For each @var{package}, which is a symbol, there are one or more
elements that contain a package version @var{pversion} with an
associated Emacs version @var{eversion}. These versions are strings.
For example, the MH-E package updates this alist with the following:
@smallexample
(add-to-list 'customize-package-emacs-version-alist
'(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
("7.4" . "22.1") ("8.0" . "22.1")))
@end smallexample
The value of @var{package} needs to be unique and it needs to match
the @var{package} value appearing in the @code{:package-version}
keyword. Since the user might see the value in a error message, a good
choice is the official name of the package, such as MH-E or Gnus.
@end defvar
@node Group Definitions @node Group Definitions
@section Defining Custom Groups @section Defining Custom Groups

View file

@ -404,8 +404,9 @@ remaining command-line arguments in the variable
arguments is in @code{command-line-args}.) arguments is in @code{command-line-args}.)
The command-line arguments are parsed by the @code{command-line-1} The command-line arguments are parsed by the @code{command-line-1}
function in the @file{startup.el} file. See also @ref{Command function in the @file{startup.el} file. See also @ref{Emacs
Arguments, , Command Line Arguments, emacs, The GNU Emacs Manual}. Invocation, , Command Line Arguments for Emacs Invocation, emacs, The
GNU Emacs Manual}.
@end defvar @end defvar
@defvar command-line-args @defvar command-line-args

View file

@ -1508,7 +1508,7 @@ process, or it may be a TCP connection to a server, possibly on another
machine. machine.
@end defun @end defun
@defun tq-enqueue queue question regexp closure fn @defun tq-enqueue queue question regexp closure fn &optional delay-question
This function sends a transaction to queue @var{queue}. Specifying the This function sends a transaction to queue @var{queue}. Specifying the
queue has the effect of specifying the subprocess to talk to. queue has the effect of specifying the subprocess to talk to.
@ -1521,6 +1521,10 @@ The argument @var{regexp} is a regular expression that should match
text at the end of the entire answer, but nothing before; that's how text at the end of the entire answer, but nothing before; that's how
@code{tq-enqueue} determines where the answer ends. @code{tq-enqueue} determines where the answer ends.
If the argument @var{delay-question} is non-nil, delay sending this
question until the process has finished replying to any previous
questions. This produces more reliable results with some processes."
The return value of @code{tq-enqueue} itself is not meaningful. The return value of @code{tq-enqueue} itself is not meaningful.
@end defun @end defun

View file

@ -205,7 +205,7 @@ This is like @code{buffer-substring}, except that it does not copy text
properties, just the characters themselves. @xref{Text Properties}. properties, just the characters themselves. @xref{Text Properties}.
@end defun @end defun
@defun filter-buffer-substring start end &optional delete @defun filter-buffer-substring start end &optional delete noprops
This function passes the buffer text between @var{start} and @var{end} This function passes the buffer text between @var{start} and @var{end}
through the filter functions specified by the variable through the filter functions specified by the variable
@code{buffer-substring-filters}, and returns the value from the last @code{buffer-substring-filters}, and returns the value from the last
@ -217,7 +217,12 @@ If @var{delete} is non-@code{nil}, this function deletes the text
between @var{start} and @var{end} after copying it, like between @var{start} and @var{end} after copying it, like
@code{delete-and-extract-region}. @code{delete-and-extract-region}.
Lisp code should use this function instead of @code{buffer-substring} If @var{noprops} is non-@code{nil}, the final string returned does not
include text properties, while the string passed through the filters
still includes text properties from the buffer text.
Lisp code should use this function instead of @code{buffer-substring},
@code{buffer-substring-no-properties},
or @code{delete-and-extract-region} when copying into user-accessible or @code{delete-and-extract-region} when copying into user-accessible
data structures such as the kill-ring, X clipboard, and registers. data structures such as the kill-ring, X clipboard, and registers.
Major and minor modes can add functions to Major and minor modes can add functions to

View file

@ -1,3 +1,7 @@
2006-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* inc/config.h (pid_t): Define to int.
2006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 2006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with * makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with

View file

@ -906,7 +906,7 @@ Boston, MA 02110-1301, USA. */
/* #undef mbstate_t */ /* #undef mbstate_t */
/* Define to `int' if <sys/types.h> does not define. */ /* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */ #define pid_t int
/* Define to any substitute for sys_siglist. */ /* Define to any substitute for sys_siglist. */
/* #undef sys_siglist */ /* #undef sys_siglist */

View file

@ -1,3 +1,77 @@
2006-04-13 Carsten Dominik <dominik@science.uva.nl>
* org.texi: (Updating settings): New section.
(Visibility cycling): Better names for the startup folding
options.
(Exporting): Completely restructured.
(The very busy C-c C-c key): New section.
(Summary of in-buffer settings): New section.
2006-04-12 Richard Stallman <rms@gnu.org>
* search.texi: Clean up previous change.
2006-04-12 Eli Zaretskii <eliz@gnu.org>
* search.texi (Regexp Backslash, Regexp Replace): Add index
entries for ``back reference'' and mention the term itself in the
text.
2006-04-11 Richard Stallman <rms@gnu.org>
* custom.texi (Safe File Variables):
Document enable-local-variables = :safe.
2006-04-11 Karl Berry <karl@gnu.org>
* emacs-xtra.texi, emacs.texi (Dired under VC, VC Dired Commands,
Remote Repositories, Version Backups, Local Version Control,
Snapshots, Making and Using Snapshots, Snapshot Caveats,
Miscellaneous Commands and Features of VC, Change Logs and VC,
Renaming VC Work Files and Master Files,
Inserting Version Control Headers, Customizing VC, General Options,
Options for RCS and SCCS, Options specific for CVS): move all
these nodes to emacs-xtra.texi, for brevity.
* cmdargs.texi, files.texi: change cross-references.
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi, gnus-faq.texi, message.texi: Gnus v5.10.8 is released.
2006-04-10 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Misc Group Stuff, Summary Buffer, Article Keymap)
(Server Commands): Key `v' is reserved for users.
2006-04-11 J.D. Smith <jdsmith@as.arizona.edu>
* files.texi (Old Versions): Update description of vc-annotate's
use of color to indicate date ranges.
2006-04-11 Carsten Dominik <dominik@science.uva.nl>
* org.texi (Link format): New section, emphasis on bracket links.
(External links): Document bracket links.
(FAQ): Expanded to cover shell links and the new link format.
2006-04-09 Kevin Ryde <user42@zip.com.au>
* org.texi (Formula syntax): Typo in node name of calc-eval xref.
* sending.texi (Mail Sending): In send-mail-function @pxref smtpmail,
put info and printed manual names the right way around.
2006-04-09 Karl Berry <karl@gnu.org>
* msdog.texi, emacs-xtra.texi: move all the MS-DOS material to
emacs-xtra.texi, leaving only MS Windows information.
* building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi,
msdog.texi, mule.texi, trouble.texi: change cross-references and
node names.
* emacs.texi: move @summarycontents and @contents to the beginning
of the file.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de> 2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Summary Buffer Lines): Add `*'. * gnus.texi (Summary Buffer Lines): Add `*'.

View file

@ -323,7 +323,7 @@ method to conditionalize them.
subprocesses; to work around this lack, @kbd{M-x compile} runs the subprocesses; to work around this lack, @kbd{M-x compile} runs the
compilation command synchronously on MS-DOS. As a consequence, you must compilation command synchronously on MS-DOS. As a consequence, you must
wait until the command finishes before you can do anything else in wait until the command finishes before you can do anything else in
Emacs. @xref{MS-DOS}. Emacs. @xref{MS-DOS,,,emacs-xtra,Specialized Emacs Features}.
@node Grep Searching @node Grep Searching
@section Searching with Grep under Emacs @section Searching with Grep under Emacs

View file

@ -551,7 +551,7 @@ The name of an interpreter used to parse and execute programs run from
inside Emacs. inside Emacs.
@item SMTPSERVER @item SMTPSERVER
The name of the outgoing mail server. Used by the SMTP library The name of the outgoing mail server. Used by the SMTP library
(@pxref{Top,,Sending mail via SMTP,smtpmail}). (@pxref{Top,,,Sending mail via SMTP,smtpmail}).
@cindex background mode, on @command{xterm} @cindex background mode, on @command{xterm}
@item TERM @item TERM
The type of the terminal that Emacs is using. This variable must be The type of the terminal that Emacs is using. This variable must be

View file

@ -1227,9 +1227,10 @@ values for these variables, do it directly by customizing
The variable @code{enable-local-variables} allows you to change the The variable @code{enable-local-variables} allows you to change the
way Emacs processes local variables. Its default value is @code{t}, way Emacs processes local variables. Its default value is @code{t},
which specifies the behavior described above. If it is @code{nil}, which specifies the behavior described above. If it is @code{nil},
Emacs simply ignores all file local variables. Any other value says Emacs simply ignores all file local variables. @code{:safe} means use
to query you about each file that has local variables, without trying only the safe values and ignore the rest. Any other value says to
to determine whether the values are known to be safe. query you about each file that has local variables, without trying to
determine whether the values are known to be safe.
@vindex enable-local-eval @vindex enable-local-eval
The variable @code{enable-local-eval} controls whether Emacs The variable @code{enable-local-eval} controls whether Emacs

File diff suppressed because it is too large Load diff

View file

@ -73,7 +73,12 @@ Boston, MA 02110-1301 USA
Cover art by Etienne Suvasa. Cover art by Etienne Suvasa.
@end titlepage @end titlepage
@page
@summarycontents
@contents
@ifnottex @ifnottex
@node Top, Distrib, (dir), (dir) @node Top, Distrib, (dir), (dir)
@top The Emacs Editor @top The Emacs Editor
@ -122,7 +127,7 @@ and Sending Mail and Registers and Minibuffer.
* Glossary:: The glossary. * Glossary:: The glossary.
* Antinews:: Information about Emacs version 21. * Antinews:: Information about Emacs version 21.
* Mac OS:: Using Emacs in the Mac. * Mac OS:: Using Emacs in the Mac.
* MS-DOS:: Using Emacs on MS-DOS and Microsoft Windows. * Emacs and Microsoft Windows:: Using Emacs on Microsoft Windows.
* Manifesto:: What's GNU? Gnu's Not Unix! * Manifesto:: What's GNU? Gnu's Not Unix!
* Acknowledgments:: Major contributors to GNU Emacs. * Acknowledgments:: Major contributors to GNU Emacs.
@ -394,10 +399,6 @@ Version Control
* Old Versions:: Examining and comparing old versions. * Old Versions:: Examining and comparing old versions.
* Secondary VC Commands:: The commands used a little less frequently. * Secondary VC Commands:: The commands used a little less frequently.
* Branches:: Multiple lines of development. * Branches:: Multiple lines of development.
* Remote Repositories:: Efficient access to remote CVS servers.
* Snapshots:: Sets of file versions treated as a unit.
* Miscellaneous VC:: Various other commands and features of VC.
* Customizing VC:: Variables that change VC's behavior.
Using Multiple Buffers Using Multiple Buffers
@ -855,16 +856,9 @@ Emacs and Mac OS
* Mac Font Specs:: Specifying fonts on Mac. * Mac Font Specs:: Specifying fonts on Mac.
* Mac Functions:: Mac-specific Lisp functions. * Mac Functions:: Mac-specific Lisp functions.
MS-DOS and Windows 95/98/NT Emacs and Microsoft Windows
* MS-DOS Keyboard:: Keyboard usage on MS-DOS.
* MS-DOS Mouse:: Mouse usage on MS-DOS.
* MS-DOS Display:: Fonts, frames and display size on MS-DOS.
* MS-DOS File Names:: File-name conventions on MS-DOS.
* Text and Binary:: Text files on MS-DOS use CRLF to separate lines. * Text and Binary:: Text files on MS-DOS use CRLF to separate lines.
* MS-DOS Printing:: How to specify the printer on MS-DOS.
* MS-DOS and MULE:: Support for internationalization on MS-DOS.
* MS-DOS Processes:: Running subprocesses on MS-DOS.
* Windows Processes:: Running subprocesses on Windows. * Windows Processes:: Running subprocesses on Windows.
* Windows System Menu:: Controlling what the ALT key does. * Windows System Menu:: Controlling what the ALT key does.
@end menu @end menu
@ -926,10 +920,10 @@ This edition of the manual is intended for use with GNU Emacs
installed on GNU and Unix systems. GNU Emacs can also be used on VMS, installed on GNU and Unix systems. GNU Emacs can also be used on VMS,
MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems. MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems.
Those systems use different file name syntax; in addition, VMS and Those systems use different file name syntax; in addition, VMS and
MS-DOS do not support all GNU Emacs features. @xref{MS-DOS}, for MS-DOS do not support all GNU Emacs features. @xref{Emacs and
information about using Emacs on MS-DOS and Windows. @xref{Mac OS}, Microsoft Windows}, for information about using Emacs on Windows.
for information about using Emacs on Macintosh. We don't try to @xref{Mac OS}, for information about using Emacs on Macintosh. We
describe VMS usage in this manual. don't try to describe VMS usage in this manual.
@end iftex @end iftex
@node Distrib, Intro, Top, Top @node Distrib, Intro, Top, Top
@ -1604,8 +1598,6 @@ Public License instead of this License.
@unnumbered Concept Index @unnumbered Concept Index
@printindex cp @printindex cp
@summarycontents
@contents
@bye @bye
@ignore @ignore

File diff suppressed because it is too large Load diff

View file

@ -27,7 +27,7 @@ it terminates all the frames. To delete just one frame, use @kbd{C-x 5
Emacs compiled for MS-DOS emulates some windowing functionality, Emacs compiled for MS-DOS emulates some windowing functionality,
so that you can use many of the features described in this chapter. so that you can use many of the features described in this chapter.
@xref{MS-DOS Mouse}, for more information. @xref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}.
@menu @menu
* Mouse Commands:: Moving, cutting, and pasting, with the mouse. * Mouse Commands:: Moving, cutting, and pasting, with the mouse.

View file

@ -2,7 +2,7 @@
@c Copyright (C) 1985, 1986, 1987, 1993, 1995, 2002, 2003, 2004, @c Copyright (C) 1985, 1986, 1987, 1993, 1995, 2002, 2003, 2004,
@c 2005, 2006 Free Software Foundation, Inc. @c 2005, 2006 Free Software Foundation, Inc.
@ifclear justgnu @ifclear justgnu
@node Manifesto,, MS-DOS, Top @node Manifesto,, Emacs and Microsoft Windows, Top
@unnumbered The GNU Manifesto @unnumbered The GNU Manifesto
@end ifclear @end ifclear
@ifset justgnu @ifset justgnu

View file

@ -128,7 +128,7 @@ What is the latest version of Gnus?
Jingle please: Gnus 5.10 is released, get it while it's Jingle please: Gnus 5.10 is released, get it while it's
hot! As well as the step in version number is rather hot! As well as the step in version number is rather
small, Gnus 5.10 has tons of new features which you small, Gnus 5.10 has tons of new features which you
shouldn't miss. The current release (5.10.6) should be at shouldn't miss. The current release (5.10.8) should be at
least as stable as the latest release of the 5.8 series. least as stable as the latest release of the 5.8 series.
@node [1.2] @node [1.2]

Some files were not shown because too many files have changed in this diff Show more