hns - 日記自動生成システム - Version 2.19.9

先月 2001年09月 来月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2001年09月18日(火) 旧暦 [n年日記]

#1 [Namazu] パイプ破壊

NKF/kakasi/chasen が適切に configure されていない時に、 (例えば) LANGUAGE=ja だと no: パイプ破壊 となってしまうことがある。
これはお知らせが不充分ではないかという見方。
  1. 最終的にこれを表示しているのは pl/util.pl の sub efopen
    sub efopen ($) {
        my ($fname) = @_;
        my $fh = fopen($fname) || cdie("$fname: $!\n");
        return $fh;}
    
  2. 実際に呼んでいるのは例えば pl/codeconv.pl の
    sub toeuc ($) {
    ...
     my $nh = util::efopen("|$conf::NKF $nkf_opt > $nkftmp");
    
  3. $conf::NKF 等の内容が no の時、何とか言った方がいい気がする。 -C で表示する構成内容は次のところ
    sub show_config () {
        print _("Loaded rcfile: ") . "@LoadedRcfiles\n" if @LoadedRcfiles;
        print _("System: ") . "$SYSTEM\n" if $SYSTEM;
        print _("Namazu: ") . "$var::VERSION\n" if $var::VERSION;
        print _("Perl: ") . "$]\n" if $];   # '$]' has a perl version
        print _("NKF: ") . "$conf::NKF\n" if $conf::NKF;
        print _("KAKASI: ") . "$conf::KAKASI\n" if $conf::KAKASI;
        print _("ChaSen: ") . "$conf::CHASEN\n" if $conf::CHASEN;
        print _("Wakati: ") . "$conf::WAKATI\n" if $conf::WAKATI;
    
  4. この例えば $conf::NKF が確定するのは ./configure の時で、 /usr/local/share/namazu/pl/conf.pl に
    $NKF = "module_nkf"; 
    
    などと書いてある。
  5. configure した時と、実行時に LANG が同じである必要はないのだから、 問題は実行時にしか分らない。
  6. configure の時に日本語対応になっていませんよというのもいいが、 作成済の梱包 (compiled package) だとそれを言う機会がない。
  7. nkf は非常に多くの回数呼ばれるので、 余分な手続(overhead) はなるべく 少ない方がいい
  8. とは言うものの no ということは module は使っていないのだから 少しくらい負担が増えてもいい ?
  9. せめて if ( -x $conf::NKF ) としてもいいのではないか。

という訳で修正:

makoto@u ■8:18:16/010918(~/Mail/trash)> mknmz -O /tmp/index .
検索対象譜を調べています...
83編の譜が索引作成の対象として見つかりました
mknmz: Current conf: $conf::NKF (no) is not executable. 
Do configure after nkf installed.

英語の表示に変更があった時には:

  1. xgettext で src から 英語の表示部分を取出して
    xgettext -c -d codeconv.pot  ../pl/codeconv.pl -o codeconv.pot
    
  2. msgmerg ja.po namazu.pot -o ja.po して ja.po を作り直す
  3. 必要なら次のことをしておく
      msgfmt -o namazu.gmo ja.po
    
    必要ならというのは、通常は configure; make でこれは行なわれるので不要
さて autogen.sh との兼ね合いは ?
  • autogen.sh で新しくなるのは po/POTFILES だけ。 po/POTFILES.in に codeconv.pl を加えておく
  • po で make distclean して
  • ../ で ./configure すると POTFILES, Makefiles が更新される
  • bsd make の場合、 make ./namazu.pot とする必要がある。(何故)
  • その後で手で ja.po を直して ( \$conf::NKF が \\$conf::NKF となっているのは $conf::NKF としておく)
  • make ./ja.gmo すれば良い ただし gettext-0.10.39 は何か (LANG=ja の時の表示が) 変なので次のようにする。
     env LANG=C make ./ja.gmo
    
makoto@u ■9:58:52/010918(~/Mail/trash)> mknmz -O /tmp/index .
検索対象のファイルを調べています...
83個のファイルがインデックス作成の対象として見つかりました
mknmz: 現在の $conf::NKF の構成内容 (no) は実行出来ません。
nkf を設置した後に configure をやり直して下さい。
makoto@u ■9:59:40/010918(~/Mail/trash)> 
これでどうだっ :-) ja.po に次のものを加えている。
+#: pl/codeconv.pl:150
+msgid "Current conf: $conf::NKF ("
+msgstr  "現在の $conf::NKF の構成内容 ("
+
+#: pl/codeconv.pl:151
+msgid ""
+") is not executable.\n"
+"Do configure after nkf installed."
+msgstr ""
+") は実行出来ません。\n"
+"nkf を設置した後に configure をやり直して下さい。"
+
古い ja.po を無理矢理直しておいて、./autogen.sh で msgmerge をやれば良いのかな。
でも良く考えたら、ここは日本語だけの処理なので、 変に namazu.pot にあると外国語への翻訳に悩んでしまうから、 gettext は使わないでおいた方がいいという気がして来た。

#2 [NetBSD] /usr/pkgsrc/audio/splay (0.8.2) を入れて見た。

(が正常な音は出ない気がする)

#3 [Namazu] MacOSX

nkf を作ろうとしたら、大文字小文字を区別しないのか NKF という directory と、cc した結果の nkf が区別出来ないように見える。
nkf-1.71
kakasi-2.3.4
Text-Kakasi-1.0.4
chasen-2.2.8
  (cd lib;make install)
Text-Chasen-1.0.3
   まだここまで
   checking for Text::ChaSen perl module... no
   checking for chasen... /usr/local/bin/chasen

zsh: command not found: msgfmt

gettext-0.10.40 を入れようとしたら:

cc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H 
  -I. -I. -I.. -I../lib -I../intl -I../intl    -g -O2 -c msgcmp.c
msgcmp.c:122: bad macro argument list

make check:

先に書いていた $conf::nkf(no)のように設置されている場合に、 make check すると、/usr/local/share/namazu/conf.pl を先に見てしまって
making check in dup-field
make  check-TESTS
no: not found
mknmz: < idx1/NMZ.nkf.tmp: No such file or directory
となるのは、やはり間違いだと思う。 push の順を変更した方がいい。(と思ったが、該当部分見つけられず)



最近の日記
2024年05月08日
comparison on ./buildsh tools
2024年05月06日
py-setuptools (python 3.11.9)
make release took 1 hours and 10 min
qemu invocation for 10.99.10
2024年05月05日
Windows 10 version
serial connection
bc bench
2024年05月04日
Trial on 10.99.10
another version (later trial) to succeed
2024年04月29日
dkim
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)