• DDMsgReader: Added "indexed" reader mode and made a fix to print utf-8

    From Rob Swindell@VERT to GitLab note in main/sbbs on Tue Apr 4 14:32:53 2023
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/278#note_3435

    Where's the actual UTF-8 bug fix in this commit?

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Eric Oulashin@VERT to GitLab note in main/sbbs on Tue Apr 4 14:47:20 2023
    https://gitlab.synchro.net/main/sbbs/-/merge_requests/278#note_3436

    I saw that msglist.js had the msg_pmode() function, so I copied that to DDMsgReader.js:
    ```
    function msg_pmode(pMsgbase, pMsgHdr)
    {
    var pmode = pMsgHdr.hasOwnProperty("is_utf8") && pMsgHdr.is_utf8 ? P_UTF8 : P_NONE;
    if (pMsgHdr.from_ext !== "1")
    pmode |= P_NOATCODES;
    if (pMsgbase.cfg)
    {
    pmode |= pMsgbase.cfg.print_mode;
    pmode &= ~pMsgbase.cfg.print_mode_neg;
    }
    return pmode;
    }
    ```
    That's called on line 15672: retObj.pmode = msg_pmode(msgbase, pMsgHdr);

    For the scrollable interface (for ANSI), that value ends up getting passed to the scrollTextLines() function, as an optional parameter. And then the pmode value is passed to console.print(), as on line 16923:
    `console.print(pTxtAttrib + pTxtLines[lineIdx], typeof(pmode) === "number" ? pmode|P_NOATCODES : P_NOATCODES);`

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net