--- source/irc.c.chmou Sun Feb 28 04:10:42 1999 +++ source/irc.c Fri Jan 14 01:14:02 2000 @@ -1673,6 +1673,43 @@ } } +static const char *suffixes[] = { + "formats", + "kck", + "reasons", + "nam", + "ircnames", + "qt", + "quit", + "sav", + NULL }; + +void cleanup_configs(); +void cleanup_configs() +{ + const char **suffix = suffixes; + char *in, *out; + char infile[PATH_MAX], outfile[PATH_MAX]; + struct stat instat, outstat; + + infile[PATH_MAX - 1] = outfile[PATH_MAX - 1] = '\0'; + for(suffix = suffixes; *suffix; suffix++) { + snprintf(outfile, PATH_MAX - 1, "%s/%s.%s", + get_string_var(CTOOLZ_DIR_VAR), version, *suffix); + snprintf(infile, PATH_MAX - 1, "%s/%s%s.%s", + get_string_var(CTOOLZ_DIR_VAR), version, "+Mandrake", *suffix); + + in = expand_twiddle(infile); + out = expand_twiddle(outfile); + + if(!stat(in, &instat)) /* Bad file exists? */ + if(stat(out, &outstat) /* Bad, but no good. */ + || (instat.st_mtime > outstat.st_mtime)) { /* Both, bad one newer */ + rename(in, out); + } + new_free(&in); new_free(&out); + } +} int main(int argc, char *argv[], char *envp[]) {