[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:13437] Bug#JP/809: man-db does putenv(LESSCHARSET=latin1)



----Security_Multipart(Tue_Mar__9_20:37:44_1999_219)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

Package: man-db
Priority: important
Section: doc
Version: 2.3.10-65.jp4

 hamm-jp の man-db_2.3.10-65.jp4 ですが、ソースコードの
 src/man.c 中で 820 行目が

    if (access("/usr/bin/jless", X_OK)) {

となっており、 access() が成功して 0 が返された場合に {} 内が
実行されず、失敗した場合に実行されるようになっています。

本来はこの逆で access() に成功した場合 {} 内を実行するべきだと
思われます。従って src/man.c に以下のパッチを当てるべきです。

@@ -817,7 +817,7 @@
                gripe_no_name (NULL);
 
        putenv("LESSCHARSET=latin1");
-       if (access("/usr/bin/jless", X_OK)) {
+       if (access("/usr/bin/jless", X_OK)==0) {
            putenv("LESSCHARSET=japanese");
        }

なお、今日確認した範囲では slink-jp, potato-jp とも上記と同様
 access() に失敗した場合に限って環境変数 LESSCHARSET に japanese が
設定されるという仕様になっているようです。

このために、 JLESSCHARSET=japanese を設定しなければ日本語の man pages の
セクションタイトルが文字化けするという現象が起きているようです。

上記のパッチを当てれば、 JLESSCHARSET の設定は不要であり LANG の設定だけで
日本語の man page をちゃんと表示できるようになります。(kterm および kon で確認)

なお (たぶん関係は薄いでしょうけれど) 使用システムは Debian 2.0 (hamm) JP で
カーネルは 2.0.36、 libc6 2.0.7v-1 です。

P.S.

何故か man-db パッケージを build-package で make しようとしたら失敗して
しまいましたので src/man にできた実行ファイルだけ /usr/bin/man にコピー
して確認しています。 

以上。

-- 
     #わたしのおうちは浜松市、「夜のお菓子」で有名さ。
    <xlj06203@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)

----Security_Multipart(Tue_Mar__9_20:37:44_1999_219)--
Content-Type: Application/Pgp-Signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP MESSAGE-----
Version: 2.6.3ia

iQCVAwUANuUIFxOWfrQu/aFRAQEQdAQAktmAAw7VEhLQsiFHRPgX4nG1MkvDj2tR
1xOMQEyBporh77yixcejvn7uGlNaXwA1HouqJJphJdzkuD6fi0GQn4ok/SrwjwDh
3CfYbuAyX5km3p3iG0wK52/0kxrL9jyMiLAgNYqfD9sqI5Woo5Uu8n3ASVgQZ/hd
LN6RD2Z/iE8=
=4kRJ
-----END PGP MESSAGE-----

----Security_Multipart(Tue_Mar__9_20:37:44_1999_219)----