Hi Mike, A few random thoughts:
"Michael Gran" <spk...@yahoo.com> writes: > - buf = scm_to_locale_stringn (scm_c_substring (str, start, end), &len); > + buf = scm_to_encoded_stringn (scm_c_substring (str, start, end), &len, > + pt->encoding, pt->ilseq_handler); I'd call that `scm_to_stringn ()' since it's the most generic form (and a string is always "encoded", anyway). > +SCM_DEFINE (scm_setencoding, "setencoding", 1, 1, 0, > + (SCM enc, SCM port), How about `set-port-encoding!' (for consistency with other procedure names), with PORT being a required argument? > "Sets the character encoding that will be used to interpret all\n" > - "port I/O. Normally, one would set this using @code{setlocale},\n" > + "port I/O. Normally, a new port would inherit the encoding\n" > + "set by using @code{setlocale},\n" It would seem simpler to me if a port's encoding defaulted to ASCII, instead of the current locale's encoding. That would make semantics clearer and easier to follow. What do you think? > +SCM_DEFINE (scm_setbinary, "setbinary", 0, 1, 0, > + (SCM port), Likewise, `set-port-binary-mode!' or some such. > +char * > +scm_scan_for_encoding (SCM port) Since it's `SCM_INTERNAL', I'd suggest `scm_i_scan_for_encoding()'. In addition, from a memory management viewpoint, it might be easier to have it return an `SCM'. > -SCM_DEFINE (scm_set_conversion_error_behavior_x, > "set-conversion-error-behavior!", I'm wondering whether this should be a per-port (eventually, per-transcoder) setting. What's your opinion? Thanks, Ludo'.