[PATCH] Documentation: update CodingStyle tips for Emacs users

From: Teemu Likonen
Date: Sun Jan 18 2009 - 12:18:49 EST


With the previous Emacs tips example the kernel style was made available
for files in the kernel-tree only. This patch updates the tip to add
separate cc-mode indent style; it makes the kernel style easily
available for any filetype mode that is managed by the Emacs cc-mode.

We also fix the filename regexp in the example: Elisp function
buffer-file-name returns full pathname, not a path relative to user's
home directory. Hence a tilde (~) can't be used to refer to home
directory (as the previous code did).

Signed-off-by: Teemu Likonen <tlikonen@xxxxxx>
---
Documentation/CodingStyle | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 1875e50..2cda242 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -483,20 +483,27 @@ values. To do the latter, you can stick the following in your .emacs file:
(* (max steps 1)
c-basic-offset)))

+(add-hook 'c-mode-common-hook
+ (lambda ()
+ ;; Add kernel style
+ (c-add-style
+ "linux-tabs-only"
+ '("linux" (c-offsets-alist
+ (arglist-cont-nonempty
+ c-lineup-gcc-asm-reg
+ c-lineup-arglist-tabs-only))))))
+
(add-hook 'c-mode-hook
(lambda ()
(let ((filename (buffer-file-name)))
;; Enable kernel mode for the appropriate files
(when (and filename
- (string-match "~/src/linux-trees" filename))
+ (string-match "src/linux-trees" filename))
(setq indent-tabs-mode t)
- (c-set-style "linux")
- (c-set-offset 'arglist-cont-nonempty
- '(c-lineup-gcc-asm-reg
- c-lineup-arglist-tabs-only))))))
+ (c-set-style "linux-tabs-only")))))

This will make emacs go better with the kernel coding style for C
-files below ~/src/linux-trees.
+files which pathname matches src/linux-trees.

But even if you fail in getting emacs to do sane formatting, not
everything is lost: use "indent".
--
1.6.1.156.gb648d

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/