リンク: [ホーム] [自己紹介] [リンク集] [アルバム] [ソフトウェア] [発表文献] [その他]

まさおのChangeLogメモ / 2006-03-12

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2006-03-12 Sun

* URL memo

- 俺人生の勝ち組、モテモテ~ - 職場でのWikiとか課題管理システムとか: delicious users
- @nifty:デイリーポータルZ:だれでもまんがが描ける機: delicious users
- guesswork: delicious19 users
guesswork classicは、「ややこしいフレームワークは使いたくない」けど「なんでもありになりがちなPHPスクリプトをスッキリさせる指針が欲しい」と考えている人のための軽量なPHP4用フレーム

* Emacs21+format-time-string

cf. [2004-11-10]
Turbolinuxのロケールがおかしいのだとは思うが、一応確認する。

        (editfns.c) (strftime.c)
format-time-string -> emacs_memftimeu -> emacs_strftimeu

で、こいつは strftime を呼ぶわけ。

GLIBC内の strftime は mbrlen でマルチバイトを読み飛ばしている模様。
mbrlen の内容は以下だけ:

return __mbrtowc (NULL, s, n, ps ?: &internal);

というわけで __mbrtowc() を見る。

fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE));

/* Do a normal conversion. */
inbuf = (const unsigned char *) s;
endbuf = inbuf + n;
if (__builtin_expect (endbuf < inbuf, 0))
  endbuf = (const unsigned char *) ~(uintptr_t) 0;
status = DL_CALL_FCT (fcts->towc->__fct,
                      (fcts->towc, &data, &inbuf, endbuf,
                       NULL, &dummy, 0, 1));

こんな感じでロケール内の情報を見て、LC_CTYPE 内の towc を見ている
模様。