static char * log_create_pathname (char *servname, char *channame, char *netname) { char fname[384]; char fnametime[384]; time_t now; if (!netname) { netname = g_strdup ("NETWORK"); } else { netname = log_create_filename (netname); } /* first, everything is in UTF-8 */ if (!rfc_casecmp (channame, servname)) { channame = g_strdup ("server"); } else { channame = log_create_filename (channame); } servname = log_create_filename (servname); log_insert_vars (fname, sizeof (fname), prefs.hex_irc_logmask, channame, netname, servname); g_free (channame); g_free (netname); g_free (servname); /* insert time/date */ now = time (NULL); strftime_utf8 (fnametime, sizeof (fnametime), fname, now); /* If one uses log mask variables, such as "%c/...", %c will be empty upon * connecting since there's no channel name yet, so we have to make sure * we won't try to write to the FS root. */ if (g_path_is_absolute (prefs.hex_irc_logmask)) { g_snprintf (fname, sizeof (fname), "%s", fnametime); } else /* relative path */ { g_snprintf (fname, sizeof (fname), "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s", get_xdir (), fnametime); } /* create all the subdirectories */ mkdir_p (fname); return g_strdup (fname); }
static char * log_create_pathname (char *servname, char *channame, char *netname) { char fname[384]; char fnametime[384]; char *fs; struct tm *tm; time_t now; if (!netname) { netname = "NETWORK"; } /* first, everything is in UTF-8 */ if (!rfc_casecmp (channame, servname)) { channame = strdup ("server"); } else { channame = log_create_filename (channame); } log_insert_vars (fname, sizeof (fname), prefs.logmask, channame, netname, servname); free (channame); /* insert time/date */ now = time (NULL); tm = localtime (&now); strftime (fnametime, sizeof (fnametime), fname, tm); /* create final path/filename */ if (logmask_is_fullpath ()) { snprintf (fname, sizeof (fname), "%s", fnametime); } else /* relative path */ { snprintf (fname, sizeof (fname), "%s/logs/%s", get_xdir_utf8 (), fnametime); } /* now we need it in FileSystem encoding */ fs = xchat_filename_from_utf8 (fname, -1, 0, 0, 0); /* create all the subdirectories */ if (fs) { mkdir_p (fs); } return fs; }
static char * log_create_pathname (char *servname, char *channame, char *netname) { char fname[384]; char fnametime[384]; struct tm *tm; time_t now; if (!netname) { netname = strdup ("NETWORK"); } else { netname = log_create_filename (netname); } /* first, everything is in UTF-8 */ if (!rfc_casecmp (channame, servname)) { channame = strdup ("server"); } else { channame = log_create_filename (channame); } log_insert_vars (fname, sizeof (fname), prefs.hex_irc_logmask, channame, netname, servname); free (channame); free (netname); /* insert time/date */ now = time (NULL); tm = localtime (&now); strftime_validated (fnametime, sizeof (fnametime), fname, tm); /* create final path/filename */ if (logmask_is_fullpath ()) { snprintf (fname, sizeof (fname), "%s", fnametime); } else /* relative path */ { snprintf (fname, sizeof (fname), "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s", get_xdir (), fnametime); } /* create all the subdirectories */ mkdir_p (fname); return g_strdup(fname); }
static char* log_create_pathname(char *servname, char *channame, char *netname) { char fname[384]; char fnametime[384]; char *fs; tm *tm; time_t now; if (!netname) netname = "NETWORK"; // first, everything is in UTF-8 if (!rfc_casecmp(channame, servname)) channame = strdup("server"); else channame = log_create_filename(channame); log_insert_vars(fname, sizeof(fname), prefs.logmask, channame, netname, servname); free(channame); // insert time/date now = time(nullptr); tm = localtime(&now); strftime(fnametime, sizeof(fnametime), fname, tm); // create final path/filename #ifdef WIN32 if (fnametime[0] == '/' || (fnametime[0] >= 'A' && fnametime[1] == ':')) #else if (fnametime[0] == '/') // is it fullpath already? #endif snprintf(fname, sizeof(fname), "%s", fnametime); else snprintf(fname, sizeof(fname), "%s/xchatlogs/%s", get_xdir_utf8(), fnametime); // now we need it in FileSystem encoding fs = xchat_filename_from_utf8(fname, -1, 0, 0, 0); // create all the subdirectories if (fs) mkdir_p(fs); return fs; }