• Tom Lane's avatar
    Remove typedef celt from the regex library, along with macro NOCELT. · 6eefd242
    Tom Lane authored
    The regex library used to have a notion of a "collating element" that was
    distinct from a "character", but Henry Spencer never actually implemented
    his planned support for multi-character collating elements, and the Tcl
    crew ripped out most of the stubs for that years ago.  The only thing left
    that distinguished the "celt" typedef from the "chr" typedef was that
    "celt" was supposed to also be able to hold the not-a-character "NOCELT"
    value.  However, NOCELT was not used anywhere after the MCCE stub removal
    changes, which means there's no need for celt to be different from chr.
    Removing the separate typedef simplifies matters and also removes a trap
    for the unwary, in that celt is signed while chr may not be, so comparisons
    could mean different things.  There's no bug there today because we
    restrict CHR_MAX to be less than INT_MAX, but I think there may have been
    such bugs before we did that, and there could be again if anyone ever
    decides to fool with the range of chr.
    
    This patch also removes assorted unnecessary casts to "chr" of values
    that are already chrs.  Many of these seem to be leftover from days when
    the code was compatible with pre-ANSI C.
    6eefd242
regc_cvec.c 3.9 KB