[Ttssh2-commit] [8886] タイムスタンプがうまく出なかったので修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 8月 6日 (木) 00:07:25 JST


Revision: 8886
          https://osdn.net/projects/ttssh2/scm/svn/commits/8886
Author:   zmatsuo
Date:     2020-08-06 00:07:25 +0900 (Thu, 06 Aug 2020)
Log Message:
-----------
タイムスタンプがうまく出なかったので修正

Modified Paths:
--------------
    branches/filesys_log/teraterm/teraterm/filesys_log.cpp
    branches/filesys_log/teraterm/teraterm/filesys_log.h
    branches/filesys_log/teraterm/teraterm/vtterm.c

-------------- next part --------------
Modified: branches/filesys_log/teraterm/teraterm/filesys_log.cpp
===================================================================
--- branches/filesys_log/teraterm/teraterm/filesys_log.cpp	2020-08-05 15:07:17 UTC (rev 8885)
+++ branches/filesys_log/teraterm/teraterm/filesys_log.cpp	2020-08-05 15:07:25 UTC (rev 8886)
@@ -920,7 +920,7 @@
 	logfile_unlock();
 }
 
-static char *TimeStampStr()
+static wchar_t *TimeStampStr()
 {
 	char *strtime = NULL;
 	switch (ts.LogTimestampType) {
@@ -945,8 +945,7 @@
 	strncat_s(tmp, sizeof(tmp), strtime, _TRUNCATE);
 	strncat_s(tmp, sizeof(tmp), "] ", _TRUNCATE);
 
-	return strdup(tmp);
-//	return ToWcharA(tmp);
+	return ToWcharA(tmp);
 }
 
 /**
@@ -957,7 +956,6 @@
 	PCHAR Buf;
 	int Start, Count;
 	BYTE b;
-	PFileVar fv = LogVar;
 
 	if (FileLog)
 	{
@@ -994,23 +992,6 @@
 			WriteBuf = (PCHAR)realloc(WriteBuf, WriteBufMax);
 		}
 
-		// add time stamp string
-		if ( ts.LogTimestamp && fv->eLineEnd ) {
-			char *strtime = TimeStampStr();
-			size_t len = strlen(strtime);
-			memcpy(&WriteBuf[WriteBufLen], strtime, len);
-			free(strtime);
-			WriteBufLen += len;
-		}
-
-		/* 2007.05.24 Gentaro */
-		if( b == 0x0a ){
-			fv->eLineEnd = Line_LineHead; /* set endmark*/
-		}
-		else {
-			fv->eLineEnd = Line_Other; /* clear endmark*/
-		}
-
 		WriteBuf[WriteBufLen++] = b;
 
 		(LogVar->ByteCount)++;
@@ -1280,17 +1261,6 @@
 void FLogWriteStr(const wchar_t *str)
 {
 	if (LogVar != NULL) {
-#if 0
-		DWORD wrote;
-		size_t len = wcslen(str)  * sizeof(wchar_t);
-		logfile_lock();
-		WriteFile(LogVar->FileHandle, str, len, &wrote, NULL);
-		LogVar->eLineEnd = Line_LineHead;
-		logfile_unlock();
-		LogVar->ByteCount =
-			LogVar->ByteCount + len;
-		LogVar->FLogDlg->RefreshNum(LogVar->StartTime, LogVar->FileSize, LogVar->ByteCount);
-#endif
 		OutputStr(str);
 	}
 }
@@ -1508,8 +1478,6 @@
 		if (BinLog) {
 			LogToFile();
 		}
-//		GlobalUnlock(cv_HBinBuf);
-//		cv_BinBuf = NULL;
 	}
 }
 
@@ -1524,6 +1492,13 @@
 		return;
 	}
 
+	if (ts.LogTimestamp && fv->eLineEnd) {
+		fv->eLineEnd = Line_Other; /* clear endmark*/
+		wchar_t* strtime = TimeStampStr();
+		FLogWriteStr(strtime);
+		free(strtime);
+	}
+
 	switch(fv->log_code) {
 	case 0: {
 		// UTF-8
@@ -1555,29 +1530,39 @@
 		}
 	}
 	}
+
+	if (u32 == 0x0a) {
+		fv->eLineEnd = Line_LineHead; /* set endmark*/
+	}
 }
 
 void FLogOutputBOM(void)
 {
 	PFileVar fv = LogVar;
+	DWORD wrote;
 
 	switch(fv->log_code) {
-	case 0:
+	case 0: {
 		// UTF-8
-		LogPut1(0xef);
-		LogPut1(0xbb);
-		LogPut1(0xbf);
+		const char *bom = "\xef\xbb\xbf";
+		WriteFile(LogVar->FileHandle, bom, 3, &wrote, NULL);
+		LogVar->ByteCount += 3;
 		break;
-	case 1:
+	}
+	case 1: {
 		// UTF-16LE
-		LogPut1(0xff);
-		LogPut1(0xfe);
+		const char *bom = "\xff\xfe";
+		WriteFile(LogVar->FileHandle, bom, 2, &wrote, NULL);
+		LogVar->ByteCount += 2;
 		break;
-	case 2:
+	}
+	case 2: {
 		// UTF-16BE
-		LogPut1(0xfe);
-		LogPut1(0xff);
+		const char *bom = "\xfe\xff";
+		WriteFile(LogVar->FileHandle, bom, 2, &wrote, NULL);
+		LogVar->ByteCount += 2;
 		break;
+	}
 	default:
 		break;
 	}

Modified: branches/filesys_log/teraterm/teraterm/filesys_log.h
===================================================================
--- branches/filesys_log/teraterm/teraterm/filesys_log.h	2020-08-05 15:07:17 UTC (rev 8885)
+++ branches/filesys_log/teraterm/teraterm/filesys_log.h	2020-08-05 15:07:25 UTC (rev 8886)
@@ -33,6 +33,12 @@
 extern "C" {
 #endif
 
+/**
+ * \x83\x8D\x83O\x83o\x83b\x83t\x83@\x82̍Œ\xE1\x8B󂫃T\x83C\x83Y
+ *	"[YYYY-MM-DD HH:MM:SS.000]" \x82̕\xB6\x8E\x9A\x82\xAA\x93\xFC\x82\xE9\x92\xF6\x93x
+ */
+#define FILESYS_LOG_FREE_SPACE	(30*2)
+
 // log
 typedef struct {
 	wchar_t *filename;		// [in] \x83t\x83@\x83C\x83\x8B\x96\xBC\x8F\x89\x8A\xFA\x92l(NULL=default) [out] \x93\xFC\x97̓t\x83@\x83C\x83\x8B\x96\xBC\x81Afree()\x82\xB7\x82邱\x82\xC6

Modified: branches/filesys_log/teraterm/teraterm/vtterm.c
===================================================================
--- branches/filesys_log/teraterm/teraterm/vtterm.c	2020-08-05 15:07:17 UTC (rev 8885)
+++ branches/filesys_log/teraterm/teraterm/vtterm.c	2020-08-05 15:07:25 UTC (rev 8886)
@@ -6367,7 +6367,7 @@
 		return 0;
 	}
 
-	if (FLogIsOpend() && FLogGetFreeCount() < 10) {
+	if (FLogIsOpend() && FLogGetFreeCount() < FILESYS_LOG_FREE_SPACE) {
 		// \x8E\xA9\x95\xAA\x82̃o\x83b\x83t\x83@\x82ɗ]\x97T\x82\xAA\x82Ȃ\xA2\x8Fꍇ\x82́ACPU\x83X\x83P\x83W\x83\x85\x81[\x83\x8A\x83\x93\x83O\x82𑼂ɉ񂵁A
 		// CPU\x82\xAA\x83X\x83g\x81[\x83\x8B\x82\xB7\x82\xE9\x82̖h\x82\xAE\x81B
 		// (2006.10.13 yutaka)


Ttssh2-commit メーリングリストの案内
Back to archive index