On Thu, Feb 22, 2007 at 01:27:24AM +0000, Thorsten Glaser wrote: > -ize ist amerikanisch, -ise ist englisch.
Mir gefaellt die amerikanische Schreibweise besser (zumindest in dem Fall). Und da ich es in die Welt geschissen habe ... > >+CFLAGS?= -Wall > >+CC?= gcc > > Vorgegeben vom Buildsystem. Ich baue momentan noch manuell. Integration folgt. > >+#include "nfotizer.h" > > Bitte keine Headerdateien andere Headerdateien einbinden lassen. Ich musste stdio.h in nfotizer.h einbinden, damit FILE erkannt wird. > >+htab *htab_create(int size) > > Gem???? http://www.mirbsd.org/man9/style.htm schreibst Du besser > > htab * > htab_create(int size) > > also in zwei Zeilen. Selbst Linus findet das gut, auch wenns > das nicht mehr in den Linux-Kernel Coding Style geschafft hat. Mir gefaellts am meisten bei ansonsten langen Zeilen. Bessere Suche nach Funktionen ist kein Argument, exuberant-ctags funktioniert hervorragend. > >+ return -1; > > style(9) - s.o. - sagt: bitte Klammern drum. Ist allerdings > nicht so schlimm wie der Rest. Gefaellt mir nicht. Ich bins gewohnt, `return' diese Sonderschreibweise zu goennen. > >+ //debug("inserted item: %s: %s\n", tab->data[tab->items].key, > >tab->data[tab->items].val); > > C99 C++-style Comments sind b??se. Nimm ein Makro: > #ifdef DEBUG > #define debug(foo, ...) fprintf(stderr, foo, ##__VA_ARGS__) > #else > #define debug(foo, ...) /* nothing */ > #enif Du hast nich wirklich geglaubt, ich wuerde ernsthaft erst konditional nen Makro definieren, ums nachher auszukommentieren? Das is beim Debugging entstanden, weil ich weniger Output haben wollte. Is also gefixt. > >+#define TOGGLE(x) ( x = ((x==1) ? 0 : 1) ) > > Uh, was ist an '~x' verkehrt? ??brigens nimmt man f??r sowas > schlicht und ergreifend <stdbool.h>. ~x will ich nicht. Einfaches Beispiel: int x; x = 0; ~x ist ungleich 0 x = 1; ~x ist ungleich 0 hab mir was anderes ueberlegt, gucks dir mal an. > >+/* allocating strcat */ > >+char *my_strcat(char *dest, char *src) > >+{ > >+ int newlen = strlen(dest) + strlen(src) + 1; > >+ char *ret = calloc(newlen, sizeof(char)); > >+ if(sprintf(ret, "%s%s", dest, src) < 0) > > ARRGH! Grausam! Jau, hast recht. asprintf() macht alles einfacher. Habs absichtlich nicht benutzt, weil ich dachte, das sei nicht so portabel. Allerdings existiert strlcpy und strlcat gibts auf meinem System nicht. > >+{ > >+ int myfmt_len = strlen(fmt); > >+ char *myfmt = calloc(myfmt_len, sizeof(char)); > >+ char *fullstr = strdup(fmt); > >+ char *result, *token; > >+ int is_id = (*fmt == *idid) ? 1 : 0; > > Initialisierungen mit nichtkonstanten Argumenten (strlen, calloc, strdup) sind > richtig richtig b??se und k??nnen, je nach Compiler und Optimierungen, total > in > die Hose gehen. is_id sollte zwar eh besser ein bool - cf. <stdbool.h> - sein, > aber die Initialisierung ist fast safe - fast weil fmt und idid NULL sein > k??nnten. Bin mir nicht ganz sicher, ob ich verstanden hab, was dir daran eigentlich nich passt. Guck dir mal an, was ich dran geaendert hab. > >+char *my_dirname(char *path) > >+{ > [???] > >+ return ""; > >+} > > Eine Funktion, die ???char *??? zur??ckgibt, kann doch nicht ???(const char > *)""??? > zur??ckgeben! Der Aufrufer k??nnte versuchen, in das Resultat zu schreiben! Jau, und sagen, dass es ein dirname() gibt, haettest du auch koennen. :-P > So, und das war erst der Anfang??? Na, dann bin ich mal gespannt. Nur bitte in Zukunft entweder in Englisch, oder privat. Im Gegensatz zum Channel ist die Policy hier klar, oder? > //mirabile (nach 3 Bier, Wein, Julishka, etc. aber trotzdem noch ernst) Schreibt sich das nich Julka? ;) > PS: Wenns mit ???-Wall -Wextra -Wunused -Wdeclaration-after-statement -Wundef > -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast > -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes > -Wold-style-definition -Wmissing-prototypes -Winline -Werror > -Wmissing-declarations -Wmissing-noreturn -pedantic -std=gnu99 > -Wmissing-format-attribute -Wredundant-decls??? baut, bist Du gut, auch > wenn das nur die ???most basic of errors??? abf??ngt. (Diese Warnungen tun > mit gcc 3.4.x - bei anderen Versionen halt anpassen???) Tuts fast, die fscking variadic Makros wollen nicht, wie ich will. Trotz '##' beschwert er sich darueber, dass Argumente fehlen. Vielleicht kannst du mir sagen, wie man das hingebogen bekommt? MfG, Phil _______________________________________________ freewrt-developers mailing list [email protected] https://www.freewrt.org/lists/listinfo/freewrt-developers
