Index: gdb/gdb-code-style.el |
diff --git a/gdb/gdb-code-style.el b/gdb/gdb-code-style.el |
new file mode 100644 |
index 0000000000000000000000000000000000000000..28028e6aa341bdbcf428f39a853f6939a020ea7a |
--- /dev/null |
+++ b/gdb/gdb-code-style.el |
@@ -0,0 +1,77 @@ |
+;;; gdb-code-style.el --- code style checker for GDB contributors |
+ |
+;; Copyright (C) 2012 Free Software Foundation, Inc. |
+ |
+;; Author: Yao Qi <yao@codesourcery.com> |
+;; Created: 17 April 2012 |
+;; Version: 1.0 |
+;; Keywords: GDB |
+ |
+;; This program is free software; you can redistribute it and/or modify |
+;; it under the terms of the GNU General Public License as published by |
+;; the Free Software Foundation; either version 3 of the License, or |
+;; (at your option) any later version. |
+ |
+;; This program is distributed in the hope that it will be useful, |
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+;; GNU General Public License for more details. |
+ |
+;; You should have received a copy of the GNU General Public License |
+;; along with this program. If not, see <http://www.gnu.org/licenses/>. |
+ |
+;;; Commentary: |
+ |
+;; These hooks defined in this file provide some code style checks in |
+;; Emacs. You can load it in your ~/.emacs, |
+;; (load-file "~/$(GDB_SOURCE)/gdb/gdb-code-style.el") |
+ |
+ |
+;;; Code: |
+ |
+;; Don't use these functions. Their alternatives are better. This list |
+;; of functions is from ARI rules. |
+(defun gdb-fun-name-hook () |
+ (font-lock-add-keywords |
+ nil |
+ '(("\\<\\(\\(xasprintf\\|abort\\|vasprintf\\|strerror\\|strdup\\|asprintf\\|sprintf\\)[ ]*\(\\)" 1 font-lock-warning-face t)))) |
+(add-hook 'c-mode-common-hook 'gdb-fun-name-hook) |
+ |
+;; Don't include these files directly. |
+(defun gdb-include-hook () |
+ (font-lock-add-keywords |
+ nil |
+ '(("\\<include[ ]*\\(<\\(sys/stat\\|stat\\|dirent\\|wait\\|sys/wait\\|assert\\)\\.h>\\)" 1 font-lock-warning-face t)))) |
+ |
+(add-hook 'c-mode-common-hook 'gdb-include-hook) |
+ |
+;; Check marker up. If the marker up is missing, like, |
+;; warning ("abc"); |
+;; The '(' and '"' will be highlight. |
+(defun gdb-markup-hook () |
+ (font-lock-add-keywords |
+ nil |
+ '(("\\<\\(warning\\|error\\)[ ]*\\(\([^_]\\)" 2 font-lock-warning-face t)))) |
+ |
+(add-hook 'c-mode-common-hook 'gdb-markup-hook) |
+ |
+(defun gdb-comment-hook () |
+ ;; A space should follow "/*", otherwise report a warning. |
+ ;; If the comment is like: |
+ ;; /*F. */ |
+ ;; The 'F' will be highlight. |
+ (font-lock-add-keywords |
+ nil |
+ '(("/\\*\\([^ ]\\).*\\*/" 1 font-lock-warning-face t))) |
+ ;; Two spaces are needed between "." and "*/". Report warning if there |
+ ;; is no space (".*/") or only one space (". */"). |
+ ;; If the comment is like: |
+ ;; /* ABC. */ or /* ABC.*/ |
+ ;; the '.' is highlight. |
+ (font-lock-add-keywords |
+ nil |
+ '(("\\<[[:ascii:]]*\\(\\.[ ]?\\)\\*/" 1 font-lock-warning-face t))) |
+ ) |
+(add-hook 'c-mode-common-hook 'gdb-comment-hook) |
+ |
+;;; gdb-code-style.el ends here |