diff --git a/HACKING b/HACKING new file mode 100644 index 0000000..2c17d21 --- /dev/null +++ b/HACKING @@ -0,0 +1,94 @@ + +Coding-style +-------------- + +Statements +---------- +If only one statement exist in a statement body. Braces should be skipped, +but not if the structure is nested or followed by multiple if/else, ex: + +for(i=0; i < 10; i++) + for(j=0; i < 10; j++) + if (i == j) + foo(); + +if (a) + foo(); +else if (b) { + if (c) + bar(); +} else + baz(); + +instead you should write the above code as: + +for(i=0; i < 10; i++) { + for(j=0; i < 10; j++) { + if (i == j) + foo(); + } +} + +if (a) { + foo(); +} else if (b) { + if (c) + bar(); +} else { + baz(); +} + +Avoid using assignment in if() + +Functions +--------- +We use an extended K&R style, the extension is for functions that can have both there opening bracer on the same line and +directly under it but please don't mix em. We allow both but you should chose one and stick with it. +You should mimic the syntax used around your code, don't mix both formats in one c file. +If you encounter a file with mixed syntax, change it to whatever style you like (you can't break anything ;) + +void foo() { + /* body */ +} + +void bar() +{ + /* body */ +} + + +Pointer declaration +------------------- +this should be done in 2 different ways depending on where it's declared: + + 1: variables are declared like `char *str`, not `char * str` or `char* str`. + 2: function return types are declared like `char* function(...);` + +this syntax forces the most readable code. ex: + + struct list* new_list(char *name); + +this format cleary states that name is a pointer of type char and the function returns +a pointer to a struct list + +Naming +------ + + * Never use CamelCase. UPPERCASE for constants and lowercase for variables,functions,macros. words is separated by underscore. + + * API functions (that have a prototype in a header file) should be prefixed with the header filename. + One exception exist and that is when the functionality is realy lowlevel and/or generic enough that it + would be redundant to include a prefix. an example of this is a fatal() or die() function that may be prototyped in misc.h. + + * Headerguard defines is written like __PATH_TO_THIS_HEADER_H + +Documentation +------------- + +All API's should be externaly documented in the doc/ directory. + +Things to keep in mind when modify or write code +------------------------------------------------ + +include and change the comment found in TEMPLATE file, at the top of the .c/.h file + diff --git a/src/arch/db.h b/src/arch/db.h index 5b0a41e..f5963d2 100644 --- a/src/arch/db.h +++ b/src/arch/db.h @@ -1,24 +1,16 @@ - -/* - * Copyright (C) 2010 Archived +/* arch/db.h - database API * - * 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 3 of the License, or - * (at your option) any later version. + * Copyright (C) 2010 Fredric Nilsson * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ -#ifndef _ARCH_DB_H +#ifndef __ARCH_DB_H -#define _ARCH_DB_H +#define __ARCH_DB_H int arch_db_init(char *host, char *username, char *password, char *database, char *table); @@ -30,4 +22,4 @@ int arch_db_truncate(); void arch_db_close(); -#endif /* _DB_DATABASE_H */ +#endif /* __ARCH_DB_H */ diff --git a/src/arch/mysql.c b/src/arch/mysql.c index 3266b39..41ae811 100644 --- a/src/arch/mysql.c +++ b/src/arch/mysql.c @@ -1,20 +1,11 @@ -/* - * arch/mysql.c - Handles database operations - * - * (C) Copyright 2010 Henrik Hautakoski - * (C) Copyright 2010 Fredric Nilsson - * - * 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 3 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. +/* arch/mysql.c - Mysql implementation * + * Copyright (C) 2010 Fredric Nilsson * + * 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 3 of the License, or + * (at your option) any later version. */ #include diff --git a/src/common/path.c b/src/common/path.c index 35ab076..5200059 100644 --- a/src/common/path.c +++ b/src/common/path.c @@ -1,6 +1,6 @@ -/* common/path.c - path string handling routines +/* common/path.c - path handling routines * - * Copyright (C) 2010 Hernrik Hautakoski + * Copyright (C) 2010 Henrik Hautakoski * * 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 diff --git a/src/common/path.h b/src/common/path.h index 8f41d0a..dedbaf2 100644 --- a/src/common/path.h +++ b/src/common/path.h @@ -1,3 +1,12 @@ +/* common/path.h - path handling routines + * + * Copyright (C) 2010 Henrik Hautakoski + * + * 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 3 of the License, or + * (at your option) any later version. + */ #ifndef __COMMON_PATH_H diff --git a/src/fs/notify.h b/src/fs/notify.h index d290673..3fcb2b0 100644 --- a/src/fs/notify.h +++ b/src/fs/notify.h @@ -1,21 +1,12 @@ - -/* - * Archived file-system notification +/* fs/notify.h - filesystem notification API * - * Copyright (C) 2010 Archived + * (C) Copyright 2010 Henrik Hautakoski + * (C) Copyright 2010 Fredric Nilsson * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ #ifndef _FS_NOTIFY_H diff --git a/src/fs/notify_event.c b/src/fs/notify_event.c index 728faff..72f0444 100644 --- a/src/fs/notify_event.c +++ b/src/fs/notify_event.c @@ -1,20 +1,13 @@ -/* - * Copyright (C) 2010 Archived +/* fs/notify_event.c - notify event implementation + * + * (C) Copyright 2010 Henrik Hautakoski + * (C) Copyright 2010 Fredric Nilsson * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ - #include #include #include diff --git a/src/fs/notify_event.h b/src/fs/notify_event.h index ee91aad..d7ff39e 100644 --- a/src/fs/notify_event.h +++ b/src/fs/notify_event.h @@ -1,20 +1,12 @@ -/* - * event data-structure and operation's for notify API +/* fs/notify_event.h - event data structure and operation's for notify API * - * Copyright (C) 2010 Archived + * (C) Copyright 2010 Henrik Hautakoski + * (C) Copyright 2010 Fredric Nilsson * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ #ifndef _NOTIFY_EVENT_H diff --git a/src/fs/notify_inotify.c b/src/fs/notify_inotify.c index fff415b..b9c33dd 100644 --- a/src/fs/notify_inotify.c +++ b/src/fs/notify_inotify.c @@ -1,18 +1,12 @@ -/* - * Copyright (C) 2010 Archived +/* fs/notify_inotify.c - inotify implementation + * + * (C) Copyright 2010 Henrik Hautakoski + * (C) Copyright 2010 Fredric Nilsson * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ #include @@ -298,5 +292,3 @@ int notify_is_ready() { return bytes > 512; } - - diff --git a/src/fs/tree.c b/src/fs/tree.c index 303746e..820fafa 100644 --- a/src/fs/tree.c +++ b/src/fs/tree.c @@ -1,23 +1,12 @@ - -/* - * -- tree.c +/* fs/tree.c - Filesystem traversal * - * Copyright (C) 2010 Archived + * (C) Copyright 2010 Henrik Hautakoski * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ - #include #include #include @@ -201,6 +190,5 @@ struct entry* tree_next_ent(struct tree *tree) { tree->ent.base = tree->path; tree->ent.name = &ent->d_name[0]; - return &tree->ent; } diff --git a/src/fs/tree.h b/src/fs/tree.h index f7801a5..78fb9f8 100644 --- a/src/fs/tree.h +++ b/src/fs/tree.h @@ -1,3 +1,12 @@ +/* fs/tree.h - Filesystem traversal + * + * (C) Copyright 2010 Henrik Hautakoski + * + * 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 3 of the License, or + * (at your option) any later version. + */ #ifndef _FS_TREE_H diff --git a/src/indexer.c b/src/indexer.c index b3fb337..c7ade83 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -1,20 +1,12 @@ -/* - * Copyright (C) 2010 Archived +/* indexer.c + * + * (C) Copyright 2010 Henrik Hautakoski * - * 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 3 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * 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 3 of the License, or + * (at your option) any later version. */ - #include #include #include "common/debug.h"