|
秀丸担当さん今日は、Iranoan です。
再現性は低いのですが、
-----------------------------------------------------------------------
マクロエラー:文字列変数の名前が指定されなければいけない所にそれ以外の
ものが指定されています。
-----------------------------------------------------------------------
のエラーが出たりでなかったりします。毎回出るなら解るのですが...。
問題が起きるのは、「編集後タイマー」の指定している末尾のマクロです。
問題が起きやすい状況としては、
//------------------------------------------------------------
newfile;
changename "sample.tex";
insert "\\begin{frame}{xxxx}\n\\begin{itemize}[<+->]\n"
+"\t\\item\t\\href{http://www.xxxxx.ac.jp/}{www.xxxxx.ac.jp} \n"
+"\t\\item\tああああああああああああああ\n\\end{itemize}\n"
+"\\end{frame}\n";
//------------------------------------------------------------
で出来る内容で
・コピー
・「貼り付け+履歴戻し」
・[Enter] で改行を挿入
とした時です。
一度他のファイルを開いたりすると、問題が再現しなくなるので、謎は深ま
るばかりです。
何か解るでしょうか?
こちらの環境は、WindowsXP+IE8.0+秀丸 Ver.8.00b35 です。
//------------------------------------------------------------
//編集後の自動起動マクロ
/*
・HTML の単語補完で、末尾にて
o 連続していたら余分な > を削除
o 文字列なら "> を補完
・TeX で箇条書き内で改行を行ったときに、\item を補完
*/
setcompatiblemode 0x20F;
disablehistory 0xFF;
if( geteventparam( 1 ) ){//改行
if( filetype == ".tex" )goto TeX_Item;
else if( filetype == ".htm" || filetype == ".html"
|| filetype == ".xml" )goto HTML_Item;
}
else if( geteventparam( 2 ) ){//単語補完
if( filetype == ".htm" || filetype == ".html" || filetype == ".xml" ){
$s = searchbuffer;
#s = searchoption;
#s2 = searchoption2;
#x = x;
#y = y;
searchup "\\x11\\x06\\x06\\x06\\x06\\x06\\x06\\x17.+?\\x05", regular;
begingroupundo;
if( result ){
if( #x == foundendx && #y == foundendy )delete;
else moveto #x, #y;
}
if( gettext( x - 1, y, x + 1, y ) == ">>" )delete;
if( colorcode[2]&0x1F == 0x14 )insertfix "\">";
endgroupundo;
}
}
End:
endmacro;
TeX_Item:
if( geteventparam( 0 ) )goto End;
if( code != 0x0D )goto End;
$$s = gettext2( 0, lineno - 1, 0, lineno );
begingroupundo;
if( strstr( $$s, "\\item[" ) != -1 ){
insert "\\item[";
insertfix "]\t";
}
else if( strstr( $$s, "\\item" ) != -1 )insert "\\item\t";
endgroupundo;
goto End;
HTML_Item:
if( geteventparam( 0 ) )goto End;
if( code != 0x0D )goto End;
$$s = gettext2( 0, lineno - 1, 0, lineno );
begingroupundo;
if( strstr( $$s, "<li>" ) != -1 )insert "<li>";
endgroupundo;
goto End;
|
|