aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorPaul Eggert2011-05-17 17:39:40 -0700
committerPaul Eggert2011-05-17 17:39:40 -0700
commit7025ee00190a709853bf5b809bf86148efda3bc7 (patch)
treee1b861b3ea59872e652462289bb7f215d5cfbfbe /lisp
parentd2d818bf00fa3a3204abd9b31103cfca21ff8125 (diff)
parent3870d303a44e14c460977c50473e5069742cd0b6 (diff)
downloademacs-7025ee00190a709853bf5b809bf86148efda3bc7.tar.gz
emacs-7025ee00190a709853bf5b809bf86148efda3bc7.zip
Merge from mainline.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog48
-rw-r--r--lisp/calendar/appt.el72
-rw-r--r--lisp/emacs-lisp/eieio.el2
-rw-r--r--lisp/gnus/ChangeLog18
-rw-r--r--lisp/gnus/gnus-group.el2
-rw-r--r--lisp/gnus/gnus-sum.el6
-rw-r--r--lisp/gnus/nntp.el3
-rw-r--r--lisp/gnus/shr.el3
-rw-r--r--lisp/info-look.el28
-rw-r--r--lisp/mail/mail-utils.el2
-rw-r--r--lisp/net/tramp.el12
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/grep.el1
-rw-r--r--lisp/progmodes/idlw-shell.el2
-rw-r--r--lisp/progmodes/python.el4
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/vc/diff-mode.el80
17 files changed, 194 insertions, 93 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 48be120982b..1fc7cc88f8d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,6 +1,50 @@
12011-05-16 Paul Eggert <eggert@cs.ucla.edu> 12011-05-17 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * vc/diff-mode.el (diff-fixup-modifs): Remove stray ')' (Bug#8672). 3 * progmodes/grep.el (grep-mode): Disable default
4 compilation-directory-matcher setting (bug#8684).
5
62011-05-17 Michael Albinus <michael.albinus@gmx.de>
7
8 * net/tramp.el (tramp-handle-insert-file-contents): Use "dd"
9 instead of "head" and "tail". There were problems with SunOS 5.9,
10 and it performs better.
11
122011-05-17 Glenn Morris <rgm@gnu.org>
13
14 * mail/mail-utils.el (mail-dont-reply-to): Silence compiler.
15
16 * progmodes/idlw-shell.el (idlwave-shell-complete-filename):
17 Replace obsolete function.
18
19 * shell.el (pcomplete-parse-arguments-function): Declare.
20
21 * calendar/appt.el (appt-message-warning-time, appt-display-mode-line)
22 (appt-display-diary, appt-display-interval, appt-prev-comp-time)
23 (appt-check): Doc fixes.
24 (appt-disp-window-function, appt-delete-window-function):
25 Remove needless special case in custom :type.
26 (appt-display-count): Default to 0, not nil.
27 (appt-check): Reset appt-display-count to 0, not nil.
28
292011-05-17 Juanma Barranquero <lekktu@gmail.com>
30
31 * progmodes/python.el (python-font-lock-keywords):
32 Add the Python 3.X keyword "nonlocal" (bug#8639).
33
342011-05-16 Stefan Monnier <monnier@iro.umontreal.ca>
35
36 * emacs-lisp/eieio.el (defmethod): Fix quoting of code (bug#8677).
37
382011-05-16 Kevin Ryde <user42@zip.com.au>
39
40 * info-look.el (makefile-automake-mode): New setups, looking in
41 automake manual, then makefile-mode.
42 (makefile-mode): Remove automake manual, have it just in
43 makefile-automake-mode since there's various things different or
44 not relevant to plain make.
45 (makefile-mode): Remove "other-modes" non-existent automake-mode,
46 believe a hypothetical automake-mode would go to makefile-mode,
47 not the other way around.
4 48
52011-05-15 Chong Yidong <cyd@stupidchicken.com> 492011-05-15 Chong Yidong <cyd@stupidchicken.com>
6 50
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index d547102a6ee..7fde9e348db 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -62,15 +62,10 @@
62;; `appt-check' reads. 62;; `appt-check' reads.
63;; 63;;
64;; You can change the way the appointment window is created/deleted by 64;; You can change the way the appointment window is created/deleted by
65;; setting the variables 65;; setting the variables `appt-disp-window-function' and
66;; 66;; `appt-delete-window-function'. For instance, you could be set them
67;; appt-disp-window-function 67;; to functions that display appointments in pop-up frames, which are
68;; and 68;; lowered or iconified after `appt-display-interval' minutes.
69;; appt-delete-window-function
70;;
71;; For instance, these variables could be set to functions that display
72;; appointments in pop-up frames, which are lowered or iconified after
73;; `appt-display-interval' minutes.
74;; 69;;
75 70
76;;; Code: 71;;; Code:
@@ -84,7 +79,8 @@
84 :group 'calendar) 79 :group 'calendar)
85 80
86(defcustom appt-message-warning-time 12 81(defcustom appt-message-warning-time 12
87 "Default time in minutes before an appointment that the warning begins." 82 "Default time in minutes before an appointment that the warning begins.
83You probably want to make `appt-display-interval' a factor of this."
88 :type 'integer 84 :type 'integer
89 :group 'appt) 85 :group 'appt)
90 86
@@ -122,7 +118,9 @@ See also `appt-audible' and `appt-display-mode-line'."
122 118
123(defcustom appt-display-mode-line t 119(defcustom appt-display-mode-line t
124 "Non-nil means display minutes to appointment and time on the mode line. 120 "Non-nil means display minutes to appointment and time on the mode line.
125This is in addition to any other display of appointment messages." 121This is in addition to any other display of appointment messages.
122The mode line updates every minute, independent of the value of
123`appt-display-interval'."
126 :type 'boolean 124 :type 'boolean
127 :group 'appt) 125 :group 'appt)
128 126
@@ -134,12 +132,21 @@ Only relevant if reminders are to be displayed in their own window."
134 132
135(defcustom appt-display-diary t 133(defcustom appt-display-diary t
136 "Non-nil displays the diary when the appointment list is first initialized. 134 "Non-nil displays the diary when the appointment list is first initialized.
137This will occur at midnight when the appointment list is updated." 135This occurs when this package is first activated, and then at
136midnight when the appointment list updates."
138 :type 'boolean 137 :type 'boolean
139 :group 'appt) 138 :group 'appt)
140 139
141(defcustom appt-display-interval 3 140(defcustom appt-display-interval 3
142 "Number of minutes to wait between checking the appointment list." 141 "Interval in minutes at which to display appointment reminders.
142Once an appointment becomes due, Emacs displays reminders every
143`appt-display-interval' minutes. You probably want to make
144`appt-message-warning-time' be a multiple of this, so that you get
145a final message displayed precisely when the appointment is due.
146
147Note that this variable controls the interval at which
148`appt-display-message' is called. The mode line display (if active)
149always updates every minute."
143 :type 'integer 150 :type 'integer
144 :group 'appt) 151 :group 'appt)
145 152
@@ -148,15 +155,13 @@ This will occur at midnight when the appointment list is updated."
148Only relevant if reminders are being displayed in a window. 155Only relevant if reminders are being displayed in a window.
149It should take three string arguments: the number of minutes till 156It should take three string arguments: the number of minutes till
150the appointment, the current time, and the text of the appointment." 157the appointment, the current time, and the text of the appointment."
151 :type '(choice (const appt-disp-window) 158 :type 'function
152 function)
153 :group 'appt) 159 :group 'appt)
154 160
155(defcustom appt-delete-window-function 'appt-delete-window 161(defcustom appt-delete-window-function 'appt-delete-window
156 "Function called to remove appointment window and buffer. 162 "Function called to remove appointment window and buffer.
157Only relevant if reminders are being displayed in a window." 163Only relevant if reminders are being displayed in a window."
158 :type '(choice (const appt-delete-window) 164 :type 'function
159 function)
160 :group 'appt) 165 :group 'appt)
161 166
162 167
@@ -194,10 +199,9 @@ Only used if `appt-display-mode-line' is non-nil.")
194(put 'appt-mode-string 'risky-local-variable t) ; for 'face property 199(put 'appt-mode-string 'risky-local-variable t) ; for 'face property
195 200
196(defvar appt-prev-comp-time nil 201(defvar appt-prev-comp-time nil
197 "Time of day (mins since midnight) at which we last checked appointments. 202 "Time of day (mins since midnight) at which we last checked appointments.")
198A nil value forces the diary file to be (re-)checked for appointments.")
199 203
200(defvar appt-display-count nil 204(defvar appt-display-count 0
201 "Internal variable used to count number of consecutive reminders.") 205 "Internal variable used to count number of consecutive reminders.")
202 206
203(defvar appt-timer nil 207(defvar appt-timer nil
@@ -249,29 +253,28 @@ The following variables control appointment notification:
249 Controls the format in which reminders are displayed. 253 Controls the format in which reminders are displayed.
250 254
251`appt-audible' 255`appt-audible'
252 Variable used to determine if reminder is audible. 256 Non-nil means there is an audible component to reminders.
253 Default is t.
254 257
255`appt-message-warning-time' 258`appt-message-warning-time'
256 Variable used to determine when appointment message 259 The default number of minutes in advance at which reminders
257 should first be displayed. 260 should start.
258 261
259`appt-display-mode-line' 262`appt-display-mode-line'
260 If non-nil, a generic message giving the time remaining 263 Non-nil means show in the mode line a countdown to the
261 is shown in the mode-line when an appointment is due. 264 time of each appointment, once reminders start.
262 265
263`appt-display-interval' 266`appt-display-interval'
264 Interval in minutes at which to check for pending appointments. 267 Interval in minutes at which to display appointment messages.
265 268
266`appt-display-diary' 269`appt-display-diary'
267 Display the diary buffer when the appointment list is 270 Non-nil means display the diary whenever the appointment list is
268 initialized for the first time in a day. 271 initialized (e.g. the first time we check for appointments each day).
269 272
270The following variables are only relevant if reminders are being 273The following variables are only relevant if reminders are being
271displayed in a window: 274displayed in a window:
272 275
273`appt-display-duration' 276`appt-display-duration'
274 The number of seconds an appointment message is displayed. 277 Number of seconds for which an appointment message is displayed.
275 278
276`appt-disp-window-function' 279`appt-disp-window-function'
277 Function called to display appointment window. 280 Function called to display appointment window.
@@ -281,7 +284,7 @@ displayed in a window:
281 (interactive "P") ; so people can force updates 284 (interactive "P") ; so people can force updates
282 (let* ((min-to-app -1) 285 (let* ((min-to-app -1)
283 (prev-appt-mode-string appt-mode-string) 286 (prev-appt-mode-string appt-mode-string)
284 (prev-appt-display-count (or appt-display-count 0)) 287 (prev-appt-display-count appt-display-count)
285 now now-mins appt-mins appt-warn-time) 288 now now-mins appt-mins appt-warn-time)
286 (save-excursion ; FIXME ? 289 (save-excursion ; FIXME ?
287 ;; Convert current time to minutes after midnight (12.01am = 1). 290 ;; Convert current time to minutes after midnight (12.01am = 1).
@@ -301,9 +304,12 @@ displayed in a window:
301 ;; diary-number-of-entries. Since appt.el only 304 ;; diary-number-of-entries. Since appt.el only
302 ;; works on a daily basis, no need for more entries. 305 ;; works on a daily basis, no need for more entries.
303 (diary-list-entries (calendar-current-date) 1 t))))) 306 (diary-list-entries (calendar-current-date) 1 t)))))
307 ;; Reset everything now in case we somehow missed a minute,
308 ;; or (more likely) an appt was deleted. (This is the only
309 ;; reason we need prev-appt-display-count.)
304 (setq appt-prev-comp-time now-mins 310 (setq appt-prev-comp-time now-mins
305 appt-mode-string nil 311 appt-mode-string nil
306 appt-display-count nil) 312 appt-display-count 0)
307 ;; Remove any entries that are in the past. 313 ;; Remove any entries that are in the past.
308 ;; FIXME how can there be any such entries, given that this 314 ;; FIXME how can there be any such entries, given that this
309 ;; function removes entries when they hit zero minutes, 315 ;; function removes entries when they hit zero minutes,
@@ -354,7 +360,7 @@ displayed in a window:
354 ;; appointment on the next cycle. 360 ;; appointment on the next cycle.
355 (if (zerop min-to-app) 361 (if (zerop min-to-app)
356 (setq appt-time-msg-list (cdr appt-time-msg-list) 362 (setq appt-time-msg-list (cdr appt-time-msg-list)
357 appt-display-count nil) 363 appt-display-count 0)
358 (setq appt-display-count (1+ prev-appt-display-count))))) 364 (setq appt-display-count (1+ prev-appt-display-count)))))
359 ;; If we have changed the mode line string, redisplay all mode lines. 365 ;; If we have changed the mode line string, redisplay all mode lines.
360 (and appt-display-mode-line 366 (and appt-display-mode-line
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 6abf9aa3657..8c5260106a8 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -1308,7 +1308,7 @@ Summary:
1308 (defgeneric ,method ,args 1308 (defgeneric ,method ,args
1309 ,(or (documentation code) 1309 ,(or (documentation code)
1310 (format "Generically created method `%s'." method))) 1310 (format "Generically created method `%s'." method)))
1311 (eieio--defmethod ',method ',key ',class ',code)))) 1311 (eieio--defmethod ',method ',key ',class #',code))))
1312 1312
1313(defun eieio--defmethod (method kind argclass code) 1313(defun eieio--defmethod (method kind argclass code)
1314 "Work part of the `defmethod' macro defining METHOD with ARGS." 1314 "Work part of the `defmethod' macro defining METHOD with ARGS."
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 8dad14c44ae..068093159e3 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,21 @@
12011-05-17 Glenn Morris <rgm@gnu.org>
2
3 * gnus-group.el (gnus-import-other-newsrc-file):
4 Use insert-file-contents.
5
62011-05-16 Teodor Zlatanov <tzz@lifelogs.com>
7
8 * gnus-sum.el (gnus-summary-hide-all-threads): Add update message every
9 1000 iterations.
10
112011-05-16 Katsumi Yamaoka <yamaoka@jpl.org>
12
13 * nntp.el (nntp-open-connection): Check if process-type is available.
14
152011-05-16 Julien Danjou <julien@danjou.info>
16
17 * shr.el (shr-tag-del): Add support for del tag.
18
12011-05-13 Katsumi Yamaoka <yamaoka@jpl.org> 192011-05-13 Katsumi Yamaoka <yamaoka@jpl.org>
2 20
3 * gnus-html.el (gnus-html-put-image): Register a displayer. 21 * gnus-html.el (gnus-html-put-image): Register a displayer.
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index c265538e19c..a21faa8c983 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -4407,7 +4407,7 @@ and the second element is the address."
4407;; file. Use with caution, if at all. 4407;; file. Use with caution, if at all.
4408(defun gnus-import-other-newsrc-file (file) 4408(defun gnus-import-other-newsrc-file (file)
4409 (with-temp-buffer 4409 (with-temp-buffer
4410 (insert-file file) 4410 (insert-file-contents file)
4411 (let (form) 4411 (let (form)
4412 (while (ignore-errors 4412 (while (ignore-errors
4413 (setq form (read (current-buffer)))) 4413 (setq form (read (current-buffer))))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 3cbb479e068..53c2e5e596f 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -11533,8 +11533,12 @@ will not be hidden."
11533 (interactive) 11533 (interactive)
11534 (save-excursion 11534 (save-excursion
11535 (goto-char (point-min)) 11535 (goto-char (point-min))
11536 (let ((end nil)) 11536 (let ((end nil)
11537 (count 0))
11537 (while (not end) 11538 (while (not end)
11539 (incf count)
11540 (when (zerop (mod count 1000))
11541 (message "Hiding all threads... %d" count))
11538 (when (or (not predicate) 11542 (when (or (not predicate)
11539 (gnus-map-articles 11543 (gnus-map-articles
11540 predicate (gnus-summary-article-children))) 11544 predicate (gnus-summary-article-children)))
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index aa4b9184dbb..cdd12abbc06 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -1362,7 +1362,8 @@ password contained in '~/.nntp-authinfo'."
1362 (nntp-kill-buffer pbuffer)) 1362 (nntp-kill-buffer pbuffer))
1363 (when (and (buffer-name pbuffer) 1363 (when (and (buffer-name pbuffer)
1364 process) 1364 process)
1365 (when (and (fboundp 'set-network-process-option) 1365 (when (and (fboundp 'set-network-process-option) ;; Unavailable in XEmacs.
1366 (fboundp 'process-type) ;; Emacs 22 doesn't provide it.
1366 (eq (process-type process) 'network)) 1367 (eq (process-type process) 'network))
1367 ;; Use TCP-keepalive so that connections that pass through a NAT router 1368 ;; Use TCP-keepalive so that connections that pass through a NAT router
1368 ;; don't hang when left idle. 1369 ;; don't hang when left idle.
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index edd106618df..d23d9c7724b 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -780,6 +780,9 @@ ones, in case fg and bg are nil."
780(defun shr-tag-s (cont) 780(defun shr-tag-s (cont)
781 (shr-fontize-cont cont 'shr-strike-through)) 781 (shr-fontize-cont cont 'shr-strike-through))
782 782
783(defun shr-tag-del (cont)
784 (shr-fontize-cont cont 'shr-strike-through))
785
783(defun shr-tag-b (cont) 786(defun shr-tag-b (cont)
784 (shr-fontize-cont cont 'bold)) 787 (shr-fontize-cont cont 'bold))
785 788
diff --git a/lisp/info-look.el b/lisp/info-look.el
index 6baed1c422d..5e51fcc9b9d 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -720,11 +720,31 @@ Return nil if there is nothing appropriate in the buffer near point."
720 :mode 'makefile-mode 720 :mode 'makefile-mode
721 :regexp "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z][_a-zA-Z0-9-]*" 721 :regexp "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z][_a-zA-Z0-9-]*"
722 :doc-spec '(("(make)Name Index" nil 722 :doc-spec '(("(make)Name Index" nil
723 "^[ \t]*`" "'")
724 ("(automake)Macro and Variable Index" nil
725 "^[ \t]*`" "'")) 723 "^[ \t]*`" "'"))
726 :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+" 724 :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+")
727 :other-modes '(automake-mode)) 725
726(info-lookup-maybe-add-help
727 :topic 'symbol
728 :mode 'makefile-automake-mode
729 ;; similar regexp/parse-rule as makefile-mode, but also the following
730 ;; (which have index entries),
731 ;; "##" special automake comment
732 ;; "+=" append operator, separate from the GNU make one
733 :regexp "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z][_a-zA-Z0-9-]*\\|##\\|\\+="
734 :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+\\|##\\|\\+="
735 :doc-spec '(
736 ;; "(automake)Macro Index" is autoconf macros used in
737 ;; configure.in, not Makefile.am, so don't have that here.
738 ("(automake)Variable Index" nil "^[ \t]*`" "'")
739 ;; In automake 1.4 macros and variables were a combined node.
740 ("(automake)Macro and Variable Index" nil "^[ \t]*`" "'")
741 ;; Directives like "if" are in the "General Index".
742 ;; Prefix "`" since the text for say `+=' isn't always an
743 ;; @item etc and so not always at the start of a line.
744 ("(automake)General Index" nil "`" "'")
745 ;; In automake 1.3 there was just a single "Index" node.
746 ("(automake)Index" nil "`" "'"))
747 :other-modes '(makefile-mode))
728 748
729(info-lookup-maybe-add-help 749(info-lookup-maybe-add-help
730 :mode 'texinfo-mode 750 :mode 'texinfo-mode
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 328a5d50d34..2e6f06a6758 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -236,7 +236,7 @@ comma-separated list, and return the pruned list."
236 (setq mail-dont-reply-to-names 236 (setq mail-dont-reply-to-names
237 (concat 237 (concat
238 ;; `rmail-default-dont-reply-to-names' is obsolete. 238 ;; `rmail-default-dont-reply-to-names' is obsolete.
239 (if rmail-default-dont-reply-to-names 239 (if (bound-and-true-p rmail-default-dont-reply-to-names)
240 (concat rmail-default-dont-reply-to-names "\\|") 240 (concat rmail-default-dont-reply-to-names "\\|")
241 "") 241 "")
242 (if (and user-mail-address 242 (if (and user-mail-address
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 693e082ecc8..bc831c3b596 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2838,16 +2838,16 @@ User is always nil."
2838 v 2838 v
2839 (cond 2839 (cond
2840 ((and beg end) 2840 ((and beg end)
2841 (format "tail -c +%d %s | head -c +%d >%s" 2841 (format "dd bs=1 skip=%d if=%s count=%d of=%s"
2842 (1+ beg) (tramp-shell-quote-argument localname) 2842 beg (tramp-shell-quote-argument localname)
2843 (- end beg) remote-copy)) 2843 (- end beg) remote-copy))
2844 (beg 2844 (beg
2845 (format "tail -c +%d %s >%s" 2845 (format "dd bs=1 skip=%d if=%s of=%s"
2846 (1+ beg) (tramp-shell-quote-argument localname) 2846 beg (tramp-shell-quote-argument localname)
2847 remote-copy)) 2847 remote-copy))
2848 (end 2848 (end
2849 (format "head -c +%d %s >%s" 2849 (format "dd bs=1 count=%d if=%s of=%s"
2850 (1+ end) (tramp-shell-quote-argument localname) 2850 end (tramp-shell-quote-argument localname)
2851 remote-copy))))) 2851 remote-copy)))))
2852 2852
2853 ;; `insert-file-contents-literally' takes care to avoid 2853 ;; `insert-file-contents-literally' takes care to avoid
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index ce38cf8850b..a063ce7dab6 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -369,7 +369,7 @@ to it is returned. This function does not modify the point or the mark."
369(put 'c-safe 'lisp-indent-function 0) 369(put 'c-safe 'lisp-indent-function 0)
370 370
371(defmacro c-int-to-char (integer) 371(defmacro c-int-to-char (integer)
372 ;; In GNU Emacs, a character is an integer. In XEmacs, a character is a 372 ;; In Emacs, a character is an integer. In XEmacs, a character is a
373 ;; type distinct from an integer. Sometimes we need to convert integers to 373 ;; type distinct from an integer. Sometimes we need to convert integers to
374 ;; characters. `c-int-to-char' makes this conversion, if necessary. 374 ;; characters. `c-int-to-char' makes this conversion, if necessary.
375 (if (fboundp 'int-to-char) 375 (if (fboundp 'int-to-char)
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 143220ad28a..3b819a149b2 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -698,6 +698,7 @@ This function is called from `compilation-filter-hook'."
698 grep-hit-face) 698 grep-hit-face)
699 (set (make-local-variable 'compilation-error-regexp-alist) 699 (set (make-local-variable 'compilation-error-regexp-alist)
700 grep-regexp-alist) 700 grep-regexp-alist)
701 (set (make-local-variable 'compilation-directory-matcher) nil)
701 (set (make-local-variable 'compilation-process-setup-function) 702 (set (make-local-variable 'compilation-process-setup-function)
702 'grep-process-setup) 703 'grep-process-setup)
703 (set (make-local-variable 'compilation-disable-input) t) 704 (set (make-local-variable 'compilation-disable-input) t)
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 93a3bf1b7f5..01c256ab41b 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -2187,7 +2187,7 @@ args of an executive .run, .rnew or .compile."
2187 ;; CWD might have changed, resync, to set default directory 2187 ;; CWD might have changed, resync, to set default directory
2188 (idlwave-shell-resync-dirs) 2188 (idlwave-shell-resync-dirs)
2189 (let ((comint-file-name-chars idlwave-shell-file-name-chars)) 2189 (let ((comint-file-name-chars idlwave-shell-file-name-chars))
2190 (comint-dynamic-complete-as-filename))) 2190 (comint-filename-completion)))
2191 2191
2192(defun idlwave-shell-executive-command () 2192(defun idlwave-shell-executive-command ()
2193 "Return the name of the current executive command, if any." 2193 "Return the name of the current executive command, if any."
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index a7851c54356..67a51dfbeee 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -99,7 +99,9 @@
99 "import" "in" "is" "lambda" "not" "or" "pass" "print" 99 "import" "in" "is" "lambda" "not" "or" "pass" "print"
100 "raise" "return" "try" "while" "with" "yield" 100 "raise" "return" "try" "while" "with" "yield"
101 ;; Not real keywords, but close enough to be fontified as such 101 ;; Not real keywords, but close enough to be fontified as such
102 "self" "True" "False") 102 "self" "True" "False"
103 ;; Python 3
104 "nonlocal")
103 symbol-end) 105 symbol-end)
104 (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual 106 (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual
105 . font-lock-constant-face) 107 . font-lock-constant-face)
diff --git a/lisp/shell.el b/lisp/shell.el
index a05fefa9c11..cba50038bc0 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -380,6 +380,8 @@ to `dirtrack-mode'."
380 :group 'shell 380 :group 'shell
381 :type '(choice (const nil) regexp)) 381 :type '(choice (const nil) regexp))
382 382
383(defvar pcomplete-parse-arguments-function)
384
383(defun shell-completion-vars () 385(defun shell-completion-vars ()
384 "Setup completion vars for `shell-mode' and `read-shell-command'." 386 "Setup completion vars for `shell-mode' and `read-shell-command'."
385 (set (make-local-variable 'comint-completion-fignore) 387 (set (make-local-variable 'comint-completion-fignore)
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index a493f0dcfc0..56ebe868a2d 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -1119,46 +1119,46 @@ else cover the whole buffer."
1119 (goto-char end) (diff-end-of-hunk nil 'donttrustheader) 1119 (goto-char end) (diff-end-of-hunk nil 'donttrustheader)
1120 (let ((plus 0) (minus 0) (space 0) (bang 0)) 1120 (let ((plus 0) (minus 0) (space 0) (bang 0))
1121 (while (and (= (forward-line -1) 0) (<= start (point))) 1121 (while (and (= (forward-line -1) 0) (<= start (point)))
1122 (if (not (looking-at 1122 (if (not (looking-at
1123 (concat diff-hunk-header-re-unified 1123 (concat diff-hunk-header-re-unified
1124 "\\|[-*][-*][-*] [0-9,]+ [-*][-*][-*][-*]$" 1124 "\\|[-*][-*][-*] [0-9,]+ [-*][-*][-*][-*]$"
1125 "\\|--- .+\n\\+\\+\\+ "))) 1125 "\\|--- .+\n\\+\\+\\+ ")))
1126 (case (char-after) 1126 (case (char-after)
1127 (?\s (incf space)) 1127 (?\s (incf space))
1128 (?+ (incf plus)) 1128 (?+ (incf plus))
1129 (?- (incf minus)) 1129 (?- (incf minus))
1130 (?! (incf bang)) 1130 (?! (incf bang))
1131 ((?\\ ?#) nil) 1131 ((?\\ ?#) nil)
1132 (t (setq space 0 plus 0 minus 0 bang 0))) 1132 (t (setq space 0 plus 0 minus 0 bang 0)))
1133 (cond 1133 (cond
1134 ((looking-at diff-hunk-header-re-unified) 1134 ((looking-at diff-hunk-header-re-unified)
1135 (let* ((old1 (match-string 2)) 1135 (let* ((old1 (match-string 2))
1136 (old2 (match-string 4)) 1136 (old2 (match-string 4))
1137 (new1 (number-to-string (+ space minus))) 1137 (new1 (number-to-string (+ space minus)))
1138 (new2 (number-to-string (+ space plus)))) 1138 (new2 (number-to-string (+ space plus))))
1139 (if old2 1139 (if old2
1140 (unless (string= new2 old2) (replace-match new2 t t nil 4)) 1140 (unless (string= new2 old2) (replace-match new2 t t nil 4))
1141 (goto-char (match-end 3)) 1141 (goto-char (match-end 3))
1142 (insert "," new2)) 1142 (insert "," new2))
1143 (if old1 1143 (if old1
1144 (unless (string= new1 old1) (replace-match new1 t t nil 2)) 1144 (unless (string= new1 old1) (replace-match new1 t t nil 2))
1145 (goto-char (match-end 1)) 1145 (goto-char (match-end 1))
1146 (insert "," new1)))) 1146 (insert "," new1))))
1147 ((looking-at diff-context-mid-hunk-header-re) 1147 ((looking-at diff-context-mid-hunk-header-re)
1148 (when (> (+ space bang plus) 0) 1148 (when (> (+ space bang plus) 0)
1149 (let* ((old1 (match-string 1)) 1149 (let* ((old1 (match-string 1))
1150 (old2 (match-string 2)) 1150 (old2 (match-string 2))
1151 (new (number-to-string 1151 (new (number-to-string
1152 (+ space bang plus -1 (string-to-number old1))))) 1152 (+ space bang plus -1 (string-to-number old1)))))
1153 (unless (string= new old2) (replace-match new t t nil 2))))) 1153 (unless (string= new old2) (replace-match new t t nil 2)))))
1154 ((looking-at "\\*\\*\\* \\([0-9]+\\),\\(-?[0-9]*\\) \\*\\*\\*\\*$") 1154 ((looking-at "\\*\\*\\* \\([0-9]+\\),\\(-?[0-9]*\\) \\*\\*\\*\\*$")
1155 (when (> (+ space bang minus) 0) 1155 (when (> (+ space bang minus) 0)
1156 (let* ((old (match-string 1)) 1156 (let* ((old (match-string 1))
1157 (new (format 1157 (new (format
1158 (concat "%0" (number-to-string (length old)) "d") 1158 (concat "%0" (number-to-string (length old)) "d")
1159 (+ space bang minus -1 (string-to-number old))))) 1159 (+ space bang minus -1 (string-to-number old)))))
1160 (unless (string= new old) (replace-match new t t nil 2)))))) 1160 (unless (string= new old) (replace-match new t t nil 2))))))
1161 (setq space 0 plus 0 minus 0 bang 0))))))) 1161 (setq space 0 plus 0 minus 0 bang 0)))))))
1162 1162
1163;;;; 1163;;;;
1164;;;; Hooks 1164;;;; Hooks