1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
* stdlib/strfmon_l.c (__vstrfmon_l): Fix handling of ! modifier.
	* localedata/Makefile: Add rules to build and run tst-strfmon1.
	* localedata/tst-strfmon1.c: New file.
This commit is contained in:
Ulrich Drepper
2006-04-26 05:52:58 +00:00
parent 388df58d9b
commit c61a9cfbc4
6 changed files with 76 additions and 23 deletions

View File

@ -486,23 +486,21 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
}
if (print_curr_symbol)
{
out_string (currency_symbol);
out_string (currency_symbol);
if (sign_posn == 4)
{
if (sep_by_space == 2)
out_char (space_char);
out_string (sign_string);
if (sep_by_space == 1)
/* POSIX.2 and SUS are not clear on this case, but C99
says a space follows the adjacent-symbol-and-sign */
out_char (' ');
}
else
if (sep_by_space == 1)
out_char (space_char);
if (sign_posn == 4)
{
if (print_curr_symbol && sep_by_space == 2)
out_char (space_char);
out_string (sign_string);
if (sep_by_space == 1)
/* POSIX.2 and SUS are not clear on this case, but C99
says a space follows the adjacent-symbol-and-sign */
out_char (' ');
}
else
if (print_curr_symbol && sep_by_space == 1)
out_char (space_char);
}
else
if (sign_posn != 0 && sign_posn != 2 && sign_posn != 3
@ -561,12 +559,13 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
|| (sign_posn == 0 && sep_by_space == 1))
out_char (space_char);
out_nstring (currency_symbol, currency_symbol_len);
if (sign_posn == 4)
{
if (sep_by_space == 2)
out_char (' ');
out_string (sign_string);
}
}
if (sign_posn == 4)
{
if (sep_by_space == 2)
out_char (' ');
out_string (sign_string);
}
}