pascal-format: Accept null precision.

Proof that it's valid:
------------------------- foo.pp -------------------------
program foo;
uses sysutils;
begin
  writeln(format('%.f', [3.1415926535]));
end.
----------------------------------------------------------

* gettext-tools/src/format-pascal.c: Fix comment regarding the precision.
(format_parse): Accept a null precision after '.'.
* gettext-tools/tests/format-pascal-1: Add a test case with null precision.
This commit is contained in:
Bruno Haible 2025-06-22 02:11:33 +02:00
parent 6c569a0012
commit fd6617fb54
2 changed files with 4 additions and 4 deletions

View File

@ -49,8 +49,8 @@
- is optionally followed by a width specification: '*' (reads an
argument, must be of type integer) or a nonempty digit sequence,
- is optionally followed by '.' and a precision specification: '*'
(reads an argument, must be of type integer) or a nonempty digit
sequence,
(reads an argument, must be of type integer) or an optional nonempty
digit sequence,
- is finished by a case-insensitive specifier. If no index was
specified, it reads an argument; otherwise is uses the index-th
argument, 0-based.
@ -216,8 +216,6 @@ format_parse (const char *format, bool translated, char *fdi,
format++;
}
else
--format; /* will jump to bad_format */
}
switch (c_tolower (*format))

View File

@ -48,6 +48,8 @@ cat <<\EOF > f-op-1.data
"abc%y"
# Invalid: flags after width
"abc%*-g"
# Valid: null precision
"abc%.f"
# Invalid: twice precision
"abc%.4.2g"
# Valid: three arguments