// ReSubject.mac Rev.20060202 ////////////////////////////////////////////////// // // // 多重返信メールの「Re」形式を返信元のメールに関係なく、設定に合わせる // // (「Re: Re^2: 」などの連続記述形式にも対応する) // // // // contact@yasuhisa.net // // http://blog.yasuhisa.net/diary/ // ///////////////////////////////////////////////////// Copyright 2006 Yasuhisa // loaddll "tkinfo.dll"; if( !result ) endmacro; if( !dllfunc( "IsHidemaruMail" ) ) endmacro; if( dllfuncstr("CurrentHeader2", "Subject", 0 ) == "" ) endmacro; $Subject = dllfuncstr("CurrentHeader", "Subject"); call ReSubject($Subject); if($$return != $Subject) { $n = dllfuncstr("SetHeader", "Subject", $$return); } endmacro; // 「Re」の処理 ReSubject: $$Subject_tmp = $$1; ##count = 0; while(1){ call Trim($$Subject_tmp); $$Subject_tmp = $$return; $$re = leftstr($$Subject_tmp, 2); $$mark = midstr($$Subject_tmp, 2, 1); if( !($$re == "Re" || $$re == "RE" || $$re == "re") ) break; if( $$mark == ":" ) { // Re: ##count_tmp = 1; $$Subject_tmp = rightstr($$Subject_tmp, strlen($$Subject_tmp) - 2); } else { // Re^2: Re[2]: ##end = strstr($$Subject_tmp,"]"); if(##end == -1) { ##end = strstr($$Subject_tmp,":"); } if( ##end != -1 ) { ##count_tmp = val(midstr($$Subject_tmp, 3, ##end)); } } ##count = ##count + ##count_tmp; $$Subject_tmp = rightstr($$Subject_tmp, strlen($$Subject_tmp) - strstr($$Subject_tmp,":") - 1); } // 『多重返信メールの「Re」の付け方』設定読みだし // openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config"; ##ReplySubject = getregnum("ReplySubject"); closereg; // 「Re」の付け方を設定に合わせる // if( 1 < ##count && ##ReplySubject == 1) { // Re^2: $$insert_re = "Re^" + str(##count) + ": "; }else if(1 < ##count && ##ReplySubject == 2) { // Re[2]: $$insert_re = "Re[" + str(##count) + "]: "; }else { // Re: $$insert_re = "Re: "; } return $$insert_re + $$Subject_tmp; // 先頭の空白を削除する // Trim: $$Tmp = $$1; while(1){ if(leftstr($$Tmp, 1) == " ") { $$Tmp = rightstr($$Tmp, strlen($$Tmp) -1); }else{ break; } } return $$Tmp;