• rswindell's avatar
    Reversed course on the WM_QUOTE mode handling in sbbs_t::postmsg() · 57424543
    rswindell authored
    (JS bbs.post_msg()): If the WM_QUOTE mode flag is *not* set, then it will auto-
    create the quote file (quotes.txt) and add the WM_QUOTE mode bit before calling
    sbbs_t::writemsg(). So if existing JS scripts call bbs.post_msg(..., WM_QUOTE)
    with a custom-created quote file (e.g. with msg tails), that'll still work as
    before (e.g. DDMsgReader.js).
    bbs.email() and bbs.netmail() now support an optional reply_header_object
    argument which works like bbs.post_msg(). These methods (and the underlying
    C++ methods: sbbs_t::email(), netmail(), inetmail(), all auto-create the
    quote file now, when the WM_QUOTE mode flag is *not* set.
    The auto-created quotes.txt now includes the plain-text version of MIME-encoded
    the bbs.post_msg(), email(), and netmail() methods now all support reply
    header objects that came directly from bbs.get_msg_header() *or* copies of
    such header objects (but the auto-quoting feature won't work when supplied
    this type of header object). So if passed a header object returned from
    bbs.get_msg_header(), we can now use the message base (for auto-quoting) and
    the underlying msg storage directly (no JS parsing necessary). This is what
    the new js_GetMsgHeaderObjectPrivates() function is used for.
    js_ParseMsgHeaderObject() (and the underlying parse_header_object() function)
    now supports either an actual internally-generated msg header object (e.g.
    returned from bbs.get_msg_header()) or one that is a copy or hand-constructed.
    quotemsg() no longer tries to get a copy of the msg index/header. It shouldn't
    have to since we can now get to underlying msg storage in the js_msgbase.c
    via js_GetMsgHeaderObjectPrivates().
    quotemsg() now reads only the plain-text portion of MIME-encoded messages.
    As part of this effort, I modernized the method prototypes using default
    argument values (e.g. WM_NONE for wm_mode arguments) and removed some
    extraneous WM_EMAIL and WM_NETMAIL specifications (these wm_mode flags are
    automatically added by the sbbs_t::email() and *netmail() functions).
    savemsg() now *does* support reply-IDs/thread-linkage via the additional
    'remsg' argument (when non-NULL).
    Replaced some use of nulstr with NULL.
    Replaced more boilerplate SMB open code with calls to smb_open_sub().
readmsgs.cpp 50.9 KB