[Ttssh2-commit] [4037] strsplit マクロコマンドの count 引数省略時の動作を変更した

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 8月 21日 (土) 23:36:58 JST


Revision: 4037
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4037
Author:   maya
Date:     2010-08-21 23:36:58 +0900 (Sat, 21 Aug 2010)

Log Message:
-----------
strsplit マクロコマンドの count 引数省略時の動作を変更した

Modified Paths:
--------------
    trunk/doc/en/html/macro/command/strsplit.html
    trunk/doc/ja/html/macro/command/strsplit.html
    trunk/teraterm/ttpmacro/ttl.c


-------------- next part --------------
Modified: trunk/doc/en/html/macro/command/strsplit.html
===================================================================
--- trunk/doc/en/html/macro/command/strsplit.html	2010-08-21 13:50:37 UTC (rev 4036)
+++ trunk/doc/en/html/macro/command/strsplit.html	2010-08-21 14:36:58 UTC (rev 4037)
@@ -29,21 +29,26 @@
 Splits the string <strval> by the <separator> delimiter, and returns the 9 system variables from "groupmatchstr1" to "groupmatchstr9".
 </p>
 
-<!--p>
-&lt;separator&gt; ‚É‚Í‹æØ‚è‹L†‚Æ‚µ‚Ĉµ‚¤•¶Žš‚ð1•¶Žš‚¾‚¯Žw’è‚·‚éB
-</p-->
+<p>
+<!--&lt;separator&gt; ‚É‚Í‹æØ‚è‹L†‚Æ‚µ‚Ĉµ‚¤•¶Žš‚ð1•¶Žš‚¾‚¯Žw’è‚·‚éB-->
+</p>
 
 <p>
-The &lt;count&gt; is specified the maximum number of substrings to return.<br>
+The &lt;count&gt; is specified the maximum number of substrings to return. The upper limit of &lt;count&gt; is 9.<br>
 If a number of substrings is smaller than &lt;count&gt;, the remaining groupmatchstr variables stores NULL.<br>
-<!--•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª &lt;count&gt; ‚ð’´‚¦‚é‚Æ‚«AÅŒã‚Ìgroupmatchstr‚É‚ÍŽc‚è‚Ì•¶Žš—ñ‚ª‚·‚ׂđã“ü‚³‚ê‚éB<br>
-&lt;count&gt; ‚ªÈ—ª‚³‚ꂽê‡‚É‚Í 9 ‚Æ‚Ý‚È‚³‚ê‚éB-->
+<!--•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª &lt;count&gt; ‚ð’´‚¦‚é‚Æ‚«AÅŒã‚Ìgroupmatchstr‚É‚ÍŽc‚è‚Ì•¶Žš—ñ‚ª‚·‚ׂđã“ü‚³‚ê‚éB-->
 </p>
 
-<!--p>
-ŽÀÛ‚É•ªŠ„‚³‚ꂽŒÂ”‚ðƒVƒXƒeƒ€•Ï” result ‚ÉŠi”[‚·‚éB
-</p-->
+<p>
+<!--&lt;count&gt; ‚ªÈ—ª‚³‚ꂽê‡‚ɂ́A•”•ª•¶Žš—ñ‚̍ő吔‚Í 9 ‚Æ‚Ý‚È‚³‚ê‚éB<br>
+•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª 9 ‚ð’´‚¦‚é‚Æ‚«A&lt;count&gt; ‚ðŽw’肵‚½ê‡‚Ƃ͈Ⴂ 9 ”Ô–Ú‚Ì•”•ª•¶Žš—ñ‚Ì‚Ý‚ª‘ã“ü‚³‚ê‚éB-->
+</p>
 
+<p>
+<!--ŽÀÛ‚É•ªŠ„‚³‚ꂽŒÂ”‚ðƒVƒXƒeƒ€•Ï” result ‚ÉŠi”[‚·‚éB<br>
+&lt;count&gt; ‚ªÈ—ª‚³‚êA•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª 9 ‚ð’´‚¦‚é‚Æ‚«‚́AƒVƒXƒeƒ€•Ï” result ‚É 10 ‚ðŠi”[‚·‚éB-->
+</p>
+
 <h2>Example</h2>
 
 <pre class="macro-example">
@@ -88,6 +93,20 @@
 messagebox groupmatchstr8 "groupmatchstr8" ; ''
 messagebox groupmatchstr9 "groupmatchstr9" ; ''
 messagebox result         "result"         ; 3
+
+src='1,2,3,4,5,6,7,8,9,0'
+strsplit src ','
+
+messagebox groupmatchstr1 "groupmatchstr1" ; '1'
+messagebox groupmatchstr2 "groupmatchstr2" ; '2'
+messagebox groupmatchstr3 "groupmatchstr3" ; '3'
+messagebox groupmatchstr4 "groupmatchstr4" ; '4'
+messagebox groupmatchstr5 "groupmatchstr5" ; '5'
+messagebox groupmatchstr6 "groupmatchstr6" ; '6'
+messagebox groupmatchstr7 "groupmatchstr7" ; '7'
+messagebox groupmatchstr8 "groupmatchstr8" ; '8'
+messagebox groupmatchstr9 "groupmatchstr9" ; '9'
+messagebox result         "result"         ; 10
 </pre>
 
 <h2>Reference</h2>

Modified: trunk/doc/ja/html/macro/command/strsplit.html
===================================================================
--- trunk/doc/ja/html/macro/command/strsplit.html	2010-08-21 13:50:37 UTC (rev 4036)
+++ trunk/doc/ja/html/macro/command/strsplit.html	2010-08-21 14:36:58 UTC (rev 4037)
@@ -36,14 +36,19 @@
 <p>
 &lt;count&gt; ‚ɂ́AŽæ“¾‚·‚é•”•ª•¶Žš—ñ‚̍ő吔i9ˆÈ‰ºj‚ðŽw’è‚·‚éB <br>
 •¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª &lt;count&gt; –¢–ž‚Å‚ ‚é‚Æ‚«A•”•ª•¶Žš—ñ‚ª‘ã“ü‚³‚ê‚È‚©‚Á‚½groupmatchstr‚ɂ́ANULL‚ª‘ã“ü‚³‚ê‚éB<br>
-•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª &lt;count&gt; ‚ð’´‚¦‚é‚Æ‚«AÅŒã‚Ìgroupmatchstr‚É‚ÍŽc‚è‚Ì•¶Žš—ñ‚ª‚·‚ׂđã“ü‚³‚ê‚éB<br>
-&lt;count&gt; ‚ªÈ—ª‚³‚ꂽê‡‚É‚Í 9 ‚Æ‚Ý‚È‚³‚ê‚éB
+•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª &lt;count&gt; ‚ð’´‚¦‚é‚Æ‚«AÅŒã‚Ìgroupmatchstr‚É‚ÍŽc‚è‚Ì•¶Žš—ñ‚ª‚·‚ׂđã“ü‚³‚ê‚éB
 </p>
 
 <p>
-ŽÀÛ‚É•ªŠ„‚³‚ꂽŒÂ”‚ðƒVƒXƒeƒ€•Ï” result ‚ÉŠi”[‚·‚éB
+&lt;count&gt; ‚ªÈ—ª‚³‚ꂽê‡‚ɂ́A•”•ª•¶Žš—ñ‚̍ő吔‚Í 9 ‚Æ‚Ý‚È‚³‚ê‚éB<br>
+•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª 9 ‚ð’´‚¦‚é‚Æ‚«A&lt;count&gt; ‚ðŽw’肵‚½ê‡‚Ƃ͈Ⴂ 9 ”Ô–Ú‚Ì•”•ª•¶Žš—ñ‚Ì‚Ý‚ª‘ã“ü‚³‚ê‚éB
 </p>
 
+<p>
+ŽÀÛ‚É•ªŠ„‚³‚ꂽŒÂ”‚ðƒVƒXƒeƒ€•Ï” result ‚ÉŠi”[‚·‚éB<br>
+&lt;count&gt; ‚ªÈ—ª‚³‚êA•¶Žš—ñ’†‚Ì•”•ª•¶Žš—ñ‚̐”‚ª 9 ‚ð’´‚¦‚é‚Æ‚«‚́AƒVƒXƒeƒ€•Ï” result ‚É 10 ‚ðŠi”[‚·‚éB
+</p>
+
 <h2>—á</h2>
 
 <pre class="macro-example">
@@ -88,6 +93,20 @@
 messagebox groupmatchstr8 "groupmatchstr8" ; ''
 messagebox groupmatchstr9 "groupmatchstr9" ; ''
 messagebox result         "result"         ; 3
+
+src='1,2,3,4,5,6,7,8,9,0'
+strsplit src ','
+
+messagebox groupmatchstr1 "groupmatchstr1" ; '1'
+messagebox groupmatchstr2 "groupmatchstr2" ; '2'
+messagebox groupmatchstr3 "groupmatchstr3" ; '3'
+messagebox groupmatchstr4 "groupmatchstr4" ; '4'
+messagebox groupmatchstr5 "groupmatchstr5" ; '5'
+messagebox groupmatchstr6 "groupmatchstr6" ; '6'
+messagebox groupmatchstr7 "groupmatchstr7" ; '7'
+messagebox groupmatchstr8 "groupmatchstr8" ; '8'
+messagebox groupmatchstr9 "groupmatchstr9" ; '9'
+messagebox result         "result"         ; 10
 </pre>
 
 <h2>ŽQÆ</h2>

Modified: trunk/teraterm/ttpmacro/ttl.c
===================================================================
--- trunk/teraterm/ttpmacro/ttl.c	2010-08-21 13:50:37 UTC (rev 4036)
+++ trunk/teraterm/ttpmacro/ttl.c	2010-08-21 14:36:58 UTC (rev 4037)
@@ -3641,7 +3641,7 @@
 	int maxvar;
 	int srclen, len;
 	int i, count;
-	BOOL ary = FALSE;
+	BOOL ary = FALSE, omit = FALSE;
 	char *p;
 	char /* *last, */ *tok[MAXVARNUM];
 
@@ -3664,6 +3664,7 @@
 	}
 	else {
 		maxvar = 9;
+		omit = TRUE;
 	}
 
 	if ((Err==0) && (GetFirstChar()!=0))
@@ -3721,11 +3722,13 @@
 		p = buf;
 		count = 1;
 		tok[count-1] = p;
-		for (i=0; i < srclen && count < maxvar; i++) {
+		for (i=0; i < srclen && count < maxvar + omit; i++) { // count È—ªŽž‚ɂ́A’´‰ß•ª‚ðŽÌ‚Ă邽‚ß 1 ‚—]•ª‚ɐi‚ß‚é
 			if (*p == *delimchars) {
 				*p = '\0';
 				count++;
-				tok[count-1] = p+1;
+				if (count <= MAXVARNUM) { // tok ‚Ì—v‘f”‚ð’´‚¦‚Ä‘ã“ü‚µ‚È‚¢‚悤‚É‚·‚é(count È—ªŽž‚Ì‚½‚ß)
+					tok[count-1] = p+1;
+				}
 			}
 			p++;
 		}



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