Skip to content
  • rswindell's avatar
    More UTF-8 goodness: · 52d5659f
    rswindell authored
    - Export all FIDOCTRL (other FTN kludge lines) to the QWK HEADERS.DAT file.
      These should already be imported if they exist, but were never added during
      export, so untested/new behavior. The control paragraph (kludge line) of
      specific interest here is the "CHRS" (charset) kludge we need for UTF-8.
    
    - Don't use the QWK "newline" character (0xE3) when the message is UTF-8.
      Use bare-LF's instead. This is pretty untested at this point as I will need
      another QWKnet board to post or receive UTF-8 encoded messages to test,
      getting the code into CVS is the first step. At least for now, there's no
      opt-in/out for this behavior. If your BBS has UTF-8 encoded messages, some
      QWK nodes or offline readers may have trouble with packets which include
      those messages. Or they may work fine (but likely display garbage CP437
      chars in-place of the proper Unicode codepoint glyph).
    
    - The beginning of UTF-8 input support in getstr() - which needs more work,
      particularly around character and word deletion and insertion.
    - The internal message editor now supports UTF-8 messages and kind of somewhat
      supports inputting UTF-8 characters in message text.
    
    New put/print text flag: P_AUTO_UTF8 which can auto-detect UTF8 strings and
    do the "right thing" for the user's terminal. New associated sbbs_t method:
    auto_utf8() which automatically sets P_UTF8 for any stirng that begins with
    a UTF-8 BOM (ZWNBSP). Else, if the P_AUTO_UTF8 mode flag is set, then
    it checks to see if the string contains invalid US-ASCII chars but valid UTF-8
    sequences and then sets P_UTF8 accordingly. Used by putmsg() and bputs().
    
    There's a new permuation of bprintf() which accepts a mode argument
    (i.e. for P_UTF8) and passes it on to the new mode-capable bputs().
    52d5659f