| /* Make the structure name match the typedef. */ |
| typedef struct bar { |
| int level; |
| } BAR; |
| typedef int foo; /* This is foo. */ |
| typedef const long baz; /* This is baz. */ |
| |
| |
| static char *function(int _arg, const char *_arg2, struct foo *_arg3, |
| struct bar *_arg4); |
| static void usage(void); |
| |
| /* |
| * All major routines should have a comment briefly describing what |
| * they do. The comment before the "main" routine should describe |
| * what the program does. |
| */ |
| int |
| main(int argc, char *argv[]) |
| { |
| char *ep; |
| long num; |
| int ch; |
| |
| while ((ch = getopt(argc, argv, "abNn:")) != -1) |
| switch (ch) { /* Indent the switch. */ |
| case 'a': /* Don't indent the case. */ |
| aflag = 1; /* Indent case body one tab. */ |
| /* FALLTHROUGH */ |
| case 'b': |
| bflag = 1; |
| break; |
| case 'N': |
| Nflag = 1; |
| break; |
| case 'n': |
| num = strtol(optarg, &ep, 10); |
| if (num <= 0 || *ep != '\0') { |
| warnx("illegal number, -n argument -- %s", |
| optarg); |
| usage(); |
| } |
| break; |
| case '?': |
| default: |
| usage(); |
| /* NOTREACHED */ |
| } |
| argc -= optind; |
| argv += optind; |
| |
| for (p = buf; *p != '\0'; ++p) |
| ; /* nothing */ |
| for (;;) |
| stmt; |
| for (;;) { |
| zed = a + really + long + statement + that + needs + |
| two + lines + gets + indented + four + spaces + |
| on + the + second + and + subsequent + lines; |
| } |
| for (;;) { |
| if (cond) |
| stmt; |
| } |
| if (val != NULL) |
| val = realloc(val, newsize); |
| |
| fcn_call(with, a, really, long, list, of, parameters, |
| that, spans, two, lines); |
| |
| for (; cnt < 15; cnt++) { |
| stmt1; |
| stmt2; |
| } |
| |
| almod = (chunk_is_single_line_comment(pc) && |
| cpd.settings[UO_indent_relative_single_line_comments].b) ? |
| ALMODE_KEEP_REL : ALMODE_KEEP_ABS; |
| |
| /* Indentation is an 8 character tab. Second level indents are four spaces. |
| * If you have to wrap a long statement, put the operator at the end of the |
| * line. |
| */ |
| |
| while (cnt < 20 && this_variable_name_is_too_long && |
| ep != NULL) |
| zappy = a + really + long + statement + that + needs |
| + two + lines + gets + indented + four + spaces + |
| on + the + second + and + subsequent + lines; |
| |
| // Do not add whitespace at the end of a line, and only use tabs followed by |
| // spaces to form the indentation. Do not use more spaces than a tab will |
| // produce and do not use spaces in front of tabs. |
| // |
| // Closing and opening braces go on the same line as the else. Braces that |
| // are not necessary may be left out. |
| |
| if (test) |
| stmt; |
| else if (bar) { |
| stmt; |
| stmt; |
| } else |
| stmt; |
| |
| // No spaces after function names. Commas have a space after them. No spa- |
| // ces after `(' or `[' or preceding `]' or `)' characters. |
| |
| error = function(a1, a2); |
| if (error != 0) |
| exit(error); |
| |
| // Unary operators do not require spaces, binary operators do. Do not use |
| // parentheses unless they are required for precedence or unless the state- |
| // ment is confusing without them. Remember that other people may confuse |
| // easier than you. Do YOU understand the following? |
| |
| a = b->c[0] + ~d == (e || f) || g && h ? i : j >> 1; |
| k = !(l & FLAGS); |
| |
| |
| // Exits should be 0 on success, or 1 on failure. |
| |
| exit(0); /* |
| * Avoid obvious comments such as |
| * "Exit 0 on success." |
| */ |
| } |
| |
| static char * |
| function(a1, a2, fl, a4) |
| int a1, a2; /* Declare ints, too, don't default them. */ |
| float fl; /* Beware double vs. float prototype differences. */ |
| int a4; /* List in order declared. */ |
| { |
| } |