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
** 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
.emacs file, and then reduce Emacs frame width to "something quite narrow":
(setq-default truncate-lines t)
@ -72,7 +76,7 @@ you're going to handle.
DIRECTORY STATUS IN CHARGE
--------- ------ ---------
etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org))
leim working Kenichi Handa
leim done Kenichi Handa
lib-src done ttn
lisp done ttn
lisp/calc done Jay Belanger
@ -81,8 +85,8 @@ lisp/emacs-lisp done ttn
lisp/emulation done ttn
lisp/eshell done ttn
lisp/gnus done Romain Francoise
lisp/international working Kenichi Handa
lisp/language working Kenichi Handa
lisp/international done Kenichi Handa
lisp/language done Kenichi Handa
lisp/mail done ttn
lisp/mh-e done Bill Wohler
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>
* NEWS: Add string-or-null-p.

View file

@ -3766,6 +3766,12 @@ variables, including buffer-local and frame-local variables.
** 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.
@ -4035,6 +4041,12 @@ in DEF before the terminal colon and space.
A file local variables list cannot specify a string with text
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
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
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
this was hard to fix reliably. It has long been obsolete -- use
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.
*** 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
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.
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.
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:
** 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
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.
** 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
with evaluating definitions of the same function from different files,
recording which file the latest definition came from.
* Important features:
** 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
function that has advice. The overlay could have `after-text' 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.
** 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,
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.]
** 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
\newcount\columnsperpage
@ -58,9 +60,6 @@
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas.
\def\orgversionnumber{4.10}
\def\year{2006}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ 2004, 2005, 2006\ Free Software Foundation, Inc.
Permissions on back. v\orgversionnumber}}
@ -367,10 +366,8 @@ \section{Timestamps}
\key{insert SCHEDULED timestamp}{C-c C-s}
\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{change timestamp at cursor by $-1$ day}{S-LEFT$^4$}
\key{change timestamp at cursor by $+1$ day}{S-RIGHT$^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{change timestamp at cursor by $\pm 1$ day}{S-RIGHT/LEFT$^4$}
\key{change year/month/day at cursor by $\pm 1$}{S-UP/DOWN$^4$}
\key{access the calendar for the current date}{C-c >}
\key{insert timestamp matching date in calendar}{C-c <}
\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{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{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 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{[[*this text]]}}{\rm find headline}
\metax{\kbd{[[this text]]}}{\rm find target or text in buffer}
\metax{\kbd{[[this text][description]]}}{\rm optional link text}
{\bf External Links}
\key{\kbd{<file:/home/dominik/img/mars.jpg>}}{\rm file, absolute}
\key{\kbd{<file:papers/last.pdf>}}{\rm file, relative}
\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::/regexp/>}}{\rm regexp search}
\key{\kbd{<http://www.astro.uva.nl/~dominik>}}{\rm on the web}
\key{\kbd{<mailto:adent@galaxy.net>}}{\rm EMail address}
\key{\kbd{<news:comp.emacs>}}{\rm Usenet group}
\key{\kbd{<bbdb:Richard Stallman>}}{\rm BBDB person}
\key{\kbd{<shell:ls *.org>}}{\rm shell command}
\key{\kbd{<gnus:group>}}{\rm GNUS group}
\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\#id>}}{\rm Mail message}
%\key{\kbd{<vm://myself@some.where.org/folder\#id>}}{\rm VM remote}
\key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute}
\key{\kbd{file:papers/last.pdf}}{\rm file, relative}
\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::/regexp/}}{\rm regexp search}
\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
\key{\kbd{news:comp.emacs}}{\rm Usenet group}
\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
\key{\kbd{shell:ls *.org}}{\rm shell command}
\key{\kbd{gnus:group}}{\rm GNUS group}
\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\#id}}{\rm Mail message}
\metax{\kbd{[[external link][description]]}}{\rm optional link text}
%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
\section{Tables}
@ -425,11 +425,10 @@ \section{Tables}
{\bf Creating a table}
\metax{insert a new Org-mode table}{M-x org-table-create}
\metax{... or just start typing, e.g.}{|Name|Phone|Age RET |- TAB}
\key{convert region to table}{C-c C-c}
\key{... separator at least 3 spaces}{C-3 C-c C-c}
%\key{... prompt for separator regexp}{C-u C-c C-c}
%\metax{insert a new Org-mode table}{M-x org-table-create}
\metax{just start typing, e.g.}{|Name|Phone|Age RET |- TAB}
\key{convert region to table}{C-c |}
\key{... separator at least 3 spaces}{C-3 C-c |}
{\bf Commands available inside tables}
@ -465,9 +464,7 @@ \section{Tables}
\key{paste rectangular region}{C-c C-x C-y}
\key{fill paragraph across selected cells}{C-c C-q}
{\bf Calculations}
These need the Emacs calc package installed.
{\bf Calculations} (in combination with Emacs \kbd{calc} package)
\key{set and eval column formula}{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 entire table}{C-u C-c *}
\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
in lines starting with: {\tt | \# |}.
%\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
%in lines starting with: {\tt | \# |}.
\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
@ -484,9 +481,9 @@ \section{Tables}
\key{sum numbers in current column/rectangle}{C-c +}
\key{copy down with increment}{S-RET$^4$}
A formula can also be typed directly into into a field and will
executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}. A leading \kbd{=}
introduces a column formula, \kbd{:=} a named-field formula.
Formulas typed in field are executed by \kbd{TAB},
\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
formula, \kbd{:=} a named-field formula.
\key{Example: Add Col1 and Col2}{=\$1+\$2}
\key{... with printf format specification}{=\$1+\$2;\%.2f}
@ -496,7 +493,9 @@ \section{Tables}
{\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{import tab-separated file}{M-x org-table-import}

View file

@ -1,5 +1,5 @@
# 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.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
# 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;-*-
;; Copyright (C) 2002 Free Software Foundation, Inc.
;; Copyright (C) 2003 Free Software Foundation, Inc.
;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>,
;; modeled after czech.el by Milan Zamazal.

View file

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

View file

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

View file

@ -1,6 +1,6 @@
;;; 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
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021

View file

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

View file

@ -1,5 +1,6 @@
;;; 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
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; 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, 1999
;; Copyright (C) 1999
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; 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
;; Copyright (C) 2001, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; 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
;; Copyright (C) 1997, 1999
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021
;; Copyright (C) 2003

View file

@ -1,8 +1,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.
;; Copyright (C) 1997, 1999, 2005
;; Copyright (C) 1997, 1998, 1999, 2000, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021

View file

@ -1,6 +1,6 @@
;;; 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)
;; Registration Number H14PRO021

View file

@ -1,7 +1,7 @@
;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: iso-2022-7bit;-*-
;; Copyright (C) 1995 Free Software Foundation, Inc.
;; Copyright (C) 1995, 1998, 1999, 2000
;; Copyright (C) 1997 Free Software Foundation, Inc.
;; Copyright (C) 1997, 1998, 1999, 2000
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; 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>
* emacs-lisp/bytecomp.el (byte-compile-form): Don't call
@ -57,12 +336,11 @@
(rcirc-multiline-minor-mode-map): New mode map.
(rcirc-edit-multiline): Put multiline-edit buffer in
rcirc-multiline-major-mode along with rcirc-multiline-minor-mode.
(rcirc-print): Any line starting with an ignored nick will be
ignored.
(rcirc-print): Ignore any line starting with an ignored nick.
(rcirc-print): Decode using rcirc-decode-coding-system.
(rcirc-track-minor-mode): Update global-mode-string when disabling
this mode.
(minor-mode-alist): add LowPri indicator.
(minor-mode-alist): Add LowPri indicator.
(rcirc-toggle-low-priority): New function.
(rcirc-last-non-irc-buffer): Prefix arg now no means switch to
next lowpriority buffer with activity.
@ -95,8 +373,7 @@
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* pgg-gpg.el: Revert to revision 1.8 to allow the use of
gpg-agent.
* pgg-gpg.el: Revert to revision 1.8 to allow the use of gpg-agent.
2006-04-07 Nick Roberts <nickrob@snap.net.nz>
@ -109,21 +386,20 @@
* textmodes/paragraphs.el (sentence-end): Use string-or-null-p.
* textmodes/ispell.el (ispell-local-dictionary): Use
string-or-null-p.
* textmodes/ispell.el (ispell-local-dictionary): Use string-or-null-p.
* files.el: Update comment about safe-local-variable declarations.
2006-04-06 J.D. Smith <jdsmith@as.arizona.edu>
* progmodes/idlwave.el: Updated to IDLWAVE version 6.0. See
idlwave.org.
* progmodes/idlwave.el: Updated to IDLWAVE version 6.0.
See idlwave.org.
* progmodes/idlw-shell.el: Updated to IDLWAVE version 6.0. See
idlwave.org. Includes code to obsolete idlw-rinfo.el.
* progmodes/idlw-shell.el: Updated to IDLWAVE version 6.0.
See idlwave.org. Includes code to obsolete idlw-rinfo.el.
* progmodes/idlw-help.el: Updated to IDLWAVE version 6.0. See
idlwave.org.
* progmodes/idlw-help.el: Updated to IDLWAVE version 6.0.
See idlwave.org.
* progmodes/idlw-complete-structtag.el: Updated to IDLWAVE
version 6.0 (minimal changes). See idlwave.org.
@ -194,8 +470,8 @@
2006-04-05 Daiki Ueno <ueno@unixuser.org>
* pgg-gpg.el (pgg-gpg-encrypt-region, pgg-gpg-sign-region): Wait
for BEGIN_SIGNING too, new in GnuPG 1.4.3.
* pgg-gpg.el (pgg-gpg-encrypt-region, pgg-gpg-sign-region):
Wait for BEGIN_SIGNING too, new in GnuPG 1.4.3.
2006-04-05 Kenichi Handa <handa@m17n.org>
@ -208,8 +484,7 @@
default-enable-multibyte-characters. This reverts the change from
revision 6.17 which is no longer necessary because the passphrase
is sent separately now. GnuPG messages are unreadable under
multibyte locales with default-enable-multibyte-characters set to
nil.
multibyte locales with default-enable-multibyte-characters set to nil.
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
case the value of `allout-default-layout' is used.")
(make-variable-buffer-local 'allout-layout)
;;;###autoload
(put 'allout-layout 'safe-local-variable t)
;;;_ : 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: ")
(unless (string-match appt-time-regexp new-appt-time)
(error "Unacceptable time-string"))
(let* ((appt-time-string (concat new-appt-time " " new-appt-msg))
(appt-time (list (appt-convert-time new-appt-time)))
(time-msg (list appt-time appt-time-string t)))
(setq appt-time-msg-list (nconc appt-time-msg-list (list time-msg)))
(setq appt-time-msg-list (appt-sort-list appt-time-msg-list))))
(let ((time-msg (list (list (appt-convert-time new-appt-time))
(concat new-appt-time " " new-appt-msg) t)))
(unless (member time-msg appt-time-msg-list)
(setq appt-time-msg-list
(appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))
;;;###autoload
(defun appt-delete ()

View file

@ -786,7 +786,7 @@ when the action is chosen.")
(if (or (and (= 1 (length children))
(memq (widget-type (car children))
'(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)
(if (memq (widget-get widget :custom-state)
'(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"
"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
(defalias 'customize-changed 'customize-changed-options)
@ -1119,7 +1146,12 @@ that were added or redefined since that version."
(let (found)
(mapatoms
(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
(when (customize-version-lessp since-version version)
(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"
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)
;; Why are the versions strings, and given that they are, why aren't
;; 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.
: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.
Add SYMBOL to that group.
Add SYMBOL (or FACE with `defface') to that group.
:link LINK-DATA
Include an external link after the documentation string for this
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
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
VALUE should be a string specifying that the variable was
first introduced, or its default value was changed, in Emacs
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
Use LABEL, a string, instead of the item's name, to label the item
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
`defconst' behave similarly in this respect.)
Read the section about customization in the Emacs Lisp manual for more
information."
See Info node `(elisp) Customization' in the Emacs Lisp manual
for more information."
(declare (doc-string 3))
;; It is better not to use backquote in this file,
;; because that makes a bootstrapping problem
@ -314,10 +326,8 @@ The remaining arguments should have the form
[KEYWORD VALUE]...
The following KEYWORDs are defined:
:group VALUE should be a customization group.
Add FACE to that group.
For a list of valid keywords, see the common keywords listed in
`defcustom'.
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
information on exactly how testing is done.
Read the section about customization in the Emacs Lisp manual for more
information."
See Info node `(elisp) Customization' in the Emacs Lisp manual
for more information."
(declare (doc-string 3))
;; It is better not to use backquote in this file,
;; because that makes a bootstrapping problem
@ -426,16 +436,11 @@ The remaining arguments should have the form
[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 SYMBOL to that group.
: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."
See Info node `(elisp) Customization' in the Emacs Lisp manual
for more information."
(declare (doc-string 3))
;; It is better not to use backquote in this file,
;; 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))
((eq keyword :version)
(custom-add-version symbol value))
((eq keyword :package-version)
(custom-add-package-version symbol value))
((eq keyword :link)
(custom-add-link symbol value))
((eq keyword :load)
@ -540,6 +547,10 @@ For other custom types, this has no effect."
"To the custom option SYMBOL add the version 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)
"To the custom option SYMBOL add the dependency LOAD.
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.
(let ((buffer-file-name filename)
(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))
(normal-mode)
;; Arg of t means don't alter enable-local-variables.
(normal-mode t)
(setq filename buffer-file-name))
;; Set the default directory, in case an eval-when-compile uses it.
(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
))
;;;###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
;; Define edebug-gensym - from old cl.el

View file

@ -64,7 +64,7 @@
(concat
"^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-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\\)"
find-function-space-re
"\\('\\|\(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
(goto-char (point-min))
(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
(concat "^([^ ]+" find-function-space-re "['(]"
(concat "^([^ ]+" find-function-space-re "['(]?"
(regexp-quote (symbol-name symbol))
"\\_>")
nil t))

View file

@ -27,18 +27,56 @@
;;; Commentary:
;; manages receiving a stream asynchronously,
;; parsing it into transactions, and then calling
;; handler functions
;; This file manages receiving a stream asynchronously, parsing it
;; into transactions, and then calling the associated handler function
;; upon the completion of each transaction.
;; Our basic structure is the queue/process/buffer triple. Each entry
;; of the queue is a regexp/closure/function triple. We buffer
;; bytes from the process until we see the regexp at the head of the
;; queue. Then we call the function with the closure and the
;; collected bytes.
;; of the queue part is a list of question, regexp, closure, and
;; function that is consed to the last element.
;; 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:
;;; 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
(defun tq-create (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))
;;; accessors
(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)
(defun tq-queue-add (tq question re closure fn)
(setcar tq (nconc (tq-queue tq)
(cons (cons re (cons closure fn)) nil)))
(cons (cons question (cons re (cons closure fn))) nil)))
'ok)
(defun tq-queue-head-regexp (tq) (car (car (tq-queue tq))))
(defun tq-queue-head-fn (tq) (cdr (cdr (car (tq-queue tq)))))
(defun tq-queue-head-closure (tq) (car (cdr (car (tq-queue tq)))))
(defun tq-queue-empty (tq) (not (tq-queue tq)))
(defun tq-queue-pop (tq) (setcar tq (cdr (car tq))) (null (car tq)))
(defun tq-queue-pop (tq)
(setcar tq (cdr (car tq)))
(let ((question (tq-queue-head-question tq)))
(when question
(process-send-string (tq-process tq) question)))
(null (car tq)))
;;; must add to queue before sending!
(defun tq-enqueue (tq question regexp closure fn)
(defun tq-enqueue (tq question regexp closure fn &optional delay-question)
"Add a transaction to transaction queue TQ.
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;
that's how we tell where the answer ends."
(tq-queue-add tq regexp closure fn)
(process-send-string (tq-process tq) question))
that's how we tell where the answer ends.
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)
"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)))
(or (<= start end)
(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
(set-register ?0 cua--last-deleted-region-text))
(delete-region start end)
@ -858,7 +858,7 @@ If global mark is active, copy from register or one character."
(if regtxt
(cua--insert-at-global-mark regtxt)
(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))))
(buffer-read-only
(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))
(if (= paste-lines 1)
(setq paste-lines nil))) ;; paste all
(if (string= (buffer-substring (point) (mark))
(if (string= (filter-buffer-substring (point) (mark))
(car kill-ring))
(current-kill 1))
(cua-delete-region)))
@ -950,7 +950,7 @@ of text."
(setq s (car u) e (cdr u)))))))
(setq cua--repeat-replace-text
(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
"")
(t

View file

@ -143,7 +143,7 @@ With prefix argument, don't jump to global mark when cancelling it."
(let ((src-buf (current-buffer)))
(save-excursion
(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))
(insert text))
(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))
(< (marker-position cua--global-mark-marker) end))
(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))
(p2 (copy-marker end)))
(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))
(cua--rectangle-operation nil nil nil nil nil ; do not tabify
'(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
'(lambda (s e l r v)
(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))
e (point)))
(setq row (if (and copy (> e s))
(buffer-substring-no-properties s e)
(filter-buffer-substring s e nil t)
""))
(when (> bs 0)
(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)
(cond
((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))
(fmt (format "0x%%0%dx" (length txt))))
(replace-match (format fmt (+ n increment)))))
((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" ""))
(n (string-to-number txt 10))
(fmt (format "%%%s%dd" prefix (length txt))))
@ -1213,7 +1213,7 @@ The numbers are formatted according to the FORMAT string."
(when replace
(goto-char (point-min))
(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))))
(if (not cua--debug)
(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>
* 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")
coding-system)))
(defcustom erc-server-connect-function
(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)
(defcustom erc-server-connect-function 'open-network-stream
"Function used to initiate a connection.
It should take same arguments as `open-network-stream' does."
:group 'erc-server
@ -762,10 +756,10 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
(substring string 1 posn)))
(setf (erc-response.command msg)
(let* ((bposn (string-match "[^ ]" string posn))
(let* ((bposn (string-match "[^ \n]" string posn))
(eposn (string-match " " string bposn)))
(setq posn (and eposn
(string-match "[^ ]" string eposn)))
(string-match "[^ \n]" string eposn)))
(substring string bposn eposn)))
(while (and posn
@ -773,7 +767,7 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
(push (let* ((bposn posn)
(eposn (string-match " " string bposn)))
(setq posn (and eposn
(string-match "[^ ]" string eposn)))
(string-match "[^ \n]" string eposn)))
(substring string bposn eposn))
(erc-response.command-args msg)))
(when posn

View file

@ -139,7 +139,7 @@ in the alist is `nil', prompt for the appropriate values."
(defun erc-ezb-add-session (message)
"Add an EZBounce session to the session list."
(when (and erc-ezb-inside-session-listing
(string-match "^\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\)$" message))
(string-match "^\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\) +\\([^ \n]+\\)$" message))
(let ((id (match-string 1 message))
(nick (match-string 2 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))))
(when (erc-current-nick-p nick)
(when (and erc-autojoin-domain-only
(string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server))
(string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
(setq server (match-string 1 server)))
(let ((elem (assoc server erc-autojoin-channels-alist)))
(if elem
@ -115,7 +115,7 @@ servers, presumably in the same domain."
(or erc-server-announced-name erc-session-server))))
(when (erc-current-nick-p nick)
(when (and erc-autojoin-domain-only
(string-match "[^.]+\\.\\([^.]+\\.[^.]+\\)$" server))
(string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" server))
(setq server (match-string 1 server)))
(let ((elem (assoc server erc-autojoin-channels-alist)))
(when elem

View file

@ -64,7 +64,8 @@ sever buffer."
:group 'erc-netsplit
:type 'boolean)
(defcustom erc-netsplit-regexp "^[^ @!\"]+\\.[^ @!]+ [^ @!]+\\.[^ @!\"]+$"
(defcustom erc-netsplit-regexp
"^[^ @!\"\n]+\\.[^ @!\n]+ [^ @!\n]+\\.[^ @!\"\n]+$"
"This regular expression should match quit reasons produced
by netsplits."
:group 'erc-netsplit
@ -131,7 +132,7 @@ join from that split has been detected or not.")
(defun erc-netsplit-MODE (proc parsed)
"Hide mode changes from servers."
;; 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
(erc-display-message
parsed 'notice (process-buffer proc)

View file

@ -3132,7 +3132,7 @@ the message given by REASON."
(defun erc-cmd-SV ()
"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
(if (featurep 'xemacs) "XEmacs" "GNU Emacs")
emacs-version
@ -3155,7 +3155,7 @@ the message given by REASON."
x-toolkit-scroll-bars)))
"")
(if (featurep 'multi-tty) ", multi-tty" ""))
(concat ", built " erc-emacs-build-time)))
erc-emacs-build-time))
t)
(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."
(interactive
(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)
(set-buffer (process-buffer erc-server-process))
erc-channel-list)))
@ -4734,12 +4734,12 @@ EmacsSpeak support."
Return a list of the three separate tokens."
(cond
((string-match "^\\([^!]*\\)!\\([^@]*\\)@\\(.*\\)$" string)
((string-match "^\\([^!\n]*\\)!\\([^@\n]*\\)@\\(.*\\)$" string)
(list (match-string 1 string)
(match-string 2 string)
(match-string 3 string)))
;; Some bogus bouncers send Nick!(null), try to live with that.
((string-match "^\\([^!]*\\)!\\(.*\\)$" string)
((string-match "^\\([^!\n]*\\)!\\(.*\\)$" string)
(list (match-string 1 string)
""
(match-string 2 string)))
@ -5053,7 +5053,7 @@ user matches any regexp in `erc-ignore-reply-list'."
"Return the addressed target 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)
nil))

View file

@ -444,14 +444,19 @@ use `before-save-hook'.")
(defcustom enable-local-variables t
"*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
if all the specified variable values are safe; if any values are
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.
\(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
a -*- line.
@ -460,6 +465,7 @@ The command \\[normal-mode], when used interactively,
always obeys file local variable specifications and the -*- line,
and ignores this variable."
:type '(choice (const :tag "Obey" t)
(const :tag "Safe Only" :safe)
(const :tag "Ignore" nil)
(other :tag "Query" other))
: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,
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;
if it is nil, we don't; otherwise, we query.
depending on the value of `enable-local-variables'.
In addition, if `local-enable-local-variables' is nil, we do
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")))
(goto-char (point-min))
(let ((inhibit-quit t)
(cursor-in-echo-area t)
(let ((cursor-in-echo-area t)
(exit-chars
(if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
done)
@ -2426,9 +2430,7 @@ n -- to ignore the local variables list.")
(condition-case nil
(scroll-up)
(error (goto-char (point-min))))
(setq done (memq (downcase char) exit-chars)))))
(if (= char ?\C-g)
(setq quit-flag nil)))
(setq done (memq (downcase char) exit-chars))))))
(setq char (downcase char))
(when (and offer-save (= char ?!) 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)
(push elt risky-vars))
(push elt unsafe-vars))))
(if (or (and (eq enable-local-variables t)
(null unsafe-vars)
(null risky-vars))
(hack-local-variables-confirm
result unsafe-vars risky-vars))
(if (eq enable-local-variables :safe)
;; If caller wants only the safe variables,
;; install only them.
(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))))))
(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)
(hack-one-local-variable-quotep (nth 1 exp))
(hack-one-local-variable-quotep (nth 2 exp))
(memq (nth 1 (nth 2 exp))
'(lisp-indent-hook))
;; Only allow safe values of lisp-indent-hook;
;; not functions.
(or (numberp (nth 3 exp))
(equal (nth 3 exp) ''defun)))
(let ((prop (nth 1 (nth 2 exp))) (val (nth 3 exp)))
(cond ((eq prop 'lisp-indent-hook)
;; Only allow safe values of lisp-indent-hook;
;; not functions.
(or (numberp val) (equal val ''defun)))
((eq prop 'edebug-form-spec)
;; Only allow indirect form specs.
(edebug-basic-spec val)))))
;; Allow expressions that the user requested.
(member exp safe-local-eval-forms)
;; 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 "\C-m" 'finder-select)
(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 "d" 'finder-list-keywords)
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>
* 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))
(goto-char (point-min))
;; Remove space stuffing.
(while (re-search-forward "^ " nil t)
(while (re-search-forward "^\\( \\|>+ $\\)" nil t)
(delete-char -1)
(forward-line 1))
(goto-char (point-min))

View file

@ -3809,6 +3809,7 @@ commands:
(make-local-variable 'gnus-article-ignored-charsets)
;; Prevent recent Emacsen from displaying non-break space as "\ ".
(set (make-local-variable 'nobreak-char-display) nil)
(setq cursor-in-non-selected-windows nil)
(gnus-set-default-directory)
(buffer-disable-undo)
(setq buffer-read-only t)
@ -4477,19 +4478,29 @@ are decompressed."
specified charset."
(interactive (list nil current-prefix-arg))
(gnus-article-check-buffer)
(let* ((handle (or handle (get-text-property (point) 'gnus-data)))
contents charset
(b (point))
(inhibit-read-only t))
(let ((handle (or handle (get-text-property (point) 'gnus-data)))
(fun (get-text-property (point) 'gnus-callback))
(gnus-newsgroup-ignored-charsets 'gnus-all)
gnus-newsgroup-charset type charset)
(when handle
(if (mm-handle-undisplayer handle)
(mm-remove-part handle))
(let ((gnus-newsgroup-charset
(or (cdr (assq arg
gnus-summary-show-article-charset-alist))
(mm-read-coding-system "Charset: ")))
(gnus-newsgroup-ignored-charsets 'gnus-all))
(gnus-article-press-button)))))
(when fun
(setq gnus-newsgroup-charset
(or (cdr (assq arg gnus-summary-show-article-charset-alist))
(mm-read-coding-system "Charset: ")))
;; Strip the charset parameter from `handle'.
(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)
"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>
(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."
:version "22.1"
: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)
(goto-char (point-min))
(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
gnus-sieve-region-end) nil t)
(point)))

View file

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

View file

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

View file

@ -2749,7 +2749,8 @@ prefix FORCE is given."
(message-carefully-insert-headers headers)))
(defcustom message-header-synonyms
'((To Cc Bcc))
'((To Cc Bcc)
(Original-To))
"List of lists of header synonyms.
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

View file

@ -672,7 +672,14 @@ external if displayed external."
(mailcap-parse-mailcaps)
(if (mm-handle-displayed-p 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))
(filename (or (mail-content-type-get
(mm-handle-disposition handle) 'filename)
@ -680,8 +687,8 @@ external if displayed external."
(mm-handle-type handle) 'name)
"<file>"))
(external mm-enable-external))
(if (and (mm-inlinable-p handle)
(mm-inlined-p handle))
(if (and (mm-inlinable-p ehandle)
(mm-inlined-p ehandle))
(progn
(forward-line 1)
(mm-display-inline handle)
@ -689,7 +696,7 @@ external if displayed external."
(when (or method
(not no-default))
(if (and (not method)
(equal "text" (car (split-string type))))
(equal "text" (car (split-string type "/"))))
(progn
(forward-line 1)
(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-restriction
(narrow-to-region (point) (point))
(let* ((type (regexp-quote
(mm-handle-media-type (mm-handle-cache handle))))
;; Force the part to be displayed (but if there is no
;; method to display, a user will be prompted to save).
;; See `gnus-mime-display-single'.
(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)))))
(mm-display-part (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)

View file

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

View file

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

View file

@ -38,7 +38,7 @@
;; grouping.
;;
;; -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.
;;; Code:
@ -62,7 +62,7 @@ and \"-de\" when dehexlifying a buffer."
:group 'hexl)
(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 \"\"."
:type 'string
:group 'hexl)
@ -229,7 +229,7 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
original-point))
(or (bolp) (setq original-point (1- original-point))))
(hexlify-buffer)
(set-buffer-modified-p modified))
(restore-buffer-modified-p modified))
(make-local-variable 'hexl-max-address)
(setq hexl-max-address max-address)
(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)
(funcall
(if isearch-forward 're-search-forward 're-search-backward)
(if (> (length string) 80)
(regexp-quote string)
(mapconcat 'string string "\\(?:\n\\(?:[:a-f0-9]+ \\)+ \\)?"))
(let ((textre
(if (> (length string) 80)
(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))
(let ((isearch-search-fun-function nil))
(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."
(interactive)
(if hexl-in-save-buffer nil
(set-buffer-modified-p (if (buffer-modified-p)
(save-excursion
(let ((buf (generate-new-buffer " hexl"))
(name (buffer-name))
(file-name (buffer-file-name))
(start (point-min))
(end (point-max))
modified)
(set-buffer buf)
(insert-buffer-substring name start end)
(set-buffer name)
(dehexlify-buffer)
;; Prevent infinite recursion.
(let ((hexl-in-save-buffer t))
(save-buffer))
(setq modified (buffer-modified-p))
(delete-region (point-min) (point-max))
(insert-buffer-substring buf start end)
(kill-buffer buf)
modified))
(message "(No changes need to be saved)")
nil))
(restore-buffer-modified-p
(if (buffer-modified-p)
(let ((buf (generate-new-buffer " hexl"))
(name (buffer-name))
(start (point-min))
(end (point-max))
modified)
(with-current-buffer buf
(insert-buffer-substring name start end)
(set-buffer name)
(dehexlify-buffer)
;; Prevent infinite recursion.
(let ((hexl-in-save-buffer t))
(save-buffer))
(setq modified (buffer-modified-p))
(delete-region (point-min) (point-max))
(insert-buffer-substring buf start end)
(kill-buffer buf)
modified))
(message "(No changes need to be saved)")
nil))
;; Return t to indicate we have saved t
t))
;;;###autoload
(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."
(interactive
(list
@ -367,7 +373,7 @@ With arg, don't unhexlify buffer."
(original-point (1+ (hexl-current-address))))
(dehexlify-buffer)
(remove-hook 'write-contents-functions 'hexl-save-buffer t)
(set-buffer-modified-p modified)
(restore-buffer-modified-p modified)
(goto-char original-point)
;; Maybe adjust point for the removed CR characters.
(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))))
(dehexlify-buffer)
(remove-hook 'write-contents-functions 'hexl-save-buffer t)
(set-buffer-modified-p modified)
(restore-buffer-modified-p modified)
(goto-char original-point))))
(defun hexl-current-address (&optional validate)
@ -917,14 +923,14 @@ Customize the variable `hexl-follow-ascii' to disable this feature."
)))))
(defun hexl-activate-ruler ()
"Activate `ruler-mode'"
"Activate `ruler-mode'."
(require 'ruler-mode)
(set (make-local-variable 'ruler-mode-ruler-function)
'hexl-mode-ruler)
(ruler-mode 1))
(defun hexl-follow-line ()
"Activate `hl-line-mode'"
"Activate `hl-line-mode'."
(require 'frame)
(require 'hl-line)
(with-no-warnings
@ -1071,5 +1077,5 @@ This function is assumed to be used as call back function for `hl-line-mode'."
(provide 'hexl)
;;; arch-tag: d5a7aa8a-9bce-480b-bcff-6c4c7ca5ea4a
;; arch-tag: d5a7aa8a-9bce-480b-bcff-6c4c7ca5ea4a
;;; 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
;; buffer-file-coding-system, preserve it in the coding system
;; 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
coding-system default-eol-type)))

View file

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

View file

@ -623,7 +623,9 @@ the variable `rmail-mime-feature'.")
;;;###autoload
(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.
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>
* 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))))
;; 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
(defmacro mh-defstruct (name-spec &rest fields)

View file

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

View file

@ -40,7 +40,7 @@
;; versions of Gnus.
;; Items are listed alphabetically (except for mh-require which is
;; needed by a lesser character).
;; needed sooner it would normally appear).
(require 'mh-acros)
@ -115,6 +115,11 @@ introduced in Emacs 22."
`(face-background ,face ,frame)
`(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
image-load-path-for-library (library image &optional path no-error)
"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))
;; Shush compiler.
(eval-when-compile
(defvar desktop-save-buffer)
(defvar font-lock-auto-fontify)
(defvar image-load-path)
(mh-do-in-xemacs (defvar font-lock-defaults)))
(defvar desktop-save-buffer)
(defvar font-lock-auto-fontify)
(defvar image-load-path)
(defvar font-lock-defaults) ; XEmacs
(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)))
;; Shush compiler.
(eval-when-compile (defvar view-exit-action))
(defvar view-exit-action)
;;;###mh-autoload
(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)
;; Shush compiler.
(eval-when-compile
(defvar image-load-path)
(mh-do-in-xemacs (defvar font-lock-defaults)))
(defvar image-load-path)
(defvar font-lock-defaults) ; XEmacs
;; Ensure new buffers won't get this mode if default-major-mode is nil.
(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
;; 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)
"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))))
;; Shush compiler.
(eval-when-compile
(when (< emacs-major-version 22)
(defvar mm-verify-function-alist)
(defvar mm-decrypt-function-alist))
(mh-do-in-xemacs
(defvar pressed-details)))
(defvar mm-verify-function-alist) ; < Emacs 22
(defvar mm-decrypt-function-alist) ; < Emacs 22
(defvar pressed-details) ; XEmacs
(defun mh-insert-mime-security-button (handle)
"Display buttons for PGP message, HANDLE."
@ -1537,7 +1536,7 @@ a prefix argument NOCONFIRM."
(after-find-file nil)))
;; Shush compiler.
(eval-when-compile (defvar mh-identity-pgg-default-user-id))
(defvar mh-identity-pgg-default-user-id)
;;;###mh-autoload
(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)))))))
;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar pick-folder)))
(defvar pick-folder) ; XEmacs
(defun mh-search-folder (folder window-config)
"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))
;; Shush compiler.
(eval-when-compile
(mh-do-in-xemacs
(defvar mh-mairix-folder)
(defvar mh-flists-search-folders)))
(defvar mh-mairix-folder) ; XEmacs
(defvar mh-flists-search-folders) ; XEmacs
;;;###mh-autoload
(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)
;; Shush compiler.
(eval-when-compile
(if (or mh-xemacs-flag (< emacs-major-version 22))
(defvar which-func-mode)))
(defvar which-func-mode) ; < Emacs 22, XEmacs
;;;###mh-autoload
(defun mh-index-create-imenu-index ()
@ -1441,7 +1437,7 @@ being the list of messages originally from that folder."
mh-index-data)
;; Shush compiler
(eval-when-compile (if mh-xemacs-flag (defvar mh-speed-flists-inhibit-flag)))
(defvar mh-speed-flists-inhibit-flag) ; XEmacs
;;;###mh-autoload
(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))))
;; Shush compiler.
(eval-when-compile (defvar view-exit-action))
(defvar view-exit-action)
;;;###mh-autoload
(defun mh-list-sequences ()
@ -202,7 +202,7 @@ MESSAGE appears."
" "))))
;; Shush compiler.
(eval-when-compile (mh-do-in-xemacs (defvar tool-bar-mode)))
(defvar tool-bar-mode) ; XEmacs
;;;###mh-autoload
(defun mh-narrow-to-seq (sequence)

View file

@ -815,7 +815,7 @@ operation."
(put 'mh-show-mode 'mode-class 'special)
;; Shush compiler.
(eval-when-compile (defvar font-lock-auto-fontify))
(defvar font-lock-auto-fontify)
;;;###mh-autoload
(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)
;; Shush compiler.
(eval-when-compile (defvar mh-speed-flists-cache))
(defvar mh-speed-flists-cache)
(defvar mh-allow-root-folder-flag nil
"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))))))))
;; Shush compiler.
(eval-when-compile
(mh-do-in-xemacs
(defvar completion-root-regexp)
(defvar minibuffer-completing-file-name)))
(defvar completion-root-regexp) ; XEmacs
(defvar minibuffer-completing-file-name) ; XEmacs
(defun mh-folder-completing-read (prompt default allow-root-folder-flag)
"Read folder name with PROMPT and default result DEFAULT.

View file

@ -60,8 +60,7 @@
(funcall mh-show-xface-function)))
;; Shush compiler.
(eval-when-compile
(mh-do-in-xemacs (defvar default-enable-multibyte-characters)))
(defvar default-enable-multibyte-characters) ; XEmacs
(defun mh-face-display-function ()
"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.
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)
"Like `shell-command' for tramp files.
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 "^ ")
(setq status (read (current-buffer)))))
(unless (zerop (buffer-size))
(display-buffer output-buffer))
(when tramp-display-shell-command-buffer
(display-buffer output-buffer)))
status))
;; The following is only executed if something strange was
;; 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))
(error "Implementation does not handle immediate return"))
(when (consp buffer) (error "Implementation does not handle error files"))
(shell-command
(mapconcat 'tramp-shell-quote-argument
(cons program args)
" ")
buffer))
(let ((tramp-display-shell-command-buffer display))
(shell-command
(mapconcat 'tramp-shell-quote-argument (cons program args) " ")
buffer)))
;; File Editing.

View file

@ -895,6 +895,11 @@ indentation to be kept as it was before narrowing."
(delete-char 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
&optional ccs cce block lines indent)
"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)
(let* ((numarg (prefix-numeric-value arg))
(add comment-add)
(style (cdr (assoc comment-style comment-styles)))
(lines (nth 2 style))
(block (nth 1 style))
@ -1032,8 +1036,7 @@ The strings used as comment starts are built from
((consp arg) (uncomment-region beg end))
((< numarg 0) (uncomment-region beg end (- numarg)))
(t
(setq numarg (if (and (null arg) (= (length comment-start) 1))
add (1- numarg)))
(setq numarg (comment-add arg))
(comment-region-internal
beg end
(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
;; specified, calling comment-kill is not very clever.
(if arg (comment-kill (and (integerp arg) arg)) (comment-indent))
(let ((add (if arg (prefix-numeric-value arg)
(if (= (length comment-start) 1) comment-add 0))))
;; Some modes insist on keeping column 0 comment in column 0
(let ((add (comment-add arg)))
;; Some modes insist on keeping column 0 comment in column 0
;; so we need to move away from it before inserting the comment.
(indent-according-to-mode)
(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
;; branches, or because it's been removed).
(if (ignore-errors
(with-current-buffer
(find-file-noselect (expand-file-name
(with-temp-buffer
(insert-file-contents (expand-file-name
".cvsignore" (file-name-directory dir)))
(goto-char (point-min))
(re-search-forward

View file

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

View file

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

View file

@ -417,7 +417,8 @@ With arg, use separate IO iff arg is positive."
(goto-char (point-min))
(when (search-forward "read in on demand:" 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))
(with-current-buffer buffer
(when (and buffer-file-name
@ -524,6 +525,7 @@ With arg, use separate IO iff arg is positive."
gdb-frame-number nil
gdb-var-list nil
gdb-force-update t
gdb-main-file nil
gdb-first-post-prompt t
gdb-prompting nil
gdb-input-queue nil
@ -580,8 +582,7 @@ With arg, use separate IO iff arg is positive."
(defun gdb-get-version ()
(goto-char (point-min))
(if (and (re-search-forward gdb-error-regexp nil t)
(string-match ".*(missing implementation)" (match-string 1)))
(if (re-search-forward "Undefined\\( mi\\)* command:" nil t)
(setq gdb-version "pre-6.4")
(setq gdb-version "6.4+"))
(gdb-init-2))
@ -2746,7 +2747,11 @@ corresponding to the mode line clicked."
(switch-to-buffer
(if 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
(split-window-horizontally)
(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)
(setq gdb-frame-number (match-string 1)))
(goto-char (point-min))
(if (re-search-forward
".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-*?\\) (\\(\\S-*?\\):[0-9]+?);? "
nil t)
(progn
(setq gdb-selected-frame (match-string 2))
(if (gdb-get-buffer 'gdb-locals-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
(setq mode-name (concat "Locals:" gdb-selected-frame))))
(if (gdb-get-buffer 'gdb-assembler-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
(setq mode-name (concat "Machine:" gdb-selected-frame))))
(setq gdb-frame-address (match-string 1))))
(if gud-overlay-arrow-position
(when (re-search-forward ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(\\S-+?\\)\
\\(?: (\\(\\S-+?\\):[0-9]+?)\\)*;? "
nil t)
(setq gdb-selected-frame (match-string 2))
(if (gdb-get-buffer 'gdb-locals-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-locals-buffer)
(setq mode-name (concat "Locals:" gdb-selected-frame))))
(if (gdb-get-buffer 'gdb-assembler-buffer)
(with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer)
(setq mode-name (concat "Machine:" gdb-selected-frame))))
(setq gdb-frame-address (match-string 1))
(if (and (match-string 3) gud-overlay-arrow-position)
(let ((buffer (marker-buffer gud-overlay-arrow-position))
(position (marker-position gud-overlay-arrow-position)))
(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")
nil
'((overlay-arrow . hollow-right-triangle))))
(set-marker gud-overlay-arrow-position position)))))
(set-marker gud-overlay-arrow-position position))))))
(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)))
(gdb-invalidate-assembler))
@ -3281,11 +3285,12 @@ in_scope=\"\\(.*?\\)\".*?}")
gdb-pending-triggers))
(goto-char (point-min))
(if (re-search-forward gdb-error-regexp nil t)
(with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
(let ((buffer-read-only nil))
(erase-buffer)
(insert (match-string 1))
(goto-char (point-min))))
(let ((err (match-string 1)))
(with-current-buffer (gdb-get-buffer 'gdb-registers-buffer)
(let ((buffer-read-only nil))
(erase-buffer)
(insert err)
(goto-char (point-min)))))
(let ((register-list (reverse gdb-register-names))
(register nil) (register-string nil) (register-values nil))
(goto-char (point-min))

View file

@ -721,7 +721,10 @@ changed by, or (parse-state) if line starts in a quoted string."
(save-excursion
(forward-char 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) ?{)
(save-excursion (forward-char) (perl-hanging-paren-p)))
(+ (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.")
(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.
The buffer substring is passed through each of the filter
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
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
`buffer-substring-filters', in case the functions need to know
where the text came from.
This function should be used instead of `buffer-substring' or
`delete-and-extract-region' when you want to allow filtering to
take place. For example, major or minor modes can use
`buffer-substring-filters' to extract characters that are special
to a buffer, and should not be copied into other buffers."
(save-excursion
(goto-char beg)
(let ((string (if delete (delete-and-extract-region beg end)
(buffer-substring beg end))))
(dolist (filter buffer-substring-filters string)
(setq string (funcall filter string))))))
This function should be used instead of `buffer-substring',
`buffer-substring-no-properties', or `delete-and-extract-region'
when you want to allow filtering to take place. For example,
major or minor modes can use `buffer-substring-filters' to
extract characters that are special to a buffer, and should not
be copied into other buffers."
(cond
((or delete buffer-substring-filters)
(save-excursion
(goto-char beg)
(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.
@ -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."
(interactive "p")
(or arg (setq arg 1))
(let ((orig (point)))
;; 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.
(set-buffer-modified-p nil)
(goto-char (point-min))
(save-window-excursion
(condition-case nil
(switch-to-buffer (current-buffer))
;; In case we're in a dedicated or minibuffer-only window.
(error
;; There's no point is using pop-to-buffer since creating
;; a new frame will generate enough events that the
;; subsequent `sit-for' will immediately return anyway.
;; (pop-to-buffer (current-buffer))
))
(sit-for 120)))
(if (or (window-minibuffer-p)
(window-dedicated-p (selected-window)))
;; There's no point is using pop-to-buffer since creating
;; a new frame will generate enough events that the
;; subsequent `sit-for' will immediately return anyway.
nil ;; (pop-to-buffer (current-buffer))
(save-window-excursion
(switch-to-buffer (current-buffer))
(sit-for 120))))
;; Unwind ... ensure splash buffer is killed
(kill-buffer "GNU Emacs"))))

View file

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

View file

@ -2856,25 +2856,45 @@ is non-nil."
(bibtex-autofill-entry))
(run-hooks 'bibtex-add-entry-hook)))
(defun bibtex-entry-update ()
(defun bibtex-entry-update (&optional entry-type)
"Update an existing BibTeX entry.
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."
(interactive)
according to `bibtex-field-list', but are not yet present.
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
(bibtex-beginning-of-entry)
;; For inserting new fields, we use the fact that
;; `bibtex-parse-entry' moves point to the end of the last field.
(let* ((fields-alist (bibtex-parse-entry))
(field-list (bibtex-field-list
(cdr (assoc "=type=" fields-alist)))))
(skip-chars-backward " \t\n")
(dolist (field (car field-list))
(unless (assoc-string (car field) fields-alist t)
(bibtex-make-field field)))
(dolist (field (cdr field-list))
(unless (assoc-string (car field) fields-alist t)
(bibtex-make-optional-field field))))))
(when (looking-at bibtex-entry-maybe-empty-head)
(goto-char (match-end 0))
(if entry-type
(save-excursion
(replace-match (concat "@" entry-type) nil nil nil 1))
(setq entry-type (bibtex-type-in-head)))
(let* ((field-list (bibtex-field-list entry-type))
(required (copy-tree (car field-list)))
(optional (copy-tree (cdr field-list)))
bounds)
(while (setq bounds (bibtex-parse-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)
"Parse entry at point, return an alist.
@ -3613,17 +3633,20 @@ interactive calls."
(defun bibtex-find-text-internal (&optional noerror subfield comma)
"Find text part of current BibTeX field or entry head.
Return list (NAME START-TEXT END-TEXT END) with field or entry name,
start and end of text and end of field or entry head, or nil if 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 #.
Return list (NAME START-TEXT END-TEXT END STRING-CONST) with field
or entry name, start and end of text, and end of field or entry head.
STRING-CONST is a flag which is non-nil if current subfield delimited by #
is a BibTeX string constant. Return value is nil if field or entry head
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'."
(save-excursion
(let ((pnt (point))
(bounds (bibtex-enclosing-field comma 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)
(cond (bounds
(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)
(while (not done)
(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))
(setq end-text (cdr bounds))))
(setq end-text (cdr bounds)
string-const nil)))
(progn
(if (and (<= start-text pnt) (<= pnt end-text))
(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 done t failure t)))))
(cond ((not failure)
(list name start-text end-text end))
(list name start-text end-text end string-const))
((and no-sub (not noerror))
(error "Not on text part of 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
interactive calls."
(interactive (list t))
(let* ((bounds (bibtex-find-text-internal nil t comma))
(start (nth 1 bounds))
(end (nth 2 bounds)))
(if (memq (char-before end) '(?\} ?\"))
(delete-region (1- end) end))
(if (memq (char-after start) '(?\{ ?\"))
(delete-region start (1+ start)))))
(let ((bounds (bibtex-find-text-internal nil t comma)))
(unless (nth 4 bounds)
(delete-region (1- (nth 2 bounds)) (nth 2 bounds))
(delete-region (nth 1 bounds) (1+ (nth 1 bounds))))))
(defun bibtex-kill-field (&optional copy-only comma)
"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)
"Undo `picture-mode' and return to previous major mode.
With no argument strips whitespace from end of every line in Picture buffer
otherwise just return to previous mode."
With no argument, strip whitespace from end of every line in Picture buffer;
otherwise, just return to previous mode.
Runs `picture-mode-exit-hook' at the end."
(interactive "P")
(if (not (eq major-mode 'picture-mode))
(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)
(kill-local-variable 'tab-stop-list)
(setq truncate-lines picture-mode-old-truncate-lines)
(force-mode-line-update)))
(force-mode-line-update)
(run-hooks 'picture-mode-exit-hook)))
(provide 'picture)

View file

@ -5,7 +5,7 @@
;; 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>
;; Keywords: tools
@ -93,6 +93,7 @@ historical default."
:type 'string
:group 'time-stamp
:version "20.1")
;;;###autoload(put 'time-stamp-format 'safe-local-variable 'stringp)
(defcustom time-stamp-active t
"*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
application, do so in the local variables section of the time-stamped file
itself.")
;;;###autoload(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
(defvar time-stamp-start "Time-stamp:[ \t]+\\\\?[\"<]+" ;Do not change!
"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
application, do so in the local variables section of the time-stamped file
itself.")
;;;###autoload(put 'time-stamp-start 'safe-local-variable t)
(defvar time-stamp-end "\\\\?[\">]" ;Do not change!
"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
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.")
;;;###autoload(put 'time-stamp-end 'safe-local-variable t)
(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!
If you must change them for some application, do so in the local
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!
@ -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
some application, do so in the local variables section of the
time-stamped file itself.")
;;;###autoload(put 'time-stamp-count 'safe-local-variable 'integerp)
(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
some application, do so only in the local variables section of the
time-stamped file itself.")
;;;###autoload(put 'time-stamp-pattern 'safe-local-variable 'stringp)

View file

@ -584,9 +584,9 @@ See `run-hooks'."
:group 'vc
: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."
:type '(choice (const :tag "Default" nil)
:type '(choice (const :tag "By Color Map Range" nil)
(const :tag "Scale to Oldest" scale)
(const :tag "Scale Oldest->Newest" fullscale)
(number :tag "Specify Fractional Number of Days"
@ -617,30 +617,64 @@ version control backend imposes itself."
;; Annotate customization
(defcustom vc-annotate-color-map
'(( 20. . "#FFCC00")
( 40. . "#FF6666")
( 60. . "#FF6600")
( 80. . "#FF3300")
(100. . "#FF00FF")
(120. . "#FF0000")
(140. . "#CCCC00")
(160. . "#CC00CC")
(180. . "#BC8F8F")
(200. . "#99CC00")
(220. . "#999900")
(240. . "#7AC5CD")
(260. . "#66CC00")
(280. . "#33CC33")
(300. . "#00CCFF")
(320. . "#00CC99")
(340. . "#0099FF"))
(if (and (tty-display-color-p) (<= (display-color-cells) 8))
;; A custom sorted TTY colormap
(let* ((colors
(sort
(delq nil
(mapcar (lambda (x)
(if (not (or
(string-equal (car x) "white")
(string-equal (car x) "black") ))
(car x)))
(tty-color-alist)))
(lambda (a b)
(cond
((or (string-equal a "red") (string-equal b "blue")) t)
((or (string-equal b "red") (string-equal a "blue")) nil)
((string-equal a "yellow") t)
((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].
Ages are given in units of fractional days. Default is eighteen steps
using a twenty day increment."
Ages are given in units of fractional days. Default is eighteen
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
: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]]."
:type 'string
:group 'vc)
@ -852,7 +886,7 @@ However, before executing BODY, find FILE, and after BODY, save buffer."
(if vc-dired-mode
(set-buffer (find-file-noselect (dired-get-filename)))
(while vc-parent-buffer
(pop-to-buffer vc-parent-buffer))
(set-buffer vc-parent-buffer))
(if (not buffer-file-name)
(error "Buffer %s is not associated with a file" (buffer-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
"VC Annotate Display Menu"
`("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)
(vc-annotate-display-select))
: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."
(interactive)
(if mode (setq vc-annotate-display-mode mode))
(when buffer
(set-buffer buffer)
(display-buffer buffer))
(if (not vc-annotate-parent-rev)
(vc-annotate-mode))
(pop-to-buffer (or buffer (current-buffer)))
(cond ((null vc-annotate-display-mode)
;; The ratio is global, thus relative to the global 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)
(setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef
(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...")
;; If BUF is specified it tells in which buffer we should put the
;; 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.
(setq temp-buffer-name (buffer-name))))
(with-output-to-temp-buffer temp-buffer-name
(vc-call annotate-command file (get-buffer temp-buffer-name) rev))
(with-current-buffer temp-buffer-name
(set (make-local-variable 'vc-annotate-backend) (vc-backend file))
(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))
(message "Annotating... done")))
(vc-call annotate-command file (get-buffer temp-buffer-name) rev)
;; we must setup the mode first, and then set our local
;; variables before the show-function is called at the exit of
;; with-output-to-temp-buffer
(with-current-buffer temp-buffer-name
(if (not (equal major-mode 'vc-annotate-mode))
(vc-annotate-mode))
(set (make-local-variable 'vc-annotate-backend) (vc-backend file))
(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)
"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."
(if (not (equal major-mode 'vc-annotate-mode))
(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)
(newrev nil))
(cond
@ -3218,10 +3259,10 @@ revision."
(when newrev
(vc-annotate vc-annotate-parent-file newrev
vc-annotate-parent-display-mode
(current-buffer))
buf)
(goto-line (min oldline (progn (goto-char (point-max))
(previous-line)
(line-number-at-pos))))))))
(line-number-at-pos))) buf)))))
(defun vc-annotate-compcar (threshold a-list)
"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)
(cons nil vc-annotate-very-old-color)))
;; 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.
(face (or (intern-soft 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>
* 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
version @var{version}, or that its default value was changed in that
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
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
@section Defining Custom Groups

View file

@ -404,8 +404,9 @@ remaining command-line arguments in the variable
arguments is in @code{command-line-args}.)
The command-line arguments are parsed by the @code{command-line-1}
function in the @file{startup.el} file. See also @ref{Command
Arguments, , Command Line Arguments, emacs, The GNU Emacs Manual}.
function in the @file{startup.el} file. See also @ref{Emacs
Invocation, , Command Line Arguments for Emacs Invocation, emacs, The
GNU Emacs Manual}.
@end defvar
@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.
@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
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
@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.
@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}.
@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}
through the filter functions specified by the variable
@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
@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
data structures such as the kill-ring, X clipboard, and registers.
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>
* makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with

View file

@ -906,7 +906,7 @@ Boston, MA 02110-1301, USA. */
/* #undef mbstate_t */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */
#define pid_t int
/* Define to any substitute for 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>
* 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
compilation command synchronously on MS-DOS. As a consequence, you must
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
@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.
@item SMTPSERVER
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}
@item TERM
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
way Emacs processes local variables. Its default value is @code{t},
which specifies the behavior described above. If it is @code{nil},
Emacs simply ignores all file local variables. Any other value says
to query you about each file that has local variables, without trying
to determine whether the values are known to be safe.
Emacs simply ignores all file local variables. @code{:safe} means use
only the safe values and ignore the rest. Any other value says to
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
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.
@end titlepage
@page
@summarycontents
@contents
@ifnottex
@node Top, Distrib, (dir), (dir)
@top The Emacs Editor
@ -122,7 +127,7 @@ and Sending Mail and Registers and Minibuffer.
* Glossary:: The glossary.
* Antinews:: Information about Emacs version 21.
* 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!
* Acknowledgments:: Major contributors to GNU Emacs.
@ -394,10 +399,6 @@ Version Control
* Old Versions:: Examining and comparing old versions.
* Secondary VC Commands:: The commands used a little less frequently.
* 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
@ -855,16 +856,9 @@ Emacs and Mac OS
* Mac Font Specs:: Specifying fonts on Mac.
* 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.
* 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 System Menu:: Controlling what the ALT key does.
@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,
MS-DOS (also called MS-DOG), Microsoft Windows, and Macintosh systems.
Those systems use different file name syntax; in addition, VMS and
MS-DOS do not support all GNU Emacs features. @xref{MS-DOS}, for
information about using Emacs on MS-DOS and Windows. @xref{Mac OS},
for information about using Emacs on Macintosh. We don't try to
describe VMS usage in this manual.
MS-DOS do not support all GNU Emacs features. @xref{Emacs and
Microsoft Windows}, for information about using Emacs on Windows.
@xref{Mac OS}, for information about using Emacs on Macintosh. We
don't try to describe VMS usage in this manual.
@end iftex
@node Distrib, Intro, Top, Top
@ -1604,8 +1598,6 @@ Public License instead of this License.
@unnumbered Concept Index
@printindex cp
@summarycontents
@contents
@bye
@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,
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
* 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 2005, 2006 Free Software Foundation, Inc.
@ifclear justgnu
@node Manifesto,, MS-DOS, Top
@node Manifesto,, Emacs and Microsoft Windows, Top
@unnumbered The GNU Manifesto
@end ifclear
@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
hot! As well as the step in version number is rather
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.
@node [1.2]

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