aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog44
-rw-r--r--lisp/erc/ChangeLog2
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-group.el7
-rw-r--r--lisp/ido.el85
-rw-r--r--lisp/mh-e/ChangeLog7
-rw-r--r--lisp/mh-e/mh-e.el134
-rw-r--r--lisp/pcomplete.el4
-rw-r--r--lisp/pcvs-util.el12
-rw-r--r--lisp/shell.el6
-rw-r--r--lisp/speedbar.el2
11 files changed, 215 insertions, 93 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 48ead8f51ff..52486191495 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,40 @@
12006-04-02 Drew Adams <drew.adams@oracle.com> (tiny change)
2
3 * speedbar.el (speedbar-after-create-hook): Doc fix.
4
52006-04-02 Michael Ernst <mernst@alum.mit.edu>
6
7 * shell.el (shell-directory-tracker)
8 (shell-dynamic-complete-command): Doc fixes.
9
102006-04-01 Matt Hodges <MPHodges@member.fsf.org>
11
12 * pcomplete.el (pcomplete-show-completions): Recognize TAB on text
13 terminals.
14
152006-04-01 Kim F. Storm <storm@cua.dk>
16
17 * ido.el (ido-unc-hosts-cache): New defvar.
18 (ido-unc-hosts): If value of defcustom is a function, call it to
19 get list of UNC hosts. Add function-item choices to specify
20 ido-unc-hosts-net-view or user function.
21 (ido-ignore-unc-host-regexps): New defcustom.
22 (ido-unc-hosts-net-view, ido-unc-hosts): New functions.
23 (ido-is-unc-root, ido-is-unc-host, ido-file-name-all-completions)
24 (ido-exhibit): Call ido-unc-hosts to get list of UNC hosts.
25
262006-03-13 Stefan Monnier <monnier@iro.umontreal.ca>
27
28 * pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than
29 wwidth.
30
312006-03-31 Juanma Barranquero <lekktu@gmail.com>
32
33 * ido.el (ido-cache-unc-host-shares-time, ido-report-no-match)
34 (ido-max-work-file-list, ido-switch-buffer)
35 (ido-read-file-name-as-directory-commands):
36 Fix typos in docstrings.
37
12006-03-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 382006-03-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 39
3 * term/mac-win.el (mac-system-coding-system): Define and use after 40 * term/mac-win.el (mac-system-coding-system): Define and use after
@@ -433,11 +470,6 @@
433 * tree-widget.el (tree-widget-themes-load-path) 470 * tree-widget.el (tree-widget-themes-load-path)
434 (tree-widget-themes-directory, tree-widget-theme): Doc fix. 471 (tree-widget-themes-directory, tree-widget-theme): Doc fix.
435 472
4362006-03-13 Stefan Monnier <monnier@iro.umontreal.ca>
437
438 * pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than
439 wwidth.
440
4412006-03-13 Ryan Yeske <rcyeske@gmail.com> 4732006-03-13 Ryan Yeske <rcyeske@gmail.com>
442 474
443 * net/rcirc.el (rcirc) <defgroup>: Add link to manual. 475 * net/rcirc.el (rcirc) <defgroup>: Add link to manual.
@@ -15172,7 +15204,7 @@
15172 * add-log.el (change-log-font-lock-keywords): Make the regexp for 15204 * add-log.el (change-log-font-lock-keywords): Make the regexp for
15173 date lines stricter. 15205 date lines stricter.
15174 15206
151752005-06-10 Zhang Wei <id.brep@gmail.com> (tiny change) 152072005-06-10 Zhang Wei <id.brep@gmail.com>
15176 15208
15177 * term/x-win.el (x-clipboard-yank): Use x-selection-value instead 15209 * term/x-win.el (x-clipboard-yank): Use x-selection-value instead
15178 of x-get-selection. 15210 of x-get-selection.
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 5781a442c08..67799d73049 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -197,7 +197,7 @@
197 197
198 * erc.el (erc-version-string): Release ERC 5.1.1. 198 * erc.el (erc-version-string): Release ERC 5.1.1.
199 199
2002006-02-03 Zhang Wei <id.brep@gmail.com> (tiny change) 2002006-02-03 Zhang Wei <id.brep@gmail.com>
201 201
202 * erc.el (erc-version-string): Don't hard-code Emacs version. 202 * erc.el (erc-version-string): Don't hard-code Emacs version.
203 (erc-version): Use emacs-version. 203 (erc-version): Use emacs-version.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 71940cac0db..d39ab0a1455 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12006-03-31 Reiner Steib <Reiner.Steib@gmx.de>
2
3 * gnus-group.el (gnus-group-update-tool-bar): Add :initialize and
4 :set.
5
12006-03-23 Katsumi Yamaoka <yamaoka@jpl.org> 62006-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
2 7
3 * mml.el (mml-insert-mime): Ignore cached contents of 8 * mml.el (mml-insert-mime): Ignore cached contents of
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 0ed72433115..24e4df14712 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1389,6 +1389,13 @@ if it is a string, only list groups matching REGEXP."
1389 "Force updating the group buffer tool bar." 1389 "Force updating the group buffer tool bar."
1390 :group 'gnus-group 1390 :group 'gnus-group
1391 :version "22.1" 1391 :version "22.1"
1392 :initialize 'custom-initialize-default
1393 :set (lambda (symbol value)
1394 (set-default symbol value)
1395 (when (gnus-alive-p)
1396 (with-current-buffer gnus-group-buffer
1397 ;; FIXME: Is there a better way to redraw the group buffer?
1398 (gnus-group-get-new-news 0))))
1392 :type 'boolean) 1399 :type 'boolean)
1393 1400
1394(defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level 1401(defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level
diff --git a/lisp/ido.el b/lisp/ido.el
index 6bc2f45709f..e4ec2be700d 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -630,22 +630,41 @@ equivalent function, e.g. `find-file' rather than `ido-find-file'."
630 :type '(repeat regexp) 630 :type '(repeat regexp)
631 :group 'ido) 631 :group 'ido)
632 632
633(defvar ido-unc-hosts-cache t
634 "Cached value from ido-unc-hosts function.")
635
633(defcustom ido-unc-hosts nil 636(defcustom ido-unc-hosts nil
634 "*List of known UNC host names to complete after initial //." 637 "*List of known UNC host names to complete after initial //.
635 :type '(repeat string) 638If value is a function, that function is called to search network for
639hosts on first use of UNC path."
640 :type '(choice (repeat :tag "List of UNC host names" string)
641 (function-item :tag "Use `NET VIEW'"
642 :value ido-unc-hosts-net-view)
643 (function :tag "Your own function"))
644 :set #'(lambda (symbol value)
645 (set symbol value)
646 (setq ido-unc-hosts-cache t))
647 :group 'ido)
648
649(defcustom ido-ignore-unc-host-regexps nil
650 "*List of regexps matching UNC hosts to ignore."
651 :type '(repeat regexp)
652 :set #'(lambda (symbol value)
653 (set symbol value)
654 (setq ido-unc-hosts-cache t))
636 :group 'ido) 655 :group 'ido)
637 656
638(defcustom ido-cache-unc-host-shares-time 8.0 657(defcustom ido-cache-unc-host-shares-time 8.0
639 "*Maximum time to cache shares of an UNC host (in hours). 658 "*Maximum time to cache shares of an UNC host (in hours).
640Use C-l in prompt to refresh list. 659Use C-l in prompt to refresh list.
641If zero, unc host shares are not cached." 660If zero, UNC host shares are not cached."
642 :type 'number 661 :type 'number
643 :group 'ido) 662 :group 'ido)
644 663
645(defcustom ido-max-work-file-list 10 664(defcustom ido-max-work-file-list 10
646 "*Maximum number of names of recently opened files to record. 665 "*Maximum number of names of recently opened files to record.
647This is the list the file names (sans directory) which have most recently 666This is the list the file names (sans directory) which have most recently
648been opened. See `ido-work-file-list' and `ido-save-directory-list-file'." 667been opened. See `ido-work-file-list' and `ido-save-directory-list-file'."
649 :type 'integer 668 :type 'integer
650 :group 'ido) 669 :group 'ido)
651 670
@@ -891,7 +910,7 @@ Must be set before enabling ido mode."
891 :group 'ido) 910 :group 'ido)
892 911
893(defcustom ido-read-file-name-as-directory-commands '() 912(defcustom ido-read-file-name-as-directory-commands '()
894 "List of commands which uses read-file-name to read a directory name. 913 "List of commands which uses `read-file-name' to read a directory name.
895When `ido-everywhere' is non-nil, the commands in this list will read 914When `ido-everywhere' is non-nil, the commands in this list will read
896the directory using `ido-read-directory-name'." 915the directory using `ido-read-directory-name'."
897 :type '(repeat symbol) 916 :type '(repeat symbol)
@@ -988,7 +1007,7 @@ Copied from `icomplete-eoinput'.")
988 "List of files currently matching `ido-text'.") 1007 "List of files currently matching `ido-text'.")
989 1008
990(defvar ido-report-no-match t 1009(defvar ido-report-no-match t
991 "Report [No Match] when no completions matches ido-text.") 1010 "Report [No Match] when no completions matches `ido-text'.")
992 1011
993(defvar ido-exit nil 1012(defvar ido-exit nil
994 "Flag to monitor how `ido-find-file' exits. 1013 "Flag to monitor how `ido-find-file' exits.
@@ -1111,18 +1130,58 @@ it doesn't interfere with other minibuffer usage.")
1111 (pop-to-buffer b t t) 1130 (pop-to-buffer b t t)
1112 (setq truncate-lines t))))) 1131 (setq truncate-lines t)))))
1113 1132
1133(defun ido-unc-hosts (&optional query)
1134 "Return list of UNC host names."
1135 (cond
1136 ((listp ido-unc-hosts)
1137 ido-unc-hosts) ;; static list or nil
1138 ((listp ido-unc-hosts-cache)
1139 ido-unc-hosts-cache) ;; result of net search
1140 ((and query (fboundp ido-unc-hosts))
1141 (message "Searching for UNC hosts...")
1142 (let ((hosts (funcall ido-unc-hosts)) host re-list re)
1143 (setq ido-unc-hosts-cache nil)
1144 (while hosts
1145 (setq host (downcase (car hosts))
1146 hosts (cdr hosts)
1147 re-list ido-ignore-unc-host-regexps)
1148 (while re-list
1149 (setq re (car re-list)
1150 re-list (cdr re-list))
1151 (if (string-match re host)
1152 (setq re-list nil
1153 host nil)))
1154 (if host
1155 (setq ido-unc-hosts-cache (cons host ido-unc-hosts-cache)))))
1156 (message nil)
1157 (setq ido-unc-hosts-cache
1158 (sort ido-unc-hosts-cache #'string<)))
1159 (query
1160 (setq ido-unc-hosts-cache nil))
1161 (t (fboundp ido-unc-hosts))))
1162
1163(defun ido-unc-hosts-net-view ()
1164 "Query network for list of UNC host names using `NET VIEW'."
1165 (let (hosts)
1166 (with-temp-buffer
1167 (shell-command "net view" t)
1168 (goto-char (point-min))
1169 (while (re-search-forward "^\\\\\\\\\\([[:graph:]]+\\)" nil t)
1170 (setq hosts (cons (match-string 1) hosts))))
1171 hosts))
1172
1114(defun ido-is-tramp-root (&optional dir) 1173(defun ido-is-tramp-root (&optional dir)
1115 (and ido-enable-tramp-completion 1174 (and ido-enable-tramp-completion
1116 (string-match "\\`/[^/]+[@:]\\'" 1175 (string-match "\\`/[^/]+[@:]\\'"
1117 (or dir ido-current-directory)))) 1176 (or dir ido-current-directory))))
1118 1177
1119(defun ido-is-unc-root (&optional dir) 1178(defun ido-is-unc-root (&optional dir)
1120 (and ido-unc-hosts 1179 (and (ido-unc-hosts)
1121 (string-equal "//" 1180 (string-equal "//"
1122 (or dir ido-current-directory)))) 1181 (or dir ido-current-directory))))
1123 1182
1124(defun ido-is-unc-host (&optional dir) 1183(defun ido-is-unc-host (&optional dir)
1125 (and ido-unc-hosts 1184 (and (ido-unc-hosts)
1126 (string-match "\\`//[^/]+/\\'" 1185 (string-match "\\`//[^/]+/\\'"
1127 (or dir ido-current-directory)))) 1186 (or dir ido-current-directory))))
1128 1187
@@ -1699,7 +1758,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise."
1699;; the relevant function is called (find-file, write-file, etc). 1758;; the relevant function is called (find-file, write-file, etc).
1700 1759
1701(defun ido-read-internal (item prompt history &optional default require-match initial) 1760(defun ido-read-internal (item prompt history &optional default require-match initial)
1702 "Perform the ido-read-buffer and ido-read-file-name functions. 1761 "Perform the `ido-read-buffer' and `ido-read-file-name' functions.
1703Return the name of a buffer or file selected. 1762Return the name of a buffer or file selected.
1704PROMPT is the prompt to give to the user. 1763PROMPT is the prompt to give to the user.
1705DEFAULT if given is the default directory to start with. 1764DEFAULT if given is the default directory to start with.
@@ -3238,7 +3297,7 @@ for first matching file."
3238 (mapcar 3297 (mapcar
3239 (lambda (host) 3298 (lambda (host)
3240 (if (string-match "/\\'" host) host (concat host "/"))) 3299 (if (string-match "/\\'" host) host (concat host "/")))
3241 ido-unc-hosts)) 3300 (ido-unc-hosts t)))
3242 ((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0) 3301 ((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0)
3243 (stringp dir) (> (length dir) 0) 3302 (stringp dir) (> (length dir) 0)
3244 (ido-may-cache-directory dir)) 3303 (ido-may-cache-directory dir))
@@ -3734,7 +3793,7 @@ default is to show it in the same window, unless it is already visible
3734in another frame. 3793in another frame.
3735 3794
3736As you type in a string, all of the buffers matching the string are 3795As you type in a string, all of the buffers matching the string are
3737displayed if substring-matching is used \(default). Look at 3796displayed if substring-matching is used \(default). Look at
3738`ido-enable-prefix' and `ido-toggle-prefix'. When you have found the 3797`ido-enable-prefix' and `ido-toggle-prefix'. When you have found the
3739buffer you want, it can then be selected. As you type, most keys have 3798buffer you want, it can then be selected. As you type, most keys have
3740their normal keybindings, except for the following: \\<ido-buffer-completion-map> 3799their normal keybindings, except for the following: \\<ido-buffer-completion-map>
@@ -3757,7 +3816,7 @@ in a separate window.
3757\\[ido-toggle-prefix] Toggle between substring and prefix matching. 3816\\[ido-toggle-prefix] Toggle between substring and prefix matching.
3758\\[ido-toggle-case] Toggle case-sensitive searching of buffer names. 3817\\[ido-toggle-case] Toggle case-sensitive searching of buffer names.
3759\\[ido-completion-help] Show list of matching buffers in separate window. 3818\\[ido-completion-help] Show list of matching buffers in separate window.
3760\\[ido-enter-find-file] Drop into ido-find-file. 3819\\[ido-enter-find-file] Drop into `ido-find-file'.
3761\\[ido-kill-buffer-at-head] Kill buffer at head of buffer list. 3820\\[ido-kill-buffer-at-head] Kill buffer at head of buffer list.
3762\\[ido-toggle-ignore] Toggle ignoring buffers listed in `ido-ignore-buffers'." 3821\\[ido-toggle-ignore] Toggle ignoring buffers listed in `ido-ignore-buffers'."
3763 (interactive) 3822 (interactive)
@@ -4026,7 +4085,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
4026 ((and (ido-is-tramp-root) (string-equal contents "/")) 4085 ((and (ido-is-tramp-root) (string-equal contents "/"))
4027 (ido-set-current-directory ido-current-directory contents) 4086 (ido-set-current-directory ido-current-directory contents)
4028 (setq refresh t)) 4087 (setq refresh t))
4029 ((and ido-unc-hosts (string-equal contents "/") 4088 ((and (ido-unc-hosts) (string-equal contents "/")
4030 (let ((ido-enable-tramp-completion nil)) 4089 (let ((ido-enable-tramp-completion nil))
4031 (ido-is-root-directory))) 4090 (ido-is-root-directory)))
4032 (ido-set-current-directory "//") 4091 (ido-set-current-directory "//")
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 64876717392..fa66eaca664 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,10 @@
12006-03-31 Bill Wohler <wohler@newt.com>
2
3 * mh-e.el (mh-strip-package-version): Move before use to avoid
4 compiler error. Make macro, also to avoid compiler error.
5 (mh-defface-compat): Incorporate body into mh-face-data and
6 delete.
7
12006-03-30 Bill Wohler <wohler@newt.com> 82006-03-30 Bill Wohler <wohler@newt.com>
2 9
3 * mh-e.el (mh-defcustom, mh-defface, mh-defgroup): Macros to 10 * mh-e.el (mh-defcustom, mh-defface, mh-defgroup): Macros to
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index ce2db4fb66e..5f1c66e58d8 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -895,6 +895,19 @@ necessary and can actually cause problems."
895 895
896;; Temporary function and data structure used customization. 896;; Temporary function and data structure used customization.
897;; These will be unbound after the options are defined. 897;; These will be unbound after the options are defined.
898(defmacro mh-strip-package-version (args)
899 "Strip :package-version keyword and its value from ARGS.
900In Emacs versions that support the :package-version keyword,
901ARGS is returned unchanged."
902 `(if (boundp 'customize-package-emacs-version-alist)
903 ,args
904 (let (seen)
905 (loop for keyword in ,args
906 if (cond ((eq keyword ':package-version) (setq seen t) nil)
907 (seen (setq seen nil) nil)
908 (t t))
909 collect keyword))))
910
898(defmacro mh-defgroup (symbol members doc &rest args) 911(defmacro mh-defgroup (symbol members doc &rest args)
899 "Declare SYMBOL as a customization group containing MEMBERS. 912 "Declare SYMBOL as a customization group containing MEMBERS.
900See documentation for `defgroup' for a description of the arguments 913See documentation for `defgroup' for a description of the arguments
@@ -925,19 +938,6 @@ keyword, introduced in Emacs 22."
925 `(defface ,face ,spec ,doc ,@(mh-strip-package-version args))) 938 `(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
926(put 'mh-defface 'lisp-indent-function 'defun) 939(put 'mh-defface 'lisp-indent-function 'defun)
927 940
928(defun mh-strip-package-version (args)
929 "Strip :package-version keyword and its value from ARGS.
930In Emacs versions that support the :package-version keyword,
931ARGS is returned unchanged."
932 (if (boundp 'customize-package-emacs-version-alist)
933 args
934 (let (seen)
935 (loop for keyword in args
936 if (cond ((eq keyword ':package-version) (setq seen t) nil)
937 (seen (setq seen nil) nil)
938 (t t))
939 collect keyword))))
940
941 941
942 942
943;;; MH-E Customization 943;;; MH-E Customization
@@ -3115,46 +3115,12 @@ sequence."
3115(if (boundp 'facemenu-unlisted-faces) 3115(if (boundp 'facemenu-unlisted-faces)
3116 (add-to-list 'facemenu-unlisted-faces "^mh-")) 3116 (add-to-list 'facemenu-unlisted-faces "^mh-"))
3117 3117
3118;; Temporary function and data structure used for defining faces. 3118;; To add a new face:
3119;; These will be unbound after the faces are defined. 3119;; 1. Add entry to variable mh-face-data.
3120(defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag) 3120;; 2. Create face using mh-defface (which removes min-color spec and
3121 (>= emacs-major-version 22)) 3121;; :package-version keyword where these are not supported),
3122 "Non-nil means `defface' supports min-colors display requirement.") 3122;; accessing face data with function mh-face-data.
3123 3123;; 3. Add inherit argument to function mh-face-data if applicable.
3124(defun mh-defface-compat (spec)
3125 "Convert SPEC for defface if necessary to run on older platforms.
3126Modifies SPEC in place and returns it. See `defface' for the spec definition.
3127
3128When `mh-min-colors-defined-flag' is nil, this function finds
3129display entries with \"min-colors\" requirements and either
3130removes the \"min-colors\" requirement or strips the display
3131entirely if the display does not support the number of specified
3132colors."
3133 (if mh-min-colors-defined-flag
3134 spec
3135 (let ((cells (mh-display-color-cells))
3136 new-spec)
3137 ;; Remove entries with min-colors, or delete them if we have fewer colors
3138 ;; than they specify.
3139 (loop for entry in (reverse spec) do
3140 (let ((requirement (if (eq (car entry) t)
3141 nil
3142 (assoc 'min-colors (car entry)))))
3143 (if requirement
3144 (when (>= cells (nth 1 requirement))
3145 (setq new-spec (cons (cons (delq requirement (car entry))
3146 (cdr entry))
3147 new-spec)))
3148 (setq new-spec (cons entry new-spec)))))
3149 new-spec)))
3150
3151(require 'cus-face)
3152
3153(defvar mh-inherit-face-flag (assq :inherit custom-face-attributes)
3154 "Non-nil means that the `defface' :inherit keyword is available.
3155The :inherit keyword is available on all supported versions of
3156GNU Emacs and XEmacs from at least 21.5.23 on.")
3157
3158(defvar mh-face-data 3124(defvar mh-face-data
3159 '((mh-folder-followup 3125 '((mh-folder-followup
3160 ((((class color) (background light)) 3126 ((((class color) (background light))
@@ -3297,19 +3263,61 @@ GNU Emacs and XEmacs from at least 21.5.23 on.")
3297 (((class color) (background dark)) 3263 (((class color) (background dark))
3298 (:foreground "red1" :underline t)) 3264 (:foreground "red1" :underline t))
3299 (t 3265 (t
3300 (:underline t)))))) 3266 (:underline t)))))
3267 "MH-E face data.
3268Used by function `mh-face-data' which returns spec that is
3269consumed by `mh-defface'.")
3270
3271(require 'cus-face)
3272
3273(defvar mh-inherit-face-flag (assq :inherit custom-face-attributes)
3274 "Non-nil means that the `defface' :inherit keyword is available.
3275The :inherit keyword is available on all supported versions of
3276GNU Emacs and XEmacs from at least 21.5.23 on.")
3277
3278(defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag)
3279 (>= emacs-major-version 22))
3280 "Non-nil means `defface' supports min-colors display requirement.")
3301 3281
3302(defun mh-face-data (face &optional inherit) 3282(defun mh-face-data (face &optional inherit)
3303 "Return spec for FACE. 3283 "Return spec for FACE.
3304If INHERIT is non-nil and `defface' supports the :inherit 3284See `defface' for the spec definition.
3305keyword, return INHERIT literally; otherwise, return spec for FACE.
3306 3285
3307This isn't a perfect implementation. In the case that 3286If INHERIT is non-nil and `defface' supports the :inherit
3308the :inherit keyword is not supported, any additional attributes 3287keyword, return INHERIT literally; otherwise, return spec for
3309in the inherit parameter are not added to the returned spec." 3288FACE from the variable `mh-face-data'. This isn't a perfect
3310 (if (and inherit mh-inherit-face-flag) 3289implementation. In the case that the :inherit keyword is not
3311 inherit 3290supported, any additional attributes in the inherit parameter are
3312 (mh-defface-compat (cadr (assoc face mh-face-data))))) 3291not added to the returned spec.
3292
3293Furthermore, when `mh-min-colors-defined-flag' is nil, this
3294function finds display entries with \"min-colors\" requirements
3295and either removes the \"min-colors\" requirement or strips the
3296display entirely if the display does not support the number of
3297specified colors."
3298 (let ((spec
3299 (if (and inherit mh-inherit-face-flag)
3300 inherit
3301 (or (cadr (assq face mh-face-data))
3302 (error "Could not find %s in mh-face-data" face)))))
3303
3304 (if mh-min-colors-defined-flag
3305 spec
3306 (let ((cells (mh-display-color-cells))
3307 new-spec)
3308 ;; Remove entries with min-colors, or delete them if we have
3309 ;; fewer colors than they specify.
3310 (loop for entry in (reverse spec) do
3311 (let ((requirement (if (eq (car entry) t)
3312 nil
3313 (assq 'min-colors (car entry)))))
3314 (if requirement
3315 (when (>= cells (nth 1 requirement))
3316 (setq new-spec (cons (cons (delq requirement (car entry))
3317 (cdr entry))
3318 new-spec)))
3319 (setq new-spec (cons entry new-spec)))))
3320 new-spec))))
3313 3321
3314(mh-defface mh-folder-address 3322(mh-defface mh-folder-address
3315 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject)))) 3323 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
@@ -3520,9 +3528,9 @@ The background and foreground are used in the image."
3520;; Get rid of temporary functions and data structures. 3528;; Get rid of temporary functions and data structures.
3521(fmakunbound 'mh-defcustom) 3529(fmakunbound 'mh-defcustom)
3522(fmakunbound 'mh-defface) 3530(fmakunbound 'mh-defface)
3523(fmakunbound 'mh-defface-compat)
3524(fmakunbound 'mh-defgroup) 3531(fmakunbound 'mh-defgroup)
3525(fmakunbound 'mh-face-data) 3532(fmakunbound 'mh-face-data)
3533(fmakunbound 'mh-strip-package-version)
3526(makunbound 'mh-face-data) 3534(makunbound 'mh-face-data)
3527(makunbound 'mh-inherit-face-flag) 3535(makunbound 'mh-inherit-face-flag)
3528(makunbound 'mh-min-colors-defined-flag) 3536(makunbound 'mh-min-colors-defined-flag)
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 36878d2dff9..0f970c5191a 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -978,7 +978,9 @@ Typing SPC flushes the help buffer."
978 (set-window-configuration pcomplete-last-window-config) 978 (set-window-configuration pcomplete-last-window-config)
979 (setq pcomplete-last-window-config nil) 979 (setq pcomplete-last-window-config nil)
980 (throw 'done nil)) 980 (throw 'done nil))
981 ((event-matches-key-specifier-p event 'tab) 981 ((or (event-matches-key-specifier-p event 'tab)
982 ;; Needed on a terminal
983 (event-matches-key-specifier-p event 9))
982 (save-selected-window 984 (save-selected-window
983 (select-window (get-buffer-window "*Completions*")) 985 (select-window (get-buffer-window "*Completions*"))
984 (if (pos-visible-in-window-p (point-max)) 986 (if (pos-visible-in-window-p (point-max))
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el
index 9ff40d09494..b04f3c121a1 100644
--- a/lisp/pcvs-util.el
+++ b/lisp/pcvs-util.el
@@ -157,10 +157,11 @@ Uses columns to keep the listing readable but compact."
157 (setq tab-width colwidth) 157 (setq tab-width colwidth)
158 ;; The insertion should be "sensible" no matter what choices were made. 158 ;; The insertion should be "sensible" no matter what choices were made.
159 (dolist (str strings) 159 (dolist (str strings)
160 (unless (bolp) (insert " \t")) 160 (unless (bolp)
161 (when (< wwidth (+ (max colwidth (length str)) (current-column))) 161 (insert " \t")
162 (delete-char -2) (insert "\n")) 162 (when (< wwidth (+ (max colwidth (length str)) (current-column)))
163 (insert str))))) 163 (delete-char -2) (insert "\n")))
164 (insert str)))))
164 165
165 166
166(defun cvs-file-to-string (file &optional oneline args) 167(defun cvs-file-to-string (file &optional oneline args)
@@ -357,7 +358,8 @@ If ARG is nil toggle the PREFIX's value between its 0th default and nil
357 and reset the persistence." 358 and reset the persistence."
358 (let* ((prefix (symbol-value (cvs-prefix-sym sym))) 359 (let* ((prefix (symbol-value (cvs-prefix-sym sym)))
359 (numarg (if (integerp arg) arg 0)) 360 (numarg (if (integerp arg) arg 0))
360 (defs (cvs-flags-defaults prefix))) 361 ;; (defs (cvs-flags-defaults prefix))
362 )
361 363
362 ;; set persistence if requested 364 ;; set persistence if requested
363 (when (> (prefix-numeric-value arg) 9) 365 (when (> (prefix-numeric-value arg) 9)
diff --git a/lisp/shell.el b/lisp/shell.el
index f7eaeb84341..71b5862feb6 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -574,7 +574,7 @@ Otherwise, one argument `-i' is passed to the shell.
574;;; 2. It cannot infallibly deal with command sequences, though it does well 574;;; 2. It cannot infallibly deal with command sequences, though it does well
575;;; with these and with ignoring commands forked in another shell with ()s. 575;;; with these and with ignoring commands forked in another shell with ()s.
576;;; 3. More generally, any complex command is going to throw it. Otherwise, 576;;; 3. More generally, any complex command is going to throw it. Otherwise,
577;;; you'd have to build an entire shell interpreter in emacs lisp. Failing 577;;; you'd have to build an entire shell interpreter in Emacs Lisp. Failing
578;;; that, there's no way to catch shell commands where cd's are buried 578;;; that, there's no way to catch shell commands where cd's are buried
579;;; inside conditional expressions, aliases, and so forth. 579;;; inside conditional expressions, aliases, and so forth.
580;;; 580;;;
@@ -608,7 +608,7 @@ It watches for cd, pushd and popd commands and sets the buffer's
608default directory to track these commands. 608default directory to track these commands.
609 609
610You may toggle this tracking on and off with M-x dirtrack-mode. 610You may toggle this tracking on and off with M-x dirtrack-mode.
611If emacs gets confused, you can resync with the shell with M-x dirs. 611If Emacs gets confused, you can resync with the shell with M-x dirs.
612 612
613See variables `shell-cd-regexp', `shell-chdrive-regexp', `shell-pushd-regexp', 613See variables `shell-cd-regexp', `shell-chdrive-regexp', `shell-pushd-regexp',
614and `shell-popd-regexp', while `shell-pushd-tohome', `shell-pushd-dextract', 614and `shell-popd-regexp', while `shell-pushd-tohome', `shell-pushd-dextract',
@@ -929,7 +929,7 @@ See `shell-command-regexp'."
929(defun shell-dynamic-complete-command () 929(defun shell-dynamic-complete-command ()
930 "Dynamically complete the command at point. 930 "Dynamically complete the command at point.
931This function is similar to `comint-dynamic-complete-filename', except that it 931This function is similar to `comint-dynamic-complete-filename', except that it
932searches `exec-path' (minus the trailing emacs library path) for completion 932searches `exec-path' (minus the trailing Emacs library path) for completion
933candidates. Note that this may not be the same as the shell's idea of the 933candidates. Note that this may not be the same as the shell's idea of the
934path. 934path.
935 935
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 2e55c4929d5..4b83f08d89d 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -503,7 +503,7 @@ hierarchy would be replaced with the new directory."
503 :type 'hook) 503 :type 'hook)
504 504
505(defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly) 505(defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly)
506 "*Hooks called before popping up the speedbar frame." 506 "*Hooks called after popping up the speedbar frame."
507 :group 'speedbar 507 :group 'speedbar
508 :type 'hook) 508 :type 'hook)
509 509