summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-08-27 04:00:19 +0000
committerMiles Bader <miles@gnu.org>2007-08-27 04:00:19 +0000
commit7f22a76506a3f3db2eb4bce1cfc49105bd8d0824 (patch)
tree02ffae400506ae46fcf03eacaa5210aac7fe57de
parentd53a60a6f76043ba9fb395eece2aaccc67a0d1b2 (diff)
parent619fb9ee822da1d92d8b7974b827dac6a918967f (diff)
Merge from emacs--rel--22
Patches applied: * emacs--rel--22 (patch 97-100) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 246-247) - Update from CVS Revision: emacs@sv.gnu.org/emacs--devo--0--patch-860
-rw-r--r--README2
-rw-r--r--admin/FOR-RELEASE14
-rw-r--r--etc/ChangeLog2
-rw-r--r--etc/NEWS.2210
-rw-r--r--etc/README27
-rw-r--r--lib-src/ChangeLog6
-rw-r--r--lib-src/Makefile.in13
-rw-r--r--lisp/ChangeLog53
-rw-r--r--lisp/dframe.el180
-rw-r--r--lisp/emacs-lisp/backquote.el9
-rw-r--r--lisp/emacs-lisp/byte-opt.el6
-rw-r--r--lisp/emacs-lisp/bytecomp.el21
-rw-r--r--lisp/emacs-lisp/edebug.el8
-rw-r--r--lisp/gnus/ChangeLog22
-rw-r--r--lisp/gnus/gnus-salt.el35
-rw-r--r--lisp/gnus/hex-util.el28
-rw-r--r--lisp/gnus/mml.el9
-rw-r--r--lisp/gnus/sha1.el153
-rw-r--r--lisp/net/browse-url.el134
-rw-r--r--lisp/net/socks.el21
-rw-r--r--lisp/pcvs.el2
-rw-r--r--lisp/progmodes/ada-mode.el234
-rw-r--r--lisp/progmodes/cperl-mode.el80
-rw-r--r--lisp/simple.el25
-rw-r--r--lisp/textmodes/texinfmt.el2
-rw-r--r--lisp/uniquify.el8
-rw-r--r--lisp/vc.el2
-rw-r--r--lispref/ChangeLog7
-rw-r--r--lispref/display.texi4
-rw-r--r--lispref/macros.texi2
-rw-r--r--man/ChangeLog5
-rw-r--r--man/message.texi4
-rw-r--r--src/ChangeLog22
-rw-r--r--src/lread.c38
-rw-r--r--src/w32reg.c2
35 files changed, 667 insertions, 523 deletions
diff --git a/README b/README
index a63bff17ea..59e509355b 100644
--- a/README
+++ b/README
@@ -76,7 +76,7 @@ There are several subdirectories:
`man' holds the source code for the Emacs Manual. If you modify the
manual sources, you will need the `makeinfo' program to produce
an updated manual. `makeinfo' is part of the GNU Texinfo
- package; you need version 4.2 or later of Texinfo.
+ package; you need version 4.6 or later of Texinfo.
`lispref' holds the source code for the Emacs Lisp reference manual.
`lispintro' holds the source code for the Introduction to Programming
in Emacs Lisp manual.
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index c1ad49587b..22e3b65397 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -38,6 +38,13 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin.
(Did we decide that is unreproducible?)
+** set-frame-size for frame without minibuffer loses mode line
+Probably a Windows only bug. Reported by Drew Adams on bug-gnu-emacs on
+2007-08-07. It seems that the bug manifests itself only if resizing the
+frame makes the menu bar wrap before. On 2007-08-16 Glenn Morris
+reported on emacs-devel that he was not able to reproduce the bug on a
+GNU/Linux system.
+
* BUGS
NB the definitive copy of this file for Emacs 22 is on the
@@ -52,14 +59,9 @@ won't lose on USG or HPUX systems.
* FIXES FOR EMACS 22.3
-Here we list small fixes that arrived too late for Emacs 22.2, but
+Here we list any small fixes that arrived too late for Emacs 22.2, but
that should be installed on the release branch after 22.2 is released.
-** bojohan+news@dd.chalmers.se, 1 Aug: n_schumacher@web.de: modification hooks called only once in
-Fix is on the trunk: 2007-08-13 change to insdel.c by Stefan Monnier.
-http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00457.html
-
-
* DOCUMENTATION
** Check the Emacs Tutorial.
diff --git a/etc/ChangeLog b/etc/ChangeLog
index fdcce7a6f4..94faa99bba 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -56,7 +56,7 @@
(\versionyear): update to 2007.
(\copyrightnotice): modified or unmodified ok.
(Simple Customization): don't use goto-line, since now it's bound.
- Also, use now-preferred (kbd ...) syntax.
+^ Also, use now-preferred (kbd ...) syntax.
2007-08-22 Michael Albinus <michael.albinus@gmx.de>
diff --git a/etc/NEWS.22 b/etc/NEWS.22
index cdf1ef1dd0..6009fea755 100644
--- a/etc/NEWS.22
+++ b/etc/NEWS.22
@@ -41,6 +41,8 @@ below. Emacs tries to warn you about these through `bad-packages-alist'.
* Changes in Emacs 22.2
+** `browse-url-emacs' loads a URL into an Emacs buffer. Handy for *.el URLs.
+
** `bad-packages-alist' will warn about external packages that are known
to cause problems in this version of Emacs.
@@ -79,6 +81,14 @@ in to make it use the scrollbars from the system theme.
* Lisp Changes in Emacs 22.2.
+** The function invisible-p returns non-nil if the character
+ after a specified position is invisible.
+
++++
+** inhibit-modification-hooks is bound to t while running modification hooks.
+As a happy consequence, after-change-functions and before-change-functions
+are not bound to nil any more while running an (after|before)-change-function.
+
** New function `window-full-width-p' returns t if a window is as wide
as its frame.
diff --git a/etc/README b/etc/README
index e18da7f381..16e0923487 100644
--- a/etc/README
+++ b/etc/README
@@ -10,8 +10,35 @@ for Emacs functions and variables.
COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
+The files splash.xpm, splash8.xpm contain copyright and license
+information, but it is reproduced here for convenience.
+
+Files: splash.pbm, splash.xpm, splash8.xpm, gnus.pbm, gnus-logo.eps
+ Author: Luis Fernandes <elf@ee.ryerson.ca>
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+ License: GNU General Public License version 3 or later (see COPYING)
+
File: emacs.icon
Author: Sun Microsystems, Inc
Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
License: GNU General Public License version 3 or later (see COPYING)
+
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 2f4b58ab7a..9d7d076ca4 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-25 Eli Zaretskii <eliz@gnu.org>
+
+ * Makefile.in (rcs2log, rcs-checkin, grep-changelog, vcdiff):
+ Prepend "-" to the command, in case srcdir=. and file is copied
+ into itself.
+
2007-07-25 Glenn Morris <rgm@gnu.org>
* Relicense all FSF files to GPLv3 or later.
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 1482ea6c5d..5d8da71dbd 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -268,18 +268,21 @@ BASE_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
all: ${DONT_INSTALL} ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
/* These targets copy the scripts into the build directory
-so that they can be run from there in an uninstalled Emacs. */
+so that they can be run from there in an uninstalled Emacs.
+The "-" is prepended because some versions of cp barf when
+srcdir is the current directory, and thus the file will be
+copied into itself. */
rcs2log: $(srcdir)/rcs2log
- cp -p $(srcdir)/rcs2log rcs2log
+ -cp -p $(srcdir)/rcs2log rcs2log
rcs-checkin: $(srcdir)/rcs-checkin
- cp -p $(srcdir)/rcs-checkin rcs-checkin
+ -cp -p $(srcdir)/rcs-checkin rcs-checkin
grep-changelog: $(srcdir)/grep-changelog
- cp -p $(srcdir)/grep-changelog grep-changelog
+ -cp -p $(srcdir)/grep-changelog grep-changelog
vcdiff: $(srcdir)/vcdiff
- cp -p $(srcdir)/vcdiff vcdiff
+ -cp -p $(srcdir)/vcdiff vcdiff
#ifdef MOVEMAIL_NEEDS_BLESSING
blessmail:
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index acf122a960..a944c9698e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,56 @@
+2007-08-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * uniquify.el (uniquify-rationalize-file-buffer-names): Check liveness
+ of buffers in uniquify-managed.
+
+ * simple.el (invisible-p): Rename from text-invisible-p.
+ Update callers.
+
+2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/cperl-mode.el (defcustom, x-color-defined-p, cperl-is-face)
+ (cperl-is-face, cperl-force-face, cperl-etags-snarf-tag, cperl-mode)
+ (cperl-etags-snarf-tag, cperl-etags-goto-tag-location, cperl-init-faces)
+ (cperl-etags-goto-tag-location): Use new style backquotes.
+
+ * net/browse-url.el: Remove spurious * in custom docstrings.
+ (browse-url-filename-alist): Use new-style backquote.
+
+ * emacs-lisp/backquote.el (backquote-unquote-symbol)
+ (backquote-splice-symbol): Clarify they're not new-style unquotes.
+
+ * emacs-lisp/edebug.el (edebug-list-form, edebug-match-symbol, \,)
+ (\,@): Backslash the , and ,@ which are not new-style unquotes.
+
+ * textmodes/texinfmt.el (\,): Clarify it's not a new-style unquote.
+
+ * net/socks.el (socks-username/password-auth-filter):
+ Remove unused vars `state' and `desired-len'.
+ (socks-parse-services, socks-nslookup-host): Use with-current-buffer.
+ (socks-wait-for-state-change): Use new-style backquotes.
+
+ * pcvs.el (cvs-mode-status): Fix long-standing typo.
+
+ * emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check old-style
+ backquotes after each `read' rather than once per buffer.
+
+ * dframe.el: Remove spurious * in custom docstrings.
+ (dframe-xemacsp): Remove, use (featurep 'xemacs) instead.
+ (dframe-xemacs20p): Remove, inline at the sole use point.
+ (defface): Don't defvar the face, don't use old-style backquote.
+ (defcustom): Don't use old-style backquote.
+ (dframe-frame-parameter, dframe-mouse-event-p):
+ Make it obvious that it's always defined.
+ (dframe-popup-kludge): New function to replace
+ dframe-xemacs-popup-kludge and dframe-xemacs-popup-kludge.
+ (dframe-frame-mode, dframe-set-timer-internal)
+ (dframe-mouse-set-point): Remove use of with-no-warnings from
+ XEmacs-specific code.
+ (dframe-set-timer-internal): Fix very old bug with
+ post-command-idle-hook.
+
+ * emacs-lisp/byte-opt.el (byte-optimize-featurep): Handle `sxemacs'.
+
2007-08-27 Thien-Thi Nguyen <ttn@gnuvola.org>
* emacs-lisp/avl-tree.el: New file.
diff --git a/lisp/dframe.el b/lisp/dframe.el
index 6d811a6a50..53a07ff381 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -114,10 +114,6 @@
(defvar x-pointer-top-left-arrow)
;;; Code:
-(defvar dframe-xemacsp (string-match "XEmacs" emacs-version)
- "Non-nil if we are running in the XEmacs environment.")
-(defvar dframe-xemacs20p (and dframe-xemacsp
- (>= emacs-major-version 20)))
;; From custom web page for compatibility between versions of custom
;; with help from ptype@dera.gov.uk (Proto Type)
@@ -138,25 +134,23 @@
(if (boundp 'defface)
nil
(defmacro defface (var values doc &rest args)
- (` (progn
- (defvar (, var) (quote (, var)))
- ;; To make colors for your faces you need to set your .Xdefaults
- ;; or set them up ahead of time in your .emacs file.
- (make-face (, var))
- ))))
+ ;; To make colors for your faces you need to set your .Xdefaults
+ ;; or set them up ahead of time in your .emacs file.
+ `(make-face ,var)
+ ))
(if (boundp 'defcustom)
nil
(defmacro defcustom (var value doc &rest args)
- (` (defvar (, var) (, value) (, doc)))))))
+ `(defvar ,var ,value ,doc)))))
;;; Compatibility functions
;;
-(defun dframe-frame-parameter (frame parameter)
- "Return FRAME's PARAMETER value."
- (if (fboundp 'frame-parameter)
- (frame-parameter frame parameter)
- (cdr (assoc parameter (frame-parameters frame))))) ; XEmacs
+(defalias 'dframe-frame-parameter
+ (if (fboundp 'frame-parameter) 'frame-parameter
+ (lambda (frame parameter)
+ "Return FRAME's PARAMETER value."
+ (cdr (assoc parameter (frame-parameters frame))))))
;;; Variables
@@ -176,26 +170,26 @@
"Non-nil means that timers are available for this Emacs.")
(defcustom dframe-update-speed
- (if dframe-xemacsp
- (if dframe-xemacs20p
+ (if (featurep 'xemacs)
+ (if (>= emacs-major-version 20)
2 ; 1 is too obrusive in XEmacs
5) ; when no idleness, need long delay
1)
- "*Idle time in seconds needed before dframe will update itself.
+ "Idle time in seconds needed before dframe will update itself.
Updates occur to allow dframe to display directory information
relevant to the buffer you are currently editing."
:group 'dframe
:type 'integer)
(defcustom dframe-activity-change-focus-flag nil
- "*Non-nil means the selected frame will change based on activity.
+ "Non-nil means the selected frame will change based on activity.
Thus, if a file is selected for edit, the buffer will appear in the
selected frame and the focus will change to that frame."
:group 'dframe
:type 'boolean)
(defcustom dframe-after-select-attached-frame-hook nil
- "*Hook run after dframe has selected the attached frame."
+ "Hook run after dframe has selected the attached frame."
:group 'dframe
:type 'hook)
@@ -247,7 +241,7 @@ Local to those buffers, as a function called that created it.")
'dframe-switch-buffer-attached-frame
map global-map)
- (if dframe-xemacsp
+ (if (featurep 'xemacs)
(progn
;; mouse bindings so we can manipulate the items on each line
(define-key map 'button2 'dframe-click)
@@ -255,7 +249,7 @@ Local to those buffers, as a function called that created it.")
;; Info doc fix from Bob Weiner
(if (featurep 'infodoc)
nil
- (define-key map 'button3 'dframe-xemacs-popup-kludge))
+ (define-key map 'button3 'dframe-popup-kludge))
)
;; mouse bindings so we can manipulate the items on each line
@@ -267,13 +261,13 @@ Local to those buffers, as a function called that created it.")
;; This adds a small unecessary visual effect
;;(define-key map [down-mouse-2] 'dframe-quick-mouse)
- (define-key map [down-mouse-3] 'dframe-emacs-popup-kludge)
+ (define-key map [down-mouse-3] 'dframe-popup-kludge)
;; This lets the user scroll as if we had a scrollbar... well maybe not
(define-key map [mode-line mouse-2] 'dframe-mouse-hscroll)
;; another handy place users might click to get our menu.
(define-key map [mode-line down-mouse-1]
- 'dframe-emacs-popup-kludge)
+ 'dframe-popup-kludge)
;; We can't switch buffers with the buffer mouse menu. Lets hack it.
(define-key map [C-down-mouse-1] 'dframe-hack-buffer-menu)
@@ -325,14 +319,12 @@ CREATE-HOOK are hooks to run after creating a frame."
(run-hooks 'popup-hook)
;; Updated the buffer passed in to contain all the hacks needed
;; to make it work well in a dedicated window.
- (save-excursion
- (set-buffer (symbol-value buffer-var))
+ (with-current-buffer (symbol-value buffer-var)
;; Declare this buffer a dedicated frame
(setq dframe-controlled local-mode-fn)
- (if dframe-xemacsp
- ;; Hack the XEmacs mouse-motion handler
- (with-no-warnings
+ (if (featurep 'xemacs)
+ (progn
;; Hack the XEmacs mouse-motion handler
(set (make-local-variable 'mouse-motion-handler)
'dframe-track-mouse-xemacs)
@@ -353,7 +345,7 @@ CREATE-HOOK are hooks to run after creating a frame."
;; Enable mouse tracking in emacs
(if dframe-track-mouse-function
(set (make-local-variable 'track-mouse) t))) ;this could be messy.
-;;;; DISABLED: This causes problems for users with multiple frames.
+;;;; DISABLED: This causes problems for users with multiple frames.
;;;; ;; Set this up special just for the passed in buffer
;;;; ;; Terminal minibuffer stuff does not require this.
;;;; (if (and (or (assoc 'minibuffer parameters)
@@ -402,7 +394,7 @@ CREATE-HOOK are hooks to run after creating a frame."
(if (frame-live-p (symbol-value frame-var))
(raise-frame (symbol-value frame-var))
(set frame-var
- (if dframe-xemacsp
+ (if (featurep 'xemacs)
;; Only guess height if it is not specified.
(if (member 'height parameters)
(make-frame parameters)
@@ -458,7 +450,7 @@ CREATE-HOOK are hooks to run after creating a frame."
(defun dframe-reposition-frame (new-frame parent-frame location)
"Move NEW-FRAME to be relative to PARENT-FRAME.
LOCATION can be one of 'random, 'left, 'right, 'left-right, or 'top-bottom."
- (if dframe-xemacsp
+ (if (featurep 'xemacs)
(dframe-reposition-frame-xemacs new-frame parent-frame location)
(dframe-reposition-frame-emacs new-frame parent-frame location)))
@@ -568,13 +560,13 @@ LOCATION can be one of 'random, 'left-right, or 'top-bottom."
(defun dframe-detach (frame-var cache-var buffer-var)
"Detatch the frame in symbol FRAME-VAR.
CACHE-VAR and BUFFER-VAR are symbols as in `dframe-frame-mode'"
- (save-excursion
- (set-buffer (symbol-value buffer-var))
+ (with-current-buffer (symbol-value buffer-var)
(rename-buffer (buffer-name) t)
(let ((oldframe (symbol-value frame-var)))
(set buffer-var nil)
(set frame-var nil)
(set cache-var nil)
+ ;; FIXME: Looks very suspicious. Luckily this function is unused.
(make-variable-buffer-local frame-var)
(set frame-var oldframe)
)))
@@ -785,18 +777,16 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
(cond
;; XEmacs
- (dframe-xemacsp
- (with-no-warnings
+ ((featurep 'xemacs)
(if dframe-timer
(progn (delete-itimer dframe-timer)
(setq dframe-timer nil)))
(if timeout
- (if (and dframe-xemacsp
- (or (>= emacs-major-version 21)
- (and (= emacs-major-version 20)
- (> emacs-minor-version 0))
- (and (= emacs-major-version 19)
- (>= emacs-minor-version 15))))
+ (if (or (>= emacs-major-version 21)
+ (and (= emacs-major-version 20)
+ (> emacs-minor-version 0))
+ (and (= emacs-major-version 19)
+ (>= emacs-minor-version 15)))
(setq dframe-timer (start-itimer "dframe"
'dframe-timer-fn
timeout
@@ -805,7 +795,7 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
(setq dframe-timer (start-itimer "dframe"
'dframe-timer-fn
timeout
- nil))))))
+ nil)))))
;; Post 19.31 Emacs
((fboundp 'run-with-idle-timer)
(if dframe-timer
@@ -815,7 +805,7 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
(setq dframe-timer
(run-with-idle-timer timeout t 'dframe-timer-fn))))
;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
- ((fboundp 'post-command-idle-hook)
+ ((boundp 'post-command-idle-hook)
(if timeout
(add-hook 'post-command-idle-hook 'dframe-timer-fn)
(remove-hook 'post-command-idle-hook 'dframe-timer-fn)))
@@ -849,57 +839,58 @@ Evaluates all cached timer functions in sequence."
;; opposed to where the point happens to be.) We attain this by
;; temporarily moving the point to that place.
;; Hrvoje Niksic <hniksic@srce.hr>
-(with-no-warnings
-(defun dframe-xemacs-popup-kludge (event)
- "Pop up a menu related to the clicked on item.
+(defalias 'dframe-popup-kludge
+ (if (featurep 'xemacs)
+ (lambda (event) ; XEmacs.
+ "Pop up a menu related to the clicked on item.
Must be bound to EVENT."
- (interactive "e")
- (save-excursion
- (if dframe-pass-event-to-popup-mode-menu
- (popup-mode-menu event)
- (goto-char (event-closest-point event))
- (beginning-of-line)
- (forward-char (min 5 (- (save-excursion (end-of-line) (point))
- (save-excursion (beginning-of-line) (point)))))
- (popup-mode-menu))
- ;; Wait for menu to bail out. `popup-mode-menu' (and other popup
- ;; menu functions) return immediately.
- (let (new)
- (while (not (misc-user-event-p (setq new (next-event))))
- (dispatch-event new))
- (dispatch-event new))))
-);with-no-warnings
-
-(defun dframe-emacs-popup-kludge (e)
- "Pop up a menu related to the clicked on item.
+ (interactive "e")
+ (save-excursion
+ (if dframe-pass-event-to-popup-mode-menu
+ (popup-mode-menu event)
+ (goto-char (event-closest-point event))
+ (beginning-of-line)
+ (forward-char (min 5 (- (save-excursion (end-of-line) (point))
+ (save-excursion (beginning-of-line) (point)))))
+ (popup-mode-menu))
+ ;; Wait for menu to bail out. `popup-mode-menu' (and other popup
+ ;; menu functions) return immediately.
+ (let (new)
+ (while (not (misc-user-event-p (setq new (next-event))))
+ (dispatch-event new))
+ (dispatch-event new))))
+
+ (lambda (e) ; Emacs.
+ "Pop up a menu related to the clicked on item.
Must be bound to event E."
- (interactive "e")
- (save-excursion
- (mouse-set-point e)
- ;; This gets the cursor where the user can see it.
- (if (not (bolp)) (forward-char -1))
- (sit-for 0)
- (if (< emacs-major-version 20)
- (mouse-major-mode-menu e)
- (mouse-major-mode-menu e nil))))
+ (interactive "e")
+ (save-excursion
+ (mouse-set-point e)
+ ;; This gets the cursor where the user can see it.
+ (if (not (bolp)) (forward-char -1))
+ (sit-for 0)
+ (if (< emacs-major-version 20)
+ (mouse-major-mode-menu e)
+ (mouse-major-mode-menu e nil))))))
;;; Interactive user functions for the mouse
;;
-(defun dframe-mouse-event-p (event)
- "Return t if the event is a mouse related event."
- (if (fboundp 'button-press-event-p)
- (button-press-event-p event) ; XEmacs
- (if (and (listp event)
- (member (event-basic-type event)
- '(mouse-1 mouse-2 mouse-3)))
- t
- nil)))
+(defalias 'dframe-mouse-event-p
+ (if (featurep 'xemacs)
+ 'button-press-event-p
+ (lambda (event)
+ "Return t if the event is a mouse related event."
+ (if (and (listp event)
+ (member (event-basic-type event)
+ '(mouse-1 mouse-2 mouse-3)))
+ t
+ nil))))
(defun dframe-track-mouse (event)
"For motion EVENT, display info about the current line."
(interactive "e")
(when (and dframe-track-mouse-function
- (or dframe-xemacsp ;; XEmacs always safe?
+ (or (featurep 'xemacs) ;; XEmacs always safe?
(windowp (posn-window (event-end event))) ; Sometimes
; there is no window to jump into.
))
@@ -929,19 +920,18 @@ BUFFER and POSITION are optional because XEmacs doesn't use them."
(defun dframe-mouse-set-point (e)
"Set POINT based on event E.
Handles clicking on images in XEmacs."
- (if (save-excursion
- (save-window-excursion
- (mouse-set-point e)
- (and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))))
+ (if (and (featurep 'xemacs)
+ (save-excursion
+ (save-window-excursion
+ (mouse-set-point e)
+ (event-over-glyph-p e))))
;; We are in XEmacs, and clicked on a picture
- (with-no-warnings
(let ((ext (event-glyph-extent e)))
;; This position is back inside the extent where the
;; junk we pushed into the property list lives.
(if (extent-end-position ext)
(goto-char (1- (extent-end-position ext)))
(mouse-set-point e)))
- );with-no-warnings
;; We are not in XEmacs, OR we didn't click on a picture.
(mouse-set-point e)))
@@ -1000,7 +990,7 @@ redirected into a window on the attached frame."
(pop-to-buffer buffer nil)
(other-window -1)
;; Fix for using this hook on some platforms: Bob Weiner
- (cond ((not dframe-xemacsp)
+ (cond ((not (featurep 'xemacs))
(run-hooks 'temp-buffer-show-hook))
((fboundp 'run-hook-with-args)
(run-hook-with-args 'temp-buffer-show-hook buffer))
@@ -1015,8 +1005,8 @@ This hack overrides it so that the right thing happens in the main
Emacs frame, not in the dedicated frame.
Argument E is the event causing this activity."
(interactive "e")
- (let ((fn (lookup-key global-map (if dframe-xemacsp
- '(control button1)
+ (let ((fn (lookup-key global-map (if (featurep 'xemacs)
+ '(control button1)
[C-down-mouse-1])))
(oldbuff (current-buffer))
(newbuff nil))
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el
index 6daaf00143..a2a929d960 100644
--- a/lisp/emacs-lisp/backquote.el
+++ b/lisp/emacs-lisp/backquote.el
@@ -85,10 +85,10 @@ For example (backquote-list* 'a 'b 'c) => (a b . c)"
(defconst backquote-backquote-symbol '\`
"Symbol used to represent a backquote or nested backquote.")
-(defconst backquote-unquote-symbol ',
+(defconst backquote-unquote-symbol '\,
"Symbol used to represent an unquote inside a backquote.")
-(defconst backquote-splice-symbol ',@
+(defconst backquote-splice-symbol '\,@
"Symbol used to represent a splice inside a backquote.")
;;;###autoload
@@ -121,9 +121,8 @@ Vectors work just like lists. Nested backquotes are permitted."
(defun backquote-delay-process (s level)
"Process a (un|back|splice)quote inside a backquote.
This simply recurses through the body."
- (let ((exp (backquote-listify (list (backquote-process (nth 1 s) level)
- (cons 0 (list 'quote (car s))))
- '(0))))
+ (let ((exp (backquote-listify (list (cons 0 (list 'quote (car s))))
+ (backquote-process (cdr s) level))))
(if (eq (car-safe exp) 'quote)
(cons 0 (list 'quote s))
(cons 1 exp))))
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 80a6ad595b..fdeab460c7 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1146,9 +1146,9 @@
(put 'featurep 'byte-optimizer 'byte-optimize-featurep)
(defun byte-optimize-featurep (form)
- ;; Emacs-21's byte-code doesn't run under XEmacs anyway, so we can
- ;; safely optimize away this test.
- (if (equal '((quote xemacs)) (cdr-safe form))
+ ;; Emacs-21's byte-code doesn't run under XEmacs or SXEmacs anyway, so we
+ ;; can safely optimize away this test.
+ (if (member (cdr-safe form) '((quote xemacs) (quote sxemacs)))
nil
form))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 39ff0d8668..bfc21820b5 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1010,8 +1010,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
(defun byte-compile-log-file ()
(and (not (equal byte-compile-current-file byte-compile-last-logged-file))
(not noninteractive)
- (save-excursion
- (set-buffer (get-buffer-create "*Compile-Log*"))
+ (with-current-buffer (get-buffer-create "*Compile-Log*")
(goto-char (point-max))
(let* ((inhibit-read-only t)
(dir (and byte-compile-current-file
@@ -1548,8 +1547,7 @@ recompile every `.el' file that already has a `.elc' file."
nil
(save-some-buffers)
(force-mode-line-update))
- (save-current-buffer
- (set-buffer (get-buffer-create "*Compile-Log*"))
+ (with-current-buffer (get-buffer-create "*Compile-Log*")
(setq default-directory (expand-file-name directory))
;; compilation-mode copies value of default-directory.
(unless (eq major-mode 'compilation-mode)
@@ -1651,7 +1649,7 @@ The value is non-nil if there were no errors, nil if errors."
(let ((b (get-file-buffer (expand-file-name filename))))
(if (and b (buffer-modified-p b)
(y-or-n-p (format "Save buffer %s first? " (buffer-name b))))
- (save-excursion (set-buffer b) (save-buffer)))))
+ (with-current-buffer b (save-buffer)))))
;; Force logging of the file name for each file compiled.
(setq byte-compile-last-logged-file nil)
@@ -1661,9 +1659,8 @@ The value is non-nil if there were no errors, nil if errors."
byte-compile-dest-file)
(setq target-file (byte-compile-dest-file filename))
(setq byte-compile-dest-file target-file)
- (save-excursion
- (setq input-buffer (get-buffer-create " *Compiler Input*"))
- (set-buffer input-buffer)
+ (with-current-buffer
+ (setq input-buffer (get-buffer-create " *Compiler Input*"))
(erase-buffer)
(setq buffer-file-coding-system nil)
;; Always compile an Emacs Lisp file as multibyte
@@ -1864,7 +1861,13 @@ With argument, insert value in current buffer after the form."
(not (eobp)))
(setq byte-compile-read-position (point)
byte-compile-last-position byte-compile-read-position)
- (let ((form (read inbuffer)))
+ (let* ((old-style-backquotes nil)
+ (form (read inbuffer)))
+ ;; Warn about the use of old-style backquotes.
+ (when old-style-backquotes
+ (byte-compile-warn "!! The file uses old-style backquotes !!
+This functionality has been obsolete for more than 10 years already
+and will be removed soon. See (elisp)Backquote in the manual."))
(byte-compile-file-form form)))
;; Compile pending forms at end of file.
(byte-compile-flush-pending)
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 5a526126c2..964688894a 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1507,7 +1507,7 @@ expressions; a `progn' form will be returned enclosing these forms."
head (edebug-move-cursor cursor))))))
((consp head)
- (if (eq (car head) ',)
+ (if (eq (car head) '\,)
;; The head of a form should normally be a symbol or a lambda
;; expression but it can also be an unquote form to be filled
;; before evaluation. We evaluate the arguments anyway, on the
@@ -1664,7 +1664,7 @@ expressions; a `progn' form will be returned enclosing these forms."
((fboundp symbol) ; is it a predicate?
(let ((sexp (edebug-top-element-required cursor "Expected" symbol)))
;; Special case for edebug-`.
- (if (and (listp sexp) (eq (car sexp) ',))
+ (if (and (listp sexp) (eq (car sexp) '\,))
(edebug-match cursor '(("," def-form)))
(if (not (funcall symbol sexp))
(edebug-no-match cursor symbol "failed"))
@@ -2102,8 +2102,8 @@ expressions; a `progn' form will be returned enclosing these forms."
(def-edebug-spec edebug-\` (def-form))
;; Assume immediate quote in unquotes mean backquote at next higher level.
-(def-edebug-spec , (&or ("quote" edebug-\`) def-form))
-(def-edebug-spec ,@ (&define ;; so (,@ form) is never wrapped.
+(def-edebug-spec \, (&or ("quote" edebug-\`) def-form))
+(def-edebug-spec \,@ (&define ;; so (,@ form) is never wrapped.
&or ("quote" edebug-\`) def-form))
;; New byte compiler.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 201b7fefdc..0cf879fd26 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,21 @@
+2007-08-23 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mml.el (mml-generate-mime): Make sure it uses multibyte temp buffer.
+ (mml-generate-mime-1): Don't encode body if it is specified to be in
+ raw form; don't make buffer be unibyte when inserting multibyte string.
+
+2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * sha1.el: Fix up comment style.
+ (sha1-F0, sha1-F1, sha1-F2, sha1-F3, sha1-S1, sha1-S5, sha1-S30)
+ (sha1-OP, sha1-add-to-H): Use new-style backquotes.
+
+ * hex-util.el: Fix up comment style.
+ (hex-char-to-num, num-to-hex-char): Use new-style backquotes.
+
+ * gnus-salt.el: Use with-current-buffer.
+ (gnus-pick-setup-message): Fix long-standing typo.
+
2007-08-17 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-article-summary-command-nosave)
@@ -11,8 +29,8 @@
according to gnus-maximum-newsgroup.
* gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles)
- (gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit
- the range of articles according to gnus-maximum-newsgroup.
+ (gnus-list-of-read-articles, gnus-sequence-of-unread-articles):
+ Limit the range of articles according to gnus-maximum-newsgroup.
2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org>
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index 298b6dc473..e8d3e332ba 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -134,11 +134,10 @@ It accepts the same format specs that `gnus-summary-line-format' does."
(defun gnus-pick-setup-message ()
"Make Message do the right thing on exit."
(when (and (gnus-buffer-live-p gnus-summary-buffer)
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
gnus-pick-mode))
(message-add-action
- '(gnus-configure-windows ,gnus-current-window-configuration t)
+ `(gnus-configure-windows ,gnus-current-window-configuration t)
'send 'exit 'postpone 'kill)))
(defvar gnus-pick-line-number 1)
@@ -524,8 +523,7 @@ Two predefined functions are available:
(interactive (list (gnus-tree-article-number)))
(let ((buf (current-buffer)))
(when article
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(gnus-summary-goto-article article))
(select-window (get-buffer-window buf)))))
@@ -576,8 +574,7 @@ Two predefined functions are available:
(defun gnus-get-tree-buffer ()
"Return the tree buffer properly initialized."
- (save-excursion
- (set-buffer (gnus-get-buffer-create gnus-tree-buffer))
+ (with-current-buffer (gnus-get-buffer-create gnus-tree-buffer)
(unless (eq major-mode 'gnus-tree-mode)
(gnus-tree-mode))
(current-buffer)))
@@ -662,8 +659,7 @@ Two predefined functions are available:
"Highlight current line according to `gnus-summary-highlight'."
(let ((list gnus-summary-highlight)
face)
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(let* ((score (or (cdr (assq article gnus-newsgroup-scored))
gnus-summary-default-score 0))
(default gnus-summary-default-score)
@@ -690,8 +686,7 @@ Two predefined functions are available:
(defun gnus-generate-tree (thread)
"Generate a thread tree for THREAD."
- (save-excursion
- (set-buffer (gnus-get-tree-buffer))
+ (with-current-buffer (gnus-get-tree-buffer)
(let ((buffer-read-only nil)
(gnus-tmp-indent 0))
(erase-buffer)
@@ -814,14 +809,12 @@ Two predefined functions are available:
(defun gnus-possibly-generate-tree (article &optional force)
"Generate the thread tree for ARTICLE if it isn't displayed already."
- (when (save-excursion
- (set-buffer gnus-summary-buffer)
+ (when (with-current-buffer gnus-summary-buffer
(and gnus-use-trees
gnus-show-threads
(vectorp (gnus-summary-article-header article))))
(save-excursion
- (let ((top (save-excursion
- (set-buffer gnus-summary-buffer)
+ (let ((top (with-current-buffer gnus-summary-buffer
(gnus-cut-thread
(gnus-remove-thread
(mail-header-id
@@ -843,8 +836,7 @@ Two predefined functions are available:
(defun gnus-tree-perhaps-minimize ()
(when (and gnus-tree-minimize-window
(get-buffer gnus-tree-buffer))
- (save-excursion
- (set-buffer gnus-tree-buffer)
+ (with-current-buffer gnus-tree-buffer
(gnus-tree-minimize))))
(defun gnus-highlight-selected-tree (article)
@@ -871,14 +863,12 @@ Two predefined functions are available:
(gnus-horizontal-recenter)
(select-window selected))))
;; If we remove this save-excursion, it updates the wrong mode lines?!?
- (save-excursion
- (set-buffer gnus-tree-buffer)
+ (with-current-buffer gnus-tree-buffer
(gnus-set-mode-line 'tree))
(set-buffer buf)))
(defun gnus-tree-highlight-article (article face)
- (save-excursion
- (set-buffer (gnus-get-tree-buffer))
+ (with-current-buffer (gnus-get-tree-buffer)
(let (region)
(when (setq region (gnus-tree-article-region article))
(gnus-put-text-property (car region) (cdr region) 'face face)
@@ -1013,8 +1003,7 @@ The following commands are available:
(let ((buffer (symbol-value (intern (format "gnus-carpal-%s-buffer" type)))))
(if (get-buffer buffer)
()
- (save-excursion
- (set-buffer (gnus-get-buffer-create buffer))
+ (with-current-buffer (gnus-get-buffer-create buffer)
(gnus-carpal-mode)
(setq gnus-carpal-attached-buffer
(intern (format "gnus-%s-buffer" type)))
diff --git a/lisp/gnus/hex-util.el b/lisp/gnus/hex-util.el
index 6a10e3d244..981516e4b2 100644
--- a/lisp/gnus/hex-util.el
+++ b/lisp/gnus/hex-util.el
@@ -29,14 +29,14 @@
(eval-when-compile
(defmacro hex-char-to-num (chr)
- (` (let ((chr (, chr)))
- (cond
- ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10))
- ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10))
- ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0))
- (t (error "Invalid hexadecimal digit `%c'" chr))))))
+ `(let ((chr ,chr))
+ (cond
+ ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10))
+ ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10))
+ ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0))
+ (t (error "Invalid hexadecimal digit `%c'" chr)))))
(defmacro num-to-hex-char (num)
- (` (aref "0123456789abcdef" (, num)))))
+ `(aref "0123456789abcdef" ,num)))
(defun decode-hex-string (string)
"Decode hexadecimal STRING to octet string."
@@ -44,9 +44,9 @@
(dst (make-string (/ len 2) 0))
(idx 0)(pos 0))
(while (< pos len)
-;;; logior and lsh are not byte-coded.
-;;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4)
-;;; (hex-char-to-num (aref string (1+ pos)))))
+ ;; logior and lsh are not byte-coded.
+ ;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4)
+ ;; (hex-char-to-num (aref string (1+ pos)))))
(aset dst idx (+ (* (hex-char-to-num (aref string pos)) 16)
(hex-char-to-num (aref string (1+ pos)))))
(setq idx (1+ idx)
@@ -59,11 +59,11 @@
(dst (make-string (* len 2) 0))
(idx 0)(pos 0))
(while (< pos len)
-;;; logand and lsh are not byte-coded.
-;;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15)))
+ ;; logand and lsh are not byte-coded.
+ ;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15)))
(aset dst idx (num-to-hex-char (/ (aref string pos) 16)))
(setq idx (1+ idx))
-;;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15)))
+ ;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15)))
(aset dst idx (num-to-hex-char (% (aref string pos) 16)))
(setq idx (1+ idx)
pos (1+ pos)))
@@ -71,5 +71,5 @@
(provide 'hex-util)
-;;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
+;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
;;; hex-util.el ends here
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index dae746fa08..0c60bed409 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -404,7 +404,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(mml-multipart-number mml-multipart-number))
(if (not cont)
nil
- (with-temp-buffer
+ (mm-with-multibyte-buffer
(if (and (consp (car cont))
(= (length cont) 1))
(mml-generate-mime-1 (car cont))
@@ -516,14 +516,13 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(progn
(mm-enable-multibyte)
(insert contents)
- (setq charset (mm-encode-body)))
+ (unless raw
+ (setq charset (mm-encode-body))))
(insert contents)))))
(setq encoding (mm-encode-buffer type)
coded (mm-string-as-multibyte (buffer-string))))
(mml-insert-mime-headers cont type charset encoding nil)
- (insert "\n")
- (mm-with-unibyte-current-buffer
- (insert coded)))))
+ (insert "\n" coded))))
((eq (car cont) 'external)
(insert "Content-Type: message/external-body")
(let ((parameters (mml-parameter-string
diff --git a/lisp/gnus/sha1.el b/lisp/gnus/sha1.el
index 0411a983ba..146aa6374a 100644
--- a/lisp/gnus/sha1.el
+++ b/lisp/gnus/sha1.el
@@ -123,93 +123,93 @@ If this variable is set to nil, use internal function only."
(defconst sha1-K3-high 51810) ; (string-to-number "CA62" 16)
(defconst sha1-K3-low 49622) ; (string-to-number "C1D6" 16)
-;;; original definition of sha1-F0.
-;;; (defmacro sha1-F0 (B C D)
-;;; (` (logior (logand (, B) (, C))
-;;; (logand (lognot (, B)) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
+ ;; original definition of sha1-F0.
+ ;; (defmacro sha1-F0 (B C D)
+ ;; (` (logior (logand (, B) (, C))
+ ;; (logand (lognot (, B)) (, D)))))
+ ;; a little optimization from GnuPG/cipher/sha1.c.
(defmacro sha1-F0 (B C D)
- (` (logxor (, D) (logand (, B) (logxor (, C) (, D))))))
+ `(logxor ,D (logand ,B (logxor ,C ,D))))
(defmacro sha1-F1 (B C D)
- (` (logxor (, B) (, C) (, D))))
-;;; original definition of sha1-F2.
-;;; (defmacro sha1-F2 (B C D)
-;;; (` (logior (logand (, B) (, C))
-;;; (logand (, B) (, D))
-;;; (logand (, C) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
+ `(logxor ,B ,C ,D))
+ ;; original definition of sha1-F2.
+ ;; (defmacro sha1-F2 (B C D)
+ ;; (` (logior (logand (, B) (, C))
+ ;; (logand (, B) (, D))
+ ;; (logand (, C) (, D)))))
+ ;; a little optimization from GnuPG/cipher/sha1.c.
(defmacro sha1-F2 (B C D)
- (` (logior (logand (, B) (, C))
- (logand (, D) (logior (, B) (, C))))))
+ `(logior (logand ,B ,C)
+ (logand ,D (logior ,B ,C))))
(defmacro sha1-F3 (B C D)
- (` (logxor (, B) (, C) (, D))))
+ `(logxor ,B ,C ,D))
(defmacro sha1-S1 (W-high W-low)
- (` (let ((W-high (, W-high))
- (W-low (, W-low)))
+ `(let ((W-high ,W-high)
+ (W-low ,W-low))
(setq S1W-high (+ (% (* W-high 2) 65536)
- (/ W-low (, (/ 65536 2)))))
- (setq S1W-low (+ (/ W-high (, (/ 65536 2)))
- (% (* W-low 2) 65536))))))
+ (/ W-low ,(/ 65536 2))))
+ (setq S1W-low (+ (/ W-high ,(/ 65536 2))
+ (% (* W-low 2) 65536)))))
(defmacro sha1-S5 (A-high A-low)
- (` (progn
- (setq S5A-high (+ (% (* (, A-high) 32) 65536)
- (/ (, A-low) (, (/ 65536 32)))))
- (setq S5A-low (+ (/ (, A-high) (, (/ 65536 32)))
- (% (* (, A-low) 32) 65536))))))
+ `(progn
+ (setq S5A-high (+ (% (* ,A-high 32) 65536)
+ (/ ,A-low ,(/ 65536 32))))
+ (setq S5A-low (+ (/ ,A-high ,(/ 65536 32))
+ (% (* ,A-low 32) 65536)))))
(defmacro sha1-S30 (B-high B-low)
- (` (progn
- (setq S30B-high (+ (/ (, B-high) 4)
- (* (% (, B-low) 4) (, (/ 65536 4)))))
- (setq S30B-low (+ (/ (, B-low) 4)
- (* (% (, B-high) 4) (, (/ 65536 4))))))))
+ `(progn
+ (setq S30B-high (+ (/ ,B-high 4)
+ (* (% ,B-low 4) ,(/ 65536 4))))
+ (setq S30B-low (+ (/ ,B-low 4)
+ (* (% ,B-high 4) ,(/ 65536 4))))))
(defmacro sha1-OP (round)
- (` (progn
- (sha1-S5 sha1-A-high sha1-A-low)
- (sha1-S30 sha1-B-high sha1-B-low)
- (setq sha1-A-low (+ ((, (intern (format "sha1-F%d" round)))
- sha1-B-low sha1-C-low sha1-D-low)
- sha1-E-low
- (, (symbol-value
- (intern (format "sha1-K%d-low" round))))
- (aref block-low idx)
- (progn
- (setq sha1-E-low sha1-D-low)
- (setq sha1-D-low sha1-C-low)
- (setq sha1-C-low S30B-low)
- (setq sha1-B-low sha1-A-low)
- S5A-low)))
- (setq carry (/ sha1-A-low 65536))
- (setq sha1-A-low (% sha1-A-low 65536))
- (setq sha1-A-high (% (+ ((, (intern (format "sha1-F%d" round)))
- sha1-B-high sha1-C-high sha1-D-high)
- sha1-E-high
- (, (symbol-value
- (intern (format "sha1-K%d-high" round))))
- (aref block-high idx)
- (progn
- (setq sha1-E-high sha1-D-high)
- (setq sha1-D-high sha1-C-high)
- (setq sha1-C-high S30B-high)
- (setq sha1-B-high sha1-A-high)
- S5A-high)
- carry)
- 65536)))))
+ `(progn
+ (sha1-S5 sha1-A-high sha1-A-low)
+ (sha1-S30 sha1-B-high sha1-B-low)
+ (setq sha1-A-low (+ (,(intern (format "sha1-F%d" round))
+ sha1-B-low sha1-C-low sha1-D-low)
+ sha1-E-low
+ ,(symbol-value
+ (intern (format "sha1-K%d-low" round)))
+ (aref block-low idx)
+ (progn
+ (setq sha1-E-low sha1-D-low)
+ (setq sha1-D-low sha1-C-low)
+ (setq sha1-C-low S30B-low)
+ (setq sha1-B-low sha1-A-low)
+ S5A-low)))
+ (setq carry (/ sha1-A-low 65536))
+ (setq sha1-A-low (% sha1-A-low 65536))
+ (setq sha1-A-high (% (+ (,(intern (format "sha1-F%d" round))
+ sha1-B-high sha1-C-high sha1-D-high)
+ sha1-E-high
+ ,(symbol-value
+ (intern (format "sha1-K%d-high" round)))
+ (aref block-high idx)
+ (progn
+ (setq sha1-E-high sha1-D-high)
+ (setq sha1-D-high sha1-C-high)
+ (setq sha1-C-high S30B-high)
+ (setq sha1-B-high sha1-A-high)
+ S5A-high)
+ carry)
+ 65536))))
(defmacro sha1-add-to-H (H X)
- (` (progn
- (setq (, (intern (format "sha1-%s-low" H)))
- (+ (, (intern (format "sha1-%s-low" H)))
- (, (intern (format "sha1-%s-low" X)))))
- (setq carry (/ (, (intern (format "sha1-%s-low" H))) 65536))
- (setq (, (intern (format "sha1-%s-low" H)))
- (% (, (intern (format "sha1-%s-low" H))) 65536))
- (setq (, (intern (format "sha1-%s-high" H)))
- (% (+ (, (intern (format "sha1-%s-high" H)))
- (, (intern (format "sha1-%s-high" X)))
- carry)
- 65536)))))
+ `(progn
+ (setq ,(intern (format "sha1-%s-low" H))
+ (+ ,(intern (format "sha1-%s-low" H))
+ ,(intern (format "sha1-%s-low" X))))
+ (setq carry (/ ,(intern (format "sha1-%s-low" H)) 65536))
+ (setq ,(intern (format "sha1-%s-low" H))
+ (% ,(intern (format "sha1-%s-low" H)) 65536))
+ (setq ,(intern (format "sha1-%s-high" H))
+ (% (+ ,(intern (format "sha1-%s-high" H))
+ ,(intern (format "sha1-%s-high" X))
+ carry)
+ 65536))))
)
;;; buffers (H0 H1 H2 H3 H4).
@@ -433,11 +433,10 @@ hash of a portion of OBJECT.
If BINARY is non-nil, return a string in binary form."
(if (stringp object)
(sha1-string object binary)
- (save-excursion
- (set-buffer object)
+ (with-current-buffer object
(sha1-region (or beg (point-min)) (or end (point-max)) binary))))
(provide 'sha1)
-;;; arch-tag: c0f9abd0-ffc1-4557-aac6-ece7f2d4c901
+;; arch-tag: c0f9abd0-ffc1-4557-aac6-ece7f2d4c901
;;; sha1.el ends here
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 208e1fc178..04f83ed465 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -235,7 +235,7 @@
'browse-url-default-windows-browser)
((memq system-type '(darwin)) 'browse-url-default-macosx-browser)
(t 'browse-url-default-browser))
- "*Function to display the current buffer in a WWW browser.
+ "Function to display the current buffer in a WWW browser.
This is used by the `browse-url-at-point', `browse-url-at-mouse', and
`browse-url-of-file' commands.
@@ -281,7 +281,7 @@ regexp should probably be \".\" to specify a default browser."
(defcustom browse-url-netscape-program "netscape"
;; Info about netscape-remote from Karl Berry.
- "*The name by which to invoke Netscape.
+ "The name by which to invoke Netscape.
The free program `netscape-remote' from
<URL:http://home.netscape.com/newsref/std/remote.c> is said to start
@@ -292,34 +292,34 @@ system, given vroot.h from the same directory, with cc flags
:group 'browse-url)
(defcustom browse-url-netscape-arguments nil
- "*A list of strings to pass to Netscape as arguments."
+ "A list of strings to pass to Netscape as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-netscape-startup-arguments browse-url-netscape-arguments
- "*A list of strings to pass to Netscape when it starts up.
+ "A list of strings to pass to Netscape when it starts up.
Defaults to the value of `browse-url-netscape-arguments' at the time
`browse-url' is loaded."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-browser-display nil
- "*The X display for running the browser, if not same as Emacs'."
+ "The X display for running the browser, if not same as Emacs'."
:type '(choice string (const :tag "Default" nil))
:group 'browse-url)
(defcustom browse-url-mozilla-program "mozilla"
- "*The name by which to invoke Mozilla."
+ "The name by which to invoke Mozilla."
:type 'string
:group 'browse-url)
(defcustom browse-url-mozilla-arguments nil
- "*A list of strings to pass to Mozilla as arguments."
+ "A list of strings to pass to Mozilla as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-mozilla-startup-arguments browse-url-mozilla-arguments
- "*A list of strings to pass to Mozilla when it starts up.
+ "A list of strings to pass to Mozilla when it starts up.
Defaults to the value of `browse-url-mozilla-arguments' at the time
`browse-url' is loaded."
:type '(repeat (string :tag "Argument"))
@@ -327,17 +327,17 @@ Defaults to the value of `browse-url-mozilla-arguments' at the time
;;;###autoload
(defcustom browse-url-firefox-program "firefox"
- "*The name by which to invoke Firefox."
+ "The name by which to invoke Firefox."
:type 'string
:group 'browse-url)
(defcustom browse-url-firefox-arguments nil
- "*A list of strings to pass to Firefox as arguments."
+ "A list of strings to pass to Firefox as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-firefox-startup-arguments browse-url-firefox-arguments
- "*A list of strings to pass to Firefox when it starts up.
+ "A list of strings to pass to Firefox when it starts up.
Defaults to the value of `browse-url-firefox-arguments' at the time
`browse-url' is loaded."
:type '(repeat (string :tag "Argument"))
@@ -345,34 +345,34 @@ Defaults to the value of `browse-url-firefox-arguments' at the time
;;;###autoload
(defcustom browse-url-galeon-program "galeon"
- "*The name by which to invoke Galeon."
+ "The name by which to invoke Galeon."
:type 'string
:group 'browse-url)
(defcustom browse-url-galeon-arguments nil
- "*A list of strings to pass to Galeon as arguments."
+ "A list of strings to pass to Galeon as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-galeon-startup-arguments browse-url-galeon-arguments
- "*A list of strings to pass to Galeon when it starts up.
+ "A list of strings to pass to Galeon when it starts up.
Defaults to the value of `browse-url-galeon-arguments' at the time
`browse-url' is loaded."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-epiphany-program "epiphany"
- "*The name by which to invoke Epiphany."
+ "The name by which to invoke Epiphany."
:type 'string
:group 'browse-url)
(defcustom browse-url-epiphany-arguments nil
- "*A list of strings to pass to Epiphany as arguments."
+ "A list of strings to pass to Epiphany as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-epiphany-startup-arguments browse-url-epiphany-arguments
- "*A list of strings to pass to Epiphany when it starts up.
+ "A list of strings to pass to Epiphany when it starts up.
Defaults to the value of `browse-url-epiphany-arguments' at the time
`browse-url' is loaded."
:type '(repeat (string :tag "Argument"))
@@ -382,20 +382,20 @@ Defaults to the value of `browse-url-epiphany-arguments' at the time
(defvar browse-url-gnome-moz-program "gnome-moz-remote")
(defcustom browse-url-gnome-moz-arguments '()
- "*A list of strings passed to the GNOME mozilla viewer as arguments."
+ "A list of strings passed to the GNOME mozilla viewer as arguments."
:version "21.1"
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-mozilla-new-window-is-tab nil
- "*Whether to open up new windows in a tab or a new window.
+ "Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new window if
`browse-url-mozilla' is asked to open it in a new window."
:type 'boolean
:group 'browse-url)
(defcustom browse-url-firefox-new-window-is-tab nil
- "*Whether to open up new windows in a tab or a new window.
+ "Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new window if
`browse-url-firefox' is asked to open it in a new window.
@@ -405,21 +405,21 @@ functionality is not available there."
:group 'browse-url)
(defcustom browse-url-galeon-new-window-is-tab nil
- "*Whether to open up new windows in a tab or a new window.
+ "Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new window if
`browse-url-galeon' is asked to open it in a new window."
:type 'boolean
:group 'browse-url)
(defcustom browse-url-epiphany-new-window-is-tab nil
- "*Whether to open up new windows in a tab or a new window.
+ "Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new window if
`browse-url-epiphany' is asked to open it in a new window."
:type 'boolean
:group 'browse-url)
(defcustom browse-url-netscape-new-window-is-tab nil
- "*Whether to open up new windows in a tab or a new window.
+ "Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new
window if `browse-url-netscape' is asked to open it in a new
window."
@@ -427,7 +427,7 @@ window."
:group 'browse-url)
(defcustom browse-url-new-window-flag nil
- "*If non-nil, always open a new browser window with appropriate browsers.
+ "If non-nil, always open a new browser window with appropriate browsers.
Passing an interactive argument to \\[browse-url], or specific browser
commands reverses the effect of this variable. Requires Netscape version
1.1N or later or XMosaic version 2.5 or later if using those browsers."
@@ -435,33 +435,32 @@ commands reverses the effect of this variable. Requires Netscape version
:group 'browse-url)
(defcustom browse-url-mosaic-program "xmosaic"
- "*The name by which to invoke Mosaic (or mMosaic)."
+ "The name by which to invoke Mosaic (or mMosaic)."
:type 'string
:version "20.3"
:group 'browse-url)
(defcustom browse-url-mosaic-arguments nil
- "*A list of strings to pass to Mosaic as arguments."
+ "A list of strings to pass to Mosaic as arguments."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-mosaic-pidfile "~/.mosaicpid"
- "*The name of the pidfile created by Mosaic."
+ "The name of the pidfile created by Mosaic."
:type 'string
:group 'browse-url)
(defcustom browse-url-filename-alist
- (\` ; Backquote syntax won't work.
- (("^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*" . "ftp://\\2/")
+ `(("^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*" . "ftp://\\2/")
;; The above loses the username to avoid the browser prompting for
;; it in anonymous cases. If it's not anonymous the next regexp
;; applies.
("^/\\([^:@]+@\\)?\\([^:]+\\):/*" . "ftp://\\1\\2/")
- (,@ (if (memq system-type '(windows-nt ms-dos cygwin))
- '(("^\\([a-zA-Z]:\\)[\\/]" . "file:\\1/")
- ("^[\\/][\\/]+" . "file://"))))
- ("^/+" . "file:/")))
- "*An alist of (REGEXP . STRING) pairs used by `browse-url-of-file'.
+ ,@(if (memq system-type '(windows-nt ms-dos cygwin))
+ '(("^\\([a-zA-Z]:\\)[\\/]" . "file:\\1/")
+ ("^[\\/][\\/]+" . "file://")))
+ ("^/+" . "file:/"))
+ "An alist of (REGEXP . STRING) pairs used by `browse-url-of-file'.
Any substring of a filename matching one of the REGEXPs is replaced by
the corresponding STRING using `replace-match', not treating STRING
literally. All pairs are applied in the order given. The default
@@ -476,8 +475,7 @@ address to an HTTP URL:
\"http://www.acme.co.uk/\")
(\"^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*\" . \"ftp://\\2/\")
(\"^/\\([^:@]+@\\)?\\([^:]+\\):/*\" . \"ftp://\\1\\2/\")
- (\"^/+\" . \"file:/\")))
-"
+ (\"^/+\" . \"file:/\")))"
:type '(repeat (cons :format "%v"
(regexp :tag "Regexp")
(string :tag "Replacement")))
@@ -485,13 +483,13 @@ address to an HTTP URL:
:group 'browse-url)
(defcustom browse-url-save-file nil
- "*If non-nil, save the buffer before displaying its file.
+ "If non-nil, save the buffer before displaying its file.
Used by the `browse-url-of-file' command."
:type 'boolean
:group 'browse-url)
(defcustom browse-url-of-file-hook nil
- "*Run after `browse-url-of-file' has asked a browser to load a file.
+ "Run after `browse-url-of-file' has asked a browser to load a file.
Set this to `browse-url-netscape-reload' to force Netscape to load the
file rather than displaying a cached copy."
@@ -500,14 +498,14 @@ file rather than displaying a cached copy."
:group 'browse-url)
(defcustom browse-url-CCI-port 3003
- "*Port to access XMosaic via CCI.
+ "Port to access XMosaic via CCI.
This can be any number between 1024 and 65535 but must correspond to
the value set in the browser."
:type 'integer
:group 'browse-url)
(defcustom browse-url-CCI-host "localhost"
- "*Host to access XMosaic via CCI.
+ "Host to access XMosaic via CCI.
This should be the host name of the machine running XMosaic with CCI
enabled. The port number should be set in `browse-url-CCI-port'."
:type 'string
@@ -517,20 +515,20 @@ enabled. The port number should be set in `browse-url-CCI-port'."
(make-variable-buffer-local 'browse-url-temp-file-name)
(defcustom browse-url-xterm-program "xterm"
- "*The name of the terminal emulator used by `browse-url-lynx-xterm'.
+ "The name of the terminal emulator used by `browse-url-lynx-xterm'.
This might, for instance, be a separate color version of xterm."
:type 'string
:group 'browse-url)
(defcustom browse-url-xterm-args nil
- "*A list of strings defining options for `browse-url-xterm-program'.
+ "A list of strings defining options for `browse-url-xterm-program'.
These might set its size, for instance."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-lynx-emacs-args (and (not window-system)
'("-show_cursor"))
- "*A list of strings defining options for Lynx in an Emacs buffer.
+ "A list of strings defining options for Lynx in an Emacs buffer.
The default is none in a window system, otherwise `-show_cursor' to
indicate the position of the current link in the absence of
@@ -540,44 +538,43 @@ highlighting, assuming the normal default for showing the cursor."
:group 'browse-url)
(defcustom browse-url-gnudoit-program "gnudoit"
- "*The name of the `gnudoit' program used by `browse-url-w3-gnudoit'."
+ "The name of the `gnudoit' program used by `browse-url-w3-gnudoit'."
:type 'string
:group 'browse-url)
(defcustom browse-url-gnudoit-args '("-q")
- "*A list of strings defining options for `browse-url-gnudoit-program'.
+ "A list of strings defining options for `browse-url-gnudoit-program'.
These might set the port, for instance."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-generic-program nil
- "*The name of the browser program used by `browse-url-generic'."
+ "The name of the browser program used by `browse-url-generic'."
:type '(choice string (const :tag "None" nil))
:group 'browse-url)
(defcustom browse-url-generic-args nil
- "*A list of strings defining options for `browse-url-generic-program'."
+ "A list of strings defining options for `browse-url-generic-program'."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
(defcustom browse-url-temp-dir temporary-file-directory
- "*The name of a directory for browse-url's temporary files.
+ "The name of a directory for browse-url's temporary files.
Such files are generated by functions like `browse-url-of-region'.
You might want to set this to somewhere with restricted read permissions
for privacy's sake."
:type 'string
:group 'browse-url)
-(defcustom browse-url-netscape-version
- 3
- "*The version of Netscape you are using.
+(defcustom browse-url-netscape-version 3
+ "The version of Netscape you are using.
This affects how URL reloading is done; the mechanism changed
incompatibly at version 4."
:type 'number
:group 'browse-url)
(defcustom browse-url-lynx-input-field 'avoid
- "*Action on selecting an existing Lynx buffer at an input field.
+ "Action on selecting an existing Lynx buffer at an input field.
What to do when sending a new URL to an existing Lynx buffer in Emacs
if the Lynx cursor is on an input field (in which case the `g' command
would be entered as data). Such fields are recognized by the
@@ -591,23 +588,23 @@ down (this *won't* always work)."
:group 'browse-url)
(defcustom browse-url-lynx-input-attempts 10
- "*How many times to try to move down from a series of lynx input fields."
+ "How many times to try to move down from a series of lynx input fields."
:type 'integer
:group 'browse-url)
(defcustom browse-url-lynx-input-delay 0.2
- "*How many seconds to wait for lynx between moves down from an input field."
+ "How many seconds to wait for lynx between moves down from an input field."
:type 'number
:group 'browse-url)
(defcustom browse-url-kde-program "kfmclient"
- "*The name by which to invoke the KDE web browser."
+ "The name by which to invoke the KDE web browser."
:type 'string
:version "21.1"
:group 'browse-url)
(defcustom browse-url-kde-args '("openURL")
- "*A list of strings defining options for `browse-url-kde-program'."
+ "A list of strings defining options for `browse-url-kde-program'."
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
@@ -669,8 +666,7 @@ interactively. Turn the filename into a URL with function
(error "Current buffer has no file"))
(let ((buf (get-file-buffer file)))
(if buf
- (save-excursion
- (set-buffer buf)
+ (with-current-buffer buf
(cond ((not (buffer-modified-p)))
(browse-url-save-file (save-buffer))
(t (message "%s modified since last save" file))))))
@@ -1171,6 +1167,20 @@ used instead of `browse-url-new-window-flag'."
(append browse-url-epiphany-startup-arguments (list url))))))
;;;###autoload
+(defun browse-url-emacs (url &optional new-window)
+ "Ask Emacs to load URL into a buffer and show it in another window."
+ (interactive (browse-url-interactive-arg "URL: "))
+ (require 'url-handlers)
+ (let ((file-name-handler-alist
+ (cons (cons url-handler-regexp 'url-file-handler)
+ file-name-handler-alist)))
+ ;; Ignore `new-window': with all other browsers the URL is always shown
+ ;; in another window than the current Emacs one since it's shown in
+ ;; another application's window.
+ ;; (if new-window (find-file-other-window url) (find-file url))
+ (find-file-other-window url)))
+
+;;;###autoload
(defun browse-url-gnome-moz (url &optional new-window)
"Ask Mozilla/Netscape to load URL via the GNOME program `gnome-moz-remote'.
Default to the URL around or before point. The strings in variable
@@ -1257,8 +1267,7 @@ Default to the URL around or before point. Runs the program in the
variable `browse-url-grail'."
(interactive (browse-url-interactive-arg "Grail URL: "))
(message "Sending URL to Grail...")
- (save-excursion
- (set-buffer (get-buffer-create " *Shell Command Output*"))
+ (with-current-buffer (get-buffer-create " *Shell Command Output*")
(erase-buffer)
;; don't worry about this failing.
(if (browse-url-maybe-new-window new-window)
@@ -1428,8 +1437,7 @@ used instead of `browse-url-new-window-flag'."
Default to the URL around or before point."
(interactive (browse-url-interactive-arg "MMM URL: "))
(message "Sending URL to MMM...")
- (save-excursion
- (set-buffer (get-buffer-create " *Shell Command Output*"))
+ (with-current-buffer (get-buffer-create " *Shell Command Output*")
(erase-buffer)
;; mmm_remote just SEGVs if the file isn't there...
(if (or (file-exists-p (expand-file-name "~/.mmm_remote"))
@@ -1507,5 +1515,5 @@ Default to the URL around or before point."
(provide 'browse-url)
-;;; arch-tag: d2079573-5c06-4097-9598-f550fba19430
+;; arch-tag: d2079573-5c06-4097-9598-f550fba19430
;;; browse-url.el ends here
diff --git a/lisp/net/socks.el b/lisp/net/socks.el
index 72f6b03570..5a2364c652 100644
--- a/lisp/net/socks.el
+++ b/lisp/net/socks.el
@@ -263,10 +263,9 @@ If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"."
(defconst socks-state-connected 4)
(defmacro socks-wait-for-state-change (proc htable cur-state)
- (`
- (while (and (= (gethash 'state (, htable)) (, cur-state))
- (memq (process-status (, proc)) '(run open)))
- (accept-process-output (, proc) socks-timeout))))
+ `(while (and (= (gethash 'state ,htable) ,cur-state)
+ (memq (process-status ,proc) '(run open)))
+ (accept-process-output ,proc socks-timeout)))
(defun socks-filter (proc string)
(let ((info (gethash proc socks-connections))
@@ -493,10 +492,9 @@ version.")
(if (not (and (file-exists-p socks-services-file)
(file-readable-p socks-services-file)))
(error "Could not find services file: %s" socks-services-file))
- (save-excursion
- (clrhash socks-tcp-services)
- (clrhash socks-udp-services)
- (set-buffer (get-buffer-create " *socks-tmp*"))
+ (clrhash socks-tcp-services)
+ (clrhash socks-udp-services)
+ (with-current-buffer (get-buffer-create " *socks-tmp*")
(erase-buffer)
(insert-file-contents socks-services-file)
;; Nuke comments
@@ -566,10 +564,8 @@ version.")
(defconst socks-username/password-auth-version 1)
(defun socks-username/password-auth-filter (proc str)
- (let ((info (gethash proc socks-connections))
- state desired-len)
+ (let ((info (gethash proc socks-connections)))
(or info (error "socks-filter called on non-SOCKS connection %S" proc))
- (setq state (gethash 'state info))
(puthash 'scratch (concat (gethash 'scratch info) str) info)
(if (< (length (gethash 'scratch info)) 2)
nil
@@ -629,8 +625,7 @@ version.")
socks-nslookup-program host))
(res host))
(set-process-query-on-exit-flag proc nil)
- (save-excursion
- (set-buffer (process-buffer proc))
+ (with-current-buffer (process-buffer proc)
(while (progn
(accept-process-output proc)
(memq (process-status proc) '(run open))))
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index aeaea99558..6f20577224 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1904,7 +1904,7 @@ With prefix argument, prompt for cvs flags."
(interactive (list (cvs-flags-query 'cvs-status-flags "cvs status flags")))
(cvs-mode-do "status" flags nil :dont-change-disc t :show t
:postproc (when (eq cvs-auto-remove-handled 'status)
- '((with-current-buffer ,(current-buffer)
+ `((with-current-buffer ,(current-buffer)
(cvs-mode-remove-handled))))))
(defun-cvs-mode (cvs-mode-tree . SIMPLE) (flags)
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index aa3aea0d71..478a07bc3b 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -27,103 +27,103 @@
;; Boston, MA 02110-1301, USA.
;;; Commentary:
-;;; This mode is a major mode for editing Ada code. This is a major
-;;; rewrite of the file packaged with Emacs-20. The Ada mode is
-;;; composed of four Lisp files: ada-mode.el, ada-xref.el, ada-prj.el
-;;; and ada-stmt.el. Only this file (ada-mode.el) is completely
-;;; independent from the GNU Ada compiler GNAT, distributed by Ada
-;;; Core Technologies. All the other files rely heavily on features
-;;; provided only by GNAT.
-;;;
-;;; Note: this mode will not work with Emacs 19. If you are on a VMS
-;;; system, where the latest version of Emacs is 19.28, you will need
-;;; another file, called ada-vms.el, that provides some required
-;;; functions.
+;; This mode is a major mode for editing Ada code. This is a major
+;; rewrite of the file packaged with Emacs-20. The Ada mode is
+;; composed of four Lisp files: ada-mode.el, ada-xref.el, ada-prj.el
+;; and ada-stmt.el. Only this file (ada-mode.el) is completely
+;; independent from the GNU Ada compiler GNAT, distributed by Ada
+;; Core Technologies. All the other files rely heavily on features
+;; provided only by GNAT.
+;;
+;; Note: this mode will not work with Emacs 19. If you are on a VMS
+;; system, where the latest version of Emacs is 19.28, you will need
+;; another file, called ada-vms.el, that provides some required
+;; functions.
;;; Usage:
-;;; Emacs should enter Ada mode automatically when you load an Ada file.
-;;; By default, the valid extensions for Ada files are .ads, .adb or .ada
-;;; If the ada-mode does not start automatically, then simply type the
-;;; following command :
-;;; M-x ada-mode
-;;;
-;;; By default, ada-mode is configured to take full advantage of the GNAT
-;;; compiler (the menus will include the cross-referencing features,...).
-;;; If you are using another compiler, you might want to set the following
-;;; variable in your .emacs (Note: do not set this in the ada-mode-hook, it
-;;; won't work) :
-;;; (setq ada-which-compiler 'generic)
-;;;
-;;; This mode requires find-file.el to be present on your system.
+;; Emacs should enter Ada mode automatically when you load an Ada file.
+;; By default, the valid extensions for Ada files are .ads, .adb or .ada
+;; If the ada-mode does not start automatically, then simply type the
+;; following command :
+;; M-x ada-mode
+;;
+;; By default, ada-mode is configured to take full advantage of the GNAT
+;; compiler (the menus will include the cross-referencing features,...).
+;; If you are using another compiler, you might want to set the following
+;; variable in your .emacs (Note: do not set this in the ada-mode-hook, it
+;; won't work) :
+;; (setq ada-which-compiler 'generic)
+;;
+;; This mode requires find-file.el to be present on your system.
;;; History:
-;;; The first Ada mode for GNU Emacs was written by V. Broman in
-;;; 1985. He based his work on the already existing Modula-2 mode.
-;;; This was distributed as ada.el in versions of Emacs prior to 19.29.
-;;;
-;;; Lynn Slater wrote an extensive Ada mode in 1989. It consisted of
-;;; several files with support for dired commands and other nice
-;;; things. It is currently available from the PAL
-;;; (wuarchive.wustl.edu:/languages/ada) as ada-mode-1.06a.tar.Z.
-;;;
-;;; The probably very first Ada mode (called electric-ada.el) was
-;;; written by Steven D. Litvintchouk and Steven M. Rosen for the
-;;; Gosling Emacs. L. Slater based his development on ada.el and
-;;; electric-ada.el.
-;;;
-;;; A complete rewrite by M. Heritsch and R. Ebert has been done.
-;;; Some ideas from the Ada mode mailing list have been
-;;; added. Some of the functionality of L. Slater's mode has not
-;;; (yet) been recoded in this new mode. Perhaps you prefer sticking
-;;; to his version.
-;;;
-;;; A complete rewrite for Emacs-20 / GNAT-3.11 has been done by Ada Core
-;;; Technologies.
+;; The first Ada mode for GNU Emacs was written by V. Broman in
+;; 1985. He based his work on the already existing Modula-2 mode.
+;; This was distributed as ada.el in versions of Emacs prior to 19.29.
+;;
+;; Lynn Slater wrote an extensive Ada mode in 1989. It consisted of
+;; several files with support for dired commands and other nice
+;; things. It is currently available from the PAL
+;; (wuarchive.wustl.edu:/languages/ada) as ada-mode-1.06a.tar.Z.
+;;
+;; The probably very first Ada mode (called electric-ada.el) was
+;; written by Steven D. Litvintchouk and Steven M. Rosen for the
+;; Gosling Emacs. L. Slater based his development on ada.el and
+;; electric-ada.el.
+;;
+;; A complete rewrite by M. Heritsch and R. Ebert has been done.
+;; Some ideas from the Ada mode mailing list have been
+;; added. Some of the functionality of L. Slater's mode has not
+;; (yet) been recoded in this new mode. Perhaps you prefer sticking
+;; to his version.
+;;
+;; A complete rewrite for Emacs-20 / GNAT-3.11 has been done by Ada Core
+;; Technologies.
;;; Credits:
-;;; Many thanks to John McCabe <john@assen.demon.co.uk> for sending so
-;;; many patches included in this package.
-;;; Christian Egli <Christian.Egli@hcsd.hac.com>:
-;;; ada-imenu-generic-expression
-;;; Many thanks also to the following persons that have contributed
-;;; to the ada-mode
-;;; Philippe Waroquiers (PW) <philippe@cfmu.eurocontrol.be> in particular,
-;;; woodruff@stc.llnl.gov (John Woodruff)
-;;; jj@ddci.dk (Jesper Joergensen)
-;;; gse@ocsystems.com (Scott Evans)
-;;; comar@gnat.com (Cyrille Comar)
-;;; stephen.leake@gsfc.nasa.gov (Stephen Leake)
-;;; robin-reply@reagans.org
-;;; and others for their valuable hints.
+;; Many thanks to John McCabe <john@assen.demon.co.uk> for sending so
+;; many patches included in this package.
+;; Christian Egli <Christian.Egli@hcsd.hac.com>:
+;; ada-imenu-generic-expression
+;; Many thanks also to the following persons that have contributed
+;; to the ada-mode
+;; Philippe Waroquiers (PW) <philippe@cfmu.eurocontrol.be> in particular,
+;; woodruff@stc.llnl.gov (John Woodruff)
+;; jj@ddci.dk (Jesper Joergensen)
+;; gse@ocsystems.com (Scott Evans)
+;; comar@gnat.com (Cyrille Comar)
+;; stephen.leake@gsfc.nasa.gov (Stephen Leake)
+;; robin-reply@reagans.org
+;; and others for their valuable hints.
;;; Code:
-;;; Note: Every function in this package is compiler-independent.
-;;; The names start with ada-
-;;; The variables that the user can edit can all be modified through
-;;; the customize mode. They are sorted in alphabetical order in this
-;;; file.
-
-;;; Supported packages.
-;;; This package supports a number of other Emacs modes. These other modes
-;;; should be loaded before the ada-mode, which will then setup some variables
-;;; to improve the support for Ada code.
-;;; Here is the list of these modes:
-;;; `which-function-mode': Display the name of the subprogram the cursor is
-;;; in in the mode line.
-;;; `outline-mode': Provides the capability to collapse or expand the code
-;;; for specific language constructs, for instance if you want to hide the
-;;; code corresponding to a subprogram
-;;; `align': This mode is now provided with Emacs 21, but can also be
-;;; installed manually for older versions of Emacs. It provides the
-;;; capability to automatically realign the selected region (for instance
-;;; all ':=', ':' and '--' will be aligned on top of each other.
-;;; `imenu': Provides a menu with the list of entities defined in the current
-;;; buffer, and an easy way to jump to any of them
-;;; `speedbar': Provides a separate file browser, and the capability for each
-;;; file to see the list of entities defined in it and to jump to them
-;;; easily
-;;; `abbrev-mode': Provides the capability to define abbreviations, which
-;;; are automatically expanded when you type them. See the Emacs manual.
+;; Note: Every function in this package is compiler-independent.
+;; The names start with ada-
+;; The variables that the user can edit can all be modified through
+;; the customize mode. They are sorted in alphabetical order in this
+;; file.
+
+;; Supported packages.
+;; This package supports a number of other Emacs modes. These other modes
+;; should be loaded before the ada-mode, which will then setup some variables
+;; to improve the support for Ada code.
+;; Here is the list of these modes:
+;; `which-function-mode': Display the name of the subprogram the cursor is
+;; in in the mode line.
+;; `outline-mode': Provides the capability to collapse or expand the code
+;; for specific language constructs, for instance if you want to hide the
+;; code corresponding to a subprogram
+;; `align': This mode is now provided with Emacs 21, but can also be
+;; installed manually for older versions of Emacs. It provides the
+;; capability to automatically realign the selected region (for instance
+;; all ':=', ':' and '--' will be aligned on top of each other.
+;; `imenu': Provides a menu with the list of entities defined in the current
+;; buffer, and an easy way to jump to any of them
+;; `speedbar': Provides a separate file browser, and the capability for each
+;; file to see the list of entities defined in it and to jump to them
+;; easily
+;; `abbrev-mode': Provides the capability to define abbreviations, which
+;; are automatically expanded when you type them. See the Emacs manual.
(require 'find-file nil t)
(require 'align nil t)
@@ -134,18 +134,6 @@
(defvar ispell-check-comments)
(defvar skeleton-further-elements)
-(eval-and-compile
- (defun ada-check-emacs-version (major minor &optional is-xemacs)
- "Return t if Emacs's version is greater or equal to MAJOR.MINOR.
-If IS-XEMACS is non-nil, check for XEmacs instead of Emacs."
- (let ((xemacs-running (or (string-match "Lucid" emacs-version)
- (string-match "XEmacs" emacs-version))))
- (and (or (and is-xemacs xemacs-running)
- (not (or is-xemacs xemacs-running)))
- (or (> emacs-major-version major)
- (and (= emacs-major-version major)
- (>= emacs-minor-version minor)))))))
-
(defun ada-mode-version ()
"Return Ada mode version."
(interactive)
@@ -612,7 +600,7 @@ This variable defines several rules to use to align different lines.")
"\\(\\(\\sw\\|[_.]\\)+\\)"
"\\)")
"Regexp matching Ada subprogram start.
-The actual start is at (match-beginning 4). The name is in (match-string 5).")
+The actual start is at (match-beginning 4). The name is in (match-string 5).")
(defconst ada-name-regexp
"\\([a-zA-Z][a-zA-Z0-9_.']*[a-zA-Z0-9]\\)"
@@ -1192,13 +1180,9 @@ If you use ada-xref.el:
;; the comment and the text. We do not want any, this is already
;; included in comment-start
(unless (featurep 'xemacs)
- (progn
- (if (ada-check-emacs-version 20 3)
- (progn
- (set (make-local-variable 'parse-sexp-ignore-comments) t)
- (set (make-local-variable 'comment-padding) 0)))
- (set (make-local-variable 'parse-sexp-lookup-properties) t)
- ))
+ (set (make-local-variable 'parse-sexp-ignore-comments) t)
+ (set (make-local-variable 'comment-padding) 0)
+ (set (make-local-variable 'parse-sexp-lookup-properties) t))
(set 'case-fold-search t)
(if (boundp 'imenu-case-fold-search)
@@ -1227,6 +1211,7 @@ If you use ada-xref.el:
;; We need to set some properties for XEmacs, and define some variables
;; for Emacs
+ ;; FIXME: The Emacs code should work just fine under XEmacs AFAIK. --Stef
(if (featurep 'xemacs)
;; XEmacs
(put 'ada-mode 'font-lock-defaults
@@ -1414,10 +1399,9 @@ If you use ada-xref.el:
;; transient-mark-mode and mark-active are not defined in XEmacs
(defun ada-region-selected ()
"Return t if a region has been selected by the user and is still active."
- (or (and (featurep 'xemacs) (funcall (symbol-function 'region-active-p)))
- (and (not (featurep 'xemacs))
- (symbol-value 'transient-mark-mode)
- (symbol-value 'mark-active))))
+ (if (featurep 'xemacs)
+ (region-active-p)
+ (and transient-mark-mode mark-active)))
;;-----------------------------------------------------------------
@@ -4041,7 +4025,7 @@ Returns a cons cell of begin and end of match data or nil, if not found.
If BACKWARD is non-nil, search backward; search forward otherwise.
The search stops at pos LIMIT.
If PARAMLISTS is nil, ignore parameter lists.
-The search is done using SEARCH-FUNC. SEARCH-FUNC can be optimized
+The search is done using SEARCH-FUNC. SEARCH-FUNC can be optimized
in case we are searching for a constant string.
Point is moved at the beginning of the SEARCH-RE."
(let (found
@@ -4562,9 +4546,7 @@ Moves to 'begin' if in a declarative part."
(define-key ada-mode-map "\t" 'ada-tab)
(define-key ada-mode-map "\C-c\t" 'ada-justified-indent-current)
(define-key ada-mode-map "\C-c\C-l" 'ada-indent-region)
- (if (featurep 'xemacs)
- (define-key ada-mode-map '(shift tab) 'ada-untab)
- (define-key ada-mode-map [(shift tab)] 'ada-untab))
+ (define-key ada-mode-map [(shift tab)] 'ada-untab)
(define-key ada-mode-map "\C-c\C-f" 'ada-format-paramlist)
;; We don't want to make meta-characters case-specific.
@@ -4587,9 +4569,9 @@ Moves to 'begin' if in a declarative part."
;; On XEmacs, you can easily specify whether DEL should deletes
;; one character forward or one character backward. Take this into
;; account
- (if (boundp 'delete-key-deletes-forward)
- (define-key ada-mode-map [backspace] 'backward-delete-char-untabify)
- (define-key ada-mode-map "\177" 'backward-delete-char-untabify))
+ (define-key ada-mode-map
+ (if (boundp 'delete-key-deletes-forward) [backspace] "\177")
+ 'backward-delete-char-untabify)
;; Make body
(define-key ada-mode-map "\C-c\C-n" 'ada-make-subprogram-body)
@@ -4601,12 +4583,10 @@ Moves to 'begin' if in a declarative part."
;; The following keys are bound to functions defined in ada-xref.el or
;; ada-prj,el., However, RMS rightly thinks that the code should be shared,
;; and activated only if the right compiler is used
- (if (featurep 'xemacs)
- (progn
- (define-key ada-mode-map '(shift button3) 'ada-point-and-xref)
- (define-key ada-mode-map '(control tab) 'ada-complete-identifier))
- (define-key ada-mode-map [C-tab] 'ada-complete-identifier)
- (define-key ada-mode-map [S-mouse-3] 'ada-point-and-xref))
+
+ (define-key ada-mode-map (if (featurep 'xemacs) '(shift button3) [S-mouse-3])
+ 'ada-point-and-xref)
+ (define-key ada-mode-map [(control tab)] 'ada-complete-identifier)
(define-key ada-mode-map "\C-co" 'ff-find-other-file)
(define-key ada-mode-map "\C-c5\C-d" 'ada-goto-declaration-other-frame)
@@ -5570,5 +5550,5 @@ This function typically is to be hooked into `ff-file-created-hook'."
;;; provide ourselves
(provide 'ada-mode)
-;;; arch-tag: 1b7d45ec-1698-43b5-8d4a-e479ea023270
+;; arch-tag: 1b7d45ec-1698-43b5-8d4a-e479ea023270
;;; ada-mode.el ends here
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 60c2a926cb..cdfb887013 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -96,7 +96,7 @@
nil))
(or (fboundp 'custom-declare-variable)
(defmacro defcustom (name val doc &rest arr)
- (` (defvar (, name) (, val) (, doc)))))
+ `(defvar ,name ,val ,doc)))
(or (and (fboundp 'custom-declare-variable)
(string< "19.31" emacs-version)) ; Checked with 19.30: defface does not work
(defmacro defface (&rest arr)
@@ -104,52 +104,52 @@
;; Avoid warning (tmp definitions)
(or (fboundp 'x-color-defined-p)
(defmacro x-color-defined-p (col)
- (cond ((fboundp 'color-defined-p) (` (color-defined-p (, col))))
+ (cond ((fboundp 'color-defined-p) `(color-defined-p ,col))
;; XEmacs >= 19.12
- ((fboundp 'valid-color-name-p) (` (valid-color-name-p (, col))))
+ ((fboundp 'valid-color-name-p) `(valid-color-name-p ,col))
;; XEmacs 19.11
- ((fboundp 'x-valid-color-name-p) (` (x-valid-color-name-p (, col))))
+ ((fboundp 'x-valid-color-name-p) `(x-valid-color-name-p ,col))
(t '(error "Cannot implement color-defined-p")))))
(defmacro cperl-is-face (arg) ; Takes quoted arg
(cond ((fboundp 'find-face)
- (` (find-face (, arg))))
+ `(find-face ,arg))
(;;(and (fboundp 'face-list)
;; (face-list))
(fboundp 'face-list)
- (` (member (, arg) (and (fboundp 'face-list)
- (face-list)))))
+ `(member ,arg (and (fboundp 'face-list)
+ (face-list))))
(t
- (` (boundp (, arg))))))
+ `(boundp ,arg))))
(defmacro cperl-make-face (arg descr) ; Takes unquoted arg
(cond ((fboundp 'make-face)
- (` (make-face (quote (, arg)))))
+ `(make-face (quote ,arg)))
(t
- (` (defvar (, arg) (quote (, arg)) (, descr))))))
+ `(defvar ,arg (quote ,arg) ,descr))))
(defmacro cperl-force-face (arg descr) ; Takes unquoted arg
- (` (progn
- (or (cperl-is-face (quote (, arg)))
- (cperl-make-face (, arg) (, descr)))
- (or (boundp (quote (, arg))) ; We use unquoted variants too
- (defvar (, arg) (quote (, arg)) (, descr))))))
+ `(progn
+ (or (cperl-is-face (quote ,arg))
+ (cperl-make-face ,arg ,descr))
+ (or (boundp (quote ,arg)) ; We use unquoted variants too
+ (defvar ,arg (quote ,arg) ,descr))))
(if cperl-xemacs-p
(defmacro cperl-etags-snarf-tag (file line)
- (` (progn
- (beginning-of-line 2)
- (list (, file) (, line)))))
+ `(progn
+ (beginning-of-line 2)
+ (list ,file ,line)))
(defmacro cperl-etags-snarf-tag (file line)
- (` (etags-snarf-tag))))
+ `(etags-snarf-tag)))
(if cperl-xemacs-p
(defmacro cperl-etags-goto-tag-location (elt)
- (`;;(progn
- ;; (switch-to-buffer (get-file-buffer (elt (, elt) 0)))
- ;; (set-buffer (get-file-buffer (elt (, elt) 0)))
- ;; Probably will not work due to some save-excursion???
- ;; Or save-file-position?
- ;; (message "Did I get to line %s?" (elt (, elt) 1))
- (goto-line (string-to-int (elt (, elt) 1)))))
+ ;;(progn
+ ;; (switch-to-buffer (get-file-buffer (elt ,elt 0)))
+ ;; (set-buffer (get-file-buffer (elt ,elt 0)))
+ ;; Probably will not work due to some save-excursion???
+ ;; Or save-file-position?
+ ;; (message "Did I get to line %s?" (elt ,elt 1))
+ `(goto-line (string-to-int (elt ,elt 1))))
;;)
(defmacro cperl-etags-goto-tag-location (elt)
- (` (etags-goto-tag-location (, elt))))))
+ `(etags-goto-tag-location ,elt))))
(defconst cperl-xemacs-p (string-match "XEmacs\\|Lucid" emacs-version))
@@ -1794,8 +1794,8 @@ or as help on variables `cperl-tips', `cperl-problems',
;; This one is obsolete...
(make-local-variable 'vc-header-alist)
(set 'vc-header-alist (or cperl-vc-header-alist ; Avoid warning
- (` ((SCCS (, (car cperl-vc-sccs-header)))
- (RCS (, (car cperl-vc-rcs-header)))))))
+ `((SCCS ,(car cperl-vc-sccs-header))
+ (RCS ,(car cperl-vc-rcs-header)))))
(cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x
(make-local-variable 'compilation-error-regexp-alist-alist)
(set 'compilation-error-regexp-alist-alist
@@ -5957,25 +5957,25 @@ indentation and initial hashes. Behaves usually outside of comment."
nil t))) ; local variables, multiple
(font-lock-anchored
;; 1=my_etc, 2=white? 3=(+white? 4=white? 5=var
- (` ((, (concat "\\<\\(my\\|local\\|our\\)"
+ `(,(concat "\\<\\(my\\|local\\|our\\)"
cperl-maybe-white-and-comment-rex
"\\(("
cperl-maybe-white-and-comment-rex
- "\\)?\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)"))
- (5 (, (if cperl-font-lock-multiline
+ "\\)?\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)")
+ (5 ,(if cperl-font-lock-multiline
'font-lock-variable-name-face
'(progn (setq cperl-font-lock-multiline-start
(match-beginning 0))
- 'font-lock-variable-name-face))))
- ((, (concat "\\="
+ 'font-lock-variable-name-face)))
+ (,(concat "\\="
cperl-maybe-white-and-comment-rex
","
cperl-maybe-white-and-comment-rex
- "\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)"))
+ "\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)")
;; Bug in font-lock: limit is used not only to limit
;; searches, but to set the "extend window for
;; facification" property. Thus we need to minimize.
- (, (if cperl-font-lock-multiline
+ ,(if cperl-font-lock-multiline
'(if (match-beginning 3)
(save-excursion
(goto-char (match-beginning 3))
@@ -5989,8 +5989,8 @@ indentation and initial hashes. Behaves usually outside of comment."
(forward-char -2)) ; disable continued expr
'(if (match-beginning 3)
(point-max) ; No limit for continuation
- (forward-char -2)))) ; disable continued expr
- (, (if cperl-font-lock-multiline
+ (forward-char -2))) ; disable continued expr
+ ,(if cperl-font-lock-multiline
nil
'(progn ; Do at end
;; "my" may be already fontified (POD),
@@ -6003,8 +6003,8 @@ indentation and initial hashes. Behaves usually outside of comment."
(put-text-property
(1+ cperl-font-lock-multiline-start) (point)
'syntax-type 'multiline))
- (setq cperl-font-lock-multiline-start nil))))
- (3 font-lock-variable-name-face)))))
+ (setq cperl-font-lock-multiline-start nil)))
+ (3 font-lock-variable-name-face))))
(t '("^[ \t{}]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)"
3 font-lock-variable-name-face)))
'("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*("
diff --git a/lisp/simple.el b/lisp/simple.el
index b5c0dbe93f..3caade5da8 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3639,7 +3639,7 @@ Outline mode sets this."
:type 'boolean
:group 'editing-basics)
-(defun line-move-invisible-p (pos)
+(defun invisible-p (pos)
"Return non-nil if the character after POS is currently invisible."
(let ((prop
(get-char-property pos 'invisible)))
@@ -3647,6 +3647,7 @@ Outline mode sets this."
prop
(or (memq prop buffer-invisibility-spec)
(assq prop buffer-invisibility-spec)))))
+(define-obsolete-function-alias 'line-move-invisible-p 'invisible-p)
;; Returns non-nil if partial move was done.
(defun line-move-partial (arg noerror to-end)
@@ -3767,7 +3768,7 @@ Outline mode sets this."
(while (and (> arg 0) (not done))
;; If the following character is currently invisible,
;; skip all characters with that same `invisible' property value.
- (while (and (not (eobp)) (line-move-invisible-p (point)))
+ (while (and (not (eobp)) (invisible-p (point)))
(goto-char (next-char-property-change (point))))
;; Move a line.
;; We don't use `end-of-line', since we want to escape
@@ -3785,7 +3786,7 @@ Outline mode sets this."
(setq done t)))
((and (> arg 1) ;; Use vertical-motion for last move
(not (integerp selective-display))
- (not (line-move-invisible-p (point))))
+ (not (invisible-p (point))))
;; We avoid vertical-motion when possible
;; because that has to fontify.
(forward-line 1))
@@ -3814,7 +3815,7 @@ Outline mode sets this."
(setq done t)))
((and (< arg -1) ;; Use vertical-motion for last move
(not (integerp selective-display))
- (not (line-move-invisible-p (1- (point)))))
+ (not (invisible-p (1- (point)))))
(forward-line -1))
((zerop (vertical-motion -1))
(if (not noerror)
@@ -3826,7 +3827,7 @@ Outline mode sets this."
;; if our target is the middle of this line.
(or (zerop (or goal-column temporary-goal-column))
(< arg 0))
- (not (bobp)) (line-move-invisible-p (1- (point))))
+ (not (bobp)) (invisible-p (1- (point))))
(goto-char (previous-char-property-change (point))))))))
;; This is the value the function returns.
(= arg 0))
@@ -3858,7 +3859,7 @@ Outline mode sets this."
(save-excursion
;; Like end-of-line but ignores fields.
(skip-chars-forward "^\n")
- (while (and (not (eobp)) (line-move-invisible-p (point)))
+ (while (and (not (eobp)) (invisible-p (point)))
(goto-char (next-char-property-change (point)))
(skip-chars-forward "^\n"))
(point))))
@@ -3941,13 +3942,13 @@ and `current-column' to be able to ignore invisible text."
(move-to-column col))
(when (and line-move-ignore-invisible
- (not (bolp)) (line-move-invisible-p (1- (point))))
+ (not (bolp)) (invisible-p (1- (point))))
(let ((normal-location (point))
(normal-column (current-column)))
;; If the following character is currently invisible,
;; skip all characters with that same `invisible' property value.
(while (and (not (eobp))
- (line-move-invisible-p (point)))
+ (invisible-p (point)))
(goto-char (next-char-property-change (point))))
;; Have we advanced to a larger column position?
(if (> (current-column) normal-column)
@@ -3960,7 +3961,7 @@ and `current-column' to be able to ignore invisible text."
;; but with a more reasonable buffer position.
(goto-char normal-location)
(let ((line-beg (save-excursion (beginning-of-line) (point))))
- (while (and (not (bolp)) (line-move-invisible-p (1- (point))))
+ (while (and (not (bolp)) (invisible-p (1- (point))))
(goto-char (previous-char-property-change (point) line-beg))))))))
(defun move-end-of-line (arg)
@@ -3981,7 +3982,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
(and (line-move arg t)
(not (bobp))
(progn
- (while (and (not (bobp)) (line-move-invisible-p (1- (point))))
+ (while (and (not (bobp)) (invisible-p (1- (point))))
(goto-char (previous-char-property-change (point))))
(backward-char 1)))
(point)))))
@@ -4017,13 +4018,13 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
;; Move to beginning-of-line, ignoring fields and invisibles.
(skip-chars-backward "^\n")
- (while (and (not (bobp)) (line-move-invisible-p (1- (point))))
+ (while (and (not (bobp)) (invisible-p (1- (point))))
(goto-char (previous-char-property-change (point)))
(skip-chars-backward "^\n"))
(setq start (point))
;; Now find first visible char in the line
- (while (and (not (eobp)) (line-move-invisible-p (point)))
+ (while (and (not (eobp)) (invisible-p (point)))
(goto-char (next-char-property-change (point))))
(setq first-vis (point))
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 07b7ba6e39..73b6ec3920 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -3250,7 +3250,7 @@ Default is to leave paragraph indentation as is."
;; Take arguments
;; @,{c} ==> c, cedilla accent
-(put ', 'texinfo-format 'texinfo-format-cedilla-accent)
+(put '\, 'texinfo-format 'texinfo-format-cedilla-accent)
(defun texinfo-format-cedilla-accent ()
(insert (texinfo-parse-arg-discard) ",")
(goto-char texinfo-command-start))
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index 1f5e6409a7..8226c65cbb 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -235,6 +235,14 @@ this rationalization."
(with-current-buffer (uniquify-item-buffer (car items))
(setq uniquify-managed nil))
(setq items nil)))
+ ;; In case we missed some calls to kill-buffer, there may be dead
+ ;; buffers in uniquify-managed, so filter them out.
+ (setq items
+ (delq nil (mapcar
+ (lambda (item)
+ (if (buffer-live-p (uniquify-item-buffer item))
+ item))
+ items)))
(setq fix-list (append fix-list items))))
;; selects buffers whose names may need changing, and others that
;; may conflict, then bring conflicting names together
diff --git a/lisp/vc.el b/lisp/vc.el
index e65cd5b85a..7d8c78c24a 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -3411,7 +3411,7 @@ revision."
vc-annotate-parent-display-mode
buf)
(goto-line (min oldline (progn (goto-char (point-max))
- (previous-line)
+ (forward-line -1)
(line-number-at-pos))) buf)))))
(defun vc-annotate-compcar (threshold a-list)
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index ea3e18da52..8e6c8abd3e 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,7 @@
+2007-08-25 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Images): Delete redundant @findex.
+
2007-08-16 Richard Stallman <rms@gnu.org>
* processes.texi (Asynchronous Processes): Clarify
@@ -138,8 +142,7 @@
2007-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
- * text.texi (Special Properties): Correct meaning of fontified
- face.
+ * text.texi (Special Properties): Correct meaning of fontified face.
2007-05-30 Richard Stallman <rms@gnu.org>
diff --git a/lispref/display.texi b/lispref/display.texi
index 84c9ba8493..9fb12b5060 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -3649,9 +3649,7 @@ This variable is ignored if the image libraries are statically linked
into Emacs.
@end defvar
-@defun image-type-available-p type
-@findex image-type-available-p
-
+@defun image-type-available-p type
This function returns non-@code{nil} if image type @var{type} is
available, i.e., if images of this type can be loaded and displayed in
Emacs. @var{type} should be one of the types contained in
diff --git a/lispref/macros.texi b/lispref/macros.texi
index 6dea53ac98..b62c8b99d7 100644
--- a/lispref/macros.texi
+++ b/lispref/macros.texi
@@ -365,7 +365,7 @@ whitespace between the @samp{`}, @samp{,} or @samp{,@@} and the
following expression.
This syntax is still accepted, for compatibility with old Emacs
-versions, but we recommend not using it in new programs.
+versions, but support for it will soon disappear.
@node Problems with Macros
@section Common Problems Using Macros
diff --git a/man/ChangeLog b/man/ChangeLog
index 732c18c980..5b096844f3 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,10 +1,13 @@
+2007-08-24 IRIE Tetsuya <irie@t.email.ne.jp> (tiny change)
+
+ * message.texi (MIME): Replace mml-attach with mml-attach-file.
+
2007-08-22 Carsten Dominik <dominik@science.uva.nl>
* org.texi (Adding hyperlink types): New section.
(Embedded LaTeX): Chapter updated because of LaTeX export.
(LaTeX export): New section.
(Using links out): New section.
-
2007-08-22 Glenn Morris <rgm@gnu.org>
diff --git a/man/message.texi b/man/message.texi
index eef4d77205..2bca4b046e 100644
--- a/man/message.texi
+++ b/man/message.texi
@@ -821,11 +821,11 @@ 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
+@findex mml-attach-file
@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 (@kbd{M-x mml-attach}),
+This can be done with the @kbd{C-c C-a} command (@kbd{M-x mml-attach-file}),
which will prompt for a file name and a @acronym{MIME} type.
@vindex mml-dnd-protocol-alist
diff --git a/src/ChangeLog b/src/ChangeLog
index ee9eac3172..9e6641ebf2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -68,6 +68,28 @@
(svg_type): New static `image_type' struct.
(librsvg/rsvg.h): Include it.
+2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
+
+2007-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lread.c (Qold_style_backquotes): New var.
+ (syms_of_lread): Init and staticpro it.
+ (load_warn_old_style_backquotes): New fun.
+ (Fload): Use them to warn about old style backquotes.
+ (end_of_file_error, Fload): Remove unused vars.
+
+ * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
+
+ * lread.c (Vold_style_backquotes): New var.
+ (syms_of_lread): Init and export it to Elisp.
+ (read1): Set it when we find an old-style (back)quote.
+
+2007-08-22 Jason Rumney <jasonr@gnu.org>
+
+ * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
+
2007-08-22 Katsumi Yamaoka <yamaoka@jpl.org>
* puresize.h (BASE_PURESIZE): Increase to 1140000.
diff --git a/src/lread.c b/src/lread.c
index 282bf1d6b0..a67fff1fc9 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -193,6 +193,7 @@ static file_offset prev_saved_doc_string_position;
Fread initializes this to zero, so we need not specbind it
or worry about what happens to it when there is an error. */
static int new_backquote_flag;
+static Lisp_Object Vold_style_backquotes, Qold_style_backquotes;
/* A list of file names for files being loaded in Fload. Used to
check for recursive loads. */
@@ -698,6 +699,20 @@ load_error_handler (data)
return Qnil;
}
+static Lisp_Object
+load_warn_old_style_backquotes (file)
+ Lisp_Object file;
+{
+ if (!NILP (Vold_style_backquotes))
+ {
+ Lisp_Object args[2];
+ args[0] = build_string ("!! File %s uses old-style backquotes !!");
+ args[1] = file;
+ Fmessage (2, args);
+ }
+ return Qnil;
+}
+
DEFUN ("get-load-suffixes", Fget_load_suffixes, Sget_load_suffixes, 0, 0, 0,
doc: /* Return the suffixes that `load' should try if a suffix is \
required.
@@ -762,7 +777,6 @@ Return t if the file exists and loads successfully. */)
register FILE *stream;
register int fd = -1;
int count = SPECPDL_INDEX ();
- Lisp_Object temp;
struct gcpro gcpro1, gcpro2, gcpro3;
Lisp_Object found, efound, hist_file_name;
/* 1 means we printed the ".el is newer" message. */
@@ -896,6 +910,10 @@ Return t if the file exists and loads successfully. */)
tmp))
: found) ;
+ /* Check fore the presence of old-style quotes and warn about them. */
+ specbind (Qold_style_backquotes, Qnil);
+ record_unwind_protect (load_warn_old_style_backquotes, file);
+
if (!bcmp (SDATA (found) + SBYTES (found) - 4,
".elc", 4))
/* Load .elc files directly, but not when they are
@@ -1381,8 +1399,6 @@ readevalloop_1 (old)
static void
end_of_file_error ()
{
- Lisp_Object data;
-
if (STRINGP (Vload_file_name))
xsignal1 (Qend_of_file, Vload_file_name);
@@ -2443,7 +2459,10 @@ read1 (readcharfun, pch, first_in_list)
case '`':
if (first_in_list)
- goto default_label;
+ {
+ Vold_style_backquotes = Qt;
+ goto default_label;
+ }
else
{
Lisp_Object value;
@@ -2478,7 +2497,10 @@ read1 (readcharfun, pch, first_in_list)
return Fcons (comma_type, Fcons (value, Qnil));
}
else
- goto default_label;
+ {
+ Vold_style_backquotes = Qt;
+ goto default_label;
+ }
case '?':
{
@@ -4191,6 +4213,12 @@ to load. See also `load-dangerous-libraries'. */);
doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */);
Veval_buffer_list = Qnil;
+ DEFVAR_LISP ("old-style-backquotes", &Vold_style_backquotes,
+ doc: /* Set to non-nil when `read' encounters an old-style backquote. */);
+ Vold_style_backquotes = Qnil;
+ Qold_style_backquotes = intern ("old-style-backquotes");
+ staticpro (&Qold_style_backquotes);
+
/* Vsource_directory was initialized in init_lread. */
load_descriptor_list = Qnil;
diff --git a/src/w32reg.c b/src/w32reg.c
index 1bea4795be..6acecfdb5f 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -41,7 +41,7 @@ Boston, MA 02110-1301, USA. */
"emacs.tool-bar.attributeBackground:SystemButtonFace\0" \
"emacs.menu.attributeForeground:SystemMenuText\0" \
"emacs.menu.attributeBackground:SystemMenu\0" \
- "emacs.scroll-bar.attributeForeground:SystemScrollbar"
+ "emacs.scroll-bar.attributeForeground:SystemScrollbar\0"
/* Other possibilities for default faces: