[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: strings draft



    > From: Matthew Dempsky <jivera@xxxxxxxxx>

    > Tom Lord <lord@xxxxxxx> writes:

    > >   ~ t_scm_error scm_extract_string32 (t_uint32 * answer,
    > >                                       size_t * answer_len,
    > >                                       t_scm_arena instance,
    > >                                       t_scm_word * str)

    > [...]

    > >   ~ t_scm_error scm_make_string32_n (t_scm_word uchar * answer,
    > >                                      t_scm_arena instance,
    > >                                      t_uint32 * str,
    > >                                      enum uni_encoding_scheme enc,
    > >                                      size_t str_len)

    > Any rationale for the inconsistant function interfaces
    > (scm_make_string32_n accepts a uni_encoding_scheme but
    > scm_extract_string32 doesn't) or just a typo (and in that case, which
    > is wrong)?

Interesting question, really.

My thinking is that there's only two 32-bit encodings I care about
(utf32 and bogus32).    For a given string that can be converted to
both, the results are bitwise identical.

So it seemed pedantic to add an encoding parameter to
scm_extract_string32.

But, you're probably right: it's "safer" to add the encoding parameter
to scm_extract_string32 and is also just plain less surprising.

(I think it should be an error, though, to do something like pass
uni_utf8 to scm_extract_string32.)

-t