• R
    add locale framework · 0bc03091
    Rich Felker 提交于
    this commit adds non-stub implementations of setlocale, duplocale,
    newlocale, and uselocale, along with the data structures and minimal
    code needed for representing the active locale on a per-thread basis
    and optimizing the common case where thread-local locale settings are
    not in use.
    
    at this point, the data structures only contain what is necessary to
    represent LC_CTYPE (a single flag) and LC_MESSAGES (a name for use in
    finding message translation files). representation for the other
    categories will be added later; the expectation is that a single
    pointer will suffice for each.
    
    for LC_CTYPE, the strings "C" and "POSIX" are treated as special; any
    other string is accepted and treated as "C.UTF-8". for other
    categories, any string is accepted after being truncated to a maximum
    supported length (currently 15 bytes). for LC_MESSAGES, the name is
    kept regardless of whether libc itself can use such a message
    translation locale, since applications using catgets or gettext should
    be able to use message locales libc is not aware of. for other
    categories, names which are not successfully loaded as locales (which,
    at present, means all names) are treated as aliases for "C". setlocale
    never fails.
    
    locale settings are not yet used anywhere, so this commit should have
    no visible effects except for the contents of the string returned by
    setlocale.
    0bc03091
pthread_create.c 6.8 KB