issue with route

JINMEI Tatuya / 神明達哉 jinmei at isl.rdc.toshiba.co.jp
Fri Jun 3 17:16:35 PDT 2005


(I'm afraid we're going to an off-topic.  If this message needs a
response, we should perhaps do that off-list.)

>>>>> On Fri, 3 Jun 2005 15:40:14 -0700, 
>>>>> "Li, Qing" <qing.li at bluecoat.com> said:

>> Are you perhaps asking for .emacs setting which conforms to this (the
>> four-space) style?

>     Yes, do you have one ?

I'm using this one.

					JINMEI, Tatuya
					Communication Platform Lab.
					Corporate R&D Center, Toshiba Corp.
					jinmei at isl.rdc.toshiba.co.jp

(add-hook 'c-mode-common-hook
	  (function
	   (lambda ()
	     (c-set-style "bsd")
	     (c-set-offset 'statement 'netbsd-knf-lineup-statement)
	     (c-set-offset 'arglist-intro 'netbsd-knf-lineup-arglist)
	     (c-set-offset 'arglist-cont 'netbsd-knf-lineup-arglist)
             (c-set-offset 'arglist-cont-nonempty 'netbsd-knf-lineup-arglist)
...;;(other personal settings)
)))

(defun netbsd-knf-lineup-arglist (langelem)
  (let ((syntax (car (c-guess-basic-syntax)))
	(langelem-col (c-langelem-col langelem t))
	(head)
	)
    (save-excursion
      (while (memq (car syntax)
		   '(arglist-cont-nonempty statement-cont
					   arglist-intro arglist-cont))
	(goto-char (cdr syntax))
	(setq syntax (car (c-guess-basic-syntax))))
      (if (eq (car syntax) 'statement)
	  (goto-char (netbsd-knf-statement-head)))
      (beginning-of-line)
      (skip-chars-forward " \t")
      (+ (- (current-column) langelem-col) (/ c-basic-offset 2)))))

(defun netbsd-knf-statement-head ()
  (let ((cp (point)))
    (save-excursion
      (backward-up-list 1)
      (cond ((netbsd-knf-after-for-loop-p (point))
	     (beginning-of-line)
	     (skip-chars-forward " \t")
	     (point))
	   (t cp)))))

(defun netbsd-knf-lineup-statement (langelem)
  (let ((syntax (car (c-guess-basic-syntax))))
    (cond ((and (cdr syntax)	;to handle (comment-intro) (statement . xx)
		(netbsd-knf-after-for-loop-p (cdr syntax)))
	   (save-excursion
	     (goto-char (cdr syntax))
	     (beginning-of-line)
	     (skip-chars-forward " \t")
	     (+ (- (current-column) (c-langelem-col langelem t))
		(/ c-basic-offset 2))))
	(t 0))))

(defun netbsd-knf-after-for-loop-p (pos)
  "True if POS is just after `for ('"
  (save-excursion
    (goto-char pos)
    (condition-case ()
	(progn (backward-word 1)
	       (looking-at "\\bfor ("))
      (beginning-of-buffer nil))))


More information about the freebsd-net mailing list