蝉は、やがて死ぬる午後に気づいた。ああ、私たち、もっと仕合せになってよかったのだ。:2003年04月19日分

2003/04/19(Sat)

i18nネタ

@yet another locale implementation patch for OpenBSD

これも古いネタだけど
http://www.deadly.org/article.php3?sid=20030206041352
なんてのをハッケソ。FreeBSDのsrc/lib/libc/localeを移植したものですな。

ちなみにCygwinやeCosで使われてるnewlibっていうlibc実装(元々NetBSD由来)も
FreeBSDのlocaleまわり(ほんの一部だけんど)突っ込まれてたりしてたりもする。

なじぇNetBSD/CitrusでなくFreeBSD/runeを移植する人が多いのかを考察してみると

  • FreeBSD IS MAJOR! FreeBSD IS MAJOR! FreeBSD IS MAJOR!
            ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
              /\ /\  /神\/../ 
              / /\  \(´∀` )./
            ())ノ__ ○二○二⌒/../
           / /||(二ニ) (___/../ 几l
       γ ⌒ /|?V||彡Vミ/⌒_ノ二二ノl0
       l| (◎).|l |((||((゜ )/⌒/||三三三・) ||  (´⌒(´
    __ ゝ__ノ     ̄(___) ̄  ゝ__ノ≡≡≡(´⌒;;;≡≡≡
            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄(´⌒(´⌒;; 
    >>NetBSDへ    OS XのlibcはFreeBSDですが何か?(ププ 
    >>OpenBSDへ  200万ドルの件は残念だったな(ププ 
    
  • stateful encodingを扱えないヘタレ実装でも、ISO2022なぞout of 眼中な海外組には無問題
  • あるだけ、って感は強いけどLC_{COLLATE, TIME, NUMERIC, MONETARY, MESSAGES}が実装済
  • FreeBSD/runeはinitとsgetrune/sputrune(perforce版ではmbrtowc/wcrtomb)だけの馬鹿シンプルなので
    dlopen/dlsymでポリモフィズムばりなNetBSD/Citrusフレームワークより理解しやすい
  • みんなNetBSDで幸せに暮らしましたトサー(AA略)

ってとこなんじゃないかなと。
Citrus iconvの登場で形勢は逆転するかもしれんけどナー。

@Citrus iconv

自分で書いたgbk2kくらいはiconvdata書かにゃね。

OpenBSDへの移植も特に問題ない様子、
書き換えたのは<sys/stat.h>とかgetprognameとかそんぐらい。
週明けくらいにはpatchを用意します。