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

[xyzzy:09198] format の ~R



こんにちは。
NANRIです。

format周りのソースを眺めているのですが、
format指示子Rの最大パラメータ数は5のはずが、
実際に5つ指定するとエラーになってしまいます。

4つまでの処理は正常でしたので、
試しにパラメータ数のチェック部分を変更すると
正常に動作するようになりました。

(format nil "~16,10,'*,'-,2:R" #x123abc)
=>"**12-3a-bc"

それと、padcharとcommacharにはいわゆる全角文字も許されていますが、正しく
最小幅に出力されないので、エラーにしてしまってよいように思います。

以上よろしくお願いします。

-----
NANRI
southly@xxxxxxxxxxxx
http://raido.sakura.ne.jp/southly/rn/

--- lprint.cc~	Sun Mar 10 04:43:29 2002
+++ lprint.cc	Sun Jun 18 17:58:04 2006
@@ -2078,7 +2078,7 @@
 void
 Format::integer (wStream &stream, lisp linteger, int base, int istart)
 {
-  max_param (4);
+  max_param (4 + istart);
   int mincol = integer_param_min (istart, 0, 0);
   Char padchar = char_param (istart + 1, ' ');
   Char commachar = char_param (istart + 2, ',');

Index Home