diff options
Diffstat (limited to 'functions.c')
| -rw-r--r-- | functions.c | 21 | 
1 files changed, 18 insertions, 3 deletions
| diff --git a/functions.c b/functions.c index 0d4380b..0c814a3 100644 --- a/functions.c +++ b/functions.c @@ -2,6 +2,8 @@  // Global debug control  extern int debug; +extern char debugpath[PATH_MAX]; +extern int background;  // Internal function just to replace nick in server greeting strings  // (as in ":servername 00x oldnick :Blablabla" -> ":servername 00x newnick :Blablabla") @@ -59,13 +61,26 @@ void updategreetingnick(char *greeting, char *greetingnum, char *newnick, char *  }  // Print debugging output if enabled +// (To screen or to file depending on settings)  void debugprint(char *format, ...) { -  if (!debug) return; +  if (debug == DEBUG_NONE) return;    va_list args; -    va_start(args, format); -  vprintf(format, args); + +  if (debug == DEBUG_FILE) { +    FILE *fp; +    int bytes = 0; +    fp = fopen(debugpath, "a"); +    if ((bytes = vfprintf(fp, format, args)) < 0) { +      printf("error: could not write to debug file.\n"); +      exit(1); +    } +    fclose(fp); +  } else if (debug == DEBUG_SCREEN) { +    vprintf(format, args); +  } +    va_end(args);  } | 
