Changeset 28a5ebd in mainline for uspace/lib/c/generic/io/chargrid.c


Ignore:
Timestamp:
2020-06-18T15:39:50Z (4 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce52c333
Parents:
4f663f3e
Message:

Use char32_t instead of wchat_t to represent UTF-32 strings

The intention of the native HelenOS string API has been always to
support Unicode in the UTF-8 and UTF-32 encodings as the sole character
representations and ignore the obsolete mess of older single-byte and
multibyte character encodings. Before C11, the wchar_t type has been
slightly misused for the purpose of the UTF-32 strings. The newer
char32_t type is obviously a much more suitable option. The standard
defines char32_t as uint_least32_t, thus we can take the liberty to fix
it to uint32_t.

To maintain compatilibity with the C Standard, the putwchar(wchar_t)
functions has been replaced by our custom putuchar(char32_t) functions
where appropriate.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/chargrid.c

    r4f663f3e r28a5ebd  
    140140 *
    141141 */
    142 sysarg_t chargrid_putwchar(chargrid_t *scrbuf, wchar_t ch, bool update)
     142sysarg_t chargrid_putuchar(chargrid_t *scrbuf, char32_t ch, bool update)
    143143{
    144144        assert(scrbuf->col < scrbuf->cols);
     
    199199
    200200        for (sysarg_t i = 0; i < spaces; i++)
    201                 flush += chargrid_putwchar(scrbuf, ' ', true) - 1;
     201                flush += chargrid_putuchar(scrbuf, ' ', true) - 1;
    202202
    203203        return flush;
     
    228228                scrbuf->row--;
    229229
    230                 chargrid_putwchar(scrbuf, ' ', false);
     230                chargrid_putuchar(scrbuf, ' ', false);
    231231                return 2;
    232232        }
    233233
    234234        scrbuf->col--;
    235         chargrid_putwchar(scrbuf, ' ', false);
     235        chargrid_putuchar(scrbuf, ' ', false);
    236236        return 1;
    237237}
Note: See TracChangeset for help on using the changeset viewer.