Changeset 28a5ebd in mainline for kernel/genarch/src/drivers/ega/ega.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
  • kernel/genarch/src/drivers/ega/ega.c

    r4f663f3e r28a5ebd  
    7171} ega_instance_t;
    7272
    73 static void ega_putwchar(outdev_t *, wchar_t);
     73static void ega_putuchar(outdev_t *, char32_t);
    7474static void ega_redraw(outdev_t *);
    7575
    7676static outdev_operations_t egadev_ops = {
    77         .write = ega_putwchar,
     77        .write = ega_putuchar,
    7878        .redraw = ega_redraw,
    7979        .scroll_up = NULL,
     
    8181};
    8282
    83 static uint16_t ega_oem_glyph(const wchar_t ch)
    84 {
    85         if ((ch >= 0x0000) && (ch <= 0x007f))
     83static uint16_t ega_oem_glyph(const char32_t ch)
     84{
     85        if (ch <= 0x007f)
    8686                return ch;
    8787
     
    515515}
    516516
    517 static void ega_display_wchar(ega_instance_t *instance, wchar_t ch)
     517static void ega_display_wchar(ega_instance_t *instance, char32_t ch)
    518518{
    519519        uint16_t index = ega_oem_glyph(ch);
     
    538538}
    539539
    540 static void ega_putwchar(outdev_t *dev, wchar_t ch)
     540static void ega_putuchar(outdev_t *dev, char32_t ch)
    541541{
    542542        ega_instance_t *instance = (ega_instance_t *) dev->data;
Note: See TracChangeset for help on using the changeset viewer.