Re: ChaSen 問題修正2005年10月06日 03時58分39秒

分かち書き外部コマンド呼び出しの場合もPerlモジュールを使用した場合と同じようにASCII文字とそれ以外を分割して処理するようにしました。 (HEAD のみ)
その際に、Perl モジュール版も処理にも若干手を加えています。

また、MeCab コマンド呼び出しの場合、8192 を超える文字列はバッファサイズ(オプションで変更は可能ですが)をオーバーする問題がありますが、多くの場合、分割処理されますので問題になることはほとんどないでしょう。
# 本来ですと必ず 8192 文字以下になるように分割しないといけませんが、
# そこまではできていません。

ただ、--use-chasen-noun オプションを付けると誤動作するので、この場合は、Perlモジュール版と同様に日本語のみ ChaSen に渡すのではなく ASCII テキストを含めてChaSen に渡すようにしました。

修正前に比べると、オーバーヘッドのため処理速度が落ちるかと思いますが、Perl モジュール版を利用すればオーバーヘッドも少なくなるので、特に 大きな問題にはならないものと思います。

二度 namazu.h をインクルードしている箇所を修正2005年10月06日 05時50分41秒

src/namazu-cmd.c, src/namazu-cgi.c で二度 namazu.h をインクルードしていたので、ひとつを削除しました。
(HEAD, stable-2-0 共)

NG は Next Generation2005年10月06日 05時56分26秒

新しいカテゴリ NG を作りました。
このNGは Next Generation の略で、No Good でも Nihongo micro Gnu emacs の略でもありません。

Namazu の次世代(バージョンは不明)に関して思いついたことを書こうと思います。

libnmz 関係の話2005年10月06日 06時00分38秒

libnmz (nmz.dll) を利用する場合、たくさんのヘッダーファイルをインクルードする必要があります。これは非常に不便です。

メインのヘッダ libnmz.h と、オプション的なものを後2つぐらいまでに整理するべきです。(内部でたくさんのヘッダを使うのは良いとしても)

また、struct nmz_names NMZ、struct nmz_files Nmz 構造体を extern するのはやめ、libnmz 内部でメモリを動的に確保、開放する外部関数を用意した方が良いでしょう。

libnmz は LGPL ではなく GPL なため、ライセンス的に利用しにくいライブラリとなっています。GPL のコードを利用していることもありますし、著者が沢山いらっしゃるので今更 LGPL にライセンスを変更するのは難しいと思われます。
そのためまずは libnmz を使った xmlnamazu コマンド(GPL)を新たに作り、それを呼び出す libnmz LGPL 版(libnmz GPL のラッパとなる)を作ることで、何とか LGPL として使用できるライブラリを用意したいと思います。

将来的には、新たに一から書き直して LGPL 版の libnmz を作りたいと思います。

URI属性値のセミコロン記号2005年10月06日 18時59分43秒

http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2

によると、フォームの項目区切りに「&」の代用としての「;」をサポートするよう推奨されています。
これは「&」記号を使おうとすると、SGMLの文字実体参照区切り子としての役割と衝突してしまうためです。

namazu.cgi でも "&" の代用に ";" が使えるようにしたいと思います。