• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision6413 (tree)
Time2016-06-27 13:26:24
Authordoda

Log Message

strreplace で正しく無い正規表現の場合は result で -1 を返すように変更した。

Change Summary

Incremental Difference

--- trunk/doc/ja/html/about/history.html (revision 6412)
+++ trunk/doc/ja/html/about/history.html (revision 6413)
@@ -42,7 +42,10 @@
4242 <li>バグ修正
4343 <ul>
4444 <li>Windows 95/98/Me/NT4.0で起動できなくなっていた問題を修正した。</li>
45- <li><a href="../macro/command/strreplace.html">strreplace</a> マクロコマンドで、正しくない正規表現を指定した時に元文字列が壊れる問題を修正した。</li>
45+ <li><a href="../macro/command/strreplace.html">strreplace</a> マクロコマンドで、正しくない正規表現を指定した時に元文字列が壊れる問題を修正した。
46+ <ul>
47+ <li>正しく無い正規表現を指定した時は result で -1 を返すようにした。</li>
48+ </ul></li>
4649 </ul>
4750 </li>
4851
--- trunk/doc/ja/html/macro/command/strreplace.html (revision 6412)
+++ trunk/doc/ja/html/macro/command/strreplace.html (revision 6413)
@@ -31,8 +31,9 @@
3131 </p>
3232
3333 <p>
34-置換が成功すると、システム変数 result に"1"が入り、正規表現 &lt;regex&gt; でマッチした文字列はシステム変数 matchstr に格納される。<br>
35-置換が失敗した場合は、result が"0"になる。<br>
34+置換が成功すると、システム変数 result に "1" が格納され、正規表現 &lt;regex&gt; でマッチした文字列はシステム変数 matchstr に格納される。<br>
35+&lt;regex&gt; が &lt;strvar&gt; の内容にマッチせず置換が行われなかった場合は、result に "0" が格納される。<br>
36+&lt;regex&gt; の書式が正しくない等でエラーとなった場合は、result に "-1" が格納される。
3637 </p>
3738
3839 <p>
--- trunk/doc/en/html/about/history.html (revision 6412)
+++ trunk/doc/en/html/about/history.html (revision 6413)
@@ -42,7 +42,10 @@
4242 <li>Bug fixes
4343 <ul>
4444 <li>Tera Term(ttermpro.exe) can not run on Windows 95/98/Me/NT4.0.</li>
45- <li>MACRO: When invalid regular expression is specified at the <a href="../macro/command/strreplace.html">strreplace</a> command, source string is corrupted.</li>
45+ <li>MACRO: When invalid regular expression is specified at the <a href="../macro/command/strreplace.html">strreplace</a> command, source string is corrupted.
46+ <!-- ul>
47+ <li>正しく無い正規表現を指定した時は result で -1 を返すようにした。</li>
48+ </ul --></li>
4649 </ul>
4750 </li>
4851
--- trunk/doc/en/html/macro/command/strreplace.html (revision 6412)
+++ trunk/doc/en/html/macro/command/strreplace.html (revision 6413)
@@ -34,6 +34,12 @@
3434 When the replacing succeeds, the system variable "result" is set to 1 and the matched string by the &lt;regex&gt; is stored into the system variable "matchstr". <br>
3535 When the replacing fails, the system variable "result" is set to 0.
3636 </p>
37+<!-- p>
38+置換が成功すると、システム変数 result に "1" が格納され、正規表現 &lt;regex&gt; でマッチした文字列はシステム変数 matchs
39+tr に格納される。<br>
40+&lt;regex&gt; が &lt;strvar&gt; の内容にマッチせず置換が行われなかった場合は、result に "0" が格納される。<br>
41+&lt;regex&gt; の書式が正しくない等でエラーとなった場合は、result に "-1" が格納される。
42+</p -->
3743
3844 <p>
3945 When a user searches the multi-byte string like as Japanese, the user must configure the regular encoding by using the <a href="regexoption.html">regexoption</a> previously.
--- trunk/teraterm/ttpmacro/ttl.c (revision 6412)
+++ trunk/teraterm/ttpmacro/ttl.c (revision 6413)
@@ -5014,11 +5014,16 @@
50145014 ret = FindRegexStringOne(oldstr, oldlen, p, strlen(p));
50155015 // FindRegexStringOneの中でUnlockVar()されてしまうので、LockVar()しなおす。
50165016 LockVar();
5017- if (ret <= 0) {
5017+ if (ret == 0) {
50185018 // 見つからなかった場合は、"0"で戻る。
50195019 result = 0;
50205020 goto error;
50215021 }
5022+ else if (ret < 0) {
5023+ // 正しくない正規表現等でエラーの場合は -1 を返す
5024+ result = -1;
5025+ goto error;
5026+ }
50225027 ret--;
50235028
50245029 if (CheckVar("matchstr",&VarType,&VarId) &&
Show on old repository browser