[xyzzy:09204] Re: formatの動作
- Subject: [xyzzy:09204] Re: formatの動作
- From: "southly" <southly@xxxxxxxxxxxx>
- X-mailer: KaMailV3/0.0.1.4beta5 xyzzy-0.2.2.235 (windows-xp)
こんにちは。
NANRIです。
もう一箇所見つけました。
"~g" でNULL文字が出力される場合があります。
(format nil "~10g" 1.23456d+38)
=>"^@^@^@^@^@^@ " ; ^@と書いているところは実際は#\NUL
以上よろしくお願いします。
--
NANRI
southly@xxxxxxxxxxxx
http://raido.sakura.ne.jp/southly/rn/
--- lprint.cc~ Sun Mar 10 04:43:29 2002
+++ lprint.cc Tue Nov 21 01:13:18 2006
@@ -2397,6 +2397,7 @@
if (!param_is_given (0) && !param_is_given (1))
{
print_control pc (10);
+ if (atsign && f.sign > 0) stream.add('+');
print_flonum (stream, pc, lnumber);
return;
}
@@ -2528,18 +2529,18 @@
return;
}
- if (!param_is_given (0) && !param_is_given (1) && !param_is_given (2))
- {
- print_control pc (10);
- print_flonum (stream, pc, lnumber);
- return;
- }
+// if (!param_is_given (0) && !param_is_given (1) && !param_is_given (2))
+// {
+// print_control pc (10);
+// print_flonum (stream, pc, lnumber);
+// return;
+// }
if (!param_is_given (2))
e = exp_width (f.exp - k + 1);
if (!param_is_given (1))
- d = f.be - f.b0;
+ d = f.be - f.b0 - 1;
if (k > 0)
d = max (d, k - 1);
else if (k < 0)
@@ -2667,8 +2668,13 @@
param[1].type = FMT_INT;
param[1].value = dd;
param[2].type = FMT_NIL;
- param[3].type = FMT_CHAR;
- param[3].value = overflow;
+ if (param_is_given (4))
+ {
+ param[3].type = FMT_CHAR;
+ param[3].value = overflow;
+ }
+ else
+ param[3].type = FMT_NIL;
param[4].type = FMT_CHAR;
param[4].value = padchar;
nparams = 5;