ToDo:
ふと、 w3m の Sprintf ってどう実装されてるんだ… という疑問が頭を。
おそろしいことが行われていた。
printf のフォーマットを適当に解析して 適当に長さを予測して… ああやっぱそうなるのかしょうがないな… と思ったら
s = Strnew_size(len * 2);
とかしてた。
2倍て。適当すぎやろ。
Ruby はまぁ、順当に実力で頑張っていた。
(08:13)
s = Strnew_size(len * 2);
va_start(ap, fmt);
vsprintf(s->ptr, fmt, ap);
va_end(ap);
s->length = strlen(s->ptr);
if (s->length > len * 2) {
fprintf(stderr, "Sprintf: string too long\n");
exit(1);
}
vsnprintf じゃないとそれあかんやろとか
(08:21)
| 前 | 2008年 4月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 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 | |||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。