Mercurial > geeqie
diff CODING @ 685:f20e7cebcb12
Updated CODING (GPL header, macros, svn change-log, ...).
author | bruclik |
---|---|
date | Mon, 19 May 2008 00:54:59 +0000 |
parents | f31ae0d9e163 |
children | 83d3abd80b64 |
line wrap: on
line diff
--- a/CODING Sun May 18 21:14:01 2008 +0000 +++ b/CODING Mon May 19 00:54:59 2008 +0000 @@ -1,59 +1,140 @@ -Please keep the general coding style of Geeqie: +GPL header, in every file, like this: -Space after if, while and for: ------------------------------- +/** @file relativ/path/with/this/file/name.c + * Short description of this file. + * @author Author1 + * @author Author2 + * + * Optionaly detailed description of this file + * on more lines. + */ + +/* + * This file is a part of Geeqie project (http://geeqie.sourceforge.net/). + * Copyright (C) 2008 Geeqie team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ -while (...) -for (...) -if (...) +-------------------------------------------------------------------------------- + +svn change-log: -Indentation of {}: ------------------- +Use whole sentences begins with Capital letter. For each modification use new line. +Or you can write the theme, colon and then every change on new line, begin +with "- ". + +Example: + +I done some bugfixes. +Library: +- I change the interface +- added some new functions + +-------------------------------------------------------------------------------- + +sources: -while (...) +Indentation: tabs +Names of variables & functions: small_letters + of defines: CAPITAL_LETTERS + +Try to use explicit variable and function names. + + +Try not to use macros. +Use EITHER "struct foo" OR "foo"; never both + +Conditions, cycles: + +if (<cond>) { + <command>; ... - } - -if (...) - { - ... + <command>; } else { + <command>; ... + <command>; + } + +if (<cond_very_very_very_very_very_very_very_very_very_long> && + <cond2very_very_very_very_very_very_very_very_very_long) + <the_only_command>; + +switch (<var>) + { + case 0: + <command>; + <command>; + break; + case 1: + <command>; break; } -Spaces around operators: ------------------------- - -i = 2; -x = i * (j / 2); - +for (i = 0; i <= 10; i++) + { + <command>; + ... + <command>; + } + -Space after comma: ------------------- -func(a, b, c); +Functions: -Functions without any parameter should be declared using void: --------------------------------------------------------------- -gint function(void) +int bar(<var_def>, <var_def>, <var_def>) { -... + <command>; + ... + <command>; + + return 0; // i.e. SUCCESS; if error, you must return minus <err_no> } -Use glib types: ---------------- -Please use glib types when possible (ie. gint and gchar instead of int and char) -. +void bar2(void) +{ + <command>; + ... + <command>; +} + +Pragma: (Indentation 2 spaces) + +#ifdef ENABLE_NLS +# undef _ +# define _(String) (String) +#endif /* ENABLE_NLS */ + +Headers: -Use glib functions: -------------------- +#ifndef _FILENAME_H + +-------------------------------------------------------------------------------- + +Use spaces around every operator (except ".", "->", "++" and "--"); + unary operator '*' and '&' are missing the space from right; + (and also unary '-'). +As you can see above, parentheses are closed to inside, i.e. " (blah blah) " + In "function(<var>)" there are no space before '('. +You MAY use more tabs/spaces than you OUGHT TO (according to this CodingStyle), if + it makes your code nicer in being verticaly indented. + +-------------------------------------------------------------------------------- + +Use glib types when possible (ie. gint and gchar instead of int and char). Use glib functions when possible (ie. g_ascii_isspace() instead of isspace()). Check if used functions are not deprecated. -Others: -------- -Check twice the indentation and spurious whitespaces. +-------------------------------------------------------------------------------- -Try to use explicit variable and function names. +Documentation: use Doxygen