Wygląda lepiej:) choć komentarze rzeczywiście by się przydały. Naprawdę dobrze jest wyrobić sobie nawyk ich pisania. Czasami wręcz powinno się komentować kod jeszcze przed jego napisaniem.
Co do kodu, znalazłem kilka wywołań funkcji strcpy(), która jest potencjalnie niebezpieczna, gdyż nie sprawdza wielkości bufora, przez co łatwo, przez nieuwagę, dopuścić błąd przepełnienia bufora. Chociaż widzę że wszędzie w kodzie alokowany jest bufor odpowiedniej wielkości, dobrze jest dmuchać na zimne i zamiast strcpy() używać strncpy(). Poza tym, warto skorzystać z dobrodziejstw biblioteki GLib, które potrafią uprościć manipulowanie napisami:
Kod: Zaznacz cały
clen = strlen(centrytxt);
gl_clientip = (char *) malloc((clen + 1) * sizeof(char));
strcpy(gl_clientip, centrytxt);
Można zastąpić:
Kod: Zaznacz cały
entrytxt = gtk_entry_get_text(gf_chatentry);
if (check_string(entrytxt) == 0) {
return;
}
entlen = strlen(gl_nickname) + strlen(entrytxt) + ADDITIONAL_CHARS;
if (entlen > BUFFER) {
gtk_entry_set_text(gf_chatentry, "");
showmessage("Message is too long", GTK_MESSAGE_ERROR);
return;
}
strcpy(message, gl_nickname);
strcat(message, "> ");
strcat(message, entrytxt);
strcat(message, "\n");
add_line(message);
Można skrócić używając g_strdup_printf:
Kod: Zaznacz cały
entrytxt = gtk_entry_get_text(gf_chatentry);
char *message = g_strdup_printf ("<%s> %s\n", gl_nickname, entrytxt);
add_line (message);
g_free (message);
Na koniec zachęcam do zapoznania się z jakimś systemem kontroli wersji, jak svn czy git, oraz założeniem strony projektu na jakimś serwisie hostującym, w stylu SourceForge, Google Code czy github.