namazu-dev(ring)


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

Re: In-Reply-To: <200002132111.GAA04360@ring.etl.go.jp>



Ryuji Abe <raeva@xxxxxxxxxxxx> wrote:

>nmz/i18n.[ch]を少し修正しました。環境変数を取得するのに
>GNU gettextで使われているguess_category_value()という関数を
>拝借させていただきました。nmz_get_lang()は環境変数が設定
>されていればそれを返し、そうでなければCを返します。
>nmz_set_lang()はLANGだけを設定します。

ありがとうございます。自作しないで初めから盗めばよかったです
ね。盗む習慣を徹底せねば。:-)

# Whenever possible, steal code. -- Tom Duff


>それからnmz_is_lang_ja()はl10n-ja.[ch]というファイルを
>作って、そこに移しました。日本語対応のためのad-hocな
>関数がi18n.[ch]にあるのはどう考えてもおかしいので。

ad-hoc な日本語対応といえば、 mknmz も日本語に依存した処理を
きちんと分離したいところです。日本語の正規表現が埋め込まれて
いたりするので。


>まだlocale.aliasを見に行かないし、
>LANG="de_DE:ja_JP:C:en"
>というように複数設定されている場合にも対応していま
>せん。

う、きちんと国際化するのは大変ですね。徐々に対応していきましょ
う。今後ともよろしくお願いします。

-- Satoru Takabayashi
おまけ: Duff's device

Duff's device /n./  The most dramatic use yet seen of {fall
   through} in C, invented by Tom Duff when he was at Lucasfilm.
   Trying to {bum} all the instructions he could out of an inner
   loop that copied data serially onto an output port, he decided to
   unroll it.  He then realized that the unrolled version could be
   implemented by *interlacing* the structures of a switch and a
   loop:

        register n = (count + 7) / 8;      /* count > 0 assumed */

        switch (count % 8)
        {
        case 0:        do {  *to = *from++;
        case 7:              *to = *from++;
        case 6:              *to = *from++;
        case 5:              *to = *from++;
        case 4:              *to = *from++;
        case 3:              *to = *from++;
        case 2:              *to = *from++;
        case 1:              *to = *from++;
                           } while (--n > 0);
        }

   Shocking though it appears to all who encounter it for the first
   time, the device is actually perfectly valid, legal C.  C's default
   {fall through} in case statements has long been its most
   controversial single feature; Duff observed that "This code forms
   some sort of argument in that debate, but I'm not sure whether it's
   for or against."

   [For maximal obscurity, the outermost pair of braces above could be
   actually be removed -- GLS]