示例#1
0
void Utils::appendText(char **str, int *sizeAlloced, const char *fmt, ...)
{
    va_list vararg;
    char *p;
    int size, len;

    if (str == NULL) return;

    if (*str==NULL || *sizeAlloced<=0) {
        *sizeAlloced = size = 2048;
        *str = (char *) malloc(size);
        len = 0;
    }
    else {
        len = (int)strlen(*str);
        size = *sizeAlloced - len;
    }

    if (size < 128) {
        size += 2048;
        (*sizeAlloced) += 2048;
        *str = (char *) realloc(*str, *sizeAlloced);
    }
    p = *str + len;
    va_start(vararg, fmt);
    while (mir_vsnprintf(p, size  - 1, fmt, vararg) == -1) {
        size += 2048;
        (*sizeAlloced) += 2048;
        *str = (char *) realloc(*str, *sizeAlloced);
        p = *str + len;
    }
    p[ size - 1 ] = '\0';
    va_end(vararg);
}
示例#2
0
int _DebugTraceA(const char *fmt, ...)
{
	char    debug[2048];
	int     ibsize = 2047;
	va_list va;
	va_start(va, fmt);

	lstrcpyA(debug, "TABSRMM: ");
	mir_vsnprintf(&debug[9], ibsize - 10, fmt, va);
#ifdef _DEBUG
 	OutputDebugStringA(debug);
#else
	{
		char szLogFileName[MAX_PATH], szDataPath[MAX_PATH];
		CallService(MS_DB_GETPROFILEPATH, MAX_PATH, (LPARAM)szDataPath);
		mir_snprintf(szLogFileName, MAX_PATH, "%s\\tabsrmm_debug.log", szDataPath);
		FILE *f = fopen(szLogFileName, "a+");
		if (f) {
			fputs(debug, f);
			fputs("\n", f);
			fclose(f);
		}
	}
#endif
	return 0;
}
示例#3
0
int Log(char *format, ...)
{
#ifdef USE_LOG
	char		str[4096];
	va_list	vararg;
	int tBytes;
	FILE *fout = fopen(LOG_FILE, "at");
	if (!fout)
		{
//			MessageBox(0, "can't open file", NULL, MB_OK);
			return -1;
		}
	time_t tNow = time(NULL);
	struct tm *now = localtime(&tNow);
	strftime(str, sizeof(str), "%d %b %Y @ %H:%M:%S: ", now);
	fputs(str, fout);
	va_start(vararg, format);

	tBytes = mir_vsnprintf(str, sizeof(str), format, vararg);
	if (tBytes > 0)
		{
			str[tBytes] = 0;
		}

	va_end(vararg);
	if (str[strlen(str) - 1] != '\n')
		{
			strcat(str, "\n");
		}
	fputs(str, fout);
	fclose(fout);
#endif
	return 0;
}
示例#4
0
void ShowInfoMessage(BYTE flags, const char *pszTitle, const char *pszTextFmt, ...)
{
	va_list va;
	va_start(va, pszTextFmt);
	char szText[256]; /* max for systray */
	mir_vsnprintf(szText, SIZEOF(szText), pszTextFmt, va);
	va_end(va);

	if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) {
		MIRANDASYSTRAYNOTIFY msn;
		msn.cbSize = sizeof(msn);
		msn.szProto = NULL;
		msn.szInfoTitle = (char*)pszTitle;
		msn.szInfo = (char*)szText;
		msn.uTimeout = 30000; /* max timeout */
		msn.dwInfoFlags = flags;
		if (!CallServiceSync(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM)&msn))
			return; /* success */
	}

	MSGBOXPARAMSA *mbp = (MSGBOXPARAMSA*)mir_calloc(sizeof(*mbp));
	if (mbp == NULL) return;
	mbp->cbSize = sizeof(*mbp);
	mbp->lpszCaption = mir_strdup(pszTitle);
	mbp->lpszText = mir_strdup(szText);
	mbp->dwStyle = MB_OK|MB_SETFOREGROUND|MB_TASKMODAL;
	mbp->dwLanguageId = LANGIDFROMLCID((LCID)CallService(MS_LANGPACK_GETLOCALE, 0, 0));
	switch(flags&NIIF_ICON_MASK) {
		case NIIF_INFO:    mbp->dwStyle |= MB_ICONINFORMATION; break;
		case NIIF_WARNING: mbp->dwStyle |= MB_ICONWARNING; break;
		case NIIF_ERROR:   mbp->dwStyle |= MB_ICONERROR;
	}
	mir_forkthread(( pThreadFunc )MessageBoxIndirectFree, mbp);
}
示例#5
0
int ThreadData::sendPacket(const char* cmd, const char* fmt,...)
{
	if (this == NULL) return 0;

	size_t strsize = 512;
	char* str = (char*)mir_alloc(strsize);

	int thisTrid = 0;

	if (fmt == NULL)
		mir_snprintf(str, strsize, "%s", cmd);
	else {
		thisTrid = InterlockedIncrement(&mTrid);
		if (fmt[0] == '\0')
			mir_snprintf(str, strsize, "%s %d", cmd, thisTrid);
		else {
			va_list vararg;
			va_start(vararg, fmt);

			int paramStart = mir_snprintf(str, strsize, "%s %d ", cmd, thisTrid);
			while (mir_vsnprintf(str+paramStart, strsize-paramStart-3, fmt, vararg) == -1)
				str = (char*)mir_realloc(str, strsize += 512);

			str[strsize-3] = 0;
			va_end(vararg);
		}
	}

	if (strchr(str, '\r') == NULL)
		strcat(str,"\r\n");

	int result = send(str, strlen(str));
	mir_free(str);
	return (result > 0) ? thisTrid : -1;
}
示例#6
0
int Log(char *format, ...)
{
	#ifdef _DEBUG
		char		str[4096];
		va_list	vararg;
		int tBytes;
		FILE *fout = fopen(LOG_FILE, "at");
		if (!fout)
			return -1;

		time_t tNow = time(NULL);
		struct tm *now = localtime(&tNow);
		strftime(str, sizeof(str), "%d %b %Y @ %H:%M:%S: ", now);
		fputs(str, fout);
		va_start(vararg, format);

		tBytes = mir_vsnprintf(str, sizeof(str), format, vararg);
		if (tBytes > 0)
			str[tBytes] = 0;

		va_end(vararg);
		if (str[strlen(str) - 1] != '\n')
			strcat(str, "\n");
		fputs(str, fout);
		fclose(fout);
	#endif
	return 0;
}
示例#7
0
int Log(char *format, ...)
{
#ifdef ___DEBUGG
	char		str[4096];
	va_list	vararg;
	int tBytes;
	FILE *fout = fopen(LOG_FILE, "at");
	if (!fout)
		{
//			MessageBox(0, "can't open file", NULL, MB_OK);
			return -1;
		}

	va_start(vararg, format);

	tBytes = mir_vsnprintf(str, sizeof(str), format, vararg);
	if (tBytes > 0)
		{
			str[tBytes] = 0;
		}

	va_end(vararg);
	if (str[strlen(str) - 1] != '\n')
		{
			strcat(str, "\n");
		}
	fputs(str, fout);
	fclose(fout);
#endif
	return 0;
}
示例#8
0
int Sent_NetLog(const char *fmt,...)
{
  va_list va;
  char szText[1024];

  va_start(va,fmt);
  mir_vsnprintf(szText,sizeof(szText),fmt,va);
  va_end(va);
  return CallService(MS_NETLIB_LOG,(WPARAM)hNetlibUser,(LPARAM)szText);
}
示例#9
0
void SslLog(const char *fmt, ...)
{
	va_list va;
	char szText[1024];

	va_start(va, fmt);
	mir_vsnprintf(szText, sizeof(szText), fmt, va);
	va_end(va);

	CallServiceSync(MS_NETLIB_LOG, (WPARAM)NULL, (LPARAM)szText);
}
示例#10
0
文件: utils.c 项目: raoergsls/miranda
void utils_log_fmt(const char *file,int line,const char *fmt,...) {
	if (fp) {
        va_list vararg;
        char str[1024];
    
		va_start(vararg,fmt);
		mir_vsnprintf(str,sizeof(str),fmt,vararg);
		va_end(vararg);
		fprintf(fp,"%u: %s %d: %s\n",(unsigned int)GetTickCount(),file,line,str);
	}
}
示例#11
0
int Info(char *title, char *format, ...)
{
	char str[4096];
	va_list vararg;
	int tBytes;
	va_start(vararg, format);
	tBytes = mir_vsnprintf(str, sizeof(str), format, vararg);
	if (tBytes > 0)
		str[tBytes] = 0;
	va_end(vararg);
	return MessageBoxA(0, str, title, MB_OK | MB_ICONINFORMATION);
}
示例#12
0
void IEView::writef(const char *fmt, ...)
{
	int strsize = 2048;
	va_list vararg;
	va_start(vararg, fmt);
	char *str = (char *)malloc(strsize);
	while (mir_vsnprintf(str, strsize, fmt, vararg) == -1)
		str = (char *)realloc(str, strsize += 2048);
	va_end(vararg);
	write(str);
	free(str);
}
示例#13
0
void DBLog(const char *file,int line,const char *fmt,...)
{
	FILE *fp;
	va_list vararg;
	char str[1024];

	va_start(vararg,fmt);
	mir_vsnprintf(str,sizeof(str),fmt,vararg);
	va_end(vararg);
	fp=fopen("c:\\mirandadatabase.log.txt","at");
	fprintf(fp,"%u: %s %d: %s\n",GetTickCount(),file,line,str);
	fclose(fp);
}
示例#14
0
int lpprintf(const char *format, ...)
{
	va_list va;
	va_start(va, format);
	const int MAX_SIZE = 16192;
	char buffer[MAX_SIZE] = {0};
	int len = mir_vsnprintf(buffer, MAX_SIZE - 1, format, va);
	buffer[MAX_SIZE - 1] = 0;
	va_end(va);
	CharToOemBuff(buffer, buffer, len);
	printf("%s", buffer);

	return len;
}
示例#15
0
// This add a message to the list box in progress page of the wizard
void AddMessage(const char *fmt, ...) {
	va_list args;
	char msgBuf[4096];
	va_start(args, fmt);

	mir_vsnprintf(msgBuf, SIZEOF(msgBuf), Translate(fmt), args);
	#if defined ( _UNICODE )
	{
		TCHAR* str = mir_a2t(msgBuf);
		SendMessage(hdlgProgress, PROGM_ADDMESSAGE, 0, (LPARAM)str);
		mir_free(str);
	}
	#else
		SendMessage(hdlgProgress, PROGM_ADDMESSAGE, 0, (LPARAM)msgBuf);
	#endif
}
示例#16
0
static void Log_Append(char *&buffer, size_t &cbBufferEnd, size_t &cbBufferAlloced, const char *fmt, ...)
{
	va_list va;
	int charsDone = 0;

	va_start(va, fmt);
	for (;;) {
		charsDone = mir_vsnprintf(buffer + cbBufferEnd, cbBufferAlloced - cbBufferEnd, fmt, va);
		if (charsDone >= 0)
			break;
		cbBufferAlloced += 4096;
		buffer = (char*)mir_realloc(buffer, cbBufferAlloced);
	}
	va_end(va);
	cbBufferEnd += charsDone;
}
示例#17
0
static void Log_Append(char **buffer, int *cbBufferEnd, int *cbBufferAlloced, const char *fmt, ...)
{
	va_list va;
	int charsDone = 0;

	va_start(va, fmt);
	for (;;) {
		charsDone = mir_vsnprintf(*buffer + *cbBufferEnd, *cbBufferAlloced - *cbBufferEnd, fmt, va);
		if (charsDone >= 0)
			break;
		*cbBufferAlloced += 4096;
		*buffer = (char *) mir_realloc(*buffer, *cbBufferAlloced);
	}
	va_end(va);
	*cbBufferEnd += charsDone;
}
示例#18
0
int LOG(const char *fmt,...)
{
	CComCritSecLock< CComAutoCriticalSection > _Lock( _LOG_SECTION );

	int ret = 0;
	const int size = 512;
	if ( char* szText = (char*)mir_alloc( size ) )
	{
		*szText = 0;
		va_list va;
		va_start( va, fmt );
		mir_vsnprintf( szText, size, fmt, va );
		va_end( va );
		ret = CallService( MS_NETLIB_LOG, (WPARAM)pluginNetLibUser, (LPARAM)szText );
		mir_free( szText );
	}
	return ret;
}
示例#19
0
int AddDebugLogMessageA(const char* fmt, ...)
{
	int res;
	char szText[MAX_DEBUG], szFinal[MAX_DEBUG];
	va_list va;

	va_start(va, fmt);
	mir_vsnprintf(szText, _countof(szText), fmt, va);
	va_end(va);
#ifdef MODULENAME
	mir_snprintf(szFinal, _countof(szFinal), "%s: %s", MODULENAME, szText);
#else
	strncpy(szFinal, szText, _countof(szFinal));
#endif
	res = WriteToDebugLogA(szFinal);

	return res;
}
示例#20
0
static void logInfo(const char *filename, const char *fmt, ...) {
	SYSTEMTIME time;
	char *str;
	va_list vararg;
	int strsize;
	FILE *flog=fopen(filename,"at");
	if (flog != NULL) {
		GetLocalTime(&time);
		va_start(vararg, fmt);
		str = (char *) mir_alloc(strsize=2048);
		while (mir_vsnprintf(str, strsize, fmt, vararg) == -1)
			str = (char *) realloc(str, strsize+=2048);
		va_end(vararg);
		fprintf(flog,"%04d-%02d-%02d %02d:%02d:%02d,%03d [%s]",time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond,time.wMilliseconds, "INFO");
		fprintf(flog,"  %s\n",str);
		mir_free(str);
		fclose(flog);
	}
}
示例#21
0
static void AppendToCharBuffer(struct ResizableCharBuffer *rcb, const char *fmt, ...)
{
	va_list va;
	int charsDone;

	if (rcb->cbAlloced == 0) {
		rcb->cbAlloced = 512;
		rcb->sz = (char*)mir_alloc(rcb->cbAlloced);
	}
	va_start(va, fmt);
	while (true) {
		charsDone = mir_vsnprintf(rcb->sz + rcb->iEnd, rcb->cbAlloced - rcb->iEnd, fmt, va);
		if (charsDone >= 0) break;
		rcb->cbAlloced += 512;
		rcb->sz = (char*)mir_realloc(rcb->sz, rcb->cbAlloced);
	}
	va_end(va);
	rcb->iEnd += charsDone;
}
示例#22
0
void DebugLog(HANDLE File,const char *fmt,...)
{
	char *str;
	char tids[32];
	va_list vararg;
	int strsize;
	DWORD Written;

	va_start(vararg,fmt);
	str=(char *)malloc(strsize=65536);
	mir_snprintf(tids, "[%x]",GetCurrentThreadId());
	while(mir_vsnprintf(str, strsize, fmt, vararg)==-1)
		str=(char *)realloc(str,strsize+=65536);
	va_end(vararg);
	EnterCriticalSection(&FileAccessCS);
	WriteFile(File,tids,(DWORD)mir_strlen(tids),&Written,NULL);
	WriteFile(File,str,(DWORD)mir_strlen(str),&Written,NULL);
	LeaveCriticalSection(&FileAccessCS);
	free(str);
}