[2/8] msvcirt: Implement ostream::operator<< for characters

Piotr Caban piotr.caban at gmail.com
Tue Jun 21 05:56:45 CDT 2016


On 06/21/16 11:54, Iván Matellanes wrote:
> +    struct ostream_print_test {
> +        enum { CHAR } type;
> +        union {
> +            char c;
> +        } param;
> +        ios_io_state state;
> +        ios_flags flags;
> +        int precision;
> +        int fill;
> +        int width;
> +        const char *expected_text;
> +        ios_io_state expected_flags;
> +    } tests[] = {
> +        /* char */
> +        {CHAR, {.c = 'a'}, IOSTATE_badbit, 0, 6, ' ', 0, "", IOSTATE_badbit|IOSTATE_failbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_eofbit, 0, 6, ' ', 0, "", IOSTATE_eofbit|IOSTATE_failbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, ' ', 0, "a", IOSTATE_goodbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, ' ', 4, "   a", IOSTATE_goodbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, 'x', 3, "xxa", IOSTATE_goodbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_left, 6, ' ', 4, "a   ", IOSTATE_goodbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_left|FLAGS_internal, 6, ' ', 4, "   a", IOSTATE_goodbit},
> +        {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_internal|FLAGS_hex|FLAGS_showbase, 6, ' ', 4, "   a", IOSTATE_goodbit},
> +        {CHAR, {.c = '9'}, IOSTATE_goodbit, FLAGS_oct|FLAGS_showbase|FLAGS_uppercase, 6, 'i', 2, "i9", IOSTATE_goodbit},
> +        {CHAR, {.c = '9'}, IOSTATE_goodbit, FLAGS_showpos|FLAGS_scientific, 0, 'i', 2, "i9", IOSTATE_goodbit},
> +        {CHAR, {.c = 'e'}, IOSTATE_goodbit, FLAGS_left|FLAGS_right|FLAGS_uppercase, 0, '*', 8, "e*******", IOSTATE_goodbit}
> +    };
This is not portable (the {.c = 'a'} part).

Thanks,
Piotr



More information about the wine-devel mailing list