• Tom Lane's avatar
    Rationalize code placement between wchar.c, encnames.c, and mbutils.c. · 5afaa2e4
    Tom Lane authored
    Move all the backend-only code that'd crept into wchar.c and encnames.c
    into mbutils.c.
    
    To remove the last few #ifdef dependencies from wchar.c and encnames.c,
    also make the following changes:
    
    * Adjust get_encoding_name_for_icu to return NULL, not throw an error,
    for unsupported encodings.  Its sole caller can perfectly well throw an
    error instead.  (While at it, I also made this function and its sibling
    is_encoding_supported_by_icu proof against out-of-range encoding IDs.)
    
    * Remove the overlength-name error condition from pg_char_to_encoding.
    It's completely silly not to treat that just like any other
    the-name-is-not-in-the-table case.
    
    Also, get rid of pg_mic_mblen --- there's no obvious reason why
    conv.c shouldn't call pg_mule_mblen instead.
    
    Other than that, this is just code movement and comment-polishing with
    no functional changes.  Notably, I reordered declarations in pg_wchar.h
    to show which functions are frontend-accessible and which are not.
    
    Discussion: https://postgr.es/m/CA+TgmoYO8oq-iy8E02rD8eX25T-9SmyxKWqqks5OMHxKvGXpXQ@mail.gmail.com
    5afaa2e4
pg_wchar.h 24.3 KB