Ejemplo n.º 1
0
Archivo: text.c Proyecto: sb057/hexchat
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;
}
Ejemplo n.º 2
0
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;
}