日本語版slrn README
                           for version 0.9.5.6jp0 13-JUN-1999 by Kikutani

● インストール方法

(以下はソースからmakeする人のために書いてます。バイナリで取ってきた
人は http://home.sprintmail.com/~kikutani/slrn.html からソースを入手
できます)

適当な展開場所でslangとslrnのオリジナルソースを展開します。
たとえば/usr/local/srcにソースがあるとすると、

cd /usr/local/src
zcat slang1.2.2_j055.tar.gz | tar xvf - 
zcat slrn0.9.5.6tar.gz | tar xvf - 

とすると、それぞれ/usr/local/src/slangと/usr/local/src/slrn以下に
展開されます。

(注意、以前のバージョンと違い、jed用日本語パッチ済みの
slang1.2.2_j055.tar.gz を標準としています。ただし、以前のslrn用
のslangパッチも使えます)

日本語パッチをあてます。パッチが/usr/local/srcにあるとすると、

cd /usr/local/src
zcat slrn0.9.5.6jp0.pat.gz  | patch -p0

などとします。

必ずslangのほうからmakeします。./configure; make でできるでしょう。

次にslrnをmakeします。こちらも ./configure; make でできるでしょう。

できたslrn実行イメージを/usr/local/binなどにコピーします。
また、slrn.1を/usr/local/man/man1などにコピーします。


● Debianパッケージ

slrn-ja_x.x.x.x-x.deb からインストールした場合、以下の説明で参照される
各種のファイルは /usr/doc/slrn-ja の下にあります。


● 設定

環境変数NNTPSERVERに、NNTPサーバの名前を設定します。
直接オプションで slrn -h NNTPサーバ として起動してもいいです。
後述のslrnpullで持ってきた記事は、slrn --spool などとして読みます。

doc/jslrn.rc を ~/.slrnrcにコピーして、自分の環境に合わせて変更します。

slrnではオリジナルでは、newsrcファイルとして普通の~/.newsrcではなく
~/.jnewsrcというファイルを参照するのですが、他のニュースリーダーも合わせて
使う場合は、~/.slrnrc の中で

server my-newserver .newsrc

などととして、~/.newsrc を使うといいでしょう。


● 使い方

すみませんが、まだすべてのドキュメントは訳してません。オンラインヘルプ
は訳してあるので、~/.slrnrc で 

set japanese_messages 1

としてから、slrnの中で「?」を押して使いかたを読んでください。
GNUSやmnewsなど他のニュースリーダーを使ったことのある人は、すぐわかると
思います。~/.slrnrcでのカスタマイズも、コメントを読んでいけばわかるでしょう。

また、最近は勝田さんがmanページを訳されたので、man slrn しましょう。

ただし、slrnの起動時のオプションなどは、まだman pageに反映されなかったり
ドキュメントの更新が遅い傾向があります。
起動時のオプションは slrn -help としたほうがたしかですね。

マウスを使いたいときは、.slrnrの中で
set mouse 1
とします。

● 機能強化

0.9.1.1jp2より、NECの勝田  宇一さんの機能強化パッチを
含んでいます。以下はその内容です。

☆ MIME 機能を拡張

  o ISO-8859-X を表示するために、slrn.rc の parameter で use_iso8859 を新設。
    1 の時 ISO-8859-X を表示する(display_code が EUC の場合のみ対応)。
    ISO-8859-X を表示する機能の無い端末(rxvt など)を使っている時は 0 にする。
  o charset 指定が無い時の default の charset は、slrn.rc の mime_charset に
    指定されたものを使用する。
  o toggle_mime コマンドを新設。article モードで ESC m に割り当てている。
    主に irregular な charset を指定している記事に対して、default charset
    で見たい時に使用する。
  o MIME が有効な時、記事の status ラインの左端に 'm' と表示される。
  o その他、quoted-printable の表示のバグなどを修正した。

☆ From: に生 JIS がある時でも正しく表示されるようにした。

☆ 行の wrapping を Emacs 風に変更した。

☆ Subject が生 JIS で入っていて escape sequence 中の ESC が落ちている
   いる時、ESC を復活させる。

☆ Subject が status ラインや header window で表示されている時に 2 byte 文字
   が切れると、表示がおかしくなるバグの修正。

☆ SJIS の半角カタカナが入っている時に、全角に変換するようにした。

☆ 記事をセーブする時、サーバからもう一度読み込んで、それを直接セーブする
   ようにした(コード変換の影響を受けないようにするため)。

☆ mime で本文が single part で base64 encoding されている時、decode
   して表示するようにした。(MSIN などで本文を base64 encoding
   してしまった記事が来た時でも読めるようにするため)。

☆ JISで表示できるようにした。

☆ GMTをローカル時刻に変換する。

☆ 大部分のメッセージを日本語化し、display_code に従ってコードを変換
   して出力するようにした。

☆ Newsgroup を選択して記事数を入力する時、マイナスの数を入れると古い
   ものから記事が選択されるようにした。

☆ mime encoding の方法を RFC2047 に厳密にするための変数 mime_strict_rfc
   を導入。1 の時、RFC2047 に厳密になってスペースが正確に保存されるが
   隣接する ASCII 文字も encoding される(デフォルトは 0)。

☆ editor のコードを指定するため、editor_code を導入。編集する記事が
   自動的に editor_code に変換され、投稿時には editor_code から JIS 
   に変換される。指定方法は display_code と同じ。指定しなければ、
   editor_code = display_code とする。

☆ slrnfancyurls0942.patch (記事中の URL を強調表示して、マウスでクリッ 
   クすると browser を起動する機能を追加するパッチ)を取り込んだ。 
    
☆ 上の機能を無効にする変数 click_on_url を導入した。0にすると無効となる
    (デフォルトは 1) 

-- 0.9.4.6jp0 より
☆  KOI8-R encoding(ロシア語圏で defacto standard となっているキリル文字
   の encoding)に対応。kterm で KOI8-R を ISO-8859-5 encoding に変換し
   て表示する(kterm では KOI8-R encoding を扱うことができないので、kterm
   で扱うことのできる ISO-8859-5 に変換している。kterm で表示するには
   ISO-8859-5 のフォントを用意して下さい)。

   この機能はほとんど kterm 専用なので、KOI8-R を直接表示できる terminal
   に対しては、ISO-8859-5 に変換する部分が余計です。もし、そのような
   terminal で KOI8-R を直接表示したいというご要望がありましたら、
   考えさせて頂きます。

   現在は MIME の Content-Type ヘッダを見て charset を決めているので、
   このヘッダが無いとロシア語の newsgroup でも KOI8-R と判定することが
   できません(8bit 記事のデフォルトは日本語)。

   従って、例えば soc.culture.russian と soc.culture.ukrainian でデフォ
   ルトをKOI8-R にしたい場合は、以下のように slang を使って newsgroup
   によってデフォルトの encoding を切り分けると良いです。

.slrnrc:
interpret ".slrn.sl"

.slrn.sl:
define pre_article_mode_hook ()
{
   variable mime_charset = "ISO-2022-JP";
   
   if (is_substr (current_newsgroup (), "soc.culture.russian")
     or is_substr (current_newsgroup (), "soc.culture.soviet"))
     {
        mime_charset = "KOI8-R";
     }

   set_string_variable ("mime_charset", mime_charset);
}

☆  MIME の multipart の表示を見やすくした。

   MIME の multipart の一つ一つを横線で区切り、MIME ヘッダを隠して
   見やすくなるようにした。

   区切りの横線には、昇順で part 番号および Content-Type が挿入される。
   part の中味がテキストの場合はヘッダを隠し、バイナリの場合はヘッダのみ
   を表示して大きなバイナリが添付されていても見やすくなるようにした。
   
-- 0.9.4.6jp4 より
☆  UTF8 encoding の記事を部分的に表示

   Unicode の encoding の一種である UTF8 に対応した。ただし、表示できるのは
   1 byte 文字、2 byte 文字の平仮名、片仮名、英数字、アルファベット、一部の
   記号だけで、漢字など変換できない文字は '??' となる。

☆  複数の記事に tag を付けて同時にフォローできるようにした。

☆  forward_digest (g) で multipart の記事の各 part の先頭に移動できる
    ようにした。

-- 0.9.5.3jp0 より
☆  JED 用 slang を使用しているときに、slrn --version でわかる
   ようにした(SLang のバージョンの下に JVersion が表示される)

☆  MIME の base64 でエンコードされたバイナリをデコードして保存するとき、
   オリジナルでは message/partial で分割された記事しかデコードできなかっ
   たが、分割されていなくてもデコードできるようにした。

-- 0.9.5.5jp0 より
☆  CYGWIN-B20(MINGW32)でコンパイルできるようにし、WIN32 環境に対応した。
    OS/2 版のパッチも取り込んだがテスト未。
☆  セーブやパイプの時に記事をサーバに取りに行かずに、内部に保存した
    ものを出力するようにした。
☆  UTF7 encoding の記事に対応。ただし、表示できる文字は UTF8 と同様

-- 0.9.5.6jp0 より
☆  MIME の multipart の記事の表示を emacs の SEMI と同様にした(完全に
    同じではない)。
☆  MIME の message/partial の記事を集めて表示するようにした。
    thread か番号付きタグで message/partial の記事をすべて指定すると、
    自動的に順番につなげて表示します。
☆  PGP で署名された記事で、PGP signature の部分を隠すようにした。
☆  2 byte 文字で表示できない文字は '□' を表示するようにした。

● S-Langマクロ

README.macros.eucをごらんください。


● slrnpull

suck や gn の gnspool に相当するツールです。つまり、NNTPサーバから
記事をローカルディスクに持ってきます。あとはオフラインでゆっくり
読めます。佐藤 大輔さんによる README.slrnpull.euc を見てください。


● FAQ & トラブルシューティング

下に載っていなかったら英語版FAQ(本家FAQ)を見てください。

Q1. クロスポストされた記事を、あるニュースグループで読んでも、他の
   ニュースグループで既読になりませんが？

A1. 本家FAQの「3.  When I mark an article as read, why aren't cross-posts 
   marked as read also?」に書いてますが、slrnはNOVデータベースを使うので、
   NNTPサーバでその設定をしなければなりません。 NNTPサーバがINNであれば、
   /usr/lib/news/overview.fmt (ファイルの場所はOS依存)で、

   Xref:full

   の行を入れておけばいいでしょう。INN以外では私はわかりません(_o_)


Q2. Linuxのkonで使っていると、スレッドのツリー表示がおかしくなります

A2. konでは罫線表示ができないのでこうなります。
   この問題は意外にやっかいです。とりあえずの解決方法は、konで罫線の
   代替文字集合を使うことです。kterm/rxvt/xtermほど見栄えはよくありません
   が、だいぶマシになります。以下、そのやりかたです。
   slrn日本語ドキュメントに含まれるkon.terminfoをterminfoに登録します。
   rootになって tic kon.terminfo という具合です。konでの環境変数TERMが
   「kon」になっていることを確認してください。


Q3. 長い行が右端にかかると見えなくなっちゃうんですけど？

A3. 右カーソルキーを押しましょう。
    それも見えないほど延々と行が長い迷惑な記事の場合は、右カーソルキーを
    押し続けるのも疲れるので、いったん左カーソルキーで元の画面に戻った
    のち、「w」を押しましょう。全部ラップされて見えます。
   「w」を 押してラップされる領域は~/.slrnrcのwrap_flagsの値で設定できます。
    ~/.slrnrcのコメントで以下のように書いてます。

% What to wrap when wrapping an article:
%  0 or 4 ==> wrap body
%  1 or 5 ==> wrap headers, body
%  2 or 6 ==> wrap quoted text, body
%  3 or 7 ==> wrap headers, quoted text, body
% The higher number indicates that every article will be automatically
% wrapped.

    ここで、4,5,6,7を指定しておけば、「w」を押さなくとも最初からラップ
    します。でもそうすると画面が汚なくなってslrnらしさがなくなりますが...


Q4. エディタでMuleを使いたいのですが...

A4. ~/.emacsの中に (server-start) を入れてMuleを立ちあげ、環境変数
    SLANG_EDITORにemacsclientを定義すればいいでしょう。SLANG_EDITORが
    未定義なら、普通に環境変数EDITORを見ます。slrnからpost/follow/reply
    すると、Muleに制御が移るので、記事を書いてセーブしたのち、「C-x#」を
    押すとslrnに制御が戻ります。私はLinuxの一つの仮想端末でkonを起動して
    そこでMuleを立ちあげておき、別の仮想端末のkonからslrnを使っています。
    (一つの端末だけでもできないことはないけど、さすがにめんどくさい)
    Ｘ上ならもっと簡単ですね。


Q5. kterm上でマウスでcopy/pasteしようと思ったけど、領域のcopyができません

A5. シフトキーを押しながらドラッグすれば領域copyできます。slrnはマウスで
    操作できるという特典があるので、こういう手間はがまんしましょう(^^)


Q6. カラーになりません

A6.  ktermでは自動にはカラーにならないかもしれません。この場合は
     slrn -C で起動しましょう。rxvtでは自動的にカラーになるはずですが、
     もしならないときは、extport COLORTERM=rxvt あるいは
     setenv COLORTERM rxvt などとしてみましょう。

Q7. あるスレッドの中で、ESC-pで直近の参照記事を持ってこようとしても
    うまく行きません。

A7. slrnはxoverで持ってきたヘッダ情報を元に検索するのですが、記事の
    References:フィールドが複数行にわたっていると、うまく動かない場合が
    あります。おそらく、この場合はNNTPサーバーが対処してくれないと、どうし
    ようもないのであきらめましょう。INNのバージョンによってはnewsfeedsに

overview:*:Tc,WO:/usr/lib/news/bin/overchan

    と書いておけばいいような気もしますが、よくわかってません。


Q8. ときどきカタカナのやけに多い記事があります

A8. きっとShift-JISでポストされた記事でしょう。
    実際問題、そういう記事はけっこうあるわけですが、そのたびに化けた
    字を見るのは不愉快だし、かと言って、あっさり通すのもシャクなので、
    SJIS→EUC変換では「ひらがな <-> カタカナの交換」を行っているのでした。
    .slrnrcに「set detect_SJIS 0」を入れとくと、この機能はオフできます。
    また、ディスプレイコードがSJISの場合にもこの機能は効きません。

Q9. 「この端末は貧弱だ」とか(英語で)言われて起動できません。

A9.  環境変数TERMCAPに何かの値がsetされている場合は、unset TERMCAP
    とすると直るかもしれません。

Q10. SunOSでmakeに失敗しますが

A10. src/slrnfeat.h で普通はコメントになっている

/* #define SLRN_TZ_TYPE SLRN_TZ_TM_ZONE */

    を有効にしてみてください。


● 免責
    日本語版slrnのせいであなたのコンピュータが爆発し、あるいは
    ファイルシステムが全部削除され、さらにあなたが重病になったとしても
    菊谷は一切の責任を負いません。すべてご自分の責任でお使いください(_o_)。

● 謝辞
    大幅に機能強化してくださった勝田さんに感謝します。
    この他、BUGレポートや感想・を送ってくださった方々に感謝します。

-- 
菊谷 誠  kikutani@sprintmail.com
