aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorAlan Mackenzie2011-10-28 14:02:04 +0000
committerAlan Mackenzie2011-10-28 14:02:04 +0000
commitbc97a826f8ea89a269f6043be3148930f023e2b2 (patch)
treee927788ae7ba1058100dfb6c211ff57e6440de4c /lisp
parentc0f13227ab16ad9a87a16182e9d9ace5d2f7a6d9 (diff)
parent9aba60432c25b060680eb7db698b20b05d7b94a0 (diff)
downloademacs-bc97a826f8ea89a269f6043be3148930f023e2b2.tar.gz
emacs-bc97a826f8ea89a269f6043be3148930f023e2b2.zip
Merge
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog58
-rw-r--r--lisp/mail/rmail.el1
-rw-r--r--lisp/progmodes/gdb-mi.el42
-rw-r--r--lisp/vc/log-edit.el14
4 files changed, 93 insertions, 22 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6aa1bddb9f3..bf4d87d3405 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,57 @@
12011-10-28 Alan Mackenzie <acm@muc.de>
2
3 Amend to indent and fontify macros "which include their own semicolon"
4 correctly, using the "virtual semicolon" mechanism.
5
6 * cc-defs.el: Update "virtual semicolon" comments.
7
8 * cc-engine.el (c-crosses-statement-barrier-p): Recoded to scan one line at
9 at time rather than having \n and \r explicitly in c-stmt-delim-chars
10 (for some modes, e.g. AWK).
11 (c-forward-label): Amend for virtual semicolons.
12 (c-at-macro-vsemi-p, c-macro-vsemi-status-unknown-p): New functions
13
14 * cc-fonts.el (c-font-lock-declarations): Take account of the new C macros.
15
16 * cc-langs.el (c-at-vsemi-p-fn, c-vsemi-status-unknown-p-fn): move to
17 earlier in the file.
18 (c-opt-cpp-symbol, c-line-comment-start-regexp): New language variables.
19 (c-opt-cpp-macro-define): Make into a full language variable.
20 (c-stmt-delim-chars, c-stmt-delim-chars-with-comma): Special value for
21 AWK Mode (including \n, \r) removed, no longer needed.
22
23 * cc-mode.el (c-mode, c++-mode, objc-mode): Invoke
24 c-make-macro-with-semi-re. (Erroneously committed early, in previous
25 version, 5.259.)
26
27 * cc-vars.el (c-macro-with-semi-re, c-macro-names-with-semicolon): New
28 variables.
29 (c-make-macro-with-semi-re): New function
30
31 * cc-mode.texi (Indentation Commands): Mention "macros with semicolons".
32 (Other Special Indentations): Add an xref to "Macros with ;".
33 (Customizing Macros): Add stuff about syntax in macros. Add an xref to
34 "Macros with ;".
35 (Macros with ;): New page.
36
37
38
392011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
40
41 * vc/log-edit.el: Fill empty field rather than adding new one.
42 (log-edit-add-field): New function.
43 (log-edit-insert-changelog): Use it.
44
452011-10-28 Mark Lillibridge <mark.lillibridge@hp.com> (tiny change)
46
47 * mail/rmail.el (rmail-mode-map): Add M-C-f as in rmailsum (bug#9802).
48
492011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
50
51 * progmodes/gdb-mi.el: Warn the user when -i=mi is missing.
52 (gdb--check-interpreter): New function.
53 (gdb): Use it.
54
12011-10-27 Glenn Morris <rgm@gnu.org> 552011-10-27 Glenn Morris <rgm@gnu.org>
2 56
3 * emacs-lisp/cl-extra.el (most-positive-float, most-negative-float) 57 * emacs-lisp/cl-extra.el (most-positive-float, most-negative-float)
@@ -21,8 +75,8 @@
21 * subr.el (change-major-mode-after-body-hook): New hook. 75 * subr.el (change-major-mode-after-body-hook): New hook.
22 (run-mode-hooks): Run it. 76 (run-mode-hooks): Run it.
23 77
24 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use 78 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
25 change-major-mode-before-body-hook. 79 Use change-major-mode-before-body-hook.
26 80
27 * simple.el (fundamental-mode): 81 * simple.el (fundamental-mode):
28 * emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28 82 * emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 770050efb08..603a615192a 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1008,6 +1008,7 @@ The buffer is expected to be narrowed to just the header of the message."
1008 (define-key map "\e\C-l" 'rmail-summary-by-labels) 1008 (define-key map "\e\C-l" 'rmail-summary-by-labels)
1009 (define-key map "\e\C-r" 'rmail-summary-by-recipients) 1009 (define-key map "\e\C-r" 'rmail-summary-by-recipients)
1010 (define-key map "\e\C-s" 'rmail-summary-by-regexp) 1010 (define-key map "\e\C-s" 'rmail-summary-by-regexp)
1011 (define-key map "\e\C-f" 'rmail-summary-by-senders)
1011 (define-key map "\e\C-t" 'rmail-summary-by-topic) 1012 (define-key map "\e\C-t" 'rmail-summary-by-topic)
1012 (define-key map "m" 'rmail-mail) 1013 (define-key map "m" 'rmail-mail)
1013 (define-key map "\em" 'rmail-retry-failure) 1014 (define-key map "\em" 'rmail-retry-failure)
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 22db7b2e5f4..dde00d753ac 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -43,21 +43,10 @@
43 43
44;; M-x gdb will start the debugger. 44;; M-x gdb will start the debugger.
45 45
46;; This file uses GDB/MI as the primary interface to GDB. It is still under 46;; This file uses GDB/MI as the primary interface to GDB. It runs gdb with
47;; development and is part of a process to migrate Emacs from annotations (as 47;; GDB/MI (-interp=mi) and access CLI using "-interpreter-exec console
48;; used in gdb-ui.el) to GDB/MI. It runs gdb with GDB/MI (-interp=mi) and 48;; cli-command". This code works without gdb-ui.el and uses MI tokens instead
49;; access CLI using "-interpreter-exec console cli-command". This code works 49;; of queues. Eventually MI should be asynchronous.
50;; without gdb-ui.el and uses MI tokens instead of queues. Eventually MI
51;; should be asynchronous.
52
53;; This mode will PARTLY WORK WITH RECENT GDB RELEASES (status in modeline
54;; doesn't update properly when execution commands are issued from GUD buffer)
55;; and WORKS BEST when GDB runs asynchronously: maint set linux-async on.
56;;
57;; You need development version of GDB 7.0 for the thread buffer to work.
58
59;; This file replaces gdb-ui.el and is for development with GDB. Use the
60;; release branch of Emacs 22 for the latest version of gdb-ui.el.
61 50
62;; Windows Platforms: 51;; Windows Platforms:
63 52
@@ -599,6 +588,22 @@ NOARG must be t when this macro is used outside `gud-def'"
599 (concat (gdb-gud-context-command ,cmd1 ,noall) " " ,cmd2) 588 (concat (gdb-gud-context-command ,cmd1 ,noall) " " ,cmd2)
600 ,(when (not noarg) 'arg))) 589 ,(when (not noarg) 'arg)))
601 590
591(defun gdb--check-interpreter (proc string)
592 (unless (zerop (length string))
593 (let ((filter (process-get proc 'gud-normal-filter)))
594 (set-process-filter proc filter)
595 (unless (memq (aref string 0) '(?^ ?~ ?@ ?& ?* ?=))
596 ;; Apparently we're not running with -i=mi.
597 (let ((msg "Error: you did not specify -i=mi on GDB's command line!"))
598 (message msg)
599 (setq string (concat (propertize msg 'font-lock-face 'error)
600 "\n" string)))
601 ;; Use the old gud-gbd filter, not because it works, but because it
602 ;; will properly display GDB's answers rather than hanging waiting for
603 ;; answers that aren't coming.
604 (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter))
605 (funcall filter proc string))))
606
602;;;###autoload 607;;;###autoload
603(defun gdb (command-line) 608(defun gdb (command-line)
604 "Run gdb on program FILE in buffer *gud-FILE*. 609 "Run gdb on program FILE in buffer *gud-FILE*.
@@ -665,6 +670,13 @@ detailed description of this mode.
665 "Multiple debugging requires restarting in text command mode")) 670 "Multiple debugging requires restarting in text command mode"))
666 ;; 671 ;;
667 (gud-common-init command-line nil 'gud-gdbmi-marker-filter) 672 (gud-common-init command-line nil 'gud-gdbmi-marker-filter)
673
674 ;; Setup a temporary process filter to warn when GDB was not started
675 ;; with -i=mi.
676 (let ((proc (get-buffer-process gud-comint-buffer)))
677 (process-put proc 'gud-normal-filter (process-filter proc))
678 (set-process-filter proc #'gdb--check-interpreter))
679
668 (set (make-local-variable 'gud-minor-mode) 'gdbmi) 680 (set (make-local-variable 'gud-minor-mode) 'gdbmi)
669 (setq comint-input-sender 'gdb-send) 681 (setq comint-input-sender 'gdb-send)
670 (when (ring-empty-p comint-input-ring) ; cf shell-mode 682 (when (ring-empty-p comint-input-ring) ; cf shell-mode
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index c421304442f..f57429c76c7 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -593,6 +593,13 @@ to build the Fixes: header.")
593(put 'log-edit-rewrite-fixes 'safe-local-variable 593(put 'log-edit-rewrite-fixes 'safe-local-variable
594 (lambda (v) (and (stringp (car-safe v)) (stringp (cdr v))))) 594 (lambda (v) (and (stringp (car-safe v)) (stringp (cdr v)))))
595 595
596(defun log-edit-add-field (field value)
597 (rfc822-goto-eoh)
598 (if (save-excursion (re-search-backward (concat "^" field ":\\([ \t]*\\)$")
599 nil t))
600 (replace-match (concat " " value) t t nil 1)
601 (insert field ": " value "\n" (if (looking-at "\n") "" "\n"))))
602
596(defun log-edit-insert-changelog (&optional use-first) 603(defun log-edit-insert-changelog (&optional use-first)
597 "Insert a log message by looking at the ChangeLog. 604 "Insert a log message by looking at the ChangeLog.
598The idea is to write your ChangeLog entries first, and then use this 605The idea is to write your ChangeLog entries first, and then use this
@@ -620,9 +627,7 @@ regardless of user name or time."
620 (log-edit-insert-changelog-entries (log-edit-files))))) 627 (log-edit-insert-changelog-entries (log-edit-files)))))
621 (log-edit-set-common-indentation) 628 (log-edit-set-common-indentation)
622 ;; Add an Author: field if appropriate. 629 ;; Add an Author: field if appropriate.
623 (when author 630 (when author (log-edit-add-field "Author" author))
624 (rfc822-goto-eoh)
625 (insert "Author: " author "\n" (if (looking-at "\n") "" "\n")))
626 ;; Add a Fixes: field if applicable. 631 ;; Add a Fixes: field if applicable.
627 (when (consp log-edit-rewrite-fixes) 632 (when (consp log-edit-rewrite-fixes)
628 (rfc822-goto-eoh) 633 (rfc822-goto-eoh)
@@ -632,8 +637,7 @@ regardless of user name or time."
632 (fixes (match-substitute-replacement 637 (fixes (match-substitute-replacement
633 (cdr log-edit-rewrite-fixes)))) 638 (cdr log-edit-rewrite-fixes))))
634 (delete-region start end) 639 (delete-region start end)
635 (rfc822-goto-eoh) 640 (log-edit-add-field "Fixes" fixes))))
636 (insert "Fixes: " fixes "\n" (if (looking-at "\n") "" "\n")))))
637 (and log-edit-strip-single-file-name 641 (and log-edit-strip-single-file-name
638 (progn (rfc822-goto-eoh) 642 (progn (rfc822-goto-eoh)
639 (if (looking-at "\n") (forward-char 1)) 643 (if (looking-at "\n") (forward-char 1))