Changeset 043eca0 in mainline for kernel/generic/src/printf/vprintf.c


Ignore:
Timestamp:
2009-04-03T07:54:27Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d1dabe1f
Parents:
b888d5f
Message:

cleanup, string changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/printf/vprintf.c

    rb888d5f r043eca0  
    4444SPINLOCK_INITIALIZE(printf_lock);  /**< vprintf spinlock */
    4545
    46 static int vprintf_write_utf8(const char *str, size_t size, void *data)
     46static int vprintf_str_write(const char *str, size_t size, void *data)
    4747{
    4848        size_t offset = 0;
    4949        count_t chars = 0;
    50 
     50       
    5151        while (offset < size) {
    52                 putchar(chr_decode(str, &offset, size));
     52                putchar(str_decode(str, &offset, size));
    5353                chars++;
    5454        }
    55 
     55       
    5656        return chars;
    5757}
    5858
    59 static int vprintf_write_utf32(const wchar_t *str, size_t size, void *data)
     59static int vprintf_wstr_write(const wchar_t *str, size_t size, void *data)
    6060{
    61         index_t index = 0;
    62 
    63         while (index < (size / sizeof(wchar_t))) {
    64                 putchar(str[index]);
    65                 index++;
     61        size_t offset = 0;
     62        count_t chars = 0;
     63       
     64        while (offset < size) {
     65                putchar(str[chars]);
     66                chars++;
     67                offset += sizeof(wchar_t);
    6668        }
    67 
    68         return index;
     69       
     70        return chars;
    6971}
    7072
     
    7476        count_t chars = 0;
    7577        wchar_t uc;
    76 
    77         while ((uc = chr_decode(str, &offset, UTF8_NO_LIMIT)) != 0) {
     78       
     79        while ((uc = str_decode(str, &offset, STR_NO_LIMIT)) != 0) {
    7880                putchar(uc);
    7981                chars++;
    8082        }
    81 
     83       
    8284        return chars;
    8385}
     
    8688{
    8789        printf_spec_t ps = {
    88                 vprintf_write_utf8,
    89                 vprintf_write_utf32,
     90                vprintf_str_write,
     91                vprintf_wstr_write,
    9092                NULL
    9193        };
    92 
     94       
    9395        ipl_t ipl = interrupts_disable();
    9496        spinlock_lock(&printf_lock);
    95 
     97       
    9698        int ret = printf_core(fmt, &ps, ap);
    97 
     99       
    98100        spinlock_unlock(&printf_lock);
    99101        interrupts_restore(ipl);
    100 
     102       
    101103        return ret;
    102104}
Note: See TracChangeset for help on using the changeset viewer.