● S-Langマクロ

0.9.0からの目玉である、S-LangマクロについてはREADME.macrosを
読んでください。なお、0.9.1.1jp2からは、いままでの
日本語版にあった、「ニュースグループ別に.signatureを設定する」
「MHフォルダにセーブする」「Nifty4U用に、指定したgroupではmimeエンコード
しない」という機能は削ってしまいましたので、これらは
S-Langマクロでインプリメントしてください。

具体的には ~/.slrnrc の最後に

interpret ".slrn.sl"

の一行を入れます。次に ~/.slrn.sl というファイルを作って、
次のようなマクロを書きます。

define article_mode_hook ()
{
     variable signature_file = ".signature";
     variable gmt_to_local = 0;
     
	 if (strncmp (current_newsgroup (), "fj.", 3)) {
	   signature_file = ".signature-fj";
       gmt_to_local = 1;
     }

	 if (strncmp (current_newsgroup (), "fj.os.linux", 11))
	   signature_file = ".signature-linux";

	 set_string_variable ("signature", signature_file);
   set_integer_variable ("gmt_to_local", gmt_to_local);
}

define pre_article_mode_hook ()
{
   variable use_mime = 1;

   if (1 == is_substr (current_newsgroup (), "nifty\."))
       use_mime = 0;

   set_integer_variable ("use_mime", use_mime);
}

これはニュースグループ別に.signatureを設定し、日本にニュース・グループ
ではGMTをJSTに変換し、「nifty.」ではじまるグループではMIMEのエンコードを
(実はデコードも)オフにします。

define save_article_to_mh_folder ()
{
    variable ng = current_newsgroup ();
    variable mh_saver = 
        strcat ("/usr/local/bin/nkf -j|/usr/local/lib/mh/rcvstore +", ng);
    variable rsp = get_select_box_response (
        "セーブ方法: ",
        "この記事", "*を付けた記事", 
        "番号を付けた記事", 3);
    variable tagnum = 1;

    mh_saver = strcat (mh_saver, " -create");

    if (rsp == 0) {
        pipe_article (mh_saver);
    }

    if (rsp == 1) {
        call ("art_header_bob");	       % goto top of list
        while ( next_tagged_header() ) {
            pipe_article (mh_saver);
        }
    }

    if (rsp == 2) {
        while ( goto_num_tagged_header(tagnum) ) {
            pipe_article (mh_saver);
            tagnum++;
        }
    }
}

definekey ("save_article_to_mh_folder", "O", "article");

これはMHフォルダにセーブするためのものです。
(いままであった、「あるスレッドごと」セーブする機能は削ってしまいました)


-- 
菊谷 誠  kikutani@sprintmail.com
