ubik: Introduce IndexOf()
[openafs.git] / CODING
diff --git a/CODING b/CODING
index 8e1891d..bff3c92 100644 (file)
--- a/CODING
+++ b/CODING
@@ -83,7 +83,80 @@ Suggested compiler flags:
                (You might not want the -fd, it isn't really useful, just complains about the
                K&R style functions, but -v gives useful info.)
 
-\f
+Multiple line comment blocks should begin with only /* on one line and end with
+only */ on one line.
+
+Example:
+
+       /*
+        * Multiple line comment blocks should be formatted
+        * like this example.
+        */
+
+Do not use braces on one-line if and loop statements.
+
+Use:
+
+       if (some_condition)
+           do_some_action();
+       else
+           do_something_else();
+
+       while (some_condition)
+           do_something();
+
+Instead of:
+
+       if (some_condition) {
+           do_some_action();
+       }
+
+       while (some_condition) {
+           do_something();
+       }
+
+In switch statements, to fall through from one case statement to another, use
+AFS_FALLTHROUGH to mark the intentional fall through.  Do not use fall through
+comments (e.g. /* fallthrough */), as some compilers do not recognize them and
+will flag the case statement with an implied fallthrough warning.
+
+Use:
+
+    switch (x) {
+    case 1:
+        do_something();
+        AFS_FALLTHROUGH;
+    case 2:
+        do_something_else();
+        AFS_FALLTHROUGH;
+    default:
+        do_some_action();
+    }
+
+Instead of using fallthrough comments:
+
+    switch (x) {
+    case 1:
+        do_something();
+        /* fallthrough */
+    case 2:
+        do_something_else();
+        /* fallthrough */
+    default:
+        do_some_action();
+    }
+
+Or not marking the fall through:
+
+   switch (x) {
+    case 1:
+        do_something();
+    case 2:
+        do_something_else();
+    default:
+        do_some_action();
+    }
+
 Dependencies required to build OpenAFS from source
 --------------------------------------------------
 The following packages are required to build all of the OpenAFS code
@@ -200,10 +273,11 @@ to reduce the number of warnings in the OpenAFS tree. In an attempt to
 prevent warnings from creeping back in, we now have the ability to break the
 build when new warnings appear.
 
-This is only available for systems with gcc 4.2 or later, and is disabled
-unless the --enable-checking option is supplied to configure. Because we
-can't remove all of the warnings, we permit file by file (and warning by
-warning) disabling of specific warnings. The --enable-checking=all prevents
+This is only available for systems with gcc 4.2 or later or clang 3.2 or
+later, and is disabled unless the --enable-checking option is supplied to
+configure. Because we can't remove all of the warnings, we permit file by
+file (and warning by warning) disabling of specific warnings. The
+--enable-checking=all option prevents
 this, and errors for any file containing a warning.
 
 Disabling warnings
@@ -243,7 +317,10 @@ If you add a new warning inhibition, please also add it to the list below.
 
 Inhibited warnings
 ------------------
-
+uss/lex.i            : fallthrough   : clang fallthrough, flex generated code
+comerr/et_lex.lex.l  : fallthrough   : clang fallthrough, flex generated code
+                                       pragma set to ignored where included in
+                                       error_table.y
 afs/afs_syscall.c    : old-style
                     : strict-proto
                     : all (ukernel) : syscall pointer issues
@@ -261,7 +338,10 @@ libadmin/kas/afs_kasAdmin.c: strict-proto : ubik_Call nonsense
 libadmin/samples/rxstat_query_peer.c : all : util_RPCStatsStateGet types
 libadmin/samples/rxstat_query_process.c : all : util_RPCStatsStateGet types
 libadmin/test/client.c : all         : util_RPCStatsStateGet types
-rxkad/ticket5.c             : all           : v5gen.c has set-but-unused variables
 ubik/ubikclient.c    : strict-protos : ubik_Call
 volser/vol-dump.c    : format        : afs_sfsize_t
-
+rxkad/ticket5.c      : format-truncation : inside included file v5der.c in the
+                                       function _heim_time2generalizedtime, the
+                                       two snprintf calls raise
+                                       format-truncation warnings due to the
+                                       arithmetic on tm_year and tm_mon fields
\ No newline at end of file