diff options
Diffstat (limited to 'functions.c')
-rw-r--r-- | functions.c | 54 |
1 files changed, 34 insertions, 20 deletions
diff --git a/functions.c b/functions.c index 3ca7b06..0d4380b 100644 --- a/functions.c +++ b/functions.c @@ -1,9 +1,12 @@ #include "functions.h" +// Global debug control +extern int debug; + // Internal function just to replace nick in server greeting strings // (as in ":servername 00x oldnick :Blablabla" -> ":servername 00x newnick :Blablabla") void updategreetingnick(char *greeting, char *greetingnum, char *newnick, char *oldnick) { - printf("updategreetingnick(): '%s' '%s' '%s' '%s'.\n", greeting, greetingnum, newnick, oldnick); + debugprint("updategreetingnick(): '%s' '%s' '%s' '%s'.\n", greeting, greetingnum, newnick, oldnick); // Find the position of the old nick in the current greeting char searchstr[MAXDATASIZE]; @@ -22,7 +25,7 @@ void updategreetingnick(char *greeting, char *greetingnum, char *newnick, char * snprintf(searchstr, MAXDATASIZE, " %s %s ", greetingnum, newnick); ret = strstr(greeting, searchstr); if (ret != NULL) { - printf("updategreetingnick(): newnick is already present, returning.\n"); + debugprint("updategreetingnick(): newnick is already present, returning.\n"); return; } } @@ -52,7 +55,18 @@ void updategreetingnick(char *greeting, char *greetingnum, char *newnick, char * // And finally copy back to source string strcpy(greeting, greetingtmp2); - printf("updategreetingnick(): Built new greeting '%s' '%s', length '%ld'.\n", greetingnum, greeting, strlen(greeting)); + debugprint("updategreetingnick(): Built new greeting '%s' '%s', length '%ld'.\n", greetingnum, greeting, strlen(greeting)); +} + +// Print debugging output if enabled +void debugprint(char *format, ...) { + if (!debug) return; + + va_list args; + + va_start(args, format); + vprintf(format, args); + va_end(args); } // Get stdin line with buffer overrun protection @@ -106,11 +120,11 @@ void stripprefix(char *string) { // Make a copy to work with char string2[strlen(string)]; - printf("stripprefix(): starting with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("stripprefix(): starting with '%s', strlen: %zd.\n", string, strlen(string)); // Don't bother if this isn't a prefix with a leading ':' if (string[0] != ':') { - printf("stripprefix(): no leading ':', returning.\n"); + debugprint("stripprefix(): no leading ':', returning.\n"); return; } @@ -125,7 +139,7 @@ void stripprefix(char *string) { // Finish with null terminator string[strlen(string) - 1] = '\0'; - printf("stripprefix(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("stripprefix(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); } // Extract final parameter from IRC message, removing the leading colon ':' @@ -140,7 +154,7 @@ void extractfinalparameter(char *string) { // Position of colon int colonpos = -1; - printf("extractfinalparameter(): starting with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("extractfinalparameter(): starting with '%s', strlen: %zd.\n", string, strlen(string)); // Strip the colon at position 0 if there is one stripprefix(string); @@ -148,14 +162,14 @@ void extractfinalparameter(char *string) { // Find the colon for (size_t i = 0; i < strlen(string); i++) { if (string[i] == ':') { - printf("Found colon at position %zd!\n", i); + debugprint("Found colon at position %zd!\n", i); colonpos = i; break; } } if (colonpos == -1) { - printf("no colon found, returning\n"); + debugprint("no colon found, returning\n"); return; } @@ -172,7 +186,7 @@ void extractfinalparameter(char *string) { // Finish with null terminator string[counter] = '\0'; - printf("extractfinalparameter(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("extractfinalparameter(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); } // Extract the IRC nick from a prefix @@ -184,7 +198,7 @@ void extractnickfromprefix(char *string) { // Position of bang int bangpos = -1; - printf("extractnickfromprefix(): starting with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("extractnickfromprefix(): starting with '%s', strlen: %zd.\n", string, strlen(string)); // Strip the colon at position 0 if there is one stripprefix(string); @@ -192,26 +206,26 @@ void extractnickfromprefix(char *string) { // Find the bang for (size_t i = 0; i < strlen(string); i++) { if (string[i] == '!') { - printf("Found bang at position %zd!\n", i); + debugprint("Found bang at position %zd!\n", i); bangpos = i; break; } } if (bangpos == -1) { - printf("no bang found, returning\n"); + debugprint("no bang found, returning\n"); return; } // Terminate the string at whatever position we found the bang string[bangpos] = '\0'; - printf("extractnickfromprefix(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); + debugprint("extractnickfromprefix(): finishing with '%s', strlen: %zd.\n", string, strlen(string)); } // Update an existing nickuserhost string with a new nick void updatenickuserhost(char *nickuserhost, char *nick) { - printf("updatenickuserhost(): updating '%s' with '%s'.\n", nickuserhost, nick); + debugprint("updatenickuserhost(): updating '%s' with '%s'.\n", nickuserhost, nick); // Position of bang int bangpos = -1; @@ -219,14 +233,14 @@ void updatenickuserhost(char *nickuserhost, char *nick) { // Find the bang for (size_t i = 0; i < strlen(nickuserhost); i++) { if (nickuserhost[i] == '!') { - printf("Found bang at position %ld!\n", i); + debugprint("Found bang at position %ld!\n", i); bangpos = i; break; } } if (bangpos == -1) { - printf("No bang found in existing nickuserhost, quitting!\n"); + debugprint("No bang found in existing nickuserhost, quitting!\n"); return; } @@ -238,12 +252,12 @@ void updatenickuserhost(char *nickuserhost, char *nick) { // Copy back to source string strcpy(nickuserhost, newstr); - printf("updatenickuserhost(): new nickuserhost '%s', length '%ld'.\n", nickuserhost, strlen(nickuserhost)); + debugprint("updatenickuserhost(): new nickuserhost '%s', length '%ld'.\n", nickuserhost, strlen(nickuserhost)); } // Update existing greeting strings with a new nickuserhost and new nick void updategreetings(char *greeting001, char *greeting002, char *greeting003, char *greeting004, char *greeting005a, char *greeting005b, char *greeting005c, char *newnickuserhost, char *oldnickuserhost, char *newnick, char *oldnick) { - printf("updategreetings(): updating greetings with new nickuserhost '%s' and nick '%s'.\n", newnickuserhost, newnick); + debugprint("updategreetings(): updating greetings with new nickuserhost '%s' and nick '%s'.\n", newnickuserhost, newnick); // nickuserhost and greeting001's final component first // (final component as in ":servername 001 nick :Blablabla final!com@ponent" @@ -274,7 +288,7 @@ void updategreetings(char *greeting001, char *greeting002, char *greeting003, ch // Copy back to source greeting 001 strcpy(greeting001, greetingtmp); - printf("updategreetings(): new greeting 001 '%s', length '%ld'.\n", greeting001, strlen(greeting001)); + debugprint("updategreetings(): new greeting 001 '%s', length '%ld'.\n", greeting001, strlen(greeting001)); // Get the new nick |