aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-23 05:08:13 +0000
committerKaroly Lorentey2004-05-23 05:08:13 +0000
commit2d2884b5c5f2e1ce27e30123111536f9db8ddfc7 (patch)
treed429cc1578b1d8bcb8d9f0a9d161d8f2361d8ae3 /lisp
parentd4d89d3741e8cfd34f7db695bf2a801e5584f9a7 (diff)
parent71d5a208a41e0982a9565d8cc215bd110fcac864 (diff)
downloademacs-2d2884b5c5f2e1ce27e30123111536f9db8ddfc7.tar.gz
emacs-2d2884b5c5f2e1ce27e30123111536f9db8ddfc7.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-330 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-331 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-332 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-333 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-334 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-335 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-336 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-337 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-338 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-173
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog90
-rw-r--r--lisp/allout.el193
-rw-r--r--lisp/compare-w.el10
-rw-r--r--lisp/emacs-lisp/lisp.el61
-rw-r--r--lisp/facemenu.el28
-rw-r--r--lisp/files.el77
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gs.el3
-rw-r--r--lisp/help-fns.el5
-rw-r--r--lisp/international/characters.el2
-rw-r--r--lisp/locate.el8
-rw-r--r--lisp/progmodes/ada-mode.el16
-rw-r--r--lisp/progmodes/etags.el19
-rw-r--r--lisp/progmodes/idlw-shell.el4
-rw-r--r--lisp/textmodes/bibtex.el54
-rw-r--r--lisp/textmodes/flyspell.el1
-rw-r--r--lisp/textmodes/paragraphs.el2
17 files changed, 373 insertions, 204 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 81da604aea5..aea6e7d6d10 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,87 @@
12004-05-22 Richard M. Stallman <rms@gnu.org>
2
3 * textmodes/paragraphs.el (sentence-end): Match unicode curly quotes
4 as a close quote.
5
6 * textmodes/bibtex.el: Use assoc-string, not assoc-ignore-case.
7
8 * progmodes/idlw-shell.el (idlwave-shell-get-object-class):
9 Use assoc-string, not assoc-ignore-case.
10
11 * progmodes/ada-mode.el: Use assoc-string, not assoc-ignore-case.
12
13 * emacs-lisp/lisp.el (mark-defun, narrow-to-defun):
14 If moving back then fwd gets a defun that ends before point,
15 try again moving fwd then back.
16
17 * files.el (file-name-non-special): Allow t in file-arg-indices
18 to mean requote the return value. Use `identity' as an element
19 rather than as the whole value.
20
21 * gs.el (gs-options): Add -dSAFER. Mark it risky.
22
232004-05-22 Juanma Barranquero <lektu@terra.es>
24
25 * help-fns.el (help-add-fundoc-usage): Use %S only for output of
26 `help-make-usage'.
27 (help-highlight-arguments): Skip function name before searching
28 for arguments.
29
302004-05-21 Juanma Barranquero <lektu@terra.es>
31
32 * allout.el (allout-chart-subtree, allout-rebullet-topic-grunt):
33 Don't mention in the docstring these arguments meant for
34 internal (recursive) use only.
35 (allout-char-spec): Comment out (it's not implemented).
36 (allout-old-expose-topic, allout-exposure): Fix docstring and add
37 obsolescence declaration.
38 (allout-flatten-exposed-to-buffer)
39 (allout-indented-exposed-to-buffer): Fix typos in docstring.
40 (my-mark-marker): Doc fix.
41 (produce-allout-mode-map, allout-sibling-index)
42 (allout-isearch-expose, allout-distinctive-bullet)
43 (allout-open-topic, allout-reindent-body)
44 (allout-rebullet-heading, allout-process-exposed)
45 (allout-insert-listified, allout-latex-verb-quote)
46 (allout-insert-latex-header, allout-insert-latex-trailer):
47 Make arguments match their use in docstring.
48 (allout-primary-bullet, allout-old-style-prefixes)
49 (allout-inhibit-protection, allout-init, allout-mode)
50 (allout-before-change-protect, allout-flag-region):
51 Use "Emacs" instead of "emacs" in docstrings.
52
532004-05-21 Masayuki Ataka <ataka@milk.freemail.ne.jp> (tiny change)
54
55 * international/characters.el: Modify syntax of more characters.
56
572004-05-21 Masatake YAMATO <jet@gyve.org>
58
59 * progmodes/etags.el (tags-apropos, list-tags): Require
60 apropos.
61 (etags-tags-completion-table): Show parsing progress.
62
632004-05-20 Luc Teirlinck <teirllm@auburn.edu>
64
65 * locate.el (locate-prompt-for-command): Shorten first line of
66 docstring.
67 (locate-mode): Expand docstring and include keymap summary.
68
69 * files.el (find-file-noselect-1): Limit the scope of the
70 `inhibit-read-only' binding. Make sure that `inhibit-read-only'
71 is, by default, nil during the execution of
72 `find-file-not-found-functions' and `find-file-hook'.
73
742004-05-20 Michael Mauger <mmaug@yahoo.com>
75
76 * facemenu.el (facemenu-color-name-equal): New function.
77 (list-colors-display): Use it to compare colors instead of
78 facemenu-color-equal.
79
802004-05-20 Dan Nicolaescu <dann@ics.uci.edu>
81
82 * compare-w.el (compare-windows-face): Use min-colors instead of
83 checking for tty or pc types.
84
12004-05-19 Stefan Monnier <monnier@iro.umontreal.ca> 852004-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
2 86
3 * simple.el (do-auto-fill): Remove unused vars `bol' and `opoint'. 87 * simple.el (do-auto-fill): Remove unused vars `bol' and `opoint'.
@@ -23,7 +107,7 @@
232004-05-19 Masatake YAMATO <jet@gyve.org> 1072004-05-19 Masatake YAMATO <jet@gyve.org>
24 108
25 * wid-edit.el (widget-radio-button-notify): Revert my last 109 * wid-edit.el (widget-radio-button-notify): Revert my last
26 change. Reported by Katsumi Yamaoka <yamaoka@jpl.org>. 110 change. Reported by Katsumi Yamaoka <yamaoka@jpl.org>.
27 111
282004-05-19 Kenichi Handa <handa@m17n.org> 1122004-05-19 Kenichi Handa <handa@m17n.org>
29 113
@@ -598,7 +682,7 @@
598 list of arguments in a string. 682 list of arguments in a string.
599 (help-highlight-arguments): Highlight the function arguments and 683 (help-highlight-arguments): Highlight the function arguments and
600 all uses of them in the docstring. 684 all uses of them in the docstring.
601 (describe-function-1): Use it. Do docstring output via `insert', 685 (describe-function-1): Use it. Do docstring output via `insert',
602 not 'princ', so text attributes are preserved. 686 not 'princ', so text attributes are preserved.
603 687
604 * winner.el (winner-mode-map): Move `winner-undo' and 688 * winner.el (winner-mode-map): Move `winner-undo' and
@@ -623,7 +707,7 @@
623 (bibtex-parse-entry): Fix docstring. 707 (bibtex-parse-entry): Fix docstring.
624 (bibtex-print-help-message): Use bibtex-field-list. 708 (bibtex-print-help-message): Use bibtex-field-list.
625 (bibtex-make-field): Use bibtex-field-list. 709 (bibtex-make-field): Use bibtex-field-list.
626 (bibtex-entry-index): Bugfix. Return crossref key if required. 710 (bibtex-entry-index): Bugfix. Return crossref key if required.
627 (bibtex-lessp): Fix docstring. 711 (bibtex-lessp): Fix docstring.
628 712
6292004-05-03 Luc Teirlinck <teirllm@auburn.edu> 7132004-05-03 Luc Teirlinck <teirllm@auburn.edu>
diff --git a/lisp/allout.el b/lisp/allout.el
index 458db865535..dd4495cfa84 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -1,6 +1,6 @@
1;;; allout.el --- extensive outline mode for use alone and with other modes 1;;; allout.el --- extensive outline mode for use alone and with other modes
2 2
3;; Copyright (C) 1992, 1993, 1994, 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1992, 93, 94, 2001, 02, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Ken Manheimer <klm@zope.com> 5;; Author: Ken Manheimer <klm@zope.com>
6;; Maintainer: Ken Manheimer <klm@zope.com> 6;; Maintainer: Ken Manheimer <klm@zope.com>
@@ -46,7 +46,7 @@
46;; 46;;
47;; The outline menubar additions provide quick reference to many of 47;; The outline menubar additions provide quick reference to many of
48;; the features, and see the docstring of the function `allout-init' 48;; the features, and see the docstring of the function `allout-init'
49;; for instructions on priming your emacs session for automatic 49;; for instructions on priming your Emacs session for automatic
50;; activation of `allout-mode'. 50;; activation of `allout-mode'.
51;; 51;;
52;; See the docstring of the variables `allout-layout' and 52;; See the docstring of the variables `allout-layout' and
@@ -162,7 +162,7 @@ prefix, which is concluded by bullets that includes the value of this
162var and the respective allout-*-bullets-string vars. 162var and the respective allout-*-bullets-string vars.
163 163
164The value of an asterisk (`*') provides for backwards compatibility 164The value of an asterisk (`*') provides for backwards compatibility
165with the original emacs outline mode. See `allout-plain-bullets-string' 165with the original Emacs outline mode. See `allout-plain-bullets-string'
166and `allout-distinctive-bullets-string' for the range of available 166and `allout-distinctive-bullets-string' for the range of available
167bullets." 167bullets."
168 :type 'string 168 :type 'string
@@ -263,7 +263,7 @@ from regular comments that start at bol.")
263 263
264Non-nil restricts the topic creation and modification 264Non-nil restricts the topic creation and modification
265functions to asterix-padded prefixes, so they look exactly 265functions to asterix-padded prefixes, so they look exactly
266like the original emacs-outline style prefixes. 266like the original Emacs-outline style prefixes.
267 267
268Whatever the setting of this variable, both old and new style prefixes 268Whatever the setting of this variable, both old and new style prefixes
269are always respected by the topic maneuvering functions." 269are always respected by the topic maneuvering functions."
@@ -491,7 +491,7 @@ those that do not have the variable `comment-start' set. A value of
491(defcustom allout-inhibit-protection nil 491(defcustom allout-inhibit-protection nil
492 "*Non-nil disables warnings and confirmation-checks for concealed-text edits. 492 "*Non-nil disables warnings and confirmation-checks for concealed-text edits.
493 493
494Outline mode uses emacs change-triggered functions to detect unruly 494Outline mode uses Emacs change-triggered functions to detect unruly
495changes to concealed regions. Set this var non-nil to disable the 495changes to concealed regions. Set this var non-nil to disable the
496protection, potentially increasing text-entry responsiveness a bit. 496protection, potentially increasing text-entry responsiveness a bit.
497 497
@@ -708,7 +708,7 @@ Works with respect to `allout-plain-bullets-string' and
708(defvar allout-mode-map nil "Keybindings for (allout) outline minor mode.") 708(defvar allout-mode-map nil "Keybindings for (allout) outline minor mode.")
709;;;_ > produce-allout-mode-map (keymap-alist &optional base-map) 709;;;_ > produce-allout-mode-map (keymap-alist &optional base-map)
710(defun produce-allout-mode-map (keymap-list &optional base-map) 710(defun produce-allout-mode-map (keymap-list &optional base-map)
711 "Produce keymap for use as allout-mode-map, from keymap-list. 711 "Produce keymap for use as allout-mode-map, from KEYMAP-LIST.
712 712
713Built on top of optional BASE-MAP, or empty sparse map if none specified. 713Built on top of optional BASE-MAP, or empty sparse map if none specified.
714See doc string for allout-keybindings-list for format of binding list." 714See doc string for allout-keybindings-list for format of binding list."
@@ -939,7 +939,7 @@ MODE is one of the following symbols:
939 - anything else \(eg, t) for auto-activation and auto-layout, without 939 - anything else \(eg, t) for auto-activation and auto-layout, without
940 any confirmation check. 940 any confirmation check.
941 941
942Use this function to setup your emacs session for automatic activation 942Use this function to setup your Emacs session for automatic activation
943of allout outline mode, contingent to the buffer-specific setting of 943of allout outline mode, contingent to the buffer-specific setting of
944the `allout-layout' variable. (See `allout-layout' and 944the `allout-layout' variable. (See `allout-layout' and
945`allout-expose-topic' docstrings for more details on auto layout). 945`allout-expose-topic' docstrings for more details on auto layout).
@@ -948,8 +948,8 @@ the `allout-layout' variable. (See `allout-layout' and
948`allout-find-file-hook' in `find-file-hook', and giving 948`allout-find-file-hook' in `find-file-hook', and giving
949`allout-auto-activation' a suitable setting. 949`allout-auto-activation' a suitable setting.
950 950
951To prime your emacs session for full auto-outline operation, include 951To prime your Emacs session for full auto-outline operation, include
952the following two lines in your emacs init file: 952the following two lines in your Emacs init file:
953 953
954\(require 'allout) 954\(require 'allout)
955\(allout-init t)" 955\(allout-init t)"
@@ -1044,7 +1044,7 @@ Below is a description of the bindings, and then explanation of
1044special `allout-mode' features and terminology. See also the outline 1044special `allout-mode' features and terminology. See also the outline
1045menubar additions for quick reference to many of the features, and see 1045menubar additions for quick reference to many of the features, and see
1046the docstring of the function `allout-init' for instructions on 1046the docstring of the function `allout-init' for instructions on
1047priming your emacs session for automatic activation of `allout-mode'. 1047priming your Emacs session for automatic activation of `allout-mode'.
1048 1048
1049 1049
1050The bindings are dictated by the `allout-keybindings-list' and 1050The bindings are dictated by the `allout-keybindings-list' and
@@ -1102,7 +1102,7 @@ C-c = p allout-flatten-exposed-to-buffer
1102 Like above 'copy-exposed', but convert topic 1102 Like above 'copy-exposed', but convert topic
1103 prefixes to section.subsection... numeric 1103 prefixes to section.subsection... numeric
1104 format. 1104 format.
1105ESC ESC (allout-init t) Setup emacs session for outline mode 1105ESC ESC (allout-init t) Setup Emacs session for outline mode
1106 auto-activation. 1106 auto-activation.
1107 1107
1108 HOT-SPOT Operation 1108 HOT-SPOT Operation
@@ -1132,7 +1132,7 @@ twice in a row to get to the hot-spot.
1132 1132
1133Topic hierarchy constituents - TOPICS and SUBTOPICS: 1133Topic hierarchy constituents - TOPICS and SUBTOPICS:
1134 1134
1135TOPIC: A basic, coherent component of an emacs outline. It can 1135TOPIC: A basic, coherent component of an Emacs outline. It can
1136 contain other topics, and it can be subsumed by other topics, 1136 contain other topics, and it can be subsumed by other topics,
1137CURRENT topic: 1137CURRENT topic:
1138 The visible topic most immediately containing the cursor. 1138 The visible topic most immediately containing the cursor.
@@ -1303,7 +1303,7 @@ OPEN: A topic that is not closed, though its offspring or body may be."
1303 ) 1303 )
1304 1304
1305 ; selective-display is the 1305 ; selective-display is the
1306 ; emacs conditional exposure 1306 ; Emacs conditional exposure
1307 ; mechanism: 1307 ; mechanism:
1308 (allout-resumptions 'selective-display '(t)) 1308 (allout-resumptions 'selective-display '(t))
1309 (if allout-inhibit-protection 1309 (if allout-inhibit-protection
@@ -1537,7 +1537,7 @@ Actually, returns prefix beginning point."
1537(defun allout-sibling-index (&optional depth) 1537(defun allout-sibling-index (&optional depth)
1538 "Item number of this prospective topic among its siblings. 1538 "Item number of this prospective topic among its siblings.
1539 1539
1540If optional arg depth is greater than current depth, then we're 1540If optional arg DEPTH is greater than current depth, then we're
1541opening a new level, and return 0. 1541opening a new level, and return 0.
1542 1542
1543If less than this depth, ascend to that depth and count..." 1543If less than this depth, ascend to that depth and count..."
@@ -1622,8 +1622,7 @@ Return the location of the beginning of the heading, or nil if not found."
1622 "Produce a location \"chart\" of subtopics of the containing topic. 1622 "Produce a location \"chart\" of subtopics of the containing topic.
1623 1623
1624Optional argument LEVELS specifies the depth \(relative to start 1624Optional argument LEVELS specifies the depth \(relative to start
1625depth) for the chart. Subsequent optional args are not for public 1625depth) for the chart.
1626use.
1627 1626
1628Charts are used to capture outline structure, so that outline altering 1627Charts are used to capture outline structure, so that outline altering
1629routines need assess the structure only once, and then use the chart 1628routines need assess the structure only once, and then use the chart
@@ -1636,9 +1635,11 @@ list containing, recursively, the charts for the respective subtopics.
1636The chart for a topics' offspring precedes the entry for the topic 1635The chart for a topics' offspring precedes the entry for the topic
1637itself. 1636itself.
1638 1637
1639The other function parameters are for internal recursion, and should 1638\(fn &optional levels)"
1640not be specified by external callers. ORIG-DEPTH is depth of topic at 1639
1641starting point, and PREV-DEPTH is depth of prior topic." 1640 ;; The other function parameters are for internal recursion, and should
1641 ;; not be specified by external callers. ORIG-DEPTH is depth of topic at
1642 ;; starting point, and PREV-DEPTH is depth of prior topic."
1642 1643
1643 (let ((original (not orig-depth)) ; `orig-depth' set only in recursion. 1644 (let ((original (not orig-depth)) ; `orig-depth' set only in recursion.
1644 chart curr-depth) 1645 chart curr-depth)
@@ -1652,7 +1653,7 @@ starting point, and PREV-DEPTH is depth of prior topic."
1652 1653
1653 ;; Loop over the current levels' siblings. Besides being more 1654 ;; Loop over the current levels' siblings. Besides being more
1654 ;; efficient than tail-recursing over a level, it avoids exceeding 1655 ;; efficient than tail-recursing over a level, it avoids exceeding
1655 ;; the typically quite constrained emacs max-lisp-eval-depth. 1656 ;; the typically quite constrained Emacs max-lisp-eval-depth.
1656 ;; 1657 ;;
1657 ;; Probably would speed things up to implement loop-based stack 1658 ;; Probably would speed things up to implement loop-based stack
1658 ;; operation rather than recursing for lower levels. Bah. 1659 ;; operation rather than recursing for lower levels. Bah.
@@ -1741,36 +1742,36 @@ start point."
1741 (setq chart (cdr chart)))) 1742 (setq chart (cdr chart))))
1742 result)) 1743 result))
1743;;;_ X allout-chart-spec (chart spec &optional exposing) 1744;;;_ X allout-chart-spec (chart spec &optional exposing)
1744(defun allout-chart-spec (chart spec &optional exposing) 1745;; (defun allout-chart-spec (chart spec &optional exposing)
1745 "Not yet \(if ever) implemented. 1746;; "Not yet \(if ever) implemented.
1746 1747
1747Produce exposure directives given topic/subtree CHART and an exposure SPEC. 1748;; Produce exposure directives given topic/subtree CHART and an exposure SPEC.
1748 1749
1749Exposure spec indicates the locations to be exposed and the prescribed 1750;; Exposure spec indicates the locations to be exposed and the prescribed
1750exposure status. Optional arg EXPOSING is an integer, with 0 1751;; exposure status. Optional arg EXPOSING is an integer, with 0
1751indicating pending concealment, anything higher indicating depth to 1752;; indicating pending concealment, anything higher indicating depth to
1752which subtopic headers should be exposed, and negative numbers 1753;; which subtopic headers should be exposed, and negative numbers
1753indicating (negative of) the depth to which subtopic headers and 1754;; indicating (negative of) the depth to which subtopic headers and
1754bodies should be exposed. 1755;; bodies should be exposed.
1755 1756
1756The produced list can have two types of entries. Bare numbers 1757;; The produced list can have two types of entries. Bare numbers
1757indicate points in the buffer where topic headers that should be 1758;; indicate points in the buffer where topic headers that should be
1758exposed reside. 1759;; exposed reside.
1759 1760
1760 - bare negative numbers indicates that the topic starting at the 1761;; - bare negative numbers indicates that the topic starting at the
1761 point which is the negative of the number should be opened, 1762;; point which is the negative of the number should be opened,
1762 including their entries. 1763;; including their entries.
1763 - bare positive values indicate that this topic header should be 1764;; - bare positive values indicate that this topic header should be
1764 opened. 1765;; opened.
1765 - Lists signify the beginning and end points of regions that should 1766;; - Lists signify the beginning and end points of regions that should
1766 be flagged, and the flag to employ. (For concealment: `\(\?r\)', and 1767;; be flagged, and the flag to employ. (For concealment: `\(\?r\)', and
1767 exposure:" 1768;; exposure:"
1768 (while spec 1769;; (while spec
1769 (cond ((listp spec) 1770;; (cond ((listp spec)
1770 ) 1771;; )
1771 ) 1772;; )
1772 (setq spec (cdr spec))) 1773;; (setq spec (cdr spec)))
1773 ) 1774;; )
1774 1775
1775;;;_ - Within Topic 1776;;;_ - Within Topic
1776;;;_ > allout-goto-prefix () 1777;;;_ > allout-goto-prefix ()
@@ -2138,7 +2139,7 @@ Changes to concealed regions are ignored while file is being written.
2138writes, like crypt and zip modes.) 2139writes, like crypt and zip modes.)
2139 2140
2140Locally bound in outline buffers to `before-change-functions', which 2141Locally bound in outline buffers to `before-change-functions', which
2141in emacs 19 is run before any change to the buffer. 2142in Emacs 19 is run before any change to the buffer.
2142 2143
2143Any functions which set [`this-command' to `undo', or which set] 2144Any functions which set [`this-command' to `undo', or which set]
2144`allout-override-protect' non-nil (as does, eg, allout-flag-chars) 2145`allout-override-protect' non-nil (as does, eg, allout-flag-chars)
@@ -2153,7 +2154,7 @@ are exempt from this restriction."
2153 ; Both beginning and end chars must 2154 ; Both beginning and end chars must
2154 ; be exposed: 2155 ; be exposed:
2155 (save-excursion (if (memq this-command '(newline open-line)) 2156 (save-excursion (if (memq this-command '(newline open-line))
2156 ;; Compensate for stupid emacs {new, 2157 ;; Compensate for stupid Emacs {new,
2157 ;; open-}line display optimization: 2158 ;; open-}line display optimization:
2158 (setq beg (1+ beg) 2159 (setq beg (1+ beg)
2159 end (1+ end))) 2160 end (1+ end)))
@@ -2165,7 +2166,7 @@ are exempt from this restriction."
2165 (save-match-data 2166 (save-match-data
2166 (if (equal this-command 'undo) 2167 (if (equal this-command 'undo)
2167 ;; Allow undo without inhibition. 2168 ;; Allow undo without inhibition.
2168 ;; - Undoing new and open-line hits stupid emacs redisplay 2169 ;; - Undoing new and open-line hits stupid Emacs redisplay
2169 ;; optimization (em 19 cmds.c, ~ line 200). 2170 ;; optimization (em 19 cmds.c, ~ line 200).
2170 ;; - Presumably, undoing what was properly protected when 2171 ;; - Presumably, undoing what was properly protected when
2171 ;; done. 2172 ;; done.
@@ -2331,7 +2332,7 @@ return to regular interpretation of self-insert characters."
2331 (let* ((this-key-num (cond 2332 (let* ((this-key-num (cond
2332 ((numberp last-command-char) 2333 ((numberp last-command-char)
2333 last-command-char) 2334 last-command-char)
2334 ;; XXX Only xemacs has characterp. 2335 ;; XXX Only XEmacs has characterp.
2335 ((and (fboundp 'characterp) 2336 ((and (fboundp 'characterp)
2336 (characterp last-command-char)) 2337 (characterp last-command-char))
2337 (char-to-int last-command-char)) 2338 (char-to-int last-command-char))
@@ -2385,7 +2386,7 @@ Called as part of `allout-post-command-business'."
2385 2386
2386;;;_ > allout-flag-region (from to flag) 2387;;;_ > allout-flag-region (from to flag)
2387(defmacro allout-flag-region (from to flag) 2388(defmacro allout-flag-region (from to flag)
2388 "Hide or show lines from FROM to TO, via emacs selective-display FLAG char. 2389 "Hide or show lines from FROM to TO, via Emacs selective-display FLAG char.
2389Ie, text following flag C-m \(carriage-return) is hidden until the 2390Ie, text following flag C-m \(carriage-return) is hidden until the
2390next C-j (newline) char. 2391next C-j (newline) char.
2391 2392
@@ -2398,7 +2399,7 @@ Returns the endpoint of the region."
2398 2399
2399;;;_ > allout-isearch-expose (mode) 2400;;;_ > allout-isearch-expose (mode)
2400(defun allout-isearch-expose (mode) 2401(defun allout-isearch-expose (mode)
2401 "Mode is either 'clear, 'start, 'continue, or 'final." 2402 "MODE is either 'clear, 'start, 'continue, or 'final."
2402 ;; allout-isearch-prior-pos encodes exposure status of prior pos: 2403 ;; allout-isearch-prior-pos encodes exposure status of prior pos:
2403 ;; (pos was-vis header-pos end-pos) 2404 ;; (pos was-vis header-pos end-pos)
2404 ;; pos - point of concern 2405 ;; pos - point of concern
@@ -2507,7 +2508,7 @@ Offer one suitable for current depth DEPTH as default."
2507 ) 2508 )
2508;;;_ > allout-distinctive-bullet (bullet) 2509;;;_ > allout-distinctive-bullet (bullet)
2509(defun allout-distinctive-bullet (bullet) 2510(defun allout-distinctive-bullet (bullet)
2510 "True if bullet is one of those on `allout-distinctive-bullets-string'." 2511 "True if BULLET is one of those on `allout-distinctive-bullets-string'."
2511 (string-match (regexp-quote bullet) allout-distinctive-bullets-string)) 2512 (string-match (regexp-quote bullet) allout-distinctive-bullets-string))
2512;;;_ > allout-numbered-type-prefix (&optional prefix) 2513;;;_ > allout-numbered-type-prefix (&optional prefix)
2513(defun allout-numbered-type-prefix (&optional prefix) 2514(defun allout-numbered-type-prefix (&optional prefix)
@@ -2679,7 +2680,7 @@ index for each successive sibling)."
2679 ) 2680 )
2680;;;_ > allout-open-topic (relative-depth &optional before use_sib_bullet) 2681;;;_ > allout-open-topic (relative-depth &optional before use_sib_bullet)
2681(defun allout-open-topic (relative-depth &optional before use_sib_bullet) 2682(defun allout-open-topic (relative-depth &optional before use_sib_bullet)
2682 "Open a new topic at depth DEPTH. 2683 "Open a new topic at depth RELATIVE-DEPTH.
2683 2684
2684New topic is situated after current one, unless optional flag BEFORE 2685New topic is situated after current one, unless optional flag BEFORE
2685is non-nil, or unless current line is complete empty (not even 2686is non-nil, or unless current line is complete empty (not even
@@ -2900,7 +2901,7 @@ Maintains outline hanging topic indentation if
2900 (do-auto-fill)))) 2901 (do-auto-fill))))
2901;;;_ > allout-reindent-body (old-depth new-depth &optional number) 2902;;;_ > allout-reindent-body (old-depth new-depth &optional number)
2902(defun allout-reindent-body (old-depth new-depth &optional number) 2903(defun allout-reindent-body (old-depth new-depth &optional number)
2903 "Reindent body lines which were indented at old-depth to new-depth. 2904 "Reindent body lines which were indented at OLD-DEPTH to NEW-DEPTH.
2904 2905
2905Optional arg NUMBER indicates numbering is being added, and it must 2906Optional arg NUMBER indicates numbering is being added, and it must
2906be accommodated. 2907be accommodated.
@@ -2974,15 +2975,13 @@ Note that refill of indented paragraphs is not done."
2974 2975
2975 "Adjust bullet of current topic prefix. 2976 "Adjust bullet of current topic prefix.
2976 2977
2977All args are optional.
2978
2979If SOLICIT is non-nil, then the choice of bullet is solicited from 2978If SOLICIT is non-nil, then the choice of bullet is solicited from
2980user. If it's a character, then that character is offered as the 2979user. If it's a character, then that character is offered as the
2981default, otherwise the one suited to the context \(according to 2980default, otherwise the one suited to the context \(according to
2982distinction or depth) is offered. If non-nil, then the 2981distinction or depth) is offered. If non-nil, then the
2983context-specific bullet is just used. 2982context-specific bullet is just used.
2984 2983
2985Second arg DEPTH forces the topic prefix to that depth, regardless 2984Second arg NEW-DEPTH forces the topic prefix to that depth, regardless
2986of the topic's current depth. 2985of the topic's current depth.
2987 2986
2988Third arg NUMBER-CONTROL can force the prefix to or away from 2987Third arg NUMBER-CONTROL can force the prefix to or away from
@@ -3095,13 +3094,13 @@ With repeat count, shift topic depth by that amount."
3095contained subtopics. See `allout-rebullet-heading' for rebulleting 3094contained subtopics. See `allout-rebullet-heading' for rebulleting
3096behavior. 3095behavior.
3097 3096
3098All arguments are optional. 3097Arg RELATIVE-DEPTH means to shift the depth of the entire
3099
3100First arg RELATIVE-DEPTH means to shift the depth of the entire
3101topic that amount. 3098topic that amount.
3102 3099
3103The rest of the args are for internal recursive use by the function 3100\(fn &optional RELATIVE-DEPTH)"
3104itself. The are STARTING-DEPTH, STARTING-POINT, and INDEX." 3101
3102 ;; All args except the first one are for internal recursive use by the
3103 ;; function itself.
3105 3104
3106 (let* ((relative-depth (or relative-depth 0)) 3105 (let* ((relative-depth (or relative-depth 0))
3107 (new-depth (allout-depth)) 3106 (new-depth (allout-depth))
@@ -3900,11 +3899,7 @@ Examples:
3900 max-pos))) 3899 max-pos)))
3901;;;_ > allout-old-expose-topic (spec &rest followers) 3900;;;_ > allout-old-expose-topic (spec &rest followers)
3902(defun allout-old-expose-topic (spec &rest followers) 3901(defun allout-old-expose-topic (spec &rest followers)
3903 3902 "Dictate wholesale exposure scheme for current topic, according to SPEC.
3904 "Deprecated. Use `allout-expose-topic' \(with different schema
3905format) instead.
3906
3907Dictate wholesale exposure scheme for current topic, according to SPEC.
3908 3903
3909SPEC is either a number or a list. Optional successive args 3904SPEC is either a number or a list. Optional successive args
3910dictate exposure for subsequent siblings of current topic. 3905dictate exposure for subsequent siblings of current topic.
@@ -3931,7 +3926,7 @@ dictates the exposure depth of the topic as a whole. Subsequent
3931elements of the list are nested SPECs, dictating the specific exposure 3926elements of the list are nested SPECs, dictating the specific exposure
3932for the corresponding offspring of the topic. 3927for the corresponding offspring of the topic.
3933 3928
3934Optional FOLLOWER arguments dictate exposure for succeeding siblings." 3929Optional FOLLOWERS arguments dictate exposure for succeeding siblings."
3935 3930
3936 (interactive "xExposure spec: ") 3931 (interactive "xExposure spec: ")
3937 (let ((depth (allout-current-depth)) 3932 (let ((depth (allout-current-depth))
@@ -3976,6 +3971,9 @@ Optional FOLLOWER arguments dictate exposure for succeeding siblings."
3976 (allout-old-expose-topic (car followers)) 3971 (allout-old-expose-topic (car followers))
3977 (setq followers (cdr followers))) 3972 (setq followers (cdr followers)))
3978 max-pos)) 3973 max-pos))
3974(make-obsolete 'allout-old-expose-topic
3975 "use `allout-expose-topic' (with different schema format) instead."
3976 "19.23")
3979;;;_ > allout-new-exposure '() 3977;;;_ > allout-new-exposure '()
3980(defmacro allout-new-exposure (&rest spec) 3978(defmacro allout-new-exposure (&rest spec)
3981 "Literal frontend for `allout-expose-topic', doesn't evaluate arguments. 3979 "Literal frontend for `allout-expose-topic', doesn't evaluate arguments.
@@ -4006,9 +4004,7 @@ Examples:
4006 (list 'allout-expose-topic (list 'quote spec)))) 4004 (list 'allout-expose-topic (list 'quote spec))))
4007;;;_ > allout-exposure '() 4005;;;_ > allout-exposure '()
4008(defmacro allout-exposure (&rest spec) 4006(defmacro allout-exposure (&rest spec)
4009 "Being deprecated - use more recent `allout-new-exposure' instead. 4007 "Literal frontend for `allout-old-expose-topic', doesn't evaluate arguments
4010
4011Literal frontend for `allout-old-expose-topic', doesn't evaluate arguments
4012and retains start position." 4008and retains start position."
4013 (list 'save-excursion 4009 (list 'save-excursion
4014 '(if (not (or (allout-goto-prefix) 4010 '(if (not (or (allout-goto-prefix)
@@ -4016,6 +4012,7 @@ and retains start position."
4016 (error "Can't find any outline topics")) 4012 (error "Can't find any outline topics"))
4017 (cons 'allout-old-expose-topic 4013 (cons 'allout-old-expose-topic
4018 (mapcar (function (lambda (x) (list 'quote x))) spec)))) 4014 (mapcar (function (lambda (x) (list 'quote x))) spec))))
4015(make-obsolete 'allout-exposure 'allout-new-exposure "19.23")
4019 4016
4020;;;_ #7 Systematic outline presentation - copying, printing, flattening 4017;;;_ #7 Systematic outline presentation - copying, printing, flattening
4021 4018
@@ -4223,12 +4220,10 @@ header and body. The elements of that list are:
4223;;;_ > allout-process-exposed (&optional func from to frombuf 4220;;;_ > allout-process-exposed (&optional func from to frombuf
4224;;; tobuf format) 4221;;; tobuf format)
4225(defun allout-process-exposed (&optional func from to frombuf tobuf 4222(defun allout-process-exposed (&optional func from to frombuf tobuf
4226 format &optional start-num) 4223 format start-num)
4227 "Map function on exposed parts of current topic; results to another buffer. 4224 "Map function on exposed parts of current topic; results to another buffer.
4228 4225
4229All args are options; default values itemized below. 4226Apply FUNC to exposed portions FROM position TO position in buffer
4230
4231Apply FUNCTION to exposed portions FROM position TO position in buffer
4232FROMBUF to buffer TOBUF. Sixth optional arg, FORMAT, designates an 4227FROMBUF to buffer TOBUF. Sixth optional arg, FORMAT, designates an
4233alternate presentation form: 4228alternate presentation form:
4234 4229
@@ -4241,7 +4236,7 @@ alternate presentation form:
4241 except for distinctive bullets. 4236 except for distinctive bullets.
4242 4237
4243Defaults: 4238Defaults:
4244 FUNCTION: `allout-insert-listified' 4239 FUNC: `allout-insert-listified'
4245 FROM: region start, if region active, else start of buffer 4240 FROM: region start, if region active, else start of buffer
4246 TO: region end, if region active, else end of buffer 4241 TO: region end, if region active, else end of buffer
4247 FROMBUF: current buffer 4242 FROMBUF: current buffer
@@ -4286,11 +4281,13 @@ Defaults:
4286(defun allout-insert-listified (listified) 4281(defun allout-insert-listified (listified)
4287 "Insert contents of listified outline portion in current buffer. 4282 "Insert contents of listified outline portion in current buffer.
4288 4283
4289Listified is a list representing each topic header and body: 4284LISTIFIED is a list representing each topic header and body:
4290 4285
4291 \`(depth prefix text)' 4286 \`(depth prefix text)'
4292 4287
4293or \`(depth prefix text bullet-plus)' 4288or
4289
4290 \`(depth prefix text bullet-plus)'
4294 4291
4295If `bullet-plus' is specified, it is inserted just after the entire prefix." 4292If `bullet-plus' is specified, it is inserted just after the entire prefix."
4296 (setq listified (cdr listified)) 4293 (setq listified (cdr listified))
@@ -4356,14 +4353,14 @@ alternate presentation format for the outline:
4356(defun allout-flatten-exposed-to-buffer (&optional arg tobuf) 4353(defun allout-flatten-exposed-to-buffer (&optional arg tobuf)
4357 "Present numeric outline of outline's exposed portions in another buffer. 4354 "Present numeric outline of outline's exposed portions in another buffer.
4358 4355
4359The resulting outline is not compatable with outline mode - use 4356The resulting outline is not compatible with outline mode - use
4360`allout-copy-exposed-to-buffer' if you want that. 4357`allout-copy-exposed-to-buffer' if you want that.
4361 4358
4362Use `allout-indented-exposed-to-buffer' for indented presentation. 4359Use `allout-indented-exposed-to-buffer' for indented presentation.
4363 4360
4364With repeat count, copy the exposed portions of only current topic. 4361With repeat count, copy the exposed portions of only current topic.
4365 4362
4366Other buffer has current buffers name with \" exposed\" appended to 4363Other buffer has current buffer's name with \" exposed\" appended to
4367it, unless optional second arg TOBUF is specified, in which case it is 4364it, unless optional second arg TOBUF is specified, in which case it is
4368used verbatim." 4365used verbatim."
4369 (interactive "P") 4366 (interactive "P")
@@ -4372,22 +4369,22 @@ used verbatim."
4372(defun allout-indented-exposed-to-buffer (&optional arg tobuf) 4369(defun allout-indented-exposed-to-buffer (&optional arg tobuf)
4373 "Present indented outline of outline's exposed portions in another buffer. 4370 "Present indented outline of outline's exposed portions in another buffer.
4374 4371
4375The resulting outline is not compatable with outline mode - use 4372The resulting outline is not compatible with outline mode - use
4376`allout-copy-exposed-to-buffer' if you want that. 4373`allout-copy-exposed-to-buffer' if you want that.
4377 4374
4378Use `allout-flatten-exposed-to-buffer' for numeric sectional presentation. 4375Use `allout-flatten-exposed-to-buffer' for numeric sectional presentation.
4379 4376
4380With repeat count, copy the exposed portions of only current topic. 4377With repeat count, copy the exposed portions of only current topic.
4381 4378
4382Other buffer has current buffers name with \" exposed\" appended to 4379Other buffer has current buffer's name with \" exposed\" appended to
4383it, unless optional second arg TOBUF is specified, in which case it is 4380it, unless optional second arg TOBUF is specified, in which case it is
4384used verbatim." 4381used verbatim."
4385 (interactive "P") 4382 (interactive "P")
4386 (allout-copy-exposed-to-buffer arg tobuf 'indent)) 4383 (allout-copy-exposed-to-buffer arg tobuf 'indent))
4387 4384
4388;;;_ - LaTeX formatting 4385;;;_ - LaTeX formatting
4389;;;_ > allout-latex-verb-quote (str &optional flow) 4386;;;_ > allout-latex-verb-quote (string &optional flow)
4390(defun allout-latex-verb-quote (str &optional flow) 4387(defun allout-latex-verb-quote (string &optional flow)
4391 "Return copy of STRING for literal reproduction across latex processing. 4388 "Return copy of STRING for literal reproduction across latex processing.
4392Expresses the original characters \(including carriage returns) of the 4389Expresses the original characters \(including carriage returns) of the
4393string across latex processing." 4390string across latex processing."
@@ -4397,7 +4394,7 @@ string across latex processing."
4397 (concat "\\char" (number-to-string char) "{}")) 4394 (concat "\\char" (number-to-string char) "{}"))
4398 ((= char ?\n) "\\\\") 4395 ((= char ?\n) "\\\\")
4399 (t (char-to-string char))))) 4396 (t (char-to-string char)))))
4400 str 4397 string
4401 "")) 4398 ""))
4402;;;_ > allout-latex-verbatim-quote-curr-line () 4399;;;_ > allout-latex-verbatim-quote-curr-line ()
4403(defun allout-latex-verbatim-quote-curr-line () 4400(defun allout-latex-verbatim-quote-curr-line ()
@@ -4418,12 +4415,12 @@ environment. Leaves point at the end of the line."
4418 (insert "\\") 4415 (insert "\\")
4419 (setq end (1+ end)) 4416 (setq end (1+ end))
4420 (goto-char (1+ (match-end 0)))))) 4417 (goto-char (1+ (match-end 0))))))
4421;;;_ > allout-insert-latex-header (buf) 4418;;;_ > allout-insert-latex-header (buffer)
4422(defun allout-insert-latex-header (buf) 4419(defun allout-insert-latex-header (buffer)
4423 "Insert initial latex commands at point in BUFFER." 4420 "Insert initial latex commands at point in BUFFER."
4424 ;; Much of this is being derived from the stuff in appendix of E in 4421 ;; Much of this is being derived from the stuff in appendix of E in
4425 ;; the TeXBook, pg 421. 4422 ;; the TeXBook, pg 421.
4426 (set-buffer buf) 4423 (set-buffer buffer)
4427 (let ((doc-style (format "\n\\documentstyle{%s}\n" 4424 (let ((doc-style (format "\n\\documentstyle{%s}\n"
4428 "report")) 4425 "report"))
4429 (page-numbering (if allout-number-pages 4426 (page-numbering (if allout-number-pages
@@ -4492,10 +4489,10 @@ environment. Leaves point at the end of the line."
4492 hoffset 4489 hoffset
4493 vspace) 4490 vspace)
4494 ))) 4491 )))
4495;;;_ > allout-insert-latex-trailer (buf) 4492;;;_ > allout-insert-latex-trailer (buffer)
4496(defun allout-insert-latex-trailer (buf) 4493(defun allout-insert-latex-trailer (buffer)
4497 "Insert concluding latex commands at point in BUFFER." 4494 "Insert concluding latex commands at point in BUFFER."
4498 (set-buffer buf) 4495 (set-buffer buffer)
4499 (insert "\n\\end{document}\n")) 4496 (insert "\n\\end{document}\n"))
4500;;;_ > allout-latexify-one-item (depth prefix bullet text) 4497;;;_ > allout-latexify-one-item (depth prefix bullet text)
4501(defun allout-latexify-one-item (depth prefix bullet text) 4498(defun allout-latexify-one-item (depth prefix bullet text)
@@ -4706,9 +4703,9 @@ function. If HOOK is void, it is first set to nil."
4706 (cons function (symbol-value hook))))))) 4703 (cons function (symbol-value hook)))))))
4707;;;_ : my-mark-marker to accommodate divergent emacsen: 4704;;;_ : my-mark-marker to accommodate divergent emacsen:
4708(defun my-mark-marker (&optional force buffer) 4705(defun my-mark-marker (&optional force buffer)
4709 "Accommodate the different signature for mark-marker across emacsen. 4706 "Accommodate the different signature for mark-marker across Emacsen.
4710 4707
4711GNU XEmacs takes two optional args, while mainline GNU Emacs does not, 4708XEmacs takes two optional args, while GNU Emacs does not,
4712so pass them along when appropriate." 4709so pass them along when appropriate."
4713 (if (featurep 'xemacs) 4710 (if (featurep 'xemacs)
4714 (mark-marker force buffer) 4711 (mark-marker force buffer)
diff --git a/lisp/compare-w.el b/lisp/compare-w.el
index d283016750f..7e23c9efedf 100644
--- a/lisp/compare-w.el
+++ b/lisp/compare-w.el
@@ -1,6 +1,6 @@
1;;; compare-w.el --- compare text between windows for Emacs 1;;; compare-w.el --- compare text between windows for Emacs
2 2
3;; Copyright (C) 1986, 1989, 1993, 1997, 2003 Free Software Foundation, Inc. 3;; Copyright (C) 1986,1989,1993,1997,2003,2004 Free Software Foundation, Inc.
4 4
5;; Maintainer: FSF 5;; Maintainer: FSF
6;; Keywords: convenience files 6;; Keywords: convenience files
@@ -117,12 +117,12 @@ and the value `((4) (4))' for horizontally split windows."
117 :group 'compare-w) 117 :group 'compare-w)
118 118
119(defface compare-windows-face 119(defface compare-windows-face
120 '((((type tty pc) (class color)) 120 '((((class color) (min-colors 88) (background light))
121 (:background "turquoise3"))
122 (((class color) (background light))
123 (:background "paleturquoise")) 121 (:background "paleturquoise"))
124 (((class color) (background dark)) 122 (((class color) (min-colors 88) (background dark))
125 (:background "paleturquoise4")) 123 (:background "paleturquoise4"))
124 (((class color))
125 (:background "turquoise3"))
126 (t (:underline t))) 126 (t (:underline t)))
127 "Face for highlighting of compare-windows difference regions." 127 "Face for highlighting of compare-windows difference regions."
128 :group 'compare-w) 128 :group 'compare-w)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 8fe839b474d..53b9e7507ef 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -281,15 +281,31 @@ already marked."
281 (end-of-defun) 281 (end-of-defun)
282 (point)))) 282 (point))))
283 (t 283 (t
284 ;; Do it in this order for the sake of languages with nested 284 (let ((opoint (point))
285 ;; functions where several can end at the same place as with 285 beg end)
286 ;; the offside rule, e.g. Python. 286 (push-mark opoint)
287 (push-mark (point)) 287 ;; Try first in this order for the sake of languages with nested
288 (beginning-of-defun) 288 ;; functions where several can end at the same place as with
289 (push-mark (point) nil t) 289 ;; the offside rule, e.g. Python.
290 (end-of-defun) 290 (beginning-of-defun)
291 (exchange-point-and-mark) 291 (setq beg (point))
292 (re-search-backward "^\n" (- (point) 1) t)))) 292 (end-of-defun)
293 (setq end (point))
294 (while (looking-at "^\n")
295 (forward-line 1))
296 (if (> (point) opoint)
297 (progn
298 ;; We got the right defun.
299 (push-mark beg nil t)
300 (goto-char end)
301 (exchange-point-and-mark))
302 ;; beginning-of-defun moved back one defun
303 ;; so we got the wrong one.
304 (goto-char opoint)
305 (end-of-defun)
306 (push-mark (point) nil t)
307 (beginning-of-defun))
308 (re-search-backward "^\n" (- (point) 1) t)))))
293 309
294(defun narrow-to-defun (&optional arg) 310(defun narrow-to-defun (&optional arg)
295 "Make text outside current defun invisible. 311 "Make text outside current defun invisible.
@@ -298,13 +314,28 @@ Optional ARG is ignored."
298 (interactive) 314 (interactive)
299 (save-excursion 315 (save-excursion
300 (widen) 316 (widen)
301 ;; Do it in this order for the sake of languages with nested 317 (let ((opoint (point))
302 ;; functions where several can end at the same place as with the 318 beg end)
303 ;; offside rule, e.g. Python. 319 ;; Try first in this order for the sake of languages with nested
304 (beginning-of-defun) 320 ;; functions where several can end at the same place as with
305 (let ((beg (point))) 321 ;; the offside rule, e.g. Python.
322 (beginning-of-defun)
323 (setq beg (point))
306 (end-of-defun) 324 (end-of-defun)
307 (narrow-to-region beg (point))))) 325 (setq end (point))
326 (while (looking-at "^\n")
327 (forward-line 1))
328 (unless (> (point) opoint)
329 ;; beginning-of-defun moved back one defun
330 ;; so we got the wrong one.
331 (goto-char opoint)
332 (end-of-defun)
333 (setq end (point))
334 (beginning-of-defun)
335 (setq beg (point)))
336 (goto-char end)
337 (re-search-backward "^\n" (- (point) 1) t)
338 (narrow-to-region beg end))))
308 339
309(defun insert-pair (arg &optional open close) 340(defun insert-pair (arg &optional open close)
310 "Enclose following ARG sexps in a pair of OPEN and CLOSE characters. 341 "Enclose following ARG sexps in a pair of OPEN and CLOSE characters.
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 3893e320655..e9af58fc73d 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -480,9 +480,19 @@ of colors that the current display can handle."
480 (when (and (null list) (> (display-color-cells) 0)) 480 (when (and (null list) (> (display-color-cells) 0))
481 (setq list (defined-colors)) 481 (setq list (defined-colors))
482 ;; Delete duplicate colors. 482 ;; Delete duplicate colors.
483
484 ;; Identify duplicate colors by the name rather than the color
485 ;; value. For example, on MS-Windows, logical colors are added to
486 ;; the list that might have the same value but have different
487 ;; names and meanings. For example, `SystemMenuText' (the color
488 ;; w32 uses for the text in menu entries) and `SystemWindowText'
489 ;; (the default color w32 uses for the text in windows and
490 ;; dialogs) may be the same display color and be adjacent in the
491 ;; list. Detecting duplicates by name insures that both of these
492 ;; colors remain despite identical color values.
483 (let ((l list)) 493 (let ((l list))
484 (while (cdr l) 494 (while (cdr l)
485 (if (facemenu-color-equal (car l) (car (cdr l))) 495 (if (facemenu-color-name-equal (car l) (car (cdr l)))
486 (setcdr l (cdr (cdr l))) 496 (setcdr l (cdr (cdr l)))
487 (setq l (cdr l))))) 497 (setq l (cdr l)))))
488 (when (memq (display-visual-class) '(gray-scale pseudo-color direct-color)) 498 (when (memq (display-visual-class) '(gray-scale pseudo-color direct-color))
@@ -515,6 +525,22 @@ determine the correct answer."
515 (cond ((equal a b) t) 525 (cond ((equal a b) t)
516 ((equal (color-values a) (color-values b))))) 526 ((equal (color-values a) (color-values b)))))
517 527
528(defun facemenu-color-name-equal (a b)
529 "Return t if colors A and B are the same color.
530A and B should be strings naming colors. These names are
531downcased, stripped of spaces and the string `grey' is turned
532into `gray'. This accommodates alternative spellings of colors
533found commonly in the list. It returns nil if the colors differ."
534 (progn
535 (setq a (replace-regexp-in-string "grey" "gray"
536 (replace-regexp-in-string " " ""
537 (downcase a)))
538 b (replace-regexp-in-string "grey" "gray"
539 (replace-regexp-in-string " " ""
540 (downcase b))))
541
542 (equal a b)))
543
518(defun facemenu-add-face (face &optional start end) 544(defun facemenu-add-face (face &optional start end)
519 "Add FACE to text between START and END. 545 "Add FACE to text between START and END.
520If START is nil or START to END is empty, add FACE to next typed character 546If START is nil or START to END is empty, add FACE to next typed character
diff --git a/lisp/files.el b/lisp/files.el
index 99cad16cf5b..ccd30a4de30 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1357,41 +1357,42 @@ that are visiting the various files."
1357 rawfile truename number)))))) 1357 rawfile truename number))))))
1358 1358
1359(defun find-file-noselect-1 (buf filename nowarn rawfile truename number) 1359(defun find-file-noselect-1 (buf filename nowarn rawfile truename number)
1360 (let ((inhibit-read-only t) 1360 (let (error)
1361 error)
1362 (with-current-buffer buf 1361 (with-current-buffer buf
1363 (kill-local-variable 'find-file-literally) 1362 (kill-local-variable 'find-file-literally)
1364 ;; Needed in case we are re-visiting the file with a different 1363 ;; Needed in case we are re-visiting the file with a different
1365 ;; text representation. 1364 ;; text representation.
1366 (kill-local-variable 'buffer-file-coding-system) 1365 (kill-local-variable 'buffer-file-coding-system)
1367 (kill-local-variable 'cursor-type) 1366 (kill-local-variable 'cursor-type)
1368 (erase-buffer) 1367 (let ((inhibit-read-only t))
1369 (and (default-value 'enable-multibyte-characters) 1368 (erase-buffer)
1370 (not rawfile) 1369 (and (default-value 'enable-multibyte-characters)
1371 (set-buffer-multibyte t)) 1370 (not rawfile)
1372 (if rawfile 1371 (set-buffer-multibyte t))
1373 (condition-case () 1372 (if rawfile
1374 (insert-file-contents-literally filename t) 1373 (condition-case ()
1375 (file-error 1374 (insert-file-contents-literally filename t)
1376 (when (and (file-exists-p filename) 1375 (file-error
1377 (not (file-readable-p filename))) 1376 (when (and (file-exists-p filename)
1378 (kill-buffer buf) 1377 (not (file-readable-p filename)))
1379 (signal 'file-error (list "File is not readable" 1378 (kill-buffer buf)
1380 filename))) 1379 (signal 'file-error (list "File is not readable"
1381 ;; Unconditionally set error 1380 filename)))
1382 (setq error t))) 1381 ;; Unconditionally set error
1383 (condition-case ()
1384 (insert-file-contents filename t)
1385 (file-error
1386 (when (and (file-exists-p filename)
1387 (not (file-readable-p filename)))
1388 (kill-buffer buf)
1389 (signal 'file-error (list "File is not readable"
1390 filename)))
1391 ;; Run find-file-not-found-hooks until one returns non-nil.
1392 (or (run-hook-with-args-until-success 'find-file-not-found-functions)
1393 ;; If they fail too, set error.
1394 (setq error t))))) 1382 (setq error t)))))
1383 (condition-case ()
1384 (let ((inhibit-read-only t))
1385 (insert-file-contents filename t))
1386 (file-error
1387 (when (and (file-exists-p filename)
1388 (not (file-readable-p filename)))
1389 (kill-buffer buf)
1390 (signal 'file-error (list "File is not readable"
1391 filename)))
1392 ;; Run find-file-not-found-hooks until one returns non-nil.
1393 (or (run-hook-with-args-until-success 'find-file-not-found-functions)
1394 ;; If they fail too, set error.
1395 (setq error t))))
1395 ;; Record the file's truename, and maybe use that as visited name. 1396 ;; Record the file's truename, and maybe use that as visited name.
1396 (if (equal filename buffer-file-name) 1397 (if (equal filename buffer-file-name)
1397 (setq buffer-file-truename truename) 1398 (setq buffer-file-truename truename)
@@ -4486,10 +4487,12 @@ With prefix arg, silently save all file-visiting buffers, then kill."
4486 (directory-file-name . nil) 4487 (directory-file-name . nil)
4487 (file-name-sans-versions . nil) 4488 (file-name-sans-versions . nil)
4488 ;; `identity' means just return the first arg 4489 ;; `identity' means just return the first arg
4489 ;; as stripped of its quoting. 4490 ;; not stripped of its quoting.
4490 (substitute-in-file-name . identity) 4491 (substitute-in-file-name identity)
4491 (file-name-completion 1) 4492 (file-name-completion 1)
4492 (file-name-all-completions 1) 4493 (file-name-all-completions 1)
4494 ;; t means add "/:" to the result.
4495 (file-truename t 0)
4493 (rename-file 0 1) 4496 (rename-file 0 1)
4494 (copy-file 0 1) 4497 (copy-file 0 1)
4495 (make-symbolic-link 0 1) 4498 (make-symbolic-link 0 1)
@@ -4497,9 +4500,12 @@ With prefix arg, silently save all file-visiting buffers, then kill."
4497 ;; For all other operations, treat the first argument only 4500 ;; For all other operations, treat the first argument only
4498 ;; as the file name. 4501 ;; as the file name.
4499 '(nil 0)))) 4502 '(nil 0))))
4503 method
4500 ;; Copy ARGUMENTS so we can replace elements in it. 4504 ;; Copy ARGUMENTS so we can replace elements in it.
4501 (arguments (copy-sequence arguments))) 4505 (arguments (copy-sequence arguments)))
4502 ;; Strip off the /: from the file names that have this handler. 4506 (if (symbolp (car file-arg-indices))
4507 (setq method (pop file-arg-indices)))
4508 ;; Strip off the /: from the file names that have it.
4503 (save-match-data 4509 (save-match-data
4504 (while (consp file-arg-indices) 4510 (while (consp file-arg-indices)
4505 (let ((pair (nthcdr (car file-arg-indices) arguments))) 4511 (let ((pair (nthcdr (car file-arg-indices) arguments)))
@@ -4510,9 +4516,12 @@ With prefix arg, silently save all file-visiting buffers, then kill."
4510 "/" 4516 "/"
4511 (substring (car pair) 2))))) 4517 (substring (car pair) 2)))))
4512 (setq file-arg-indices (cdr file-arg-indices)))) 4518 (setq file-arg-indices (cdr file-arg-indices))))
4513 (if (eq file-arg-indices 'identity) 4519 (cond ((eq method 'identity)
4514 (car arguments) 4520 (car arguments))
4515 (apply operation arguments)))) 4521 (method
4522 (concat "/:" (apply operation arguments)))
4523 (t
4524 (apply operation arguments)))))
4516 4525
4517(define-key ctl-x-map "\C-f" 'find-file) 4526(define-key ctl-x-map "\C-f" 'find-file)
4518(define-key ctl-x-map "\C-r" 'find-file-read-only) 4527(define-key ctl-x-map "\C-r" 'find-file-read-only)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 68df8d0941e..78c9f15f912 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -14,6 +14,10 @@
14 14
15 * nnimap.el (nnimap-demule): Avoid string-as-multibyte. 15 * nnimap.el (nnimap-demule): Avoid string-as-multibyte.
16 16
172004-04-21 Richard M. Stallman <rms@gnu.org>
18
19 * mailcap.el (mailcap-mime-data): Mark as risky.
20
172004-03-27 Juanma Barranquero <lektu@terra.es> 212004-03-27 Juanma Barranquero <lektu@terra.es>
18 22
19 * gnus-srvr.el (gnus-server-prepare): Remove spurious call to `cdr'. 23 * gnus-srvr.el (gnus-server-prepare): Remove spurious call to `cdr'.
diff --git a/lisp/gs.el b/lisp/gs.el
index f160dca197a..284b18251ec 100644
--- a/lisp/gs.el
+++ b/lisp/gs.el
@@ -39,12 +39,14 @@
39(defvar gs-options 39(defvar gs-options
40 '("-q" 40 '("-q"
41 ;"-dNOPAUSE" 41 ;"-dNOPAUSE"
42 "-dSAFER"
42 "-dBATCH" 43 "-dBATCH"
43 "-sDEVICE=<device>" 44 "-sDEVICE=<device>"
44 "<file>") 45 "<file>")
45 "List of command line arguments to pass to Ghostscript. 46 "List of command line arguments to pass to Ghostscript.
46Arguments may contain place-holders `<file>' for the name of the 47Arguments may contain place-holders `<file>' for the name of the
47input file, and `<device>' for the device to use.") 48input file, and `<device>' for the device to use.")
49(put 'gs-options 'risky-local-variable t)
48 50
49(defun gs-options (device file) 51(defun gs-options (device file)
50 "Return a list of command line options with place-holders replaced. 52 "Return a list of command line options with place-holders replaced.
@@ -55,7 +57,6 @@ FILE is the value to substitute for the place-holder `<file>'."
55 option (replace-regexp-in-string "<file>" file option))) 57 option (replace-regexp-in-string "<file>" file option)))
56 gs-options)) 58 gs-options))
57 59
58
59;; The GHOSTVIEW property (taken from gv 3.5.8). 60;; The GHOSTVIEW property (taken from gv 3.5.8).
60;; 61;;
61;; Type: 62;; Type:
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index e0692119a21..e7e09a431bd 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -181,14 +181,14 @@ ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"."
181 (unless (stringp docstring) (setq docstring "Not documented")) 181 (unless (stringp docstring) (setq docstring "Not documented"))
182 (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring) (eq arglist t)) 182 (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" docstring) (eq arglist t))
183 docstring 183 docstring
184 (format "%s%s%S" docstring 184 (concat docstring
185 (if (string-match "\n?\n\\'" docstring) 185 (if (string-match "\n?\n\\'" docstring)
186 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "") 186 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "")
187 "\n\n") 187 "\n\n")
188 (if (and (stringp arglist) 188 (if (and (stringp arglist)
189 (string-match "\\`([^ ]+\\(.*\\))\\'" arglist)) 189 (string-match "\\`([^ ]+\\(.*\\))\\'" arglist))
190 (concat "(fn" (match-string 1 arglist) ")") 190 (concat "(fn" (match-string 1 arglist) ")")
191 (help-make-usage 'fn arglist))))) 191 (format "%S" (help-make-usage 'fn arglist))))))
192 192
193(defun help-function-arglist (def) 193(defun help-function-arglist (def)
194 ;; Handle symbols aliased to other symbols. 194 ;; Handle symbols aliased to other symbols.
@@ -275,6 +275,7 @@ else ARG is returned in uppercase normal."
275 (next (not (or args (looking-at "\\[")))) 275 (next (not (or args (looking-at "\\["))))
276 (opt nil)) 276 (opt nil))
277 ;; Make a list of all arguments 277 ;; Make a list of all arguments
278 (skip-chars-forward "^ ")
278 (while next 279 (while next
279 (or opt (not (looking-at " &")) (setq opt t)) 280 (or opt (not (looking-at " &")) (setq opt t))
280 (if (not (re-search-forward " \\([\\[(]*\\)\\([^] &)\.]+\\)" nil t)) 281 (if (not (re-search-forward " \\([\\[(]*\\)\\([^] &)\.]+\\)" nil t))
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index ebf2a3af27d..809c457c6e1 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -657,7 +657,7 @@
657(modify-category-entry (make-char 'korean-ksc5601 43) ?K) 657(modify-category-entry (make-char 'korean-ksc5601 43) ?K)
658(modify-category-entry (make-char 'korean-ksc5601 44) ?Y) 658(modify-category-entry (make-char 'korean-ksc5601 44) ?Y)
659 659
660(let ((parens "$(C!2!3!4!5!6!7!8!9!:!;!<!=(B" ) 660(let ((parens "$(C!2!3!4!5!6!7!8!9!:!;!<!=#(#)#[#]#{#}(B" )
661 open close) 661 open close)
662 (dotimes (i (/ (length parens) 2)) 662 (dotimes (i (/ (length parens) 2))
663 (setq open (aref parens (* i 2)) 663 (setq open (aref parens (* i 2))
diff --git a/lisp/locate.el b/lisp/locate.el
index eb8074c9f6c..e61ec87d4e4 100644
--- a/lisp/locate.el
+++ b/lisp/locate.el
@@ -160,7 +160,7 @@
160 :group 'locate) 160 :group 'locate)
161 161
162(defcustom locate-prompt-for-command nil 162(defcustom locate-prompt-for-command nil
163 "If non-nil, the default behavior of the locate command is to prompt for a command to run. 163 "If non-nil, the locate command prompts for a command to run.
164Otherwise, that behavior is invoked via a prefix argument." 164Otherwise, that behavior is invoked via a prefix argument."
165 :group 'locate 165 :group 'locate
166 :type 'boolean 166 :type 'boolean
@@ -329,7 +329,11 @@ shown; this is often useful to constrain a big search."
329;; Default directory is set to "/" so that dired commands, which 329;; Default directory is set to "/" so that dired commands, which
330;; expect to be in a tree, will work properly 330;; expect to be in a tree, will work properly
331(defun locate-mode () 331(defun locate-mode ()
332 "Major mode for the `*Locate*' buffer made by \\[locate]." 332 "Major mode for the `*Locate*' buffer made by \\[locate].
333In that buffer, you can use almost all the usual dired bindings.
334\\[locate-find-directory] visits the directory of the file on the current line.
335
336\\{locate-mode-map}"
333 (kill-all-local-variables) 337 (kill-all-local-variables)
334 ;; Avoid clobbering this variables 338 ;; Avoid clobbering this variables
335 (make-local-variable 'dired-subdir-alist) 339 (make-local-variable 'dired-subdir-alist)
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index abc8db6d2c3..f7688e24069 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1466,8 +1466,8 @@ The standard casing rules will no longer apply to this word."
1466 ;; If the word is already in the list, even with a different casing 1466 ;; If the word is already in the list, even with a different casing
1467 ;; we simply want to replace it. 1467 ;; we simply want to replace it.
1468 (if (and (not (equal ada-case-exception '())) 1468 (if (and (not (equal ada-case-exception '()))
1469 (assoc-ignore-case word ada-case-exception)) 1469 (assoc-string word ada-case-exception t))
1470 (setcar (assoc-ignore-case word ada-case-exception) word) 1470 (setcar (assoc-string word ada-case-exception t) word)
1471 (add-to-list 'ada-case-exception (cons word t)) 1471 (add-to-list 'ada-case-exception (cons word t))
1472 ) 1472 )
1473 1473
@@ -1519,8 +1519,8 @@ word itself has a special casing."
1519 ;; If the word is already in the list, even with a different casing 1519 ;; If the word is already in the list, even with a different casing
1520 ;; we simply want to replace it. 1520 ;; we simply want to replace it.
1521 (if (and (not (equal ada-case-exception-substring '())) 1521 (if (and (not (equal ada-case-exception-substring '()))
1522 (assoc-ignore-case word ada-case-exception-substring)) 1522 (assoc-string word ada-case-exception-substring t))
1523 (setcar (assoc-ignore-case word ada-case-exception-substring) word) 1523 (setcar (assoc-string word ada-case-exception-substring t) word)
1524 (add-to-list 'ada-case-exception-substring (cons word t)) 1524 (add-to-list 'ada-case-exception-substring (cons word t))
1525 ) 1525 )
1526 1526
@@ -1548,9 +1548,9 @@ word itself has a special casing."
1548 (if (char-equal (string-to-char word) ?*) 1548 (if (char-equal (string-to-char word) ?*)
1549 (progn 1549 (progn
1550 (setq word (substring word 1)) 1550 (setq word (substring word 1))
1551 (unless (assoc-ignore-case word ada-case-exception-substring) 1551 (unless (assoc-string word ada-case-exception-substring t)
1552 (add-to-list 'ada-case-exception-substring (cons word t)))) 1552 (add-to-list 'ada-case-exception-substring (cons word t))))
1553 (unless (assoc-ignore-case word ada-case-exception) 1553 (unless (assoc-string word ada-case-exception t)
1554 (add-to-list 'ada-case-exception (cons word t))))) 1554 (add-to-list 'ada-case-exception (cons word t)))))
1555 1555
1556 (forward-line 1)) 1556 (forward-line 1))
@@ -1618,8 +1618,8 @@ the exceptions defined in `ada-case-exception-file'."
1618 (point))) 1618 (point)))
1619 match) 1619 match)
1620 ;; If we have an exception, replace the word by the correct casing 1620 ;; If we have an exception, replace the word by the correct casing
1621 (if (setq match (assoc-ignore-case (buffer-substring start end) 1621 (if (setq match (assoc-string (buffer-substring start end)
1622 ada-case-exception)) 1622 ada-case-exception t))
1623 1623
1624 (progn 1624 (progn
1625 (delete-region start end) 1625 (delete-region start end)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index ef5d1eba998..184077f6a3a 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1248,7 +1248,11 @@ where they were found."
1248 1248
1249 1249
1250(defun etags-tags-completion-table () 1250(defun etags-tags-completion-table ()
1251 (let ((table (make-vector 511 0))) 1251 (let ((table (make-vector 511 0))
1252 (point-max (/ (float (point-max)) 100.0))
1253 (msg-fmt (format
1254 "Making tags completion table for %s...%%d%%%%"
1255 buffer-file-name)))
1252 (save-excursion 1256 (save-excursion
1253 (goto-char (point-min)) 1257 (goto-char (point-min))
1254 ;; This monster regexp matches an etags tag line. 1258 ;; This monster regexp matches an etags tag line.
@@ -1264,11 +1268,12 @@ where they were found."
1264\\([-a-zA-Z0-9_+*$?:]+\\)[^-a-zA-Z0-9_+*$?:\177]*\\)\177\ 1268\\([-a-zA-Z0-9_+*$?:]+\\)[^-a-zA-Z0-9_+*$?:\177]*\\)\177\
1265\\(\\([^\n\001]+\\)\001\\)?\\([0-9]+\\)?,\\([0-9]+\\)?\n" 1269\\(\\([^\n\001]+\\)\001\\)?\\([0-9]+\\)?,\\([0-9]+\\)?\n"
1266 nil t) 1270 nil t)
1267 (intern (if (match-beginning 5) 1271 (intern (prog1 (if (match-beginning 5)
1268 ;; There is an explicit tag name. 1272 ;; There is an explicit tag name.
1269 (buffer-substring (match-beginning 5) (match-end 5)) 1273 (buffer-substring (match-beginning 5) (match-end 5))
1270 ;; No explicit tag name. Best guess. 1274 ;; No explicit tag name. Best guess.
1271 (buffer-substring (match-beginning 3) (match-end 3))) 1275 (buffer-substring (match-beginning 3) (match-end 3)))
1276 (message msg-fmt (/ (point) point-max)))
1272 table))) 1277 table)))
1273 table)) 1278 table))
1274 1279
@@ -1866,6 +1871,7 @@ directory specification."
1866 (or gotany 1871 (or gotany
1867 (error "File %s not in current tags tables" file))))) 1872 (error "File %s not in current tags tables" file)))))
1868 (with-current-buffer "*Tags List*" 1873 (with-current-buffer "*Tags List*"
1874 (require 'apropos)
1869 (apropos-mode) 1875 (apropos-mode)
1870 (setq buffer-read-only t))) 1876 (setq buffer-read-only t)))
1871 1877
@@ -1884,6 +1890,7 @@ directory specification."
1884 (funcall tags-apropos-function regexp)))) 1890 (funcall tags-apropos-function regexp))))
1885 (etags-tags-apropos-additional regexp)) 1891 (etags-tags-apropos-additional regexp))
1886 (with-current-buffer "*Tags List*" 1892 (with-current-buffer "*Tags List*"
1893 (require 'apropos)
1887 (apropos-mode) 1894 (apropos-mode)
1888 ;; apropos-mode is derived from fundamental-mode and it kills 1895 ;; apropos-mode is derived from fundamental-mode and it kills
1889 ;; all local variables. 1896 ;; all local variables.
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index a600939ef71..ae0c43c2730 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -1823,8 +1823,8 @@ Change the default directory for the process buffer to concur."
1823 'hide 'wait) 1823 'hide 'wait)
1824 ;; If we don't know anything about the class, update shell routines 1824 ;; If we don't know anything about the class, update shell routines
1825 (if (and idlwave-shell-get-object-class 1825 (if (and idlwave-shell-get-object-class
1826 (not (assoc-ignore-case idlwave-shell-get-object-class 1826 (not (assoc-string idlwave-shell-get-object-class
1827 (idlwave-class-alist)))) 1827 (idlwave-class-alist) t)))
1828 (idlwave-shell-maybe-update-routine-info)) 1828 (idlwave-shell-maybe-update-routine-info))
1829 idlwave-shell-get-object-class))) 1829 idlwave-shell-get-object-class)))
1830 1830
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 5c95b138720..99e693abb94 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1502,7 +1502,7 @@ FUN will not be called for @String entries."
1502 (save-excursion 1502 (save-excursion
1503 (if (or (and (not bibtex-sort-ignore-string-entries) 1503 (if (or (and (not bibtex-sort-ignore-string-entries)
1504 (string-equal "string" (downcase entry-type))) 1504 (string-equal "string" (downcase entry-type)))
1505 (assoc-ignore-case entry-type bibtex-entry-field-alist)) 1505 (assoc-string entry-type bibtex-entry-field-alist t))
1506 (funcall fun key beg end))) 1506 (funcall fun key beg end)))
1507 (goto-char end))))) 1507 (goto-char end)))))
1508 1508
@@ -1771,9 +1771,10 @@ Formats current entry according to variable `bibtex-entry-format'."
1771 (re-search-forward bibtex-entry-type) 1771 (re-search-forward bibtex-entry-type)
1772 (let ((beg-type (1+ (match-beginning 0))) 1772 (let ((beg-type (1+ (match-beginning 0)))
1773 (end-type (match-end 0))) 1773 (end-type (match-end 0)))
1774 (setq entry-list (assoc-ignore-case (buffer-substring-no-properties 1774 (setq entry-list (assoc-string (buffer-substring-no-properties
1775 beg-type end-type) 1775 beg-type end-type)
1776 bibtex-entry-field-alist)) 1776 bibtex-entry-field-alist
1777 t))
1777 1778
1778 ;; unify case of entry name 1779 ;; unify case of entry name
1779 (when (memq 'unify-case format) 1780 (when (memq 'unify-case format)
@@ -1846,8 +1847,8 @@ Formats current entry according to variable `bibtex-entry-format'."
1846 (if (memq 'opts-or-alts format) 1847 (if (memq 'opts-or-alts format)
1847 (cond ((and empty-field 1848 (cond ((and empty-field
1848 (or opt-alt 1849 (or opt-alt
1849 (let ((field (assoc-ignore-case 1850 (let ((field (assoc-string
1850 field-name req-field-list))) 1851 field-name req-field-list t)))
1851 (or (not field) ; OPT field 1852 (or (not field) ; OPT field
1852 (nth 3 field))))) ; ALT field 1853 (nth 3 field))))) ; ALT field
1853 ;; Either it is an empty ALT field. Then we have checked 1854 ;; Either it is an empty ALT field. Then we have checked
@@ -1918,15 +1919,17 @@ Formats current entry according to variable `bibtex-entry-format'."
1918 ;; if empty field, complain 1919 ;; if empty field, complain
1919 (if (and empty-field 1920 (if (and empty-field
1920 (memq 'required-fields format) 1921 (memq 'required-fields format)
1921 (assoc-ignore-case field-name req-field-list)) 1922 (assoc-string field-name req-field-list t))
1922 (error "Mandatory field `%s' is empty" field-name)) 1923 (error "Mandatory field `%s' is empty" field-name))
1923 1924
1924 ;; unify case of field name 1925 ;; unify case of field name
1925 (if (memq 'unify-case format) 1926 (if (memq 'unify-case format)
1926 (let ((fname (car (assoc-ignore-case 1927 (let ((fname (car (assoc-string
1927 field-name (append (nth 0 (nth 1 entry-list)) 1928 field-name
1928 (nth 1 (nth 1 entry-list)) 1929 (append (nth 0 (nth 1 entry-list))
1929 bibtex-user-optional-fields))))) 1930 (nth 1 (nth 1 entry-list))
1931 bibtex-user-optional-fields)
1932 t))))
1930 (if fname 1933 (if fname
1931 (progn 1934 (progn
1932 (delete-region beg-name end-name) 1935 (delete-region beg-name end-name)
@@ -2258,8 +2261,8 @@ Return alist of keys if parsing was completed, `aborted' otherwise."
2258 ;; This is a crossref. 2261 ;; This is a crossref.
2259 (buffer-substring-no-properties 2262 (buffer-substring-no-properties
2260 (1+ (match-beginning 3)) (1- (match-end 3)))) 2263 (1+ (match-beginning 3)) (1- (match-end 3))))
2261 ((assoc-ignore-case (bibtex-type-in-head) 2264 ((assoc-string (bibtex-type-in-head)
2262 bibtex-entry-field-alist) 2265 bibtex-entry-field-alist t)
2263 ;; This is an entry. 2266 ;; This is an entry.
2264 (match-string-no-properties bibtex-key-in-head))))) 2267 (match-string-no-properties bibtex-key-in-head)))))
2265 (if (and (stringp key) 2268 (if (and (stringp key)
@@ -2314,7 +2317,7 @@ Return alist of strings if parsing was completed, `aborted' otherwise."
2314 ;; user has aborted by typing a key --> return `aborted' 2317 ;; user has aborted by typing a key --> return `aborted'
2315 (throw 'userkey 'aborted)) 2318 (throw 'userkey 'aborted))
2316 (setq key (bibtex-reference-key-in-string bounds)) 2319 (setq key (bibtex-reference-key-in-string bounds))
2317 (if (not (assoc-ignore-case key strings)) 2320 (if (not (assoc-string key strings t))
2318 (push (cons key (bibtex-text-in-string bounds t)) 2321 (push (cons key (bibtex-text-in-string bounds t))
2319 strings)) 2322 strings))
2320 (goto-char (bibtex-end-of-text-in-string bounds))) 2323 (goto-char (bibtex-end-of-text-in-string bounds)))
@@ -2654,7 +2657,7 @@ non-nil.
2654More specifically, the return value is a cons pair (REQUIRED . OPTIONAL), 2657More specifically, the return value is a cons pair (REQUIRED . OPTIONAL),
2655where REQUIRED and OPTIONAL are lists of the required and optional field 2658where REQUIRED and OPTIONAL are lists of the required and optional field
2656names for ENTRY-TYPE according to `bibtex-entry-field-alist'." 2659names for ENTRY-TYPE according to `bibtex-entry-field-alist'."
2657 (let ((e (assoc-ignore-case entry-type bibtex-entry-field-alist)) 2660 (let ((e (assoc-string entry-type bibtex-entry-field-alist t))
2658 required optional) 2661 required optional)
2659 (unless e 2662 (unless e
2660 (error "Bibtex entry type %s not defined" entry-type)) 2663 (error "Bibtex entry type %s not defined" entry-type))
@@ -2721,10 +2724,10 @@ according to `bibtex-entry-field-alist', but are not yet present."
2721 (substring (cdr (assoc "=type=" fields-alist)) 2724 (substring (cdr (assoc "=type=" fields-alist))
2722 1)))) ; don't want @ 2725 1)))) ; don't want @
2723 (dolist (field (car field-list)) 2726 (dolist (field (car field-list))
2724 (unless (assoc-ignore-case (car field) fields-alist) 2727 (unless (assoc-string (car field) fields-alist t)
2725 (bibtex-make-field field))) 2728 (bibtex-make-field field)))
2726 (dolist (field (cdr field-list)) 2729 (dolist (field (cdr field-list))
2727 (unless (assoc-ignore-case (car field) fields-alist) 2730 (unless (assoc-string (car field) fields-alist t)
2728 (bibtex-make-optional-field field)))))) 2731 (bibtex-make-optional-field field))))))
2729 2732
2730(defun bibtex-parse-entry () 2733(defun bibtex-parse-entry ()
@@ -2792,7 +2795,7 @@ Move point to the end of the last field."
2792 (let* ((name (buffer-substring 2795 (let* ((name (buffer-substring
2793 (if (looking-at "ALT\\|OPT") (match-end 0) (point)) 2796 (if (looking-at "ALT\\|OPT") (match-end 0) (point))
2794 (bibtex-end-of-name-in-field bounds))) 2797 (bibtex-end-of-name-in-field bounds)))
2795 (text (assoc-ignore-case name other))) 2798 (text (assoc-string name other t)))
2796 (goto-char (bibtex-start-of-text-in-field bounds)) 2799 (goto-char (bibtex-start-of-text-in-field bounds))
2797 (if (not (and (looking-at bibtex-empty-field-re) text)) 2800 (if (not (and (looking-at bibtex-empty-field-re) text))
2798 (goto-char (bibtex-end-of-field bounds)) 2801 (goto-char (bibtex-end-of-field bounds))
@@ -2825,9 +2828,10 @@ Move point to the end of the last field."
2825 (field-list (bibtex-field-list (progn (re-search-backward 2828 (field-list (bibtex-field-list (progn (re-search-backward
2826 bibtex-entry-maybe-empty-head nil t) 2829 bibtex-entry-maybe-empty-head nil t)
2827 (bibtex-type-in-head)))) 2830 (bibtex-type-in-head))))
2828 (comment (assoc-ignore-case field-name 2831 (comment (assoc-string field-name
2829 (append (car field-list) 2832 (append (car field-list)
2830 (cdr field-list))))) 2833 (cdr field-list))
2834 t)))
2831 (if comment 2835 (if comment
2832 (message (nth 1 comment)) 2836 (message (nth 1 comment))
2833 (message "No comment available"))))) 2837 (message "No comment available")))))
@@ -3235,8 +3239,8 @@ Returns t if test was successful, nil otherwise."
3235 (let* ((entry-list (progn 3239 (let* ((entry-list (progn
3236 (goto-char beg) 3240 (goto-char beg)
3237 (bibtex-search-entry nil end) 3241 (bibtex-search-entry nil end)
3238 (assoc-ignore-case (bibtex-type-in-head) 3242 (assoc-string (bibtex-type-in-head)
3239 bibtex-entry-field-alist))) 3243 bibtex-entry-field-alist t)))
3240 (req (copy-sequence (elt (elt entry-list 1) 0))) 3244 (req (copy-sequence (elt (elt entry-list 1) 0)))
3241 (creq (copy-sequence (elt (elt entry-list 2) 0))) 3245 (creq (copy-sequence (elt (elt entry-list 2) 0)))
3242 crossref-there bounds) 3246 crossref-there bounds)
@@ -3252,8 +3256,8 @@ Returns t if test was successful, nil otherwise."
3252 (push (list (bibtex-current-line) 3256 (push (list (bibtex-current-line)
3253 "Questionable month field") 3257 "Questionable month field")
3254 error-list)) 3258 error-list))
3255 (setq req (delete (assoc-ignore-case field-name req) req) 3259 (setq req (delete (assoc-string field-name req t) req)
3256 creq (delete (assoc-ignore-case field-name creq) creq)) 3260 creq (delete (assoc-string field-name creq t) creq))
3257 (if (equal field-name "crossref") 3261 (if (equal field-name "crossref")
3258 (setq crossref-there t)))) 3262 (setq crossref-there t))))
3259 (if crossref-there 3263 (if crossref-there
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 5d21fda6a9a..aff42866349 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -3,6 +3,7 @@
3;; Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
4 4
5;; Author: Manuel Serrano <Manuel.Serrano@unice.fr> 5;; Author: Manuel Serrano <Manuel.Serrano@unice.fr>
6;; Maintainer: FSF
6;; Keywords: convenience 7;; Keywords: convenience
7 8
8;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el
index a86be8646c9..1b2628760e1 100644
--- a/lisp/textmodes/paragraphs.el
+++ b/lisp/textmodes/paragraphs.el
@@ -171,7 +171,7 @@ followed by two spaces, unless it's inside some sort of quotes or
171parenthesis. See Info node `Sentences'." 171parenthesis. See Info node `Sentences'."
172 (or sentence-end 172 (or sentence-end
173 (concat (if sentence-end-without-period "\\w \\|") 173 (concat (if sentence-end-without-period "\\w \\|")
174 "\\([.?!][]\"')}]*" 174 "\\([.?!][]\"'\xd0c9)}]*"
175 (if sentence-end-double-space 175 (if sentence-end-double-space
176 "\\($\\| $\\|\t\\| \\)" "\\($\\|[\t ]\\)") 176 "\\($\\| $\\|\t\\| \\)" "\\($\\|[\t ]\\)")
177 "\\|[" sentence-end-without-space "]+\\)" 177 "\\|[" sentence-end-without-space "]+\\)"