Update Norwegian translation.
[mikachu/openbox.git] / HACKING
diff --git a/HACKING b/HACKING
index afd8486..73864bd 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,18 +1,13 @@
-Woop, a HACKING document for openbox at last!
-
 dirs:
-       kernel - core of the WM
+       openbox - core of the WM
        render - librender, rendering routines for the WM and for apps
-       cwmcc  - client-wm-client communication. netwm/icccm helper routines
-                for the WM and apps
-       obcf   - openbox config format, generic parser for config files
-       plugins - various plugins
+       parser - libparser, for parsing config files
 
 Beware the Client.transient_for. It can be set to a !NULL value of TRAN_GROUP,
 which is not a valid pointer. You must ALWAYS check for TRAN_GROUP before
-following transient_for. When TRAN_GROUP is found, Client.group will always
-be !NULL. Some smart action should be taken using all members of the group in
-this case.
+following transient_for. However if it is transient for the group, this
+excludes other windows whom are transient for the group, and windows which
+are children of the window (infinite loops would result)!
 
 When using coordinates/sizes of windows, make sure you use the right area. The
 Client.area rect is the reference point and size of the *CLIENT* window. This
@@ -21,3 +16,41 @@ translate it into what you see. The Client.frame.area is the actual position
 and size of the entire frame. This is usually the value you want to use, unless
 you are in client.c (probably) and adjusting/using the position or size from
 the client's perspective.
+
+Indentation
+-----------
+For openbox, we aim to have consistent coding style. Some, but surely
+not all, guidelines:
+ * use 4 space indents
+ * tabs should not appear in source files
+ * closing braces always go on a new line
+ * for functions, the opening brace goes on a new line
+     void foo()
+     {
+         hi;
+     }
+ * for control blocks, the opening brace goes on the same line as the
+   condition, unless the condition spans more than one line. then the brace
+   goes on a new line.
+     if (one line) {
+         hi;
+     }
+     if (first line &&
+         second line)
+     {
+         hi;
+     }
+ * always use braces around conditional blocks that consist of more than one
+   line, even if they contain a single statement
+     if (check) {
+         /* Check was true. */
+         yay = true(ok,
+                    thanks);
+     }
+ * don't need to use braces for conditional blocks that use only a single
+   line, including comments.
+     if (check)
+         all_on_one_line_so_no_braces_needed();
+ * when in doubt look at the rest of the source
+ * vim users can use "set expandtab tabstop=4 shiftwidth=4
+   softtabstop=4" for some of this