emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r105590: progmodes/cc-menus.el (cc-im


From: Alan Mackenzie
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105590: progmodes/cc-menus.el (cc-imenu-c++-generic-expression): Make it handle
Date: Sat, 27 Aug 2011 08:41:23 +0000
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105590
committer: Alan Mackenzie <address@hidden>
branch nick: trunk
timestamp: Sat 2011-08-27 08:41:23 +0000
message:
  progmodes/cc-menus.el (cc-imenu-c++-generic-expression): Make it handle
  function pointer parameters properly.
modified:
  lisp/ChangeLog
  lisp/progmodes/cc-menus.el
  lisp/textmodes/paragraphs.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-08-27 08:38:33 +0000
+++ b/lisp/ChangeLog    2011-08-27 08:41:23 +0000
@@ -1,3 +1,8 @@
+2011-08-27  Alan Mackenzie  <address@hidden>
+
+       * progmodes/cc-menus.el (cc-imenu-c++-generic-expression): Make it
+       handle function pointer parameters properly.
+
 2011-08-27  Martin Rudalics  <address@hidden>
 
        * window.el (display-buffer-reuse-window): Fix case where

=== modified file 'lisp/progmodes/cc-menus.el'
--- a/lisp/progmodes/cc-menus.el        2011-01-26 08:36:39 +0000
+++ b/lisp/progmodes/cc-menus.el        2011-08-27 08:41:23 +0000
@@ -108,8 +108,11 @@
        "[^" c-alnum "_:<>~]"                  ; match any non-identifier char
        "\\([" c-alpha "_][" c-alnum "_:<>~]*\\)" ; match function name
        "\\([ \t\n]\\|\\\\\n\\)*("            ; see above, BUT the arg list
-       "\\([ \t\n]\\|\\\\\n\\)*\\([^ \t\n(*][^)]*\\)?)" ; must not start
-       "\\([ \t\n]\\|\\\\\n\\)*[^ \t\n;(]"    ; with an asterisk or parentheses
+       "\\([ \t\n]\\|\\\\\n\\)*"             ; must not start
+       "\\([^ \t\n(*]"                       ; with an asterisk or parentheses
+       "[^()]*\\(([^()]*)[^()]*\\)*"         ; Maybe function pointer arguments
+       "\\)?)"
+       "\\([ \t\n]\\|\\\\\n\\)*[^ \t\n;(]"
        ) 1)
     ;; Special case for definitions using phony prototype macros like:
     ;; `int main _PROTO( (int argc,char *argv[]) )'.

=== modified file 'lisp/textmodes/paragraphs.el'
--- a/lisp/textmodes/paragraphs.el      2011-02-28 01:07:29 +0000
+++ b/lisp/textmodes/paragraphs.el      2011-08-27 08:41:23 +0000
@@ -456,21 +456,25 @@
         (sentence-end (sentence-end)))
     (while (< arg 0)
       (let ((pos (point))
-           ;; We used to use (start-of-paragraph-text), but this can
-           ;; prevent sentence-end from matching if it is anchored at
-           ;; BOL and the paragraph starts indented.
-           (par-beg (save-excursion (backward-paragraph) (point))))
-       (if (and (re-search-backward sentence-end par-beg t)
-               (or (< (match-end 0) pos)
-                   (re-search-backward sentence-end par-beg t)))
-          (goto-char (match-end 0))
-        (goto-char par-beg)))
+           (par-beg
+            (save-excursion
+              (start-of-paragraph-text)
+              ;; Move PAR-BEG back over indentation
+              ;; to allow s1entence-end to match if it is anchored at
+              ;; BOL and the paragraph starts indented.
+              (beginning-of-line)
+              (point))))
+       (if (and (re-search-backward sentence-end par-beg t)
+                (or (< (match-end 0) pos)
+                    (re-search-backward sentence-end par-beg t)))
+           (goto-char (match-end 0))
+         (goto-char par-beg)))
       (setq arg (1+ arg)))
     (while (> arg 0)
       (let ((par-end (save-excursion (end-of-paragraph-text) (point))))
-       (if (re-search-forward sentence-end par-end t)
-          (skip-chars-backward " \t\n")
-        (goto-char par-end)))
+       (if (re-search-forward sentence-end par-end t)
+           (skip-chars-backward " \t\n")
+         (goto-char par-end)))
       (setq arg (1- arg)))
     (constrain-to-field nil opoint t)))
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]