* CC Mode 5.28 (C); struct braces are not indented in GNU style
@ 2006-11-29 4:56 John Darrington
2006-11-30 19:48 ` Richard Stallman
0 siblings, 1 reply; 3+ messages in thread
From: John Darrington @ 2006-11-29 4:56 UTC (permalink / raw
GNU coding standards say:
"It is important to put the open-brace that starts the body of a C
function in column one, and avoid putting any other open-brace or
open-parenthesis or open-bracket in column one"
But given a code snippet like:
struct foobar
{
int x;
};
indent-region reformats it as:
struct foobar
{
int x;
};
which is contrary to the second clause of this sentence.
Emacs : GNU Emacs 21.4.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2006-10-25 on raven, modified by Debian
Package: CC Mode 5.28 (C)
Buffer Style: gnu
c-emacs-features: (1-bit)
current state:
==============
(setq
c-basic-offset 2
c-comment-only-line-offset '(0 . 0)
c-block-comment-prefix ""
c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (other . "//+\\|\\**"))
c-cleanup-list '(scope-operator)
c-hanging-braces-alist '((brace-list-open) (brace-entry-open)
(substatement-open after)
(block-close . c-snug-do-while)
(extern-lang-open after) (inexpr-class-open after)
(inexpr-class-close before))
c-hanging-colons-alist nil
c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
c-backslash-column 48
c-label-minimum-indentation 1
c-offsets-alist '((string . c-lineup-dont-change)
(c . c-lineup-C-comments)
(defun-open . 0)
(defun-close . 0)
(defun-block-intro . +)
(class-open . 0)
(class-close . 0)
(inline-close . 0)
(func-decl-cont . +)
(knr-argdecl . 0)
(topmost-intro . 0)
(topmost-intro-cont . 0)
(member-init-intro . +)
(member-init-cont . c-lineup-multi-inher)
(inher-intro . +)
(inher-cont . c-lineup-multi-inher)
(block-open . 0)
(block-close . 0)
(brace-list-close . 0)
(brace-list-intro . +)
(brace-list-entry . 0)
(brace-entry-open . 0)
(statement . 0)
(statement-case-intro . +)
(substatement . +)
(case-label . 0)
(access-label . -)
(do-while-closure . 0)
(else-clause . 0)
(catch-clause . 0)
(comment-intro . c-lineup-comment)
(arglist-cont . 0)
(arglist-cont-nonempty . c-lineup-arglist)
(stream-op . c-lineup-streamop)
(inclass . +)
(cpp-macro . [0])
(cpp-macro-cont . c-lineup-dont-change)
(friend . 0)
(objc-method-intro . [0])
(objc-method-args-cont . c-lineup-ObjC-method-args)
(objc-method-call-cont . c-lineup-ObjC-method-call)
(extern-lang-open . 0)
(extern-lang-close . 0)
(inextern-lang . +)
(namespace-open . 0)
(namespace-close . 0)
(innamespace . +)
(template-args-cont c-lineup-template-args +)
(inlambda . c-lineup-inexpr-block)
(lambda-intro-cont . +)
(inexpr-statement . 0)
(inexpr-class . +)
(statement-block-intro . +)
(knr-argdecl-intro . 5)
(substatement-open . +)
(label . 0)
(statement-case-open . +)
(statement-cont . +)
(arglist-intro . c-lineup-arglist-intro-after-paren)
(arglist-close . c-lineup-arglist)
(inline-open . 0)
(brace-list-open . +)
)
c-delete-function 'delete-char
c-electric-pound-behavior nil
c-indent-comments-syntactically-p nil
c-tab-always-indent t
defun-prompt-regexp nil
tab-width 8
comment-column 32
parse-sexp-ignore-comments t
auto-fill-function nil
comment-multi-line t
comment-start-skip "/\\*+ *\\|//+ *"
fill-prefix nil
paragraph-start "[ ]*\\(//+\\|\\**\\)[ ]*$\\|^\f"
adaptive-fill-mode t
adaptive-fill-regexp "[ ]*\\(//+\\|\\**\\)[ ]*\\([ ]*\\([-|#;>*]+[ ]*\\|(?[0-9]+[.)][ ]*\\)*\\)"
)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: CC Mode 5.28 (C); struct braces are not indented in GNU style
2006-11-29 4:56 CC Mode 5.28 (C); struct braces are not indented in GNU style John Darrington
@ 2006-11-30 19:48 ` Richard Stallman
2006-12-14 2:20 ` John Darrington
0 siblings, 1 reply; 3+ messages in thread
From: Richard Stallman @ 2006-11-30 19:48 UTC (permalink / raw
Cc: bug-cc-mode, bug-gnu-emacs
GNU coding standards say:
"It is important to put the open-brace that starts the body of a C
function in column one, and avoid putting any other open-brace or
open-parenthesis or open-bracket in column one"
But given a code snippet like:
struct foobar
{
int x;
};
indent-region reformats it as:
struct foobar
{
int x;
};
which is contrary to the second clause of this sentence.
The standards are too strict; sometimes it is useful for the struct
defintion to be treated as a defun.
I don't think the C indentation commands know how to distinguish
functions from structs. But perhaps they should not alter
the indentation of a top-level open-brace.
What do others think of that?
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: CC Mode 5.28 (C); struct braces are not indented in GNU style
2006-11-30 19:48 ` Richard Stallman
@ 2006-12-14 2:20 ` John Darrington
0 siblings, 0 replies; 3+ messages in thread
From: John Darrington @ 2006-12-14 2:20 UTC (permalink / raw
Cc: bug-cc-mode, bug-gnu-emacs
[-- Attachment #1.1: Type: text/plain, Size: 1249 bytes --]
On Thu, Nov 30, 2006 at 02:48:59PM -0500, Richard Stallman wrote:
> GNU coding standards say:
> "It is important to put the open-brace that starts the body of a C
> function in column one, and avoid putting any other open-brace or
> open-parenthesis or open-bracket in column one"
>
>
> But given a code snippet like:
>
> struct foobar
> {
> int x;
> };
>
> indent-region reformats it as:
>
> struct foobar
> {
> int x;
> };
>
> which is contrary to the second clause of this sentence.
>
> I don't think the C indentation commands know how to distinguish
> functions from structs. But perhaps they should not alter
> the indentation of a top-level open-brace.
Braces in a struct initialisation get indented correctly, as in
struct foobar =
{
1,
2
};
so it would seem to me, that it wouldn't be too much effort to get
struct foobar
{
int x;
int y;
};
to indent in the same way.
--
John Darrington jmd@csse.uwa.edu.au
University of Western Australia http://www.csse.uwa.edu.au/~jmd
PhD Candidate +61 8 6488 4775
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 149 bytes --]
_______________________________________________
bug-gnu-emacs mailing list
bug-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-12-14 2:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-29 4:56 CC Mode 5.28 (C); struct braces are not indented in GNU style John Darrington
2006-11-30 19:48 ` Richard Stallman
2006-12-14 2:20 ` John Darrington
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).