Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 274-284)

   - Update from CVS
   - Update etc/MORE.STUFF.
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 101)

   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-62
This commit is contained in:
Miles Bader 2006-05-17 07:46:49 +00:00
commit 4ed925c668
71 changed files with 1423 additions and 767 deletions

View file

@ -1,3 +1,8 @@
2006-05-12 Eli Zaretskii <eliz@gnu.org>
* FOR-RELEASE: Spell-checking the manuals is now done; remove the
entry.
2006-05-06 Bill Wohler <wohler@newt.com>
* FOR-RELEASE: MH-E 8.0 has been released, so removed reminder

View file

@ -7,8 +7,6 @@ has to be set to nil: when t, it can leak memory and cause other problems.
** Update release dates of manuals.
** Spell check the manuals.
** Get rid of overfull and underfull boxes in manuals.
** Check for widow and orphan lines in manuals;
@ -28,6 +26,9 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
* BUGS
** We need a way a Lisp file encoded in iso-2022 can assure
reliable decoding regardless of user options.
** JD Smith's 17 Apr 2006 bug report that CVS operations
get mysterious unreproducible failures.

View file

@ -1,3 +1,21 @@
2006-05-15 Reiner Steib <Reiner.Steib@gmx.de>
* sk-refcard.tex: Add coding cookie.
2006-05-15 Michael Olson <mwolson@gnu.org>
* MORE.STUFF: Update URL for Planner Mode and add description.
Canonicalize URLs for Emacs Muse and Emacs Wiki Mode.
2006-05-12 Romain Francoise <romain@orebokech.com>
* MORE.STUFF: ERC is now part of Emacs.
Add Emacs Muse.
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
* NEWS (allout): Update.
2006-05-06 Bill Wohler <wohler@newt.com>
Release MH-E version 8.0.

View file

@ -54,6 +54,9 @@ You might find bug-fixes or enhancements in these places.
* Eldoc and Rlogin:
<URL:http://www.splode.com/~friedman/software/emacs-lisp/>
* ERC: IRC client:
<URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient>
* EShell: <URL:http://www.newartisans.com/johnw/emacs.html>
* Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz>
@ -155,6 +158,9 @@ Several are for Debian GNU/Linux in particular.
* EMacro: <URL:http://emacro.sourceforge.net/>
EMacro is a portable configuration file that configures itself.
* Emacs Muse: <URL:http://www.mwolson.org/projects/EmacsMuse.html>
An authoring and publishing environment for Emacs.
* Emacs speaks statistics (ESS): statistical programming within Emacs
<URL:http://ess.r-project.org>
@ -165,12 +171,9 @@ Several are for Debian GNU/Linux in particular.
A simple Emacs interface to w3m, which is a text-mode
WWW browser
* Emacs Wiki Mode: <URL:http://mwolson.org/projects/EmacsWiki.html>
* Emacs Wiki Mode: <URL:http://www.mwolson.org/projects/EmacsWiki.html>
A wiki-like publishing tool and personal information manager
* ERC: IRC client:
<URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient>
* Gnuserv:
<URL:http://www.hpl.hp.com/personal/ange/gnuserv/home.html>
Enhanced emacsclient/emacsserver. Also available from this Web
@ -210,8 +213,8 @@ Several are for Debian GNU/Linux in particular.
nXML mode is an addon for GNU Emacs, which makes GNU Emacs into a
powerful XML editor.
* Planner Mode:
<URL:http://sacha.free.net.ph/notebook/wiki/PlannerMode.php>
* Planner Mode: <URL:http://www.plannerlove.com/>
Planner is an organizer and day planner for Emacs.
* Preview LaTeX: embed preview LaTeX images in source buffer.
<URL:http://preview-latex.sourceforge.net/>

View file

@ -2009,13 +2009,17 @@ symmetric key hinting and consistency verification, auto-encryption of
pending topics on save, and more, make it easy to use encryption in
powerful ways.
*** `allout-view-change-hook' marked as being deprecated - use
`allout-exposure-change-hook' instead. Both are currently being used, but
`allout-view-change-hook' will be ignored in a subsequent allout version.
*** Default command prefix changed to "\C-c " (control-c space), to avoid
intruding on user's keybinding space. Customize the
`allout-command-prefix' variable to your preference.
*** Allout now uses text overlay's `invisible' property (and others) for
concealed text, instead of selective-display. This simplifies the code, in
particularly avoiding the need for kludges for isearch dynamic-display,
particular avoiding the need for kludges for isearch dynamic-display,
discretionary handling of edits of concealed text, undo concerns, etc.
*** Many substantial fixes and refinements, including:

View file

@ -665,6 +665,7 @@ \section{Z
% Local variables:
% compile-command: "csplain sk-refcard"
% coding: iso-latin-2
% End:
% arch-tag: 9f8eacf2-daf9-4162-bc8d-4af7b269f3d3

View file

@ -1,3 +1,7 @@
2006-05-13 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (lisp1): Add fringe.elc.
2006-05-02 Francesco Potort,Al(B <pot@gnu.org>
* etags.c (Perl_functions): Free space allocated for var package.

View file

@ -192,6 +192,7 @@ lisp1= \
$(lispsource)international/mule-conf.el \
$(lispsource)international/mule-cmds.elc \
$(lispsource)international/characters.elc \
$(lispsource)fringe.elc \
$(lispsource)image.elc \
$(lispsource)international/fontset.elc \
$(lispsource)dnd.elc \

View file

@ -1,3 +1,204 @@
2006-05-17 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp/ewoc.el (ewoc-data): Add docstring.
(ewoc-nth): Doc fix.
2006-05-16 Eli Zaretskii <eliz@gnu.org>
* international/mule.el (auto-coding-alist): Add .lha to files
read with no-conversion.
* files.el (auto-mode-alist): Add .lha files to archive file
extensions.
* arc-mode.el (archive-arc-summarize, archive-lzh-summarize):
Convert csize to integer when computing offsets within the
compressed archive file.
2006-05-16 Kim F. Storm <storm@cua.dk>
* subr.el (add-to-history): Add KEEP-ALL arg and align functionality
with read-from-minibuffer.
2006-05-16 Reiner Steib <Reiner.Steib@gmx.de>
* emacs-lisp/bytecomp.el (byte-compile-warnings-safe-p): New function.
(byte-compile-warnings): Fix safe-local-variable property.
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el (allout-show-bodies, allout-old-style-prefixes)
(allout-stylish-prefixes, allout-numbered-bullet)
(allout-file-xref-bullet, allout-use-hanging-indents): Use simple
predicates to qualify `safe-local-variable' property, when
available, else use equivalent lambda.
(allout-current-topic-collapsed-p): Do the right thing regarding
trailing blank lines.
2006-05-16 Stefan Monnier <monnier@iro.umontreal.ca>
* server.el (server-start): Only create a directory if needed.
(server-edit, server-unload-hook): server-start => server-mode.
(kill-emacs-hook): Cleanup upon exit.
2006-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
* hexl.el (hexlify-buffer): Encode process arguments manually.
2006-05-16 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gud.el (gud-tooltip-tips): Add missing argument to
call to gdb-tooltip-print.
2006-05-15 Romain Francoise <romain@orebokech.com>
* dired-x.el (dired-guess-shell-gnutar): On GNU and GNU/Linux
systems, default to "tar" since those systems probably have GNU tar.
2006-05-14 Lars Hansen <larsh@soem.dk>
* desktop.el (desktop-missing-file-warning): Fix docstring.
(desktop-restore-file-buffer): Correct question asked on missing file.
2006-05-14 Kim F. Storm <storm@cua.dk>
* progmodes/cc-subword.el (c-forward-subword, c-backward-subword):
Add CUA move property.
2006-05-13 Chong Yidong <cyd@stupidchicken.com>
* custom.el (custom-push-theme): Load the variable before checking
its `standard-value'.
2006-05-13 Lars Hansen <larsh@soem.dk>
* desktop.el (desktop-save): Use with-temp-buffer.
2006-05-12 Glenn Morris <rgm@gnu.org>
* calendar/cal-menu.el (calendar-mode-map, calendar-mouse-3-map):
* calendar/calendar.el (calendar-mode-map):
* calendar/diary-lib.el (include-other-diary-files,diary-mail-entries):
* calendar/appt.el (appt-check, appt-make-list): Refer to
diary-view-entries, diary-list-entries, diary-show-all-entries
rather than obsolete aliases.
2006-05-12 Chong Yidong <cyd@stupidchicken.com>
* simple.el (line-move-finish): Avoid calling point motion hooks
while processing intangibility.
2006-05-12 Dan Nicolaescu <dann@ics.uci.edu>
* term/xterm.el (terminal-init-xterm): Fix typo.
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el: (allout-view-change-hook): Mark as being deprecated,
to be replaced by `allout-exposure-change-hook'.
(allout-exposure-change-hook): New, replacing
`allout-view-change-hook'.
(allout-flag-region): Run new hook `allout-exposure-change-hook',
in addition to `allout-view-change-hook'.
(allout-show-bodies, allout-old-style-prefixes)
(allout-stylish-prefixes, allout-use-hanging-indents): Quote the
lambda forms to prevent their showing up in variable help
presentations as inscrutable byte-compiled code.
(allout-numbered-bullet, allout-file-xref-bullet, allout-layout):
Use string-or-null-p to qualify safe-local-variable values.
(allout-reindent-bodies): Use memq to qualify matches against
valid safe-local-variable values. Also, quote the lambda as above.
(allout-use-mode-specific-leader): Add missing candidate-value
symbols, use memq, and quote the lambda.
(allout-overlay-interior-modification-handler): Remove unused
variables `msg' and 'opened'.
(allout-hidden-p): Constrain invisibility consideration to allout's
invisibility spec, disregarding invisibility for other reasons.
2006-05-12 Reiner Steib <Reiner.Steib@gmx.de>
* files.el (version-control): Correct safe values.
2006-05-12 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp/ewoc.el (ewoc-refresh): Compute PP once before looping.
(ewoc--node-enter-before, ewoc--create-node): Delete funcs.
(ewoc--insert-new-node): New func.
Update callers of deleted funcs to use it, instead.
2006-05-11 Glenn Morris <rgm@gnu.org>
* calendar/calendar.el (diary-show-all-entries): Do not refer to
obsolete alias `show-all-diary-entries'.
(make-diary-entry): Not interactive.
(cal-tex-cursor-month, cal-tex-cursor-month-landscape)
(cal-tex-cursor-day, cal-tex-cursor-week, cal-tex-cursor-week2)
(cal-tex-cursor-week-iso, cal-tex-cursor-week-monday)
(cal-tex-cursor-filofax-2week, cal-tex-cursor-filofax-week)
(cal-tex-cursor-year-landscape, cal-tex-cursor-filofax-year)
(cal-tex-cursor-filofax-daily, cal-tex-cursor-year): Interactive.
2006-05-11 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>
* calendar/calendar.el (calendar-french-date-string)
(calendar-mayan-date-string, calendar-chinese-date-string)
(calendar-astro-date-string, calendar-iso-date-string)
(calendar-islamic-date-string, calendar-bahai-date-string)
(calendar-hebrew-date-string, calendar-coptic-date-string)
(calendar-ethiopic-date-string, calendar-persian-date-string):
These functions are not interactive.
2006-05-11 Luc Teirlinck <teirllm@auburn.edu>
* files.el: Balance parentheses.
2006-05-11 Reiner Steib <Reiner.Steib@gmx.de>
* files.el, newcomment.el, outline.el, simple.el,
emacs-lisp/bytecomp.el, progmodes/cc-compat.el,
progmodes/cc-vars.el, progmodes/compile.el:
Move `safe-local-variable' declarations to the respective files.
* help-fns.el (describe-variable): Don't print safe-var if it is
byte-code. Improve wording as suggested by Luc Teirlinck
<teirllm@auburn.edu>.
2006-05-11 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-reset): Update speedbar if necessary.
(gdb-var-evaluate-expression-handler, gdb-var-update-handler):
Use a token for pending-triggers to ensure gdb-var-update
gets called once per user input again for pre-GDB 6.4.
(gdb-var-delete): Match on more complex expressions.
(gdb-var-list-children-handler, gdb-var-create-handler):
Use a token for consistency.
2006-05-11 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-read-date, org-goto-calendar)
(org-agenda-goto-calendar):
Bind `view-calendar-holidays-initially' to nil.
2006-05-11 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp/ewoc.el (ewoc--refresh-node): No longer save-excursion.
Update all callers to do it there, instead.
2006-05-10 Glenn Morris <rgm@gnu.org>
* calendar/calendar.el (calendar-basic-setup): Set day to 1 in
prefix arg case, to avoid view-diary-entries-initially error.
Reported by Stephen Berman <Stephen.Berman at gmx.net>.
(calendar-date-is-legal-p): Handle dates with no day part.
2006-05-11 Nick Roberts <nickrob@snap.net.nz>
* comint.el (comint-insert-input): Just make it when
comint-use-prompt regexp is nil (default) and with the mouse.
(comint-copy-old-input): Reinstate from 2004-06-23.
(comint-mode-map): Bind C-c C-m to it.
2006-05-10 J.D. Smith <jdsmith@as.arizona.edu>
* progmodes/idlw-shell.el (idlwave-shell-move-or-history):
@ -6,7 +207,7 @@
* progmodes/idlwave.el (idlwave-push-mark): Removed obsolete
compatibility function (Emacs 18/19).
(idlwave-is-continuation-line): Always return point at start of
previous non-blank continuation line.
previous non-blank continuation line.
`keyword-parameters': Fix continued comment font-lock matcher.
(idlwave-font-lock-fontify-region): Written, use as
font-lock-fontify-region-function, to fix continued keyword

View file

@ -199,7 +199,7 @@ just the header."
(make-variable-buffer-local 'allout-show-bodies)
;;;###autoload
(put 'allout-show-bodies 'safe-local-variable
(lambda (x) (member x '(t nil))))
(if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
;;;_ = allout-header-prefix
(defcustom allout-header-prefix "."
@ -316,7 +316,8 @@ incorrect.]"
:group 'allout)
;;;###autoload
(put 'allout-use-mode-specific-leader 'safe-local-variable
(lambda (x) (or (member x '(t nil)) (stringp x))))
'(lambda (x) (or (memq x '(t nil allout-mode-leaders comment-start))
(stringp x))))
;;;_ = allout-mode-leaders
(defvar allout-mode-leaders '()
"Specific allout-prefix leading strings per major modes.
@ -344,7 +345,7 @@ are always respected by the topic maneuvering functions."
(make-variable-buffer-local 'allout-old-style-prefixes)
;;;###autoload
(put 'allout-old-style-prefixes 'safe-local-variable
(lambda (x) (member x '(t nil))))
(if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
;;;_ = allout-stylish-prefixes - alternating bullets
(defcustom allout-stylish-prefixes t
"*Do fancy stuff with topic prefix bullets according to level, etc.
@ -393,7 +394,7 @@ is non-nil."
(make-variable-buffer-local 'allout-stylish-prefixes)
;;;###autoload
(put 'allout-stylish-prefixes 'safe-local-variable
(lambda (x) (member x '(t nil))))
(if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
;;;_ = allout-numbered-bullet
(defcustom allout-numbered-bullet "#"
@ -408,7 +409,9 @@ disables numbering maintenance."
(make-variable-buffer-local 'allout-numbered-bullet)
;;;###autoload
(put 'allout-numbered-bullet 'safe-local-variable
(lambda (x) (or (not x) (stringp x))))
(if (fboundp 'string-or-null-p)
'string-or-null-p
'(lambda (x) (or (stringp x) (null x)))))
;;;_ = allout-file-xref-bullet
(defcustom allout-file-xref-bullet "@"
"*Bullet signifying file cross-references, for `allout-resolve-xref'.
@ -418,7 +421,9 @@ Set this var to the bullet you want to use for file cross-references."
:group 'allout)
;;;###autoload
(put 'allout-file-xref-bullet 'safe-local-variable
(lambda (x) (or (not x) (stringp x))))
(if (fboundp 'string-or-null-p)
'string-or-null-p
'(lambda (x) (or (stringp x) (null x)))))
;;;_ = allout-presentation-padding
(defcustom allout-presentation-padding 2
"*Presentation-format white-space padding factor, for greater indent."
@ -621,7 +626,7 @@ where auto-fill occurs."
(make-variable-buffer-local 'allout-use-hanging-indents)
;;;###autoload
(put 'allout-use-hanging-indents 'safe-local-variable
(lambda (x) (member x '(t nil))))
(if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
;;;_ = allout-reindent-bodies
(defcustom allout-reindent-bodies (if allout-use-hanging-indents
@ -641,7 +646,7 @@ those that do not have the variable `comment-start' set. A value of
(make-variable-buffer-local 'allout-reindent-bodies)
;;;###autoload
(put 'allout-reindent-bodies 'safe-local-variable
(lambda (x) (member x '(nil t text force))))
'(lambda (x) (memq x '(nil t text force))))
;;;_ = allout-enable-file-variable-adjustment
(defcustom allout-enable-file-variable-adjustment t
@ -708,8 +713,7 @@ case the value of `allout-default-layout' is used.")
(make-variable-buffer-local 'allout-layout)
;;;###autoload
(put 'allout-layout 'safe-local-variable
(lambda (x) (or (numberp x) (listp x) (integerp x)
(member x '(: * + -)))))
'(lambda (x) (or (numberp x) (listp x) (memq x '(: * + -)))))
;;;_ : Topic header format
;;;_ = allout-regexp
@ -1064,9 +1068,19 @@ from the list."
;;;_ = allout-overlay-category
(defvar allout-overlay-category nil
"Symbol for use in allout invisible-text overlays as the category.")
;;;_ = allout-view-change-hook
;;;_ x allout-view-change-hook
(defvar allout-view-change-hook nil
"*Hook that's run after allout outline visibility changes.")
"*\(Deprecated\) Hook that's run after allout outline exposure changes.
Switch to using `allout-exposure-change-hook' instead. Both
variables are currently respected, but this one will be ignored
in a subsequent allout version.")
;;;_ = allout-exposure-change-hook
(defvar allout-exposure-change-hook nil
"*Hook that's run after allout outline exposure changes.
This variable will replace `allout-view-change-hook' in a subsequent allout
version, though both are currently respected.")
;;;_ = allout-outside-normal-auto-fill-function
(defvar allout-outside-normal-auto-fill-function nil
@ -1727,7 +1741,7 @@ OPEN: A topic that is not closed, though its offspring or body may be."
;;;_ > allout-hidden-p (&optional pos)
(defsubst allout-hidden-p (&optional pos)
"Non-nil if the character after point is invisible."
(get-char-property (or pos (point)) 'invisible))
(eq (get-char-property (or pos (point)) 'invisible) 'allout))
;;;_ > allout-overlay-insert-in-front-handler (ol after beg end
;;; &optional prelen)
@ -1753,8 +1767,6 @@ internal functions use this feature cohesively bunch changes."
(let ((start (point))
(ol-start (overlay-start ol))
(ol-end (overlay-end ol))
(msg "Change within concealed text disallowed.")
opened
first)
(goto-char beg)
(while (< (point) end)
@ -1764,7 +1776,6 @@ internal functions use this feature cohesively bunch changes."
(save-excursion (forward-char 1)
(allout-show-to-offshoot)))
(when (not first)
(setq opened t)
(setq first (point))))
(goto-char (if (featurep 'xemacs)
(next-property-change (1+ (point)) nil end)
@ -3831,7 +3842,8 @@ Text is shown if flag is nil and hidden otherwise."
(let ((props (symbol-plist 'allout-overlay-category)))
(while props
(overlay-put o (pop props) (pop props)))))))
(run-hooks 'allout-view-change-hook))
(run-hooks 'allout-view-change-hook)
(run-hooks 'allout-exposure-change-hook))
;;;_ > allout-flag-current-subtree (flag)
(defun allout-flag-current-subtree (flag)
"Conceal currently-visible topic's subtree if FLAG non-nil, else reveal it."
@ -3999,17 +4011,18 @@ expose this topic and its siblings."
(defun allout-current-topic-collapsed-p (&optional include-single-liners)
"True if the currently visible containing topic is already collapsed.
If optional INCLUDE-SINGLE-LINERS is true, then include single-line
topics \(which intrinsically can be considered both collapsed and
not\), as collapsed. Otherwise they are considered uncollapsed."
Single line topics intrinsically can be considered as being both
collapsed and uncollapsed. If optional INCLUDE-SINGLE-LINERS is
true, then single-line topics are considered to be collapsed. By
default, they are treated as being uncollapsed."
(save-excursion
(and
(= (progn (allout-back-to-current-heading)
(move-end-of-line 1)
(point))
(allout-end-of-current-subtree))
(or include-single-liners
(progn (backward-char 1) (allout-hidden-p))))))
(and
(= (progn (allout-back-to-current-heading)
(move-end-of-line 1)
(point))
(allout-end-of-current-subtree (not (looking-at "\n\n"))))
(or include-single-liners
(progn (backward-char 1) (allout-hidden-p))))))
;;;_ > allout-hide-current-subtree (&optional just-close)
(defun allout-hide-current-subtree (&optional just-close)
"Close the current topic, or containing topic if this one is already closed.
@ -5888,7 +5901,6 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
(or (memq prop buffer-invisibility-spec)
(assq prop buffer-invisibility-spec))))))
;;;_ #10 Unfinished
;;;_ > allout-bullet-isearch (&optional bullet)
(defun allout-bullet-isearch (&optional bullet)

View file

@ -1379,7 +1379,11 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
visual)
files (cons (vector efnname ifnname fiddle nil (1- p))
files)
p (+ p 29 csize))))
;; p needs to stay an integer, since we use it in char-after
;; above. Passing through `round' limits the compressed size
;; to most-positive-fixnum, but if the compressed size exceeds
;; that, we cannot visit the archive anyway.
p (+ p 29 (round csize)))))
(goto-char (point-min))
(let ((dash (concat "- -------- ----------- -------- "
(make-string maxlen ?-)
@ -1519,9 +1523,13 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
files (cons (vector prname ifnname fiddle mode (1- p))
files))
(cond ((= hdrlvl 1)
(setq p (+ p hsize 2 csize)))
;; p needs to stay an integer, since we use it in goto-char
;; above. Passing through `round' limits the compressed size
;; to most-positive-fixnum, but if the compressed size exceeds
;; that, we cannot visit the archive anyway.
(setq p (+ p hsize 2 (round csize))))
((or (= hdrlvl 2) (= hdrlvl 0))
(setq p (+ p thsize 2 csize))))
(setq p (+ p thsize 2 (round csize)))))
))
(goto-char (point-min))
(let ((dash (concat (if archive-alternate-display

View file

@ -353,7 +353,7 @@ displayed in a window:
;; restore its display state. Otherwise, kill it.
(if d-buff
;; Displays the diary buffer.
(or selective (show-all-diary-entries))
(or selective (diary-show-all-entries))
(and
(setq d-buff (find-buffer-visiting
(substitute-in-file-name diary-file)))
@ -536,7 +536,7 @@ The time should be in either 24 hour format or am/pm format."
The time must be at the beginning of a line for it to be
put in the appointments list (see examples in documentation of
the function `appt-check'). We assume that the variables DATE and
NUMBER hold the arguments that `list-diary-entries' received.
NUMBER hold the arguments that `diary-list-entries' received.
They specify the range of dates that the diary is being processed for.
Any appointments made with `appt-add' are not affected by this

View file

@ -85,7 +85,7 @@
(define-key calendar-mode-map [menu-bar diary ent]
'("Insert Diary Entry" . insert-diary-entry))
(define-key calendar-mode-map [menu-bar diary all]
'("Show All" . show-all-diary-entries))
'("Show All" . diary-show-all-entries))
(define-key calendar-mode-map [menu-bar diary mark]
'("Mark All" . mark-diary-entries))
(define-key calendar-mode-map [menu-bar diary view]
@ -616,7 +616,7 @@ The output is in landscape format, one month to a page."
(define-key calendar-mouse-3-map [exit-calendar]
'("Exit calendar" . exit-calendar))
(define-key calendar-mouse-3-map [show-diary]
'("Show diary" . show-all-diary-entries))
'("Show diary" . diary-show-all-entries))
(define-key calendar-mouse-3-map [lunar-phases]
'("Lunar phases" . calendar-phases-of-moon))
(define-key calendar-mouse-3-map [unmark]

View file

@ -1374,6 +1374,7 @@ MON defaults to `displayed-month'. YR defaults to `displayed-year'."
"Extract the month part of DATE which has the form (month day year)."
(car date))
;; Note gives wrong answer for result of (calendar-read-date 'noday).
(defsubst extract-calendar-day (date)
"Extract the day part of DATE which has the form (month day year)."
(car (cdr date)))
@ -1639,6 +1640,9 @@ to be replaced by asterisks to highlight it whenever it is in the window."
(calendar-current-date)))
(month (extract-calendar-month date))
(year (extract-calendar-year date)))
;; (calendar-read-date t) returns a date with day = nil, which is
;; not a legal date for the visible test in the diary section.
(if arg (setcar (cdr date) 1))
(pop-to-buffer calendar-buffer)
(increment-calendar-month month year (- calendar-offset))
(generate-calendar-window month year)
@ -1682,12 +1686,10 @@ D-FILE specifies the file to use as the diary file."
t)
(autoload 'calendar-french-date-string "cal-french"
"String of French Revolutionary date of Gregorian date."
t)
"String of French Revolutionary date of Gregorian date.")
(autoload 'calendar-mayan-date-string "cal-mayan"
"String of Mayan date of Gregorian date."
t)
"String of Mayan date of Gregorian date.")
(autoload 'calendar-print-mayan-date "cal-mayan"
"Show the Mayan long count, Tzolkin, and Haab equivalents of the date under the cursor."
@ -1730,8 +1732,7 @@ D-FILE specifies the file to use as the diary file."
t)
(autoload 'calendar-chinese-date-string "cal-china"
"String of Chinese date of Gregorian date."
t)
"String of Chinese date of Gregorian date.")
(autoload 'calendar-absolute-from-astro "cal-julian"
"Absolute date of astronomical (Julian) day number D."
@ -1741,8 +1742,7 @@ D-FILE specifies the file to use as the diary file."
"Astronomical (Julian) day number of absolute date D.")
(autoload 'calendar-astro-date-string "cal-julian"
"String of astronomical (Julian) day number of Gregorian date."
t)
"String of astronomical (Julian) day number of Gregorian date.")
(autoload 'calendar-goto-astro-day-number "cal-julian"
"Move cursor to astronomical (Julian) day number."
@ -1783,8 +1783,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-iso-date-string "cal-iso"
"String of ISO date of Gregorian date."
t)
"String of ISO date of Gregorian date.")
(autoload 'calendar-goto-islamic-date "cal-islam"
"Move cursor to Islamic date."
@ -1795,16 +1794,14 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-islamic-date-string "cal-islam"
"String of Islamic date of Gregorian date."
t)
"String of Islamic date of Gregorian date.")
(autoload 'calendar-print-bahai-date "cal-bahai"
"Show the Baha'i date equivalents of date."
t)
(autoload 'calendar-bahai-date-string "cal-bahai"
"String of Baha'i date of Gregorian date."
t)
"String of Baha'i date of Gregorian date.")
(autoload 'calendar-goto-hebrew-date "cal-hebrew"
"Move cursor to Hebrew date."
@ -1815,8 +1812,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-hebrew-date-string "cal-hebrew"
"String of Hebrew date of Gregorian date."
t)
"String of Hebrew date of Gregorian date.")
(autoload 'calendar-goto-coptic-date "cal-coptic"
"Move cursor to Coptic date."
@ -1827,8 +1823,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-coptic-date-string "cal-coptic"
"String of Coptic date of Gregorian date."
t)
"String of Coptic date of Gregorian date.")
(autoload 'calendar-goto-ethiopic-date "cal-coptic"
"Move cursor to Ethiopic date."
@ -1839,8 +1834,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-ethiopic-date-string "cal-coptic"
"String of Ethiopic date of Gregorian date."
t)
"String of Ethiopic date of Gregorian date.")
(autoload 'calendar-goto-persian-date "cal-persia"
"Move cursor to Persian date."
@ -1851,10 +1845,9 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-persian-date-string "cal-persia"
"String of Persian date of Gregorian date."
t)
"String of Persian date of Gregorian date.")
(autoload 'show-all-diary-entries "diary-lib"
(autoload 'diary-show-all-entries "diary-lib"
"Show all of the diary entries in the diary file.
This function gets rid of the selective display of the diary file so that
all entries, not just some, are visible. If there is no diary buffer, one
@ -1867,8 +1860,7 @@ Each entry in diary file visible in the calendar window is marked."
t)
(autoload 'make-diary-entry "diary-lib"
"Insert a diary entry STRING which may be NONMARKING in FILE."
t)
"Insert a diary entry STRING which may be NONMARKING in FILE.")
(autoload 'insert-diary-entry "diary-lib"
"Insert a diary entry for the date indicated by point."
@ -1953,69 +1945,69 @@ holidays are found, nil if not."
(autoload 'cal-tex-cursor-month "cal-tex"
"Make a buffer with LaTeX commands for the month cursor is on.
Optional prefix argument specifies number of months to be produced.
Calendar is condensed onto one page.")
Calendar is condensed onto one page." t)
(autoload 'cal-tex-cursor-month-landscape "cal-tex"
"Make a buffer with LaTeX commands for the month cursor is on.
Optional prefix argument specifies number of months to be produced.")
Optional prefix argument specifies number of months to be produced." t)
(autoload 'cal-tex-cursor-day "cal-tex"
"Make a buffer with LaTeX commands for the day cursor is on.")
"Make a buffer with LaTeX commands for the day cursor is on." t)
(autoload 'cal-tex-cursor-week "cal-tex"
"Make a buffer with LaTeX commands for a two-page one-week calendar.
It applies to the week that point is in.
Optional prefix argument specifies number of weeks.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-week2 "cal-tex"
"Make a buffer with LaTeX commands for a two-page one-week calendar.
It applies to the week that point is in.
Optional prefix argument specifies number of weeks.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-week-iso "cal-tex"
"Make a buffer with LaTeX commands for a one page ISO-style weekly calendar.
Optional prefix argument specifies number of weeks.
Diary entries are included if `cal-tex-diary' is t.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-week-monday "cal-tex"
"Make a buffer with LaTeX commands for a two-page one-week calendar.
It applies to the week that point is in, and starts on Monday.
Optional prefix argument specifies number of weeks.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-filofax-2week "cal-tex"
"Two-weeks-at-a-glance Filofax style calendar for week indicated by cursor.
Optional prefix argument specifies number of weeks.
Diary entries are included if cal-tex-diary is t.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-filofax-week "cal-tex"
"One-week-at-a-glance Filofax style calendar for week indicated by cursor.
Optional prefix argument specifies number of weeks.
Weeks start on Monday.
Diary entries are included if cal-tex-diary is t.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-filofax-daily "cal-tex"
"Day-per-page Filofax style calendar for week indicated by cursor.
Optional prefix argument specifies number of weeks. Weeks start on Monday.
Diary entries are included if `cal-tex-diary' is t.
Holidays are included if `cal-tex-holidays' is t.")
Holidays are included if `cal-tex-holidays' is t." t)
(autoload 'cal-tex-cursor-year "cal-tex"
"Make a buffer with LaTeX commands for a year's calendar.
Optional prefix argument specifies number of years.")
Optional prefix argument specifies number of years." t)
(autoload 'cal-tex-cursor-year-landscape "cal-tex"
"Make a buffer with LaTeX commands for a year's calendar (landscape).
Optional prefix argument specifies number of years.")
Optional prefix argument specifies number of years." t)
(autoload 'cal-tex-cursor-filofax-year "cal-tex"
"Make a buffer with LaTeX commands for a year's calendar (Filofax).
Optional prefix argument specifies number of years.")
Optional prefix argument specifies number of years." t)
(autoload 'mark-calendar-holidays "holidays"
"Mark notable days in the calendar window."
@ -2261,7 +2253,7 @@ movement commands will not work correctly."
(define-key map "m" 'mark-diary-entries)
(define-key map "d" 'diary-view-entries)
(define-key map "D" 'view-other-diary-entries)
(define-key map "s" 'show-all-diary-entries)
(define-key map "s" 'diary-show-all-entries)
(define-key map "pd" 'calendar-print-day-of-year)
(define-key map "pC" 'calendar-print-chinese-date)
(define-key map "pk" 'calendar-print-coptic-date)
@ -2897,7 +2889,11 @@ interpreted as BC; -1 being 1 BC, and so on."
(day (extract-calendar-day date))
(year (extract-calendar-year date)))
(and (<= 1 month) (<= month 12)
(<= 1 day) (<= day (calendar-last-day-of-month month year))
;; (calendar-read-date t) returns a date with day = nil.
;; Should not be valid (?), since many funcs prob assume integer.
;; (calendar-read-date 'noday) returns (month year), which
;; currently results in extract-calendar-year returning nil.
day year (<= 1 day) (<= day (calendar-last-day-of-month month year))
;; BC dates left as non-valid, to suppress errors from
;; complex holiday algorithms not suitable for years BC.
;; Note there are side effects on calendar navigation.

View file

@ -517,7 +517,7 @@ changing the variable `diary-include-string'."
(unwind-protect
(setq diary-entries-list
(append diary-entries-list
(list-diary-entries original-date number)))
(diary-list-entries original-date number)))
(with-current-buffer (find-buffer-visiting diary-file)
(diary-unhide-everything)))
(beep)
@ -820,7 +820,7 @@ to run it every morning at 1am."
(if (string-equal diary-mail-addr "")
(error "You must set `diary-mail-addr' to use this command")
(let ((diary-display-hook 'fancy-diary-display))
(list-diary-entries (calendar-current-date) (or ndays diary-mail-days)))
(diary-list-entries (calendar-current-date) (or ndays diary-mail-days)))
(compose-mail diary-mail-addr
(concat "Diary entries generated "
(calendar-date-string (calendar-current-date))))

View file

@ -458,7 +458,7 @@ executed once when the buffer is created."
(define-key map "\C-c\C-c" 'comint-interrupt-subjob)
(define-key map "\C-c\C-z" 'comint-stop-subjob)
(define-key map "\C-c\C-\\" 'comint-quit-subjob)
(define-key map "\C-c\C-m" 'comint-insert-input)
(define-key map "\C-c\C-m" 'comint-copy-old-input)
(define-key map "\C-c\C-o" 'comint-delete-output)
(define-key map "\C-c\C-r" 'comint-show-output)
(define-key map "\C-c\C-e" 'comint-show-maximum-output)
@ -502,7 +502,7 @@ executed once when the buffer is created."
(define-key map [menu-bar inout kill-input]
'("Kill Current Input" . comint-kill-input))
(define-key map [menu-bar inout copy-input]
'("Copy Old Input" . comint-insert-input))
'("Copy Old Input" . comint-copy-old-input))
(define-key map [menu-bar inout forward-matching-history]
'("Forward Matching Input..." . comint-forward-matching-input))
(define-key map [menu-bar inout backward-matching-history]
@ -797,36 +797,28 @@ buffer. The hook `comint-exec-hook' is run after each exec."
(set-process-coding-system proc decoding encoding))
proc))
(defun comint-insert-input (&optional event)
(defun comint-insert-input (event)
"In a Comint buffer, set the current input to the previous input at point."
;; This doesn't use "e" because it is supposed to work
;; for events without parameters.
(interactive (list last-input-event))
(when event
(posn-set-point (event-end event)))
(if comint-use-prompt-regexp
(let ((input (funcall comint-get-old-input))
(process (get-buffer-process (current-buffer))))
(if (not process)
(error "Current buffer has no process")
(goto-char (process-mark process))
(insert input)))
(let ((pos (point)))
(if (not (eq (field-at-pos pos) 'input))
;; No input at POS, fall back to the global definition.
(let* ((keys (this-command-keys))
(last-key (and (vectorp keys) (aref keys (1- (length keys)))))
(fun (and last-key (lookup-key global-map (vector last-key)))))
(and fun (call-interactively fun)))
;; There's previous input at POS, insert it at the end of the buffer.
(goto-char (point-max))
;; First delete any old unsent input at the end
(delete-region
(or (marker-position comint-accum-marker)
(process-mark (get-buffer-process (current-buffer))))
(point))
;; Insert the input at point
(insert (field-string-no-properties pos))))))
(interactive "e")
(mouse-set-point event)
(let ((pos (point)))
(if (not (eq (field-at-pos pos) 'input))
;; No input at POS, fall back to the global definition.
(let* ((keys (this-command-keys))
(last-key (and (vectorp keys) (aref keys (1- (length keys)))))
(fun (and last-key (lookup-key global-map (vector last-key)))))
(and fun (call-interactively fun)))
;; There's previous input at POS, insert it at the end of the buffer.
(goto-char (point-max))
;; First delete any old unsent input at the end
(delete-region
(or (marker-position comint-accum-marker)
(process-mark (get-buffer-process (current-buffer))))
(point))
;; Insert the input at point
(insert (field-string-no-properties pos)))))
;; Input history processing in a buffer
@ -1905,6 +1897,17 @@ the current line with any initial string matching the regexp
(comint-bol)
(buffer-substring-no-properties (point) (line-end-position)))))
(defun comint-copy-old-input ()
"Insert after prompt old input at point as new input to be edited.
Calls `comint-get-old-input' to get old input."
(interactive)
(let ((input (funcall comint-get-old-input))
(process (get-buffer-process (current-buffer))))
(if (not process)
(error "Current buffer has no process")
(goto-char (process-mark process))
(insert input))))
(defun comint-skip-prompt ()
"Skip past the text matching regexp `comint-prompt-regexp'.
If this takes us past the end of the current line, don't skip at all."

View file

@ -825,11 +825,15 @@ See `custom-known-themes' for a list of known themes."
;; theme is later disabled.
(if (null old)
(if (and (eq prop 'theme-value)
(boundp symbol)
(or (null (get symbol 'standard-value))
(not (equal (eval (car (get symbol 'standard-value)))
(symbol-value symbol)))))
(setq old (list (list 'changed (symbol-value symbol))))
(boundp symbol))
(let ((sv (get symbol 'standard-value)))
(when (and (null sv) (custom-variable-p symbol))
(custom-load-symbol symbol)
(setq sv (get symbol 'standard-value)))
(if (or (null sv)
(not (equal (eval (car (get symbol 'standard-value)))
(symbol-value symbol))))
(setq old (list (list 'changed (symbol-value symbol))))))
(if (and (facep symbol)
(not (face-spec-match-p symbol (get symbol 'face-defface-spec))))
(setq old (list (list 'changed (list

View file

@ -201,7 +201,7 @@ The base name of the file is specified in `desktop-base-file-name'."
:version "22.1")
(defcustom desktop-missing-file-warning nil
"*If non-nil then `desktop-read' asks if a non-existent file should be recreated.
"If non-nil, offer to recreate the buffer of a deleted file.
Also pause for a moment to display message about errors signaled in
`desktop-buffer-mode-handlers'.
@ -763,45 +763,42 @@ See also `desktop-base-file-name'."
(setq locals (cdr locals)))
ll)))
(buffer-list)))
(eager desktop-restore-eager)
(buf (get-buffer-create "*desktop*")))
(set-buffer buf)
(erase-buffer)
(eager desktop-restore-eager))
(with-temp-buffer
(insert
";; -*- mode: emacs-lisp; coding: utf-8-emacs; -*-\n"
desktop-header
";; Created " (current-time-string) "\n"
";; Desktop file format version " desktop-file-version "\n"
";; Emacs version " emacs-version "\n\n"
";; Global section:\n")
(mapc (function desktop-outvar) desktop-globals-to-save)
(if (memq 'kill-ring desktop-globals-to-save)
(insert
"(setq kill-ring-yank-pointer (nthcdr "
(int-to-string (- (length kill-ring) (length kill-ring-yank-pointer)))
" kill-ring))\n"))
(insert
";; -*- mode: emacs-lisp; coding: utf-8-emacs; -*-\n"
desktop-header
";; Created " (current-time-string) "\n"
";; Desktop file format version " desktop-file-version "\n"
";; Emacs version " emacs-version "\n\n"
";; Global section:\n")
(mapc (function desktop-outvar) desktop-globals-to-save)
(if (memq 'kill-ring desktop-globals-to-save)
(insert
"(setq kill-ring-yank-pointer (nthcdr "
(int-to-string (- (length kill-ring) (length kill-ring-yank-pointer)))
" kill-ring))\n"))
(insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n")
(mapc #'(lambda (l)
(when (apply 'desktop-save-buffer-p l)
(insert "("
(if (or (not (integerp eager))
(unless (zerop eager)
(setq eager (1- eager))
t))
"desktop-create-buffer"
"desktop-append-buffer-args")
" "
desktop-file-version)
(mapc #'(lambda (e)
(insert "\n " (desktop-value-to-string e)))
l)
(insert ")\n\n")))
info)
(setq default-directory dirname)
(let ((coding-system-for-write 'utf-8-emacs))
(write-region (point-min) (point-max) filename nil 'nomessage))))
(insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n")
(mapc #'(lambda (l)
(when (apply 'desktop-save-buffer-p l)
(insert "("
(if (or (not (integerp eager))
(unless (zerop eager)
(setq eager (1- eager))
t))
"desktop-create-buffer"
"desktop-append-buffer-args")
" "
desktop-file-version)
(mapc #'(lambda (e)
(insert "\n " (desktop-value-to-string e)))
l)
(insert ")\n\n")))
info)
(setq default-directory dirname)
(let ((coding-system-for-write 'utf-8-emacs))
(write-region (point-min) (point-max) filename nil 'nomessage)))))
(setq desktop-dirname dirname))
;; ----------------------------------------------------------------------------
@ -946,7 +943,7 @@ directory DIRNAME."
(let ((msg (format "Desktop: File \"%s\" no longer exists."
desktop-buffer-file-name)))
(if desktop-missing-file-warning
(y-or-n-p (concat msg " Re-create? "))
(y-or-n-p (concat msg " Re-create buffer? "))
(message "%s" msg)
nil)))
(let* ((auto-insert nil) ; Disable auto insertion

View file

@ -215,7 +215,9 @@ a directory. See also `dired-local-variables-file'."
:type 'boolean
:group 'dired-x)
(defcustom dired-guess-shell-gnutar nil
(defcustom dired-guess-shell-gnutar (when (or (eq system-type 'gnu)
(eq system-type 'gnu/linux))
"tar")
"*If non-nil, name of GNU tar executable.
\(E.g., \"tar\" or \"gtar\"). The `z' switch will be used with it for
compressed or gzip'ed tar files. If you don't have GNU tar, set this

View file

@ -293,6 +293,7 @@ For example, add -*-byte-compile-dynamic: t;-*- on the first line.
When this option is true, if you load the compiled file and then move it,
the functions you loaded will not be able to run.")
;;;###autoload(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
(defcustom byte-compile-dynamic-docstrings t
"*If non-nil, compile doc strings for lazy access.
@ -311,6 +312,7 @@ You can also set the variable globally.
This option is enabled by default because it reduces Emacs memory usage."
:group 'bytecomp
:type 'boolean)
;;;###autoload(put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
(defcustom byte-optimize-log nil
"*If true, the byte-compiler will log its optimizations into *Compile-Log*.
@ -355,6 +357,20 @@ Elements of the list may be be:
(const callargs) (const redefine)
(const obsolete) (const noruntime)
(const cl-functions) (const interactive-only))))
(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
;;;###autoload
(defun byte-compile-warnings-safe-p (x)
(or (booleanp x)
(and (listp x)
(equal (mapcar
(lambda (e)
(when (memq e '(free-vars unresolved
callargs redefine
obsolete noruntime
cl-functions interactive-only))
e))
x)
x))))
(defvar byte-compile-interactive-only-functions
'(beginning-of-buffer end-of-buffer replace-string replace-regexp
@ -1589,6 +1605,7 @@ recompile every `.el' file that already has a `.elc' file."
This is normally set in local file variables at the end of the elisp file:
;; Local Variables:\n;; no-byte-compile: t\n;; End: ")
;;;###autoload(put 'no-byte-compile 'safe-local-variable 'booleanp)
;;;###autoload
(defun byte-compile-file (filename &optional load)

View file

@ -144,14 +144,6 @@
\(fn NODE CHILD)")
(defun ewoc--node-enter-before (node elemnode)
"Insert ELEMNODE before NODE in a DLL."
(assert (and (null (ewoc--node-left elemnode)) (null (ewoc--node-right elemnode))))
(setf (ewoc--node-left elemnode) (ewoc--node-left node))
(setf (ewoc--node-right elemnode) node)
(setf (ewoc--node-right (ewoc--node-left node)) elemnode)
(setf (ewoc--node-left node) elemnode))
(defun ewoc--node-next (dll node)
"Return the node after NODE, or nil if NODE is the last node."
(unless (eq (ewoc--node-right node) dll) (ewoc--node-right node)))
@ -213,36 +205,39 @@ BUT if it is the header or the footer in EWOC return nil instead."
(eq node (ewoc--footer ewoc)))
node))
(defun ewoc--create-node (data pretty-printer pos)
"Call PRETTY-PRINTER with point set at POS in current buffer.
Remember the start position. Create a wrapper containing that
start position and the element DATA."
(defun ewoc--insert-new-node (node data pretty-printer)
"Insert before NODE a new node for DATA, displayed by PRETTY-PRINTER.
Call PRETTY-PRINTER with point at NODE's start, thus pushing back
NODE and leaving the new node's start there. Return the new node."
(save-excursion
;; Remember the position as a number so that it doesn't move
;; when we insert the string.
(when (markerp pos) (setq pos (marker-position pos)))
(goto-char pos)
(let ((inhibit-read-only t))
(let* ((inhibit-read-only t)
(m (copy-marker (ewoc--node-start-marker node)))
(pos (marker-position m))
(elemnode (ewoc--node-create m data)))
(goto-char pos)
;; Insert the trailing newline using insert-before-markers
;; so that the start position for the next element is updated.
(insert-before-markers ?\n)
;; Move back, and call the pretty-printer.
(backward-char 1)
(funcall pretty-printer data)
(ewoc--node-create (copy-marker pos) data))))
(setf (marker-position m) pos
(ewoc--node-left elemnode) (ewoc--node-left node)
(ewoc--node-right elemnode) node
(ewoc--node-right (ewoc--node-left node)) elemnode
(ewoc--node-left node) elemnode)
elemnode)))
(defun ewoc--refresh-node (pp node)
"Redisplay the element represented by NODE using the pretty-printer PP."
(let ((inhibit-read-only t))
(save-excursion
;; First, remove the string from the buffer:
(delete-region (ewoc--node-start-marker node)
(1- (marker-position
(ewoc--node-start-marker (ewoc--node-right node)))))
;; Calculate and insert the string.
(goto-char (ewoc--node-start-marker node))
(funcall pp (ewoc--node-data node)))))
;; First, remove the string from the buffer:
(delete-region (ewoc--node-start-marker node)
(1- (marker-position
(ewoc--node-start-marker (ewoc--node-right node)))))
;; Calculate and insert the string.
(goto-char (ewoc--node-start-marker node))
(funcall pp (ewoc--node-data node))))
;;; ===========================================================================
;;; Public members of the Ewoc package
@ -271,22 +266,24 @@ be inserted at the bottom of the ewoc."
(new-ewoc
(ewoc--create (current-buffer)
pretty-printer nil nil dll))
(pos (point)))
(pos (point))
head foot)
(ewoc--set-buffer-bind-dll new-ewoc
;; Set default values
(unless header (setq header ""))
(unless footer (setq footer ""))
(setf (ewoc--node-start-marker dll) (copy-marker pos))
(let ((foot (ewoc--create-node footer 'insert pos))
(head (ewoc--create-node header 'insert pos)))
(ewoc--node-enter-before (ewoc--node-right dll) head)
(ewoc--node-enter-before dll foot)
(setf (ewoc--header new-ewoc) head)
(setf (ewoc--footer new-ewoc) foot)))
(setf (ewoc--node-start-marker dll) (copy-marker pos)
foot (ewoc--insert-new-node dll footer 'insert)
head (ewoc--insert-new-node foot header 'insert)
(ewoc--footer new-ewoc) foot
(ewoc--header new-ewoc) head))
;; Return the ewoc
new-ewoc))
(defalias 'ewoc-data 'ewoc--node-data)
(defalias 'ewoc-data 'ewoc--node-data
"Extract the data encapsulated by NODE and return it.
\(fn NODE)")
(defun ewoc-enter-first (ewoc data)
"Enter DATA first in EWOC.
@ -311,12 +308,7 @@ Return the new node."
"Enter a new element DATA before NODE in EWOC.
Return the new node."
(ewoc--set-buffer-bind-dll ewoc
(ewoc--node-enter-before
node
(ewoc--create-node
data
(ewoc--pretty-printer ewoc)
(ewoc--node-start-marker node)))))
(ewoc--insert-new-node node data (ewoc--pretty-printer ewoc))))
(defun ewoc-next (ewoc node)
"Return the node in EWOC that follows NODE.
@ -340,7 +332,7 @@ N counts from zero. Return nil if there is less than N elements.
If N is negative, return the -(N+1)th last element.
Thus, (ewoc-nth dll 0) returns the first node,
and (ewoc-nth dll -1) returns the last node.
Use `ewoc--node-data' to extract the data from the node."
Use `ewoc-data' to extract the data from the node."
;; Skip the header (or footer, if n is negative).
(setq n (if (< n 0) (1- n) (1+ n)))
(ewoc--filter-hf-nodes ewoc
@ -361,10 +353,11 @@ arguments will be passed to MAP-FUNCTION."
(ewoc--set-buffer-bind-dll-let* ewoc
((footer (ewoc--footer ewoc))
(node (ewoc--node-nth dll 1)))
(while (not (eq node footer))
(if (apply map-function (ewoc--node-data node) args)
(ewoc--refresh-node (ewoc--pretty-printer ewoc) node))
(setq node (ewoc--node-next dll node)))))
(save-excursion
(while (not (eq node footer))
(if (apply map-function (ewoc--node-data node) args)
(ewoc--refresh-node (ewoc--pretty-printer ewoc) node))
(setq node (ewoc--node-next dll node))))))
(defun ewoc-filter (ewoc predicate &rest args)
"Remove all elements in EWOC for which PREDICATE returns nil.
@ -473,8 +466,9 @@ If the EWOC is empty, nil is returned."
"Call EWOC's pretty-printer for each element in NODES.
Delete current text first, thus effecting a \"refresh\"."
(ewoc--set-buffer-bind-dll ewoc
(dolist (node nodes)
(ewoc--refresh-node (ewoc--pretty-printer ewoc) node))))
(save-excursion
(dolist (node nodes)
(ewoc--refresh-node (ewoc--pretty-printer ewoc) node)))))
(defun ewoc-goto-prev (ewoc arg)
"Move point to the ARGth previous element in EWOC.
@ -526,11 +520,11 @@ number of elements needs to be refreshed."
(delete-region (ewoc--node-start-marker (ewoc--node-nth dll 1))
(ewoc--node-start-marker footer))
(goto-char (ewoc--node-start-marker footer))
(let ((node (ewoc--node-nth dll 1)))
(let ((pp (ewoc--pretty-printer ewoc))
(node (ewoc--node-nth dll 1)))
(while (not (eq node footer))
(set-marker (ewoc--node-start-marker node) (point))
(funcall (ewoc--pretty-printer ewoc)
(ewoc--node-data node))
(funcall pp (ewoc--node-data node))
(insert "\n")
(setq node (ewoc--node-next dll node)))))
(set-marker (ewoc--node-start-marker footer) (point))))
@ -572,8 +566,9 @@ Return nil if the buffer has been deleted."
"Set the HEADER and FOOTER of EWOC."
(setf (ewoc--node-data (ewoc--header ewoc)) header)
(setf (ewoc--node-data (ewoc--footer ewoc)) footer)
(ewoc--refresh-node 'insert (ewoc--header ewoc))
(ewoc--refresh-node 'insert (ewoc--footer ewoc)))
(save-excursion
(ewoc--refresh-node 'insert (ewoc--header ewoc))
(ewoc--refresh-node 'insert (ewoc--footer ewoc))))
(provide 'ewoc)

View file

@ -162,6 +162,7 @@ The truename of a file is found by chasing all links
both at the file level and at the levels of the containing directories."
:type 'boolean
:group 'find-file)
(put 'find-file-visit-truename 'safe-local-variable 'boolean)
(defcustom revert-without-query nil
"*Specify which files should be reverted without query.
@ -249,6 +250,8 @@ nil means make them for files that have some already.
(other :tag "Always" t))
:group 'backup
:group 'vc)
(put 'version-control 'safe-local-variable
'(lambda (x) (or (booleanp x) (equal x 'never))))
(defcustom dired-kept-versions 2
"*When cleaning directory, number of versions to keep."
@ -268,12 +271,14 @@ If nil, ask confirmation. Any other value prevents any trimming."
"*Number of oldest versions to keep when a new numbered backup is made."
:type 'integer
:group 'backup)
(put 'kept-old-versions 'safe-local-variable 'integerp)
(defcustom kept-new-versions 2
"*Number of newest versions to keep when a new numbered backup is made.
Includes the new backup. Must be > 0"
:type 'integer
:group 'backup)
(put 'kept-new-versions 'safe-local-variable 'integerp)
(defcustom require-final-newline nil
"*Whether to add a newline automatically at the end of the file.
@ -1892,8 +1897,8 @@ in that case, this function acts as if `enable-local-variables' were t."
("\\.tar\\'" . tar-mode)
;; The list of archive file extensions should be in sync with
;; `auto-coding-alist' with `no-conversion' coding system.
("\\.\\(arc\\|zip\\|lzh\\|zoo\\|[jew]ar\\|xpi\\)\\'" . archive-mode)
("\\.\\(ARC\\|ZIP\\|LZH\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . archive-mode)
("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . archive-mode)
("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . archive-mode)
("\\.\\(sx[dmicw]\\|odt\\)\\'" . archive-mode) ; OpenOffice.org
;; Mailer puts message to be edited in
;; /tmp/Re.... or Message
@ -2351,27 +2356,12 @@ asking you for confirmation."
;; FIXME: Some variables should be moved according to the rules above.
(mapc (lambda (pair)
(put (car pair) 'safe-local-variable (cdr pair)))
'((byte-compile-dynamic . booleanp)
(byte-compile-dynamic-docstrings . booleanp)
(byte-compile-warnings . booleanp)
(c-basic-offset . integerp)
(c-file-style . stringp)
(c-indent-level . integerp)
(comment-column . integerp)
(compile-command . string-or-null-p)
(find-file-visit-truename . booleanp)
(fill-column . integerp)
(fill-prefix . string-or-null-p)
'((fill-column . integerp) ;; C source code
(indent-tabs-mode . booleanp) ;; C source code
(kept-old-versions . integerp)
(kept-new-versions . integerp)
(left-margin . integerp)
(no-byte-compile . booleanp)
(left-margin . integerp) ;; C source code
(no-update-autoloads . booleanp)
(outline-regexp . string-or-null-p)
(tab-width . integerp) ;; C source code
(truncate-lines . booleanp) ;; C source code
(version-control . symbolp)))
(truncate-lines . booleanp))) ;; C source code
(put 'c-set-style 'safe-local-eval-function t)
@ -4114,7 +4104,7 @@ non-nil, it is called instead of rereading visited file contents."
(let ((inhibit-read-only t)
;; Keep the current buffer-file-coding-system.
(coding-system buffer-file-coding-system)
;; Auto-saved file shoule be read with special coding.
;; Auto-saved file should be read with special coding.
(coding-system-for-read 'auto-save-coding))
(erase-buffer)
(insert-file-contents file-name nil)

View file

@ -642,10 +642,12 @@ it is displayed along with the global value."
(princ (if (stringp (car obsolete)) (car obsolete)
(format "use `%s' instead." (car obsolete))))
(terpri))
(when safe-var
(princ "This variable is safe to use as a file local variable")
(princ (format " only if its value\nsatisfies the predicate `%s'.\n"
safe-var))
(when safe-var
(princ "This variable is safe as a file local variable ")
(princ "if its value\nsatisfies the predicate ")
(princ (if (byte-code-function-p safe-var)
"which is byte-compiled expression.\n"
(format "`%s'.\n" safe-var)))
(terpri))
(princ "Documentation:\n")
(princ (or doc "Not documented as a variable.")))

View file

@ -704,7 +704,12 @@ This discards the buffer's undo information."
(buffer-undo-list t))
(apply 'call-process-region (point-min) (point-max)
(expand-file-name hexl-program exec-directory)
t t nil (split-string hexl-options))
t t nil
;; Manually encode the args, otherwise they're encoded using
;; coding-system-for-write (i.e. buffer-file-coding-system) which
;; may not be what we want (e.g. utf-16 on a non-utf-16 system).
(mapcar (lambda (s) (encode-coding-string s locale-coding-system))
(split-string hexl-options)))
(if (> (point) (hexl-address-to-marker hexl-max-address))
(hexl-goto-address hexl-max-address))))

View file

@ -1560,8 +1560,8 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place."
;;; FILE I/O
(defcustom auto-coding-alist
'(("\\.\\(arc\\|zip\\|lzh\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion)
("\\.\\(ARC\\|ZIP\\|LZH\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion)
'(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion)
("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion)
("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion)
("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)

View file

@ -104,6 +104,7 @@ not to go beyond `comment-fill-column'."
:type 'integer
:group 'comment)
(make-variable-buffer-local 'comment-column)
;;;###autoload(put 'comment-column 'safe-local-variable 'integerp)
;;;###autoload
(defvar comment-start nil

View file

@ -54,6 +54,7 @@ The recommended way to set this is with a Local Variables: list
in the file it applies to. See also `outline-heading-end-regexp'."
:type '(choice regexp (const nil))
:group 'outlines)
;;;###autoload(put 'outline-regexp 'safe-local-variable 'string-or-null-p)
(defcustom outline-heading-end-regexp "\n"
"Regular expression to match the end of a heading line.

View file

@ -62,6 +62,8 @@
;; In case c-mode.el isn't loaded
(defvar c-indent-level 2
"*Indentation of C statements with respect to containing block.")
;;;###autoload(put 'c-indent-level 'safe-local-variable 'integerp)
(defvar c-brace-imaginary-offset 0
"*Imagined indentation of a C open brace that actually follows a statement.")
(defvar c-brace-offset 0

View file

@ -167,6 +167,8 @@ Optional argument ARG is the same as for `forward-word'."
(t
(point))))
(put 'c-forward-subword 'CUA 'move)
(defun c-backward-subword (&optional arg)
"Do the same as `backward-word' but on subwords.
See the command `c-subword-mode' for a description of subwords.
@ -193,6 +195,8 @@ Optional argument ARG is the same as for `mark-word'."
(point))
nil t))))
(put 'c-backward-subword 'CUA 'move)
(defun c-kill-subword (arg)
"Do the same as `kill-word' but on subwords.
See the command `c-subword-mode' for a description of subwords.
@ -222,7 +226,7 @@ Optional argument ARG is the same as for `capitalize-word'."
(let ((count (abs arg))
(direction (if (< 0 arg) 1 -1)))
(dotimes (i count)
(when (re-search-forward
(when (re-search-forward
(concat "[" c-alpha "]")
nil t)
(goto-char (match-beginning 0)))
@ -253,15 +257,15 @@ Optional argument ARG is the same as for `upcase-word'."
;;
(defun c-forward-subword-internal ()
(if (and
(save-excursion
(save-excursion
(let ((case-fold-search nil))
(re-search-forward
(re-search-forward
(concat "\\W*\\(\\([" c-upper "]*\\W?\\)[" c-lower c-digit "]*\\)")
nil t)))
(> (match-end 0) (point))) ; So we don't get stuck at a
; "word-constituent" which isn't c-upper,
; c-lower or c-digit
(goto-char
(goto-char
(cond
((< 1 (- (match-end 2) (match-beginning 2)))
(1- (match-end 2)))
@ -271,15 +275,15 @@ Optional argument ARG is the same as for `upcase-word'."
(defun c-backward-subword-internal ()
(if (save-excursion
(let ((case-fold-search nil))
(if (save-excursion
(let ((case-fold-search nil))
(re-search-backward
(concat
"\\(\\(\\W\\|[" c-lower c-digit "]\\)\\([" c-upper "]+\\W*\\)"
"\\|\\W\\w+\\)")
"\\|\\W\\w+\\)")
nil t)))
(goto-char
(cond
(goto-char
(cond
((and (match-end 3)
(< 1 (- (match-end 3) (match-beginning 3)))
(not (eq (point) (match-end 3))))

View file

@ -248,6 +248,7 @@ Also used as the indentation step when `c-syntactic-indentation' is
nil."
:type 'integer
:group 'c)
;;;###autoload(put 'c-basic-offset 'safe-local-variable 'integerp)
(defcustom c-tab-always-indent t
"*Controls the operation of the TAB key.
@ -1542,6 +1543,7 @@ will set the style of the file to this value automatically.
Note that file style settings are applied before file offset settings
as designated in the variable `c-file-offsets'.")
(make-variable-buffer-local 'c-file-style)
;;;###autoload(put 'c-file-style 'safe-local-variable 'string-or-null-p)
(defvar c-file-offsets nil
"Variable interface for setting offsets via File Local Variables.

View file

@ -453,6 +453,7 @@ You might also use mode hooks to specify it in certain modes, like this:
(file-name-sans-extension buffer-file-name))))))"
:type 'string
:group 'compilation)
;;;###autoload(put 'compile-command 'safe-local-variable 'stringp)
;;;###autoload
(defcustom compilation-disable-input nil

View file

@ -732,9 +732,9 @@ With arg, enter name of variable to be watched in the minibuffer."
(gdb-enqueue-input
(list
(if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
(concat "server interpreter mi \"-var-evaluate-expression "
(concat "server interpreter mi \"0-var-evaluate-expression "
(car var) "\"\n")
(concat "-var-evaluate-expression " (car var) "\n"))
(concat "0-var-evaluate-expression " (car var) "\n"))
`(lambda () (gdb-var-evaluate-expression-handler
,(car var) nil)))))
(if (search-forward "Undefined command" nil t)
@ -755,11 +755,13 @@ With arg, enter name of variable to be watched in the minibuffer."
(defun gdb-var-evaluate-expression-handler (varnum changed)
(goto-char (point-min))
(re-search-forward ".*value=\\(\".*\"\\)" nil t)
(re-search-forward "\\(.+\\)\\^done,value=\\(\".*\"\\)" nil t)
(setq gdb-pending-triggers
(delq (string-to-number (match-string 1)) gdb-pending-triggers))
(let ((var (assoc varnum gdb-var-list)))
(when var
(if changed (setcar (nthcdr 5 var) 'changed))
(setcar (nthcdr 4 var) (read (match-string 1)))))
(setcar (nthcdr 4 var) (read (match-string 2)))))
(gdb-speedbar-update))
(defun gdb-var-list-children (varnum)
@ -791,7 +793,7 @@ numchild=\"\\(.*?\\)\",.*?type=\"\\(.*?\\)\".*?}")
(gdb-enqueue-input
(list
(concat
"server interpreter mi \"-var-evaluate-expression "
"server interpreter mi \"0-var-evaluate-expression "
(car varchild) "\"\n")
`(lambda () (gdb-var-evaluate-expression-handler
,(car varchild) nil)))))))
@ -813,16 +815,19 @@ type_changed=\".*?\".*?}")
(dolist (var gdb-var-list)
(setcar (nthcdr 5 var) nil))
(goto-char (point-min))
(while (re-search-forward gdb-var-update-regexp nil t)
(let ((varnum (match-string 1)))
(if (string-equal (match-string 2) "false")
(let ((var (assoc varnum gdb-var-list)))
(if var (setcar (nthcdr 5 var) 'out-of-scope)))
(gdb-enqueue-input
(list
(concat "server interpreter mi \"-var-evaluate-expression "
varnum "\"\n")
`(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))))))
(let ((n 0))
(while (re-search-forward gdb-var-update-regexp nil t)
(let ((varnum (match-string 1)))
(if (string-equal (match-string 2) "false")
(let ((var (assoc varnum gdb-var-list)))
(if var (setcar (nthcdr 5 var) 'out-of-scope)))
(setq n (1+ n))
(push n gdb-pending-triggers)
(gdb-enqueue-input
(list
(concat "server interpreter mi \"" (number-to-string n)
"-var-evaluate-expression " varnum "\"\n")
`(lambda () (gdb-var-evaluate-expression-handler ,varnum t))))))))
(setq gdb-pending-triggers
(delq 'gdb-var-update gdb-pending-triggers)))
@ -832,7 +837,9 @@ type_changed=\".*?\".*?}")
(if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
'(gdbmi gdba))
(let ((text (speedbar-line-text)))
(string-match "\\(\\S-+\\)" text)
;; Can't use \\S-+ for whitespace because
;; speedbar has a whacky syntax table.
(string-match "\\([^ \t]+\\)" text)
(let ((expr (match-string 1 text)) var varnum)
(catch 'expr-found
(dolist (var1 gdb-var-list)
@ -2803,6 +2810,7 @@ Kills the gdb buffers, and resets variables and the source buffers."
(setq overlay-arrow-variable-list
(delq 'gdb-overlay-arrow-position overlay-arrow-variable-list))
(setq fringe-indicator-alist '((overlay-arrow . right-triangle)))
(if (boundp 'speedbar-frame) (speedbar-timer-fn))
(setq gud-running nil)
(setq gdb-active-process nil)
(setq gdb-var-list nil)

View file

@ -3480,7 +3480,8 @@ so they have been disabled."))
gdb-server-prefix "macro expand " expr "\n")
`(lambda () (gdb-tooltip-print-1 ,expr))))
(gdb-enqueue-input
(list (concat cmd "\n") 'gdb-tooltip-print)))
(list (concat cmd "\n")
`(lambda () (gdb-tooltip-print ,expr)))))
(setq gud-tooltip-original-filter (process-filter process))
(set-process-filter process 'gud-tooltip-process-output)
(gud-basic-call cmd))

View file

@ -252,8 +252,6 @@ Emacs distribution as your standard \"editor\".
Prefix arg means just kill any existing server communications subprocess."
(interactive "P")
;; Make sure there is a safe directory in which to place the socket.
(server-ensure-safe-dir server-socket-dir)
;; kill it dead!
(if server-process
(condition-case () (delete-process server-process) (error nil)))
@ -265,7 +263,10 @@ Prefix arg means just kill any existing server communications subprocess."
(while server-clients
(let ((buffer (nth 1 (car server-clients))))
(server-buffer-done buffer)))
;; Now any previous server is properly stopped.
(unless leave-dead
;; Make sure there is a safe directory in which to place the socket.
(server-ensure-safe-dir server-socket-dir)
(if server-process
(server-log (message "Restarting server")))
(letf (((default-file-modes) ?\700))
@ -578,7 +579,7 @@ starts server process and that is all. Invoked by \\[server-edit]."
(if (or arg
(not server-process)
(memq (process-status server-process) '(signal exit)))
(server-start nil)
(server-mode 1)
(apply 'server-switch-buffer (server-done))))
(defun server-switch-buffer (&optional next-buffer killed-one)
@ -637,14 +638,15 @@ Arg NEXT-BUFFER is a suggestion; if it is a live buffer, use it."
(define-key ctl-x-map "#" 'server-edit)
(defun server-unload-hook ()
(server-start t)
(server-mode -1)
(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
(remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function)
(remove-hook 'kill-buffer-hook 'server-kill-buffer))
(add-hook 'kill-emacs-hook (lambda () (server-mode -1))) ;Cleanup upon exit.
(add-hook 'server-unload-hook 'server-unload-hook)
(provide 'server)
;;; arch-tag: 1f7ecb42-f00a-49f8-906d-61995d84c8d6
;; arch-tag: 1f7ecb42-f00a-49f8-906d-61995d84c8d6
;;; server.el ends here

View file

@ -3646,7 +3646,8 @@ Outline mode sets this."
;; Move to the chosen destination position from above,
;; with intangibility processing enabled.
(goto-char (point-min))
;; Avoid calling point-entered and point-left.
(goto-char new)
(let ((inhibit-point-motion-hooks nil))
(goto-char new)
@ -4058,6 +4059,7 @@ If optional arg REALLY-WORD is non-nil, it finds just a word."
string)
:group 'fill)
(make-variable-buffer-local 'fill-prefix)
;;;###autoload(put 'fill-prefix 'safe-local-variable 'string-or-null-p)
(defcustom auto-fill-inhibit-regexp nil
"*Regexp to match lines which should not be auto-filled."

View file

@ -1123,28 +1123,36 @@ The return value is the new value of LIST-VAR."
(< oa ob)
oa)))))))
(defun add-to-history (history-var newelt &optional maxelt)
(defun add-to-history (history-var newelt &optional maxelt keep-all)
"Add NEWELT to the history list stored in the variable HISTORY-VAR.
Return the new history list.
If MAXELT is non-nil, it specifies the maximum length of the history.
Otherwise, the maximum history length is the value of the `history-length'
property on symbol HISTORY-VAR, if set, or the value of the `history-length'
variable.
Remove duplicates of NEWELT unless `history-delete-duplicates' is nil."
Remove duplicates of NEWELT if `history-delete-duplicates' is non-nil.
If optional fourth arg KEEP-ALL is non-nil, add NEWELT to history even
if it is empty or a duplicate."
(unless maxelt
(setq maxelt (or (get history-var 'history-length)
history-length)))
(let ((history (symbol-value history-var))
tail)
(if history-delete-duplicates
(setq history (delete newelt history)))
(setq history (cons newelt history))
(when (integerp maxelt)
(if (= 0 maxelt)
(setq history nil)
(setq tail (nthcdr (1- maxelt) history))
(when (consp tail)
(setcdr tail nil))))
(when (and (listp history)
(or keep-all
(not (stringp newelt))
(> (length newelt) 0))
(or keep-all
(not (equal (car history) newelt))))
(if history-delete-duplicates
(delete newelt history))
(setq history (cons newelt history))
(when (integerp maxelt)
(if (= 0 maxelt)
(setq history nil)
(setq tail (nthcdr (1- maxelt) history))
(when (consp tail)
(setcdr tail nil)))))
(set history-var history)))

View file

@ -230,7 +230,7 @@
;; These keys will be available xterm starting probably from
;; version 214.
(define-key map "\e[27;5;8~" [(control ?\t)])
(define-key map "\e[27;5;9~" [(control ?\t)])
(define-key map "\e[27;5;44~" [(control ?\,)])
(define-key map "\e[27;5;46~" [(control ?\.)])
(define-key map "\e[27;5;47~" [(control ?\/)])

View file

@ -4348,6 +4348,7 @@ used to insert the time stamp into the buffer to include the time."
(parse-time-string (match-string 1))))
ct))
(calendar-move-hook nil)
(view-calendar-holidays-initially nil)
(view-diary-entries-initially nil)
(timestr (format-time-string
(if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
@ -4724,6 +4725,7 @@ A prefix ARG can be used to force the current date."
(interactive "P")
(let ((tsr org-ts-regexp) diff
(calendar-move-hook nil)
(view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(if (or (org-at-timestamp-p)
(save-excursion
@ -6910,6 +6912,7 @@ argument, latitude and longitude will be prompted for."
(error "Don't know which date to open in calendar")))
(date (calendar-gregorian-from-absolute day))
(calendar-move-hook nil)
(view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(calendar)
(calendar-goto-date date)))

View file

@ -1,3 +1,7 @@
2006-05-12 Reiner Steib <Reiner.Steib@gmx.de>
* url-http.el (url-http-file-exists-p): Test if status is integer.
2006-05-05 Andreas Seltenreich <seltenreich@gmx.de> (tiny change)
* url-http.el (url-http-parse-headers): Don't reuse connection if

View file

@ -1141,7 +1141,8 @@ CBARGS as the arguments."
(setq exists nil)
(setq status (url-http-symbol-value-in-buffer 'url-http-response-status
buffer 500)
exists (and (>= status 200) (< status 300)))
exists (and (integerp status)
(>= status 200) (< status 300)))
(kill-buffer buffer))
exists))

View file

@ -17100,7 +17100,7 @@ Set the shape and color of the mouse cursor:
@item
Convert @kbd{@key{CTL}-h} into @key{DEL} and @key{DEL}
into @kbd{@key{CTL}-h}.@*
(Some olders keyboards needed this, although I have not seen the
(Some older keyboards needed this, although I have not seen the
problem recently.)
@smallexample
@ -19489,7 +19489,7 @@ in this case would end up as 15.)
@cindex Print horizontal axis
@cindex Horizontal axis printing
X axis labels are much like Y axis labels, except that the tics are on a
X axis labels are much like Y axis labels, except that the ticks are on a
line above the numbers. Labels should look like this:
@smallexample
@ -19501,7 +19501,7 @@ line above the numbers. Labels should look like this:
The first tic is under the first column of the graph and is preceded by
several blank spaces. These spaces provide room in rows above for the Y
axis labels. The second, third, fourth, and subsequent tics are all
axis labels. The second, third, fourth, and subsequent ticks are all
spaced equally, according to the value of @code{X-axis-label-spacing}.
The second row of the X axis consists of numbers, preceded by several
@ -19629,7 +19629,7 @@ looks like this:
@end smallexample
We also need to determine the length of the horizontal axis, which is
the length of the numbers list, and the number of tics in the horizontal
the length of the numbers list, and the number of ticks in the horizontal
axis:
@smallexample
@ -19646,7 +19646,7 @@ axis:
@end group
@group
;; number-of-X-tics
;; number-of-X-ticks
(if (zerop (% (X-length tic-width)))
(/ (X-length tic-width))
(1+ (/ (X-length tic-width))))
@ -19661,7 +19661,7 @@ All this leads us directly to the function for printing the X axis tic line:
@group
(defun print-X-axis-tic-line
(number-of-X-tics X-axis-leading-spaces X-axis-tic-element)
"Print tics for X axis."
"Print ticks for X axis."
(insert X-axis-leading-spaces)
(insert X-axis-tic-symbol) ; @r{Under first column.}
@end group
@ -19676,7 +19676,7 @@ All this leads us directly to the function for printing the X axis tic line:
X-axis-tic-symbol))
@end group
@group
;; @r{Insert remaining tics.}
;; @r{Insert remaining ticks.}
(while (> number-of-X-tics 1)
(insert X-axis-tic-element)
(setq number-of-X-tics (1- number-of-X-tics))))
@ -20905,7 +20905,7 @@ Optionally, print according to VERTICAL-STEP."
@group
(defun print-X-axis-tic-line
(number-of-X-tics X-axis-leading-spaces X-axis-tic-element)
"Print tics for X axis."
"Print ticks for X axis."
(insert X-axis-leading-spaces)
(insert X-axis-tic-symbol) ; @r{Under first column.}
@end group
@ -20920,7 +20920,7 @@ Optionally, print according to VERTICAL-STEP."
X-axis-tic-symbol))
@end group
@group
;; @r{Insert remaining tics.}
;; @r{Insert remaining ticks.}
(while (> number-of-X-tics 1)
(insert X-axis-tic-element)
(setq number-of-X-tics (1- number-of-X-tics))))

View file

@ -1,3 +1,53 @@
2006-05-16 Kim F. Storm <storm@cua.dk>
* minibuf.texi (Minibuffer History): Update add-to-history.
2006-05-15 Oliver Scholz <epameinondas@gmx.de> (tiny change)
* nonascii.texi (Explicit Encoding): Fix
typo (encoding<->decoding).
2006-05-14 Richard Stallman <rms@gnu.org>
* buffers.texi (Creating Buffers): Cleanup.
* files.texi (Visiting Functions): Rewrite in find-file-noselect.
2006-05-13 Eli Zaretskii <eliz@gnu.org>
* buffers.texi (Current Buffer): Document that with-temp-buffer
disables undo.
* os.texi (Terminal-Specific): More accurate description of how
Emacs searches for the terminal-specific libraries.
2006-05-12 Eli Zaretskii <eliz@gnu.org>
* hooks.texi (Standard Hooks) [iftex]: Convert @xref's to
emacs-xtra to @inforef's.
* text.texi (Undo): Document that undo is turned off in buffers
whose names begin with a space.
* buffers.texi (Buffer Names): Add index entries for buffers whose
names begin with a space.
(Creating Buffers): Document that undo is turned off in buffers
whose names begin with a space.
* files.texi (Visiting Functions, Reading from Files)
(Saving Buffers): Mention code and EOL conversions by file I/O
primitives and subroutines.
* nonascii.texi (Lisp and Coding Systems): Document
coding-system-eol-type. Add index entries for eol conversion.
* display.texi (Defining Faces): Mention `mac', and add an xref to
where window-system is described.
2006-05-10 Richard Stallman <rms@gnu.org>
* internals.texi (Writing Emacs Primitives): Clarify GCPRO rules.
2006-05-10 Reiner Steib <Reiner.Steib@gmx.de>
* variables.texi (File Local Variables): Recommend to quote lambda

View file

@ -233,7 +233,9 @@ The @code{with-temp-buffer} macro evaluates the @var{body} forms
with a temporary buffer as the current buffer. It saves the identity of
the current buffer, creates a temporary buffer and makes it current,
evaluates the @var{body} forms, and finally restores the previous
current buffer while killing the temporary buffer.
current buffer while killing the temporary buffer. By default, undo
information (@pxref{Undo}) is not recorded in the buffer created by
this macro (but @var{body} can enable that, if needed).
The return value is the value of the last form in @var{body}. You can
return the contents of the temporary buffer by using
@ -257,6 +259,8 @@ sort, and an error is signaled if it is neither a string nor a buffer.
Any argument called @var{buffer} must be an actual buffer
object, not a name.
@cindex hidden buffers
@cindex buffers without undo information
Buffers that are ephemeral and generally uninteresting to the user
have names starting with a space, so that the @code{list-buffers} and
@code{buffer-menu} commands don't mention them (but if such a buffer
@ -908,8 +912,9 @@ nor a buffer.
@end example
The major mode for a newly created buffer is set to Fundamental mode.
The variable @code{default-major-mode} is handled at a higher level.
@xref{Auto Major Mode}.
(The variable @code{default-major-mode} is handled at a higher level;
see @ref{Auto Major Mode}.) If the name begins with a space, the
buffer initially disables undo information recording (@pxref{Undo}).
@end defun
@defun generate-new-buffer name

View file

@ -1772,8 +1772,9 @@ apply to. Here are the possible values of @var{characteristic}:
@item type
The kind of window system the frame uses---either @code{graphic} (any
graphics-capable display), @code{x}, @code{pc} (for the MS-DOS console),
@code{w32} (for MS Windows 9X/NT), or @code{tty} (a non-graphics-capable
display).
@code{w32} (for MS Windows 9X/NT/2K/XP), @code{mac} (for the Macintosh
display), or @code{tty} (a non-graphics-capable display).
@xref{Window Systems, window-system}.
@item class
What kinds of colors the frame supports---either @code{color},

View file

@ -114,21 +114,24 @@ When @code{find-file} is called interactively, it prompts for
@end deffn
@defun find-file-noselect filename &optional nowarn rawfile wildcards
This function is the guts of all the file-visiting functions. It finds
or creates a buffer visiting the file @var{filename}, and returns it.
It uses an existing buffer if there is one, and otherwise creates a new
buffer and reads the file into it. You may make the buffer current or
display it in a window if you wish, but this function does not do so.
This function is the guts of all the file-visiting functions. It
returns a buffer visiting the file @var{filename}. You may make the
buffer current or display it in a window if you wish, but this
function does not do so.
If @var{wildcards} is non-@code{nil},
then @code{find-file-noselect} expands wildcard
characters in @var{filename} and visits all the matching files.
The function returns an existing buffer if there is one; otherwise it
creates a new buffer and reads the file into it. When
@code{find-file-noselect} uses an existing buffer, it first verifies
that the file has not changed since it was last visited or saved in
that buffer. If the file has changed, this function asks the user
whether to reread the changed file. If the user says @samp{yes}, any
edits previously made in the buffer are lost.
When @code{find-file-noselect} uses an existing buffer, it first
verifies that the file has not changed since it was last visited or
saved in that buffer. If the file has changed, then this function asks
the user whether to reread the changed file. If the user says
@samp{yes}, any changes previously made in the buffer are lost.
Reading the file involves decoding the file's contents (@pxref{Coding
Systems}), including end-of-line conversion, and format conversion
(@pxref{Format Conversion}). If @var{wildcards} is non-@code{nil},
then @code{find-file-noselect} expands wildcard characters in
@var{filename} and visits all the matching files.
This function displays warning or advisory messages in various peculiar
cases, unless the optional argument @var{nowarn} is non-@code{nil}. For
@ -145,10 +148,9 @@ than the file just visited, and finishes by running the functions in
If the optional argument @var{rawfile} is non-@code{nil}, then
@code{after-find-file} is not called, and the
@code{find-file-not-found-functions} are not run in case of failure. What's
more, a non-@code{nil} @var{rawfile} value suppresses coding system
conversion (@pxref{Coding Systems}) and format conversion (@pxref{Format
Conversion}).
@code{find-file-not-found-functions} are not run in case of failure.
What's more, a non-@code{nil} @var{rawfile} value suppresses coding
system conversion and format conversion.
The @code{find-file-noselect} function usually returns the buffer that
is visiting the file @var{filename}. But, if wildcards are actually
@ -395,11 +397,12 @@ You might wish to save the file modes value returned by
bits of the file that you write. This is what @code{save-buffer}
normally does. @xref{Making Backups,, Making Backup Files}.
The hook functions in @code{write-file-functions} are also responsible for
encoding the data (if desired): they must choose a suitable coding
system (@pxref{Lisp and Coding Systems}), perform the encoding
(@pxref{Explicit Encoding}), and set @code{last-coding-system-used} to
the coding system that was used (@pxref{Encoding and I/O}).
The hook functions in @code{write-file-functions} are also responsible
for encoding the data (if desired): they must choose a suitable coding
system and end-of-line conversion (@pxref{Lisp and Coding Systems}),
perform the encoding (@pxref{Explicit Encoding}), and set
@code{last-coding-system-used} to the coding system that was used
(@pxref{Encoding and I/O}).
If you set this hook locally in a buffer, it is assumed to be
associated with the file or the way the contents of the buffer were
@ -496,7 +499,8 @@ appropriate. @xref{Format Conversion}. It also calls the functions in
the list @code{after-insert-file-functions}; see @ref{Saving
Properties}. Normally, one of the functions in the
@code{after-insert-file-functions} list determines the coding system
(@pxref{Coding Systems}) used for decoding the file's contents.
(@pxref{Coding Systems}) used for decoding the file's contents,
including end-of-line conversion.
If @var{visit} is non-@code{nil}, this function additionally marks the
buffer as unmodified and sets up various fields in the buffer so that it

View file

@ -88,7 +88,7 @@ or their values are used). The variables whose names end in
@item calendar-load-hook
@iftex
@xref{Calendar Customizing,,, emacs-xtra}.
@inforef{Calendar Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing,,, emacs}.
@ -131,7 +131,7 @@ Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}.
@item diary-display-hook
@iftex
@xref{Fancy Diary Display,,, emacs-xtra}.
@inforef{Fancy Diary Display,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Fancy Diary Display,,, emacs}.
@ -182,7 +182,7 @@ for appointment notification.
@item initial-calendar-window-hook
@iftex
@xref{Calendar Customizing,,, emacs-xtra}.
@inforef{Calendar Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing,,, emacs}.
@ -207,7 +207,7 @@ for appointment notification.
@item list-diary-entries-hook
@iftex
@xref{Fancy Diary Display,,, emacs-xtra}.
@inforef{Fancy Diary Display,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Fancy Diary Display,,, emacs}.
@ -219,7 +219,7 @@ Manual}.
@item mark-diary-entries-hook
@iftex
@xref{Fancy Diary Display,,, emacs-xtra}.
@inforef{Fancy Diary Display,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Fancy Diary Display,,, emacs}.
@ -239,7 +239,7 @@ Manual}.
@item nongregorian-diary-listing-hook
@iftex
@xref{Hebrew/Islamic Entries,,, emacs-xtra}.
@inforef{Hebrew/Islamic Entries,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Hebrew/Islamic Entries,,, emacs}.
@ -247,7 +247,7 @@ Manual}.
@item nongregorian-diary-marking-hook
@iftex
@xref{Hebrew/Islamic Entries,,, emacs-xtra}.
@inforef{Hebrew/Islamic Entries,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Hebrew/Islamic Entries,,, emacs}.
@ -266,7 +266,7 @@ Manual}.
@item print-diary-entries-hook
@iftex
@xref{Diary Customizing,,, emacs-xtra}.
@inforef{Diary Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Diary Customizing,,, emacs}.
@ -297,7 +297,7 @@ Manual}.
@item today-visible-calendar-hook
@iftex
@xref{Calendar Customizing,,, emacs-xtra}.
@inforef{Calendar Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing,,, emacs}.
@ -305,7 +305,7 @@ Manual}.
@item today-invisible-calendar-hook
@iftex
@xref{Calendar Customizing,,, emacs-xtra}.
@infref{Calendar Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing,,, emacs}.

View file

@ -615,32 +615,37 @@ arguments, and the second is the address of a block containing their
values. They have types @code{int} and @w{@code{Lisp_Object *}}.
Within the function @code{For} itself, note the use of the macros
@code{GCPRO1} and @code{UNGCPRO}. @code{GCPRO1} is used to ``protect''
a variable from garbage collection---to inform the garbage collector that
it must look in that variable and regard its contents as an accessible
object. This is necessary whenever you call @code{Feval} or anything
that can directly or indirectly call @code{Feval}. At such a time, any
Lisp object that you intend to refer to again must be protected somehow.
@code{UNGCPRO} cancels the protection of the variables that are
protected in the current function. It is necessary to do this explicitly.
@code{GCPRO1} and @code{UNGCPRO}. @code{GCPRO1} is used to
``protect'' a variable from garbage collection---to inform the garbage
collector that it must look in that variable and regard its contents
as an accessible object. GC protection is necessary whenever you call
@code{Feval} or anything that can directly or indirectly call
@code{Feval}. At such a time, any Lisp object that this function may
refer to again must be protected somehow.
It suffices to ensure that at least one pointer to each object is
GC-protected; as long as the object is not recycled, all pointers to
it remain valid. So if you are sure that a local variable points to
an object that will be preserved by some other pointer, that local
variable does not need a @code{GCPRO}. (Formerly, strings were an
exception to this rule; in older Emacs versions, every pointer to a
string needed to be marked by GC.)
GC-protected; that way, the object cannot be recycled, so all pointers
to it remain valid. Thus, a particular local variable can do without
protection if it is certain that the object it points to will be
preserved by some other pointer (such as another local variable which
has a @code{GCPRO})@footnote{Formerly, strings were a special
exception; in older Emacs versions, every local variable that might
point to a string needed a @code{GCPRO}.}. Otherwise, the local
variable needs a @code{GCPRO}.
The macro @code{GCPRO1} protects just one local variable. If you
want to protect two, use @code{GCPRO2} instead; repeating
@code{GCPRO1} will not work. Macros, @code{GCPRO3}, @code{GCPRO4},
@code{GCPRO5}, and @code{GCPRO6} also exist. These macros implicitly
use local variables such as @code{gcpro1}; you must declare these
explicitly, with type @code{struct gcpro}. Thus, if you use
want to protect two variables, use @code{GCPRO2} instead; repeating
@code{GCPRO1} will not work. Macros @code{GCPRO3}, @code{GCPRO4},
@code{GCPRO5}, and @code{GCPRO6} also exist. All these macros
implicitly use local variables such as @code{gcpro1}; you must declare
these explicitly, with type @code{struct gcpro}. Thus, if you use
@code{GCPRO2}, you must declare @code{gcpro1} and @code{gcpro2}.
Alas, we can't explain all the tricky details here.
@code{UNGCPRO} cancels the protection of the variables that are
protected in the current function. It is necessary to do this
explicitly.
Built-in functions that take a variable number of arguments actually
accept two arguments at the C level: the number of Lisp arguments, and
a @code{Lisp_Object *} pointer to a C vector containing those Lisp

View file

@ -449,17 +449,20 @@ list, put the length in the @code{history-length} property of the
history list symbol. The variable @code{history-delete-duplicates}
specifies whether to delete duplicates in history.
@defun add-to-history history-var newelt &optional maxelt
This function adds a new element @var{newelt} to the history list
stored in the variable @var{history-var}, and returns the updated
history list. By default, the list length is limited by the value
specified by @code{history-length} (described below), but the optional
argument @var{maxelt} overrides that. The possible values of
@defun add-to-history history-var newelt &optional maxelt keep-all
This function adds a new element @var{newelt}, if non-empty, to the
history list stored in the variable @var{history-var}, and returns the
updated history list. By default, the list length is limited by the
value specified by @code{history-length} (described below), but the
optional argument @var{maxelt} overrides that. The possible values of
@var{maxelt} have the same meaning as the values of
@code{history-length}.
Duplicate members are removed from the history list, unless
@code{history-delete-duplicates} is @code{nil}.
Duplicate members are removed from the history list, if
@code{history-delete-duplicates} is non-@code{nil}.
If @var{keep-all} is non-@code{nil}, even an empty or duplicate
@var{newelt} element is added to the history list.
@end defun
@defvar history-length

View file

@ -805,6 +805,35 @@ If that is valid, it returns @var{coding-system}.
Otherwise it signals an error with condition @code{coding-system-error}.
@end defun
@cindex EOL conversion
@cindex end-of-line conversion
@cindex line end conversion
@defun coding-system-eol-type coding-system
This function returns the type of end-of-line (a.k.a.@: @dfn{eol})
conversion used by @var{coding-system}. If @var{coding-system}
specifies a certain eol conversion, the return value is an integer 0,
1, or 2, standing for @code{unix}, @code{dos}, and @code{mac},
respectively. If @var{coding-system} doesn't specify eol conversion
explicitly, the return value is a vector of coding systems, each one
with one of the possible eol conversion types, like this:
@lisp
(coding-system-eol-type 'latin-1)
@result{} [latin-1-unix latin-1-dos latin-1-mac]
@end lisp
@noindent
If this function returns a vector, Emacs will decide, as part of the
text encoding or decoding process, what eol conversion to use. For
decoding, the end-of-line format of the text is auto-detected, and the
eol conversion is set to match it (e.g., DOS-style CRLF format will
imply @code{dos} eol conversion). For encoding, the eol conversion is
taken from the appropriate default coding system (e.g.,
@code{default-buffer-file-coding-system} for
@code{buffer-file-coding-system}), or from the default eol conversion
appropriate for the underlying platform.
@end defun
@defun coding-system-change-eol-conversion coding-system eol-type
This function returns a coding system which is like @var{coding-system}
except for its eol conversion, which is specified by @code{eol-type}.
@ -1174,7 +1203,7 @@ encoding by binding @code{coding-system-for-write} to
@code{no-conversion}.
Here are the functions to perform explicit encoding or decoding. The
decoding functions produce sequences of bytes; the encoding functions
encoding functions produce sequences of bytes; the decoding functions
are meant to operate on sequences of bytes. All of these functions
discard text properties.

View file

@ -271,18 +271,24 @@ Normally, @code{term-file-prefix} has the value
in the normal manner, by searching the @code{load-path} directories, and
trying the @samp{.elc} and @samp{.el} suffixes.
The usual function of a terminal-specific library is to enable special
keys to send sequences that Emacs can recognize. It may also need to
set or add to @code{function-key-map} if the Termcap entry does not
specify all the terminal's function keys. @xref{Terminal Input}.
@cindex Termcap
When the name of the terminal type contains a hyphen, only the part of
the name before the first hyphen is significant in choosing the library
name. Thus, terminal types @samp{aaa-48} and @samp{aaa-30-rv} both use
the @file{term/aaa} library. If necessary, the library can evaluate
@code{(getenv "TERM")} to find the full name of the terminal
type.@refill
The usual function of a terminal-specific library is to enable
special keys to send sequences that Emacs can recognize. It may also
need to set or add to @code{function-key-map} if the Termcap or
Terminfo entry does not specify all the terminal's function keys.
@xref{Terminal Input}.
When the name of the terminal type contains a hyphen, and no library
is found whose name is identical to the terminal's name, Emacs strips
from the terminal's name the last hyphen and everything that follows
it, and tries again. This process is repeated until Emacs finds a
matching library or until there are no more hyphens in the name (the
latter means the terminal doesn't have any library specific to it).
Thus, for example, if there are no @samp{aaa-48} and @samp{aaa-30}
libraries, Emacs will try the same library @file{term/aaa.el} for
terminal types @samp{aaa-48} and @samp{aaa-30-rv}. If necessary, the
library can evaluate @code{(getenv "TERM")} to find the full name of
the terminal type.@refill
Your init file can prevent the loading of the
terminal-specific library by setting the variable

View file

@ -1766,7 +1766,7 @@ connections to the server. The default queue length is 5.
@item :host @var{host}
Specify the host to connect to. @var{host} should be a host name or
internet address, as a string, or the symbol @code{local} to specify
Internet address, as a string, or the symbol @code{local} to specify
the local host. If you specify @var{host} for a server, it must
specify a valid address for the local host, and only clients
connecting to that address will be accepted.
@ -1988,7 +1988,7 @@ Non-@code{nil} if non-blocking connect is supported.
@item (:type datagram)
Non-@code{nil} if datagrams are supported.
@item (:family local)
Non-@code{nil} if local (aka ``UNIX domain'') sockets are supported.
Non-@code{nil} if local (a.k.a.@: ``UNIX domain'') sockets are supported.
@item (:family ipv6)
Non-@code{nil} if IPv6 is supported.
@item (:service t)
@ -2039,7 +2039,7 @@ This function returns information about the network interface named
@table @var
@item addr
The internet protocol address.
The Internet protocol address.
@item bcast
The broadcast address.
@item netmask

View file

@ -1202,7 +1202,9 @@ value for @code{kill-ring-max} is 60.
Most buffers have an @dfn{undo list}, which records all changes made
to the buffer's text so that they can be undone. (The buffers that
don't have one are usually special-purpose buffers for which Emacs
assumes that undoing is not useful.) All the primitives that modify the
assumes that undoing is not useful. In particular, any buffer whose
name begins with a space has its undo recording off by default,
see @ref{Buffer Names}.) All the primitives that modify the
text in the buffer automatically add elements to the front of the undo
list, which is in the variable @code{buffer-undo-list}.

View file

@ -1,3 +1,37 @@
2006-05-12 Reiner Steib <Reiner.Steib@gmx.de>
* message.texi (Interface): Add tool bar customization.
(MIME): Index and text additions for mml-attach.
(MIME): Describe mml-dnd-protocol-alist and
mml-dnd-attach-options.
* gnus.texi (Oort Gnus): Reorder entries in sections. Fix some
entries.
(Starting Up): Add references to "Emacs for Heathens" and to
"Finding the News". Add user-full-name and user-mail-address.
(Group Buffer Format): Add tool bar customization and update.
(Summary Buffer): Add tool bar customization.
(Posting Styles): Add message-alternative-emails.
2006-05-12 Glenn Morris <rgm@gnu.org>
* calendar.texi (Displaying the Diary, Format of Diary File):
Refer to diary-view-entries, diary-list-entries,
diary-show-all-entries rather than obsolete aliases.
2006-05-12 Eli Zaretskii <eliz@gnu.org>
* calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
(Displaying the Diary, Special Diary Entries, Importing Diary):
* building.texi (Compilation Shell):
* buffers.texi (Several Buffers) [iftex]: Replace @xref's to
emacs-xtra with @inforef's.
* files.texi (Visiting): Fix wording.
* mule.texi (Coding Systems, Text Coding): More indexing. Mention
that C-x RET f can set eol conversion.
2006-05-09 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Filename completion): Improve wording.

View file

@ -481,7 +481,7 @@ mode in this buffer, as long as it is not marked modified. Global
Auto Revert mode applies to the @samp{*Buffer List*} buffer only if
@code{global-auto-revert-non-file-buffers} is non-@code{nil}.
@iftex
@xref{Autorevert,,, emacs-xtra, Specialized Emacs Features}, for details.
@inforef{Autorevert,, emacs-xtra}, for details.
@end iftex
@ifnottex
@xref{Autorevert, global-auto-revert-non-file-buffers}, for details.

View file

@ -323,7 +323,13 @@ 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-xtra,Specialized Emacs Features}.
Emacs.
@iftex
@inforef{MS-DOS,,emacs-xtra}.
@end iftex
@ifnottex
@xref{MS-DOS}.
@end ifnottex
@node Grep Searching
@section Searching with Grep under Emacs

View file

@ -26,8 +26,8 @@ the calendar, type @kbd{q}.
@iftex
This chapter describes the basic calendar features.
@xref{Advanced Calendar/Diary Usage,,, emacs-xtra, Specialized Emacs
Features}, for information about more specialized features.
@inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information
about more specialized features.
@end iftex
@menu
@ -451,8 +451,7 @@ calendar, use the @kbd{x} command. This displays the dates that are
holidays in a different face (or places a @samp{*} after these dates, if
display with multiple faces is not available).
@iftex
@xref{Calendar Customizing, calendar-holiday-marker,, emacs-xtra,
Specialized Emacs Features}.
@inforef{Calendar Customizing, calendar-holiday-marker, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing, calendar-holiday-marker}.
@ -998,11 +997,11 @@ it. You can also view today's events outside of Calendar mode.
@table @kbd
@item d
Display all diary entries for the selected date
(@code{view-diary-entries}).
(@code{diary-view-entries}).
@item Mouse-2 Diary
Display all diary entries for the date you click on.
@item s
Display the entire diary file (@code{show-all-diary-entries}).
Display the entire diary file (@code{diary-show-all-entries}).
@item m
Mark all visible dates that have diary entries
(@code{mark-diary-entries}).
@ -1017,7 +1016,7 @@ Mail yourself email reminders about upcoming diary entries.
@end table
@kindex d @r{(Calendar mode)}
@findex view-diary-entries
@findex diary-view-entries
@vindex view-diary-entries-initially
Displaying the diary entries with @kbd{d} shows in a separate window
the diary entries for the selected date in the calendar. The mode line
@ -1042,8 +1041,7 @@ the @kbd{m} command. This displays the dates that have diary entries in
a different face (or places a @samp{+} after these dates, if display
with multiple faces is not available).
@iftex
@xref{Calendar Customizing, diary-entry-marker,, emacs-xtra,
Specialized Emacs Features}.
@inforef{Calendar Customizing, diary-entry-marker, emacs-xtra}.
@end iftex
@ifnottex
@xref{Calendar Customizing, diary-entry-marker}.
@ -1056,7 +1054,7 @@ turns off holiday marks (@pxref{Holidays}). If the variable
updating the calendar marks diary dates automatically.
@kindex s @r{(Calendar mode)}
@findex show-all-diary-entries
@findex diary-show-all-entries
To see the full diary file, rather than just some of the entries, use
the @kbd{s} command.
@ -1074,7 +1072,7 @@ date, independently of the calendar display, and optionally for the next
few days as well; the variable @code{number-of-diary-entries} specifies
how many days to include.
@iftex
@xref{Diary Customizing,,, emacs-xtra, Specialized Emacs Features}.
@inforef{Diary Customizing,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Diary Customizing, number-of-diary-entries}.
@ -1154,7 +1152,7 @@ additional lines or adding/deleting characters in the middle of a
visible line cannot cause problems, but editing at the end of a line may
not do what you expect. Deleting a line may delete other invisible
entries that follow it. Before editing the diary, it is best to display
the entire file with @kbd{s} (@code{show-all-diary-entries}).
the entire file with @kbd{s} (@code{diary-show-all-entries}).
@node Date Formats
@subsection Date Formats
@ -1384,7 +1382,7 @@ specifying the name of a face or a single-character string to use when
marking the entry in the calendar. Most generally, sexp diary entries
can perform arbitrary computations to determine when they apply.
@iftex
@xref{Sexp Diary Entries,,, emacs-xtra, Specialized Emacs Features}.
@inforef{Sexp Diary Entries,, emacs-xtra}.
@end iftex
@ifnottex
@inforef{Sexp Diary Entries}.
@ -1509,7 +1507,7 @@ and adds the results to an Emacs diary file. For example:
You can use an @code{#include} directive to add the import file contents
to the main diary file, if these are different files.
@iftex
@xref{Fancy Diary Display,,, emacs-xtra, Specialized Emacs Features}.
@inforef{Fancy Diary Display,, emacs-xtra}.
@end iftex
@ifnottex
@xref{Fancy Diary Display}.

View file

@ -177,7 +177,7 @@ Visit a file with no conversion of the contents.
@cindex files, visiting and saving
@cindex saving files
@dfn{Visiting} a file means copying its contents into an Emacs
@dfn{Visiting} a file means reading its contents into an Emacs
buffer so you can edit them. Emacs makes a new buffer for each file
that you visit. We often say that this buffer ``is visiting'' that
file, or that the buffer's ``visited file'' is that file. Emacs

View file

@ -926,11 +926,17 @@ Emacs for Heathens
@chapter Starting Gnus
@cindex starting up
If you are haven't used Emacs much before using Gnus, read @ref{Emacs
for Heathens} first.
@kindex M-x gnus
@findex gnus
If your system administrator has set things up properly, starting Gnus
and reading news is extremely easy---you just type @kbd{M-x gnus} in
your Emacs.
your Emacs. If not, you should customize the variable
@code{gnus-select-method} as described in @ref{Finding the News}. For a
minimal setup for posting should also customize the variables
@code{user-full-name} and @code{user-mail-address}.
@findex gnus-other-frame
@kindex M-x gnus-other-frame
@ -1704,6 +1710,15 @@ long as Gnus is active.
* Group Highlighting:: Having nice colors in the group buffer.
@end menu
You can customize the Group Mode tool bar, see @kbd{M-x
customize-apropos RET gnus-group-tool-bar}. This feature is only
available in Emacs.
The tool bar icons are now (de)activated correctly depending on the
cursor position. Therefore, moving around in the Group Buffer is
slower. You can disable this via the variable
@code{gnus-group-update-tool-bar}. Its default value depends on your
Emacs version.
@node Group Line Specification
@subsection Group Line Specification
@ -4447,6 +4462,10 @@ group buffer (@pxref{Selecting a Group}).
You can have as many summary buffers open as you wish.
You can customize the Summary Mode tool bar, see @kbd{M-x
customize-apropos RET gnus-summary-tool-bar}. This feature is only
available in Emacs.
@kindex v (Summary)
@cindex keys, reserved for users (Summary)
The key @kbd{v} is reserved for users. You can bind it key to some
@ -11986,7 +12005,8 @@ So here's a new example:
The @samp{nnml:.*} rule means that you use the @code{To} address as the
@code{From} address in all your outgoing replies, which might be handy
if you fill many roles.
You may also use @code{message-alternative-emails} instead.
@xref{Message Headers, ,Message Headers, message, Message Manual}.
@node Drafts
@section Drafts
@ -26006,23 +26026,10 @@ New features in Gnus 5.10:
@itemize @bullet
@item
@kbd{F} (@code{gnus-article-followup-with-original}) and @kbd{R}
(@code{gnus-article-reply-with-original}) only yank the text in the
region if the region is active.
@item
@code{gnus-group-read-ephemeral-group} can be called interactively,
using @kbd{G M}.
@item
In draft groups, @kbd{e} is now bound to @code{gnus-draft-edit-message}.
Use @kbd{B w} for @code{gnus-summary-edit-article} instead.
@item
The revised Gnus @acronym{FAQ} is included in the manual,
@xref{Frequently Asked Questions}.
@item Installation changes
@c ***********************
@itemize @bullet
@item
Upgrading from previous (stable) version if you have used Oort.
@ -26035,6 +26042,167 @@ read from your @file{.newsrc.eld} instead of from the
later entry for more information about marks. Note that downgrading
isn't save in general.
@item
New @file{make.bat} for compiling and installing Gnus under MS Windows
Use @file{make.bat} if you want to install Gnus under MS Windows, the
first argument to the batch-program should be the directory where
@file{xemacs.exe} respectively @file{emacs.exe} is located, iff you want
to install Gnus after compiling it, give @file{make.bat} @code{/copy} as
the second parameter.
@file{make.bat} has been rewritten from scratch, it now features
automatic recognition of XEmacs and GNU Emacs, generates
@file{gnus-load.el}, checks if errors occur while compilation and
generation of info files and reports them at the end of the build
process. It now uses @code{makeinfo} if it is available and falls
back to @file{infohack.el} otherwise. @file{make.bat} should now
install all files which are necessary to run Gnus and be generally a
complete replacement for the @code{configure; make; make install}
cycle used under Unix systems.
The new @file{make.bat} makes @file{make-x.bat} and @file{xemacs.mak}
superfluous, so they have been removed.
@item
@file{~/News/overview/} not used.
As a result of the following change, the @file{~/News/overview/}
directory is not used any more. You can safely delete the entire
hierarchy.
@c FIXME: `gnus-load' is mentioned in README, which is not included in
@c CVS. We should find a better place for this item.
@item
@code{(require 'gnus-load)}
If you use a stand-alone Gnus distribution, you'd better add
@code{(require 'gnus-load)} into your @file{~/.emacs} after adding the Gnus
lisp directory into load-path.
File @file{gnus-load.el} contains autoload commands, functions and variables,
some of which may not be included in distributions of Emacsen.
@end itemize
@item New packages and libraries within Gnus
@c *****************************************
@itemize @bullet
@item
The revised Gnus @acronym{FAQ} is included in the manual,
@xref{Frequently Asked Questions}.
@item
@acronym{TLS} wrapper shipped with Gnus
@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
@acronym{NNTP} via @file{tls.el} and GNUTLS. The old
@acronym{TLS}/@acronym{SSL} support via (external third party)
@file{ssl.el} and OpenSSL still works.
@item
Improved anti-spam features.
Gnus is now able to take out spam from your mail and news streams
using a wide variety of programs and filter rules. Among the supported
methods are RBL blocklists, bogofilter and white/blacklists. Hooks
for easy use of external packages such as SpamAssassin and Hashcash
are also new. @xref{Thwarting Email Spam}.
@c FIXME: @xref{Spam Package}?. Should this be under Misc?
@item
Gnus supports server-side mail filtering using Sieve.
Sieve rules can be added as Group Parameters for groups, and the
complete Sieve script is generated using @kbd{D g} from the Group
buffer, and then uploaded to the server using @kbd{C-c C-l} in the
generated Sieve buffer. @xref{Sieve Commands}, and the new Sieve
manual @ref{Top, , Top, sieve, Emacs Sieve}.
@end itemize
@item Changes in group mode
@c ************************
@itemize @bullet
@item
@code{gnus-group-read-ephemeral-group} can be called interactively,
using @kbd{G M}.
@item
Retrieval of charters and control messages
There are new commands for fetching newsgroup charters (@kbd{H c}) and
control messages (@kbd{H C}).
@item
The new variable @code{gnus-parameters} can be used to set group parameters.
Earlier this was done only via @kbd{G p} (or @kbd{G c}), which stored
the parameters in @file{~/.newsrc.eld}, but via this variable you can
enjoy the powers of customize, and simplified backups since you set the
variable in @file{~/.gnus.el} instead of @file{~/.newsrc.eld}. The
variable maps regular expressions matching group names to group
parameters, a'la:
@lisp
(setq gnus-parameters
'(("mail\\..*"
(gnus-show-threads nil)
(gnus-use-scoring nil))
("^nnimap:\\(foo.bar\\)$"
(to-group . "\\1"))))
@end lisp
@item
Unread count correct in nnimap groups.
The estimated number of unread articles in the group buffer should now
be correct for nnimap groups. This is achieved by calling
@code{nnimap-fixup-unread-after-getting-new-news} from the
@code{gnus-setup-news-hook} (called on startup) and
@code{gnus-after-getting-new-news-hook}. (called after getting new
mail). If you have modified those variables from the default, you may
want to add @code{nnimap-fixup-unread-after-getting-new-news} again. If
you were happy with the estimate and want to save some (minimal) time
when getting new mail, remove the function.
@item
Group names are treated as UTF-8 by default.
This is supposedly what USEFOR wanted to migrate to. See
@code{gnus-group-name-charset-group-alist} and
@code{gnus-group-name-charset-method-alist} for customization.
@item
@code{gnus-group-charset-alist} and
@code{gnus-group-ignored-charsets-alist}.
The regexps in these variables are compared with full group names
instead of real group names in 5.8. Users who customize these
variables should change those regexps accordingly. For example:
@lisp
("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr)
@end lisp
@end itemize
@item Changes in summary and article mode
@c **************************************
@itemize @bullet
@item
@kbd{F} (@code{gnus-article-followup-with-original}) and @kbd{R}
(@code{gnus-article-reply-with-original}) only yank the text in the
region if the region is active.
@item
In draft groups, @kbd{e} is now bound to @code{gnus-draft-edit-message}.
Use @kbd{B w} for @code{gnus-summary-edit-article} instead.
@item
Article Buttons
@ -26043,17 +26211,6 @@ pages and Emacs or Gnus related references. @xref{Article Buttons}. The
variables @code{gnus-button-@var{*}-level} can be used to control the
appearance of all article buttons. @xref{Article Button Levels}.
@item
Dired integration
@code{gnus-dired-minor-mode} (see @ref{Other modes}) installs key
bindings in dired buffers to send a file as an attachment, open a file
using the appropriate mailcap entry, and print a file using the mailcap
entry.
@item
Gnus can display RSS newsfeeds as a newsgroup. @xref{RSS}.
@item
Single-part yenc encoded attachments can be decoded.
@ -26071,27 +26228,6 @@ newsgroups, which can be displayed in the Article buffer.
If the new option @code{gnus-treat-body-boundary} is non-@code{nil}, a
boundary line is drawn at the end of the headers.
@item
Retrieval of charters and control messages
There are new commands for fetching newsgroup charters (@kbd{H c}) and
control messages (@kbd{H C}).
@item
Delayed articles
You can delay the sending of a message with @kbd{C-c C-j} in the Message
buffer. The messages are delivered at specified time. This is useful
for sending yourself reminders. @xref{Delayed Articles}.
@item
If @code{auto-compression-mode} is enabled, attachments are automatically
decompressed when activated.
@item
If the new option @code{nnml-use-compressed-files} is non-@code{nil},
the nnml back end allows compressed message files.
@item
Signed article headers (X-PGP-Sig) can be verified with @kbd{W p}.
@ -26115,13 +26251,6 @@ built.
The new @code{recent} mark @samp{.} indicates newly arrived messages (as
opposed to old but unread messages).
@item
The new option @code{gnus-gcc-mark-as-read} automatically marks
Gcc articles as read.
@item
The nndoc back end now supports mailman digests and exim bounces.
@item
Gnus supports RFC 2369 mailing list headers, and adds a number of
related commands in mailing list groups. @xref{Mailing List}.
@ -26130,54 +26259,10 @@ related commands in mailing list groups. @xref{Mailing List}.
The Date header can be displayed in a format that can be read aloud
in English. @xref{Article Date}.
@item
The envelope sender address can be customized when using Sendmail.
@xref{Mail Variables, Mail Variables,, message, Message Manual}.
@item
diffs are automatically highlighted in groups matching
@code{mm-uu-diff-groups-regexp}
@item
@acronym{TLS} wrapper shipped with Gnus
@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
@acronym{NNTP} via @file{tls.el} and GNUTLS. The old
@acronym{TLS}/@acronym{SSL} support via (external third party)
@file{ssl.el} and OpenSSL still works.
@item
New @file{make.bat} for compiling and installing Gnus under MS Windows
Use @file{make.bat} if you want to install Gnus under MS Windows, the
first argument to the batch-program should be the directory where
@file{xemacs.exe} respectively @file{emacs.exe} is located, iff you want
to install Gnus after compiling it, give @file{make.bat} @code{/copy} as
the second parameter.
@file{make.bat} has been rewritten from scratch, it now features
automatic recognition of XEmacs and GNU Emacs, generates
@file{gnus-load.el}, checks if errors occur while compilation and
generation of info files and reports them at the end of the build
process. It now uses @code{makeinfo} if it is available and falls
back to @file{infohack.el} otherwise. @file{make.bat} should now
install all files which are necessary to run Gnus and be generally a
complete replacement for the @code{configure; make; make install}
cycle used under Unix systems.
The new @file{make.bat} makes @file{make-x.bat} superfluous, so it has
been removed.
@item
Support for non-@acronym{ASCII} domain names
Message supports non-@acronym{ASCII} domain names in From:, To: and
Cc: and will query you whether to perform encoding when you try to
send a message. The variable @code{message-use-idna} controls this.
Gnus will also decode non-@acronym{ASCII} domain names in From:, To:
and Cc: when you view a message. The variable @code{gnus-use-idna}
controls this.
@item
Better handling of Microsoft citation styles
@ -26187,6 +26272,10 @@ though it is not quoted in any way. The variable
@code{gnus-cite-unsightly-citation-regexp} matches the start of these
citations.
The new command @kbd{W Y f}
(@code{gnus-article-outlook-deuglify-article}) allows deuglifying broken
Outlook (Express) articles.
@item
@code{gnus-article-skip-boring}
@ -26200,32 +26289,118 @@ consist of a little new content at the top with a long, untrimmed
message cited below.
@item
The format spec @code{%C} for positioning point has changed to @code{%*}.
@item
The new variable @code{gnus-parameters} can be used to set group parameters.
Earlier this was done only via @kbd{G p} (or @kbd{G c}), which stored
the parameters in @file{~/.newsrc.eld}, but via this variable you can
enjoy the powers of customize, and simplified backups since you set the
variable in @file{~/.gnus.el} instead of @file{~/.newsrc.eld}. The
variable maps regular expressions matching group names to group
parameters, a'la:
@lisp
(setq gnus-parameters
'(("mail\\..*"
(gnus-show-threads nil)
(gnus-use-scoring nil))
("^nnimap:\\(foo.bar\\)$"
(to-group . "\\1"))))
@end lisp
@item
Smileys (@samp{:-)}, @samp{;-)} etc) are now iconized for Emacs too.
Smileys (@samp{:-)}, @samp{;-)} etc) are now displayed graphically in
Emacs too.
Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.gnus.el} to
disable it.
@item
Face headers handling. @xref{Face}.
@item
In the summary buffer, the new command @kbd{/ N} inserts new messages
and @kbd{/ o} inserts old messages.
@item
Gnus decodes morse encoded messages if you press @kbd{W m}.
@item
@code{gnus-summary-line-format}
The default value changed to @samp{%U%R%z%I%(%[%4L: %-23,23f%]%)
%s\n}. Moreover @code{gnus-extra-headers},
@code{nnmail-extra-headers} and @code{gnus-ignored-from-addresses}
changed their default so that the users name will be replaced by the
recipient's name or the group name posting to for @acronym{NNTP}
groups.
@item
Deleting of attachments.
The command @code{gnus-mime-save-part-and-strip} (bound to @kbd{C-o}
on @acronym{MIME} buttons) saves a part and replaces the part with an
external one. @code{gnus-mime-delete-part} (bound to @kbd{d} on
@acronym{MIME} buttons) removes a part. It works only on back ends
that support editing.
@item
@code{gnus-default-charset}
The default value is determined from the
@code{current-language-environment} variable, instead of
@code{iso-8859-1}. Also the @samp{.*} item in
@code{gnus-group-charset-alist} is removed.
@item
Printing capabilities are enhanced.
Gnus supports Muttprint natively with @kbd{O P} from the Summary and
Article buffers. Also, each individual @acronym{MIME} part can be
printed using @kbd{p} on the @acronym{MIME} button.
@item
Extended format specs.
Format spec @samp{%&user-date;} is added into
@code{gnus-summary-line-format-alist}. Also, user defined extended
format specs are supported. The extended format specs look like
@samp{%u&foo;}, which invokes function
@code{gnus-user-format-function-@var{foo}}. Because @samp{&} is used as the
escape character, old user defined format @samp{%u&} is no longer supported.
@item
@kbd{/ *} (@code{gnus-summary-limit-include-cached}) is rewritten.
@c FIXME: Was this a user-visible change?
It was aliased to @kbd{Y c}
(@code{gnus-summary-insert-cached-articles}). The new function filters
out other articles.
@item
Some limiting commands accept a @kbd{C-u} prefix to negate the match.
If @kbd{C-u} is used on subject, author or extra headers, i.e., @kbd{/
s}, @kbd{/ a}, and @kbd{/ x}
(@code{gnus-summary-limit-to-@{subject,author,extra@}}) respectively, the
result will be to display all articles that do not match the expression.
@item
Gnus inlines external parts (message/external).
@end itemize
@item Changes in Message mode and related Gnus features
@c ****************************************************
@itemize @bullet
@item
Delayed articles
You can delay the sending of a message with @kbd{C-c C-j} in the Message
buffer. The messages are delivered at specified time. This is useful
for sending yourself reminders. @xref{Delayed Articles}.
@item
If the new option @code{nnml-use-compressed-files} is non-@code{nil},
the nnml back end allows compressed message files.
@item
The new option @code{gnus-gcc-mark-as-read} automatically marks
Gcc articles as read.
@item
Externalizing of attachments
If @code{gnus-gcc-externalize-attachments} or
@code{message-fcc-externalize-attachments} is non-@code{nil}, attach
local files as external parts.
@item
The envelope sender address can be customized when using Sendmail.
@xref{Mail Variables, Mail Variables,, message, Message Manual}.
@item
Gnus no longer generate the Sender: header automatically.
@ -26255,39 +26430,7 @@ start composing messages and @code{message-generate-headers-first} is
@code{nil}.
@item
Improved anti-spam features.
Gnus is now able to take out spam from your mail and news streams
using a wide variety of programs and filter rules. Among the supported
methods are RBL blocklists, bogofilter and white/blacklists. Hooks
for easy use of external packages such as SpamAssassin and Hashcash
are also new. @xref{Thwarting Email Spam}.
@item
Easy inclusion of X-Faces headers.
@item
Face headers handling.
@item
In the summary buffer, the new command @kbd{/ N} inserts new messages
and @kbd{/ o} inserts old messages.
@item
Gnus decodes morse encoded messages if you press @kbd{W m}.
@item
Unread count correct in nnimap groups.
The estimated number of unread articles in the group buffer should now
be correct for nnimap groups. This is achieved by calling
@code{nnimap-fixup-unread-after-getting-new-news} from the
@code{gnus-setup-news-hook} (called on startup) and
@code{gnus-after-getting-new-news-hook}. (called after getting new
mail). If you have modified those variables from the default, you may
want to add @code{nnimap-fixup-unread-after-getting-new-news} again. If
you were happy with the estimate and want to save some (minimal) time
when getting new mail, remove the function.
Easy inclusion of X-Faces headers. @xref{X-Face}.
@item
Group Carbon Copy (GCC) quoting
@ -26303,64 +26446,6 @@ incorrectly. Note that returning the string @samp{nnml:foo, nnml:bar}
was incorrect earlier, it just didn't generate any problems since it
was inserted directly.
@item
@file{~/News/overview/} not used.
As a result of the following change, the @file{~/News/overview/}
directory is not used any more. You can safely delete the entire
hierarchy.
@item
@code{gnus-agent}
The Gnus Agent has seen a major updated and is now enabled by default,
and all nntp and nnimap servers from @code{gnus-select-method} and
@code{gnus-secondary-select-method} are agentized by default. Earlier
only the server in @code{gnus-select-method} was agentized by the
default, and the agent was disabled by default. When the agent is
enabled, headers are now also retrieved from the Agent cache instead
of the back ends when possible. Earlier this only happened in the
unplugged state. You can enroll or remove servers with @kbd{J a} and
@kbd{J r} in the server buffer. Gnus will not download articles into
the Agent cache, unless you instruct it to do so, though, by using
@kbd{J u} or @kbd{J s} from the Group buffer. You revert to the old
behavior of having the Agent disabled with @code{(setq gnus-agent
nil)}. Note that putting @code{(gnus-agentize)} in @file{~/.gnus.el}
is not needed any more.
@item
@code{gnus-summary-line-format}
The default value changed to @samp{%U%R%z%I%(%[%4L: %-23,23f%]%)
%s\n}. Moreover @code{gnus-extra-headers},
@code{nnmail-extra-headers} and @code{gnus-ignored-from-addresses}
changed their default so that the users name will be replaced by the
recipient's name or the group name posting to for @acronym{NNTP}
groups.
@item
@file{deuglify.el} (@code{gnus-article-outlook-deuglify-article})
A new file from Raymond Scholz @email{rscholz@@zonix.de} for deuglifying
broken Outlook (Express) articles.
@c FIXME: `gnus-load' is mentioned in README, which is not included in
@c CVS. We should find a better place for this item.
@item
@code{(require 'gnus-load)}
If you use a stand-alone Gnus distribution, you'd better add
@code{(require 'gnus-load)} into your @file{~/.emacs} after adding the Gnus
lisp directory into load-path.
File @file{gnus-load.el} contains autoload commands, functions and variables,
some of which may not be included in distributions of Emacsen.
@item
@code{gnus-slave-unplugged}
A new command which starts Gnus offline in slave mode.
@item
@code{message-insinuate-rmail}
@ -26378,27 +26463,6 @@ The line below enables BBDB in resending a message:
'bbdb-complete-name)
@end lisp
@item
Externalizing and deleting of attachments.
If @code{gnus-gcc-externalize-attachments} or
@code{message-fcc-externalize-attachments} is non-@code{nil}, attach
local files as external parts.
The command @code{gnus-mime-save-part-and-strip} (bound to @kbd{C-o}
on @acronym{MIME} buttons) saves a part and replaces the part with an
external one. @code{gnus-mime-delete-part} (bound to @kbd{d} on
@acronym{MIME} buttons) removes a part. It works only on back ends
that support editing.
@item
@code{gnus-default-charset}
The default value is determined from the
@code{current-language-environment} variable, instead of
@code{iso-8859-1}. Also the @samp{.*} item in
@code{gnus-group-charset-alist} is removed.
@item
@code{gnus-posting-styles}
@ -26420,13 +26484,6 @@ The old format like the lines below is obsolete, but still accepted.
added into these two variables. If you customized those, perhaps you
need add those two headers too.
@item
Gnus reads the @acronym{NOV} and articles in the Agent if plugged.
If one reads an article while plugged, and the article already exists
in the Agent, it won't get downloaded once more. @code{(setq
gnus-agent-cache nil)} reverts to the old behavior.
@item
Gnus supports the ``format=flowed'' (RFC 2646) parameter. On
composing messages, it is enabled by @code{use-hard-newlines}.
@ -26443,18 +26500,6 @@ Gnus supports the generation of RFC 2298 Disposition Notification requests.
This is invoked with the @kbd{C-c M-n} key binding from message mode.
@item
Gnus supports Maildir groups.
Gnus includes a new back end @file{nnmaildir.el}. @xref{Maildir}.
@item
Printing capabilities are enhanced.
Gnus supports Muttprint natively with @kbd{O P} from the Summary and
Article buffers. Also, each individual @acronym{MIME} part can be
printed using @kbd{p} on the @acronym{MIME} button.
@item
Message supports the Importance: (RFC 2156) header.
@ -26474,45 +26519,66 @@ will not allow anyone to be able to anything she could not already do.
The behavior can be changed by customizing @code{message-insert-canlock}.
@item
Gnus supports server-side mail filtering using Sieve.
Gnus supports @acronym{PGP} (RFC 1991/2440), @acronym{PGP/MIME} (RFC
2015/3156) and @acronym{S/MIME} (RFC 2630-2633).
Sieve rules can be added as Group Parameters for groups, and the
complete Sieve script is generated using @kbd{D g} from the Group
buffer, and then uploaded to the server using @kbd{C-c C-l} in the
generated Sieve buffer. @xref{Sieve Commands}, and the new Sieve
manual @ref{Top, , Top, sieve, Emacs Sieve}.
It needs an external @acronym{S/MIME} and OpenPGP implementation, but no
additional Lisp libraries. This add several menu items to the
Attachments menu, and @kbd{C-c RET} key bindings, when composing
messages. This also obsoletes @code{gnus-article-hide-pgp-hook}.
@item
Extended format specs.
@acronym{MML} (Mime compose) prefix changed from @kbd{M-m} to @kbd{C-c
C-m}.
Format spec @samp{%&user-date;} is added into
@code{gnus-summary-line-format-alist}. Also, user defined extended
format specs are supported. The extended format specs look like
@samp{%u&foo;}, which invokes function
@code{gnus-user-format-function-@var{foo}}. Because @samp{&} is used as the
escape character, old user defined format @samp{%u&} is no longer supported.
This change was made to avoid conflict with the standard binding of
@code{back-to-indentation}, which is also useful in message mode.
@item
@kbd{/ *} (@code{gnus-summary-limit-include-cached}) is rewritten.
The default for @code{message-forward-show-mml} changed to the symbol
@code{best}.
It was aliased to @kbd{Y c}
(@code{gnus-summary-insert-cached-articles}). The new function filters
out other articles.
The behavior for the @code{best} value is to show @acronym{MML} (i.e.,
convert to @acronym{MIME}) when appropriate. @acronym{MML} will not be
used when forwarding signed or encrypted messages, as the conversion
invalidate the digital signature.
@item
Some limiting commands accept a @kbd{C-u} prefix to negate the match.
If @kbd{C-u} is used on subject, author or extra headers, i.e., @kbd{/
s}, @kbd{/ a}, and @kbd{/ x}
(@code{gnus-summary-limit-to-@{subject,author,extra@}}) respectively, the
result will be to display all articles that do not match the expression.
If @code{auto-compression-mode} is enabled, attachments are automatically
decompressed when activated.
@c FIXME: Does this affect article or message mode?
@item
Group names are treated as UTF-8 by default.
Support for non-@acronym{ASCII} domain names
This is supposedly what USEFOR wanted to migrate to. See
@code{gnus-group-name-charset-group-alist} and
@code{gnus-group-name-charset-method-alist} for customization.
Message supports non-@acronym{ASCII} domain names in From:, To: and
Cc: and will query you whether to perform encoding when you try to
send a message. The variable @code{message-use-idna} controls this.
Gnus will also decode non-@acronym{ASCII} domain names in From:, To:
and Cc: when you view a message. The variable @code{gnus-use-idna}
controls this.
@item You can now drag and drop attachments to the Message buffer.
See @code{mml-dnd-protocol-alist} and @code{mml-dnd-attach-options}.
@xref{MIME, ,MIME, message, Message Manual}.
@c New in 5.10.9 / 5.11
@end itemize
@item Changes in back ends
@c ***********************
@itemize @bullet
@item
Gnus can display RSS newsfeeds as a newsgroup. @xref{RSS}.
@item
The nndoc back end now supports mailman digests and exim bounces.
@item
Gnus supports Maildir groups.
Gnus includes a new back end @file{nnmaildir.el}. @xref{Maildir}.
@item
The nnml and nnfolder back ends store marks for each groups.
@ -26529,6 +26595,13 @@ another machine, Gnus will automatically use the @file{.marks} or
The new server variables @code{nnml-marks-is-evil} and
@code{nnfolder-marks-is-evil} can be used to disable this feature.
@end itemize
@item Appearance
@c *************
@itemize @bullet
@item
The menu bar item (in Group and Summary buffer) named ``Misc'' has
been renamed to ``Gnus''.
@ -26540,42 +26613,65 @@ related stuff, like signing and encryption (@pxref{Security, Security,,
message, Message Manual}).
@item
@code{gnus-group-charset-alist} and
@code{gnus-group-ignored-charsets-alist}.
The tool bars have been updated to use GNOME icons in Group, Summary and
Message mode. You can also customize the tool bars. This is a new
feature in Gnus 5.10.9. (Only for Emacs, not in XEmacs.)
The regexps in these variables are compared with full group names
instead of real group names in 5.8. Users who customize these
variables should change those regexps accordingly. For example:
@lisp
("^han\\>" euc-kr) -> ("\\(^\\|:\\)han\\>" euc-kr)
@end lisp
@item The tool bar icons are now (de)activated correctly
in the group buffer, see the variable @code{gnus-group-update-tool-bar}.
Its default value depends on your Emacs version. This is a new feature
in Gnus 5.10.9.
@end itemize
@item Miscellaneous changes
@c ************************
@itemize @bullet
@item
Gnus supports @acronym{PGP} (RFC 1991/2440), @acronym{PGP/MIME} (RFC
2015/3156) and @acronym{S/MIME} (RFC 2630-2633).
@code{gnus-agent}
It needs an external @acronym{S/MIME} and OpenPGP implementation, but no
additional Lisp libraries. This add several menu items to the
Attachments menu, and @kbd{C-c RET} key bindings, when composing
messages. This also obsoletes @code{gnus-article-hide-pgp-hook}.
The Gnus Agent has seen a major updated and is now enabled by default,
and all nntp and nnimap servers from @code{gnus-select-method} and
@code{gnus-secondary-select-method} are agentized by default. Earlier
only the server in @code{gnus-select-method} was agentized by the
default, and the agent was disabled by default. When the agent is
enabled, headers are now also retrieved from the Agent cache instead
of the back ends when possible. Earlier this only happened in the
unplugged state. You can enroll or remove servers with @kbd{J a} and
@kbd{J r} in the server buffer. Gnus will not download articles into
the Agent cache, unless you instruct it to do so, though, by using
@kbd{J u} or @kbd{J s} from the Group buffer. You revert to the old
behavior of having the Agent disabled with @code{(setq gnus-agent
nil)}. Note that putting @code{(gnus-agentize)} in @file{~/.gnus.el}
is not needed any more.
@item
Gnus inlines external parts (message/external).
Gnus reads the @acronym{NOV} and articles in the Agent if plugged.
If one reads an article while plugged, and the article already exists
in the Agent, it won't get downloaded once more. @code{(setq
gnus-agent-cache nil)} reverts to the old behavior.
@item
@acronym{MML} (Mime compose) prefix changed from @kbd{M-m} to @kbd{C-c
C-m}.
Dired integration
This change was made to avoid conflict with the standard binding of
@code{back-to-indentation}, which is also useful in message mode.
@code{gnus-dired-minor-mode} (see @ref{Other modes}) installs key
bindings in dired buffers to send a file as an attachment, open a file
using the appropriate mailcap entry, and print a file using the mailcap
entry.
@item
The default for @code{message-forward-show-mml} changed to symbol @code{best}.
The format spec @code{%C} for positioning point has changed to @code{%*}.
@item
@code{gnus-slave-unplugged}
A new command which starts Gnus offline in slave mode.
@end itemize
The behavior for the @code{best} value is to show @acronym{MML} (i.e.,
convert to @acronym{MIME}) when appropriate. @acronym{MML} will not be
used when forwarding signed or encrypted messages, as the conversion
invalidate the digital signature.
@end itemize
@iftex

View file

@ -97,6 +97,9 @@ sending it.
* Mailing Lists:: Send mail to mailing lists.
@end menu
You can customize the Message Mode tool bar, see @kbd{M-x
customize-apropos RET message-tool-bar}. This feature is only available
in Emacs.
@node New Mail Message
@section New Mail Message
@ -817,10 +820,24 @@ doesn't have to do anything to make the @acronym{MIME} happen---Message will
automatically add the @code{Content-Type} and
@code{Content-Transfer-Encoding} headers.
@findex mml-attach
@kindex C-c C-a
The most typical thing users want to use the multipart things in
@acronym{MIME} for is to add ``attachments'' to mail they send out. This can
be done with the @kbd{C-c C-a} command, which will prompt for a file
name and a @acronym{MIME} type.
@acronym{MIME} for is to add ``attachments'' to mail they send out.
This can be done with the @kbd{C-c C-a} command (@kbd{M-x mml-attach}),
which will prompt for a file name and a @acronym{MIME} type.
@vindex mml-dnd-protocol-alist
@vindex mml-dnd-attach-options
If your Emacs supports drag and drop, you can also drop the file in the
Message buffer. The variable @code{mml-dnd-protocol-alist} specifies
what kind of action is done when you drop a file into the Message
buffer. The variable @code{mml-dnd-attach-options} controls which
@acronym{MIME} options you want to specify when dropping a file. If it
is a list, valid members are @code{type}, @code{description} and
@code{disposition}. @code{disposition} implies @code{type}. If it is
@code{nil}, don't ask for options. If it is @code{t}, ask the user
whether or not to specify options.
You can also create arbitrarily complex multiparts using the @acronym{MML}
language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME

View file

@ -626,7 +626,8 @@ Display a list of all the supported coding systems.
@kindex C-h C
@findex describe-coding-system
The command @kbd{C-h C} (@code{describe-coding-system}) displays
information about particular coding systems. You can specify a coding
information about particular coding systems, including the end-of-line
conversion specified by those coding systems. You can specify a coding
system name as the argument; alternatively, with an empty argument, it
describes the coding systems currently selected for various purposes,
both in the current buffer and as the defaults, and the priority list
@ -639,6 +640,7 @@ system, including the letter that stands for it in the mode line
(@pxref{Mode Line}).
@cindex end-of-line conversion
@cindex line endings
@cindex MS-DOS end-of-line conversion
@cindex Macintosh end-of-line conversion
Each of the coding systems that appear in this list---except for
@ -941,6 +943,13 @@ that cannot handle all of the characters in the buffer, Emacs warns
you about the troublesome characters when you actually save the
buffer.
@cindex specify end-of-line conversion
You can also use this command to specify the end-of-line conversion
(@pxref{Coding Systems, end-of-line conversion}) for encoding the
current buffer. For example, @kbd{C-x @key{RET} f dos @key{RET}} will
cause Emacs to save the current buffer's text with DOS-style CRLF line
endings.
@kindex C-x RET c
@findex universal-coding-system-argument
Another way to specify the coding system for a file is when you visit

View file

@ -2,7 +2,7 @@
source ^\.(gdbinit|dbxinit)$
# Auto-generated files, which ignore
precious ^(config\.stamp|config\.h|epaths\.h)$
precious ^(config\.stamp|config\.h|epaths\.h|buildobj\.lst)$
backup ^(stamp-oldxmenu|prefix-args|temacs|emacs|emacs-[0-9.]*)$

View file

@ -1,3 +1,54 @@
2006-05-16 Kim F. Storm <storm@cua.dk>
* xterm.c (handle_one_xevent): Check that f is not NULL before
calling x_kill_gs_process.
2006-05-14 Richard Stallman <rms@gnu.org>
* textprop.c (Fnext_single_char_property_change)
(Fprevious_single_char_property_change): Don't allow returning
value beyond LIMIT in any cases.
(Fnext_char_property_change, Fprevious_char_property_change): Doc fix.
* intervals.c (get_local_map): Abort if POSITION outside BEGV, ZV.
2006-05-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xterm.c (handle_one_xevent): Check that f is not NULL before
calling _XEditResCheckMessages.
2006-05-14 Kim F. Storm <storm@cua.dk>
* xterm.c (handle_one_xevent): Fix crash in 2006-03-24 change.
2006-05-13 Eli Zaretskii <eliz@gnu.org>
* frame.c (x_set_border_width): Fix error message to say "frame",
not "window".
* Makefile.in (SOME_MACHINE_LISP): Add fringe.elc.
2006-05-12 Chong Yidong <cyd@stupidchicken.com>
* intervals.c (set_point_both): Fix mixup before before and after
in variable names.
* editfns.c (Fline_beginning_position): Inhibit point-motion hooks
while setting point temporarily.
2006-05-11 Richard Stallman <rms@gnu.org>
* lread.c (readevalloop): Abort if START non-nil for non-buffer input.
2006-05-11 Kim F. Storm <storm@cua.dk>
* xdisp.c (redisplay_tool_bar): Handle large tool-bar-border values.
2006-05-11 Kenichi Handa <handa@m17n.org>
* fileio.c (Finsert_file_contents): Fix for the case of IO error
while handling replace operation.
2006-05-10 Kenichi Handa <handa@m17n.org>
* xfaces.c (realize_default_face) [HAVE_X_WINDOWS]: If the font

View file

@ -900,8 +900,8 @@ SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
${dotdot}/lisp/dnd.elc ${dotdot}/lisp/mwheel.elc \
${dotdot}/lisp/tool-bar.elc \
${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
${dotdot}/lisp/x-dnd.elc \
${dotdot}/lisp/international/ccl.elc \
${dotdot}/lisp/international/codepage.elc \

View file

@ -821,6 +821,8 @@ This function does not move point. */)
Lisp_Object n;
{
int orig, orig_byte, end;
int count = SPECPDL_INDEX ();
specbind (Qinhibit_point_motion_hooks, Qt);
if (NILP (n))
XSETFASTINT (n, 1);
@ -834,6 +836,8 @@ This function does not move point. */)
SET_PT_BOTH (orig, orig_byte);
unbind_to (count, Qnil);
/* Return END constrained to the current input field. */
return Fconstrain_to_field (make_number (end), make_number (orig),
XINT (n) != 1 ? Qt : Qnil,

View file

@ -4293,13 +4293,8 @@ actually used. */)
if we couldn't read the file. */
if (how_much < 0)
{
if (how_much == -1)
error ("IO error reading %s: %s",
SDATA (orig_filename), emacs_strerror (errno));
else if (how_much == -2)
error ("maximum buffer size exceeded");
}
error ("IO error reading %s: %s",
SDATA (orig_filename), emacs_strerror (errno));
if (unprocessed > 0)
{

View file

@ -3142,7 +3142,7 @@ x_set_border_width (f, arg, oldval)
#ifndef MAC_OS
if (FRAME_X_WINDOW (f) != 0)
error ("Cannot change the border width of a window");
error ("Cannot change the border width of a frame");
#endif /* MAC_TODO */
f->border_width = XINT (arg);

View file

@ -2196,36 +2196,38 @@ set_point_both (buffer, charpos, bytepos)
Lisp_Object leave_after, leave_before, enter_after, enter_before;
if (fromprev)
leave_after = textget (fromprev->plist, Qpoint_left);
else
leave_after = Qnil;
if (from)
leave_before = textget (from->plist, Qpoint_left);
leave_before = textget (fromprev->plist, Qpoint_left);
else
leave_before = Qnil;
if (toprev)
enter_after = textget (toprev->plist, Qpoint_entered);
if (from)
leave_after = textget (from->plist, Qpoint_left);
else
enter_after = Qnil;
if (to)
enter_before = textget (to->plist, Qpoint_entered);
leave_after = Qnil;
if (toprev)
enter_before = textget (toprev->plist, Qpoint_entered);
else
enter_before = Qnil;
if (to)
enter_after = textget (to->plist, Qpoint_entered);
else
enter_after = Qnil;
if (! EQ (leave_before, enter_before) && !NILP (leave_before))
call2 (leave_before, make_number (old_position),
make_number (charpos));
call2 (leave_before, make_number (old_position),
make_number (charpos));
if (! EQ (leave_after, enter_after) && !NILP (leave_after))
call2 (leave_after, make_number (old_position),
make_number (charpos));
call2 (leave_after, make_number (old_position),
make_number (charpos));
if (! EQ (enter_before, leave_before) && !NILP (enter_before))
call2 (enter_before, make_number (old_position),
make_number (charpos));
call2 (enter_before, make_number (old_position),
make_number (charpos));
if (! EQ (enter_after, leave_after) && !NILP (enter_after))
call2 (enter_after, make_number (old_position),
make_number (charpos));
call2 (enter_after, make_number (old_position),
make_number (charpos));
}
}
@ -2339,7 +2341,9 @@ get_property_and_range (pos, prop, val, start, end, object)
/* Return the proper local keymap TYPE for position POSITION in
BUFFER; TYPE should be one of `keymap' or `local-map'. Use the map
specified by the PROP property, if any. Otherwise, if TYPE is
`local-map' use BUFFER's local map. */
`local-map' use BUFFER's local map.
POSITION must be in the accessible part of BUFFER. */
Lisp_Object
get_local_map (position, buffer, type)
@ -2351,7 +2355,7 @@ get_local_map (position, buffer, type)
int old_begv, old_zv, old_begv_byte, old_zv_byte;
/* Perhaps we should just change `position' to the limit. */
if (position > BUF_Z (buffer) || position < BUF_BEG (buffer))
if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer))
abort ();
/* Ignore narrowing, so that a local map continues to be valid even if

View file

@ -1534,7 +1534,9 @@ end_of_file_error ()
/* UNIBYTE specifies how to set load_convert_to_unibyte
for this invocation.
READFUN, if non-nil, is used instead of `read'.
START, END is region in current buffer (from eval-region). */
START, END specify region to read in current buffer (from eval-region).
If the input is not from a buffer, they must be nil. */
static void
readevalloop (readcharfun, stream, sourcename, evalfun,
@ -1570,6 +1572,10 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
else if (MARKERP (readcharfun))
b = XMARKER (readcharfun)->buffer;
/* We assume START is nil when input is not from a buffer. */
if (! NILP (start) && !b)
abort ();
specbind (Qstandard_input, readcharfun); /* GCPROs readcharfun. */
specbind (Qcurrent_load_list, Qnil);
record_unwind_protect (readevalloop_1, load_convert_to_unibyte ? Qt : Qnil);

View file

@ -717,10 +717,11 @@ DEFUN ("next-char-property-change", Fnext_char_property_change,
This scans characters forward in the current buffer from POSITION till
it finds a change in some text property, or the beginning or end of an
overlay, and returns the position of that.
If none is found, the function returns (point-max).
If none is found up to (point-max), the function returns (point-max).
If the optional second argument LIMIT is non-nil, don't search
past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
past position LIMIT; return LIMIT if nothing is found before LIMIT.
LIMIT is a no-op if it is greater than (point-max). */)
(position, limit)
Lisp_Object position, limit;
{
@ -742,10 +743,11 @@ DEFUN ("previous-char-property-change", Fprevious_char_property_change,
Scans characters backward in the current buffer from POSITION till it
finds a change in some text property, or the beginning or end of an
overlay, and returns the position of that.
If none is found, the function returns (point-max).
If none is found since (point-min), the function returns (point-min).
If the optional second argument LIMIT is non-nil, don't search
past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
past position LIMIT; return LIMIT if nothing is found before LIMIT.
LIMIT is a no-op if it is less than (point-min). */)
(position, limit)
Lisp_Object position, limit;
{
@ -771,6 +773,9 @@ If the optional third argument OBJECT is a buffer (or nil, which means
the current buffer), POSITION is a buffer position (integer or marker).
If OBJECT is a string, POSITION is a 0-based index into it.
In a string, scan runs to the end of the string.
In a buffer, it runs to (point-max), and the value cannot exceed that.
The property values are compared with `eq'.
If the property is constant all the way to the end of OBJECT, return the
last valid position in OBJECT.
@ -812,22 +817,30 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
initial_value = Fget_char_property (position, prop, object);
if (NILP (limit))
XSETFASTINT (limit, BUF_ZV (current_buffer));
XSETFASTINT (limit, ZV);
else
CHECK_NUMBER_COERCE_MARKER (limit);
for (;;)
if (XFASTINT (position) >= XFASTINT (limit))
{
position = Fnext_char_property_change (position, limit);
if (XFASTINT (position) >= XFASTINT (limit)) {
position = limit;
break;
}
value = Fget_char_property (position, prop, object);
if (!EQ (value, initial_value))
break;
position = limit;
if (XFASTINT (position) > ZV)
XSETFASTINT (position, ZV);
}
else
while (1)
{
position = Fnext_char_property_change (position, limit);
if (XFASTINT (position) >= XFASTINT (limit))
{
position = limit;
break;
}
value = Fget_char_property (position, prop, object);
if (!EQ (value, initial_value))
break;
}
unbind_to (count, Qnil);
}
@ -845,6 +858,9 @@ If the optional third argument OBJECT is a buffer (or nil, which means
the current buffer), POSITION is a buffer position (integer or marker).
If OBJECT is a string, POSITION is a 0-based index into it.
In a string, scan runs to the start of the string.
In a buffer, it runs to (point-min), and the value cannot be less than that.
The property values are compared with `eq'.
If the property is constant all the way to the start of OBJECT, return the
first valid position in OBJECT.
@ -883,19 +899,23 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
CHECK_NUMBER_COERCE_MARKER (position);
if (NILP (limit))
XSETFASTINT (limit, BUF_BEGV (current_buffer));
XSETFASTINT (limit, BEGV);
else
CHECK_NUMBER_COERCE_MARKER (limit);
if (XFASTINT (position) <= XFASTINT (limit))
position = limit;
{
position = limit;
if (XFASTINT (position) < BEGV)
XSETFASTINT (position, BEGV);
}
else
{
Lisp_Object initial_value =
Fget_char_property (make_number (XFASTINT (position) - 1),
prop, object);
Lisp_Object initial_value
= Fget_char_property (make_number (XFASTINT (position) - 1),
prop, object);
for (;;)
while (1)
{
position = Fprevious_char_property_change (position, limit);
@ -906,9 +926,9 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
}
else
{
Lisp_Object value =
Fget_char_property (make_number (XFASTINT (position) - 1),
prop, object);
Lisp_Object value
= Fget_char_property (make_number (XFASTINT (position) - 1),
prop, object);
if (!EQ (value, initial_value))
break;

View file

@ -9829,7 +9829,7 @@ redisplay_tool_bar (f)
border = 0;
rows = f->n_tool_bar_rows;
height = (it.last_visible_y - border) / rows;
height = max (1, (it.last_visible_y - border) / rows);
extra = it.last_visible_y - border - height * rows;
while (it.current_y < it.last_visible_y)

View file

@ -5885,8 +5885,9 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
== dpyinfo->Xatom_editres)
{
f = x_any_window_to_frame (dpyinfo, event.xclient.window);
_XEditResCheckMessages (f->output_data.x->widget, NULL,
&event, NULL);
if (f)
_XEditResCheckMessages (f->output_data.x->widget, NULL,
&event, NULL);
goto done;
}
#endif /* HACK_EDITRES */
@ -5902,6 +5903,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
images, only, which should have 1 page. */
Pixmap pixmap = (Pixmap) event.xclient.data.l[1];
f = x_window_to_frame (dpyinfo, event.xclient.window);
if (!f)
goto OTHER;
x_kill_gs_process (pixmap, f);
expose_frame (f, 0, 0, 0, 0);
goto done;
@ -5920,10 +5923,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
#endif /* USE_TOOLKIT_SCROLL_BARS */
f = x_any_window_to_frame (dpyinfo, event.xclient.window);
if (!f)
goto OTHER;
if (x_handle_dnd_message (f, &event.xclient, dpyinfo, &inev.ie))
*finish = X_EVENT_DROP;
}
@ -6166,7 +6167,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
f = x_any_window_to_frame (dpyinfo, event.xkey.window);
if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
&& !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
&& (f == 0
|| !EQ (f->tool_bar_window, dpyinfo->mouse_face_window)))
{
clear_mouse_face (dpyinfo);
dpyinfo->mouse_face_hidden = 1;