aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog58
-rw-r--r--lisp/gnus/ChangeLog21
-rw-r--r--lisp/gnus/gnus-art.el61
-rw-r--r--lisp/gnus/mm-decode.el22
-rw-r--r--lisp/ibuffer.el9
-rw-r--r--lisp/isearch.el29
-rw-r--r--lisp/progmodes/gdb-ui.el8
-rw-r--r--lisp/progmodes/gud.el114
-rw-r--r--lisp/progmodes/perl-mode.el5
-rw-r--r--lisp/simple.el6
-rw-r--r--lisp/term.el2
11 files changed, 201 insertions, 134 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2a402f88c01..5c3c58767f7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,36 @@
12006-05-04 Karl Chen <quarl@NOSPAM.quarl.org>
2
3 * progmodes/perl-mode.el (perl-beginning-of-function):
4 Skip anonymous subs.
5
62006-05-04 Dan Nicolaescu <dann@ics.uci.edu>
7
8 * ibuffer.el (ibuffer-compressed-file-name-regexp): Avoid loading
9 regexp-opt at run time.
10
11 * term.el (term-handle-ansi-escape): Fix off by one error.
12
132006-05-04 Nick Roberts <nickrob@snap.net.nz>
14
15 * progmodes/gdb-ui.el (gdb-force-update): Delete variable...
16 (gdb-init-1, gdb-post-prompt): ...and references to it.
17 (gdb-frame-handler): Strip directory name from filename if present.
18
19 * progmodes/gud.el (gdb-force-update): Delete defvar
20 (gud-speedbar-buttons): ...and references to it. Use window-start
21 to try to keep positon in watch expression.
22
232006-05-03 Richard Stallman <rms@gnu.org>
24
25 * simple.el (next-history-element, previous-history-element): Doc fix.
26
27 * isearch.el (isearch-update-ring): Doc fix.
28
292006-05-03 Dan Nicolaescu <dann@ics.uci.edu>
30
31 * isearch.el (isearch-update-ring): Take history-delete-duplicates
32 into consideration. Replace one arm ifs with whens.
33
12006-05-03 Nick Roberts <nickrob@snap.net.nz> 342006-05-03 Nick Roberts <nickrob@snap.net.nz>
2 35
3 * progmodes/gdb-ui.el (gud-watch): Let user select an expression. 36 * progmodes/gdb-ui.el (gud-watch): Let user select an expression.
@@ -16,20 +49,17 @@
16 49
172006-05-02 Chong Yidong <cyd@mit.edu> 502006-05-02 Chong Yidong <cyd@mit.edu>
18 51
19 * msb.el (msb): If EVENT is a down event, read and discard the up 52 * msb.el (msb): If EVENT is a down event, read and discard the up event.
20 event.
21 53
222006-05-02 Reiner Steib <Reiner.Steib@gmx.de> 542006-05-02 Reiner Steib <Reiner.Steib@gmx.de>
23 55
24 * startup.el (command-line-1): Refer to Lisp manual when 56 * startup.el (command-line-1): Refer to Lisp manual when
25 pure-space-overflow occurs. 57 pure-space-overflow occurs.
26 58
27 * files.el (byte-compile-dynamic) 59 * files.el (byte-compile-dynamic, byte-compile-dynamic-docstrings)
28 (byte-compile-dynamic-docstrings, byte-compile-warnings) 60 (byte-compile-warnings, find-file-visit-truename, indent-tabs-mode)
29 (find-file-visit-truename, indent-tabs-mode, left-margin) 61 (left-margin, no-byte-compile, no-update-autoloads, truncate-lines)
30 (no-byte-compile no-update-autoloads, truncate-lines) 62 (version-control): Don't use `t' for safe-local-variable declarations.
31 (version-control): Don't use `t' for safe-local-variable
32 declarations.
33 63
342006-05-01 Richard Stallman <rms@gnu.org> 642006-05-01 Richard Stallman <rms@gnu.org>
35 65
@@ -63,10 +93,10 @@
63 Returning "/" only doesn't need to be necessary any longer. 93 Returning "/" only doesn't need to be necessary any longer.
64 (tramp-file-name-handler): Make special attention when in hostname 94 (tramp-file-name-handler): Make special attention when in hostname
65 completion mode. 95 completion mode.
66 (tramp-completion-file-name-handler): Revert patch from 2006-04-28. 96 (tramp-completion-file-name-handler): Revert patch from 2006-04-28.
67 (tramp-register-file-name-handlers): Register 97 (tramp-register-file-name-handlers):
68 `tramp-completion-file-name-handler' only when 98 Register `tramp-completion-file-name-handler' only when
69 `partial-completion-mode is enabled. 99 `partial-completion-mode' is enabled.
70 (tramp-completion-handle-file-name-all-completions): 100 (tramp-completion-handle-file-name-all-completions):
71 Delete directory part from results. 101 Delete directory part from results.
72 (tramp-get-completion-methods, tramp-get-completion-user-host): 102 (tramp-get-completion-methods, tramp-get-completion-user-host):
@@ -80,8 +110,8 @@
80 110
812006-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 1112006-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
82 112
83 * term/mac-win.el (mac-ae-open-documents, mac-drag-n-drop): Use 113 * term/mac-win.el (mac-ae-open-documents, mac-drag-n-drop):
84 select-frame-set-input-focus instead of raise-frame. 114 Use select-frame-set-input-focus instead of raise-frame.
85 (global-map): Bind M-drag-n-drop to mac-drag-n-drop. 115 (global-map): Bind M-drag-n-drop to mac-drag-n-drop.
86 116
872006-05-01 Nick Roberts <nickrob@snap.net.nz> 1172006-05-01 Nick Roberts <nickrob@snap.net.nz>
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index cecc180f522..7f0f248c7cf 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,24 @@
12006-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * mm-decode.el (mm-dissect-buffer): Remove spurious double assignment.
4 (mm-copy-to-buffer): Use with-current-buffer.
5 (mm-display-part): Simplify.
6 (mm-inlinable-p): Add optional arg `type'.
7
8 * gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED
9 argument.
10 (gnus-mime-view-part-externally, gnus-mime-view-part-internally):
11 Try harder to show the attachment internally or externally using
12 gnus-mime-view-part-as-type.
13
142006-05-04 Reiner Steib <Reiner.Steib@gmx.de>
15
16 * gnus-art.el (gnus-mime-view-part-as-type-internal): Try to fetch
17 `filename' from Content-Disposition if Content-Type doesn't
18 provide `name'.
19 (gnus-mime-view-part-as-type): Set default instead of
20 initial-input.
21
12006-04-28 Katsumi Yamaoka <yamaoka@jpl.org> 222006-04-28 Katsumi Yamaoka <yamaoka@jpl.org>
2 23
3 * mm-uu.el (mm-uu-pgp-encrypted-extract-1): Assume buffer is made 24 * mm-uu.el (mm-uu-pgp-encrypted-extract-1): Assume buffer is made
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 7e3b843d500..208103f805d 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4317,21 +4317,29 @@ Deleting parts may malfunction or destroy the article; continue? ")
4317 4317
4318(defun gnus-mime-view-part-as-type-internal () 4318(defun gnus-mime-view-part-as-type-internal ()
4319 (gnus-article-check-buffer) 4319 (gnus-article-check-buffer)
4320 (let* ((name (mail-content-type-get 4320 (let* ((handle (get-text-property (point) 'gnus-data))
4321 (mm-handle-type (get-text-property (point) 'gnus-data)) 4321 (name (or
4322 'name)) 4322 ;; Content-Type: foo/bar; name=...
4323 (mail-content-type-get (mm-handle-type handle) 'name)
4324 ;; Content-Disposition: attachment; filename=...
4325 (cdr (assq 'filename (cdr (mm-handle-disposition handle))))))
4323 (def-type (and name (mm-default-file-encoding name)))) 4326 (def-type (and name (mm-default-file-encoding name))))
4324 (and def-type (cons def-type 0)))) 4327 (and def-type (cons def-type 0))))
4325 4328
4326(defun gnus-mime-view-part-as-type (&optional mime-type) 4329(defun gnus-mime-view-part-as-type (&optional mime-type pred)
4327 "Choose a MIME media type, and view the part as such." 4330 "Choose a MIME media type, and view the part as such.
4331If non-nil, PRED is a predicate to use during completion to limit the
4332available media-types."
4328 (interactive) 4333 (interactive)
4329 (unless mime-type 4334 (unless mime-type
4330 (setq mime-type (completing-read 4335 (setq mime-type
4331 "View as MIME type: " 4336 (let ((default (gnus-mime-view-part-as-type-internal)))
4332 (mapcar #'list (mailcap-mime-types)) 4337 (completing-read
4333 nil nil 4338 (format "View as MIME type (default %s): "
4334 (gnus-mime-view-part-as-type-internal)))) 4339 (car default))
4340 (mapcar #'list (mailcap-mime-types))
4341 pred nil nil nil
4342 (car default)))))
4335 (gnus-article-check-buffer) 4343 (gnus-article-check-buffer)
4336 (let ((handle (get-text-property (point) 'gnus-data))) 4344 (let ((handle (get-text-property (point) 'gnus-data)))
4337 (when handle 4345 (when handle
@@ -4511,12 +4519,18 @@ specified charset."
4511 (mm-inlined-types nil) 4519 (mm-inlined-types nil)
4512 (mail-parse-charset gnus-newsgroup-charset) 4520 (mail-parse-charset gnus-newsgroup-charset)
4513 (mail-parse-ignored-charsets 4521 (mail-parse-ignored-charsets
4514 (save-excursion (set-buffer gnus-summary-buffer) 4522 (with-current-buffer gnus-summary-buffer
4515 gnus-newsgroup-ignored-charsets))) 4523 gnus-newsgroup-ignored-charsets))
4516 (when handle 4524 (type (mm-handle-media-type handle))
4517 (if (mm-handle-undisplayer handle) 4525 (method (mailcap-mime-info type))
4518 (mm-remove-part handle) 4526 (mm-enable-external t))
4519 (mm-display-part handle))))) 4527 (if (not (stringp method))
4528 (gnus-mime-view-part-as-type
4529 nil (lambda (type) (stringp (mailcap-mime-info type))))
4530 (when handle
4531 (if (mm-handle-undisplayer handle)
4532 (mm-remove-part handle)
4533 (mm-display-part handle))))))
4520 4534
4521(defun gnus-mime-view-part-internally (&optional handle) 4535(defun gnus-mime-view-part-internally (&optional handle)
4522 "View the MIME part under point with an internal viewer. 4536 "View the MIME part under point with an internal viewer.
@@ -4528,13 +4542,16 @@ If no internal viewer is available, use an external viewer."
4528 (mm-inline-large-images t) 4542 (mm-inline-large-images t)
4529 (mail-parse-charset gnus-newsgroup-charset) 4543 (mail-parse-charset gnus-newsgroup-charset)
4530 (mail-parse-ignored-charsets 4544 (mail-parse-ignored-charsets
4531 (save-excursion (set-buffer gnus-summary-buffer) 4545 (with-current-buffer gnus-summary-buffer
4532 gnus-newsgroup-ignored-charsets)) 4546 gnus-newsgroup-ignored-charsets))
4533 (inhibit-read-only t)) 4547 (inhibit-read-only t))
4534 (when handle 4548 (if (not (mm-inlinable-p handle))
4535 (if (mm-handle-undisplayer handle) 4549 (gnus-mime-view-part-as-type
4536 (mm-remove-part handle) 4550 nil (lambda (type) (mm-inlinable-p handle type)))
4537 (mm-display-part handle))))) 4551 (when handle
4552 (if (mm-handle-undisplayer handle)
4553 (mm-remove-part handle)
4554 (mm-display-part handle))))))
4538 4555
4539(defun gnus-mime-action-on-part (&optional action) 4556(defun gnus-mime-action-on-part (&optional action)
4540 "Do something with the MIME attachment at \(point\)." 4557 "Do something with the MIME attachment at \(point\)."
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index b79e081f0e1..c5fd5d3c258 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -562,7 +562,7 @@ Postpone undisplaying of viewers for types in
562 description) 562 description)
563 (setq type (split-string (car ctl) "/")) 563 (setq type (split-string (car ctl) "/"))
564 (setq subtype (cadr type) 564 (setq subtype (cadr type)
565 type (pop type)) 565 type (car type))
566 (setq 566 (setq
567 result 567 result
568 (cond 568 (cond
@@ -641,16 +641,15 @@ Postpone undisplaying of viewers for types in
641 641
642(defun mm-copy-to-buffer () 642(defun mm-copy-to-buffer ()
643 "Copy the contents of the current buffer to a fresh buffer." 643 "Copy the contents of the current buffer to a fresh buffer."
644 (save-excursion
645 (let ((obuf (current-buffer)) 644 (let ((obuf (current-buffer))
646 beg) 645 beg)
647 (goto-char (point-min)) 646 (goto-char (point-min))
648 (search-forward-regexp "^\n" nil t) 647 (search-forward-regexp "^\n" nil t)
649 (setq beg (point)) 648 (setq beg (point))
650 (set-buffer 649 (with-current-buffer
651 ;; Preserve the data's unibyteness (for url-insert-file-contents). 650 ;; Preserve the data's unibyteness (for url-insert-file-contents).
652 (let ((default-enable-multibyte-characters (mm-multibyte-p))) 651 (let ((default-enable-multibyte-characters (mm-multibyte-p)))
653 (generate-new-buffer " *mm*"))) 652 (generate-new-buffer " *mm*"))
654 (insert-buffer-substring obuf beg) 653 (insert-buffer-substring obuf beg)
655 (current-buffer)))) 654 (current-buffer))))
656 655
@@ -701,7 +700,8 @@ external if displayed external."
701 (forward-line 1) 700 (forward-line 1)
702 (mm-insert-inline handle (mm-get-part handle)) 701 (mm-insert-inline handle (mm-get-part handle))
703 'inline) 702 'inline)
704 (if (and method ;; If nil, we always use "save". 703 (setq external
704 (and method ;; If nil, we always use "save".
705 (stringp method) ;; 'mailcap-save-binary-file 705 (stringp method) ;; 'mailcap-save-binary-file
706 (or (eq mm-enable-external t) 706 (or (eq mm-enable-external t)
707 (and (eq mm-enable-external 'ask) 707 (and (eq mm-enable-external 'ask)
@@ -714,9 +714,7 @@ external if displayed external."
714 (concat 714 (concat
715 " \"" (format method filename) "\"") 715 " \"" (format method filename) "\"")
716 "") 716 "")
717 "? "))))) 717 "? "))))))
718 (setq external t)
719 (setq external nil))
720 (if external 718 (if external
721 (mm-display-external 719 (mm-display-external
722 handle (or method 'mailcap-save-binary-file)) 720 handle (or method 'mailcap-save-binary-file))
@@ -1019,10 +1017,12 @@ external if displayed external."
1019 methods nil))) 1017 methods nil)))
1020 result)) 1018 result))
1021 1019
1022(defun mm-inlinable-p (handle) 1020(defun mm-inlinable-p (handle &optional type)
1023 "Say whether HANDLE can be displayed inline." 1021 "Say whether HANDLE can be displayed inline.
1022TYPE is the mime-type of the object; it defaults to the one given
1023in HANDLE."
1024 (unless type (setq type (mm-handle-media-type handle)))
1024 (let ((alist mm-inline-media-tests) 1025 (let ((alist mm-inline-media-tests)
1025 (type (mm-handle-media-type handle))
1026 test) 1026 test)
1027 (while alist 1027 (while alist
1028 (when (string-match (caar alist) type) 1028 (when (string-match (caar alist) type)
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 0a84f9b0c82..4b1069b26c1 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -324,13 +324,14 @@ directory, like `default-directory'."
324 :type '(repeat function) 324 :type '(repeat function)
325 :group 'ibuffer) 325 :group 'ibuffer)
326 326
327(eval-when-compile
327(defcustom ibuffer-compressed-file-name-regexp 328(defcustom ibuffer-compressed-file-name-regexp
328 (concat "\\.\\(" 329 (concat "\\.\\("
329 (regexp-opt '("arj" "bgz" "bz2" "gz" "lzh" "taz" "tgz" "zip" "z")) 330 (regexp-opt '("arj" "bgz" "bz2" "gz" "lzh" "taz" "tgz" "zip" "z"))
330 "\\)$") 331 "\\)$")
331 "Regexp to match compressed file names." 332 "Regexp to match compressed file names."
332 :type 'regexp 333 :type 'regexp
333 :group 'ibuffer) 334 :group 'ibuffer))
334 335
335(defcustom ibuffer-hook nil 336(defcustom ibuffer-hook nil
336 "Hook run when `ibuffer' is called." 337 "Hook run when `ibuffer' is called."
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 13b54a02467..78b523f3845 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -830,21 +830,22 @@ NOPUSH is t and EDIT is t."
830 830
831(defun isearch-update-ring (string &optional regexp) 831(defun isearch-update-ring (string &optional regexp)
832 "Add STRING to the beginning of the search ring. 832 "Add STRING to the beginning of the search ring.
833REGEXP says which ring to use." 833REGEXP if non-nil says use the regexp search ring."
834 (if regexp 834 (if regexp
835 (if (or (null regexp-search-ring) 835 (when (or (null regexp-search-ring)
836 (not (string= string (car regexp-search-ring)))) 836 (not (string= string (car regexp-search-ring))))
837 (progn 837 (when history-delete-duplicates
838 (push string regexp-search-ring) 838 (setq regexp-search-ring (delete string regexp-search-ring)))
839 (if (> (length regexp-search-ring) regexp-search-ring-max) 839 (push string regexp-search-ring)
840 (setcdr (nthcdr (1- search-ring-max) regexp-search-ring) 840 (when (> (length regexp-search-ring) regexp-search-ring-max)
841 nil)))) 841 (setcdr (nthcdr (1- search-ring-max) regexp-search-ring) nil)))
842 (if (or (null search-ring) 842 (when (or (null search-ring)
843 (not (string= string (car search-ring)))) 843 (not (string= string (car search-ring))))
844 (progn 844 (when history-delete-duplicates
845 (push string search-ring) 845 (setq search-ring (delete string search-ring)))
846 (if (> (length search-ring) search-ring-max) 846 (push string search-ring)
847 (setcdr (nthcdr (1- search-ring-max) search-ring) nil)))))) 847 (when (> (length search-ring) search-ring-max)
848 (setcdr (nthcdr (1- search-ring-max) search-ring) nil)))))
848 849
849;; Switching buffers should first terminate isearch-mode. 850;; Switching buffers should first terminate isearch-mode.
850;; ;; For Emacs 19, the frame switch event is handled. 851;; ;; For Emacs 19, the frame switch event is handled.
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 4b3202c6e41..28fcb70bb8b 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -114,8 +114,6 @@ Set to \"main\" at start if gdb-show-main is t.")
114Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS FP) 114Each element has the form (VARNUM EXPRESSION NUMCHILD TYPE VALUE STATUS FP)
115where STATUS is nil (unchanged), `changed' or `out-of-scope', FP the frame 115where STATUS is nil (unchanged), `changed' or `out-of-scope', FP the frame
116address for root variables.") 116address for root variables.")
117(defvar gdb-force-update t
118 "Non-nil means that view of watch expressions will be updated in the speedbar.")
119(defvar gdb-main-file nil "Source file from which program execution begins.") 117(defvar gdb-main-file nil "Source file from which program execution begins.")
120(defvar gdb-overlay-arrow-position nil) 118(defvar gdb-overlay-arrow-position nil)
121(defvar gdb-server-prefix nil) 119(defvar gdb-server-prefix nil)
@@ -527,7 +525,6 @@ With arg, use separate IO iff arg is positive."
527 gdb-current-language nil 525 gdb-current-language nil
528 gdb-frame-number nil 526 gdb-frame-number nil
529 gdb-var-list nil 527 gdb-var-list nil
530 gdb-force-update t
531 gdb-main-file nil 528 gdb-main-file nil
532 gdb-first-post-prompt t 529 gdb-first-post-prompt t
533 gdb-prompting nil 530 gdb-prompting nil
@@ -1381,7 +1378,6 @@ happens to be appropriate."
1381 ;; FIXME: with GDB-6 on Darwin, this might very well work. 1378 ;; FIXME: with GDB-6 on Darwin, this might very well work.
1382 ;; Only needed/used with speedbar/watch expressions. 1379 ;; Only needed/used with speedbar/watch expressions.
1383 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) 1380 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
1384 (setq gdb-force-update t)
1385 (if (string-equal gdb-version "pre-6.4") 1381 (if (string-equal gdb-version "pre-6.4")
1386 (gdb-var-update) 1382 (gdb-var-update)
1387 (gdb-var-update-1))))) 1383 (gdb-var-update-1)))))
@@ -3166,7 +3162,9 @@ BUFFER nil or omitted means use the current buffer."
3166 (if (and (match-string 3) gud-overlay-arrow-position) 3162 (if (and (match-string 3) gud-overlay-arrow-position)
3167 (let ((buffer (marker-buffer gud-overlay-arrow-position)) 3163 (let ((buffer (marker-buffer gud-overlay-arrow-position))
3168 (position (marker-position gud-overlay-arrow-position))) 3164 (position (marker-position gud-overlay-arrow-position)))
3169 (when (and buffer (string-equal (buffer-name buffer) (match-string 3))) 3165 (when (and buffer
3166 (string-equal (buffer-name buffer)
3167 (file-name-nondirectory (match-string 3))))
3170 (with-current-buffer buffer 3168 (with-current-buffer buffer
3171 (setq fringe-indicator-alist 3169 (setq fringe-indicator-alist
3172 (if (string-equal gdb-frame-number "0") 3170 (if (string-equal gdb-frame-number "0")
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 11259aa3965..5be88668353 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -49,7 +49,6 @@
49(defvar gdb-macro-info) 49(defvar gdb-macro-info)
50(defvar gdb-server-prefix) 50(defvar gdb-server-prefix)
51(defvar gdb-show-changed-values) 51(defvar gdb-show-changed-values)
52(defvar gdb-force-update)
53(defvar gdb-var-list) 52(defvar gdb-var-list)
54(defvar gdb-speedbar-auto-raise) 53(defvar gdb-speedbar-auto-raise)
55(defvar tool-bar-map) 54(defvar tool-bar-map)
@@ -442,37 +441,55 @@ required by the caller."
442 (buffer-name gud-comint-buffer)) 441 (buffer-name gud-comint-buffer))
443 (let* ((minor-mode (with-current-buffer buffer gud-minor-mode)) 442 (let* ((minor-mode (with-current-buffer buffer gud-minor-mode))
444 (window (get-buffer-window (current-buffer) 0)) 443 (window (get-buffer-window (current-buffer) 0))
444 (start (window-start window))
445 (p (window-point window))) 445 (p (window-point window)))
446 (cond 446 (cond
447 ((memq minor-mode '(gdbmi gdba)) 447 ((memq minor-mode '(gdbmi gdba))
448 (when (or gdb-force-update 448 (erase-buffer)
449 (not (save-excursion 449 (insert "Watch Expressions:\n")
450 (goto-char (point-min)) 450 (if gdb-speedbar-auto-raise
451 (looking-at "Watch Expressions:")))) 451 (raise-frame speedbar-frame))
452 (erase-buffer) 452 (let ((var-list gdb-var-list) parent)
453 (insert "Watch Expressions:\n") 453 (while var-list
454 (if gdb-speedbar-auto-raise 454 (let* (char (depth 0) (start 0) (var (car var-list))
455 (raise-frame speedbar-frame)) 455 (varnum (car var)) (expr (nth 1 var))
456 (let ((var-list gdb-var-list) parent) 456 (type (nth 3 var)) (value (nth 4 var))
457 (while var-list 457 (status (nth 5 var)))
458 (let* (char (depth 0) (start 0) (var (car var-list)) 458 (put-text-property
459 (varnum (car var)) (expr (nth 1 var)) 459 0 (length expr) 'face font-lock-variable-name-face expr)
460 (type (nth 3 var)) (value (nth 4 var)) 460 (put-text-property
461 (status (nth 5 var))) 461 0 (length type) 'face font-lock-type-face type)
462 (put-text-property 462 (while (string-match "\\." varnum start)
463 0 (length expr) 'face font-lock-variable-name-face expr) 463 (setq depth (1+ depth)
464 (put-text-property 464 start (1+ (match-beginning 0))))
465 0 (length type) 'face font-lock-type-face type) 465 (if (eq depth 0) (setq parent nil))
466 (while (string-match "\\." varnum start) 466 (if (or (equal (nth 2 var) "0")
467 (setq depth (1+ depth) 467 (and (equal (nth 2 var) "1")
468 start (1+ (match-beginning 0)))) 468 (string-match "char \\*$" type)))
469 (if (eq depth 0) (setq parent nil)) 469 (speedbar-make-tag-line
470 (if (or (equal (nth 2 var) "0") 470 'bracket ?? nil nil
471 (and (equal (nth 2 var) "1") 471 (concat expr "\t" value)
472 (string-match "char \\*$" type))) 472 (if (or parent (eq status 'out-of-scope))
473 nil 'gdb-edit-value)
474 nil
475 (if gdb-show-changed-values
476 (or parent (case status
477 (changed 'font-lock-warning-face)
478 (out-of-scope 'shadow)
479 (t t)))
480 t)
481 depth)
482 (if (eq status 'out-of-scope) (setq parent 'shadow))
483 (if (and (nth 1 var-list)
484 (string-match (concat varnum "\\.")
485 (car (nth 1 var-list))))
486 (setq char ?-)
487 (setq char ?+))
488 (if (string-match "\\*$" type)
473 (speedbar-make-tag-line 489 (speedbar-make-tag-line
474 'bracket ?? nil nil 490 'bracket char
475 (concat expr "\t" value) 491 'gdb-speedbar-expand-node varnum
492 (concat expr "\t" type "\t" value)
476 (if (or parent (eq status 'out-of-scope)) 493 (if (or parent (eq status 'out-of-scope))
477 nil 'gdb-edit-value) 494 nil 'gdb-edit-value)
478 nil 495 nil
@@ -483,37 +500,15 @@ required by the caller."
483 (t t))) 500 (t t)))
484 t) 501 t)
485 depth) 502 depth)
486 (if (eq status 'out-of-scope) (setq parent 'shadow)) 503 (speedbar-make-tag-line
487 (if (and (nth 1 var-list) 504 'bracket char
488 (string-match (concat varnum "\\.") 505 'gdb-speedbar-expand-node varnum
489 (car (nth 1 var-list)))) 506 (concat expr "\t" type)
490 (setq char ?-) 507 nil nil
491 (setq char ?+)) 508 (if (and (or parent status) gdb-show-changed-values)
492 (if (string-match "\\*$" type) 509 'shadow t)
493 (speedbar-make-tag-line 510 depth))))
494 'bracket char 511 (setq var-list (cdr var-list)))))
495 'gdb-speedbar-expand-node varnum
496 (concat expr "\t" type "\t" value)
497 (if (or parent (eq status 'out-of-scope))
498 nil 'gdb-edit-value)
499 nil
500 (if gdb-show-changed-values
501 (or parent (case status
502 (changed 'font-lock-warning-face)
503 (out-of-scope 'shadow)
504 (t t)))
505 t)
506 depth)
507 (speedbar-make-tag-line
508 'bracket char
509 'gdb-speedbar-expand-node varnum
510 (concat expr "\t" type)
511 nil nil
512 (if (and (or parent status) gdb-show-changed-values)
513 'shadow t)
514 depth))))
515 (setq var-list (cdr var-list))))
516 (setq gdb-force-update nil)))
517 (t (unless (and (save-excursion 512 (t (unless (and (save-excursion
518 (goto-char (point-min)) 513 (goto-char (point-min))
519 (looking-at "Current Stack:")) 514 (looking-at "Current Stack:"))
@@ -544,6 +539,7 @@ required by the caller."
544 (t (error "Should never be here"))) 539 (t (error "Should never be here")))
545 frame t)))) 540 frame t))))
546 (setq gud-last-speedbar-stackframe gud-last-last-frame)))) 541 (setq gud-last-speedbar-stackframe gud-last-last-frame))))
542 (set-window-start window start)
547 (set-window-point window p)))) 543 (set-window-point window p))))
548 544
549 545
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index e92bb1053a6..950e0cba06f 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -923,8 +923,9 @@ Returns new value of point in all cases."
923 (or arg (setq arg 1)) 923 (or arg (setq arg 1))
924 (if (< arg 0) (forward-char 1)) 924 (if (< arg 0) (forward-char 1))
925 (and (/= arg 0) 925 (and (/= arg 0)
926 (re-search-backward "^\\s(\\|^\\s-*sub\\b[^{]+{\\|^\\s-*format\\b[^=]*=\\|^\\." 926 (re-search-backward
927 nil 'move arg) 927 "^\\s(\\|^\\s-*sub\\b[ \t\n]*\\_<[^{]+{\\|^\\s-*format\\b[^=]*=\\|^\\."
928 nil 'move arg)
928 (goto-char (1- (match-end 0)))) 929 (goto-char (1- (match-end 0))))
929 (point)) 930 (point))
930 931
diff --git a/lisp/simple.el b/lisp/simple.el
index bf620c2533d..bd8a9d1a284 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1269,7 +1269,8 @@ makes the search case-sensitive."
1269(defvar minibuffer-temporary-goal-position nil) 1269(defvar minibuffer-temporary-goal-position nil)
1270 1270
1271(defun next-history-element (n) 1271(defun next-history-element (n)
1272 "Insert the next element of the minibuffer history into the minibuffer." 1272 "Puts next element of the minibuffer history in the minibuffer.
1273With argument N, it uses the Nth following element."
1273 (interactive "p") 1274 (interactive "p")
1274 (or (zerop n) 1275 (or (zerop n)
1275 (let ((narg (- minibuffer-history-position n)) 1276 (let ((narg (- minibuffer-history-position n))
@@ -1312,7 +1313,8 @@ makes the search case-sensitive."
1312 (goto-char (or minibuffer-temporary-goal-position (point-max)))))) 1313 (goto-char (or minibuffer-temporary-goal-position (point-max))))))
1313 1314
1314(defun previous-history-element (n) 1315(defun previous-history-element (n)
1315 "Inserts the previous element of the minibuffer history into the minibuffer." 1316 "Puts previous element of the minibuffer history in the minibuffer.
1317With argument N, it uses the Nth previous element."
1316 (interactive "p") 1318 (interactive "p")
1317 (next-history-element (- n))) 1319 (next-history-element (- n)))
1318 1320
diff --git a/lisp/term.el b/lisp/term.el
index be4aefaba72..a03970a368b 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -3320,7 +3320,7 @@ See `term-prompt-regexp'."
3320 ((eq char ?r) 3320 ((eq char ?r)
3321 (term-set-scroll-region 3321 (term-set-scroll-region
3322 (1- term-terminal-previous-parameter) 3322 (1- term-terminal-previous-parameter)
3323 term-terminal-parameter)) 3323 (1- term-terminal-parameter)))
3324 (t))) 3324 (t)))
3325 3325
3326(defun term-set-scroll-region (top bottom) 3326(defun term-set-scroll-region (top bottom)