emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master a0363ff: lisp/autoinsert.el: Change default of auto


From: Rüdiger Sonderfeld
Subject: [Emacs-diffs] master a0363ff: lisp/autoinsert.el: Change default of auto-insert-alist.
Date: Thu, 04 Dec 2014 06:10:56 +0000

branch: master
commit a0363ffa9931cf751a92577ab1b0a7acbae4c4e7
Author: Rüdiger Sonderfeld <address@hidden>
Commit: Rüdiger Sonderfeld <address@hidden>

    lisp/autoinsert.el: Change default of auto-insert-alist.
    
    * lisp/autoinsert.el (auto-insert-alist): Update C/C++ header and
    program support to match more extensions.  Replace non-alnum
    characters when generating include guards (headers) and check for more
    extensions when generating includes (programs)
    (bug#19254).
---
 lisp/ChangeLog     |    9 +++++++++
 lisp/autoinsert.el |   24 +++++++++++++-----------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2ff0a2d..819e0d0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2014-12-04  Rupert Swarbrick  <address@hidden> (tiny change)
+           Rüdiger Sonderfeld  <address@hidden>
+
+       * autoinsert.el (auto-insert-alist): Update C/C++ header and
+       program support to match more extensions.  Replace non-alnum
+       characters when generating include guards (headers) and check for
+       more extensions when generating includes (programs)
+       (bug#19254).
+
 2014-12-03  Eric S. Raymond  <address@hidden>
 
        * files.el (file-tree-walk): Fix docstring.
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el
index 5eb5170..a6104cc 100644
--- a/lisp/autoinsert.el
+++ b/lisp/autoinsert.el
@@ -91,23 +91,24 @@ If this contains a %s, that will be replaced by the 
matching rule."
 
 
 (defcustom auto-insert-alist
-  '((("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header")
-     (upcase (concat (file-name-nondirectory
-                     (file-name-sans-extension buffer-file-name))
-                    "_"
-                    (file-name-extension buffer-file-name)))
+  '((("\\.\\([Hh]\\|hh\\|hpp\\|hxx\\|h\\+\\+\\)\\'" . "C / C++ header")
+     (replace-regexp-in-string
+      "[^A-Z0-9]" "_"
+      (replace-regexp-in-string
+       "\\+" "P"
+       (upcase (file-name-nondirectory buffer-file-name))))
      "#ifndef " str \n
      "#define " str "\n\n"
      _ "\n\n#endif")
 
-    (("\\.\\([Cc]\\|cc\\|cpp\\)\\'" . "C / C++ program")
+    (("\\.\\([Cc]\\|cc\\|cpp\\|cxx\\|c\\+\\+\\)\\'" . "C / C++ program")
      nil
      "#include \""
-     (let ((stem (file-name-sans-extension buffer-file-name)))
-       (cond ((file-exists-p (concat stem ".h"))
-             (file-name-nondirectory (concat stem ".h")))
-            ((file-exists-p (concat stem ".hh"))
-             (file-name-nondirectory (concat stem ".hh")))))
+     (let ((stem (file-name-sans-extension buffer-file-name))
+           ret)
+       (dolist (ext '("H" "h" "hh" "hpp" "hxx" "h++") ret)
+         (when (file-exists-p (concat stem "." ext))
+           (setq ret (file-name-nondirectory (concat stem "." ext))))))
      & ?\" | -10)
 
     (("[Mm]akefile\\'" . "Makefile") . "makefile.inc")
@@ -305,6 +306,7 @@ file-name or one relative to `auto-insert-directory' or a 
function to call.
 ACTION may also be a vector containing several successive single actions as
 described above, e.g. [\"header.insert\" date-and-author-update]."
   :type 'sexp
+  :version "25.1"
   :group 'auto-insert)
 
 



reply via email to

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