Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/drivers/dsrln/dsrlnout.c

    re9bc927 r28a5ebd  
    4949} dsrlnout_instance_t;
    5050
    51 static void dsrlnout_write(outdev_t *dev, const char *s, size_t n)
     51static void dsrlnout_putuchar(outdev_t *dev, const char32_t ch)
    5252{
    5353        dsrlnout_instance_t *instance = (dsrlnout_instance_t *) dev->data;
    5454
    55         if (instance->parea.mapped && !console_override)
    56                 return;
    57 
    58         const char *top = s + n;
    59         assert(top >= s);
    60 
    61         for (; s < top; s++) {
    62                 if (*s == '\n')
    63                         pio_write_8(instance->base, '\r');
    64 
    65                 pio_write_8(instance->base, (uint8_t) *s);
     55        if ((!instance->parea.mapped) || (console_override)) {
     56                if (ascii_check(ch))
     57                        pio_write_8(instance->base, ch);
     58                else
     59                        pio_write_8(instance->base, U_SPECIAL);
    6660        }
    6761}
    6862
    6963static outdev_operations_t dsrlndev_ops = {
    70         .write = dsrlnout_write,
     64        .write = dsrlnout_putuchar,
    7165        .redraw = NULL,
    7266        .scroll_up = NULL,
Note: See TracChangeset for help on using the changeset viewer.