[Ttssh2-commit] [3568] TTLマクロで、C言語スタイルのコメント (/ * ~ * /) をサポートした。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 7月 2日 (木) 01:21:53 JST


Revision: 3568
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=3568
Author:   yutakapon
Date:     2009-07-02 01:21:53 +0900 (Thu, 02 Jul 2009)

Log Message:
-----------
TTLマクロで、C言語スタイルのコメント(/* ~ */)をサポートした。
ただし、デフォルトでは無効としてある。4.63リリース後に有効化?
#安定しているなら、正式リリースしてもよいけど。

Modified Paths:
--------------
    trunk/teraterm/ttpmacro/ttmparse.c


-------------- next part --------------
Modified: trunk/teraterm/ttpmacro/ttmparse.c
===================================================================
--- trunk/teraterm/ttpmacro/ttmparse.c	2009-07-01 12:51:45 UTC (rev 3567)
+++ trunk/teraterm/ttpmacro/ttmparse.c	2009-07-01 16:21:53 UTC (rev 3568)
@@ -11,6 +11,8 @@
 #include "ttmdlg.h"
 #include "ttmparse.h"
 
+/* CŒ¾ŒêƒXƒ^ƒCƒ‹‚̃Rƒƒ“ƒg‚ðƒTƒ|[ƒg‚·‚é‚©‚Ç‚¤‚© (2009.7.2 yutaka) */
+//#define SUPPORT_C_STYLE_COMMENT
 
 WORD TTLStatus = 0;
 char LineBuff[MaxLineLen]; // sƒoƒbƒtƒ@‚̃TƒCƒY‚ðŠg’£‚µ‚½B(2007.6.9 maya)
@@ -329,7 +331,9 @@
 
 BYTE GetFirstChar()
 {
+	static int commenting = 0;
 	BYTE b;
+	int comment_starting = 0;
 
 	if (LinePtr<LineLen)
 		b = LineBuff[LinePtr];
@@ -340,6 +344,52 @@
 		LinePtr++;
 		if (LinePtr<LineLen) b = LineBuff[LinePtr];
 	}
+
+#ifdef SUPPORT_C_STYLE_COMMENT
+	if (commenting) {
+		while (LinePtr < LineLen) {
+			/* ƒRƒƒ“ƒg‚̏I‚í‚肪o‚Ä‚­‚é‚܂ŃXƒLƒbƒv */
+			if (LineBuff[LinePtr] == '*' && LineBuff[LinePtr + 1] == '/') {
+				commenting = 0;
+				LinePtr += 2;
+				break;
+			}
+			LinePtr++;
+		}
+		/* ˆês‚ɃRƒƒ“ƒg‚̏I‚í‚肪‚È‚©‚Á‚½‚çAŽŸ‚̍s‚ð“ǂށB*/
+		if (commenting)
+			return 0;   // next line
+
+		if (LinePtr < LineLen) 
+			b = LineBuff[LinePtr];
+		else
+			b = 0;
+	}
+
+	/* CŒ¾ŒêƒRƒƒ“ƒg‚ÌŽn‚Ü‚è */
+	if (LineBuff[LinePtr] == '/' && LineBuff[LinePtr + 1] == '*') {
+		comment_starting = 1;
+		LinePtr += 2;
+		while (LinePtr < LineLen) {
+			/* ƒRƒƒ“ƒg‚̏I‚í‚肪o‚Ä‚­‚é‚܂ŃXƒLƒbƒv */
+			if (LineBuff[LinePtr] == '*' && LineBuff[LinePtr + 1] == '/') {
+				LinePtr += 2;
+				comment_starting = 0;
+				break;
+			}
+			LinePtr++;
+		}
+		if (LinePtr < LineLen) 
+			b = LineBuff[LinePtr];
+		else
+			b = 0;
+
+		/* ƒRƒƒ“ƒg‚̏I‚í‚肪ˆês‚É“oê‚µ‚È‚¢ê‡‚́A‰i‘±“I‚É‹L˜^‚·‚éB*/
+		if (comment_starting)
+			commenting = 1;
+	}
+#endif
+
 	if ((b>' ') && (b!=';'))
 	{
 		LinePtr++;



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