changeset 19254:81353d4e05b7

(c-styles-alist): In "java" style, set c-hanging-comment-starter-p to nil to preserve Javadoc starter lines. (c-set-style-2): Fixed broken implementation of inherited styles. (c-set-style): Call c-initialize-builtin-style. (c-initialize-builtin-style): Handle c-style-variables-are-local-p.
author Richard M. Stallman <rms@gnu.org>
date Sat, 09 Aug 1997 18:36:45 +0000
parents 2bda7e07f25d
children 40a9475f22ea
files lisp/progmodes/cc-styles.el
diffstat 1 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/cc-styles.el	Sat Aug 09 18:31:43 1997 +0000
+++ b/lisp/progmodes/cc-styles.el	Sat Aug 09 18:36:45 1997 +0000
@@ -7,7 +7,7 @@
 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.13
+;; Version:    5.14
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.
@@ -128,6 +128,8 @@
     ("java"
      (c-basic-offset . 2)
      (c-comment-only-line-offset . (0 . 0))
+     ;; the following preserves Javadoc starter lines
+     (c-hanging-comment-starter-p . nil)
      (c-offsets-alist . ((topmost-intro-cont    . +)
 			 (statement-block-intro . +)
  			 (knr-argdecl-intro     . 5)
@@ -209,17 +211,19 @@
   ;; Recursively set the base style.  If no base style is given, the
   ;; default base style is "cc-mode" and the recursion stops.  Be sure
   ;; to detect loops.
-  (if (not (string-equal style "cc-mode"))
-      (let ((base (if (stringp (car basestyles))
-		      (downcase (car basestyles))
-		    "cc-mode")))
-	(if (memq base basestyles)
-	    (error "Style loop detected: %s in %s" base basestyles))
-	(c-set-style-2 base (cons base basestyles))))
   (let ((vars (cdr (or (assoc (downcase style) c-style-alist)
 		       (assoc (upcase style) c-style-alist)
 		       (assoc style c-style-alist)
 		       (error "Undefined style: %s" style)))))
+    (if (not (string-equal style "cc-mode"))
+	(let ((base (if (stringp (car vars))
+			(prog1
+			    (downcase (car vars))
+			  (setq vars (cdr vars)))
+		      "cc-mode")))
+	  (if (memq base basestyles)
+	      (error "Style loop detected: %s in %s" base basestyles))
+	  (c-set-style-2 base (cons base basestyles))))
     (mapcar 'c-set-style-1 vars)))
     
 (defvar c-set-style-history nil)
@@ -239,6 +243,7 @@
 		       (completing-read prompt c-style-alist nil t
 					(cons c-indentation-style 0)
 					'c-set-style-history))))
+  (c-initialize-builtin-style)
   (c-set-style-2 stylename nil)
   (setq c-indentation-style stylename)
   (c-keep-region-active))
@@ -577,7 +582,10 @@
 			)))
 	;; the default style is now GNU.  This can be overridden in
 	;; c-mode-common-hook or {c,c++,objc,java}-mode-hook.
-	(c-set-style c-site-default-style))))
+	(c-set-style c-site-default-style)))
+  (if c-style-variables-are-local-p
+      (c-make-styles-buffer-local)))
+
 
 (defun c-make-styles-buffer-local ()
   "Make all CC Mode style variables buffer local.