Synchronet CVS Commit Log

This is a log of the 2000 most recent changes in the Synchronet CVS repository.
If you want to view more commits, you can by passing ?<number> in URL.
  1. echicken
    Sat Jul 20 2019 01:33 pm PDT

    Modified Files:
    xtrn/bullshit/bullshit.js 1.5 1.6 diff
    xtrn/bullshit/bullshit-lib.js NONE 1.1 diff
    xtrn/bullshit/999-bullshit.xjs 1.1 1.2 diff

    Added Files:
    	bullshit-lib.js 
    Log Message:
    Move some stuff into bullshit-lib.
    Use GraphicsConverter to display files in 999-bullshit.xjs for now.
    Stop using bullshit.ssjs.  Use settings in 999-bullshit.xjs.
    
  2. rswindell
    Sat Jul 20 2019 12:10 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.201 1.202 diff

    Log Message:
    Fix some new GCC warnings about printf arg type mismatches.
    
  3. rswindell
    Sat Jul 20 2019 12:06 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.161 1.162 diff

    Log Message:
    Always check for the existence of RESULT.ED file after using an external
    editor even if the editor was configured for QuickBBS/MSGINF drop files.
    Don't use the subject line from RESULT.ED when the read-only subject mode
    is used.
    
  4. deuce
    Fri Jul 19 2019 10:51 pm PDT

    Modified Files:
    exec/agwpe.js 1.9 1.10 diff

    Log Message:
    More cleanup stuff.
    
  5. echicken
    Fri Jul 19 2019 09:59 pm PDT
    exec/load kissAX25lib.js 1.10 NONE
    Update of /cvsroot/sbbs/exec/load
    In directory cvs:/tmp/cvs-serv8684/load
    
    Removed Files:
    	kissAX25lib.js 
    Log Message:
    Some garbage scripts from echicken circa 2012-2013.  Nothing useful or
    particularly salvageable here.  I have a work in progress to replace
    these, however this may not end up being necessary.  Well, "necessary".
    
  6. echicken
    Fri Jul 19 2019 09:59 pm PDT

    Removed Files:
    exec/NONE ax25shell.js 1.1 diff
    exec/NONE ax25tunnel.js 1.11 diff

    Log Message:
    Some garbage scripts from echicken circa 2012-2013.  Nothing useful or
    particularly salvageable here.  I have a work in progress to replace
    these, however this may not end up being necessary.  Well, "necessary".
    
  7. echicken
    Fri Jul 19 2019 09:37 pm PDT

    Added Files:
    exec/load/event-emitter.js NONE 1.1 diff

    Log Message:
    Some slightly rehabilitated crap I found lying in my mods directory:
    EventEmitter a la node.js, with an inheritance helper for adding it to
    your Object. Same API as in node except:
    - No concept of MaxListeners
    - No prependListener/prependOnceListener
    (These can be added later if they're needed. Too much hassle tonight.)
    Currently a legacy-style library and should maybe be updated for newer
    return-style load/require type use.
    
  8. deuce
    Fri Jul 19 2019 07:23 pm PDT

    Modified Files:
    exec/agwpe.js 1.8 1.9 diff

    Log Message:
    Do some monitoring crap.
    
  9. deuce
    Fri Jul 19 2019 07:17 pm PDT

    Modified Files:
    exec/agwpe.js 1.7 1.8 diff

    Log Message:
    Some syncjslint issues.
    Ignore the _ though.
    
  10. deuce
    Fri Jul 19 2019 07:11 pm PDT

    Modified Files:
    exec/agwpe.js 1.6 1.7 diff

    Log Message:
    Add the rest of the protocol "stuff" as well as a generic 'pkt' callback type
    for ports where any incoming packet calls it.
    
  11. deuce
    Fri Jul 19 2019 05:38 pm PDT

    Modified Files:
    exec/agwpe.js 1.5 1.6 diff

    Log Message:
    Make conn.close() ASYNC
    
  12. deuce
    Fri Jul 19 2019 05:36 pm PDT

    Modified Files:
    exec/agwpe.js 1.4 1.5 diff

    Log Message:
    Support UI frames, and add comments as "documentation".
    
  13. deuce
    Fri Jul 19 2019 05:15 pm PDT

    Modified Files:
    exec/agwpe.js 1.3 1.4 diff

    Log Message:
    Paranoia.
    
  14. deuce
    Fri Jul 19 2019 05:15 pm PDT

    Modified Files:
    exec/agwpe.js 1.2 1.3 diff

    Log Message:
    Return true from oneshot callbacks to ensure they are removed.
    
  15. deuce
    Fri Jul 19 2019 05:08 pm PDT

    Modified Files:
    exec/agwpe.js 1.1 1.2 diff

    Log Message:
    Do the callback thang.
    
  16. deuce
    Fri Jul 19 2019 03:43 pm PDT

    Added Files:
    exec/agwpe.js NONE 1.1 diff

    Log Message:
    Initial pass at AGWPE support.
    
    Just a tree of objects and methods so far.
    Not all AGWPE commands are currently supported.
    
    Main TODOs:
    
    Connections and ports should have message queues.
    There should be a select() thing that grabs messages and sorts them into
    queues.
    The queues shoud likely be processed by a node.jsly set of callbacks.
    
  17. rswindell
    Fri Jul 19 2019 05:15 am PDT

    Modified Files:
    src/sbbs3/ctrl/MainFormUnit.dfm 1.86 1.87 diff

    Log Message:
    Noticed how the Synchronet Control Panel window, when moved around,
    was just a an outline of the Window? Apparently I set the MainForm's
    DragKind = dkDock at some point, forever ago, and didn't realize it.
    I thought all this time it was C++Builder's fault. :-(
    
  18. rswindell
    Thu Jul 18 2019 07:28 pm PDT

    Modified Files:
    src/sbbs3/build.bat 1.5 1.6 diff

    Log Message:
    New batch file name for MSVC++ 2019.
    
  19. rswindell
    Thu Jul 18 2019 05:58 pm PDT

    Modified Files:
    exec/fseditor.js 1.96 1.97 diff

    Log Message:
    Typo. :-{
    
  20. rswindell
    Thu Jul 18 2019 05:56 pm PDT

    Modified Files:
    exec/fseditor.js 1.95 1.96 diff

    Log Message:
    Auto-determine maximum printable header field values (columns - 7), rather
    than hard-code to 60 chars - better support for wide terminals.
    Write the newly-defined "3rd line" (editor details) to the result.ed file
    (this is used by latest sbbs for EDITOR msg header field).
    Always write the result.ed file when creating a message, even if the subject
    was not changed. "edit_top==5" is a strange way to determine that you're
    editing a message, but okay...
    
  21. rswindell
    Thu Jul 18 2019 05:47 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.532 1.533 diff
    src/sbbs3/writemsg.cpp 1.160 1.161 diff

    Log Message:
    Support for a 3rd line of RESULT.ED drop file (from external message editors):
    Full editor name and version details (up to 127 chars), for use in the EDITOR
    msg header field which is propagated over QWK networks.
    From what I could find, the WWIV RESULT.ED file format only ever contained 2
    lines:
    <Anonymous: 0/1>
    <subject>
    
    So adding support for an optional 3rd line should be fine and backwards
    compatible. Hopefully WWIV or its message editors don't define a different
    "standard" 3rd line in the future. :-)
    
  22. rswindell
    Thu Jul 18 2019 04:08 pm PDT

    Modified Files:
    src/sbbs3/addfiles.c 1.57 1.58 diff

    Log Message:
    Fix DIZ-importing bug introduced in rev 1.55 Mar 13 2019 by rswindell:
    get_file_diz() was reading the contents of the DIZ/SDI file into a local
    variable and not returning it or writing to the database. Poof!
    Also, read the existing extended description if there is one, when updating
    existing files.
    
  23. echicken
    Thu Jul 18 2019 03:32 pm PDT

    Modified Files:
    xtrn/bullshit/bullshit.ssjs 1.2 1.3 diff

    Log Message:
    off-by-one
    
  24. deuce
    Thu Jul 18 2019 01:38 pm PDT

    Modified Files:
    src/conio/x_events.c 1.51 1.52 diff

    Log Message:
    Fix copy/paste error.
    
  25. echicken
    Thu Jul 18 2019 10:29 am PDT

    Modified Files:
    exec/ircbot.js 1.35 1.36 diff

    Log Message:
    Supply default values in iniGetValue calls in init().
    The max_paragraph* settings introduced by mcmlxxix in 1.34 would break
    the bot for anyone who updated without adding these keys to ircbot.ini.
    (max_paragraph_length was NaN, breaking String.slice in Server_writeout
    of ircbot_functions.js.)
    
  26. rswindell
    Wed Jul 17 2019 09:10 pm PDT

    Modified Files:
    src/sbbs3/ctrl/MainFormUnit.cpp 1.204 1.205 diff

    Log Message:
    Use a loop for setting the StatusBar panels. No visible change.
    
  27. rswindell
    Wed Jul 17 2019 08:27 pm PDT

    Modified Files:
    src/sbbs3/build.bat 1.4 1.5 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  28. rswindell
    Wed Jul 17 2019 08:26 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.vcxproj 1.7 1.8 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  29. rswindell
    Wed Jul 17 2019 08:24 pm PDT

    Modified Files:
    src/sbbs3/addfiles.vcxproj 1.7 1.8 diff
    src/sbbs3/allusers.vcxproj 1.6 1.7 diff
    src/sbbs3/ans2asc.vcxproj 1.5 1.6 diff
    src/sbbs3/asc2ans.vcxproj 1.5 1.6 diff
    src/sbbs3/baja.vcxproj 1.6 1.7 diff
    src/sbbs3/chksmb.vcxproj 1.6 1.7 diff
    src/sbbs3/delfiles.vcxproj 1.6 1.7 diff
    src/sbbs3/dstsedit.vcxproj 1.6 1.7 diff
    src/sbbs3/dupefind.vcxproj 1.6 1.7 diff
    src/sbbs3/echocfg.vcxproj 3.1 3.2 diff
    src/sbbs3/filelist.vcxproj 1.6 1.7 diff
    src/sbbs3/fixsmb.vcxproj 1.6 1.7 diff
    src/sbbs3/ftpsrvr.vcxproj 1.10 1.11 diff
    src/sbbs3/jsexec.vcxproj 1.10 1.11 diff
    src/sbbs3/mailsrvr.vcxproj 1.15 1.16 diff
    src/sbbs3/makeuser.vcxproj 1.7 1.8 diff
    src/sbbs3/node.vcxproj 1.6 1.7 diff
    src/sbbs3/ntsvcs.vcxproj 1.8 1.9 diff
    src/sbbs3/qwknodes.vcxproj 1.6 1.7 diff
    src/sbbs3/sbbs.vcxproj 1.18 1.19 diff
    src/sbbs3/sbbscon.vcxproj 1.8 1.9 diff
    src/sbbs3/sbbsecho.vcxproj 3.2 3.3 diff
    src/sbbs3/services.vcxproj 1.11 1.12 diff
    src/sbbs3/sexyz.vcxproj 1.6 1.7 diff
    src/sbbs3/slog.vcxproj 1.6 1.7 diff
    src/sbbs3/smbactiv.vcxproj 1.6 1.7 diff
    src/sbbs3/smbutil.vcxproj 1.6 1.7 diff
    src/sbbs3/textgen.vcxproj 1.6 1.7 diff
    src/sbbs3/unbaja.vcxproj 1.6 1.7 diff
    src/sbbs3/websrvr.vcxproj 1.13 1.14 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  30. rswindell
    Wed Jul 17 2019 08:14 pm PDT

    Modified Files:
    src/sbbs3/js_file.c 1.181 1.182 diff

    Log Message:
    Bug in JSDOCS: File.iniSetAllObjects returns a Boolean, not an Array.
    
  31. rswindell
    Wed Jul 17 2019 08:11 pm PDT

    Modified Files:
    src/conio/conio.vcxproj 1.7 1.8 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  32. rswindell
    Wed Jul 17 2019 08:10 pm PDT

    Modified Files:
    src/encode/uucode.c 1.5 1.6 diff

    Log Message:
    Address warnings reported by Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  33. rswindell
    Wed Jul 17 2019 08:09 pm PDT

    Modified Files:
    src/smblib/smblib.vcxproj 1.7 1.8 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  34. rswindell
    Wed Jul 17 2019 08:09 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.200 1.201 diff

    Log Message:
    Address warnings reported by Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  35. rswindell
    Wed Jul 17 2019 08:08 pm PDT

    Modified Files:
    src/uifc/uifc.vcxproj 1.5 1.6 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  36. rswindell
    Wed Jul 17 2019 08:07 pm PDT

    Modified Files:
    src/xpdev/xpdev.vcxproj 1.10 1.11 diff
    src/xpdev/xpdev_mt.vcxproj 1.12 1.13 diff

    Log Message:
    Migrate to MSVC++ 2019 w/PlatformToolset v141_xp:
    Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  37. echicken
    Tue Jul 16 2019 09:41 pm PDT

    Modified Files:
    xtrn/bullshit/bullshit.js 1.4 1.5 diff
    xtrn/bullshit/readme.txt 1.4 1.5 diff

    Log Message:
    Fix scrollbar/content overlap issue reported by Va7aqd.
    Added per-user JSON files:
    - Tracks which messages they've viewed
    - Tracks the time when they last read a file bulletin
    Added 'newOnly' key to root of bullshit.ini.  If true:
    - Unread messages will be listed
    - Files timestamped newer than last view will be listed
    - All other files/messages will be supressed
    - If nothing can be listed, Bullshit will start & exit silently
    I won't even pretend to have actually tested any of this.
    
  38. deuce
    Tue Jul 16 2019 08:47 pm PDT

    Modified Files:
    exec/imapservice.js 1.69 1.70 diff

    Log Message:
    Fix typo.
    
  39. deuce
    Tue Jul 16 2019 08:33 pm PDT

    Modified Files:
    exec/imapservice.js 1.68 1.69 diff

    Log Message:
    Enfoce the LOGINDISABLED capability.
    Do not use LOGINDISABLED with TLS connections.
    Add support for CRAM-MD5 so it's RFC-3501 compliant to log in without TLS.
    
  40. rswindell
    Tue Jul 16 2019 05:34 pm PDT

    Modified Files:
    src/sbbs3/chksmb.c 1.67 1.68 diff
    src/sbbs3/delfiles.c 1.10 1.11 diff
    src/sbbs3/listfile.cpp 1.64 1.65 diff
    src/sbbs3/scfglib2.c 1.49 1.50 diff
    src/sbbs3/str.cpp 1.83 1.84 diff
    src/sbbs3/upload.cpp 1.61 1.62 diff
    src/sbbs3/useredit.cpp 1.62 1.63 diff
    src/sbbs3/websrvr.c 1.689 1.690 diff
    src/sbbs3/writemsg.cpp 1.159 1.160 diff

    Log Message:
    Address warnings reported by Visual Studio 2017 - Windows XP (v141_xp) toolset
    
  41. rswindell
    Tue Jul 16 2019 02:49 pm PDT

    Modified Files:
    src/xpdev/genwrap.c 1.110 1.111 diff

    Log Message:
    Less heavy brute-force version of strcaststr() for Windows (i.e. no mallocs).
    
  42. deuce
    Tue Jul 16 2019 01:43 pm PDT

    Modified Files:
    src/xpdev/gen_defs.h 1.79 1.80 diff

    Log Message:
    Function-like-ify SAFECAT()
    
  43. deuce
    Tue Jul 16 2019 01:38 pm PDT

    Modified Files:
    src/xpdev/ini_file.c 1.169 1.170 diff

    Log Message:
    More SAFECATS()
    - Coverity.
    
  44. deuce
    Tue Jul 16 2019 01:35 pm PDT

    Modified Files:
    src/xpdev/ini_file.c 1.168 1.169 diff

    Log Message:
    Coverity issues.  Not serious (strcat() -> SAFECAT())
    
  45. deuce
    Tue Jul 16 2019 11:26 am PDT

    Modified Files:
    src/xpdev/ini_file.c 1.167 1.168 diff

    Log Message:
    If ftell() fails, it returns -1.  We don't want to truncate there.
    
    Found by Coverity.
    
  46. deuce
    Tue Jul 16 2019 08:09 am PDT

    Modified Files:
    src/conio/bitmap_con.c 1.138 1.139 diff
    src/conio/bitmap_con.h 1.34 1.35 diff
    src/conio/sdl_con.c 1.265 1.266 diff
    src/conio/x_events.c 1.50 1.51 diff

    Log Message:
    Prevent LOR by exporting and taking the blinker lock before calling
    bitmap_init_mode().
    
  47. rswindell
    Tue Jul 16 2019 01:04 am PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.248 1.249 diff

    Log Message:
    Use Spidermonkey's JS_ValueToECMAUint32() rather than our own
    JS_ValueToUint32() for converting to integers where we may need the full 32
    bits.
    
  48. rswindell
    Tue Jul 16 2019 01:03 am PDT

    Modified Files:
    src/sbbs3/js_bbs.cpp 1.185 1.186 diff

    Log Message:
    Setting bit-31 of (SS_FASTLOGON) bbs.sys_status would result in a JavaScript
    error (e.g. can't convert 2147745800 to an integer), so use
    JS_ValueToECMAUint32() rather than JS_ValueToInt32() where we possibly need
    a full 32-bit value.
    
  49. rswindell
    Tue Jul 16 2019 12:38 am PDT

    Modified Files:
    src/sbbs3/scfg/scfgsys.c 1.51 1.52 diff

    Log Message:
    Fix bug where daylight saving time (DST) was not configurable when selecting
    certain Australian timezones.
    
  50. rswindell
    Tue Jul 16 2019 12:22 am PDT

    Modified Files:
    ctrl/modopts.ini 1.31 1.32 diff

    Log Message:
    Add missing [login] and [logon] options.
    
  51. rswindell
    Tue Jul 16 2019 12:13 am PDT

    Modified Files:
    exec/login.js 1.19 1.20 diff
    exec/logon.js 1.47 1.48 diff

    Log Message:
    As PSI-Jack pointed out, detecting fast-logons in login.js does not help
    with logins via SSH or RLogin (handled in answer.cpp). So revert login.js
    back to rev 1.17 since the fast-logons are now detected in the login name
    parsing in login.cpp's sbbs_t::parse_login() which is used in answer() and
    login() - called via bbs.login().
    
    So... if you're writing a login matrix or custom login module where you want
    to use a *different* method of detecting/enabling fast logon support, you'll
    just need to set the SS_FASTLOGON flag in the JS bbs.sys_status property:
        bbs.sys_status |= SS_FASTLOGON;
        
    This also means that 2 modopts.ini options (fast_logon and
    fast_logon_requirments) are now used in logon.js, not login.js, so the section
    where you add them is now [logon], not [login]. Got it? Good. :-)
    
  52. rswindell
    Tue Jul 16 2019 12:08 am PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.92 1.93 diff

    Log Message:
    Added new bbs.sys_status flag definitions:
    - SS_QWKLOGON
    - SS_FASTLOGON
    
  53. rswindell
    Tue Jul 16 2019 12:07 am PDT

    Modified Files:
    src/sbbs3/answer.cpp 1.104 1.105 diff
    src/sbbs3/login.cpp 1.28 1.29 diff
    src/sbbs3/logon.cpp 1.70 1.71 diff
    src/sbbs3/main.cpp 1.753 1.754 diff
    src/sbbs3/sbbs.h 1.531 1.532 diff
    src/sbbs3/sbbsdefs.h 1.243 1.244 diff

    Log Message:
    Move login username/number parsing into a the C++ code (from login.js) since we
    need that internal for SSH and RLogin support of fast-logons.
    So, now, even if logging in via SSH or Rlogin, the sys_status SS_FASTLOGON
    flag will be set when the user specifies "!username-or-number" during logon and
    then the logon.js can use that to determine what to display (or not) to the
    user, during logon.
    
    The QWK logon support ("*username-or-number") is also handled in this new
    sbbs_t method: parse_login().
    
    This means the fast_logon_char is no longer configurable (hard-coded to '!')
    and the modopts.ini options are going to be parsed by logon.js from the [logon]
    section (not the [login] section).
    
    You still must set fast_logon=true in the [logon] section of modopts.ini to
    enable the fast-logon option for users.
    
  54. rswindell
    Mon Jul 15 2019 10:30 pm PDT

    Modified Files:
    exec/login.js 1.18 1.19 diff

    Log Message:
    2 changes:
    Always parse/strip the fast_logon_char (default: '!') from the login name
    /number. This way if users get used to logging in in this fashion, it won't
    stimy them if the sysop disables the feature.
    
    Added fast_logon_requirements option (default: blank) which is an optional
    ARS to limit fast logon support to specific user-groups.
    
  55. rswindell
    Mon Jul 15 2019 10:10 pm PDT

    Modified Files:
    exec/login.js 1.17 1.18 diff
    exec/logon.js 1.46 1.47 diff

    Log Message:
    Added support for "fast logons". This feature must be enabled by the sysop
    by setting fast_logon=true in the [login] section of the ctrl/modopts.ini file.
    A user can choose a fast logon by prefixing their user name or number with
    '!' (configurable via 'fast_logon_char'). This option tells logon.js to
    skip the logon menus and logon events.
    The logon.js just looks for bbs.fast_logon==true, so if you have your own
    method of detecting a fast logon (e.g. a logon matrix menu or a prompt of the
    user), then you could just set bbs.fast_logon=true and continue to use the
    stock logon.js.
    
    Other ideas (not implemented):
    - a minimum security level (or ARS) required to allow fast logons
    - a notice to the user that fast logons are available (enabled)
    - option to skip logon menus but not logon events, or vice-versa
    
  56. rswindell
    Mon Jul 15 2019 09:31 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.105 1.106 diff

    Log Message:
    Create aliases for the MAILW:<num>, MAILP:<num>, and SPAMW:<num> @-codes:
      MAILW#<num>, MAILP#<num>, SPAMW#<num>
      
    These codes, unlike the colon-variants, can be combined with format modifiers
    (e.g. -L, etc.).
    
  57. deuce
    Mon Jul 15 2019 02:13 pm PDT

    Modified Files:
    3rdp/build/GNUmakefile 1.51 1.52 diff
    3rdp/build/cl-bn-noasm64-fix.patch NONE 1.1 diff
    3rdp/build/cl-noasm-defines.patch NONE 1.1 diff

    Added Files:
    	cl-bn-noasm64-fix.patch cl-noasm-defines.patch 
    Log Message:
    Attempt to fix issues on x86 systems by driving a final stake through all
    inline asm stuff (cl-noasm-defines.patch).
    
    This (of course) revealed an issue with 64-bit systems not building properly
    so cl-bn-noasm64-fix.patch fixes this again.
    
    There should no longer be any inline (or out of line) asm, so any more
    illegal instruction errors are likely to be the fault of the compiler or
    the compiler flags.
    
  58. deuce
    Mon Jul 15 2019 12:24 pm PDT

    Modified Files:
    src/conio/bitmap_con.c 1.137 1.138 diff

    Log Message:
    Grab the blinker lock to silence coverity... since it's just the cursor
    size that's being protected in this case, it doesn't *really* matter, but
    it's a technical flaw.
    
  59. deuce
    Mon Jul 15 2019 12:23 pm PDT

    Modified Files:
    src/conio/x_events.c 1.49 1.50 diff

    Log Message:
    Fix some resizing issues.
    
  60. rswindell
    Sun Jul 14 2019 11:53 pm PDT

    Modified Files:
    src/sbbs3/js_user.c 1.110 1.111 diff

    Log Message:
    Fix issues with the feature added in rev 1.96 by deuce, Jun 17 2012:
    Setting user.security.flags[1-4], exemptions, or restrictions to a string value
    would result in unexpected modified values:
    
    1. The exiting flags were all based on the current value of flags1 (copy/paste
        error it appears)
    2. The set/removed/added flags were all "off-by-one" because str_to_bits()
        treats 'A' as bit-1, not bit-0.
    
    emailval.js is now using this feature and PSI-Jack reported the "interesting"
    behavior. :-)
    
  61. rswindell
    Sun Jul 14 2019 11:23 pm PDT

    Modified Files:
    exec/logon.js 1.45 1.46 diff

    Log Message:
    Fixed typo in previous commit. Oops.
    
  62. rswindell
    Sun Jul 14 2019 09:41 pm PDT

    Modified Files:
    exec/emailval.js 1.6 1.7 diff

    Log Message:
    New modopts.ini option: expiration_after_validation (default: false)
    
    If this value is false (the default), then a validated user's account will
    be set to *not* expire.
    If this value is true, then a validated user's account expiration status
    won't be changed unless the expiration_days_after_validation option is also
    set, in which case the expiration date will be reset based on that setting.
    
    Document the new modopts.ini [logon] email_validation option to enable use of
    this module.
    
  63. rswindell
    Sun Jul 14 2019 08:35 pm PDT

    Modified Files:
    src/sbbs3/js_file.c 1.180 1.181 diff

    Log Message:
    Fix long-standing issue with File.attributes on Windows: the value *read*
    was based on _finddata_t.attrib value while the value *written* was based on
    struct stat.st_mode, and totally incompatible.
    Just use the stat/chmod compatible value for both read and write (for all
    OSes). If you need the old Windows-centric attribute values (e.g. to determine
    "hidden" or "archive" attributes), use file_attrib() instead.
    
  64. rswindell
    Sun Jul 14 2019 08:25 pm PDT

    Modified Files:
    src/xpdev/dirwrap.c 1.105 1.106 diff
    src/xpdev/dirwrap.h 1.51 1.52 diff

    Log Message:
    On Windows, the return value of getfattr() is not compatible with chmod()
    (totally differnet bit values).
    So create getfmode() which is a thin wrapper for stat() and can be used to read
    a chmod()-comopatible value on all supported OSes.
    
  65. rswindell
    Sun Jul 14 2019 08:03 pm PDT

    Modified Files:
    exec/logon.js 1.44 1.45 diff

    Log Message:
    If you're using emailval.js, you no longer need to modify your copy of logon.js
    to do so. Just set email_validation = true in the [logon] section of your
    ctrl/modopts.ini file instead.
    
  66. rswindell
    Sun Jul 14 2019 07:53 pm PDT

    Modified Files:
    src/sbbs3/js_global.c 1.385 1.386 diff

    Log Message:
    New global JS function: file_mode()
    
    This function behaves the same as file_attrib() on *nix, but on Windows,
    file_mode() returns a *nix/stat style st_mode value (compatible with
    file_chmod) while file_attrib() returns the struct _finddata_t 'attrib' value,
    which is a quite different value (e.g. indicates Windows/DOS centric file
    attributes like "archive", "hidden", etc.) and is *incompatible* with
    file_chmod(). So if you're going to modify a file's permissions (mode), use
    file_mode() to read them and file_chmod() to save them.
    
    file_attrib() should really only be used on Windows and only for checking for
    attributes like "hidden", "archive", etc. (which don't exist on *nix).
    
  67. rswindell
    Sun Jul 14 2019 07:19 pm PDT

    Modified Files:
    src/xpdev/unicode.c 1.10 1.11 diff
    src/xpdev/unicode_defs.h 1.6 1.7 diff

    Log Message:
    More unicode code point definitions and Unicode -> CP437 translations.
    
  68. rswindell
    Sun Jul 14 2019 07:13 pm PDT

    Modified Files:
    src/sbbs3/scfgsave.c 1.84 1.85 diff

    Log Message:
    Fix bug in previous commit (this is getting a bit rediculous). Don't add the
    "dirs" sub-dir to a sysop-defined directory-specific data directory.
    
  69. rswindell
    Sun Jul 14 2019 05:36 pm PDT

    Modified Files:
    exec/emailval.js 1.5 1.6 diff

    Log Message:
    Fix CVS Id keyword usage.
    Use require() rather than load() for sbbsdefs.js.
    
  70. rswindell
    Sun Jul 14 2019 05:27 pm PDT

    Modified Files:
    exec/emailval.js 1.4 1.5 diff

    Log Message:
    Use [emailval] section of modopts.ini for sysop-settings (for Mortifis):
        level_before_validation (default: 50)
        level_after_validation (default: 60)
        flags1_after_validation (default: no change)
        flags2_after_validation (default: no change)
        flags3_after_validation (default: no change)
        flags4_after_validation (default: no change)
        exemptions_after_validation (default: no change)
        restrictions_after_validation (default: no change)
        expiration_days_after_validation (default: no change)
    
  71. deuce
    Sun Jul 14 2019 01:42 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.245 1.246 diff

    Log Message:
    Don't clreol() the status line unles the gotoxy() is successful.
    This fixes screen corruption with CTRL-E in 40-column modes.
    
  72. deuce
    Sun Jul 14 2019 11:56 am PDT

    Modified Files:
    src/syncterm/Manual.txt 1.4 1.5 diff
    src/syncterm/bbslist.c 1.225 1.226 diff

    Log Message:
    When changing *from* Atari and Commodore modes, enable the status line and
    change the font to CP437.
    
    This prevents weirdness since when changing *to* those modes, the font and
    status line setting are silently updated.
    
  73. rswindell
    Sun Jul 14 2019 03:10 am PDT

    Modified Files:
    src/sbbs3/scfgsave.c 1.83 1.84 diff

    Log Message:
    Add the "dirs" sub-folder (under data) to the last 2 commits.
    
  74. rswindell
    Sun Jul 14 2019 03:02 am PDT

    Modified Files:
    src/sbbs3/scfgsave.c 1.82 1.83 diff

    Log Message:
    Typo in previous commit: SAFECAT, not SAFECOPY!
    
  75. rswindell
    Sun Jul 14 2019 02:53 am PDT

    Modified Files:
    src/sbbs3/scfgsave.c 1.81 1.82 diff

    Log Message:
    Refactor the transfer file path (storage directory) creation logic in
    write_file_cfg(). I'm pretty sure this fixes the bug introduced in r1.75
    (Mar-7-2018) where it would use the directory's custom "data dir" as the
    parent of the sub-directory even if it was blank.
    
    So if you're like Mark Lewis and you're getting a bunch of sub-directories
    created in your "ctrl" directory when you save changes in SCFG, this is likely
    the cause. Only happened if you had both the library's "Parent Directory"
    and the "File Transfer Path" of the directory, blank.
    
  76. rswindell
    Sun Jul 14 2019 02:01 am PDT

    Modified Files:
    src/sbbs3/scfgsave.c 1.80 1.81 diff

    Log Message:
    Call prep_dir() (before md/mkdir) even when no file storage path is specified.
    
  77. rswindell
    Sun Jul 14 2019 01:18 am PDT

    Modified Files:
    src/sbbs3/js_global.c 1.384 1.385 diff

    Log Message:
    New JS global method: file_chmod(), changes a file's mode value ala *nix chmod.
    Really only useful on *nix since Windows only allows the setting/clearing of
    a single mode flag: user-writeable, 0x80, 0200.
    
  78. rswindell
    Sat Jul 13 2019 11:51 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxfr2.c 1.58 1.59 diff

    Log Message:
    Fix bug introduced in rev 1.53 (Mar-2018), when displaying the selected
    directory's file transfer path, the array index usage here could cause a
    crash or just garbage to be displayed.
    
  79. rswindell
    Sat Jul 13 2019 05:07 pm PDT

    Modified Files:
    3rdp/win32.release/cryptlib/bin/cl32.dll 1.8 1.9 diff
    3rdp/win32.release/cryptlib/bin/cl32.lib 1.7 1.8 diff

    Log Message:
    Updated cryptlib 3.4.5 build with the latest Synchronet/deuce patches.
    
  80. rswindell
    Sat Jul 13 2019 04:13 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxfr1.c 1.29 1.30 diff
    src/sbbs3/scfg/scfgxfr2.c 1.57 1.58 diff

    Log Message:
    Terminology consistency: use "Transfer File Path" everywhere, not "Storage
    Path" or "Directory File Path".
    
  81. deuce
    Sat Jul 13 2019 03:02 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.244 1.245 diff

    Log Message:
    Fix another issues caused by the vmem_gettext() conversion.
    
  82. rswindell
    Sat Jul 13 2019 02:09 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.c 1.103 1.104 diff

    Log Message:
    The scfg '-s' option hasn't actually worked in a long, long time.
    Remove it.
    
  83. deuce
    Fri Jul 12 2019 08:43 pm PDT

    Modified Files:
    src/syncterm/Manual.txt 1.3 1.4 diff

    Log Message:
    Only one Delete (this isn't a Mac)
    
  84. deuce
    Fri Jul 12 2019 08:42 pm PDT

    Modified Files:
    src/syncterm/Manual.txt 1.2 1.3 diff

    Log Message:
    Document the default behaviour of UIFC menus.
    
  85. deuce
    Fri Jul 12 2019 08:09 pm PDT

    Modified Files:
    src/syncterm/CHANGES 1.27 1.28 diff

    Log Message:
    Moar changes!
    
  86. deuce
    Fri Jul 12 2019 07:50 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.243 1.244 diff

    Log Message:
    More uifc32 proctology.
    
  87. deuce
    Fri Jul 12 2019 03:38 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.224 1.225 diff

    Log Message:
    Missing semicolon.
    
  88. deuce
    Fri Jul 12 2019 03:35 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.223 1.224 diff

    Log Message:
    If a vmode can't be found, use 80x24 terminal size.
    
  89. deuce
    Fri Jul 12 2019 03:35 pm PDT

    Modified Files:
    src/conio/cterm.c 1.255 1.256 diff

    Log Message:
    Fix error handling.
    
  90. deuce
    Fri Jul 12 2019 03:12 pm PDT

    Modified Files:
    src/conio/cterm.c 1.254 1.255 diff
    src/conio/cterm.txt 1.57 1.58 diff

    Log Message:
    Add more control sequences:
    
    CSI Pn Y - Cursor Line Tabulation
    CSI Pn SP c - Tab Stop Remove
    CSI Pn k - Line Position Backward
    
  91. deuce
    Fri Jul 12 2019 03:02 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.222 1.223 diff

    Log Message:
    Put the number of directory items in the title.
    Requested by mortifis.
    
  92. deuce
    Thu Jul 11 2019 09:49 pm PDT

    Modified Files:
    src/conio/cterm.c 1.253 1.254 diff
    src/conio/cterm.h 1.57 1.58 diff
    src/conio/cterm.txt 1.56 1.57 diff

    Log Message:
    Add more standard sequences.
    
    CSI Pn b (Repeat previous char)
    	Actually mildly useful... repeat any character.
    CSI Ps d (Line position absolute)
    	Moves to a specific row without changing column.
    	Mildly useful.
    CSI Pn a (Cursor forward)
    	Identical to CSI Pn C
    CSI Pn ` (Absolute position in line)
    	Identical to CSI Pn G
    ESC H (Add Tab Stop)
    	ie: Break everything else that uses tabs this session.
    CSI Pn g (Clear Tabs)
    	ie: Break everything else that uses tabs this session.
    CSI 2 $ w (Request Tab Report)
    	So, maybe it can be fixed after you break it!  Yay!
    ESC M (Reverse Line Feed)
    	Basically up one line.  Not really useful since we have cursor up.
    CSI Ps e (Line position relative)
    	Identical to CSI Pn B
    
  93. rswindell
    Thu Jul 11 2019 07:24 pm PDT

    Modified Files:
    exec/load/cterm_lib.js 1.21 1.22 diff

    Log Message:
    Added supports_sixel() method.
    Fixed possible undefined console.cterm_fonts_active reference.
    
  94. rswindell
    Thu Jul 11 2019 07:18 pm PDT

    Modified Files:
    exec/logon.js 1.43 1.44 diff

    Log Message:
    Using the P_NOABORT to clear the abort flag before printing the last few
    callers list during logon.
    New modopts.ini [logon] option: last_few_callers (default: 4), so you can
    customize the number of callers displayed.
    
  95. rswindell
    Thu Jul 11 2019 07:15 pm PDT

    Modified Files:
    src/sbbs3/answer.cpp 1.103 1.104 diff
    src/sbbs3/sbbsdefs.h 1.242 1.243 diff

    Log Message:
    Remove CTERM_FONTS definition. This wasn't be used by anything. cterm_lib.js
    using the version to determine what's supported (and isn't).
    
  96. rswindell
    Thu Jul 11 2019 07:10 pm PDT

    Modified Files:
    src/sbbs3/answer.cpp 1.102 1.103 diff

    Log Message:
    Don't change useron.misc during logon. This could cause a user's account
    to have the NO_EXASCII (plain-ASCII only) set if the logged in without a
    successful auto-terminal-type detection.
    And with sbbs_t::term_supports(), we don't need useron.misc to reflect the
    auto-detected-terminal-type any longer.
    
  97. rswindell
    Thu Jul 11 2019 06:49 pm PDT

    Modified Files:
    exec/email_sec.js 1.7 1.8 diff

    Log Message:
    Use console.putmsg() rather than console.print() so @-codes will be
    expanded.
    
  98. rswindell
    Thu Jul 11 2019 04:05 pm PDT

    Modified Files:
    exec/logon.js 1.42 1.43 diff

    Log Message:
    Set the attribute to LIGHTGRAY before clearing the screen. This helps with
    the "darkgray" background issue when using xterm.
    Apparently if the foreground attribute has the high intensity attribute set
    and a CRLF or a clear-screen sequence is sent, the new (blank) lines (normally,
    black) will have the high intensity *background* attribute set (or it just
    looks that way). I don't understand why... yet.
    
  99. rswindell
    Thu Jul 11 2019 02:44 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.104 1.105 diff

    Log Message:
    Fix GCC warnings:
     hex escape sequence out of range
    
  100. rswindell
    Thu Jul 11 2019 02:41 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.530 1.531 diff
    src/sbbs3/con_out.cpp 1.112 1.113 diff

    Log Message:
    Constification to appease the C++ Gods.
    
  101. rswindell
    Thu Jul 11 2019 02:37 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.103 1.104 diff

    Log Message:
    Add REGISTERED @-code.
    
  102. rswindell
    Thu Jul 11 2019 02:36 pm PDT

    Modified Files:
    src/xpdev/unicode_defs.h 1.5 1.6 diff

    Log Message:
    More UNICODE symbol code point definitions.
    
  103. rswindell
    Thu Jul 11 2019 02:25 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.102 1.103 diff

    Log Message:
    COPYRIGHT @-code already exists, use COPY instead.
    
  104. rswindell
    Thu Jul 11 2019 02:22 pm PDT

    Modified Files:
    ctrl/text.dat 1.107 1.108 diff

    Log Message:
    Added new LoggingOn text.dat string (printed rather than the old hard-coded
    clear-screen (CLS) in logon.cpp.
    Use of the new ELLIPSIS @-code.
    
  105. rswindell
    Thu Jul 11 2019 02:20 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.67 1.68 diff

    Log Message:
    Reset the auto-pause (line-counter) in LogginOn text.dat string.
    This prevents any auto [Hit a Key] prompt just because we printed the
    "Logging on to <bbs> as <user> ..." line.
    
  106. rswindell
    Thu Jul 11 2019 02:18 pm PDT

    Modified Files:
    src/sbbs3/textgen.c 1.12 1.13 diff

    Log Message:
    Fix text.dat comment parsing issues with multiple-line (continued) strings
    where the comment was only on the first line.
    This only cropped up in the text.h output when the *last* line was a multi-line
    (continued) string.
    
  107. deuce
    Thu Jul 11 2019 02:13 pm PDT

    Modified Files:
    src/conio/cterm.c 1.252 1.253 diff
    src/conio/cterm.txt 1.55 1.56 diff

    Log Message:
    Add shift-left and shift-right which are sort of horizontal scroll, but they
    don't move the cursor position.
    
  108. rswindell
    Thu Jul 11 2019 01:37 pm PDT

    Modified Files:
    src/sbbs3/logon.cpp 1.69 1.70 diff
    src/sbbs3/text.h 1.41 1.42 diff
    src/sbbs3/text_defaults.c 1.66 1.67 diff

    Log Message:
    Replaced the hard-coded "clear-screen" sequence during logon with new text.dat
    string: LoggingOn
    This was the *first* possible cause of an auto-pause ([Hit a key] prompt)
    during successful SSH logins.
    The new text string is just "Logging on to @bbs@ as @alias@ @ellipsis@"
    - if you want a screen clear here or to display a text file, you can do so by
      modifying this line.
    
  109. rswindell
    Thu Jul 11 2019 01:33 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.101 1.102 diff

    Log Message:
    More UNICODE fun w/@-codes:
    U+ code now supports <code-hex>:<text> syntax so that multiple chars (a string)
    may be specified as a fallback for non-UTF-8 terminals.
    The U+<code>/<char> syntax was changed to U+<code>,<char>
    New symbolic @-codes that send the right Unicode code point to UTF-8 terminals
    or a string to others:
    - ELLIPSIS
    - COPYRIGHT
    - SOUNDCOPY
    - TRADEMARK
    - DEGREE_C
    - DEGREE_F
    
  110. rswindell
    Thu Jul 11 2019 01:14 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.111 1.112 diff
    src/sbbs3/sbbs.h 1.529 1.530 diff

    Log Message:
    Another outchar(enum unicode_codepoint, ...) variant method which supports a
    string (multiple) CP437 fallback chars, for when a single CP437 char won't
    suffice.
    
  111. rswindell
    Thu Jul 11 2019 12:52 pm PDT

    Modified Files:
    src/xpdev/unicode.c 1.9 1.10 diff
    src/xpdev/unicode_defs.h 1.4 1.5 diff

    Log Message:
    Add/use more UNICODE enum defines (mainly those that map to CP437).
    Fix error in CP437 0x96 (small U with circumflex) translation to UNICODE
    (typo: 0x00FB not 0x00F8).
    
  112. rswindell
    Thu Jul 11 2019 12:45 pm PDT

    Modified Files:
    src/xpdev/cp437defs.h 1.2 1.3 diff

    Log Message:
    Added more missing CP437 enum values.
    Fixed one typo (LATIN_LATIN).
    
  113. deuce
    Thu Jul 11 2019 12:26 pm PDT

    Modified Files:
    src/syncterm/CHANGES 1.26 1.27 diff

    Log Message:
    Mention uifc32 improvements.
    
  114. deuce
    Thu Jul 11 2019 12:03 pm PDT

    Modified Files:
    src/conio/cterm.c 1.251 1.252 diff

    Log Message:
    Fix vaious issues with saving extended colour codes.
    
  115. deuce
    Thu Jul 11 2019 11:54 am PDT

    Modified Files:
    src/uifc/uifc32.c 1.242 1.243 diff

    Log Message:
    Fix scrolling (borken in vmem_puttext update)
    
  116. deuce
    Thu Jul 11 2019 11:46 am PDT

    Modified Files:
    src/syncterm/conn_telnet.c 1.14 1.15 diff

    Log Message:
    More emu removal.
    
  117. deuce
    Thu Jul 11 2019 11:42 am PDT

    Modified Files:
    src/uifc/uifc32.c 1.241 1.242 diff

    Log Message:
    Fix active line updating on inactive windows.
    
  118. deuce
    Thu Jul 11 2019 11:31 am PDT

    Modified Files:
    src/syncterm/bbslist.c 1.221 1.222 diff
    src/syncterm/bbslist.h 1.51 1.52 diff
    src/syncterm/conn_pty.c 1.30 1.31 diff
    src/syncterm/conn_telnet.c 1.13 1.14 diff
    src/syncterm/ssh.c 1.23 1.24 diff
    src/syncterm/syncterm.c 1.221 1.222 diff
    src/syncterm/telnet_io.c 1.36 1.37 diff
    src/syncterm/telnet_io.h 1.9 1.10 diff

    Log Message:
    Remove more thread-unsafe global usage from telnet_io.
    Extract the term size method used by SSH and pty into a function, and remove
    the need to change the video mode.
    
  119. deuce
    Thu Jul 11 2019 01:25 am PDT

    Modified Files:
    src/syncterm/uifcinit.c 1.39 1.40 diff

    Log Message:
    Use the COLOR_PALETTE for uifc, no need for setfont() anymore since uifc
    always uses font zero now.
    
  120. deuce
    Thu Jul 11 2019 01:24 am PDT

    Modified Files:
    src/uifc/uifc32.c 1.240 1.241 diff

    Log Message:
    No need for ascii chars anymore since we always use font 0 for all the
    things.
    
  121. deuce
    Thu Jul 11 2019 01:16 am PDT

    Modified Files:
    src/conio/ciolib.c 1.177 1.178 diff

    Log Message:
    Fix last commit.
    
  122. deuce
    Thu Jul 11 2019 01:10 am PDT

    Modified Files:
    src/conio/ciolib.c 1.176 1.177 diff
    src/conio/ciolib.h 1.103 1.104 diff

    Log Message:
    Add the mode palette to screen save/restore.
    
  123. deuce
    Thu Jul 11 2019 12:57 am PDT

    Modified Files:
    src/uifc/filepick.c 1.42 1.43 diff
    src/uifc/uifc32.c 1.239 1.240 diff

    Log Message:
    Update uifc32 to use vmem_gettext()/vmem_puttext().
    This allows full control over the display, and avoids font mangling.
    
  124. deuce
    Thu Jul 11 2019 12:45 am PDT

    Modified Files:
    src/conio/ciolib.c 1.175 1.176 diff
    src/conio/ciolib.h 1.102 1.103 diff

    Log Message:
    Add set_vmem() and set_vmem_attr() functions to make it easier to manipulate
    a struct vmem_cell.
    
  125. deuce
    Wed Jul 10 2019 11:11 pm PDT

    Modified Files:
    src/conio/ciolib.c 1.174 1.175 diff

    Log Message:
    Allow the pixel array to be NULL in restorescreen().
    
    This allows modifying a savescreen() rather than needing to vmem_gettext()
    stuff, but also change things without hacking up the pixels array yourself.
    
  126. deuce
    Wed Jul 10 2019 10:44 pm PDT

    Modified Files:
    src/conio/ciolib.c 1.173 1.174 diff
    src/conio/ciolib.h 1.101 1.102 diff

    Log Message:
    The cterm_screen no longer has separate arrays for foreground and background.
    Also, the vmem is an array of struct vmem_cell.
    
  127. rswindell
    Wed Jul 10 2019 09:49 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.110 1.111 diff

    Log Message:
    Fix Telnet IAC escaping bug introduced in rev 1.104 (July-8) which caused
    problems loading font data in SyncTERM over Telnet.
    
  128. rswindell
    Wed Jul 10 2019 08:08 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.50 1.51 diff

    Log Message:
    <Deuce> Looks like it's the memcpy writing two bytes into a place it shouldn't.
    <Deuce> Easiest fix would be to have outbuf_append adjust outlen to be "long
    enough" if doubling isn't.
    <Deuce>         /* Not enough room, double the size. */
    <Deuce>         *outlen *= 2;
    <Deuce>         if(*outp - *outbuf + len >= *outlen)  
    <Deuce>                 *outlen = *outp - *outbuf + len + 1
    <Deuce> So yeah, blindly doubling won't work for utf-8.
    <Deuce> Because a line will have more bytes than the number of characters in a
    line.
    
  129. deuce
    Wed Jul 10 2019 06:55 pm PDT

    Modified Files:
    src/conio/sdl_con.c 1.264 1.265 diff

    Log Message:
    Blank existing window before calling SetVideoMode() again.
    
  130. deuce
    Wed Jul 10 2019 06:11 pm PDT

    Modified Files:
    src/conio/sdl_con.c 1.263 1.264 diff

    Log Message:
    Fix 40-col doubling to modify vstat with the vstatlock held rather than just
    cvstat.
    
  131. deuce
    Wed Jul 10 2019 03:59 pm PDT

    Modified Files:
    src/syncterm/telnet_io.c 1.35 1.36 diff

    Log Message:
    Revert r1.33
    
    Per RFC-5198:
       2.  In Net-ASCII, CR MUST NOT appear except when immediately followed
           by either NUL or LF, with the latter (CR LF) designating the "new
           line" function.  Today and as specified above, CR should
           generally appear only when followed by LF.  Because page layout
           is better done in other ways, because NUL has a special
           interpretation in some programming languages, and to avoid other
           types of confusion, CR NUL should preferably be avoided as
           specified above.
    
    It's not worth breaking all connections for some broken telnet servers.
    Especially since we do not explicitly want CR behaviour which is the only
    place it's allowed.
    
    Per RFC-854:
       the sequence "CR NUL" must be used where a carriage return alone is
       actually desired;
    
    It's quite possible that these "telnet servers" are actually raw socket
    servers and should use raw sockets rather than telnet.
    
  132. deuce
    Wed Jul 10 2019 03:48 pm PDT

    Modified Files:
    src/syncterm/CHANGES 1.25 1.26 diff
    src/syncterm/bbslist.c 1.220 1.221 diff
    src/syncterm/bbslist.h 1.50 1.51 diff
    src/syncterm/rlogin.c 1.34 1.35 diff
    src/syncterm/ssh.c 1.22 1.23 diff
    src/syncterm/telnet_io.c 1.34 1.35 diff

    Log Message:
    Normalize terminal types across protocols.
    
    Note that conn_pty does not support PETSCII or ATASCII as the terminal
    type since it sets TERMCAP, and I don't have a termcap entry for either of
    those.
    
  133. rswindell
    Wed Jul 10 2019 03:40 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.49 1.50 diff

    Log Message:
    Fix bug introduced in r1.46: was counting (most) Ctrl-A codes as a single char
    rather than no char, when calculating word lengths. We needed that 'continue'
    here.
    
  134. deuce
    Wed Jul 10 2019 03:28 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.219 1.220 diff
    src/syncterm/bbslist.h 1.49 1.50 diff
    src/syncterm/conn_telnet.c 1.12 1.13 diff
    src/syncterm/telnet_io.c 1.33 1.34 diff
    src/syncterm/telnet_io.h 1.8 1.9 diff
    src/syncterm/term.c 1.342 1.343 diff

    Log Message:
    Remove hack introduced in r1.12 of conn_telnet.c by breaking the dependency
    on cterm.
    
  135. deuce
    Wed Jul 10 2019 03:26 pm PDT

    Modified Files:
    src/syncterm/COMPILING 1.12 1.13 diff

    Log Message:
    hash/encode
    
  136. deuce
    Wed Jul 10 2019 03:26 pm PDT

    Modified Files:
    src/syncterm/CHANGES 1.24 1.25 diff

    Log Message:
    More changes.
    
  137. deuce
    Wed Jul 10 2019 03:24 pm PDT

    Modified Files:
    src/encode/GNUmakefile 1.2 1.3 diff

    Log Message:
    Don't clobber SRC_ROOT
    
  138. deuce
    Wed Jul 10 2019 03:24 pm PDT

    Modified Files:
    src/hash/GNUmakefile 1.1 1.2 diff

    Log Message:
    Don't clobber SRC_ROOT
    
  139. rswindell
    Wed Jul 10 2019 02:41 pm PDT

    Modified Files:
    src/sbbs3/putmsg.cpp 1.50 1.51 diff

    Log Message:
    Calculate string length *before* the initial parsing of the WORDWRAP/WRAPOFF
    codes.
    
  140. rswindell
    Wed Jul 10 2019 02:41 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.100 1.101 diff

    Log Message:
    <waffle>
    I like the -W @-code format modifier better for "WIDE" than for "WRAP" (no
    body is using -W yet, right?) - so, change wrap to "->" and double-wide to
    "-W".
    
  141. rswindell
    Wed Jul 10 2019 01:38 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.99 1.100 diff
    src/sbbs3/con_out.cpp 1.109 1.110 diff
    src/sbbs3/js_console.cpp 1.131 1.132 diff
    src/sbbs3/sbbs.h 1.528 1.529 diff
    src/sbbs3/useredit.cpp 1.61 1.62 diff

    Log Message:
    Create a use new sbbs_t method: term_type(), returns the auto-generated
    terminal "type" string (ANSI, RIP, PETSCII, or DUMB).
    Expose this value in JS via the new console.type read-only property.
    The TERM @-code now expands to this string rather than the (often
    client-supplied) sbbs_t.terminal string value.
    
  142. deuce
    Wed Jul 10 2019 12:46 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.218 1.219 diff

    Log Message:
    Various minor issues found by Coverity.
    
  143. deuce
    Wed Jul 10 2019 12:46 pm PDT

    Modified Files:
    src/conio/cterm.c 1.250 1.251 diff

    Log Message:
    Various minor issues found by Coverity.
    
  144. deuce
    Wed Jul 10 2019 12:41 pm PDT

    Modified Files:
    src/xpdev/ini_file.c 1.166 1.167 diff

    Log Message:
    Fix obvious typo in iniSetBitField() which could result in a NULL
    dereference. (found by Coverity)
    
  145. deuce
    Wed Jul 10 2019 11:34 am PDT

    Modified Files:
    src/conio/cterm.c 1.249 1.250 diff
    src/conio/cterm.txt 1.54 1.55 diff

    Log Message:
    Add some additional useful DECRQSS queries from xterm.
    
  146. rswindell
    Wed Jul 10 2019 05:21 am PDT

    Modified Files:
    src/xpdev/unicode.c 1.8 1.9 diff

    Log Message:
    Fix Borland C++Builder 6 build error:
    Expression syntax in function unicode_to_cp437
    :-(
    
  147. rswindell
    Wed Jul 10 2019 04:12 am PDT

    Modified Files:
    src/xpdev/unicode_defs.h 1.3 1.4 diff

    Log Message:
    Add enum definitions that are used in unicode_to_cp437() and causing warnings.
    I took a short-cut with some of the names - TODO: fix. <sigh>
    
  148. rswindell
    Tue Jul 09 2019 11:51 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.98 1.99 diff

    Log Message:
    The parsing of format modifiers could truncate/corrupt @-code arguments
    (e.g. "@code:BIG-RED@", the argument would get chopped to just "BIG")
    so don't support format modifiers when a ':' is present in the @-code.
    
  149. rswindell
    Tue Jul 09 2019 10:59 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.97 1.98 diff

    Log Message:
    New @-code format modifier: -D
    When appended to an @-code, displays it double-wide using "fullwidth" Unicode
    code points if possible, spaces between the characters otherwise.
    
  150. rswindell
    Tue Jul 09 2019 10:00 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.527 1.528 diff

    Log Message:
    Add #include "unicode_defs.h" - whoops.
    
  151. rswindell
    Tue Jul 09 2019 09:54 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.96 1.97 diff

    Log Message:
    Use slash rather pipe to separate Unicode code point from fallback char.
    The pipe char is problematic to discuss in msg bases and on the Wiki. <shrug>
    
  152. rswindell
    Tue Jul 09 2019 09:27 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.95 1.96 diff
    src/sbbs3/con_out.cpp 1.108 1.109 diff
    src/sbbs3/js_console.cpp 1.130 1.131 diff
    src/sbbs3/sbbs.h 1.526 1.527 diff

    Log Message:
    Fun with Unicode!
    Create a sbbs_t method: wide(), which displays a string using "fullwidth"
    Unicode characters, when possible, otherwise, double-spaced.
    Exposed in JS via console.wide() and a new @-code: WIDE:<string>
    
  153. rswindell
    Tue Jul 09 2019 08:38 pm PDT

    Modified Files:
    src/xpdev/unicode.c 1.7 1.8 diff

    Log Message:
    A few more code point to CP437 char mappings.
    unicode_width() now correctly returns 2 for the CJK and other code points that
    are typically displayed in 2 columns with non-proportional fonts.
    
  154. rswindell
    Tue Jul 09 2019 08:36 pm PDT

    Modified Files:
    src/xpdev/unicode_defs.h 1.2 1.3 diff

    Log Message:
    Define a bunch of blocks, sub-blocks, and a few more code points.
    Mainly, for the purpose of determing which code points represent "fullwidth"
    (2 column) characters.
    
  155. rswindell
    Tue Jul 09 2019 06:56 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.65 1.66 diff

    Log Message:
    Use the new DATEFMT @-code (created just for this purpose).
    
  156. rswindell
    Tue Jul 09 2019 06:53 pm PDT

    Modified Files:
    ctrl/text.dat 1.106 1.107 diff

    Log Message:
    Use the new DATEFMT @-code (created just for this purpose).
    VS: ----------------------------------------------------------------------
    
  157. rswindell
    Tue Jul 09 2019 06:52 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.94 1.95 diff

    Log Message:
    New @-code: DATEFMT which expands to either MM/DD/YY or DD/MM/YY
    (currently).
    Created for use with the EnterYourBirthday text.dat string, so the CHECKMARK
    @-code can be used as well. @-codes can't be used in strings with
    printf-specifiers (e.g. %s).
    
  158. rswindell
    Tue Jul 09 2019 06:20 pm PDT

    Modified Files:
    exec/yesnobar.src 1.9 1.10 diff
    exec/noyesbar.src 1.8 1.9 diff

    Log Message:
    Use the @checkmark@ method of embedding a checkmark symbol in strings.
    
  159. rswindell
    Tue Jul 09 2019 06:20 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.64 1.65 diff

    Log Message:
    Use the @checkmark@ method of embedding a checkmark symbol in strings.
    
  160. rswindell
    Tue Jul 09 2019 06:17 pm PDT

    Modified Files:
    ctrl/text.dat 1.105 1.106 diff

    Log Message:
    Use the @checkmark@ method of embedding a checkmark symbol in strings.
    
  161. rswindell
    Tue Jul 09 2019 06:14 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.93 1.94 diff

    Log Message:
    New @-code: @checkmark@, sends the Unicode CHECKMARK or the CP437
    square root symbol (or PETSCII check mark), as appropriate.
    
  162. rswindell
    Tue Jul 09 2019 06:12 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.107 1.108 diff
    src/sbbs3/writemsg.cpp 1.158 1.159 diff

    Log Message:
    Shorten up the CP437_CHAR_* enum names to just CP437_ to be consistent
    with UNICODE_*
    
  163. rswindell
    Tue Jul 09 2019 06:11 pm PDT

    Modified Files:
    src/xpdev/cp437defs.h 1.1 1.2 diff
    src/xpdev/unicode.c 1.6 1.7 diff

    Log Message:
    Shorten up the CP437_CHAR_* enum names to just CP437_ to be consistent
    with UNICODE_*
    
  164. rswindell
    Tue Jul 09 2019 05:51 pm PDT

    Modified Files:
    src/xpdev/unicode.c 1.5 1.6 diff

    Log Message:
    Address more GCC warnings unicode_to_cp437():
    enumeration value '...' not handled in switch
    
  165. rswindell
    Tue Jul 09 2019 05:40 pm PDT

    Modified Files:
    src/xpdev/unicode.c 1.4 1.5 diff

    Log Message:
    Fix a bunch of enumeration value '...' not handled in switch GCC warnings
    in unicode_width().
    
  166. rswindell
    Tue Jul 09 2019 05:36 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.vcxproj 1.14 1.15 diff
    src/sbbs3/sbbs.vcxproj 1.17 1.18 diff

    Log Message:
    unicode.c was moved from src/encode to src/xpdev.
    
  167. rswindell
    Tue Jul 09 2019 05:35 pm PDT

    Modified Files:
    src/xpdev/xpdev.vcxproj 1.9 1.10 diff
    src/xpdev/xpdev_mt.vcxproj 1.11 1.12 diff

    Log Message:
    Moved encode/unicode.c here.
    
  168. rswindell
    Tue Jul 09 2019 05:25 pm PDT

    Modified Files:
    src/xpdev/objects.mk 1.18 1.19 diff

    Log Message:
    Moved src/encode/unicode* and encode/*defs.h to src/xpdev:
    <Deuce> Unicode isn't encoding.
    <Deuce> And petdefs.h is a mapping.
    :-)
    
  169. rswindell
    Tue Jul 09 2019 05:08 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.92 1.93 diff
    src/sbbs3/con_out.cpp 1.106 1.107 diff
    src/sbbs3/sbbs.h 1.525 1.526 diff

    Log Message:
    New @-code to output a UNICODE character. 3 different syntaxes:
    @U+<codepoint-in-hex>@ - automatic CP437 fallback char, if available
    @U+<codepoint-in-hex|cp437char-in-hex>, specify CP437 fallback char
    @U+<codepoint-in-hex!cp437char-in-hex>, specify CP437 fallback char
    (used if no automatic fallback mapping is available)
    
  170. rswindell
    Tue Jul 09 2019 05:02 pm PDT

    Modified Files:
    src/encode/unicode.c 1.3 1.4 diff
    src/encode/unicode.h 1.2 1.3 diff
    src/encode/unicode_defs.h 1.1 1.2 diff
    src/encode/utf8.c 1.7 1.8 diff
    src/encode/utf8.h 1.4 1.5 diff

    Log Message:
    enum-ification (use enum unicode_codepoint instead of uint32_t).
    Replaced unicode_is_zerowidth() with unicode_width(), in preparation for
    "fullwidth" char support.
    Added UNICODE_UNDEFINED definition (0x0000)
    (UNICODE_NULL is already defined, at least in MSVC).
    
  171. rswindell
    Tue Jul 09 2019 04:54 pm PDT

    Modified Files:
    src/encode/petdefs.h 1.3 1.4 diff

    Log Message:
    Don't need no stinking gen_defs.h here
    
  172. deuce
    Tue Jul 09 2019 04:35 pm PDT

    Modified Files:
    src/conio/cterm.c 1.248 1.249 diff

    Log Message:
    Fix sub-parameter parsing and extended color DECRPSS.
    
  173. deuce
    Tue Jul 09 2019 03:35 pm PDT

    Modified Files:
    src/syncterm/syncterm.c 1.220 1.221 diff

    Log Message:
    syncterm.c was getting stdbool from cterm.h
    
  174. deuce
    Tue Jul 09 2019 03:29 pm PDT

    Modified Files:
    src/conio/cterm.txt 1.53 1.54 diff

    Log Message:
    Only SGR is currently supported.
    
  175. deuce
    Tue Jul 09 2019 03:27 pm PDT

    Modified Files:
    src/conio/cterm.c 1.247 1.248 diff
    src/conio/cterm.txt 1.52 1.53 diff

    Log Message:
    Document DECRQSS
    
  176. deuce
    Tue Jul 09 2019 03:17 pm PDT

    Modified Files:
    src/conio/cterm.c 1.246 1.247 diff

    Log Message:
    Implement DECRQSS for SCR.
    
  177. deuce
    Tue Jul 09 2019 01:13 pm PDT

    Modified Files:
    src/conio/cterm.c 1.245 1.246 diff
    src/conio/cterm.h 1.56 1.57 diff
    src/conio/cterm.txt 1.51 1.52 diff

    Log Message:
    Initial work for DECRQSS/DECRPSS from VT-420.
    
  178. deuce
    Tue Jul 09 2019 01:05 pm PDT

    Modified Files:
    src/xpdev/gen_defs.h 1.78 1.79 diff

    Log Message:
    Fix FREE_AND_NULL() so it can be used wherever a function is... especially:
    
    if (fg)
    	FREE_AND_NULL(fd);
    else
    	FREE_AND_NULL(bg);
    
  179. rswindell
    Mon Jul 08 2019 10:38 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.105 1.106 diff
    src/sbbs3/inkey.cpp 1.60 1.61 diff
    src/sbbs3/main.cpp 1.752 1.753 diff
    src/sbbs3/newuser.cpp 1.82 1.83 diff
    src/sbbs3/sbbs.h 1.524 1.525 diff

    Log Message:
    petdefs.h was (silently) moved from src/sbbs3 to src/encode.
    Since not *everything* that #include's sbbs.h needs the PETSCII defs,
    remove it from sbbs.h and just #include petdefs.h where we need it.
    The catch-all header file is a problematic organizational design and we are
    moving away from that.
    
  180. rswindell
    Mon Jul 08 2019 10:34 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.104 1.105 diff

    Log Message:
    Use new header file: cp437defs.h
    
  181. rswindell
    Mon Jul 08 2019 10:27 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.157 1.158 diff

    Log Message:
    Use enum values from (new file) cp437defs.h
    
  182. rswindell
    Mon Jul 08 2019 10:18 pm PDT

    Modified Files:
    src/encode/cp437defs.h NONE 1.1 diff
    src/encode/unicode.c 1.2 1.3 diff
    src/encode/unicode_defs.h NONE 1.1 diff

    Added Files:
    	cp437defs.h unicode_defs.h 
    Log Message:
    Add and use new header files that define enum cp437_char and
    enum unicode_codepoint.
    I got tired of looking up and cross-referencing all these damn numbers.
    
  183. rswindell
    Mon Jul 08 2019 02:18 pm PDT

    Modified Files:
    exec/load/text.js 1.28 1.29 diff

    Log Message:
    Added Utf8TerminalQ
    
  184. rswindell
    Mon Jul 08 2019 02:18 pm PDT

    Modified Files:
    src/sbbs3/newuser.cpp 1.81 1.82 diff
    src/sbbs3/useredit.cpp 1.60 1.61 diff

    Log Message:
    Work on the whole DEL = backspace thing a bit, making it "less hostile".
    
  185. rswindell
    Mon Jul 08 2019 02:15 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.63 1.64 diff

    Log Message:
    Deuce said the new user registration process was "openly hostile", so:
    Disable the "Swap DEL/BBS key" question, by default (if the user sends
    DEL, do the swap).
    Beautify the backspace key prompt/report thing (add/remove blanks lines
    mostly).
    
  186. rswindell
    Mon Jul 08 2019 01:48 pm PDT

    Modified Files:
    ctrl/text.dat 1.104 1.105 diff

    Log Message:
    Deuce said the new user registration process was "openly hostile", so:
    Disable the "Swap DEL/BBS key" question, by default (if the user sends
    DEL, do the swap).
    Beautify the backspace key prompt/report thing (add/remove blanks lines
    mostly).
    
  187. rswindell
    Mon Jul 08 2019 12:16 am PDT

    Modified Files:
    src/smblib/smblib.c 1.199 1.200 diff

    Log Message:
    Increment SMBLIB version 2.61 (added new function: smb_msg_is_utf8).
    
  188. rswindell
    Mon Jul 08 2019 12:11 am PDT

    Modified Files:
    src/encode/utf8.c 1.6 1.7 diff

    Log Message:
    Remove the unicode_is_zerowidth() function, it was moved to unicode.c already
    
  189. rswindell
    Mon Jul 08 2019 12:08 am PDT

    Modified Files:
    src/sbbs3/js_global.c 1.383 1.384 diff
    src/sbbs3/putmsg.cpp 1.49 1.50 diff
    src/sbbs3/wordwrap.c 1.48 1.49 diff
    src/sbbs3/wordwrap.h 1.7 1.8 diff
    src/sbbs3/writemsg.cpp 1.156 1.157 diff

    Log Message:
    Pass a new "is_utf8" argument to wordwrap() rather than auto-detect UTF-8 text.
    This means the JS global word_wrap() method has a new optional Boolean arg
    as well.
    
  190. rswindell
    Sun Jul 07 2019 09:30 pm PDT

    Modified Files:
    src/encode/utf8.c 1.5 1.6 diff

    Log Message:
    Address GCC warnings about signedness and staticness.
    
  191. rswindell
    Sun Jul 07 2019 09:27 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.47 1.48 diff

    Log Message:
    wordwrap() now detects and supports UTF-8 encoded text.
    
  192. rswindell
    Sun Jul 07 2019 09:26 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.155 1.156 diff

    Log Message:
    When the created message is UTF-8, translate (from CP-437 to UTF-8) any
    user signature (.sig file) or editor created message tag (editor.tag file)
    contents before adding to message base.
    
  193. rswindell
    Sun Jul 07 2019 09:24 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.vcxproj 1.13 1.14 diff

    Log Message:
    utf8.c now requires unicode.c
    
  194. rswindell
    Sun Jul 07 2019 09:23 pm PDT

    Modified Files:
    src/encode/utf8.c 1.4 1.5 diff
    src/encode/utf8.h 1.3 1.4 diff

    Log Message:
    Add function cp437_to_utf8_str().
    
  195. rswindell
    Sun Jul 07 2019 09:22 pm PDT

    Modified Files:
    src/encode/unicode.c 1.1 1.2 diff

    Log Message:
    Translate DEL (0x7F) to Unicode when USE_UNICODE_FOR_TERM_CTRL_CHARS
    is defined (not defined by default).
    
  196. rswindell
    Sun Jul 07 2019 07:40 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.46 1.47 diff

    Log Message:
    0x1f is "Unit Separator" (US) in ASCII, not Delete (DEL).
    I'm assuming Deuce meant to type '\x7f' instead of '\x1f'.
    Replaced '\x1f' with the unambiguous DEL macro.
    
  197. rswindell
    Sun Jul 07 2019 07:34 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.45 1.46 diff

    Log Message:
    Remove the special treatment of Ctrl-A/Ctrl-A:
    1. it didn't work (in the #if 0 block) because of checking the same char twice
    2. Ctrl-A/Ctrl-A is no more special than Ctrl-A/Ctrl-B or Ctrl-A/Ctrl-Z
       (I think Deuce was thinking of Ctrl-A/A, but there are other printing
       Ctrl-A codes too, e.g. Ctrl-A/z).
    
  198. rswindell
    Sun Jul 07 2019 06:43 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.44 1.45 diff

    Log Message:
    Treat the "Conditional line-break" Ctrl-A code as the end of a word.
    
  199. rswindell
    Sun Jul 07 2019 05:59 pm PDT

    Modified Files:
    src/sbbs3/bulkmail.cpp 1.43 1.44 diff
    src/sbbs3/email.cpp 1.75 1.76 diff
    src/sbbs3/fido.cpp 1.72 1.73 diff
    src/sbbs3/netmail.cpp 1.59 1.60 diff
    src/sbbs3/postmsg.cpp 1.124 1.125 diff
    src/sbbs3/sbbs.h 1.523 1.524 diff
    src/sbbs3/writemsg.cpp 1.154 1.155 diff

    Log Message:
    Constification to appease the C++ gods:
    fidodefs.h:47:27: warning: ISO C++ forbids converting a string constant to
    'char*' [-Wwrite-strings]
     #define FIDO_CHARSET_UTF8 "CHRS: UTF-8 4" /* FTS-5003 */
                               ^
    writemsg.cpp:645:15: note: in expansion of macro 'FIDO_CHARSET_UTF8'
        *charset = FIDO_CHARSET_UTF8;
    
  200. rswindell
    Sun Jul 07 2019 05:52 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.522 1.523 diff
    src/sbbs3/writemsg.cpp 1.153 1.154 diff

    Log Message:
    Make the charset (e.g. UTF-8) detection/indication in msg headers more generic
    (e.g. applies to email and netmail now too).
    
  201. rswindell
    Sun Jul 07 2019 05:17 pm PDT

    Modified Files:
    src/encode/utf8.c 1.3 1.4 diff

    Log Message:
    Wow. First time I've seen replacing spaces with tabs fixes a GCC warning:
    utf8.c: In function 'utf8_getc':
    utf8.c:327:7: warning: this 'else' clause does not guard...
    [-Wmisleading-indentation]
         } else
           ^~~~
    utf8.c:329:2: note: ...this statement, but the latter is misleadingly indented
    as if it is guarded by the 'else'
      if(val != NULL) {
      ^~
    
  202. rswindell
    Sun Jul 07 2019 05:16 pm PDT

    Modified Files:
    src/encode/unicode.h 1.1 1.2 diff

    Log Message:
    Forgot 'extern' keyword... again.
    
  203. rswindell
    Sun Jul 07 2019 05:11 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.103 1.104 diff
    src/sbbs3/mailsrvr.c 1.704 1.705 diff
    src/sbbs3/postmsg.cpp 1.122 1.123 diff
    src/sbbs3/sbbs.h 1.521 1.522 diff
    src/sbbs3/sbbs.vcxproj 1.16 1.17 diff
    src/sbbs3/str_util.c 1.60 1.61 diff
    src/sbbs3/writemsg.cpp 1.152 1.153 diff

    Log Message:
    Moved cp437_unicode_tbl and unicode_is_zerowidth() to (new file) unicode.c.
    New function (derived from sbbs_t::utf8_to_cp437()): unicode_to_cp437()
    New utf8 functions: utf8_replace_chars(), utf8_str_is_valid().
    utf8_getc() enhancement: val arg may be NULL (for length/validation uses).
    
    Convert quoted UTF-8 message text to CP437 when terminal is not UTF8.
    
    Set Fido CHRS: UTF-8 header field when posted message is UTF-8.
    
  204. rswindell
    Sun Jul 07 2019 05:08 pm PDT

    Modified Files:
    src/sbbs3/fidodefs.h 1.21 1.22 diff

    Log Message:
    New string const define: FIDO_CHARSET_UTF8
    
  205. rswindell
    Sun Jul 07 2019 05:07 pm PDT

    Modified Files:
    src/encode/utf8.h 1.2 1.3 diff
    src/encode/NONE cp437_unicode_tbl.h 1.2 diff
    src/encode/NONE objects.mk 1.4 diff
    src/encode/1.5 utf8.c 1.2 diff
    src/encode/unicode.c NONE 1.1 diff
    src/encode/unicode.h NONE 1.1 diff

    Added Files:
    	unicode.c unicode.h 
    Removed Files:
    	cp437_unicode_tbl.c cp437_unicode_tbl.h 
    Log Message:
    Moved cp437_unicode_tbl and unicode_is_zerowidth() to (new file) unicode.c.
    New function (derived from sbbs_t::utf8_to_cp437()): unicode_to_cp437()
    New utf8 functions: utf8_replace_chars(), utf8_str_is_valid().
    utf8_getc() enhancement: val arg may be NULL (for length/validation uses).
    
  206. rswindell
    Sun Jul 07 2019 02:42 pm PDT

    Modified Files:
    src/sbbs3/str_util.c 1.59 1.60 diff

    Log Message:
    cleanup: Removed a few unused functions and bunch of #ifdef'd out code.
    
  207. rswindell
    Sun Jul 07 2019 02:18 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.62 1.63 diff
    src/sbbs3/useredit.cpp 1.59 1.60 diff

    Log Message:
    Add/use new Utf8TerminalQ question.
    
  208. rswindell
    Sun Jul 07 2019 02:17 pm PDT

    Modified Files:
    src/sbbs3/text.h 1.40 1.41 diff

    Log Message:
    Added Utf8TerminalQ (UTF-8 terminal question).
    
  209. rswindell
    Sun Jul 07 2019 02:17 pm PDT

    Modified Files:
    ctrl/text.dat 1.103 1.104 diff

    Log Message:
    Added "Does your terminal support UTF-8" question.
    This moved the MsgCarbonCopyList item down.
    
  210. rswindell
    Sun Jul 07 2019 02:07 pm PDT

    Modified Files:
    exec/mailauth.js 1.5 1.6 diff

    Log Message:
    Add exception for connections from 192.168.* addresses (for Mark Lewis).
    
  211. rswindell
    Sun Jul 07 2019 01:43 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgmsg.c 1.61 1.62 diff

    Log Message:
    Fix issue reported by Dumas Walker:
    When importing a FidoNet echolist (NA file), the FidoNet address was forced to
    the first configured FTN AKA for the system, not copied from the template sub.
    
  212. rswindell
    Sat Jul 06 2019 07:01 pm PDT

    Modified Files:
    src/sbbs3/main.cpp 1.751 1.752 diff
    src/sbbs3/sbbs.h 1.520 1.521 diff
    src/sbbs3/xtrn.cpp 1.249 1.250 diff

    Log Message:
    Store the current external() mode flags where passthru_input_thread() can see
    it and decide whether to write directly to the output ring buffer (EX_BIN) or
    use rputs() for charset translations.
    
  213. rswindell
    Sat Jul 06 2019 06:56 pm PDT

    Modified Files:
    src/sbbs3/chk_ar.cpp 1.29 1.30 diff

    Log Message:
    Use term_supports() for terminal capability ARS keyword checking as this does
    the "right thing" for auto-terminal detection mode.
    
  214. rswindell
    Sat Jul 06 2019 06:55 pm PDT

    Modified Files:
    src/sbbs3/useredit.cpp 1.58 1.59 diff

    Log Message:
    When UTF-8 is enabled, don't bother asking about Ex-ASCII (CP437) support
    (it's impleid).
    
  215. rswindell
    Sat Jul 06 2019 03:10 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.703 1.704 diff

    Log Message:
    Double the size of the tmp buffer in parse_mail_address() (from 128 to 256
    chars) so that massize MIME encoded header fields can be parsed successfull.
    :-|
    
  216. rswindell
    Sat Jul 06 2019 03:23 am PDT

    Modified Files:
    src/sbbs3/xtrn.cpp 1.248 1.249 diff

    Log Message:
    Pipe non-binary external program output through rputs() so we get charset
    translation "for free". Windows only for now.
    
  217. rswindell
    Sat Jul 06 2019 02:36 am PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.102 1.103 diff

    Log Message:
    sbbs_t::rputs(), exposed in JS as console.write(), now does charset translation
    for both US-ASCII (non-CP437) terminals and UTF-8 terminals.
    
  218. rswindell
    Sat Jul 06 2019 02:12 am PDT

    Modified Files:
    src/encode/cp437_unicode_tbl.c 1.1 1.2 diff

    Log Message:
    ESC (0x1b) is a terminal control char, don't translate to/from UTF-8 by default
    
  219. rswindell
    Sat Jul 06 2019 01:46 am PDT

    Modified Files:
    exec/logon.js 1.41 1.42 diff

    Log Message:
    Cache the avatar lib (in bbs.mods).
    Use the renamed ICE_COLOR -> USER_ICE_COLOR.
    
  220. rswindell
    Sat Jul 06 2019 01:39 am PDT

    Modified Files:
    exec/load/userdefs.js 1.2 1.3 diff

    Log Message:
    Added USER_UTF8 user 'settings' flag.
    And renamed ICE_COLOR to USER_ICE_COLOR, to be consistent.
    
  221. rswindell
    Sat Jul 06 2019 01:38 am PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.91 1.92 diff

    Log Message:
    Added new putmsg()/printfile() mode flag: P_UTF8
    Set automatically when printing a *.utf8 file or a file starting with ZWNBSP
    (BOM) UTF-8 sequence.
    When set, UTF-8 sequences will be converted to a compatible charset for the
    user's terminal.
    
  222. rswindell
    Sat Jul 06 2019 01:10 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.vcxproj 1.12 1.13 diff

    Log Message:
    Mail server needs utf8.c now.
    
  223. rswindell
    Sat Jul 06 2019 01:09 am PDT

    Modified Files:
    src/sbbs3/sbbs.vcxproj 1.15 1.16 diff

    Log Message:
    Finish-up UTF-8 <-> CP437 commit.
    
  224. rswindell
    Sat Jul 06 2019 01:09 am PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.101 1.102 diff

    Log Message:
    Correctly detect invalid UTF-8 sequences and log rather than print the 
    notice.
    
  225. rswindell
    Sat Jul 06 2019 01:04 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.702 1.703 diff

    Log Message:
    Fix GCC warning about signedness.
    
  226. rswindell
    Sat Jul 06 2019 01:03 am PDT

    Modified Files:
    src/encode/utf8.c 1.1 1.2 diff

    Log Message:
    Address GCC warning.
    
  227. rswindell
    Sat Jul 06 2019 01:02 am PDT

    Modified Files:
    src/encode/utf8.h 1.1 1.2 diff

    Log Message:
    Need stdlib.h for size_t definition.
    
  228. rswindell
    Sat Jul 06 2019 01:02 am PDT

    Modified Files:
    src/encode/cp437_unicode_tbl.h 1.1 1.2 diff

    Log Message:
    Forgot 'extern' -whoops.
    
  229. rswindell
    Sat Jul 06 2019 12:52 am PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.100 1.101 diff
    src/sbbs3/getmsg.cpp 1.88 1.89 diff
    src/sbbs3/prntfile.cpp 1.34 1.35 diff
    src/sbbs3/putmsg.cpp 1.48 1.49 diff
    src/sbbs3/sbbs.h 1.519 1.520 diff
    src/sbbs3/sbbsdefs.h 1.241 1.242 diff

    Log Message:
    UTF-8 -> CP437 translation support for files (with .utf8 extension or beginning
    with ZWNBSP/BOM UTF-8 sequence) and messages (with the "CHRS: UTF-8"
    FTN control paragra or MIME "charset=utf-8" parts).
    Not all UNICODE codepoints are supported (obviously).
    Tested with various files from ftp://columbia.edu/kermit/charsets/
    (e.g. test.utf8, utf8-boxes.txt)
    
  230. rswindell
    Sat Jul 06 2019 12:43 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.701 1.702 diff

    Log Message:
    Moved normalize_utf8() to src/enocde/utf8.c: utf8_normalize_str().
    
  231. rswindell
    Sat Jul 06 2019 12:41 am PDT

    Removed Files:
    src/encode/NONE cp437_utf8_tbl.h 1.2 diff

    Log Message:
    These files were replaced by cp437_unicode_tbl.*
    
  232. rswindell
    Sat Jul 06 2019 12:39 am PDT

    Modified Files:
    src/encode/cp437_unicode_tbl.c NONE 1.1 diff
    src/encode/cp437_unicode_tbl.h NONE 1.1 diff
    src/encode/objects.mk 1.3 1.4 diff
    src/encode/utf8.c NONE 1.1 diff
    src/encode/utf8.h NONE 1.1 diff

    Added Files:
    	cp437_unicode_tbl.c cp437_unicode_tbl.h utf8.c utf8.h 
    Log Message:
    Decided to use UNICODE code points rather than UTF-8 sequences for faster
    UNICODE -> CP437 conversions (no string/memory compares needed), so
    cp437_utf8_tbl.* is being replaced by cp437_unicode_tbl.*.
    
    Added utf8 module which includes:
    - utf8_normalize_str() - normalize US-ASCIIZ string, from mailsrvr.c
    - utf8_putc() - encoder / length calculator
    - utf8_getc() - decoder 
    
    The latter 2 were swiped from OpenSSL's a_utf8.c.
    
  233. rswindell
    Fri Jul 05 2019 09:27 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.198 1.199 diff
    src/smblib/smblib.h 1.94 1.95 diff

    Log Message:
    Created new SMBLIB function: smb_msg_is_utf8() which reutrns TRUE if the passed
    message body is UTF-8 encoded. This works for either messages received via FTN
    (with the "CHRS: UTF-8" control paragraph) or MIME-encoded messages (e.g.
    Internet e-mail).
    
    This is to be used by things to display messages. If the viewer (e.g. user's
    terminal) supports UTF-8, just send through as-is. If not, translation (e.g. to
    CP437) or filtering may be needed.
    
  234. rswindell
    Wed Jul 03 2019 08:14 pm PDT

    Modified Files:
    src/sbbs3/gtkchat/GNUmakefile 1.9 1.10 diff

    Log Message:
    Added new encode and hash lib dependencies.
    
  235. rswindell
    Wed Jul 03 2019 08:08 pm PDT

    Modified Files:
    src/sbbs3/gtkuserlist/GNUmakefile 1.7 1.8 diff

    Log Message:
    Added new HASH CFLAGS (include path).`
    
  236. rswindell
    Wed Jul 03 2019 08:08 pm PDT

    Modified Files:
    src/sbbs3/gtkmonitor/GNUmakefile 1.10 1.11 diff

    Log Message:
    Added new hash CFLAGS (include path).
    
  237. rswindell
    Wed Jul 03 2019 08:07 pm PDT

    Modified Files:
    src/sbbs3/gtkuseredit/GNUmakefile 1.12 1.13 diff

    Log Message:
    Added new hash lib CFLAGS (include path).
    
  238. deuce
    Wed Jul 03 2019 06:57 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.688 1.689 diff

    Log Message:
    Update to last commit... only allow fiddling with things if the initial
    headers haven't been sent yet.
    
  239. deuce
    Wed Jul 03 2019 06:53 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.687 1.688 diff

    Log Message:
    As with CGI, if a script specifies a Content-Length or Transfer-Encoding
    header, don't calculate either one and let the script shoot itself in the
    foot.
    
    Also, if a Location header is set, try an internal redirect rather than
    forcing the client to handle it.
    
    Now scripts can avoid chunked mode by specifying a correct content-length
    if the content-length is wrong though, Bad Things will happen.
    
  240. rswindell
    Wed Jul 03 2019 01:59 pm PDT

    Modified Files:
    install/GNUmakefile 1.74 1.75 diff

    Log Message:
    Removed SBL (sbl) - deprecated and replaced by sbbslist.js.
    
  241. rswindell
    Wed Jul 03 2019 01:27 pm PDT

    Modified Files:
    src/sbbs3/un_qwk.cpp 1.56 1.57 diff

    Log Message:
    Log output fix / enhancement:
    When importing QWK messages (e.g. from a QWKnet packet), the statistics logged:
      "Imported n QWK msgs in x seconds (y msgs/sec)"
    would logged for all but the last conference (sub-board) being imported into.
    Log the import statistics at the end of the import process if a sub-board is
    currently open and messages were imported.
    Also, log a message when importing QWK netmail.
    Thanks to Mark Lewis' eagle-eye, noticing the total messages imported didn't
    match all the stats log messages total.
    
  242. deuce
    Wed Jul 03 2019 10:43 am PDT

    Modified Files:
    exec/ircbots/ham/ham.js 1.37 1.38 diff

    Log Message:
    Add the DXPED command which scrapes https://www.ng3k.com/misc/adxo.html
    
  243. deuce
    Wed Jul 03 2019 10:21 am PDT

    Added Files:
    3rdp/build/cl-suites.patch NONE 1.1 diff

    Log Message:
    Actually add the patch referenced in the last commit.
    
  244. deuce
    Wed Jul 03 2019 10:20 am PDT

    Modified Files:
    3rdp/build/GNUmakefile 1.50 1.51 diff

    Log Message:
    Disable TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 which seems to be the cause
    of the bad MAC alerts.
    
    This *should* fix LetSynchCrypt.js as well as other issues.
    
  245. deuce
    Tue Jul 02 2019 10:36 pm PDT

    Modified Files:
    src/syncterm/GNUmakefile 1.76 1.77 diff

    Log Message:
    SyncTERM no longer requires smblib
    
  246. deuce
    Tue Jul 02 2019 10:36 pm PDT

    Modified Files:
    src/syncterm/targets.mk 1.7 1.8 diff

    Log Message:
    SyncTERM now depends on the encode and hash libs.
    
  247. deuce
    Tue Jul 02 2019 10:17 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.686 1.687 diff

    Log Message:
    send_headers() is called twice for chunked data.  The second time is required
    for additional headers and the final terminating CRLF.
    
  248. rswindell
    Tue Jul 02 2019 10:02 pm PDT

    Modified Files:
    src/sbbs3/syncview/GNUmakefile 1.2 1.3 diff

    Log Message:
    Link with hash lib instead of smblib now.
    
  249. rswindell
    Tue Jul 02 2019 12:48 pm PDT

    Modified Files:
    src/sbbs3/chat/chat.bpr 1.4 1.5 diff

    Log Message:
    Add required hash dir to include path.
    
  250. rswindell
    Mon Jul 01 2019 02:20 pm PDT

    Modified Files:
    src/sbbs3/ctrl/sbbsctrl.bpr 1.48 1.49 diff

    Log Message:
    Add needed src/hash include path.
    
  251. rswindell
    Sun Jun 30 2019 11:50 am PDT

    Added Files:
    src/hash/hash.props NONE 1.1 diff

    Log Message:
    MSVC property page for the hash lib.
    
  252. rswindell
    Sat Jun 29 2019 12:58 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.239 1.240 diff

    Log Message:
    Add missing HASH_LIB (libhash.a) dependency for libsbbs.so build.
    
  253. rswindell
    Sat Jun 29 2019 12:52 pm PDT

    Modified Files:
    CVSROOT/modules 1.52 1.53 diff

    Log Message:
    Add src/hash to src-sbbs3 alias.
    
  254. rswindell
    Fri Jun 28 2019 07:48 pm PDT

    Modified Files:
    src/sbbs3/sbbs3.sln 1.5 1.6 diff

    Log Message:
    Removed v4upgrade from workspace/solution.
    
  255. rswindell
    Fri Jun 28 2019 07:47 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.vcxproj 1.6 1.7 diff

    Log Message:
    Need hash props (md5.h was moved from src/smblib to src/hash)
    
  256. rswindell
    Fri Jun 28 2019 07:46 pm PDT

    Modified Files:
    src/smblib/smblib.vcxproj 1.6 1.7 diff

    Log Message:
    Moved base64.* and lzh.* to src/encode
    Moved crc* and md5.* to src/hash
    
  257. rswindell
    Fri Jun 28 2019 07:43 pm PDT

    Modified Files:
    src/sbbs3/addfiles.vcxproj 1.6 1.7 diff
    src/sbbs3/allusers.vcxproj 1.5 1.6 diff
    src/sbbs3/baja.vcxproj 1.5 1.6 diff
    src/sbbs3/chksmb.vcxproj 1.5 1.6 diff
    src/sbbs3/delfiles.vcxproj 1.5 1.6 diff
    src/sbbs3/dstsedit.vcxproj 1.5 1.6 diff
    src/sbbs3/dupefind.vcxproj 1.5 1.6 diff
    src/sbbs3/echocfg.vcxproj 3.0 3.1 diff
    src/sbbs3/filelist.vcxproj 1.5 1.6 diff
    src/sbbs3/fixsmb.vcxproj 1.5 1.6 diff
    src/sbbs3/ftpsrvr.vcxproj 1.9 1.10 diff
    src/sbbs3/jsexec.vcxproj 1.9 1.10 diff
    src/sbbs3/mailsrvr.vcxproj 1.11 1.12 diff
    src/sbbs3/makeuser.vcxproj 1.6 1.7 diff
    src/sbbs3/node.vcxproj 1.5 1.6 diff
    src/sbbs3/ntsvcs.vcxproj 1.7 1.8 diff
    src/sbbs3/qwknodes.vcxproj 1.5 1.6 diff
    src/sbbs3/sbbs.vcxproj 1.14 1.15 diff
    src/sbbs3/sbbscon.vcxproj 1.7 1.8 diff
    src/sbbs3/sbbsecho.vcxproj 3.1 3.2 diff
    src/sbbs3/services.vcxproj 1.10 1.11 diff
    src/sbbs3/sexyz.vcxproj 1.5 1.6 diff
    src/sbbs3/slog.vcxproj 1.5 1.6 diff
    src/sbbs3/smbactiv.vcxproj 1.5 1.6 diff
    src/sbbs3/smbutil.vcxproj 1.5 1.6 diff
    src/sbbs3/unbaja.vcxproj 1.5 1.6 diff
    src/sbbs3/websrvr.vcxproj 1.12 1.13 diff

    Log Message:
    Need hash props (md5.h was moved from src/smblib to src/hash)
    Removed v4upgrade from sbbs project.
    
  258. rswindell
    Fri Jun 28 2019 07:42 pm PDT

    Modified Files:
    src/conio/conio.vcxproj 1.6 1.7 diff

    Log Message:
    Need hash props (md5.h was moved from src/smblib to src/hash)
    
  259. rswindell
    Fri Jun 28 2019 06:33 pm PDT

    Modified Files:
    CVSROOT/modules 1.51 1.52 diff

    Log Message:
    syncterm is no longer dependent on smblib:
    crc* and md5.* was moved to src/hash
    base64.* was moved to src/encode
    
  260. rswindell
    Fri Jun 28 2019 06:31 pm PDT

    Modified Files:
    src/syncterm/GNUmakefile 1.75 1.76 diff
    src/syncterm/objects.mk 1.24 1.25 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  261. rswindell
    Fri Jun 28 2019 06:30 pm PDT

    Modified Files:
    src/smblib/GNUmakefile 1.7 1.8 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  262. rswindell
    Fri Jun 28 2019 06:30 pm PDT

    Modified Files:
    src/sbbs3/umonitor/GNUmakefile 1.32 1.33 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  263. rswindell
    Fri Jun 28 2019 06:30 pm PDT

    Modified Files:
    src/sbbs3/uedit/GNUmakefile 1.15 1.16 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  264. rswindell
    Fri Jun 28 2019 06:30 pm PDT

    Modified Files:
    src/sbbs3/scfg/GNUmakefile 1.48 1.49 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  265. rswindell
    Fri Jun 28 2019 06:30 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.238 1.239 diff

    Log Message:
    Moved crc*.* and md5.* to src/hash (new hash lib).
    You'll need to perform a clean rebuild.
    
  266. rswindell
    Fri Jun 28 2019 06:22 pm PDT

    Modified Files:
    src/smblib/objects.mk 1.5 1.6 diff

    Log Message:
    crc*.* and md5.* were moved to src/hash.
    
  267. rswindell
    Fri Jun 28 2019 06:14 pm PDT

    Added Files:
    src/hash/Common.make NONE 1.1 diff
    src/hash/GNUmakefile NONE 1.1 diff
    src/hash/objects.mk NONE 1.1 diff
    src/hash/targets.mk NONE 1.1 diff

    Log Message:
    Moved smblib/crc* and md5* here.
    
  268. rswindell
    Fri Jun 28 2019 06:07 pm PDT
    src/hash - Imported sources NONE NONE
    Update of /cvsroot/sbbs/src/hash
    In directory cvs:/home/rswindell/sbbs/src/hash
    
    Log Message:
    New Synchronet hash library
    
    Status:
    
    Vendor Tag:	rswindell
    Release Tags:	initial-import
    		
    N src/hash/README.md
    
    No conflicts created by this import
    
  269. rswindell
    Fri Jun 28 2019 05:44 pm PDT

    Modified Files:
    src/smblib/smbadd.c 1.41 1.42 diff
    src/smblib/smblib.h 1.93 1.94 diff
    src/smblib/smbtxt.c 1.47 1.48 diff

    Log Message:
    Don't need lzh.h outside of internal functions in smbadd.c and smbtxt.c
    
  270. rswindell
    Fri Jun 28 2019 05:44 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.116 3.117 diff

    Log Message:
    Don't need lzh.h here.
    
  271. rswindell
    Fri Jun 28 2019 05:43 pm PDT

    Modified Files:
    src/sbbs3/umonitor/GNUmakefile 1.31 1.32 diff

    Log Message:
    SMBLIB now depends on ENCODE lib.
    
  272. rswindell
    Fri Jun 28 2019 05:38 pm PDT

    Modified Files:
    src/sbbs3/uedit/GNUmakefile 1.14 1.15 diff

    Log Message:
    SMBLIB needs ENCODE lib now.
    
  273. rswindell
    Fri Jun 28 2019 05:27 pm PDT

    Modified Files:
    src/syncterm/GNUmakefile 1.74 1.75 diff
    src/syncterm/objects.mk 1.23 1.24 diff

    Log Message:
    base64.* was moved to src/encode
    
  274. rswindell
    Fri Jun 28 2019 05:24 pm PDT

    Modified Files:
    src/smblib/GNUmakefile 1.6 1.7 diff
    src/smblib/objects.mk 1.4 1.5 diff

    Log Message:
    base64.* and lzh.* have been moved to src/encode.
    You will need to perform a clean rebuild.
    
  275. rswindell
    Fri Jun 28 2019 05:24 pm PDT

    Modified Files:
    src/sbbs3/scfg/GNUmakefile 1.47 1.48 diff

    Log Message:
    base64.* and lzh.* have been moved to src/encode.
    You will need to perform a clean rebuild.
    
  276. rswindell
    Fri Jun 28 2019 05:24 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.237 1.238 diff

    Log Message:
    base64.* and lzh.* have been moved to src/encode.
    You will need to perform a clean rebuild.
    
  277. rswindell
    Fri Jun 28 2019 05:24 pm PDT

    Modified Files:
    src/encode/GNUmakefile 1.1.1.1 1.2 diff
    src/encode/objects.mk 1.2 1.3 diff

    Log Message:
    base64.* and lzh.* have been moved to src/encode.
    You will need to perform a clean rebuild.
    
  278. rswindell
    Fri Jun 28 2019 05:24 pm PDT

    Modified Files:
    src/conio/GNUmakefile 1.37 1.38 diff

    Log Message:
    base64.* and lzh.* have been moved to src/encode.
    You will need to perform a clean rebuild.
    
  279. rswindell
    Fri Jun 28 2019 05:06 pm PDT

    Modified Files:
    src/sbbs3/objects.mk 1.71 1.72 diff

    Log Message:
    uucode.* and yence.* were moved to src/encode.
    You will need to perform a clean rebuild.
    
  280. rswindell
    Fri Jun 28 2019 05:05 pm PDT

    Modified Files:
    src/encode/objects.mk 1.1.1.1 1.2 diff

    Log Message:
    uucode.* and yence.* were moved here from src/sbbs3.
    You'll need to perform a clean build.
    
  281. rswindell
    Fri Jun 28 2019 04:59 pm PDT

    Modified Files:
    src/sbbs3/useredit.cpp 1.57 1.58 diff

    Log Message:
    Initial UTF-8 support.
    
  282. rswindell
    Fri Jun 28 2019 04:46 pm PDT

    Modified Files:
    src/sbbs3/sbbs.vcxproj 1.12 1.13 diff

    Log Message:
    Add the necessary peices of the (new) encode lib to support CP437->UTF-8
    translation.
    
  283. rswindell
    Fri Jun 28 2019 04:42 pm PDT

    Modified Files:
    src/encode/cp437_utf8_tbl.h 1.1.1.1 1.2 diff

    Log Message:
    How many typos can *you* make on a single line?
    
  284. rswindell
    Fri Jun 28 2019 04:07 pm PDT

    Modified Files:
    CVSROOT/modules 1.50 1.51 diff

    Log Message:
    Added new src/encode dir to src-sbbs3 module alias.
    
  285. rswindell
    Fri Jun 28 2019 04:05 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.700 1.701 diff

    Log Message:
    Translate UTF-8 "horizontal ellipsis" to 3 ASCII '.'s when normalizing
    MIME-encoded headers.
    
  286. rswindell
    Fri Jun 28 2019 04:04 pm PDT

    Modified Files:
    src/sbbs3/sbbsdefs.h 1.240 1.241 diff
    src/sbbs3/con_out.cpp 1.99 1.100 diff
    src/sbbs3/answer.cpp 1.101 1.102 diff
    src/sbbs3/GNUmakefile 1.236 1.237 diff

    Log Message:
    Initial support for UTF-8 terminals. At this time, just performs charset
    translation from CP437 -> UTF-8 and only when using high-level text output
    functions - so the output from native/DOS doors and scripts that use low-level
    output methods won't be translated.
    UTF-8 is auto-detected (only) at this time during answer (before login) by
    sending a ZWNBSP and checking (via ANSI) if the cursor position moved - an
    idea "borrowed" from Ozz Nixon (aka SqZ).
    
    This commit requires the new "encode" library (src/encode), so you may need
    to perform a cvs checkout to get that module!
    
  287. rswindell
    Fri Jun 28 2019 03:49 pm PDT

    Modified Files:
    src/build/Common.gmake 1.108 1.109 diff

    Log Message:
    Support new "encode" library.
    Prepare for upcoming "hash" library.
    
  288. rswindell
    Fri Jun 28 2019 03:46 pm PDT
    src/encode - Imported sources NONE NONE
    Update of /cvsroot/sbbs/src/encode
    In directory cvs:/home/rswindell/sbbs/src/encode
    
    Log Message:
    New Synchronet encode / decode library
    
    Status:
    
    Vendor Tag:	rswindell
    Release Tags:	initial-import
    		
    N src/encode/cp437_utf8_tbl.h
    N src/encode/encode.props
    N src/encode/targets.mk
    N src/encode/GNUmakefile
    N src/encode/objects.mk
    N src/encode/Common.make
    N src/encode/README.md
    N src/encode/cp437_utf8_tbl.c
    
    No conflicts created by this import
    
  289. rswindell
    Sun Jun 23 2019 01:12 pm PDT

    Modified Files:
    src/sbbs3/logfile.cpp 1.65 1.66 diff

    Log Message:
    Use ctime_r() for the error.log timestamp string rather thean timestr() -
    this insures:
    1. the timestamp always includes the seconds
    2. the tiemstamp is always in 24-hour format (no am/pm indication)
    
    For systems that are configured (in SCFG) for "Military" (24 hour) time format,
    the error.log timestamps should appear the same as before.
    
  290. rswindell
    Sat Jun 22 2019 03:53 pm PDT

    Modified Files:
    src/sbbs3/echocfg.c 3.44 3.45 diff

    Log Message:
    Cosmetic improvments:
    Use "save/restore" uifc.list() mode for "Save Changes" prompt - no need to
    leave the prompt visible while saving changes.
    Display pop status while saving changes to config file.
    
  291. rswindell
    Sat Jun 22 2019 03:51 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.c 1.102 1.103 diff

    Log Message:
    Cosmetic fixes:
    Copy/paste errors from 2002 (changes -> uifc.changes in the help text).
    Use "save/restore" uifc.list() mode, rather than "remain active" for
    "Save Changes" prompt - no need to leave the prompt visible while saving
    changes.
    
  292. rswindell
    Sat Jun 22 2019 03:27 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.115 3.116 diff

    Log Message:
    Bug-fix: Support [node:<addr>@<domain>] sections in AreaFix changes.
    
    When processing area manager netmail messages, SBBSecho can modify
    (add/change) keys in the [node:*] section of the sbbsecho.ini file. Although
    SBBSecho would read node sections that had a domain (e.g. 5D address) just fine
    when processing area manager changes and writing those changes back to the
    sbbsecho.ini, only 4D addresses (no "@domain") were used in the section naming.
    This could result in duplicate node sections being created in the sbbsecho.ini
    file (one with a "@domain", one without) and then "bad things" could happen
    (e.g. BinkP authentication failures, packet authentication failures, etc.).
    
    Now, when SBBSecho writes linked-node setting to the sbbsecho.ini, it first
    checks for the full 5D address of the node and if that section exists, modify
    it, otherwise fall-through to the 3D/4D address of the node for the sectoin
    naming.
    
  293. rswindell
    Sat Jun 22 2019 12:50 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.699 1.700 diff

    Log Message:
    Fix warnings from GCC.
    
  294. rswindell
    Sat Jun 22 2019 12:19 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.698 1.699 diff

    Log Message:
    MIME-encoded headers (header field values with RFC 2047 "encoded-words") are
    getting kind of crazy common now and being employed even when totally
    unnecessary (e.g. encoding strings that contain just plain ASCII):
    - normalize message header fields, when possible
    - normalize UTF-8 encoded characters, when possible (e.g. special punctuation
      chars)
    
    This allows text filters (e.g. subject.can, name.can) to work on MIME-encoded
    header fields and notifications about received e-mails are legible to humans.
    
    Encoded-words that contain actual non-ASCII/CP437 chars (e.g. foreign symbols,
    emojis) are left as encoded-words to be dealt with by whatever displays the
    message header.
    
    Special handling of folded normalized field values was necessary because
    "White space between adjacent 'encoded-word's is not displayed." (per RFC 2047)
    
  295. rswindell
    Fri Jun 21 2019 07:06 pm PDT

    Modified Files:
    xtrn/hamtest/hamtest.js 1.2 1.3 diff

    Log Message:
    Address error:
    line 34: Error: can't open \sbbs\exec\undefined.js: No such file or directory
    
  296. deuce
    Fri Jun 21 2019 12:53 pm PDT

    Modified Files:
    src/sbbs3/js_socket.c 1.228 1.229 diff
    src/sbbs3/websrvr.c 1.685 1.686 diff

    Log Message:
    Fix handling of responses with no content.
    
    This introduces a new request field send_content which indicates if the
    content should be sent.  This covers various cases like HEAD responses
    where there's an entity, but no content is sent as well as 204, 304, and 1xx
    responses where there is not even an entity.
    
    writebuf() will now enforce this, so there's no need for various checks
    throughout the code to see if data should be sent or not.
    
    Also, we now only set sent_headers after the headers are sent.
    
  297. deuce
    Fri Jun 21 2019 11:54 am PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.684 1.685 diff

    Log Message:
    Some RFC nits.
    
    1) Send Content-Length even if we will be closing the connection.
    2) Send the highest HTTP version in the status line that has the same major
    version.
    
  298. rswindell
    Thu Jun 20 2019 03:43 pm PDT

    Modified Files:
    3rdp/win32.release/cryptlib/include/cryptlib.h 1.3 1.4 diff

    Log Message:
    Cryptlib v3.4.5 (the first release, from June-3's cl345.zip with a sha256sum
    2a98aeb09190301ba782ba2f79837332ae277ac93851d3066e63fecf6abe6f2a) as patched
    by build/cl-*.patch and built with MSVC2015 for Win32-release.
    
    I had to remove eap*.c from cryptlib32.vcxproj file to get it to build, but no
    other changes.
    
  299. rswindell
    Thu Jun 20 2019 03:43 pm PDT

    Modified Files:
    3rdp/win32.release/cryptlib/bin/cl32.dll 1.7 1.8 diff
    3rdp/win32.release/cryptlib/bin/cl32.lib 1.6 1.7 diff

    Log Message:
    Cryptlib v3.4.5 (the first release, from June-3's cl345.zip with a sha256sum
    2a98aeb09190301ba782ba2f79837332ae277ac93851d3066e63fecf6abe6f2a) as patched
    by build/cl-*.patch and built with MSVC2015 for Win32-release.
    
    I had to remove eap*.c from cryptlib32.vcxproj file to get it to build, but no
    other changes.
    
  300. rswindell
    Thu Jun 20 2019 01:48 pm PDT

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.492 1.493 diff
    src/sbbs3/mailsrvr.c 1.697 1.698 diff
    src/sbbs3/main.cpp 1.750 1.751 diff
    src/sbbs3/services.c 1.329 1.330 diff
    src/sbbs3/websrvr.c 1.683 1.684 diff

    Log Message:
    Implement mark lewis' enhancement to always log the client IP address after the
    resolved host-name on "Hostname:" log lines.
    
  301. deuce
    Thu Jun 20 2019 09:55 am PDT

    Modified Files:
    3rdp/build/cl-no-odbc.patch 1.1 1.2 diff

    Log Message:
    Put notice on stderr, not stdout.
    
  302. deuce
    Thu Jun 20 2019 09:51 am PDT

    Modified Files:
    3rdp/build/GNUmakefile 1.49 1.50 diff
    3rdp/build/cl-no-odbc.patch NONE 1.1 diff

    Added Files:
    	cl-no-odbc.patch 
    Log Message:
    Just because my system has ODBC installed doesn't mean I want Cryptlib to use
    it.
    
  303. deuce
    Thu Jun 20 2019 09:47 am PDT

    Modified Files:
    3rdp/build/GNUmakefile 1.48 1.49 diff
    3rdp/build/cl-gcc-non-const-time-val.patch NONE 1.1 diff

    Added Files:
    	cl-gcc-non-const-time-val.patch 
    Log Message:
    Attempt to fix error wkitty42 reported with gcc
    
  304. rswindell
    Sun Jun 16 2019 10:37 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.h 3.30 3.31 diff
    src/sbbs3/echocfg.c 3.43 3.44 diff
    src/sbbs3/rechocfg.c 3.37 3.38 diff

    Log Message:
    Decided to be more consistent with the node option naming, renamed [BinkP]:
    CryptSupport (default true), to:
    PlainTextOnly (default false).
    
  305. rswindell
    Sun Jun 16 2019 10:36 pm PDT

    Modified Files:
    exec/load/fidocfg.js 1.42 1.43 diff

    Log Message:
    Decided to be more consistent with the node option naming, renamed [BinkP]:
    CryptSupport (default true), to:
    PlainTextOnly (default false).
    
  306. rswindell
    Sun Jun 16 2019 10:22 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.h 3.29 3.30 diff
    src/sbbs3/echocfg.c 3.42 3.43 diff
    src/sbbs3/rechocfg.c 3.36 3.37 diff

    Log Message:
    Added global option to disable BinkP encryption - at Mark Lewis' request.
    With this option, it is now possible to support CRAM-MD5 authenication while
    not allowing encrypted sessions (inbound or outbound) - not sure why.
    
  307. rswindell
    Sun Jun 16 2019 10:21 pm PDT

    Modified Files:
    exec/load/binkp.js 1.119 1.120 diff
    exec/load/fidocfg.js 1.41 1.42 diff

    Log Message:
    Added global option to disable BinkP encryption - at Mark Lewis' request.
    With this option, it is now possible to support CRAM-MD5 authenication while
    not allowing encrypted sessions (inbound or outbound) - not sure why.
    
  308. rswindell
    Sun Jun 16 2019 10:21 pm PDT

    Modified Files:
    exec/binkit.js 2.26 2.27 diff

    Log Message:
    Added global option to disable BinkP encryption - at Mark Lewis' request.
    With this option, it is now possible to support CRAM-MD5 authenication while
    not allowing encrypted sessions (inbound or outbound) - not sure why.
    
  309. rswindell
    Fri Jun 14 2019 08:18 pm PDT

    Modified Files:
    exec/chat_sec.js 1.13 1.14 diff

    Log Message:
    Use [chat] as the preferred modopts.ini section name.
    Support [chat_sec] for backwards compatibility (anyone actually using this
    feature?).
    
  310. rswindell
    Fri Jun 14 2019 08:07 pm PDT

    Modified Files:
    exec/load/sbbsimsg_lib.js 1.5 1.6 diff

    Log Message:
    Don't call alert() - (load-libraries shouldn't be doing that), instead return
    a string on error which can be logged/displayed/ignored as desired by the
    caller.
    Catch JSON.parse() errors gracefully and return an error (string).
    
  311. rswindell
    Fri Jun 14 2019 08:05 pm PDT

    Modified Files:
    exec/sbbsimsg.js 1.39 1.40 diff

    Log Message:
    Don't try to iterate through argv if argc is undefined (e.g. invoked via
    load({}, "sbbsimsg.js") with no args).
    the sbbsimsg_lib.parse_active_users() will now return a string on failure, so
    display appropriately.
    
  312. rswindell
    Fri Jun 14 2019 08:02 pm PDT

    Modified Files:
    exec/chat_sec.js 1.12 1.13 diff

    Log Message:
    Bug-fixes:
    1. The 'irc' mod options value was toggling the 'I' command key, not 'R'
       ('R' is for IRC, not 'I')
    2. Use load({}, "sbbsimsg.js") so that the chat_sec options aren't blown-away
       by sbbsimsg.js
    
    Enhancement:
    - added support for 'imsg' option in [chat_sec] section of modopts.ini, if set
      to false, disables the inter-bbs instant message command key.
    
  313. rswindell
    Fri Jun 14 2019 06:28 pm PDT

    Modified Files:
    exec/showmsghdr.js 1.5 1.6 diff

    Log Message:
    Use the cached avatar_lib.js.
    
  314. rswindell
    Fri Jun 14 2019 06:24 pm PDT

    Modified Files:
    exec/load/avatar_lib.js 1.19 1.20 diff

    Log Message:
    Since we're now caching the entire avatar_lib (in bbs.mods), no need to store
    the avatar (data) cache separately in bbs.mods.
    
  315. rswindell
    Fri Jun 14 2019 06:23 pm PDT

    Modified Files:
    exec/showavatar.js 1.1 1.2 diff
    exec/showmsgavatar.js 1.8 1.9 diff
    exec/showfileavatar.js 1.4 1.5 diff

    Log Message:
    Cache the entire avatar_lib.js (in bbs.mods), not just the avatar data -
    performance optimization.
    
  316. rswindell
    Fri Jun 14 2019 02:08 pm PDT

    Modified Files:
    exec/load/binkp.js 1.118 1.119 diff

    Log Message:
    Since Revision 1.36 of load/fidocfg.js (Jan-8-2019), a blank/unconfigured
    BinkP session password ("SessionPwd") in sbbsecho.ini would cause BinkIT/BinkP
    to behave as though a session password was specified. The reason for the change
    to fidocfg.js (specifying a default value for "SessionPwd" as a blank string)
    was to force the return value to a string so that numeric passwords were not
    returned as numbers but rather strings.
    The binkit.js and binkp.js code assumed that a blank password would be
    'undefined' and not a blank string.
    This commit changes binkit.js and binkp.js to treat all of the following
    session password values as "no password" with respect to BinkP:
    - false
    - undefined
    - blank string ('')
    
  317. rswindell
    Fri Jun 14 2019 02:08 pm PDT

    Modified Files:
    exec/binkit.js 2.25 2.26 diff

    Log Message:
    Since Revision 1.36 of load/fidocfg.js (Jan-8-2019), a blank/unconfigured
    BinkP session password ("SessionPwd") in sbbsecho.ini would cause BinkIT/BinkP
    to behave as though a session password was specified. The reason for the change
    to fidocfg.js (specifying a default value for "SessionPwd" as a blank string)
    was to force the return value to a string so that numeric passwords were not
    returned as numbers but rather strings.
    The binkit.js and binkp.js code assumed that a blank password would be
    'undefined' and not a blank string.
    This commit changes binkit.js and binkp.js to treat all of the following
    session password values as "no password" with respect to BinkP:
    - false
    - undefined
    - blank string ('')
    
  318. rswindell
    Tue Jun 11 2019 12:27 am PDT

    Modified Files:
    exec/showmsgavatar.js 1.7 1.8 diff

    Log Message:
    Fixed bug when viewing email msgs from users without an avatar:
    !JavaScript .../showmsgavatar.js line 27: TypeError: msg_area.sub[sub] is
    undefined
    
  319. rswindell
    Fri Jun 07 2019 12:46 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.682 1.683 diff

    Log Message:
    Fix observed segfault (NULL pointer dereference) in parse_headers
    (strtok can return NULL).
    
  320. deuce
    Thu Jun 06 2019 12:15 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.235 1.236 diff

    Log Message:
    Use -rpath with clang.
    
  321. nightfox
    Wed Jun 05 2019 08:50 pm PDT

    Modified Files:
    exec/SlyEdit.js 1.62 1.63 diff
    exec/SlyEdit_DCTStuff.js 1.20 1.21 diff
    exec/SlyEdit_IceStuff.js 1.28 1.29 diff
    exec/SlyEdit_Misc.js 1.50 1.51 diff

    Log Message:
    Fixed a minor screen refresh bug: In Ice mode, the help line at the bottom
    wasn't erasing all of the new ESC menu options when exiting the ESC menu.
    Updated the version to 1.66.1.
    
  322. deuce
    Wed Jun 05 2019 11:36 am PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.234 1.235 diff

    Log Message:
    It seems at least some versions of g++ don't support -rpath.
    
  323. deuce
    Tue Jun 04 2019 01:23 pm PDT

    Modified Files:
    exec/ircbots/ham/ham.js 1.36 1.37 diff

    Log Message:
    Show the furthest and the most recent reports from pskreporter.  Also add
    a pskreporter cache to avoid throttling.
    
  324. deuce
    Tue Jun 04 2019 12:26 pm PDT

    Modified Files:
    exec/load/maidenhead.js 1.1 1.2 diff

    Log Message:
    Remove debug code.
    
  325. deuce
    Tue Jun 04 2019 12:24 pm PDT

    Added Files:
    exec/load/maidenhead.js NONE 1.1 diff

    Log Message:
    Maidenhead object which can calculate the distance and bearing to another
    Maidenhead object.
    
  326. deuce
    Tue Jun 04 2019 06:41 am PDT

    Added Files:
    3rdp/build/cl-mingw-vcver.patch NONE 1.1 diff

    Log Message:
    Add missing patch
    
  327. rswindell
    Tue Jun 04 2019 02:02 am PDT

    Modified Files:
    exec/showmsgavatar.js 1.6 1.7 diff
    exec/avatars.js 1.37 1.38 diff

    Log Message:
    Change name of key from "sub_default" to "msg_default" (it's the default
    avatar for all message areas not otherwise given a default value).
    
  328. rswindell
    Mon Jun 03 2019 10:03 pm PDT

    Modified Files:
    exec/avatars.js 1.36 1.37 diff

    Log Message:
    Add a "sub_default" command-line option so a default avatar can be easily
    imported, e.g.
    jsexec avatars sub_default=/sbbs/text/avatars/silhouettes.bin
    
  329. rswindell
    Mon Jun 03 2019 10:02 pm PDT

    Modified Files:
    exec/showmsgavatar.js 1.5 1.6 diff

    Log Message:
    Add support for a "default sub-board" avatar (sub_default) in the [avatars]
    section of modopts.ini (the value is base64-encoded avatar data). If
    the <sub_code>_default or <group_name>_default keys exist, those defaults will
    be used as appropriate (both <sub_code> and <group_name> are lower-case).
    The avatar options ([avatars] section) of modopts.ini is cached (in bbs.mods)
    for performance reasons, so changes require a log-off/on to see.
    
  330. deuce
    Mon Jun 03 2019 06:04 pm PDT

    Modified Files:
    exec/ircbots/ham/ham.js 1.35 1.36 diff

    Log Message:
    Fiddle with the spot format.
    
  331. deuce
    Mon Jun 03 2019 05:52 pm PDT

    Modified Files:
    exec/ircbots/ham/ham.js 1.34 1.35 diff

    Log Message:
    Add "SPOTS" command.
    
  332. deuce
    Mon Jun 03 2019 04:23 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.233 1.234 diff

    Log Message:
    Fix for libsbbs.so: Undefined symbol "crc32tbl"
    
    Weird.
    
  333. deuce
    Mon Jun 03 2019 04:10 pm PDT

    Modified Files:
    src/sbbs3/GNUmakefile 1.232 1.233 diff

    Log Message:
    Use -rpath in addition to LD_RUN_PATH.  It seems some linkers only support
    one or the other.
    
  334. deuce
    Mon Jun 03 2019 04:04 pm PDT

    Modified Files:
    src/syncterm/st_crypt.h 1.15 1.16 diff

    Log Message:
    Work around stupid cryptlib version for 345.
    
  335. deuce
    Mon Jun 03 2019 04:02 pm PDT

    Modified Files:
    3rdp/build/cl-endian.patch 1.4 1.5 diff

    Log Message:
    Update endian patch for mingw32.
    
  336. deuce
    Mon Jun 03 2019 04:00 pm PDT

    Modified Files:
    src/uifc/GNUmakefile 1.13 1.14 diff

    Log Message:
    Don't define WRAPPER_IMPORTS unconditionally for uifc via gmake.
    
  337. deuce
    Mon Jun 03 2019 03:43 pm PDT

    Modified Files:
    3rdp/build/cl-win32-build-fix.patch NONE 1.1 diff
    3rdp/build/GNUmakefile 1.47 1.48 diff

    Added Files:
    	cl-win32-build-fix.patch 
    Log Message:
    Fix mingw32 build of cryptlib (for SyncTERM)
    
  338. deuce
    Mon Jun 03 2019 03:21 pm PDT

    Modified Files:
    3rdp/build/GNUmakefile 1.46 1.47 diff
    3rdp/build/cl-cryptodev.patch NONE 1.1 diff
    3rdp/build/cl-posix-me-gently.patch NONE 1.1 diff
    3rdp/build/cl-tpm-linux.patch NONE 1.1 diff
    3rdp/build/cl-zlib.patch NONE 1.1 diff
    3rdp/build/cl-endian.patch 1.3 1.4 diff
    3rdp/build/cl-PAM-noprompts.patch 1.2 1.3 diff
    3rdp/build/terminal-params.patch 1.4 1.5 diff
    3rdp/build/Dynamic-linked-static-lib.patch 1.6 1.7 diff
    3rdp/build/SSL-fix.patch 1.2 1.3 diff
    3rdp/build/cl-algorithms.patch 1.2 1.3 diff

    Added Files:
    	cl-cryptodev.patch cl-posix-me-gently.patch cl-tpm-linux.patch 
    	cl-zlib.patch 
    Log Message:
    Update Cryptlib to 3.4.5
    
    This versions has a lot more assumptions that the whole world runs Linux
    in it, and just a small number of perviously reported bugs actually fixed.
    
    I think the patch count has actually gone up rather than down for this.
    
    As it turns out, the thing I was trying to fix (https://pskreporter.info not
    working with HTTP.js) is not fixed in the new version and was just yet
    another abitrary undocumented limit being hit.
    
    This *may* break anything crypto-releated, though it seems to work on FreeBSD
    fine.  Win32 build not tested since Digital Man provides precompiled libs
    for that, and mingw32 builds not yet tested.
    
    Please report any *NEW* crypto-related issues after getting this to work.
    
    Oh yeah, it also looks like the cryptlib dependency for Synchronet got
    broken somewhere, so the easiest way to rebuild with the new cryptlib is
    to build SyncTERM first.  I'll try to get this one fixed soonish.
    
  339. deuce
    Mon Jun 03 2019 03:21 pm PDT

    Modified Files:
    3rdp/dist/cryptlib.zip 1.5 1.6 diff

    Log Message:
    Update Cryptlib to 3.4.5
    
    This versions has a lot more assumptions that the whole world runs Linux
    in it, and just a small number of perviously reported bugs actually fixed.
    
    I think the patch count has actually gone up rather than down for this.
    
    As it turns out, the thing I was trying to fix (https://pskreporter.info not
    working with HTTP.js) is not fixed in the new version and was just yet
    another abitrary undocumented limit being hit.
    
    This *may* break anything crypto-releated, though it seems to work on FreeBSD
    fine.  Win32 build not tested since Digital Man provides precompiled libs
    for that, and mingw32 builds not yet tested.
    
    Please report any *NEW* crypto-related issues after getting this to work.
    
    Oh yeah, it also looks like the cryptlib dependency for Synchronet got
    broken somewhere, so the easiest way to rebuild with the new cryptlib is
    to build SyncTERM first.  I'll try to get this one fixed soonish.
    
  340. deuce
    Mon Jun 03 2019 03:10 pm PDT

    Added Files:
    3rdp/build/cl-bigger-maxattribute.patch NONE 1.1 diff

    Log Message:
    This patch fixes the "Server provided a broken/invalid certificate"
    messages (at least up to 4k attributes).
    
    I'll tie it into the build with the incoming Cryptlib update, but I want
    it to be a separate commit since it fixes a long-standing issue while the
    rest of the update commit will just unbreak new broken bits.
    
  341. deuce
    Mon Jun 03 2019 01:55 pm PDT

    Modified Files:
    src/sbbs3/main.cpp 1.749 1.750 diff

    Log Message:
    New cryptlib uses 345 not 3450.
    *sigh*
    
  342. rswindell
    Sat Jun 01 2019 09:55 pm PDT

    Modified Files:
    web/root/qwk.ssjs 1.1 1.2 diff

    Log Message:
    Added comments (docs on use with wget) and a REVISION notice when run.
    
  343. rswindell
    Fri May 31 2019 11:00 pm PDT

    Added Files:
    web/root/qwk.ssjs NONE 1.1 diff

    Log Message:
    New script for supporting QWK/REP packet transfers via HTTP using the
    Synchronet Web Server (e.g. using exec/qnet-http.js for the client).
    
  344. rswindell
    Fri May 31 2019 10:44 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.238 1.239 diff

    Log Message:
    Restore the long-standing (forever) behavior of ulist/uifc.list where
    Backspace (the "Delete" key on a MacBookPro keyboard) is treated the same
    as ESC (exit).
    Make the help status bar more clear in Mac OS X builds that the '+' key
    may be used in place of the INSert key to add itesm and that fn-DELete key
    sequence is used to delete items (or the '-' key, though that isn't stated).
    
  345. rswindell
    Fri May 31 2019 05:31 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.237 1.238 diff

    Log Message:
    In uifc.list(), stopping treat the Backspace key as ESC (exit) and instead
    treat the same Delete Char. This is for systems were there is no "Delete Char"
    key (e.g. Mac) or where the Delete and Backspace keys send the reverse key
    codes. On a Mac, the Backspace key is actually labeled "Delete", so treat
    the key-code sent as "Delete item", consistent with the status bar/help
    indicator.
    
  346. rswindell
    Fri May 31 2019 05:22 pm PDT

    Modified Files:
    src/conio/sdl_con.c 1.262 1.263 diff

    Log Message:
    The key normally used for "Backspace" (on a PC keyboard) is labeled "Delete"
    on a Mac keyboard and although that key sends the ASCII DEL char (127), we're
    converting it to backspace (^H) here. But if the user actually wants the
    "delete character" key functionality, there is no dedicated key, so treat
    Ctrl-Delete (on a Mac) as Delete (not backspace).
    
  347. deuce
    Fri May 31 2019 12:16 pm PDT

    Modified Files:
    src/syncterm/st_crypt.c 1.26 1.27 diff

    Log Message:
    Remove exit() hack.  Now that we have random_exit.patch in cryptlib, we
    don't need it.
    
    This should fix OS X (and other systems) doing weird things when they
    exit SyncTERM.  We were forcibly preventing atexit() handlers from running,
    and pretty much everything installed some of them.
    
  348. deuce
    Fri May 31 2019 11:19 am PDT

    Modified Files:
    src/xpdev/SDLMain.m 1.4 1.5 diff

    Log Message:
    Hack 'er up to handle headless launches.
    
  349. deuce
    Fri May 31 2019 11:19 am PDT

    Modified Files:
    src/conio/SDLMain.m 1.8 1.9 diff

    Log Message:
    Hack 'er up to handle headless launches.
    
  350. deuce
    Fri May 31 2019 10:08 am PDT

    Modified Files:
    src/xpdev/GNUmakefile 1.60 1.61 diff

    Log Message:
    Add CFLAGS to MT build of SDLMain.m
    
  351. deuce
    Fri May 31 2019 09:47 am PDT

    Modified Files:
    3rdp/build/cl-macosx-minver.patch NONE 1.1 diff
    3rdp/build/GNUmakefile 1.45 1.46 diff

    Added Files:
    	cl-macosx-minver.patch 
    Log Message:
    Add minver to Cryptlib build as well.
    
  352. deuce
    Fri May 31 2019 08:39 am PDT

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.491 1.492 diff

    Log Message:
    Revert previous change.  NetLogger has the bug, not Synchronet.
    
  353. deuce
    Thu May 30 2019 08:31 pm PDT

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.490 1.491 diff

    Log Message:
    Fix bug where Synchronet FTP Server %s-%s Ready message did not have a
    reply code.  Maybe this used to be on the same line as the BBS name?
    
  354. deuce
    Thu May 30 2019 05:24 pm PDT

    Modified Files:
    src/conio/curs_cio.c 1.42 1.43 diff

    Log Message:
    Have all curses functions resume before any curses calls are made.
    
    Make resume only perform any actions if curses is suspended.
    This may fix the Syncterm OS X raw on exit in -iC mode.
    (But may not either)
    
  355. rswindell
    Wed May 29 2019 11:48 pm PDT

    Modified Files:
    src/build/Common.gmake 1.107 1.108 diff

    Log Message:
    Target Mac OS X 10.5 or later.
    
  356. deuce
    Wed May 29 2019 11:24 pm PDT

    Modified Files:
    src/syncterm/syncterm.c 1.219 1.220 diff

    Log Message:
    parse_url() does the giant array on the stack too.
    
  357. deuce
    Wed May 29 2019 11:20 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.217 1.218 diff

    Log Message:
    Heh, we don't need THAT much memory.
    
  358. deuce
    Wed May 29 2019 11:09 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.216 1.217 diff

    Log Message:
    And make sure the malloc succeeds.
    
  359. deuce
    Wed May 29 2019 11:09 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.215 1.216 diff

    Log Message:
    We don't need BBSLIST_ENTRIES
    
  360. deuce
    Wed May 29 2019 11:08 pm PDT

    Modified Files:
    src/syncterm/bbslist.c 1.214 1.215 diff

    Log Message:
    Dynamically allocate the BBS list.
    
    May fix OS X stack clobbering issue.
    
  361. rswindell
    Wed May 29 2019 10:50 pm PDT

    Modified Files:
    src/xpdev/xp_dl.c 1.6 1.7 diff

    Log Message:
    Fix sprintf() usage warning caught/reported by clang on mac os X
    
  362. deuce
    Wed May 29 2019 08:16 pm PDT

    Modified Files:
    src/sbbs3/jsdebug.c 1.7 1.8 diff

    Log Message:
    Add single-step (s) and finish (f) commands.
    
  363. nightfox
    Wed May 29 2019 02:31 pm PDT

    Modified Files:
    exec/SlyEdit_Misc.js 1.49 1.50 diff

    Log Message:
    Fixed spelling: Supplimental -> Supplemental
    
  364. nightfox
    Wed May 29 2019 02:30 pm PDT

    Added Files:
    ctrl/dictionary_en-AU-supplemental.txt NONE 1.1 diff
    ctrl/dictionary_en-CA-supplemental.txt NONE 1.1 diff
    ctrl/dictionary_en-GB-supplemental.txt NONE 1.1 diff
    ctrl/dictionary_en-US-supplemental.txt NONE 1.1 diff
    ctrl/NONE dictionary_en-CA-supplimental.txt 1.1 diff
    ctrl/NONE dictionary_en-GB-supplimental.txt 1.1 diff
    ctrl/NONE dictionary_en-US-supplimental.txt 1.1 diff

    Removed Files:
    	dictionary_en-AU-supplimental.txt 
    	dictionary_en-CA-supplimental.txt 
    	dictionary_en-GB-supplimental.txt 
    	dictionary_en-US-supplimental.txt 
    Log Message:
    Fixed spelling: supplimental -> supplemental.  My CVS client says the server
    does not support rename, so I had to remove and re-add with the fixed spelling.
    
  365. rswindell
    Wed May 29 2019 02:04 pm PDT
    src/uifc uifc.c 1.31 NONE
    Update of /cvsroot/sbbs/src/uifc
    In directory cvs:/tmp/cvs-serv29237
    
    Removed Files:
    	uifc.c 
    Log Message:
    This file was ported to ciolib and modern platforms (uifc32.c) 16 years ago and
    never maintened or used since. So... remove from CVS.
    
  366. rswindell
    Wed May 29 2019 01:21 pm PDT

    Modified Files:
    src/uifc/uifc32.c 1.236 1.237 diff

    Log Message:
    Fix time display bug: 12:00 is 12pm, not 12am. Reported by Va7aqd
    
  367. nightfox
    Wed May 29 2019 12:53 pm PDT

    Added Files:
    ctrl/dictionary_en-AU-supplimental.txt NONE 1.1 diff
    ctrl/dictionary_en-CA-supplimental.txt NONE 1.1 diff
    ctrl/dictionary_en-GB-supplimental.txt NONE 1.1 diff
    ctrl/dictionary_en-US-supplimental.txt NONE 1.1 diff
    ctrl/dictionary_en.txt NONE 1.1 diff
    ctrl/NONE dictionary_en-CA.txt 1.1 diff
    ctrl/NONE dictionary_en-GB.txt 1.1 diff
    ctrl/NONE dictionary_en-US.txt 1.1 diff

    Removed Files:
    	dictionary_en-AU.txt dictionary_en-CA.txt dictionary_en-GB.txt 
    	dictionary_en-US.txt 
    Log Message:
    Replacing the whole separate localized English dictionaries with a general
    English dictionary and smaller supplimental ones containing localized spellings
    of words used in those regions
    
  368. nightfox
    Wed May 29 2019 12:50 pm PDT

    Modified Files:
    exec/SlyEdit.js 1.61 1.62 diff
    exec/SlyEdit_Misc.js 1.48 1.49 diff

    Log Message:
    Updated parsing for dictionary filenames (to appear in the list for user
    preferences): Dictionary filenames can now include "-supplimental" after the
    localization (such as dictionary_en-US-supplimental.txt" if it's a smaller
    dictionary only with localized spellings of words.  Those dictionaries will
    include "(Supplimental)" at the end of their name in the user preferences.
    Dictionary filenames without a localization after the language (such as
    dictionary_en.txt) will include "(General)" at the end of their name in the
    user preferences.  Dictionaries with just the localization without
    "-supplimental" will just have the language name and localization as the
    language name in the user preferences (i.e., dictionary_en-US.txt will be
    "English (US)".
    
  369. deuce
    Wed May 29 2019 09:44 am PDT

    Modified Files:
    src/sbbs3/jsexec.c 1.203 1.204 diff

    Log Message:
    Support terminating the script from the debugger before it actually runs.
    
  370. deuce
    Wed May 29 2019 09:44 am PDT

    Modified Files:
    src/sbbs3/jsdebug.c 1.6 1.7 diff

    Log Message:
    Add "quit" and "q" commands to terminate the current script.
    
  371. deuce
    Wed May 29 2019 09:28 am PDT

    Modified Files:
    src/sbbs3/jsdebug.c 1.5 1.6 diff

    Log Message:
    Fix iterator in killscript_handler()
    
  372. rswindell
    Wed May 29 2019 03:03 am PDT

    Modified Files:
    exec/binkit.js 2.24 2.25 diff

    Log Message:
    Ignore per-node "BinkpAllowPlainText=false" on incoming connections when
    global "PlainAuthOnly=true"
    
  373. rswindell
    Tue May 28 2019 06:09 pm PDT

    Modified Files:
    exec/load/binkp.js 1.117 1.118 diff

    Log Message:
    Better error message (consistent with binkit.js):
    "CRAM-MD5 authentication required" instead of "MD5 required"
    
  374. rswindell
    Tue May 28 2019 06:08 pm PDT

    Modified Files:
    exec/binkit.js 2.23 2.24 diff

    Log Message:
    When plain_auth_only is set (globally or per node), insure that require_md5
    and require_crypt are set to false as well.
    
  375. rswindell
    Tue May 28 2019 01:49 am PDT

    Modified Files:
    src/sbbs3/exec.cpp 1.109 1.110 diff

    Log Message:
    Optimize: don't search for file extension repeatedly.
    
  376. rswindell
    Tue May 28 2019 01:47 am PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.114 3.115 diff

    Log Message:
    Don't warn about free disk space for directories that don't exist.
    Log free disk space errors to sbbsecho.log (as well as print to stdout).
    
  377. rswindell
    Sun May 26 2019 07:42 pm PDT

    Modified Files:
    src/sbbs3/echocfg.c 3.41 3.42 diff
    src/sbbs3/rechocfg.c 3.35 3.36 diff
    src/sbbs3/sbbsecho.h 3.28 3.29 diff

    Log Message:
    Support the new global BinkP PlainAuthOnly (CRAM-MD5 auth disable) option.
    
  378. rswindell
    Sun May 26 2019 07:11 pm PDT

    Modified Files:
    exec/binkit.js 2.22 2.23 diff

    Log Message:
    Added a BinkP-global setting (in the [binkp] section): "PlainAuthOnly"
    (defaults to false). If you want to disable all CRAM-MD5 based authentication
    for both inbound and outbound BinkIT/BinkP connections/sessions (e.g. for
    trouble-shooting password mismatch issues), then set this to true.
    
  379. rswindell
    Sun May 26 2019 07:10 pm PDT

    Modified Files:
    exec/load/fidocfg.js 1.40 1.41 diff

    Log Message:
    Added a BinkP-global setting (in the [binkp] section): "PlainAuthOnly"
    (defaults to false). If you want to disable all CRAM-MD5 based authentication
    for both inbound and outbound BinkIT/BinkP connections/sessions (e.g. for
    trouble-shooting password mismatch issues), then set this to true.
    
  380. rswindell
    Sun May 26 2019 07:08 pm PDT

    Modified Files:
    exec/load/binkp.js 1.116 1.117 diff

    Log Message:
    If plain_auth_only (PlainAuthOnly) is true, then we won't be encrypting.
    
  381. rswindell
    Sun May 26 2019 07:05 pm PDT

    Modified Files:
    exec/qnet-http.js 1.2 1.3 diff

    Log Message:
    Log a message upon invocation with the script revision and options, e.g.
    "QNET-HTTP 1.3 invoked with options: ..."
    
  382. nightfox
    Sat May 25 2019 01:30 pm PDT

    Modified Files:
    exec/SlyEdit_Misc.js 1.47 1.48 diff

    Log Message:
    Made a couple updates to the function that loads a dictionary file. It seems at
    least slightly faster now.
    
  383. nightfox
    Sat May 25 2019 12:54 pm PDT
    exec sort_file.js 1.2 NONE
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv11435
    
    Removed Files:
    	sort_file.js 
    Log Message:
    sort_file.js is probably of limited use.
    
  384. rswindell
    Sat May 25 2019 02:59 am PDT

    Modified Files:
    exec/load/binkp.js 1.115 1.116 diff

    Log Message:
    When connecting a linked-node configured for PlainAuthOnly:
    - don't advertise support for encryption (by sending an "OPT CRYPT" message)
    - don't complain (send "Encryption requires CRAM-MD5" M_ERR) if the remote
      doesn't support CRAM-MD5
    
  385. rswindell
    Sat May 25 2019 01:39 am PDT

    Modified Files:
    exec/binkit.js 2.21 2.22 diff

    Log Message:
    Send a better error message to the remote (it's not actually a password
    mismatch, it's an authentication scheme mismatch).
    
  386. rswindell
    Sat May 25 2019 01:32 am PDT

    Modified Files:
    exec/binkit.js 2.20 2.21 diff

    Log Message:
    inbound_auth_cb(): report a "Password mismatch" error (over BinkP) if
    one of the configured linked-nodes matching the remote address(es) is set for
    CRAM-MD5 passwords only and a plain-text password was provided by the remote.
    Previously, the function would log a warning:
    "CRAM-MD5 required (and not provided) by <addr>" but succeeed (the actual
    password value was not check) and it woudl flag the session as "non-secure"
    (sending M_OK non-secure), looking like this on the remote side:
      Authentication successful: non-secure
    and any received files would go into the configured non-secure inbound.
    This may explain why some sysops sometimes get unexplained files in their
    non-secure inbound (looking for "non-secure" in the logs should confirm).
    Now, you should still see (on the answering side) the log message:
    "CRAM-MD5 required (and not provided) ...", but it'll also send a M_ERR
    Passowrd mismatch error to the remote, thus ending the session.
    
  387. rswindell
    Fri May 24 2019 11:38 pm PDT

    Modified Files:
    exec/load/fidocfg.js 1.39 1.40 diff

    Log Message:
    Make the BinkpAllowPlainText default value match the wiki which also matches
    rechocfg.c (true). No effect for any sbbsecho.ini which already has this
    key with a value (and they all should).
    
  388. rswindell
    Fri May 24 2019 11:36 pm PDT

    Modified Files:
    exec/binkit.js 2.19 2.20 diff

    Log Message:
    Rev 1.19 (jan-20-2016) included a "Fix the nocrypt check", but appeared to
    do so incorrectly. This is a correct fix (check the nocrypt property, not
    just that the linked node object is != false).
    
  389. nightfox
    Fri May 24 2019 11:25 pm PDT

    Modified Files:
    docs/SlyEdit_ReadMe.txt 1.49 1.50 diff

    Log Message:
    Fixed a typo
    
  390. nightfox
    Fri May 24 2019 11:22 pm PDT

    Added Files:
    ctrl/dictionary_en-AU.txt NONE 1.1 diff
    ctrl/dictionary_en-CA.txt NONE 1.1 diff
    ctrl/dictionary_en-GB.txt NONE 1.1 diff
    ctrl/dictionary_en-US.txt NONE 1.1 diff

    Removed Files:
    	dictionary_english.txt 
    Log Message:
    Replaced dictionary_english.txt with some English dictionaries for various
    regions with standard language tags.
    
  391. nightfox
    Fri May 24 2019 11:21 pm PDT

    Modified Files:
    docs/SlyEdit_ReadMe.txt 1.48 1.49 diff

    Log Message:
    Added some notes about standard language tags.  Updated version number to 1.65.
    
  392. nightfox
    Fri May 24 2019 11:20 pm PDT

    Modified Files:
    exec/SlyEdit.js 1.60 1.61 diff
    exec/SlyEdit_Misc.js 1.46 1.47 diff

    Log Message:
    Added support for some common standard language tags and parsing them from the
    dictionary filenames.  Updated the version to 1.65.
    
  393. nightfox
    Fri May 24 2019 10:40 pm PDT

    Modified Files:
    exec/sort_file.js 1.1 1.2 diff

    Log Message:
    Don't allow duplicates in the sorted output
    
  394. nightfox
    Fri May 24 2019 09:03 pm PDT

    Added Files:
    exec/sort_file.js NONE 1.1 diff

    Log Message:
    This is a script that can sort a file.  This script is meant to be run with
    jsexec (on the OS command prompt, not via the Synchronet terminal server).  One
    purpose of this script is to sort dictionary files when they're created or when
    words are added to existing dictionary files.
    
    The command-line syntax of this script is:
    sexec sort_file.js <inputFilename> <outputFilename> [convertToLowercase]
    Where <inputFilename> is the name of the input file and <outputFilename> is the
    name of the output file (the sorted input).  convertToLowercase is optional,
    and specifies whether or not to convert all entries in the file to lower-case
    (which is required for case-insensitive word matching via SlyEdit, for
    instance).  The values for convertToLowercase can be true or false (really,
    anything besides true will be interpreted as false).
    
  395. nightfox
    Fri May 24 2019 08:45 pm PDT

    Modified Files:
    docs/SlyEdit_ReadMe.txt 1.47 1.48 diff

    Log Message:
    Added some notes about dictionary files
    
  396. nightfox
    Fri May 24 2019 05:36 pm PDT

    Modified Files:
    docs/SlyEdit_ReadMe.txt 1.46 1.47 diff

    Log Message:
    Updated for SlyEdit 1.64, with information about the spell checker feature and
    dictionaries.
    
  397. nightfox
    Fri May 24 2019 05:36 pm PDT

    Modified Files:
    ctrl/SlyEdit.cfg 1.15 1.16 diff

    Log Message:
    Added the dictionaryFilenames option for SlyEdit 1.64.  dictionaryFilenames
    allows the sysop to specify dictionary filenames (used for spell check): This
    is a comma-separated list of filenames.  The dictionary filenames are in the
    format dictionary_<language>.txt, where <language> is the language name.  You
    can also just specify the language name if you want.  Leave blank to use all
    dictionary files that exist on the system.  The dictionary files are located in
    either sbbs/mods, sbbs/ctrl, or the same directory as SlyEdit.js.
    
  398. nightfox
    Fri May 24 2019 05:34 pm PDT

    Modified Files:
    exec/SlyEdit.js 1.59 1.60 diff
    exec/SlyEdit_DCTStuff.js 1.19 1.20 diff
    exec/SlyEdit_IceStuff.js 1.27 1.28 diff
    exec/SlyEdit_Misc.js 1.45 1.46 diff

    Log Message:
    SlyEdit version 1.64: Added a spell check feature.  The spell checker can be
    started with the Ctrl-R hotkey or by selecting the spell checker option on the
    ESC menu.  The sysop can configure multiple dictionaries, if desired, using the
    new dictionaryFilenames option in SlyEdit.cfg.  For dictionaryFilenames ,
    SlyEdit accepts a comma-separated list of dictionary filenames, which can be in
    sbbs/mods, sbbs/ctrl, or same directory as SlyEdit.js.  The 'filenames' in the
    list can be the actual filenames, or simply the language names if desired.
    Also, users can toggle which dictionaries to enable for spell check in their
    user settings (accessible with Ctrl-U), and also toggle whether or not to
    prompt for spell check upon saving a message.
    SlyEdit also now uses "require" when available, instead of "load", to load .js
    libraries.
    Also, note that SlyEdit now requires dd_lightbar_menu.js in exec/load - Be sure
    to get the latest one from CVS.  dd_lightbar_menu.js is used for displaying the
    list of dictionaries via the user options.
    
  399. nightfox
    Fri May 24 2019 05:29 pm PDT

    Added Files:
    ctrl/dictionary_english.txt NONE 1.1 diff

    Log Message:
    This is an English dictionary for spell checking purposes - basically just a
    list of words, in text format.  Note that this must be sorted in order for
    spell checking to work.  SlyEdit's new spell checker feature, for instance,
    uses a binary search with an array of words loaded from a dictionary to check
    the validity of words.
    SlyEdit's new spell check feature assumes dictionary filenames are
    dictionary_<language>.txt, where <language> is the language name.
    
  400. deuce
    Thu May 23 2019 09:53 pm PDT

    Modified Files:
    exec/imapservice.js 1.67 1.68 diff

    Log Message:
    Stop using unused netattr bit definitions.
    
  401. rswindell
    Thu May 23 2019 07:05 pm PDT

    Modified Files:
    exec/binkit.js 2.18 2.19 diff

    Log Message:
    Resolve reported error (new, with outbox support):
    binkit.js line 297: TypeError: bp.cb_data.binkitcfg.node[addr] is undefined
    
  402. rswindell
    Thu May 23 2019 07:02 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.696 1.697 diff

    Log Message:
    Don't read the spamblock.cfg unnecessarily:
    We don't store (findable) hostnames in the file, so don't search for them.
    Don't search file if the host is listed in the spamblock_exempt.cfg file.
    If you have a really large spamblock.cfg file, this could result in the
    unnecessary reading of potential many megabytes of data for each inbound
    SMTP connection. We might want to read this file even less frequently and
    store the list in a searchable str_list_t or something.
    
  403. deuce
    Thu May 23 2019 01:21 pm PDT

    Modified Files:
    exec/load/callsign.js 1.21 1.22 diff

    Log Message:
    FCC no longer supports non-TLS HTTP requests.
    
  404. rswindell
    Wed May 22 2019 09:43 pm PDT

    Modified Files:
    exec/fseditor.js 1.94 1.95 diff

    Log Message:
    When editing an existing file/message, use the current terminal screen width
    for the word_wrap line length (not the default, 79 cols).
    
  405. rswindell
    Wed May 22 2019 09:37 pm PDT

    Modified Files:
    exec/qnet-http.js 1.1 1.2 diff

    Log Message:
    Issue a QWK-packet-received confirmation request after a successful download
    of a QWK packet (sending the received-file-length as a post parameter):
     http[s]://host/qwk.ssjs?received=<length>
    If the file size matches the user's QWK packet size, the local (server-side)
    QWK packet is deleted.
    Passing an empty string to HTTPRequest.Post() since it requires a data
    paramater. :-( Using Post rather than Get 'cause the chicken hath spake:
    "<echicken> I think POST is probably technically the more correct way to do it"
    
  406. rswindell
    Wed May 22 2019 08:34 pm PDT

    Added Files:
    exec/qnet-http.js NONE 1.1 diff

    Log Message:
    QWKnet client using HTTP[S] rather than FTP (experimental at this time).
    Open questions/issues:
    - How can we confirm the REP file was received successfully - before deleting
      our local file
    - We're reading entire REP and QWK packet contents into memory (JS variables)
      there's likely a better way
    
  407. deuce
    Wed May 22 2019 07:01 pm PDT

    Modified Files:
    src/syncterm/syncterm.desktop 1.2 1.3 diff

    Log Message:
    Icon should not have an extension if it's not an absolute path.
    "Application" is not a registered category.
    Add TerminalEmulator and Dialup categories.
    
  408. rswindell
    Wed May 22 2019 05:40 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.681 1.682 diff

    Log Message:
    Increase MAX_POST_LEN from 1MB to 4MB (QWK REP packets can be > 1MB) -
      I think that > 1MB post data is supported, but the http_request.post_data
      property won't be created if the length > MAX_POST_LEN. Perhaps would just
      store the post data in a file (uh, it already is?) and expose the filename to
      JS scripts? It'd be a lot cleaner than storing the data in a file and then
      reading (or mem-mapping) the file and then copying the contents into a JS
      property.
    
    Allow the JS http_request.post_data property to contain NULs.
    
    open_post_file() will now open the post file (and return the FILE*) even if
      session->req.post_data is NULL, it just won't try to write to the file if the
      post_data is NULL.
    
    mem-map the large post data files using XPMAP_WRITE (read/write) rather than
      XPMAP_READ (read-only) - without this change, this line in read_post_data()
      would cause an exception:
        session->req.post_data[session->req.post_len]=0;
      Now, we seem to have the potential of an off-by-one here (if the length
      mem-mapped is not post_len + 1), but that isn't happening. <shrug>
      
    Fixed a couple of FILE pointer/descriptor leaks if post_to_file() failed.
    
    Changed name of post data file to SBBS_POST.*.*.data (it's not necessarily
    html).
    
    So now, uploads > 1MB work, but questions remain:
    - wouldn't PUT be a more appropriate method (than POST) for file uploads?
    - how can we support post_data > MAX_POST_LEN (now 4MB) in JS?
    
  409. rswindell
    Wed May 22 2019 03:39 pm PDT

    Modified Files:
    src/sbbs3/websrvr.c 1.680 1.681 diff

    Log Message:
    open_post_file(): if post_data is NULL, just log an error and return NULL
    (don't pass a NULL pointer to fwrite() which can assert or crash).
    
  410. rswindell
    Wed May 22 2019 01:11 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.h 1.28 1.29 diff
    src/sbbs3/scfg/scfgmsg.c 1.60 1.61 diff
    src/sbbs3/scfg/scfgsub.c 1.52 1.53 diff

    Log Message:
    When cutting and pasting a single sub-board, restore the QWKnet hub
    sub-board (if there was one) which pointed to the cut-sub.
    
  411. rswindell
    Wed May 22 2019 02:53 am PDT

    Modified Files:
    src/sbbs3/scfg/scfgsub.c 1.51 1.52 diff
    src/sbbs3/scfg/scfgmsg.c 1.59 1.60 diff
    src/sbbs3/scfg/scfg.h 1.27 1.28 diff

    Log Message:
    Fix issue reported by Va7aqd: when sub-boards were cut to the clipboard
    (or deleted) or a group of sub-boards was deleted, and any of the deleted/cut
    sub-boards belonged to a configured QWKnet hub, that QWKnet sub-board would
    end-up pointing to the next sub-board in the configuration (possibly in another
    message group, possibly not part of the QWKnet in question). Now, if a
    QWKnet sub is deleted/cut, remove it (correctly) from any QWKnet hubs using
    a common (new) function: remove_sub(). The bug was: the remaining sub-board
    pointers were moved *before* the remove-sub pointer was compared against the
    list of QWKnet hub subs (and NULLed), so while the effort *was* made to address
    this problem, it didn't actually work in practice. Thanks for the bug report.
    
  412. rswindell
    Mon May 20 2019 11:56 am PDT

    Modified Files:
    exec/load/822header.js 1.12 1.13 diff

    Log Message:
    Include a CVS revision keyword. No functional change.
    
  413. rswindell
    Mon May 20 2019 01:18 am PDT

    Modified Files:
    exec/fseditor.js 1.93 1.94 diff

    Log Message:
    FSEditor will now (by default) save messages/files with long-line paragraphs
    rather than word-wrapped lines, leaving it to the things that display messages
    to perform any line-wrapping as needed.
    
    If you want/need the old behavior, set soft_cr=true in the [fseditor] section
    of your ctrl/modopts.ini file (new feature/section).
    
  414. rswindell
    Sun May 19 2019 11:59 pm PDT

    Modified Files:
    src/sbbs3/js_global.c 1.382 1.383 diff

    Log Message:
    Fix require(): if load() fails with exception, don't report a "symbol
    not defined" exception, just report the load() exception - whatever it was
    (e.g. could not open load-file).
    
  415. rswindell
    Thu May 16 2019 12:40 pm PDT

    Added Files:
    exec/automsg.js NONE 1.1 diff

    Log Message:
    A module which mimics the current hard-coded auto-message behavior of sbbs:
    sbbs_t::automsg()
    
  416. rswindell
    Thu May 16 2019 02:22 am PDT

    Modified Files:
    exec/binkit.js 2.17 2.18 diff

    Log Message:
    Experimental outbox support (e.g. for inter-bbs game files):
    - 'outbox' value from echocfg/sbbsecho.ini is used for additional outbound
       files
    - normal BSO directories are still searched for outbound files (too)
    - 'inbox' support not added (yet)
    - no node locking (.bsy file checking/creation) implemented
    - requires updated load/fidocfg.js
    
  417. rswindell
    Thu May 16 2019 02:18 am PDT

    Modified Files:
    exec/load/fidocfg.js 1.38 1.39 diff

    Log Message:
    Read 'inbox' and 'outbox' [node:*] values from sbbsecho.ini and add to
    BinkITCfg.node[] objects.
    
  418. mcmlxxix
    Wed May 15 2019 01:22 pm PDT

    Modified Files:
    exec/ircbots/weather/weather_commands.js 1.32 1.33 diff
    exec/ircbots/weather/weather_functions.js 1.12 1.13 diff

    Log Message:
    added forecast command
    
  419. mcmlxxix
    Wed May 15 2019 09:46 am PDT

    Modified Files:
    exec/ircbots/weather/weather_commands.js 1.31 1.32 diff
    exec/ircbots/weather/weather_functions.js 1.11 1.12 diff

    Log Message:
    check api result for success (200) response. use var instead of const for
    openweathermap instance (to accomodate ircbot "reload" command)
    
  420. mcmlxxix
    Wed May 15 2019 09:45 am PDT

    Modified Files:
    exec/load/ircbot_functions.js 1.31 1.32 diff

    Log Message:
    merge echicken's ctrl_a_to_mirc function (overwrote his change)
    
  421. mcmlxxix
    Wed May 15 2019 09:40 am PDT

    Modified Files:
    exec/load/openweathermap.js 1.9 1.10 diff

    Log Message:
    throw exception on no api key found in modopts.ini
    
  422. mcmlxxix
    Wed May 15 2019 09:05 am PDT

    Modified Files:
    exec/load/openweathermap.js 1.8 1.9 diff

    Log Message:
    don't crash if there is no openweathermap section in modopts.ini
    
  423. mcmlxxix
    Wed May 15 2019 09:01 am PDT

    Modified Files:
    ctrl/ircbot.ini 1.6 1.7 diff

    Log Message:
    added max_paragraph_length, max_paragraphs settings
    
  424. mcmlxxix
    Wed May 15 2019 07:53 am PDT

    Modified Files:
    exec/ircbots/admin/admin_commands.js 1.17 1.18 diff

    Log Message:
    remove character limit on eval command return value
    
  425. mcmlxxix
    Wed May 15 2019 07:46 am PDT

    Modified Files:
    exec/load/ircbot_functions.js 1.30 1.31 diff

    Log Message:
    added max_paragraph_length and max_paragraphs settings. split client output at
    max_paragraph_length and allow sending in chunks x max_paragraphs.
    
  426. mcmlxxix
    Wed May 15 2019 07:46 am PDT

    Modified Files:
    exec/ircbot.js 1.34 1.35 diff

    Log Message:
    added max_paragraph_length and max_paragraphs settings. split client output at
    max_paragraph_length and allow sending in chunks x max_paragraphs.
    
  427. deuce
    Mon May 13 2019 03:44 pm PDT

    Modified Files:
    exec/ircbots/dis/dis.js 1.11 1.12 diff

    Log Message:
    <mcmlxxix> did you just drastically improve this thing or are these not mangled
    <Deuce> Yes.
    <mcmlxxix> :|
    <mcmlxxix> you took that as an or statement
    <mcmlxxix> i hate you so much sometimes
    
  428. nightfox
    Sun May 12 2019 08:12 pm PDT

    Modified Files:
    exec/load/dd_lightbar_menu.js 1.4 1.5 diff

    Log Message:
    Renamed the menuTitle property to topBorderText.  Added a bottomBorderText
    property, for text to be displayed in the bottom border.
    
  429. nightfox
    Sun May 12 2019 07:32 pm PDT

    Modified Files:
    xtrn/DDMsgReader/DDMsgReader.js 1.128 1.129 diff
    xtrn/DDMsgReader/readme.txt 1.24 1.25 diff
    xtrn/DDMsgReader/revision_history.txt 1.11 1.12 diff

    Log Message:
    Version 1.22: If the message score is 0, with upvotes and total_votes both 0,
    then don't show the score when using the default header ANSI.  This is what was
    intended, but the 0 score started showing up in more recent builds of
    Synchronet.
    
  430. nightfox
    Sat May 11 2019 02:22 pm PDT

    Modified Files:
    exec/load/dd_lightbar_menu.js 1.3 1.4 diff

    Log Message:
    Fixed a bug that somehow crept in: Tthe check mark for selections in
    multi-select mode was being displayed in the wrong place when using a menu
    border.
    
  431. nightfox
    Sat May 11 2019 02:06 pm PDT

    Modified Files:
    exec/load/dd_lightbar_menu.js 1.2 1.3 diff

    Log Message:
    Now supports a title in the top border line: Added a new property for the
    DDLightbarMenu object, menuTitle, which is a string that specifies the title
    text to write in the top border (if the border is being displayed).  It
    defaults to an empty string (for no title).  Synchronet attribute codes are
    supported.
    
  432. rswindell
    Sat May 11 2019 01:23 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.695 1.696 diff

    Log Message:
    Fix most likely cause of new crashes seen in mailsrvr, calls to
    smb_freemsgmem():
    bounce() is using a strange method of copying a message header in memory
    (not using smb_copymsgmem) and when it frees the message, ends up with a
    double-free of the 2 new smbmsg_t members (not header fields): text_subtype
    and text_charset.
    
  433. rswindell
    Thu May 09 2019 03:23 pm PDT

    Modified Files:
    exec/testbuild.js 1.31 1.32 diff

    Log Message:
    Include useredit.exe in build.
    Send failure emails with high-prioirty.
    Use require() instead of load().
    
  434. rswindell
    Thu May 09 2019 03:21 pm PDT

    Modified Files:
    exec/load/smbdefs.js 1.9 1.10 diff

    Log Message:
    Added SMB_PRIORITY_* definitions.
    
  435. rswindell
    Thu May 09 2019 03:21 pm PDT

    Modified Files:
    exec/load/hexdump_lib.js 1.4 1.5 diff

    Log Message:
    Fix off-by-one in digits of offset calculation.
    
  436. rswindell
    Thu May 09 2019 03:20 pm PDT

    Modified Files:
    exec/localcopy.js 1.1 1.2 diff

    Log Message:
    Cosmetic improvement, highlight the filename
    
  437. rswindell
    Thu May 09 2019 03:18 pm PDT

    Modified Files:
    exec/logon.js 1.40 1.41 diff

    Log Message:
    If user has ICE_COLOR terminal, send the SyncTERM/CTerm escape sequence to
    enable bright-background support (and disable blink).
    Use require() instead of load(), where applicable.
    
  438. rswindell
    Thu May 09 2019 03:16 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.90 1.91 diff

    Log Message:
    Added new/missing P_mode flag defines:
    - P_NOERROR
    - P_PETSCII
    - P_WRAP
    
  439. rswindell
    Thu May 09 2019 03:15 pm PDT

    Modified Files:
    exec/load/cga_defs.js 1.3 1.4 diff

    Log Message:
    Added BG_BRIGHT (bright background) attribute flag definition.
    
  440. rswindell
    Thu May 09 2019 02:25 pm PDT

    Modified Files:
    exec/load/cterm_lib.js 1.20 1.21 diff

    Log Message:
    Added bright_background(enable) method, to easily enable/disable
    bright-background (iCE color) support in SyncTERM/CTerm ANSI terminals.
    
  441. rswindell
    Thu May 09 2019 02:23 pm PDT

    Modified Files:
    exec/load/text.js 1.27 1.28 diff

    Log Message:
    New text.dat strings:
    - PetTerminalDetected (renamed from PetTermDetected)
    - PetTerminalQ
    - TerminalAutoDetect
    - TerminalColumns
    - TerminalRows
    - TerminalMonochrome
    - TerminalColor
    - TerminalIceColor
    - IceColorTerminalQ
    This also moved the MsgCarbonCopyList definition to the end of the file
    
  442. rswindell
    Thu May 09 2019 02:21 pm PDT

    Modified Files:
    exec/load/userdefs.js 1.1 1.2 diff

    Log Message:
    ICE_COLOR definition.
    
  443. rswindell
    Thu May 09 2019 02:20 pm PDT

    Modified Files:
    text/menu/attr.asc 1.2 1.3 diff

    Log Message:
    Added ^AE (bright background)
    
  444. rswindell
    Thu May 09 2019 02:18 pm PDT

    Modified Files:
    ctrl/attr.cfg 1.5 1.6 diff

    Log Message:
    Use bright-background for string-input inverse colors - much more readable
    on PETSCII terminals.
    
  445. rswindell
    Thu May 09 2019 02:17 pm PDT

    Modified Files:
    exec/yesnobar.src 1.8 1.9 diff
    exec/noyesbar.src 1.7 1.8 diff

    Log Message:
    Handle abort (^C) better - immediately return.
    Replaced embedded ^A chars with \x01.
    Use bright-background (\x01e) for selected answer, much more readable on
    PETSCII terminals.
    
  446. rswindell
    Thu May 09 2019 02:15 pm PDT

    Modified Files:
    ctrl/text.dat 1.102 1.103 diff

    Log Message:
    Updates to the terminal-type selection strings.
    New text.dat strings:
    - PetTerminalDetected (renamed from PetTermDetected)
    - PetTerminalQ
    - TerminalAutoDetect
    - TerminalColumns
    - TerminalRows
    - TerminalMonochrome
    - TerminalColor
    - TerminalIceColor
    - IceColorTerminalQ
    This also moved the MsgCarbonCopyList definition to the end of the file
    for now.
    
  447. rswindell
    Thu May 09 2019 02:14 pm PDT

    Modified Files:
    src/sbbs3/ansiterm.cpp 1.21 1.22 diff
    src/sbbs3/con_out.cpp 1.98 1.99 diff
    src/sbbs3/getkey.cpp 1.54 1.55 diff
    src/sbbs3/getstr.cpp 1.35 1.36 diff
    src/sbbs3/js_console.cpp 1.129 1.130 diff
    src/sbbs3/load_cfg.c 1.75 1.76 diff
    src/sbbs3/newuser.cpp 1.80 1.81 diff
    src/sbbs3/prntfile.cpp 1.33 1.34 diff
    src/sbbs3/putmsg.cpp 1.47 1.48 diff
    src/sbbs3/sbbs.h 1.518 1.519 diff
    src/sbbs3/sbbsdefs.h 1.239 1.240 diff
    src/sbbs3/scfgdefs.h 1.47 1.48 diff
    src/sbbs3/scfglib.h 1.23 1.24 diff
    src/sbbs3/scfglib2.c 1.48 1.49 diff
    src/sbbs3/str_util.c 1.58 1.59 diff
    src/sbbs3/text.h 1.39 1.40 diff
    src/sbbs3/text_defaults.c 1.61 1.62 diff
    src/sbbs3/useredit.cpp 1.56 1.57 diff

    Log Message:
    Support bright background colors:
    - for PETSCII, this is automatic and you don't lose blink, but you do lose
      colored foreground when enabling a bright background ("reverse video")
    - for ANSI, this mode is typically referred to as "iCE colors" and disables
      blinking-text support
    - Ctrl-AE (^AE) is the new attribute code to enable bright-background
      (will have no effect on ANSI terminals that are not iCE color enabled)
      "E" is now valid in the ctrl/attr.cfg file and string values for JS
      console.attributes assignments, as well
    - Ctrl-AI (^AI) - blink - now does nothing for ANSI/ICE color terminals
      (blinking is not supported in combination with bright-background)
    - Using a new/non-standard CGA attribute bit-flag to indicate the selection of
      bright-background colors (BG_BRIGHT, bit 10), separate from BLINK.
      This change required all/most char/uchar attribute representations to be
      converted to int/uint.
     
    New text.dat strings:
    - PetTerminalDetected (renamed from PetTermDetected)
    - PetTerminalQ
    - TerminalAutoDetect
    - TerminalColumns
    - TerminalRows
    - TerminalMonochrome
    - TerminalColor
    - TerminalIceColor
    - IceColorTerminalQ
    This also moved the MsgCarbonCopyList definition to the end of the file
    for now.
    
    PETSCII reverse-video attribute fix:
    When a CR is sent to the terminal, the reverse-video attibute is auto-disabled
    so update our "current attribute" (curatr) value to match the remote.
      
    Support new printfile/putmsg mode flag: P_WRAP to force an ungraceful
    line-wrap (splitting) to the specified column width. If no column width is
    specified (0), then this mode will force an ungraceful wrap before the last
    terminal column where some terminals *may* auto-wrap.
    
    JS console.printfile() and printtail() methods now support an optional
    "orig_columns" argument, similar to console.putmsg(). Must specify P_WORDWRAP
    or P_WRAP for this argument to have any effect.
    
    Much improved terminal-type selection/configuration in the user defaults
    menu and abort (^C) at any of the yes/no prompts is now detected/handled much
    better (to answers to the prompted questions are not saved to the user
    settings).
    
  448. rswindell
    Thu May 09 2019 02:02 pm PDT

    Modified Files:
    src/sbbs3/textgen.c 1.11 1.12 diff

    Log Message:
    Resolve GCC build warning about printf format mismatch.
    
  449. rswindell
    Thu May 09 2019 02:01 pm PDT

    Modified Files:
    src/sbbs3/js_global.c 1.381 1.382 diff

    Log Message:
    Added todo comment about require() behavior which is unexpected when the
    passesd filename is not found - function reports the symbol was not
    defined rather than file not found or something similar.
    
  450. rswindell
    Thu May 09 2019 02:00 pm PDT

    Modified Files:
    src/sbbs3/exec.cpp 1.108 1.109 diff

    Log Message:
    if sbbs_t::exec_bin() is called with a blank or NULL module name, just
    return an error value (-33, it's the magic number).
    
  451. rswindell
    Thu May 09 2019 12:23 pm PDT

    Modified Files:
    src/sbbs3/ctrl/makelibs.bat 1.12 1.13 diff

    Log Message:
    Work-around for issue with the old implib version:
    Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
    and MSVC-generated DLLs with exported functions using _cdecl calling convention
    ... sometimes or with some verisons of some DLLs, implib won't add the
    underscore prefix to the exported function name which caused the build error:
    Error: Unresolved external '_total_users' ...
    
    Using coff2omf instead to convert the MSVC-generated import library (sbbs.lib)
    to the Borland/OMF flavor works, however. I'd seen this issue before but it
    went away when the number of symbols in the source DLL changes. Newer versions
    of implib appear to *not* have this issue so when we upgrade to a newer
    C++Builder, this work-around will no longer be necessary.
    
  452. rswindell
    Thu May 09 2019 01:04 am PDT

    Modified Files:
    exec/nodelist.js 1.10 1.11 diff

    Log Message:
    Added command-line options / load arguments:
     -clear        Clear the screen (if possible) before list
     -home       Home the cursor (if possible) before list
     -loop [n]    Loop the list, delaying n seconds (default: 2.0 seconds)
    
  453. rswindell
    Thu May 09 2019 01:00 am PDT

    Modified Files:
    exec/load/presence_lib.js 1.10 1.11 diff

    Log Message:
    Fix: the NODE_LOGOUT status was not accounted for.
    
  454. rswindell
    Thu May 09 2019 12:53 am PDT

    Modified Files:
    exec/load/nodedefs.js 1.10 1.11 diff

    Log Message:
    Fix: the NODE_LOGOUT status was not accounted for.
    
  455. deuce
    Tue May 07 2019 02:12 pm PDT

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.489 1.490 diff

    Log Message:
    Fix crash introduced in 1.485.
    
    When the command is MLST, fp is NULL, so should not be passed to ftell().
    
  456. deuce
    Mon May 06 2019 03:32 pm PDT

    Modified Files:
    exec/ircbots/dis/dis.js 1.10 1.11 diff

    Log Message:
    Handle huge datasets better by calling js.gc(false) and flattening strings.
    
  457. deuce
    Mon May 06 2019 12:41 pm PDT

    Modified Files:
    exec/ircbots/ham/ham.js 1.33 1.34 diff

    Log Message:
    bandconditions.com is dead.
    F
    
  458. rswindell
    Mon May 06 2019 03:52 am PDT

    Modified Files:
    src/sbbs3/newuser.cpp 1.79 1.80 diff

    Log Message:
    When a new user hits the PETSCII backspace key (Ctrl-T) in response to the
    backspace/delete key prompt, set the PETSCII flag in the autoterm *and* the
    user's setting. If a CBM/PETSCII user actually got that prompt, that means
    they were probably connecting to the wrong TCP port in the first place, so
    relying on auto-terminal won't work for them on subsequent connections. We
    probably should have a way to manually turn off/on PETSCII support, when
    needed. <sigh>
    
  459. rswindell
    Mon May 06 2019 03:48 am PDT

    Modified Files:
    src/sbbs3/petdefs.h 1.2 1.3 diff

    Log Message:
    Added UP-ARROW and LEFT-ARROW character (glyph) definitions.
    
  460. rswindell
    Mon May 06 2019 03:46 am PDT

    Modified Files:
    src/sbbs3/inkey.cpp 1.59 1.60 diff

    Log Message:
    When user is not online (yet), inkey() shall return the ctrl-key values for
    ^U, ^P, ^T, ^K, etc. and not 0. This allows a CBM/PETSCII terminal user
    to actual hit their Backspace/Delete key (^T) in response to the new new-user
    prompt
    
  461. rswindell
    Mon May 06 2019 03:44 am PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.97 1.98 diff

    Log Message:
    Added some missing CP437 Control-Char to PETSCII character translations.
    
  462. rswindell
    Mon May 06 2019 03:43 am PDT

    Modified Files:
    src/sbbs3/useredit.cpp 1.55 1.56 diff

    Log Message:
    2 fixes related to turning on the auto-terminal user setting:
    - turn off the user.misc PETSCII flag (too)
    - don't copy the current autoterm flags into user.misc - this should no longer
      be necessary since the correct way to detect current terminal capabiilites
      is via calls to term_supports().
    
  463. echicken
    Sun May 05 2019 08:37 pm PDT

    Modified Files:
    xtrn/mrc/mrc-connector.example.ini 1.1 1.2 diff
    xtrn/mrc/readme.txt 1.2 1.3 diff

    Log Message:
    Removed 'platform' line from example ini; this kvp no longer used.
    Removed note re 'platform' line from readme.txt
    Some of you were using this feature (as intended) to advertise that the
    client was running on some other/fake/amusing BBS package and OS.  I'm
    told that this is not okay and may break things in the future.  (If you
    update mrc-connector.js, the fact that you're running Synchronet and on
    Linux or Windows i386, i686, x86_64 will be shared with the MRC server.)
    
  464. echicken
    Sun May 05 2019 08:31 pm PDT

    Modified Files:
    xtrn/mrc/mrc-connector.js 1.2 1.3 diff

    Log Message:
    Sorry, we're no longer allowed to fudge our BBS software name or OS &
    architecture.
    You're now running SYNCHRONET and whatever (system.platform + '_' +
    system.architecture) resolves to.
    
  465. rswindell
    Sun May 05 2019 06:58 pm PDT

    Modified Files:
    src/sbbs3/js_global.c 1.380 1.381 diff

    Log Message:
    html_decode() - add support for the following HTML 4 entities:
    - "lsaquo" and "rsaquo" (angled versions of "lsquo" and "rsquo")
    - "zwj" and "znnj" (zero-width joiner / non-joiner)
    
  466. rswindell
    Sun May 05 2019 06:33 pm PDT

    Modified Files:
    src/smblib/smbtxt.c 1.46 1.47 diff

    Log Message:
    MIME header fields are case-insensitive. <sigh>
    So replace some strstr() calls with either (new local function)
    strStartWith_i()
    or strcasestr(), depending.
    strStartWith_i() return length of the matched word, so no need to sprinkle
    about magic numeric constants everywhere. The extra calls to strlen() are worth
    the code clarity / reliability, methinks.
    TODO: find out if there's a way to calculate the length of string-constants at
    compile-time (?).
    
  467. rswindell
    Sun May 05 2019 05:31 pm PDT

    Modified Files:
    src/xpdev/genwrap.c 1.109 1.110 diff

    Log Message:
    The Win32 implementation of strcasestr() defined here is currently very
    heavy-handed (performs strdup/malloc's and modifications of the strings),
    so a temporary hack is to perform a case-sensitive search (using the standard
    strstr() function) first. The results won't exactly match the traditional
    strstr() and the performance improvement is only for positive matches
    (where the correct case was guessed in the passed 'needle' string arg).
    TODO: re-write or copy a good/fast strcasestr() implementation for Win32
    builds.
    
  468. rswindell
    Sun May 05 2019 03:48 pm PDT

    Modified Files:
    src/sexpots/sexpots.c 1.31 1.32 diff

    Log Message:
    Abort the retry-loop in modem_command() if the process is being terminated
    (e.g. with ^C).
    
  469. mcmlxxix
    Sun May 05 2019 10:40 am PDT

    Modified Files:
    exec/load/backgroundlog.js 1.1 1.2 diff

    Log Message:
    use system.node_dir instead of run path for fallback file logging
    
  470. mcmlxxix
    Sun May 05 2019 09:51 am PDT

    Modified Files:
    xtrn/synchronetris/service.js 1.7 1.8 diff

    Log Message:
    log via parent_queue
    
  471. mcmlxxix
    Sun May 05 2019 09:51 am PDT

    Modified Files:
    xtrn/maze/service.js 1.3 1.4 diff

    Log Message:
    log via parent_queue
    
  472. mcmlxxix
    Sun May 05 2019 09:50 am PDT

    Modified Files:
    xtrn/dicewarz2/service.js 1.19 1.20 diff

    Log Message:
    handle corrupt game data (without crashing the service)
    log via parent_queue
    
  473. mcmlxxix
    Sun May 05 2019 09:50 am PDT

    Added Files:
    exec/load/backgroundlog.js NONE 1.1 diff

    Log Message:
    log messages from background service threads via parent_queue if possible
    
  474. mcmlxxix
    Sun May 05 2019 09:49 am PDT

    Modified Files:
    exec/json-service.js 1.35 1.36 diff

    Log Message:
    log messages from background service threads via parent_queue if possible
    
  475. rswindell
    Sun May 05 2019 04:12 am PDT

    Modified Files:
    src/smblib/smbtxt.c 1.45 1.46 diff

    Log Message:
    Added NULL pointer (strdup failure) check for good measure.
    
  476. rswindell
    Sun May 05 2019 04:06 am PDT

    Modified Files:
    src/smblib/smblib.c 1.197 1.198 diff

    Log Message:
    Clear the new convenience pointers: text_subtype and text_charset
    in clear_convenience_ptrs() - otherwise they can be double-freed when the
    message (smbmsg_t) is copied with smb_copymsgmem().
    
  477. rswindell
    Sun May 05 2019 03:58 am PDT

    Modified Files:
    src/sbbs3/xtrn.cpp 1.247 1.248 diff

    Log Message:
    Log a warning or error if an external program is attempted to be executed but
    can't because it's a DOS program and the current node doesn't support it.
    
  478. rswindell
    Sun May 05 2019 03:54 am PDT

    Modified Files:
    src/sbbs3/logon.cpp 1.68 1.69 diff
    src/sbbs3/logout.cpp 1.32 1.33 diff

    Log Message:
    More debug-level log output around the fixed logon/logut events
    (when/what is executed, or at least attempted).
    
  479. echicken
    Sat May 04 2019 09:52 pm PDT

    Modified Files:
    xtrn/mrc/mrc-client.js 1.4 1.5 diff

    Log Message:
    Align the real cursor with the fake one.  Meh.
    
  480. rswindell
    Sat May 04 2019 04:45 pm PDT

    Modified Files:
    src/smblib/smbtxt.c 1.44 1.45 diff

    Log Message:
    Support multipart/report MIME content-type, from RFC3462:
    The syntax of Multipart/Report is identical to the Multipart/Mixed content type
    
  481. rswindell
    Sat May 04 2019 04:34 pm PDT

    Modified Files:
    src/smblib/smbtxt.c 1.43 1.44 diff

    Log Message:
    Constify mime_getcontent() - don't modify the text buffer as that stops
    subsequent parsing (e.g. fall-back to html) to fail.
    
  482. rswindell
    Sat May 04 2019 04:02 pm PDT

    Modified Files:
    ctrl/text.dat 1.101 1.102 diff

    Log Message:
    MIMEDecodedPlainTextFmt text.dat line now includes the text sub-type arg
    
  483. rswindell
    Sat May 04 2019 04:02 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.87 1.88 diff
    src/sbbs3/js_msgbase.c 1.247 1.248 diff
    src/sbbs3/text_defaults.c 1.60 1.61 diff

    Log Message:
    smb_getplaintext and smb_getmsgtxt(...,GETMSGTXT_PLAIN) will now fall-back
    to a text/html part of a multi-part MIME encoded message if no text/plain part
    exists.
    Changed smbmsg_t.charset to smbmsg_t.text_charset.
    Added smbmsg_t.text_subtype (e.g. "plain" or "html").
    Fixed issue with parsing parsed plain-text when the charset was the last
    element of the MIME-part header.
    MIMEDecodedPlainTextFmt text.dat line now includes the text sub-type arg
    
  484. rswindell
    Sat May 04 2019 03:56 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.116 1.117 diff
    src/smblib/smblib.c 1.196 1.197 diff
    src/smblib/smblib.h 1.92 1.93 diff
    src/smblib/smbtxt.c 1.42 1.43 diff

    Log Message:
    smb_getplaintext and smb_getmsgtxt(...,GETMSGTXT_PLAIN) will now fall-back
    to a text/html part of a multi-part MIME encoded message if no text/plain part
    exists.
    Changed smbmsg_t.charset to smbmsg_t.text_charset.
    Added smbmsg_t.text_subtype (e.g. "plain" or "html").
    Fixed issue with parsing parsed plain-text when the charset was the last
    element of the MIME-part header.
    
  485. nightfox
    Sat May 04 2019 12:40 am PDT

    Modified Files:
    xtrn/DDMsgReader/DDMsgReader.js 1.127 1.128 diff
    xtrn/DDMsgReader/readme.txt 1.23 1.24 diff
    xtrn/DDMsgReader/revision_history.txt 1.10 1.11 diff

    Log Message:
    Version 1.21: Uses require() instead of load() to load the required .js
    libraries, if the require() function is defined (it was added in Synchronet
    3.17).  This avoids 'multiple definition' errors with the latest .js libarries
    & Synchronet binaries.
    
  486. rswindell
    Fri May 03 2019 11:23 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.89 1.90 diff

    Log Message:
    Add CON_CR_CLREOL definition (console.status flag).
    
  487. rswindell
    Fri May 03 2019 10:42 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.517 1.518 diff

    Log Message:
    Make K_UPPER the default mode for sbbs_t.getkeys() for real. Oops.
    
  488. rswindell
    Fri May 03 2019 10:25 pm PDT

    Modified Files:
    src/sbbs3/con_out.cpp 1.96 1.97 diff
    src/sbbs3/sbbsdefs.h 1.238 1.239 diff

    Log Message:
    Added a new sbbs_t.console (JS console.status) flag: CON_CR_CLREOL, which
    when set, force a clear-to-end-of-line sequence to be sent to the remote
    terminal before sending a carriage-return (CR, '\r') character. This is useful
    in scenarios where you want to move/home the cursor and *not* clear the screen
    and then display or execute something that assumes clean lines are being
    displayed on and thus wouldn'd bother with any clear-to-eol sequences before
    line-endings.
    Any scripts that enable this mode should disable it upon exit (e.g. using
    js.on_exit() to restore the original console status).
    
  489. echicken
    Fri May 03 2019 09:59 pm PDT

    Modified Files:
    xtrn/mrc/mrc-session.js 1.1 1.2 diff
    xtrn/mrc/mrc-connector.js 1.1 1.2 diff

    Log Message:
    Fixed forwarding / display of some message types (join/part type things).
    Should rework how this filtering stuff is organized at some point.
    
  490. echicken
    Fri May 03 2019 09:24 pm PDT

    Modified Files:
    xtrn/mrc/mrc-client.js 1.3 1.4 diff

    Log Message:
    Get rid of empty line at bottom of output frame. (Reported by DigitalMan)
    Put new messages at actual bottom of frame, not just visible area when
    scrolling, but don't scroll down if in scrollback mode.
    Re-fix problem with non-string values from inputline.
    
  491. rswindell
    Fri May 03 2019 08:59 pm PDT

    Modified Files:
    src/sbbs3/getkey.cpp 1.53 1.54 diff
    src/sbbs3/js_console.cpp 1.128 1.129 diff
    src/sbbs3/sbbs.h 1.516 1.517 diff

    Log Message:
    Add an optional mode (K_* flag) argument to sbbs_t::getkeys() and by extension,
    JS's console.getkeys(). If no mode value is specified, K_UPPER is the default
    behavior (same as before). *.getkeys() currently only recognizes the following
    mode flags:
    - K_UPPER
    - K_NOECHO
    - K_NOCRLF
    
    K_NONE (0) is also a valid value.
    
  492. echicken
    Fri May 03 2019 08:23 pm PDT

    Modified Files:
    xtrn/mrc/mrc-client.js 1.2 1.3 diff

    Log Message:
    Fix scrollbar position in output frame. (Reported by Bob Swindle)
    
  493. rswindell
    Fri May 03 2019 08:09 pm PDT

    Modified Files:
    src/sbbs3/js_com.c 1.31 1.32 diff
    src/sbbs3/js_console.cpp 1.127 1.128 diff
    src/sbbs3/js_file.c 1.179 1.180 diff
    src/sbbs3/js_global.c 1.379 1.380 diff
    src/sbbs3/js_msgbase.c 1.246 1.247 diff
    src/sbbs3/js_queue.c 1.55 1.56 diff
    src/sbbs3/js_socket.c 1.227 1.228 diff
    src/sbbs3/js_system.c 1.171 1.172 diff
    src/sbbs3/js_user.c 1.109 1.110 diff

    Log Message:
    Resolve more GCC errors: static declaration of 'xxx_class follows' non-static
    declaration
    
  494. rswindell
    Fri May 03 2019 08:03 pm PDT

    Modified Files:
    src/sbbs3/js_bbs.cpp 1.184 1.185 diff

    Log Message:
    Resolved GCC error: 'js_bbs_class' was declared 'extern' and later 'static'
    MSVC had no problem with this. <sigh>
    
  495. rswindell
    Fri May 03 2019 06:04 pm PDT

    Modified Files:
    src/sbbs3/js_bbs.cpp 1.183 1.184 diff
    src/sbbs3/js_com.c 1.30 1.31 diff
    src/sbbs3/js_console.cpp 1.126 1.127 diff
    src/sbbs3/js_file.c 1.178 1.179 diff
    src/sbbs3/js_global.c 1.378 1.379 diff
    src/sbbs3/js_msgbase.c 1.245 1.246 diff
    src/sbbs3/js_queue.c 1.54 1.55 diff
    src/sbbs3/js_socket.c 1.226 1.227 diff
    src/sbbs3/js_system.c 1.170 1.171 diff
    src/sbbs3/js_user.c 1.108 1.109 diff
    src/sbbs3/main.cpp 1.748 1.749 diff
    src/sbbs3/sbbs.h 1.515 1.516 diff

    Log Message:
    Define and use a wrapper for JS_GetInstancePrivate(): js_GetClassPrivate()
    Use this in place of JS_GetPrivate() in native class methods that need the
    class instance's private data pointer and will do bad things if that pointer
    points to something other than what is expected. mcmlxxix (matt) discovered
    that using Object.apply(), you can invoke class methods where the 'this'
    instance is a different class. This would result in 
    "Internal Error: No Private Data." or a crash.
    So now, gracefully detect this condition and report a meaningful error:
    "'<class-name>' instance: No Private Data or Class Mismatch"
    
    Also, important to note: if the method uses JS_THIS_OBJECT to get the JSObject*
    to pass to JS_Get*Private, then it must do this *before* it calls JS_SET_RVAL.
    
    From jsapi.h:
     * NB: there is an anti-dependency between JS_CALLEE and JS_SET_RVAL: native
     * methods that may inspect their callee must defer setting their return value
     * until after any such possible inspection. Otherwise the return value will be
     * inspected instead of the callee function object.
    
    The js_crypt*.c files still need this treatment.
    
  496. rswindell
    Thu May 02 2019 11:50 pm PDT

    Modified Files:
    src/sbbs3/getkey.cpp 1.52 1.53 diff
    src/sbbs3/js_console.cpp 1.125 1.126 diff

    Log Message:
    sbbs_t::getkeys() and by extension, JS console.getkeys() enhancement:
    the 'keys' argument is optional. If no keys are specified (or NULL), then any/
    all non-numeric keys are considered valid input and may be returned by this
    function/method.
    
  497. rswindell
    Thu May 02 2019 08:08 pm PDT

    Modified Files:
    ctrl/text.dat 1.100 1.101 diff

    Log Message:
    show_msgattr() now includes the netattr "Sent" and "InTransit" flags, when set
    as well as the auxattr "Attach" when either FILEATTACH or MIMEATTACH is set
    (requires an updated MsgAttr line in text.dat).
    
  498. rswindell
    Thu May 02 2019 08:08 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.86 1.87 diff

    Log Message:
    show_msgattr() now includes the netattr "Sent" and "InTransit" flags, when set
    as well as the auxattr "Attach" when either FILEATTACH or MIMEATTACH is set
    (requires an updated MsgAttr line in text.dat).
    
  499. rswindell
    Thu May 02 2019 08:06 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.59 1.60 diff

    Log Message:
    Add room for 3 more attribute words to MsgAttr.
    I know... this list of %s's was a bad idea to begin with, but oh well.
    
  500. rswindell
    Thu May 02 2019 08:00 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.694 1.695 diff

    Log Message:
    Set the MSG_SENT netattr attribute flag after sending an email via SMTP but
    after sending via POP3 (the MSG_READ attribute flag is already indicating
    that).
    
  501. rswindell
    Thu May 02 2019 07:49 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.115 1.116 diff

    Log Message:
    Mark MSG_LOCKED attribute flag as deprecated: never actually used for any
    purpose
    
  502. rswindell
    Thu May 02 2019 06:07 pm PDT

    Modified Files:
    exec/load/822header.js 1.11 1.12 diff

    Log Message:
    Add the X-Priority header field, when applicable (defined and non-zero).
    
  503. rswindell
    Thu May 02 2019 05:27 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.244 1.245 diff

    Log Message:
    Document the message header fields:
    - votes
    - priority
    - delivery_attempts
    
  504. rswindell
    Thu May 02 2019 05:16 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.243 1.244 diff
    src/sbbs3/mailsrvr.c 1.693 1.694 diff
    src/sbbs3/readmsgs.cpp 1.121 1.122 diff

    Log Message:
    Use the new smb msghdr_t.priority scheme (following X-Priority from email
    headers).
    Don't reference the (currently unused) times_downloaded and last_downloaded
    msghdr_t elements/properties.
    Set the current node action value *before* calling the scanposts_mod
    ("Scan Msgs module") in sbbs_t::scanposts().
    
  505. rswindell
    Thu May 02 2019 05:13 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.114 1.115 diff
    src/smblib/smblib.c 1.195 1.196 diff

    Log Message:
    Change the message priority scheme from:
    the (never used) SMB_PRIORITY 32-bit hfield (0 = default/highest priority), to
    a new fixed message header field (8-bit) following the X-Priority header field
    numbering scheme: 1 = highest, 3 = normal, 5 = lowest and 0 = unspecified.
    
  506. rswindell
    Thu May 02 2019 02:31 pm PDT

    Modified Files:
    exec/showansi.js 1.2 1.3 diff
    exec/showfileavatar.js 1.3 1.4 diff
    exec/showmsgavatar.js 1.4 1.5 diff
    exec/showmsghdr.js 1.4 1.5 diff

    Log Message:
    Use require() to get the definitions we need instead of conditional load()ing
    or copy/pasted definitions (e.g. USER_ANSI)
    
  507. rswindell
    Thu May 02 2019 02:29 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.88 1.89 diff

    Log Message:
    Fix typo in previous commit (missing comma).
    
  508. rswindell
    Thu May 02 2019 02:23 pm PDT

    Modified Files:
    exec/load/822header.js 1.10 1.11 diff
    exec/load/mailproc_util.js 1.12 1.13 diff
    exec/load/newsutil.js 1.29 1.30 diff

    Log Message:
    Use require() to get the definitions we need instead of conditional load()ing
    or copy/pasted definitions (e.g. RFC822HEADER).
    
  509. rswindell
    Thu May 02 2019 02:19 pm PDT

    Modified Files:
    exec/load/smbdefs.js 1.8 1.9 diff

    Log Message:
    Constified and reformatted.
    This file should always be require()'d and not load()'d to avoid constant
    redefinition errors.
    Also added missing definitions:
    - FIDOCTRL
    - FIDOSEENBY
    - FIDOPATH
    - RFC822HEADER
    - SMTPRECEIVED
    
  510. rswindell
    Thu May 02 2019 02:12 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.87 1.88 diff
    exec/load/userdefs.js NONE 1.1 diff

    Added Files:
    	userdefs.js 
    Log Message:
    Moved all the user-related constants from sbbsdefs.js to (new file)
    userdefs.js and require() it from sbbsdefs.js, so no existing scripts that
    use these constants should need to change.
    This allows:
    1. use of const over var for proper JS constant definition via require()
    2. more optimal load()ing of only what you need for your script to execute
    
  511. rswindell
    Thu May 02 2019 12:37 pm PDT

    Modified Files:
    src/sbbs3/scansubs.cpp 1.29 1.30 diff

    Log Message:
    SAFEPRINTF->SAFEPRINTF2 :-/
    
  512. echicken
    Thu May 02 2019 08:44 am PDT

    Modified Files:
    xtrn/mrc/readme.txt 1.1 1.2 diff

    Log Message:
    You gots to update your scrollbars.
    "Nope" is not an acceptable description of available support channels.
    
  513. rswindell
    Thu May 02 2019 02:38 am PDT

    Modified Files:
    exec/load/newsutil.js 1.28 1.29 diff

    Log Message:
    Work-around error reported by Jason (HDCBBS):
    !JavaScript  /sbbs/exec/newslink.js line 936: Error: Error -110 adding
    RECIPIENTADDR field to message header
    
    This is likely because we're trying to auto-detect the network-address type
    and failing, so just force it to NET_INTERNET here.
    
  514. rswindell
    Thu May 02 2019 02:16 am PDT

    Modified Files:
    src/sbbs3/scansubs.cpp 1.28 1.29 diff

    Log Message:
    sprintf->SAFEPRINTF
    
  515. rswindell
    Thu May 02 2019 01:47 am PDT

    Modified Files:
    ctrl/text.dat 1.99 1.100 diff

    Log Message:
    Re-wrap long lines for the first 20 or so strings.
    
  516. rswindell
    Thu May 02 2019 12:00 am PDT

    Modified Files:
    exec/load/822header.js 1.9 1.10 diff

    Log Message:
    Use the SMTPForwardPath (msg.forward_path) for the To: field if there's no
    other relevant "To" field value exists in the header.
    Include the X-FTN-SEEN-BY and X-FTN-PATH header fields, if present.
    
  517. rswindell
    Wed May 01 2019 11:58 pm PDT

    Modified Files:
    ctrl/text.dat 1.98 1.99 diff

    Log Message:
    Replace the remaining CP437 chars with hexadecimal escape sequences.
    
  518. rswindell
    Wed May 01 2019 11:14 pm PDT

    Modified Files:
    exec/load/text.js 1.26 1.27 diff

    Log Message:
    Added MsgCarbonCopyList.
    
  519. rswindell
    Wed May 01 2019 08:40 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.91 1.92 diff
    src/sbbs3/getmsg.cpp 1.85 1.86 diff
    src/sbbs3/js_bbs.cpp 1.182 1.183 diff
    src/sbbs3/main.cpp 1.747 1.748 diff
    src/sbbs3/sbbs.h 1.514 1.515 diff

    Log Message:
    @-code changes:
    Expanded codes will not *not* go beyond the terminal column width (minus 1).
    If you need the old/wrap behavior, add a "-W" modifier to your @-code.
    If a length value is specified with -W, it is ignored.
    
    - MSG_TO, MSG_FROM, MSG_SUBJECT now reflect the header values passed
      to sbbs_t::show_msghdr(), JS bbs.show_msg_header() and not necessarily the
      actual stored (e.g. MIME-encoded) header values.
    
    New codes:
    - MSG_CC - reflect a message's CC list, if it has one
    - DATETIMEZONE - combines DATETIME and TIMEZONE in one string
    
  520. rswindell
    Wed May 01 2019 06:49 pm PDT

    Modified Files:
    ctrl/text.dat 1.97 1.98 diff

    Log Message:
    Added new text.dat string: MsgCarbonCopyList
    used to display a CC list, when applicable.
    
  521. rswindell
    Wed May 01 2019 06:48 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.84 1.85 diff
    src/sbbs3/text.h 1.38 1.39 diff
    src/sbbs3/text_defaults.c 1.58 1.59 diff

    Log Message:
    Added new text.dat string: MsgCarbonCopyList
    used to display a CC list, when applicable.
    
  522. rswindell
    Wed May 01 2019 05:58 pm PDT

    Modified Files:
    src/sbbs3/readmail.cpp 1.92 1.93 diff

    Log Message:
    Set the current node action in sbbs_t::readmail() earlier, before the
    "read mail" module is executed, so that the node action is correct more often.
    
  523. rswindell
    Wed May 01 2019 05:40 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.83 1.84 diff

    Log Message:
    Restore accidentally removal of strchr (!).
    
  524. rswindell
    Wed May 01 2019 05:31 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.82 1.83 diff
    src/sbbs3/js_bbs.cpp 1.181 1.182 diff
    src/sbbs3/sbbs.h 1.513 1.514 diff

    Log Message:
    Support the passing of optional 'subject', 'from', and 'to' values to
    show_msghdr(), over-riding the values from the passed smbmsg_t. This is useful
    for, say, displaying MIME-decoded values rather than the MIME-encoded versions
    of the header fields that you often find in email today.
    
  525. rswindell
    Wed May 01 2019 05:18 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.242 1.243 diff

    Log Message:
    get_all_msg_headers():
    Copy the upvotes, downvotes, and total_votes to the smbmsg_t, replicating
    what is done in sbbs_t::scanposts() - these are used by sbbs_t::show_msghdr()
    so we need to copy them if we're going to be replicating that functionality
    (showing up/down votes and score) in message headers shown with bbs.show_msg()
    and bbs.show_msg_header().
    
  526. rswindell
    Wed May 01 2019 05:08 pm PDT

    Modified Files:
    exec/load/mimehdr.js 1.5 1.6 diff

    Log Message:
    Another difference in RFC2047 'Q' encoding:
      "Upper case should be used"
    Compared with RFC0245 Quoted-Printable encoding:
      "Uppercase letters must be used"
    
    <sigh>
    Really.. these specs were written by the same (MIME) working-group?
    
  527. rswindell
    Wed May 01 2019 12:02 pm PDT

    Modified Files:
    exec/load/hexdump_lib.js 1.3 1.4 diff

    Log Message:
    Fix off-by-one error when figuring out how far to indent the last line of ASCII
    output.
    Added a "include_offset" option to the generate() method.
    
  528. rswindell
    Wed May 01 2019 01:33 am PDT

    Modified Files:
    exec/load/mimehdr.js 1.4 1.5 diff

    Log Message:
    strip_ctrl() works on strings, not objects.
    
  529. rswindell
    Wed May 01 2019 01:08 am PDT

    Modified Files:
    exec/load/mimehdr.js 1.3 1.4 diff

    Log Message:
    'Q' encoding is only "similar to" Quoted-Printable: underscores must be
    converted to spaces.
    Stripping control chars from decoded header values too: we don't want
    someone getting cute w/embedded Ctrl-A codes or ANSI escape sequences.
    
  530. rswindell
    Wed May 01 2019 12:44 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.692 1.693 diff

    Log Message:
    Don't auto-exempt "<<address>>", just "<address>"
    
  531. rswindell
    Wed May 01 2019 12:36 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.691 1.692 diff

    Log Message:
    Bug-fix: if the forward-path is in "<address>" notation, don't include the
    angle brackets in the "RCPT TO" command sent to the SMTP server. This is an old
    bug but now appears because we are now (recently) actually storing the SMTP
    forward-path in the message header.
    
  532. rswindell
    Tue Apr 30 2019 07:50 pm PDT

    Modified Files:
    exec/load/mimehdr.js 1.2 1.3 diff

    Log Message:
    From RFC2047:
       Any amount of linear-space-white between 'encoded-word's,
       even if it includes a CRLF followed by one or more SPACEs,
       is ignored for the purposes of display.
    
  533. rswindell
    Tue Apr 30 2019 02:41 pm PDT

    Modified Files:
    exec/load/binkp.js 1.114 1.115 diff

    Log Message:
    Lower the log level of teh "Timed out receiving packet data" log message from
    ERROR to WARNING - for Ragnarok.
    
  534. rswindell
    Tue Apr 30 2019 02:17 pm PDT

    Modified Files:
    exec/load/mimehdr.js 1.1 1.2 diff

    Log Message:
    Fix decode() - encoded-words are not space-delimited
    Add to_cp437() - returns a CP437 representation of the passed header value
    
  535. rswindell
    Tue Apr 30 2019 02:12 am PDT

    Modified Files:
    src/sbbs3/echocfg.c 3.40 3.41 diff
    src/sbbs3/rechocfg.c 3.34 3.35 diff

    Log Message:
    Move the Strip-LF and Strip-Soft-CR options to the "Global" section since these
    settings affect both NetMail and EchoMail import/export.
    
  536. rswindell
    Tue Apr 30 2019 01:40 am PDT

    Modified Files:
    exec/load/822header.js 1.8 1.9 diff

    Log Message:
    Include the RFC822 "Received" header fields.
    Removed the X-Comment-To header field (is this file being used for NNTP?).
    Added an 'unfold' boolean argument (defaults to true). If false, don't unfold
    the header fields.
    
  537. rswindell
    Tue Apr 30 2019 01:37 am PDT

    Modified Files:
    ctrl/text.dat 1.96 1.97 diff

    Log Message:
    Renamed MIMEDecodedPlainText to MIMEDecodedPlainTextFmt
    Removed extra space from LongLineContinuationPrefix (when used, there's
    usually already a space following the cond line-break).
    Removed the cond-line break from the AutoMsgHdr.
    
  538. rswindell
    Tue Apr 30 2019 01:35 am PDT

    Added Files:
    exec/load/mimehdr.js NONE 1.1 diff

    Log Message:
    Library supporting RFC2047: MIME Message Header Extensions
    Decodes those funky strings you see in message (e.g. email) headers:
    =?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=
    =?UTF-8?B?UmVtaW5kZXI6IFdlc3Rlcm4gUml2ZXJzaWRlIENvdW50eSBDb21tdW5pdHkg?=
    
  539. rswindell
    Tue Apr 30 2019 01:30 am PDT

    Modified Files:
    exec/load/text.js 1.25 1.26 diff

    Log Message:
    Updated to the latest text.dat.
    
  540. rswindell
    Tue Apr 30 2019 01:28 am PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.81 1.82 diff
    src/sbbs3/text.h 1.37 1.38 diff
    src/sbbs3/text_defaults.c 1.57 1.58 diff

    Log Message:
    Dump the MIME plain-text charset value when displaying MIME-decoded plain-text.
    Renamed MIMEDecodedPlainText to MIMEDecodedPlainTextFmt
    (since it is now a printf-style format string).
    No special handling of non US-ASCII (e.g. UTF-8) characters... yet.
    
  541. rswindell
    Tue Apr 30 2019 01:26 am PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.241 1.242 diff

    Log Message:
    Added the (optional) message header object read-only MIME-related properties:
    - mime_version (from the message header, if MIME)
    - content_type (from the messgae header, if MIME)
    - charset (from the plain-text MIME portion content-type header field)
    
  542. rswindell
    Tue Apr 30 2019 01:21 am PDT

    Modified Files:
    src/smblib/smbdefs.h 1.113 1.114 diff
    src/smblib/smblib.c 1.194 1.195 diff
    src/smblib/smbtxt.c 1.41 1.42 diff

    Log Message:
    When parsing the MIME-encoded plain-text portion of a message body, parse the
    content-type "charset" parameter value and store in the (new) smbmsg_t.charset.
    This is a heap-allocated copy of the text from the message body, so it must be
    freed in smb_freemsgmem(). When NULL, the charset can be assumed to be
    US-ASCII.
    
  543. rswindell
    Mon Apr 29 2019 09:40 pm PDT

    Modified Files:
    src/sbbs3/echocfg.c 3.39 3.40 diff
    src/sbbs3/sbbsecho.c 3.113 3.114 diff

    Log Message:
    Apply the "Strip Line Feed" option logic to exported NetMail messages too
    (when set to Yes).
    
  544. rswindell
    Mon Apr 29 2019 08:33 pm PDT

    Modified Files:
    src/sbbs3/echocfg.c 3.38 3.39 diff
    src/sbbs3/rechocfg.c 3.33 3.34 diff
    src/sbbs3/sbbsecho.c 3.112 3.113 diff
    src/sbbs3/sbbsecho.h 3.27 3.28 diff

    Log Message:
    Add option to strip so-called "Soft CRs" (0x8D) from incoming messages.
    The default is off (no stripping). Previously, Soft-CRs were always stripped,
    but this behavior is now seen as an anachronism as CP437 char 141 is an
    important non-English laguage character and used as such in FidoNet msgs.
    
  545. rswindell
    Mon Apr 29 2019 07:48 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.67 1.68 diff

    Log Message:
    Resolve GCC warning: enumeration value 'XEDIT_SOFT_CR_UNDEFINED' not handled
    in switch
    
  546. rswindell
    Mon Apr 29 2019 07:48 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.151 1.152 diff

    Log Message:
    Resolve GCC warning: enumeration value 'XEDIT_SOFT_CR_UNDEFINED' not handled
    in switch
    
  547. rswindell
    Mon Apr 29 2019 07:36 pm PDT

    Modified Files:
    exec/logon.js 1.39 1.40 diff

    Log Message:
    Word-wrap when displaying the auto-message (auto.msg).
    
  548. rswindell
    Mon Apr 29 2019 07:36 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.150 1.151 diff

    Log Message:
    Use quote prefixes for auto-message body which allows us to word-wrap
    nicely when displaying at various terminal widths.
    
  549. mcmlxxix
    Mon Apr 29 2019 05:53 pm PDT

    Modified Files:
    xtrn/bublbogl/dict/p.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/q.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/r.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/t.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/u.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/w.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/x.dic 1.1 1.2 diff
    xtrn/bublbogl/dict/z.dic 1.1 1.2 diff

    Log Message:
    sent some words back home to their proper lists
    
  550. mcmlxxix
    Mon Apr 29 2019 10:41 am PDT

    Modified Files:
    xtrn/bublbogl/game.js 1.11 1.12 diff

    Log Message:
    attempt to resolve infinite recursion bug -- would love to know what word was
    attempted so I can recreate the issue -- anyone?
    
  551. echicken
    Mon Apr 29 2019 09:47 am PDT

    Modified Files:
    xtrn/mrc/mrc-client.js 1.1 1.2 diff

    Log Message:
    Test for user input stringiness rather than just definedness.
    Should fix error reported by pfortran on fsxnet.
    
  552. rswindell
    Mon Apr 29 2019 01:34 am PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.66 1.67 diff

    Log Message:
    Configurable "Soft-CR" (0x8D) character handling on a per message-editor basis:
    For QuickBBS editors, the default will be the same as previous behavior: to
    convert Soft-CRs to Hard-CRs (CRLFs).
    For non-QuickBBS editors, the default will be to treat Soft-CRs as any other
    valid printable character in the text ("Retain").
    A 3rd option is available to strip Soft-CRs completely from the generated
    message text.
    
  553. rswindell
    Mon Apr 29 2019 01:22 am PDT

    Modified Files:
    src/sbbs3/scfgdefs.h 1.46 1.47 diff
    src/sbbs3/scfglib2.c 1.47 1.48 diff
    src/sbbs3/scfgsave.c 1.79 1.80 diff
    src/sbbs3/writemsg.cpp 1.149 1.150 diff

    Log Message:
    Configurable "Soft-CR" (0x8D) character handling on a per message-editor basis:
    For QuickBBS editors, the default will be the same as previous behavior: to
    convert Soft-CRs to Hard-CRs (CRLFs).
    For non-QuickBBS editors, the default will be to treat Soft-CRs as any other
    valid printable character in the text ("Retain").
    A 3rd option is available to strip Soft-CRs completely from the generated
    message text.
    
  554. rswindell
    Sun Apr 28 2019 11:14 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.111 3.112 diff

    Log Message:
    Use FIDO_SOFT_CR (0x8d) rather than the magic number
    
  555. rswindell
    Sun Apr 28 2019 11:13 pm PDT

    Modified Files:
    src/sbbs3/fidodefs.h 1.20 1.21 diff
    src/sbbs3/writemsg.cpp 1.148 1.149 diff

    Log Message:
    Define and use FIDO_SOFT_CR (0x8d) rather than the magic number (e.g. 141).
    
  556. rswindell
    Sun Apr 28 2019 10:55 pm PDT

    Modified Files:
    src/sbbs3/writemsg.cpp 1.147 1.148 diff

    Log Message:
    Fix crash introduced in previous commit (rev 1.147) of this file (on Apr-16),
    when the user is using the internal msg editor (useron_xedit == 0) and
    replying to a message.
    
  557. rswindell
    Sun Apr 28 2019 10:46 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.240 1.241 diff

    Log Message:
    Includes SMTP "Received" header fields in field_list array.
    Refer to the dubious get_msg_body() feature of dot-stuffing as that
    ("dot-stuffing") and not "rfc822-encoding" - because it isn't.
    dot-stuffing is a requirment of SMTP (RFC*821) and NNTP, not RFC822 (oops).
    
  558. rswindell
    Sun Apr 28 2019 09:45 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.690 1.691 diff

    Log Message:
    Fix GCC warning: pointer targets in assignment differ in signedness
    
  559. rswindell
    Sun Apr 28 2019 09:41 pm PDT

    Modified Files:
    exec/load/822header.js 1.7 1.8 diff

    Log Message:
    Support the new header fields:
    - to_list
    - cc_list
    - replyto_list
    
    Always enclose the 'From' name in quotes.
    Don't force a reply-to field if subnum is undefined.
    
  560. rswindell
    Sun Apr 28 2019 09:07 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.239 1.240 diff

    Log Message:
    Add support for new message header fields:
    - to_list (RFC822TO, previosuly unavailable via JS)
    - cc_list
    - replyto_list (RFC822REPLYTO, previously unavailable via JS)
    
    Added RFC822FROM to the "field_list" array (previously unavailable via JS).
    Removed SMB_CARBONCOPY from the "field_list" (now duplicated in cc_list).
    
  561. rswindell
    Sun Apr 28 2019 09:02 pm PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.689 1.690 diff

    Log Message:
    Actually store the SMTP forward-path of received mail messages in the message
    headers
    
  562. rswindell
    Sun Apr 28 2019 08:56 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.193 1.194 diff

    Log Message:
    Actually set and clear the smbmsg_t.forward_path (SMTPFORWARDPATH) convenience
    pointer - apparently this has never actually been used before.
    
  563. rswindell
    Sun Apr 28 2019 08:19 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.112 1.113 diff
    src/smblib/smblib.c 1.192 1.193 diff

    Log Message:
    3 new smbmsg_t convenience pointers:
    - to_list
    - cc_list
    - replyto_list
    
    These are all comma-separated lists of names/addresses, RFC-822 style
    (so quotes and angle-brackets and all that jazz preserved/included)
    
  564. rswindell
    Sun Apr 28 2019 05:35 pm PDT

    Modified Files:
    exec/load/822header.js 1.6 1.7 diff

    Log Message:
    Fix Reply-To header field name quoting issue (lacking terminate quote)
    
  565. rswindell
    Sun Apr 28 2019 04:33 pm PDT

    Modified Files:
    ctrl/modopts.ini 1.30 1.31 diff

    Log Message:
    Changed [newuser] send_newuser_welcome option to just: send_welcome
    Document the [newuser] avatar_file and avatar_offset options.
    
  566. rswindell
    Sun Apr 28 2019 04:25 pm PDT

    Modified Files:
    exec/newuser.js 1.29 1.30 diff

    Log Message:
    Clean up the modopts.ini 'options' stuff.
    Rename the 'send_newuser_welcome' option to just 'send_welcome' (match wiki)
    (let's not repeat ourselves repeatedly) - but leave a backwards compatibility
    hack at least for now.
    
  567. rswindell
    Sun Apr 28 2019 03:54 pm PDT

    Modified Files:
    ctrl/text.dat 1.95 1.96 diff

    Log Message:
    New text.dat strings:
     - HitYourBackspaceKey
     - CharacterReceivedFmt
     - InvalidBackspaceKeyFmt
     - SwapDeleteKeyQ
     - PetTermDetected
    
  568. rswindell
    Sun Apr 28 2019 03:53 pm PDT

    Modified Files:
    src/sbbs3/newuser.cpp 1.78 1.79 diff
    src/sbbs3/text.h 1.36 1.37 diff
    src/sbbs3/text_defaults.c 1.56 1.57 diff
    src/sbbs3/useredit.cpp 1.54 1.55 diff

    Log Message:
    Complete the terminal DEL->backspace key swap user setting stuff.
    New text.dat strings:
     - HitYourBackspaceKey
     - CharacterReceivedFmt
     - InvalidBackspaceKeyFmt
     - SwapDeleteKeyQ
     - PetTermDetected
    
  569. rswindell
    Sun Apr 28 2019 03:12 pm PDT

    Modified Files:
    src/sbbs3/text_defaults.c 1.55 1.56 diff

    Log Message:
    Use conditional blank lines before prompts and some alerts/notices.
    Fix up some message header field lengths.
    
  570. rswindell
    Sun Apr 28 2019 03:02 pm PDT

    Modified Files:
    ctrl/text.dat 1.94 1.95 diff

    Log Message:
    Use conditional blank lines before prompts and some alerts/notices.
    Fix up some message header field lengths.
    
  571. rswindell
    Sun Apr 28 2019 02:57 pm PDT

    Modified Files:
    ctrl/text.dat 1.93 1.94 diff

    Log Message:
    Use conditional blank line for DeletePostQ
    
  572. rswindell
    Sun Apr 28 2019 03:37 am PDT

    Modified Files:
    src/sbbs3/inkey.cpp 1.58 1.59 diff

    Log Message:
    When a PETSCII delete key is struck, treat as backspace ('\b').
    
  573. rswindell
    Sun Apr 28 2019 03:03 am PDT

    Modified Files:
    src/sbbs3/sbbsdefs.h 1.237 1.238 diff
    src/sbbs3/inkey.cpp 1.57 1.58 diff
    src/sbbs3/con_out.cpp 1.95 1.96 diff

    Log Message:
    Introduce a user setting (misc flag) which informs sbbs that the terminal
    will be sending 0x7f (DEL) when the backspace key is struck: SWAP_DELETE
    For example, xterm sends 0x7f when backspace and hit and an ANSI escape
    sequence when the DEL key is hit.
    
    I don't yet have a way to *enable* this setting.
    
    Also, allow the user's setting of NO_EXASCII to take effect even when
    auto-terminal type detection is used (yes, the user's terminal can support
    ANSI and *not* CP437).
    
  574. rswindell
    Sun Apr 28 2019 02:52 am PDT

    Modified Files:
    exec/showmsgavatar.js 1.3 1.4 diff

    Log Message:
    Don't show avatars to users whose terminals don't support EX-ASCII
    
  575. rswindell
    Sun Apr 28 2019 02:51 am PDT

    Modified Files:
    exec/privatemsg.js 1.5 1.6 diff

    Log Message:
    Some console abort (^C) checking.
    
  576. rswindell
    Sun Apr 28 2019 02:50 am PDT

    Modified Files:
    exec/logon.js 1.38 1.39 diff

    Log Message:
    Using Avatar.read() to prime the cache.
    
  577. rswindell
    Sun Apr 28 2019 02:49 am PDT

    Modified Files:
    exec/fseditor.js 1.92 1.93 diff

    Log Message:
    Better support for:
    - terminals with widths > 132 columns (e.g. quote section separator)
    - terminals that don't support CP437 (ex-ASCII) - use console.print()
    - terminals that send 0x7f for the backspace key (when at the end of the line
      treat DEL the same as backspace)
    
  578. rswindell
    Sun Apr 28 2019 02:31 am PDT

    Modified Files:
    exec/chat_sec.js 1.11 1.12 diff

    Log Message:
    A bit more input validation around the IRC server/channel.
    
  579. rswindell
    Sat Apr 27 2019 11:23 pm PDT

    Modified Files:
    src/smblib/smbtxt.c 1.40 1.41 diff

    Log Message:
    Correctly detect a "last boundary delimeter":
    --<boundary>--
    
    Without this change, some attachment (e.g. from gmail) would not be correctly
    decoded because gmail would not insert any blank lines between the end of the
    nested multipart/alternative part and the beginning of the attachment part:
    --000000000000d75a0f058779bbb2--
    --000000000000d75a12058779bbb4
    Content-Type: image/jpeg;
    	name="29571163_1640947089321419_3376478908098884084_n.jpg"
    Content-Disposition: attachment;
    	filename="29571163_1640947089321419_3376478908098884084_n.jpg"
    Content-Transfer-Encoding: base64
    
    It looks (from RFC2046) like boundary delimeters should actually be:
    "\r\n--<boundary>", but I'll look into that later.
    
  580. nightfox
    Fri Apr 26 2019 12:35 pm PDT

    Modified Files:
    xtrn/DDMsgReader/DDMsgReader.js 1.126 1.127 diff
    xtrn/DDMsgReader/DefaultTheme.cfg 1.5 1.6 diff
    xtrn/DDMsgReader/readme.txt 1.22 1.23 diff
    xtrn/DDMsgReader/revision_history.txt 1.9 1.10 diff

    Log Message:
    Added configurable options for the message score colors for the message list:
    msgListScoreColor, msgListToUserScoreColor, msgListFromUserScoreColor, and
    msgListScoreHighlightColor.  Incremented version to 1.20.
    
  581. rswindell
    Thu Apr 25 2019 07:44 pm PDT

    Modified Files:
    src/sbbs3/scansubs.cpp 1.27 1.28 diff

    Log Message:
    Fix: your-message scan of groups and all subs: skip subs not included in
    the user's your-scan config (&S using the default shell) even when
    "Display subjects only" was confirmed. Previously, when only subjects were
    shown, all subs were scanned regardless of user config.
    Bug reported by John Hiemenz, thanks!
    
  582. rswindell
    Thu Apr 25 2019 06:39 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.90 1.91 diff

    Log Message:
    PCBoard @POS:nn is 1-based according to Ozz Nixon.
    
  583. nightfox
    Thu Apr 25 2019 06:22 pm PDT

    Modified Files:
    xtrn/DDMsgReader/DDMsgReader.js 1.125 1.126 diff
    xtrn/DDMsgReader/readme.txt 1.21 1.22 diff
    xtrn/DDMsgReader/revision_history.txt 1.8 1.9 diff

    Log Message:
    Version 1.19: If the terminal size is wide enough (at least 86 characters), the
    overall vote scores for the messages  is now displayed in the message list.
    Also, fixed a bug introduced in the previous version where the vote scores were
    no longer being displayed when reading a message.  It's no longer using
    MsgBase.get_index() and uses get_all_msg_headers(), as before, since that's
    what is required for message tallies to be included in the message headers.
    
  584. rswindell
    Thu Apr 25 2019 05:33 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.89 1.90 diff

    Log Message:
    Added support for PCBoard @ macros:
    - DELAY:nn (delay nn 10ths of a second)
    - POS:nn (move cursor to position nn, not sure if nn is 0 or 1-based)
    - CLREOL (same as CLR2EOL)
    - YESCHAR (the character/key for "Yes", from text.dat YNQP string)
    - NOCHAR (the character/key for "No', from text.dat YNQP string)
    
    and for good measure:
    - QUITCHAR (the character/key for "Quit") - not supported by PCBoard
    
  585. rswindell
    Thu Apr 25 2019 05:25 pm PDT

    Modified Files:
    src/sbbs3/putmsg.cpp 1.46 1.47 diff

    Log Message:
    Added support for PCBoard @ macros QOFF and QON:
    QOFF - user cannot abort the display of the file
    QON - user can abort the display of the file
    
  586. rswindell
    Thu Apr 25 2019 04:42 pm PDT

    Modified Files:
    src/sbbs3/putmsg.cpp 1.45 1.46 diff

    Log Message:
    Fix for PCBoard @Xxx code parsing:
    @X00 saves the current color and @XFF restores that saved color.
    Thanks to NuSkooler for the PCBoard manual, which is pretty good.
    
  587. echicken
    Wed Apr 24 2019 08:13 am PDT

    Added Files:
    xtrn/mrc/mrc-client.example.ini NONE 1.1 diff
    xtrn/mrc/mrc-client.js NONE 1.1 diff
    xtrn/mrc/mrc-connector.example.ini NONE 1.1 diff
    xtrn/mrc/mrc-connector.js NONE 1.1 diff
    xtrn/mrc/mrc-session.js NONE 1.1 diff
    xtrn/mrc/readme.txt NONE 1.1 diff

    Log Message:
    An MRC client.  A bit rough around the edges, but it'll do.
    
  588. echicken
    Wed Apr 24 2019 08:11 am PDT
    xtrn/mrc - New directory NONE NONE
    Update of /cvsroot/sbbs/xtrn/mrc
    In directory cvs:/tmp/cvs-serv30090/mrc
    
    Log Message:
    Directory /cvsroot/sbbs/xtrn/mrc added to the repository
    
  589. echicken
    Wed Apr 24 2019 07:33 am PDT

    Modified Files:
    exec/load/scrollbar.js 1.15 1.16 diff

    Log Message:
    Reposition vertical scrollbar if parent frame has moved or been resized.
    
  590. rswindell
    Tue Apr 23 2019 04:07 pm PDT

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.488 1.489 diff
    src/sbbs3/login.cpp 1.27 1.28 diff
    src/sbbs3/mailsrvr.c 1.688 1.689 diff
    src/sbbs3/main.cpp 1.746 1.747 diff
    src/sbbs3/sbbsdefs.h 1.236 1.237 diff
    src/sbbs3/services.c 1.328 1.329 diff
    src/sbbs3/websrvr.c 1.679 1.680 diff

    Log Message:
    Clean up the hostname look-up stuff:
    - getnameinfo() was being called with NI_NUMERICHOST in the mail server and
      web server (but nowhere else)
    - use a singly-defined macro (STR_NO_HOSTNAME) for the "<no name>" string
      rather than copying it about
    - the webserver apparently assumes that session->host_name will always have
      *some* unique value (e.g. the IP address when no hostname is available) - so
      account for that special need <grumble>
    
  591. rswindell
    Tue Apr 23 2019 09:31 am PDT

    Modified Files:
    src/sbbs3/services.c 1.327 1.328 diff

    Log Message:
    Check the relevant service's configured log_level before logging messages
    (e.g. "<service> connection accepted from: <ip_addr> port <num>").
    Some strcpy->SAFECOPY, sprintf->SAFEPRINTF replacements for good measure.
    
  592. rswindell
    Mon Apr 22 2019 10:34 pm PDT

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.120 1.121 diff

    Log Message:
    When scanning for messages "to you", include messages from you and to you
    (i.e. posted to yourself). It's confusing when testing the scan for messages
    "to you" if messages also *from* you aren't listed. :-)
    
  593. rswindell
    Mon Apr 22 2019 10:32 pm PDT

    Modified Files:
    src/sbbs3/js_global.c 1.377 1.378 diff

    Log Message:
    Add missing comma to JSDOC line
    
  594. rswindell
    Mon Apr 22 2019 03:51 pm PDT

    Added Files:
    exec/showavatar.js NONE 1.1 diff

    Log Message:
    A simple script to display a user's avatar somewhere on the terminal screen.
    The default user is the current user. If a different user's avatar is to be
    shown, the user number must be passed on the command-line. Other command-line
    options supported:
      -draw  = use the Graphic.draw() method to display anywhere (requires ANSI)
      -top   = display the avatar at the top of the screen
      -right = display the avatar at the right edge of the screen
      -above = display the avatar above the current cursor position
      
    The -top/right/above options imply "draw", and all require ANSI support.
    The default display method is to simply "show" the avatar (not draw) and that
    does not require ANSI support, but can only display the avatar at the current
    cursor location, left-justified.
    
  595. rswindell
    Mon Apr 22 2019 03:20 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfg.c 1.101 1.102 diff

    Log Message:
    Remove the deprecated '-i' option (alias for -if).
    Don't allow the use of -if, -ix, -ic options when not a *nix build.
    
  596. nightfox
    Thu Apr 18 2019 07:15 pm PDT

    Modified Files:
    exec/SlyEdit.js 1.58 1.59 diff
    exec/SlyEdit_DCTStuff.js 1.18 1.19 diff
    exec/SlyEdit_IceStuff.js 1.26 1.27 diff

    Log Message:
    SlyEdit v1.63: For wide terminals (>80 columns), SlyEdit now allows using the
    full width of the terminal for message text. * NOTE: After upgrading to this
    verison, ensure the option "Record Terminal Width" in SCFG for SlyEdit.  That
    option helps Synchronet ensure that message lines are re-wrapped if the reader
    is using a different terminal size than the author did when writing the
    message.
    
  597. nightfox
    Thu Apr 18 2019 07:13 pm PDT

    Modified Files:
    docs/SlyEdit_ReadMe.txt 1.45 1.46 diff
    docs/SlyEdit_Upgrading.txt 1.6 1.7 diff

    Log Message:
    Updated for SlyEdit 1.63
    
  598. rswindell
    Tue Apr 16 2019 09:07 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.65 1.66 diff

    Log Message:
    Better onlien help for the quotewrap width value.
    
  599. rswindell
    Tue Apr 16 2019 08:58 pm PDT

    Modified Files:
    exec/fseditor.js 1.91 1.92 diff

    Log Message:
    when wrapping quoted text, leave room for ' > '
    
  600. rswindell
    Tue Apr 16 2019 01:57 am PDT

    Modified Files:
    exec/fseditor.js 1.90 1.91 diff

    Log Message:
    Better support for terminals > 80 columns wide:
    Don't use a hard-coded value of 76 for word_wrap length argument.
    Don't use the default length of 79 for the quote_msg() call.
    Display a full bar across the screen for the quote window separator
    
  601. rswindell
    Tue Apr 16 2019 01:54 am PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.64 1.65 diff

    Log Message:
    Add a new quotewrap_cols setting for external editors, default is 0 (current
    terminal width) - only used when the QUOTEWRAP option is set. Common values:
    0 - current behavior, wrap the quote file to the current terminal width
    80 - wrap 80 columns specifically (actually, 79)
    9999 - unwrap to long lines (one line per paragraph)
    
  602. rswindell
    Tue Apr 16 2019 01:48 am PDT

    Modified Files:
    src/sbbs3/scfgdefs.h 1.45 1.46 diff
    src/sbbs3/scfglib2.c 1.46 1.47 diff
    src/sbbs3/scfgsave.c 1.78 1.79 diff
    src/sbbs3/writemsg.cpp 1.146 1.147 diff

    Log Message:
    Add a new quotewrap_cols setting for external editors, default is 0 (current
    terminal width) - only used when the QUOTEWRAP option is set. Common values:
    0 - current behavior, wrap the quote file to the current terminal width
    80 - wrap 80 columns specifically (actually, 79)
    9999 - unwrap to long lines (one line per paragraph)
    
    Actually, previously it was wrapping to current terminal width minus 4 when
    QUOTEWRAP was enabled. Now, make that current terminal width minus 1
    (when quotewrap_cols is set to 0).
    
  603. nightfox
    Mon Apr 15 2019 12:44 pm PDT

    Modified Files:
    xtrn/DDMsgReader/DDMsgReader.js 1.124 1.125 diff
    xtrn/DDMsgReader/readme.txt 1.20 1.21 diff
    xtrn/DDMsgReader/revision_history.txt 1.7 1.8 diff

    Log Message:
    Made use of the new MsgBase.get_index() function (if available) for better
    performance.  Added 'undefined' checks for some of the messaeg attribute
    definitions before adding them to the attribute strings, since some of them
    have changed.  Updated the version to 1.18.
    
  604. rswindell
    Mon Apr 15 2019 03:32 am PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.110 3.111 diff

    Log Message:
    Fix potential crash in create_netmail(), bug introduced in rev 3.108:
    When responding to AreaFix requests, it's normal for create_netmail() to be
    called with a NULL 'msg' argument value - so don't try to dereference it
    (for the "cols" header field value) if it's NULL. Thanks to Mark Lewis for the
    bug report.
    
  605. rswindell
    Fri Apr 12 2019 12:39 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.109 3.110 diff

    Log Message:
    Remove reference to removed/unused enum value: NET_FIDO_ASCII
    
  606. rswindell
    Thu Apr 11 2019 05:17 pm PDT

    Modified Files:
    ctrl/xtrn.cnf 1.40 1.41 diff

    Log Message:
    Enable SAVECOLUMNS in fseditor.js configuration.
    
  607. rswindell
    Thu Apr 11 2019 05:11 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.63 1.64 diff

    Log Message:
    Define and use a new external message editor option: SAVECOLUMNS
    (default: off) - when enabled, the current terminal width (columns) will be
    saved in the msg header.
    When using the internal msg editor or raw intput mode, the columns are always
    saved in the message editor. fseditor.js should have this option enabled.
    In SCFG, this option is called "Record Terminal Width".
    
  608. rswindell
    Thu Apr 11 2019 05:10 pm PDT

    Modified Files:
    src/sbbs3/bulkmail.cpp 1.41 1.42 diff
    src/sbbs3/email.cpp 1.73 1.74 diff
    src/sbbs3/fido.cpp 1.70 1.71 diff
    src/sbbs3/netmail.cpp 1.57 1.58 diff
    src/sbbs3/postmsg.cpp 1.121 1.122 diff
    src/sbbs3/sbbs.h 1.512 1.513 diff
    src/sbbs3/sbbsdefs.h 1.235 1.236 diff
    src/sbbs3/writemsg.cpp 1.145 1.146 diff

    Log Message:
    Define and use a new external message editor option: SAVECOLUMNS
    (default: off) - when enabled, the current terminal width (columns) will be
    saved in the msg header.
    When using the internal msg editor or raw intput mode, the columns are always
    saved in the message editor. fseditor.js should have this option enabled.
    
  609. rswindell
    Thu Apr 11 2019 01:30 pm PDT

    Modified Files:
    src/sbbs3/js_bbs.cpp 1.180 1.181 diff

    Log Message:
    Resolve MSVC warning about boolean conversion.
    
  610. rswindell
    Thu Apr 11 2019 01:29 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.111 1.112 diff

    Log Message:
    More cruft (unused enum value) removal.
    
  611. rswindell
    Thu Apr 11 2019 04:09 am PDT

    Modified Files:
    exec/load/smbdefs.js 1.7 1.8 diff

    Log Message:
    Re-sync with smbdefs.h:
    - Changed MSG_TRUNCFILE to MSG_MIMEATTACH
    - Removed unused netattr bit definitions.
    
  612. rswindell
    Thu Apr 11 2019 04:04 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.687 1.688 diff

    Log Message:
    Set the (new) MIMEATTACH auxattr flag when receiving mail messages that contain
    MIME-encoded/embedded attachments.
    We probably will want to do this for SMTP-posted messages (to subs) too.
    
  613. rswindell
    Thu Apr 11 2019 04:03 am PDT

    Modified Files:
    src/smblib/smbtxt.c 1.39 1.40 diff

    Log Message:
    smb_countattachments() now works - needed a filename buffer even though we
    don't care about filenames.
    smb/mime_getattachment() now supports filenames with spaces in them. If we need
    to strip or convert to short filenames, do that in the application/script code,
    not in smblib.
    
  614. rswindell
    Thu Apr 11 2019 03:59 am PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.88 1.89 diff

    Log Message:
    Redefine the unused MSG_TRUNCFILE msg auxattr flag to MSG_MIMEATTACH, used to
    indicate that a message's body text contains one or more MIME-encoded/embedded
    attachments - so that entities won't have to parse the message headers/body
    to determine whether or not a message has MIME-attachments.
    
  615. rswindell
    Thu Apr 11 2019 03:59 am PDT

    Modified Files:
    src/smblib/smbdefs.h 1.110 1.111 diff

    Log Message:
    Redefine the unused MSG_TRUNCFILE msg auxattr flag to MSG_MIMEATTACH, used to
    indicate that a message's body text contains one or more MIME-encoded/embedded
    attachments - so that entities won't have to parse the message headers/body
    to determine whether or not a message has MIME-attachments.
    
  616. rswindell
    Thu Apr 11 2019 03:34 am PDT

    Modified Files:
    src/smblib/smbtxt.c 1.38 1.39 diff

    Log Message:
    Fix off-by-one stack corruption introduced in rev 1.35.
    
  617. rswindell
    Thu Apr 11 2019 03:08 am PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.238 1.239 diff

    Log Message:
    The *_net_addr hfields can have a valid string even when the corresponding
    *_net_type hfield has a value of 0 (NET_NONE) - according to smbdefs.h.
    
  618. rswindell
    Thu Apr 11 2019 03:03 am PDT

    Modified Files:
    exec/showmsgavatar.js 1.2 1.3 diff

    Log Message:
    Use the new bbs.msghdr_top_of_screen property to determine if the avatar should
    be shown at the top of the screen or relative to the bottom of the header.
    
  619. rswindell
    Thu Apr 11 2019 03:01 am PDT

    Modified Files:
    src/sbbs3/main.cpp 1.745 1.746 diff
    src/sbbs3/getmsg.cpp 1.80 1.81 diff
    src/sbbs3/js_bbs.cpp 1.179 1.180 diff
    src/sbbs3/js_console.cpp 1.124 1.125 diff
    src/sbbs3/sbbs.h 1.511 1.512 diff

    Log Message:
    Define and use sbbs_t::msghdr_tos (exposed via JS as
    console.msghdr_top_of_screen):
    a hack to let scripts know whether the most-recently displayed message header
    was displayed on the top of the terminal screen (or not). This allows us to
    show avatars at the top of the screen when the header is up there, rather than
    relevative to the bottom of the header (the pos can vary, depending on stuff).
    
  620. rswindell
    Thu Apr 11 2019 01:47 am PDT

    Modified Files:
    src/sbbs3/userdat.c 1.213 1.214 diff

    Log Message:
    MSVC doesn't have/define ssize_t.
    
  621. rswindell
    Thu Apr 11 2019 01:44 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.686 1.687 diff

    Log Message:
    Parse the *first* email address found in "To" header fields, not the last.
    
  622. rswindell
    Thu Apr 11 2019 01:32 am PDT

    Modified Files:
    src/sbbs3/mailsrvr.c 1.685 1.686 diff

    Log Message:
    RFC822 "To" fields can contain multiple names/addresses, so can't use
    strrchr() here to find terminating chars (quotes, parens, brackets).
    e.g. '"Joe Shmoe" <joe@shmoe.com>, "Fred Smith" <fred@smith.org>'
    would be parsed as 'Joe Shmoe" <joe@shmoe.com>, "Fred Smith'.
    
  623. rswindell
    Wed Apr 10 2019 06:30 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.237 1.238 diff

    Log Message:
    Added msg header 'text_length' property, which is usually the same as
    'data_length', but not always (e.g. may include text from some header
    fields, excludes any non-text data fields).
    Mark 'data_length' msg header property as read-only.
    
  624. rswindell
    Wed Apr 10 2019 06:19 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.87 1.88 diff
    src/sbbs3/mailsrvr.c 1.684 1.685 diff
    src/sbbs3/msg_id.c 1.13 1.14 diff
    src/sbbs3/prntfile.cpp 1.32 1.33 diff
    src/sbbs3/readmsgs.cpp 1.119 1.120 diff
    src/sbbs3/smbutil.c 1.130 1.131 diff
    src/sbbs3/useredit.cpp 1.53 1.54 diff
    src/sbbs3/websrvr.c 1.678 1.679 diff
    src/sbbs3/writemsg.cpp 1.144 1.145 diff

    Log Message:
    Address new-found safe_snprintf() usage problems/warnings (thanks GCC!).
    
  625. rswindell
    Wed Apr 10 2019 06:00 pm PDT

    Modified Files:
    src/smblib/smbadd.c 1.40 1.41 diff
    src/smblib/smballoc.c 1.13 1.14 diff
    src/smblib/smbfile.c 1.14 1.15 diff
    src/smblib/smbhash.c 1.35 1.36 diff
    src/smblib/smblib.c 1.191 1.192 diff

    Log Message:
    Address new-found safe_snprintf() usage problems/warnings (thanks GCC!).
    
  626. rswindell
    Wed Apr 10 2019 05:47 pm PDT

    Modified Files:
    src/xpdev/dirwrap.c 1.104 1.105 diff

    Log Message:
    Address GCC warning: field precision specifier '.*' expects argument of type
    'int'
    
  627. rswindell
    Wed Apr 10 2019 05:46 pm PDT

    Modified Files:
    src/xpdev/genwrap.h 1.114 1.115 diff

    Log Message:
    Catch (warn about) safe_snprintf() usage problems when building with GCC.
    
  628. rswindell
    Wed Apr 10 2019 05:41 pm PDT

    Modified Files:
    src/sbbs3/atcodes.cpp 1.86 1.87 diff

    Log Message:
    Remove never-used msg network-attribute definitions.
    
  629. rswindell
    Wed Apr 10 2019 05:36 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.109 1.110 diff

    Log Message:
    Remove never-used msg network-attribute definitions.
    
  630. rswindell
    Wed Apr 10 2019 05:12 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.236 1.237 diff
    src/sbbs3/mailsrvr.c 1.683 1.684 diff

    Log Message:
    Removing a bunch of header field type definition that seemed like a good idea
    back in 1993, but were never needed/used.
    
  631. rswindell
    Wed Apr 10 2019 05:11 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.190 1.191 diff
    src/smblib/smbdefs.h 1.108 1.109 diff

    Log Message:
    Removing a bunch of header field type definition that seemed like a good idea
    back in 1993, but were never needed/used.
    
  632. rswindell
    Wed Apr 10 2019 03:54 pm PDT

    Modified Files:
    src/smblib/smbdefs.h 1.107 1.108 diff
    src/smblib/smblib.h 1.91 1.92 diff
    src/smblib/smblib.c 1.189 1.190 diff
    src/smblib/smbtxt.c 1.37 1.38 diff

    Log Message:
    Introduce and use convenience pointers for MIME-Version and Content-Type
    header fields. Eliminate smb_getcontenttype() - now unnecessary.
    
  633. rswindell
    Wed Apr 10 2019 02:18 pm PDT

    Modified Files:
    src/smblib/smbtxt.c 1.36 1.37 diff

    Log Message:
    Ammendment to previous commit: "Content-type:" is already removed from
    the string being passed around.
    
  634. rswindell
    Wed Apr 10 2019 02:10 pm PDT

    Modified Files:
    src/smblib/smblib.h 1.90 1.91 diff
    src/smblib/smbtxt.c 1.35 1.36 diff

    Log Message:
    Added smb_getcontenttype(): returns the MIME content-type of the message
    or NULL if not relevant (not a MIME-encoded message).
    Added smb_countattachments(): returns the number of file attachments in a
    MIME-encoded message.
    Added SMBMSGTXT_NO_TAILS definition to be used in place of '0' for
    common smb_getmsgtxt() mode argument value.
    The amount of white-space after "Content-Type:" and the content-type value
    is now more flexible (0 or +1 spaces/tabs are fine).
    
  635. rswindell
    Wed Apr 10 2019 01:03 pm PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.79 1.80 diff
    src/sbbs3/sbbsecho.c 3.108 3.109 diff

    Log Message:
    Added buffer (filename) overflow protection to smb_getattachment().
    
  636. rswindell
    Wed Apr 10 2019 01:02 pm PDT

    Modified Files:
    src/smblib/smblib.h 1.89 1.90 diff
    src/smblib/smbtxt.c 1.34 1.35 diff

    Log Message:
    Added buffer (filename) overflow protection to smb_getattachment().
    
  637. rswindell
    Wed Apr 10 2019 12:34 pm PDT

    Modified Files:
    src/sbbs3/download.cpp 1.55 1.56 diff

    Log Message:
    sprintf -> SAFEPRINTF replacements.
    sendfile() no longer logs "attachment" when a file description is provided.
    
  638. rswindell
    Wed Apr 10 2019 12:33 am PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.78 1.79 diff
    src/sbbs3/readmail.cpp 1.91 1.92 diff

    Log Message:
    Missed the init of fd.dir.
    
  639. rswindell
    Wed Apr 10 2019 12:30 am PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.77 1.78 diff
    src/sbbs3/js_bbs.cpp 1.178 1.179 diff
    src/sbbs3/readmail.cpp 1.90 1.91 diff
    src/sbbs3/sbbs.h 1.510 1.511 diff

    Log Message:
    Move the download file attachment logic from readmail() to a new function:
    download_file_attachments() and expose via new JS "bbs" method. Currently
    this only reall works for the mail base.
    
  640. rswindell
    Tue Apr 09 2019 11:57 pm PDT

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.118 1.119 diff

    Log Message:
    sprintf() -> SAFEPRINTF replacements.
    
  641. rswindell
    Tue Apr 09 2019 11:54 pm PDT

    Modified Files:
    src/sbbs3/readmail.cpp 1.89 1.90 diff

    Log Message:
    sprintf() -> SAFEPRINTF replacements.
    
  642. rswindell
    Tue Apr 09 2019 05:18 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.509 1.510 diff
    src/sbbs3/msgtoqwk.cpp 1.55 1.56 diff
    src/sbbs3/qwktomsg.cpp 1.70 1.71 diff
    src/sbbs3/pack_qwk.cpp 1.82 1.83 diff
    src/sbbs3/pack_rep.cpp 1.48 1.49 diff
    src/sbbs3/un_qwk.cpp 1.55 1.56 diff
    src/sbbs3/un_rep.cpp 1.73 1.74 diff

    Log Message:
    Pass an smb_t* to QWK msg import and export functions rather than a subnum
    since the smb_t already contains a subnum and we were passing a pointer to the
    sbbs_t::smb to lower-level called-functions anyway.
    Let's not mix-up class-scope with function arguments.
    
  643. rswindell
    Tue Apr 09 2019 03:07 pm PDT

    Modified Files:
    src/sbbs3/userdat.c 1.212 1.213 diff

    Log Message:
    putuserrec return an error if write() fails.
    
  644. rswindell
    Tue Apr 09 2019 02:33 pm PDT

    Modified Files:
    src/sbbs3/xtrn.cpp 1.246 1.247 diff

    Log Message:
    Fix the missing carriage-returns in the shell (bash) prompts by always building
    with the stderr logging
    support (in *nix builds) - but run-time disable as desired via EX_NOLOG option.
    I've been wanting to get
    rid of that "XTERN_*" macro for a long time anyway (it's "XTRN" damn-it!). :-)
    
  645. rswindell
    Tue Apr 09 2019 02:13 pm PDT

    Modified Files:
    exec/str_cmds.js 1.45 1.46 diff

    Log Message:
    Updated bbs.exec() mode flags (use EX_STDIO instead of EX_OUTR|EX_INR).
    Added EX_NOLOG to *nix shell mode - don't log the shell output.
    
  646. rswindell
    Tue Apr 09 2019 02:10 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.86 1.87 diff

    Log Message:
    Define EX_STDIO for convenience (short-hand for EX_STDIN|EX_STDOUT)
    
  647. rswindell
    Tue Apr 09 2019 02:06 pm PDT

    Modified Files:
    exec/load/sbbsdefs.js 1.85 1.86 diff

    Log Message:
    Update external() mode flags definition (re-sync with sbbsdefs.h):
    - Renamed EX_INR and EX_OUTR to EX_STDIN and EX_STDOUT
      (with duplicate variables for backwards compatibility)
    - Removed long-obsolete EX_OUTL, EX_SWAP
    - Added (new) EX_NOLOG
    
  648. rswindell
    Tue Apr 09 2019 01:58 pm PDT

    Modified Files:
    src/sbbs3/sbbsdefs.h 1.234 1.235 diff
    src/sbbs3/xtrn.cpp 1.245 1.246 diff

    Log Message:
    Define and support EX_NOLOG mode flag to sbbs_t::external(), if set,
    intercepted output to stderr won't be logged.
    
  649. rswindell
    Tue Apr 09 2019 01:48 pm PDT

    Modified Files:
    src/sbbs3/sbbsdefs.h 1.233 1.234 diff

    Log Message:
    Remove some cruft xtrn_t.misc bit definitions (WORDWRAP*), never used.
    Since QUOTEWRAP *is* used, just define that bit flag specifically.
    
  650. rswindell
    Tue Apr 09 2019 01:26 pm PDT

    Modified Files:
    src/sbbs3/sbbs.h 1.508 1.509 diff
    src/sbbs3/main.cpp 1.744 1.745 diff

    Log Message:
    Reimplement smb_stack() as an sbbs_t member function using a member linked
    list (smb_list) for thread-safe SMB stack storage.
    
  651. rswindell
    Tue Apr 09 2019 01:25 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.188 1.189 diff
    src/smblib/smblib.h 1.88 1.89 diff

    Log Message:
    Eliminate smb_stack(), SMB_STACK_* as this implementation is non-thread-safe
    and frankly could cause all kinds of havok with multiple thread (e.g. nodes)
    pushing and popping SMB's concurrently. eek.
    
  652. rswindell
    Tue Apr 09 2019 12:24 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.235 1.236 diff

    Log Message:
    Resolve GCC warning: unused variable 'argv'
    
  653. nightfox
    Mon Apr 08 2019 01:44 pm PDT

    Modified Files:
    xtrn/slyvote/readme.txt 1.5 1.6 diff
    xtrn/slyvote/slyvote.js 1.6 1.7 diff

    Log Message:
    More use of get_index() if available, to help speed things up a bit.  Also,
    made a further optimization: when checking a sub-board if it has polls, check
    in reverse rather than forward.  Since polls & voting is a relatively recent
    feature in Synchronet, hopefully it should finish faster going in reverse.
    
  654. nightfox
    Sun Apr 07 2019 04:07 pm PDT

    Modified Files:
    xtrn/slyvote/readme.txt 1.4 1.5 diff
    xtrn/slyvote/slyvote.js 1.5 1.6 diff

    Log Message:
    SlyVote v1.02: Now uses the new get_index() messagebase function, if available,
    for getting the message index objects when determining if a sub-board has polls
    (in the subBoardHasPolls() function).  get_index() is faster than iterating
    through all messages and calling get_msg_index() for each message.
    
  655. rswindell
    Sat Apr 06 2019 01:02 am PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.234 1.235 diff

    Log Message:
    MsgBase.put_msg_header() now updates the internal (smbmsg_t) representation
    of the message header so that functions that need it (e.g. bbs.show_msg_header)
    don't use/show stale data. This change requires the updated smb_copymsgmem()
    which clear/sets message convenience pointers upon copying hfields from one
    message header to another.
    
  656. rswindell
    Sat Apr 06 2019 01:00 am PDT

    Modified Files:
    src/smblib/smblib.c 1.187 1.188 diff

    Log Message:
    smb_copymsgmem() fix:
    Did not clear/set convenience pointers (e.g. msg.subj), so they would point
    to the source message hfield_dat buffers which may be freed or garbage.
    Apparently nothing that used smb_copymsgmem() used the convenience pointers
    (before now), so it hasn't been a problem before now. <shrug>
    It became a problem becaue I'm going to use this function in js_put_msg_header
    to fix a problem where the underlying smbmsg_t representation is not current
    even after MsgBase.put_msg_header() is used.
    
  657. rswindell
    Fri Apr 05 2019 05:39 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.233 1.234 diff

    Log Message:
    New MsgBase method: get_index() - returns an array of all message index records
    (objects, in the same format as returned by the get_mgs_index() method)
    much faster than iterating through a loop, calling the get_msg_index() method
    for each message. If you want to load messages (e.g. headers, text), filtering
    by criteria found in the message index (attributes, to/from user, subject CRC)
    loading a list of indexes and filtering before calling get_msg_header() for the
    selected messages is much faster than previously available MsgBase object
    methods (e.g. get_all_msg_headers()). If you don't need to filter the loaded
    messages (you really want *all* message headers), then get_index() is of no
    benefit to you, the script-writer. This is most useful for the "mail" msgbase
    where selective loading of messages is more common.
    
  658. rswindell
    Fri Apr 05 2019 02:44 pm PDT

    Modified Files:
    src/sbbs3/wordwrap.c 1.43 1.44 diff

    Log Message:
    There appears to be a few places in this file that treat ^A^A as a literal
    Ctrl-A (ASCII 1) char. This is wrong. A literal Ctrl-A sequence is ^AA.
    I'm only addressing one of those instances in this commit since it *also*
    appears to be an off-by-one bug where it's treating *all* Ctrl-A sequences as
    though they were ^AA - so just #ifdef'ing out until Deuce takes a look at this.
    
  659. rswindell
    Tue Apr 02 2019 02:04 am PDT

    Modified Files:
    exec/yesnobar.src 1.7 1.8 diff
    exec/noyesbar.src 1.6 1.7 diff

    Log Message:
    Support question text.dat strings that begin with a "\1?" (conditional
    blank line) sequence.
    
  660. rswindell
    Tue Apr 02 2019 12:29 am PDT

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.117 1.118 diff

    Log Message:
    Always display a no/yes prompt before deleting msgs with the 'D' key
    (use the sysop 'D'elete command to quickly delete a range of messages).
    
  661. rswindell
    Mon Apr 01 2019 03:08 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.232 1.233 diff

    Log Message:
    Fix the message base corruption caused by previous committed changes to
    js_put_msg_header (MsgBase.put_msg_header) - we can't free the memory
    associated with 'gotten' msg header. Just use the header offset from the
    header retrieved via MsgBase.get_msg_header() - for fast lookup.
    Also fixed an innocuous extra increment of 'n' in argv/argc loop.
    
  662. rswindell
    Mon Apr 01 2019 02:58 pm PDT

    Modified Files:
    src/sbbs3/smbutil.c 1.129 1.130 diff

    Log Message:
    More detail in help for umask option (use leading 0 for octal).
    
  663. rswindell
    Sun Mar 31 2019 02:19 pm PDT

    Modified Files:
    src/sbbs3/scfg/scfgxtrn.c 1.62 1.63 diff

    Log Message:
    Enable the "Word-wrap Quoted Text" (QUOTEWRAP) editor setting by default.
    Updated help text and option name, a bit.
    
  664. rswindell
    Sun Mar 31 2019 02:01 pm PDT

    Modified Files:
    ctrl/xtrn.cnf 1.39 1.40 diff

    Log Message:
    Enable word-wrapped quote files for external message editors by default.
    
  665. rswindell
    Sat Mar 30 2019 09:32 pm PDT

    Modified Files:
    src/sbbs3/sbbscon.c 1.273 1.274 diff

    Log Message:
    Added warning log messages when disabling server recycle support due to 
    Linux system limitations and user/port configurations of sbbs.
    Add some parens around bit-wise "and" (&) checks too.
    
  666. rswindell
    Tue Mar 26 2019 02:08 am PDT

    Modified Files:
    src/sbbs3/fido.cpp 1.69 1.70 diff

    Log Message:
    sbbs_t::netmail() should return the result of qnetmail(), when called.
    Nobody checks the netmail() return value apparently, but this has been a bug
    since ... forever.
    
  667. rswindell
    Tue Mar 26 2019 12:45 am PDT

    Modified Files:
    src/sbbs3/fido.cpp 1.68 1.69 diff
    src/sbbs3/netmail.cpp 1.56 1.57 diff
    src/sbbs3/sbbs.h 1.507 1.508 diff

    Log Message:
    Fix (likely new) bug where QWK netmail could not be quoted when replying.
    
  668. rswindell
    Sun Mar 24 2019 03:51 am PDT

    Modified Files:
    exec/load/avatar_lib.js 1.18 1.19 diff

    Log Message:
    The draw() and draw_bin() methods now support an additional, optional 'top'
    argument which specifies that the avatar should be drawn at the top of the
    screen.
    
  669. rswindell
    Sun Mar 24 2019 02:28 am PDT

    Modified Files:
    src/sbbs3/getmsg.cpp 1.76 1.77 diff
    src/sbbs3/js_bbs.cpp 1.177 1.178 diff
    src/sbbs3/js_console.cpp 1.123 1.124 diff
    src/sbbs3/js_msgbase.c 1.231 1.232 diff
    src/sbbs3/putmsg.cpp 1.44 1.45 diff
    src/sbbs3/readmail.cpp 1.88 1.89 diff
    src/sbbs3/readmsgs.cpp 1.116 1.117 diff
    src/sbbs3/sbbs.h 1.506 1.507 diff
    src/sbbs3/writemsg.cpp 1.143 1.144 diff

    Log Message:
    New JS bbs methods:
    - bbs.show_msg()
    - bbs.show_msg_header()
    Re-worked the JS bbs.netmail() implementation
    sbbs::show_msg(), show_msghdr(), msgtotxt() now take an smb_t* argument
    (don't use the pseudo-global 'smb' in these functions any longer)
    sbbs_t::putmsg() and JS console.putmsg() now accept an optional orig_columns
    argument to specify the original column width of a text for intelligent
    re-word-wrapping (e.g. as taken from a message header field). Previously, the
    original-column value was hard-coded to 80 columns (technically, 79).
    sbbs_t::show_msghdr() no longer sends a CRLF if the cursor is already at the
    top-of-screen (TOS).
    sbbs_t::show_msg() now uses the stored "columns" msg header fields to pass to
    putmsg() to intelligently re-word-wrap message bodies for display.
    sbbs_t::show_msg() and msgtotxt() return bool now instead of void.
    JS MsgBase.get_all_msg_headers() now supports an optional "expand_fields"
    argument (defaults to true). I contemplated just getting rid of the (few)
    expanding header fields (more like default-value-header fields, like 'id'), but
    decided against it, at least for now.
    JS MsgBase.put_msg_header(), the "number_or_offset" argument is optional and
    not needed if a header object argument is provided. Make this clear in this JS
    docs for this method
    
    Note:
    I sat on this commit for a while because I noticed occasional errors like this:
        Node 1 <Digital Man> !ERROR 2 (No such file or directory) (WinError 0) in
        readmsgs.cpp line 217 (sbbs_t::loadposts) locking 
        "path/to/sub" access=-100 info=smb_locksmbhdr msgbase not open
    started cropping up after introducing these changes and which I never
    root-caused. But after a clean-build and waiting a week, I haven't seen it
    again, so hopefully it was just a incomplete rebuild issue and not a new bug.
    
  670. rswindell
    Sun Mar 24 2019 01:57 am PDT

    Modified Files:
    src/sbbs3/netmail.cpp 1.55 1.56 diff

    Log Message:
    Better default parameter value handling in sbbs_t::inetmail().
    
  671. rswindell
    Sun Mar 24 2019 01:55 am PDT

    Modified Files:
    src/sbbs3/js_file.c 1.177 1.178 diff

    Log Message:
    Updated JS doc strings.
    
  672. rswindell
    Sun Mar 24 2019 01:54 am PDT

    Modified Files:
    src/sbbs3/fido.cpp 1.67 1.68 diff

    Log Message:
    Support netmail addresses (e.g. Internet e-mail addresses) longer than the 35
    character limit imposed by FidoNet message "to" fields, in sbbs_t::netmail().
    Use the regarding-message from_net field when a 'to' field is not passed to
    sbbs_t::netmail()
    
  673. rswindell
    Sun Mar 24 2019 12:11 am PDT

    Modified Files:
    src/sbbs3/sbbs_ini.c 1.168 1.169 diff

    Log Message:
    Rename the 2 outbound interface keys that were introduced by Deuce in the big
    IPv6 commit of 2015:
    "OutgoingV4" is now "OutboundInterface" and
    "OutgoingV6" is now "OutboundV6Interface" (which is not yet used)
    
  674. nightfox
    Sat Mar 23 2019 01:03 am PDT

    Modified Files:
    xtrn/slyvote/readme.txt 1.3 1.4 diff
    xtrn/slyvote/slyvote.js 1.4 1.5 diff

    Log Message:
    SlyVote version 1.01: Changed "voting area" verbage to "sub-board".  Updated
    the main screen to show the number of polls the user has voted on & the number
    remaining.  Updated the sub-board choosing to allow choosing the message group
    first, and load the sub-board information (such as whether each sub-board has
    polls) only when needed, rather than loading all the configured sub-boards, to
    help cut down the loading time when choosing a sub-board.
    
  675. nightfox
    Sat Mar 23 2019 01:00 am PDT

    Modified Files:
    exec/load/dd_lightbar_menu.js 1.1 1.2 diff

    Log Message:
    Added the AddAdditionalQuitKeys() method, to add additional key characters to
    quit out of the meu in addition to ESC.  It takes an array of key characters as
    strings.  For example:
    lbMenu.AddAdditionalQuitKeys(["q", "Q"]);
    
  676. rswindell
    Fri Mar 22 2019 02:29 pm PDT

    Modified Files:
    src/xpdev/wrapdll.h 1.7 1.8 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  677. rswindell
    Fri Mar 22 2019 02:29 pm PDT

    Modified Files:
    src/uifc/uifc.h 1.93 1.94 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  678. rswindell
    Fri Mar 22 2019 02:29 pm PDT

    Modified Files:
    src/smblib/base64.h 1.7 1.8 diff
    src/smblib/crc32.h 1.17 1.18 diff
    src/smblib/lzh.h 1.12 1.13 diff
    src/smblib/md5.h 1.6 1.7 diff
    src/smblib/smblib.h 1.87 1.88 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  679. rswindell
    Fri Mar 22 2019 02:28 pm PDT

    Modified Files:
    src/sbbs3/ctrl/makelibs.bat 1.11 1.12 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  680. rswindell
    Fri Mar 22 2019 02:28 pm PDT

    Modified Files:
    src/sbbs3/dat_rec.h 1.4 1.5 diff
    src/sbbs3/ftpsrvr.h 1.57 1.58 diff
    src/sbbs3/js_rtpool.c 1.31 1.32 diff
    src/sbbs3/js_rtpool.h 1.5 1.6 diff
    src/sbbs3/mailsrvr.h 1.87 1.88 diff
    src/sbbs3/sbbs.h 1.505 1.506 diff
    src/sbbs3/services.h 1.44 1.45 diff
    src/sbbs3/ssl.h 1.14 1.15 diff
    src/sbbs3/startup.h 1.83 1.84 diff
    src/sbbs3/telnet.h 1.17 1.18 diff
    src/sbbs3/userdat.h 1.70 1.71 diff
    src/sbbs3/websrvr.h 1.55 1.56 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  681. rswindell
    Fri Mar 22 2019 02:28 pm PDT

    Modified Files:
    src/conio/ciolib.h 1.100 1.101 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  682. rswindell
    Fri Mar 22 2019 02:27 pm PDT

    Modified Files:
    src/comio/comio.h 1.9 1.10 diff

    Log Message:
    Use default calling convention (__cdecl) for DLL funcs in Borland builds.
    
    Fix age-old bug with Borland/C++Builder built executables (Windows):
    to achieve compatibility with  the default __cdecl symbol naming rules of
    Visual C++, we were using __stdcall convention for DLL functions when
    building code with Borland/C++Builder tools and using the default (__cdecl)
    convention when building with Microsoft (Visual C++) tools. Although this
    allowed symbols to be located when linking, the calling convention mismatch
    caused a stack cleanup issue that very rarely manifested itself in a bug
    (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
    the calling conventions was unintentional (I thought the default for MSVC
    DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
    worked 99% of the time, I didn't realize there was an underlying issue. So I
    now work-around the DLL symbol naming mismatch using a command-line option (-a)
    passed to implib in src/sbbs3/ctrl/makelibs.bat
    
    I had previously worked-around exceptions when calling MSVC DLL functions in
    sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
    rather than a user control (e.g. button) event handler. Those work-arounds can
    now be removed.
    
    The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
    to many other projects' header files in cvs.synchro.net. In the future, we may
    want to just remove all instances of *CALL since they now serve no purpose and
    appear as useless "Kruft" (but do allow us to more-easily globally change DLL
    function calling conventions if/when necessary in the future).
    
  683. rswindell
    Fri Mar 22 2019 07:23 am PDT

    Modified Files:
    exec/load/termcapture_lib.js 1.6 1.7 diff

    Log Message:
    If the capture port is an emptry string, use default port for protocol.
    
  684. rswindell
    Wed Mar 20 2019 03:41 pm PDT

    Modified Files:
    exec/sbbslist.js 1.52 1.53 diff

    Log Message:
    Added support for "lock" and "unlock" commands which will just lock (or unlock)
    the list database (sbbslist.json) for external processing/modification. When
    run via jsexec (as intended), jsexec will return 0 if the lock/unlock operation
    was successful, -1 otherwise. It would be wise to check the errorlevel/return
    value of jsexec for successful lock before operating on the list file.
    
  685. rswindell
    Wed Mar 20 2019 03:18 pm PDT

    Modified Files:
    exec/sbbslist.js 1.51 1.52 diff

    Log Message:
    Lock the database during the "backup" operation.
    If the list is not sorted and the (capital) 'S' key is used (in browse mode),
    sort by the last column instead of the first.
    
  686. rswindell
    Wed Mar 20 2019 03:15 pm PDT

    Modified Files:
    exec/load/sbbslist_lib.js 1.22 1.23 diff

    Log Message:
    Use a lock file (sbbslist.json.lock) to protect the database (sbbslist.json)
    from corruption during concurrent operations. Although the list file is not
    open shareable, I was observing corruption on Vertrauen when multiple sbbslist
    tasks (e.g. verification and maintenance) were running concurrently on
    different systems. The .lock file method is crude, but is working to protect
    the list from concurrent opens of any kind (read or write).
    
  687. rswindell
    Tue Mar 19 2019 04:07 pm PDT

    Modified Files:
    src/sbbs3/gtkchat/chatfuncs.c 1.2 1.3 diff

    Log Message:
    Use DEFFILEMODE when creating *chat.dab files.
    
  688. rswindell
    Tue Mar 19 2019 04:06 pm PDT

    Modified Files:
    src/sbbs3/umonitor/chat.c 1.19 1.20 diff

    Log Message:
    Use DEFFILEMODE when creating *chat.dab files.
    
  689. rswindell
    Tue Mar 19 2019 04:04 pm PDT

    Modified Files:
    src/xpdev/semfile.c 1.6 1.7 diff

    Log Message:
    Use DEFFILEMODE in file creation mode in semfile_signal().
    
  690. rswindell
    Tue Mar 19 2019 04:02 pm PDT

    Modified Files:
    src/smblib/smblib.c 1.186 1.187 diff

    Log Message:
    Use DEFFILEMODE for file creation mode in smb_addcrc() - another potential
    for file permissions issues when smblib creates *.sch files.
    
  691. rswindell
    Tue Mar 19 2019 03:52 pm PDT

    Modified Files:
    src/smblib/smbfile.c 1.13 1.14 diff

    Log Message:
    Use DEFFILEMODE (which is user/group/other read/writeable by default on *nix)
    in smb_open*() when creating msgbase files.
    smblib wasn't using the same default file creation mode (permissions) as
    the rest of the Synchronet executables. smblib was creating msgbase files
    as user read/writeable *only* (no group or other permissions) - so the umask
    value for the group/other permissions flags had no effect on msgbase files
    created via smblib.
    This could lead to permissions issues for other users/groups on *nix systems
    trying to access (read or write) msgbases. No change for non-*nix systems.
    
  692. rswindell
    Tue Mar 19 2019 01:46 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.107 3.108 diff

    Log Message:
    Add "COLS" kludge line to EchoMail msgs too (not just NetMail) - oops.
    
  693. rswindell
    Tue Mar 19 2019 12:48 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.106 3.107 diff

    Log Message:
    Fix the off-by-one error in the COLS kludge line parsing logic.
    Don't store a columns value of 0 (the default).
    Use SAFEPRINTF in place of sprintf() in parse_control_line().
    
  694. rswindell
    Tue Mar 19 2019 12:34 pm PDT

    Modified Files:
    src/sbbs3/sbbsecho.c 3.105 3.106 diff
    src/sbbs3/sbbsecho.h 3.26 3.27 diff

    Log Message:
    Export/import the original message editor column width (when known) as a new
    FidoNet "Kludge line" (control line): "\1COLS: <columns>\r" where <columns>
    is a value between 0 and 255 and a value of 0 is special, meaning "unknown"
    and not normally specified (this is the default assumption when there is no
    "columns"/COLS header field). When a message editor column width is unknown,
    is is normally assumed to have been 80 columns for word-wrapping/re-wrapping
    purposes when displaying the message text.
    
    This feature has worked well for Synchronet's QWK networking (i.e. there are
    far fewer instances of word-wrapping/re-wrapping issues when viewing messages
    on DOVE-Net), so I decided to support this message header field over FTN
    (SBBSecho) as well. Hopefully other FidoNet software authors will notice and
    support this header field in the future as there are still numerous examples
    of word-wrap issues when viewing FidoNet messages. At least Synchronet <->
    Synchronet systems over FidoNet should be able to re-wrap and display all
    message text nicely when both ends support this kludge line.
    
    Incremented SBBSecho version number to 3.07.
    
  695. rswindell
    Fri Mar 15 2019 08:47 pm PDT

    Modified Files:
    src/sbbs3/addfiles.c 1.56 1.57 diff

    Log Message:
    When adding a listfile (e.g. files.bbs), be a bit more strict:
    - filenames must begin with an alpha-numeric char. Might want to relax this in
      the future if it's a problem, but generally filenames on BBSes do begin with
      alpha-numeric characters and this will help us to identify an ignore
      "garbage" filenames in listfiles.
    - always check if the file actually exists, even when parsing the length of
      the file from the listfile. This will also help us to ignore garbage
      filenames.
    - also removed an inexplicable unpadfname() call. Filenames in file lists
      should *not* normally be padded (like "this    .txt") - so I'm not sure why
      this was in there. Perhaps for lists generated from filelist.exe (?). Anyway,
      out of an abundance of caution, removed it. Padded filenames are going away.
    
  696. rswindell
    Fri Mar 15 2019 05:04 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.230 1.231 diff

    Log Message:
    MsgBase.get_all_msg_headers() is now more tolerant of corrupted msg bases,
    or more specifically, if the index (.sid) file is of an unexpected size
    (too big or too small) handle that situation gracefully.
    
  697. rswindell
    Fri Mar 15 2019 04:42 pm PDT

    Modified Files:
    src/syncterm/syncterm.c 1.218 1.219 diff

    Log Message:
    Fix (or work-around?) ScalingFactor issue reported by ogg in fsxNet->FSX BBS:
    The ScalingFactor would always (or usually) reset to 1 and have to be reset
    e.g. to 2, by resizing the window manually, every time SyncTERM was run.
    
    I found that by calling textmode() *after* setscaling() rather than before
    fixed this issue (at least in SDL mode on Ubuntu Linux). Another "fix" that
    worked inserting a small (100ms) delay between the calls to textmode() and
    setscaling() - so there appears to have been a race condition and calling
    setccaling() too soon after text mode() would fail to change the window
    size successfully. Reordering these calls seems to work 100% of the time
    without any additional delays. <shrug> Deuce would likely know "why" better
    than I.
    
  698. rswindell
    Wed Mar 13 2019 04:41 pm PDT

    Modified Files:
    src/sbbs3/js_msgbase.c 1.229 1.230 diff

    Log Message:
    Rewind the msgbase index file before calling fread(). The fread() would
    fail if the current file pointer (offset) was not currently at the beginning
    of the file. So calling MsgBase.get_all_msg_headers() after previously calling
    any method that read/seeked the index would cause the reported error:
    "index read (xxxx) failed"
    
  699. rswindell
    Wed Mar 13 2019 01:43 am PDT

    Modified Files:
    src/smblib/smbstr.c 1.33 1.34 diff

    Log Message:
    More strict FidoNet address detection (e.g. so IPv6 addresses aren't
    detected as net_type NET_FIDO).
    
  700. rswindell
    Wed Mar 13 2019 12:20 am PDT

    Modified Files:
    src/smblib/smbstr.c 1.32 1.33 diff

    Log Message:
    smb_netaddr_type() (exposed via JS as netaddr_type()) change:
    prior to rev 1.29 of this file (committed almost exactly one year ago), when
    called with any string that did not include an '@', would return NET_NONE (0).
    After rev 1.29, most strings that did not include an '@' would cause the
    function to return NET_QWK (4) - this was not intentional. The intention was
    that FidoNet addresses without an '@' would cause this function to return
    NET_FIDO (2) and I don't exactly remember why that change was made, but
    unfortunately, it wasn't made very well, so other invalid addresses would be
    detected as NET_QWK or NET_INTERNET or even NET_UNKNOWN.
    So before and after this commit:
    "" was NET_UNKNOWN, now NET_NONE
    "1" was NET_FIDO, now NET_FIDO
    "1x" was NET_INTERNET, now NET_NONE
    "1:103" was NET_FIDO, now NET_FIDO (this could use some work)
    "x" was NET_QWK, now NET_NONE
    
  701. rswindell
    Tue Mar 12 2019 07:58 pm PDT

    Modified Files:
    src/sbbs3/addfiles.c 1.55 1.56 diff

    Log Message:
    When extracting FILE_ID.DIZ/DESC.SDI, search through the exractable file
    types twice - first to see if one matches the requirements. If none match,
    then search again just for an extractor matching the file extension.
    Modernize the get_file_diz() function a little bit (e.g. return bool).
    
  702. rswindell
    Tue Mar 12 2019 07:31 pm PDT

    Modified Files:
    src/sbbs3/addfiles.c 1.54 1.55 diff

    Log Message:
    Moved the copy/pasted FILE_ID.DIZ/DESC.SDI code (3 times!?!) into its own
    function.
    Constify mycmdstr() arguments.
    Removed trailing whitespaces.
    No functional changes expected by this commit.
    
  703. rswindell
    Sat Mar 09 2019 04:45 pm PST

    Modified Files:
    src/sbbs3/bat_xfer.cpp 1.38 1.39 diff

    Log Message:
    More safe string management function replacement, even though most (all?) of
    this code is on the chopping block already.
    
  704. rswindell
    Sat Mar 09 2019 03:55 pm PST

    Modified Files:
    ctrl/modopts.ini 1.29 1.30 diff

    Log Message:
    Added new avatar show/draw related settings to the [logon] section used by the
    latest logon.js.
    
  705. rswindell
    Thu Mar 07 2019 11:48 pm PST

    Modified Files:
    src/sbbs3/writemsg.cpp 1.142 1.143 diff

    Log Message:
    Fix (new) potential dereference of NULL (top) pointer in writemsg(), reported
    by Deuce. If 'top' is passed in as NULL, assign a blank string constant to it
    since we dereference top a few places in this function and pass it to putmsg().
    
  706. deuce
    Wed Mar 06 2019 05:11 pm PST

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.487 1.488 diff
    src/sbbs3/js_socket.c 1.225 1.226 diff
    src/sbbs3/mailsrvr.c 1.682 1.683 diff
    src/sbbs3/services.c 1.326 1.327 diff
    src/sbbs3/ssl.c 1.41 1.42 diff
    src/sbbs3/ssl.h 1.13 1.14 diff
    src/sbbs3/websrvr.c 1.677 1.678 diff

    Log Message:
    There appears to be data corruption in cryptlib if a private key is added
    to a second thread before the first has the session set active.  Add calls
    to lock/unlock the certificate to prevent this.
    
    The better options is likely to have a function that adds the key and socket
    and sets the session active in one call and handles the locking internally.
    
    But I'm lazy, so we get the lock functions.
    
  707. rswindell
    Thu Feb 28 2019 03:18 pm PST

    Modified Files:
    exec/load/avatar_lib.js 1.17 1.18 diff

    Log Message:
    Implement an (in-memory) Avatar cache - reducing the number of disk accesses
    when using features that support avatars (e.g. reading msgs, listing files,
    listing BBSes in the BBS list).
    When used in the terminal server, the cache is located in bbs.mods.avatar_cache
    otherwise it's located in the scope of the load()'d library. Applications must
    use the lib's read() method to take advantage of the cache. The other lower
    level functions (e.g. read_localuser, read_netuser) by-pass the cache on read
    but do update the cache with the result. So, generally, avatars should be only
    loaded from disk one time during a session/logon.
    
  708. rswindell
    Thu Feb 21 2019 03:37 pm PST

    Modified Files:
    src/sbbs3/scfg/scfgnet.c 1.41 1.42 diff
    src/sbbs3/scfg/scfgxtrn.c 1.61 1.62 diff

    Log Message:
    Inlcude 'Any' in the help for the event/callout node number.
    
  709. rswindell
    Thu Feb 21 2019 02:36 pm PST

    Modified Files:
    src/sbbs3/scfg/scfgnet.c 1.40 1.41 diff
    src/sbbs3/scfg/scfgxtrn.c 1.60 1.61 diff

    Log Message:
    Introduce "Any" as a possible (and default) "Node number" setting for
    network hub call-outs and timed-events.
    
  710. rswindell
    Thu Feb 21 2019 02:36 pm PST

    Modified Files:
    src/sbbs3/exec.cpp 1.107 1.108 diff
    src/sbbs3/main.cpp 1.743 1.744 diff
    src/sbbs3/sbbsdefs.h 1.232 1.233 diff
    src/sbbs3/scfgdefs.h 1.44 1.45 diff

    Log Message:
    Introduce "Any" as a possible (and default) "Node number" setting for
    network hub call-outs and timed-events.
    
  711. rswindell
    Wed Feb 20 2019 05:49 pm PST

    Modified Files:
    exec/load/http.js 1.42 1.43 diff

    Log Message:
    Improve the details of the "Unable to connect" error exception.
    
  712. rswindell
    Wed Feb 20 2019 05:14 pm PST

    Modified Files:
    ctrl/xtrn.cnf 1.38 1.39 diff

    Log Message:
    Enable FIDOIN and FIDOOUT events by default (the "days of the week" set to
    none already keeps these events from running on an automated schedule).
    
  713. rswindell
    Tue Feb 19 2019 09:43 pm PST

    Modified Files:
    src/sbbs3/bulkmail.cpp 1.40 1.41 diff
    src/sbbs3/email.cpp 1.72 1.73 diff
    src/sbbs3/execfunc.cpp 1.44 1.45 diff
    src/sbbs3/fido.cpp 1.66 1.67 diff
    src/sbbs3/js_bbs.cpp 1.176 1.177 diff
    src/sbbs3/js_msgbase.c 1.228 1.229 diff
    src/sbbs3/mailsrvr.c 1.681 1.682 diff
    src/sbbs3/netmail.cpp 1.54 1.55 diff
    src/sbbs3/newuser.cpp 1.77 1.78 diff
    src/sbbs3/postmsg.cpp 1.120 1.121 diff
    src/sbbs3/readmail.cpp 1.87 1.88 diff
    src/sbbs3/readmsgs.cpp 1.115 1.116 diff
    src/sbbs3/sbbs.h 1.504 1.505 diff
    src/sbbs3/sbbsdefs.h 1.231 1.232 diff
    src/sbbs3/writemsg.cpp 1.141 1.142 diff

    Log Message:
    Reversed course on the WM_QUOTE mode handling in sbbs_t::postmsg()
    (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
    messages.
    
    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().
    
  714. rswindell
    Tue Feb 19 2019 04:13 am PST

    Modified Files:
    src/sbbs3/js_msgbase.c 1.227 1.228 diff

    Log Message:
    Fix long-standing bug in js_ParseMsgHeaderObject which is only (currently)
    used by js_post_msg() (the JS bbs.post_msg() method when used with the
    reply_header object argument) - the private data attached to a message
    header object is of type privatemsg_t, not private_t. This caused the
    dereferences of and assignments to p->smb_result in parse_header_object()
    to corrupt the privatemsg_t->msg memory causing heap corruption (caught
    on Windows debug builds in js_get_msg_header_finalize()) and stack faults
    (caught on Linux-gcc in parse_recipient_object()). This one was hard to
    find. <whew!>
    
  715. rswindell
    Mon Feb 18 2019 11:33 pm PST

    Modified Files:
    src/sbbs3/con_out.cpp 1.94 1.95 diff

    Log Message:
    Re-work the column-counting in outchar().
    I noticed that printable ctrl chars (e.g. 0x18 and 0x19) were not causing the
    current column position to increment, so that got me looking at this code and
    wondering why the LF/FF checking was outside the if(!outchar_esc) condition
    and being executed when CON_R_ECHO is off. So now, using a switch statement,
    it's cleaner and all the printable ctrl chars move the current column position
    correctly.
    
  716. rswindell
    Mon Feb 18 2019 11:26 pm PST

    Modified Files:
    src/sbbs3/postmsg.cpp 1.119 1.120 diff
    src/sbbs3/readmail.cpp 1.86 1.87 diff
    src/sbbs3/readmsgs.cpp 1.114 1.115 diff
    src/sbbs3/sbbs.h 1.503 1.504 diff
    src/sbbs3/writemsg.cpp 1.140 1.141 diff

    Log Message:
    sbbs_t::postmsg() and JS's bbs.post_msg() changes:
    When the WM_QUOTE mode flag is set and the 'remsg' is specified, the original
    message will quoted (excluding message tails, using the proper word-wrapping).
    If the quote file already exists before calling postmsg()/bbs.post_msg(), it
    will be over-written. This allows JS script to initiate reply-posts with quoted
    text without having to create their own quotes file. It also means there's no
    need to call sbbs_t::quotemsg() before calling sbbs_t::postmsg().
    sbbs_t::quotemsg() now takes an smb_t* arg (stop using the sbbs_t 'global'
    smb) and now returns bool.
    
  717. rswindell
    Mon Feb 18 2019 11:15 pm PST

    Modified Files:
    src/sbbs3/js_bbs.cpp 1.175 1.176 diff

    Log Message:
    Fix bbs.post_msg() JSDOC description: mode defaults to WM_NONE, not WM_MODE.
    Renamed js_postmsg() -> js_post_msg() for good measure.
    
  718. rswindell
    Mon Feb 18 2019 11:11 pm PST

    Modified Files:
    src/smblib/smblib.c 1.185 1.186 diff

    Log Message:
    Fixed a couple of function return-value comments.
    
  719. echicken
    Mon Feb 18 2019 11:10 pm PST

    Modified Files:
    xtrn/ansiview/ansiview.js 1.30 1.31 diff

    Log Message:
    Use js.exec_dir; js.startup_dir may be absent or something else entirely.
    
  720. rswindell
    Mon Feb 18 2019 10:35 pm PST

    Modified Files:
    xtrn/ansiview/ansiview.js 1.29 1.30 diff

    Log Message:
    Fix !JavaScript  /sbbs/xtrn/ansiview/ansiview.js line 316: 
         TypeError: settings is undefined  
    Presumably, when settings.ini doesn't exist.
    
  721. rswindell
    Mon Feb 18 2019 06:57 pm PST

    Modified Files:
    exec/logon.js 1.37 1.38 diff

    Log Message:
    Allow control via the [logon] section of ctlr/modopts.ini over Avatar display
    set avatar_show = false to disable the avatar display completely (during logon)
    set avatar_draw_right = false to display the avatar in left screen columns
    set avatar_draw_above = true to display the avatar above the current screen row
    
  722. rswindell
    Mon Feb 18 2019 06:27 pm PST

    Modified Files:
    xtrn/ansiview/ansiview.js 1.28 1.29 diff

    Log Message:
    Resolve reported error (guessing when settings.ini does not exist):
    !JavaScript  /sbbs/xtrn/ansiview/ansiview.js line 313: TypeError: settings is
    null
    
  723. rswindell
    Sun Feb 17 2019 11:40 pm PST

    Modified Files:
    src/comio/comio_nix.c 1.13 1.14 diff

    Log Message:
    #include <fnctl.h> to fix:
    error: 'O_NONBLOCK' undeclared
    ... on Alpine Linux.
    
  724. rswindell
    Sun Feb 17 2019 08:43 pm PST

    Modified Files:
    exec/load/smbdefs.js 1.6 1.7 diff

    Log Message:
    Added missing MsgBase.attributes bit flag definitions:
    - SMB_EMAIL
    - SMB_HYPERALLOC
    - SMB_NOHASH
    
  725. rswindell
    Sun Feb 17 2019 08:04 pm PST

    Modified Files:
    src/xpdev/threadwrap.c 1.36 1.37 diff

    Log Message:
    Work-around reported problem building in a "minimal alpine image":
    error: 'PTHREAD_MUTEX_RECURSIVE_NP' undeclared
    as ported by GeoKM
    
  726. rswindell
    Sun Feb 17 2019 07:14 pm PST

    Modified Files:
    src/sbbs3/js_msgbase.c 1.226 1.227 diff

    Log Message:
    Added support for new(ish) msg header fields: 'editor' and 'columns'.
    
  727. rswindell
    Sun Feb 17 2019 07:09 pm PST

    Modified Files:
    src/smblib/smbdefs.h 1.106 1.107 diff
    src/smblib/smblib.c 1.184 1.185 diff

    Log Message:
    Added a smbmsg_t convenience pointer for the "editor" header field
    (name/version of text editor used, if known).
    
  728. rswindell
    Sun Feb 17 2019 04:53 am PST

    Modified Files:
    exec/load/sbbsdefs.js 1.84 1.85 diff

    Log Message:
    Added a couple of missing sub-board 'settings' flag definitions:
    - SUB_TEMPLATE
    - SUB_MSGTAGS
    
  729. rswindell
    Sun Feb 17 2019 03:56 am PST

    Modified Files:
    src/sbbs3/msg_id.c 1.12 1.13 diff

    Log Message:
    Restore the extra space before the date in the PID value, remove the "Debug"
    designator.
    
  730. rswindell
    Sat Feb 16 2019 10:25 pm PST

    Modified Files:
    src/sbbs3/main.cpp 1.742 1.743 diff
    src/sbbs3/un_rep.cpp 1.72 1.73 diff

    Log Message:
    Beautify and eliminate some of the QWK/REP unpacking output/log msgs.
    Only treat an invalid QWK msg block count (<2) as an error if there is
    more than one msg header in the packet (stop saving so many worthless
    data/file/*.rep.*.bad files).
    
  731. rswindell
    Sat Feb 16 2019 10:22 pm PST

    Modified Files:
    src/sbbs3/qwktomsg.cpp 1.69 1.70 diff

    Log Message:
    Add add_msg_ids() call when creating local msgs from QWK packets.
    
  732. rswindell
    Sat Feb 16 2019 10:21 pm PST

    Modified Files:
    src/sbbs3/tmp_xfer.cpp 1.49 1.50 diff

    Log Message:
    Remove some excess log output "Creating: NEWFILES.DAT", when creating
    file lists during events.
    
  733. rswindell
    Sat Feb 16 2019 10:20 pm PST

    Modified Files:
    src/sbbs3/data_ovl.cpp 1.27 1.28 diff

    Log Message:
    Removed the profiling/debug output from getmsgptrs():
    	"read %u message scan cfg/pointers in %lu ms"
    The message pointer performance problems were resolved a long time ago now
    and this is just noise in the logs.
    
  734. rswindell
    Sat Feb 16 2019 09:24 pm PST

    Modified Files:
    src/sbbs3/chksmb.c 1.66 1.67 diff

    Log Message:
    If message's index offset exactly matches another message, that's already
    reported as "Duplicate index offset", so overlapping headers means the
    index offset must not be an exact duplicate, so we don't report the same
    corrupt message parameter (its offset into the header file) 2 different
    ways.
    
  735. rswindell
    Sat Feb 16 2019 07:30 pm PST

    Modified Files:
    src/sbbs3/msg_id.c 1.11 1.12 diff
    src/sbbs3/postmsg.cpp 1.118 1.119 diff

    Log Message:
    add_msg_ids() will now get the new/next message number if the msg.hdr.number
    is 0 (logic moved from sbbs_t::postmsg()).
    
  736. rswindell
    Sat Feb 16 2019 07:14 pm PST

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.113 1.114 diff

    Log Message:
    When deleting a message from the Read prompt, make it clear (red/flashing)
    as it is easy for a sysop to accidentally hit [D]elete and not realize it.
    
  737. rswindell
    Sat Feb 16 2019 07:13 pm PST

    Modified Files:
    src/sbbs3/email.cpp 1.71 1.72 diff
    src/sbbs3/netmail.cpp 1.53 1.54 diff
    src/sbbs3/postmsg.cpp 1.117 1.118 diff

    Log Message:
    Eliminted unused variable (pid).
    
  738. rswindell
    Sat Feb 16 2019 07:10 pm PST

    Modified Files:
    src/sbbs3/un_rep.cpp 1.71 1.72 diff

    Log Message:
    More console/log output when unpacking email/netmail messages from QWK REP
    packets.
    
  739. rswindell
    Sat Feb 16 2019 07:08 pm PST

    Modified Files:
    src/sbbs3/email.cpp 1.70 1.71 diff
    src/sbbs3/fido.cpp 1.65 1.66 diff
    src/sbbs3/msg_id.c 1.10 1.11 diff
    src/sbbs3/netmail.cpp 1.52 1.53 diff
    src/sbbs3/postmsg.cpp 1.116 1.117 diff
    src/sbbs3/sbbs.h 1.502 1.503 diff

    Log Message:
    QWK-reply-posted email/netmail messages did not contain a Message-ID. Really?
    So I created a single add_msg_ids() function (mostly migrated from postmsg.cpp)
    to make this incredibly easy so any/everywhere that adds a message to a message
    base should be able to call it. This function also creates reply-IDs (when
    relevant) and program ID (Fido-PID) header fields:
    - FIDOPID (always)
    - FIDOMSGID (if an echomail post)
    - FIDOREPLYID (if an echomail reply-post)
    - RFC822MSGID (always)
    - RFC822REPLYID (if a reply)
    
  740. rswindell
    Sat Feb 16 2019 04:12 pm PST

    Modified Files:
    ctrl/modopts.ini 1.28 1.29 diff

    Log Message:
    New keys for the [login], [fingerservice], and [nodelist] sections.
    
  741. rswindell
    Sat Feb 16 2019 04:09 pm PST

    Modified Files:
    exec/login.js 1.16 1.17 diff

    Log Message:
    Enhancement to the failed login/password-email feature:
    If confirm_email_address = false in the [login] section of modopts.ini, do not
    ask the user to confirm their email address before sending password.
    Do not display the email address back to the user (in case they did not already
    know it).
    Send the user a telegram for each failed login attempt (using user alias, not
    number).
    Send the user a telegram when their account info (password) was requested.
    
  742. rswindell
    Sat Feb 16 2019 04:04 pm PST

    Modified Files:
    src/sbbs3/useredit/MainFormUnit.pas 1.10 1.11 diff

    Log Message:
    Fix long-time bug which caused "Cannot open .../user.dat" errors:
    If the user.dat file is already opened in deny-none mode (as is the norm),
    another process (e.g. useredit.exe) cannot simultaneously open it in exclusive
    mode.
    
  743. rswindell
    Sat Feb 16 2019 04:09 am PST

    Modified Files:
    src/smblib/smblib.c 1.183 1.184 diff

    Log Message:
    Performance optimization: When performing sequential index or header reads,
    the read buffer may be utilized more efficiently if you do *not* perform an
    (unnecessary) seek operation just before the read. By eliminating unnecessary
    seeks in smb_getmsgidx() and smb_getmsghdr(), I was able to reduce the time
    required to load 9000+ index and header records over a network (Samba/CIFS)
    share from 15+ seconds to less than 5.
    
  744. rswindell
    Sat Feb 16 2019 03:40 am PST

    Modified Files:
    src/sbbs3/scfgsave.c 1.77 1.78 diff

    Log Message:
    Perform a similar elimination of invalid external program configurations
    (blank names or internal codes) from the total saved to xtrn.cnf.
    
  745. rswindell
    Sat Feb 16 2019 03:38 am PST

    Modified Files:
    src/sbbs3/js_msgbase.c 1.225 1.226 diff

    Log Message:
    MsgBase.get_all_msg_headers() performance improvement:
    read the entire index file in a single read operation
    
  746. rswindell
    Sat Feb 16 2019 02:26 am PST

    Modified Files:
    src/sbbs3/chksmb.c 1.65 1.66 diff

    Log Message:
    Detect and report all messages with overlapping headers.
    This has not actually been an observed problem, but I just realized while
    working on smb optimizations that this condition would not be reported by
    chksmb.
    
  747. rswindell
    Fri Feb 15 2019 03:44 am PST

    Modified Files:
    exec/load/cnfdefs.js 1.7 1.8 diff

    Log Message:
    Use meaningful faddr_t field names (zone, net, node, point).
    Use more verbose names for global msgs.cnf properties (don't mimic the
    scfgdefs.h names).
    
  748. rswindell
    Fri Feb 15 2019 03:11 am PST

    Modified Files:
    exec/exportcfg.js 1.3 1.4 diff

    Log Message:
    Added new exportcfg cfg-types:
            file-prots
            file-extrs
            file-comps
            file-viewers
            file-testers
            file-dlevents
    ... using cfglib.js (wow, that was easy!)
    
  749. rswindell
    Fri Feb 15 2019 03:00 am PST

    Added Files:
    exec/localcopy.js NONE 1.1 diff

    Log Message:
    You ever wanted to test QWK/REP packet transfers or regular file transfers
    locally on your BBS without using X/Y/ZMODEM (or other) actual file transfer
    protocols? Well, now you can. Install this simple script 
    (using 'jsexec localcopy install') and you (sysops only) will get a new
    transfer protocol option for "local" file transfers, which are really just
    file copies between different locations on your BBS/server's file system(s)
    quickly and without any special terminal capabilities (e.g. X/Y/ZMODEM).
    
  750. rswindell
    Fri Feb 15 2019 02:26 am PST

    Modified Files:
    exec/load/cnfdefs.js 1.6 1.7 diff

    Log Message:
    Use 'key' rather than 'mnemonic' for file xfer protocol key (character) value.
    
  751. rswindell
    Thu Feb 14 2019 10:42 pm PST

    Modified Files:
    src/sbbs3/userdat.c 1.211 1.212 diff

    Log Message:
    Now returns negative on failure (i.e. list lock failure):
    - loginAttemptListCount()
    - loginAttemptListClear()
    - loginAttempts()
    
    Now returns 0 on list lock faliure: loginFailure() and loginBanned().
    
  752. rswindell
    Thu Feb 14 2019 10:26 pm PST

    Modified Files:
    src/sbbs3/ctrl/LoginAttemptsFormUnit.cpp 1.8 1.9 diff
    src/sbbs3/ctrl/MainFormUnit.cpp 1.203 1.204 diff

    Log Message:
    Use the UpTimer trick to get around problems calling DLL functions from OnClick
    events when not in "appy-time".
    
  753. rswindell
    Thu Feb 14 2019 09:09 pm PST

    Modified Files:
    src/sbbs3/main.cpp 1.741 1.742 diff

    Log Message:
    Added new semfile to clear the failed login attempt list: "ctrl/clear"
    So now if you need to clear the failed-login/temp-ban list, just 
       'touch /sbbs/ctrl/clear'
    Other changes to the semfiles:
    The terminal server is now identified as "term" rather than "telnet" in the
    (optional) server/protocol specific semfile naming.
    Removed support for the old telnet.rec semfile (long deprecated).
    
  754. rswindell
    Thu Feb 14 2019 07:54 pm PST

    Modified Files:
    src/sbbs3/ctrl/LoginAttemptsFormUnit.cpp 1.7 1.8 diff
    src/sbbs3/ctrl/LoginAttemptsFormUnit.dfm 1.6 1.7 diff
    src/sbbs3/ctrl/LoginAttemptsFormUnit.h 1.3 1.4 diff
    src/sbbs3/ctrl/MainFormUnit.cpp 1.202 1.203 diff
    src/sbbs3/ctrl/MainFormUnit.dfm 1.85 1.86 diff
    src/sbbs3/ctrl/MainFormUnit.h 1.87 1.88 diff

    Log Message:
    Added more visibility into and control over (clearing) of the failed login
    list.
    
  755. rswindell
    Thu Feb 14 2019 07:53 pm PST

    Modified Files:
    src/sbbs3/userdat.c 1.210 1.211 diff
    src/sbbs3/userdat.h 1.69 1.70 diff

    Log Message:
    Created loginAttemptListCount().
    
  756. rswindell
    Thu Feb 14 2019 05:43 pm PST

    Modified Files:
    src/sbbs3/fido.cpp 1.64 1.65 diff

    Log Message:
    Support QWKE "To:" and "Subject:" kludge lines in QWK/REP-imported
    email/netmail messages. Does *not* support the "From:" kludge.
    I know this function needs need to be completely replaced and it's silly to
    have QWK kludge parsing logic in multiple places, but ugh, I didn't want to
    rewrite this just yet.
    
  757. rswindell
    Thu Feb 14 2019 05:37 pm PST

    Modified Files:
    src/sbbs3/scfg/scfgxfr1.c 1.28 1.29 diff

    Log Message:
    Save/restore the menu 'bar' (lightbar) position for various File Options
    sub-menus.
    
  758. rswindell
    Thu Feb 14 2019 05:36 pm PST

    Modified Files:
    src/sbbs3/scfg/scfgmsg.c 1.58 1.59 diff
    src/sbbs3/scfg/scfgsub.c 1.50 1.51 diff
    src/sbbs3/scfg/scfgxfr2.c 1.56 1.57 diff

    Log Message:
    Better protection against configuring invalid (e.g. blank) sub/dir short-names,
    internal code suffixes or grp/lib internal code prefixes.
    More strcpy->SAFECOPY and sprintf -> SAFEPRINTF replacements.
    More use of uifcYesNoOpts.
    
  759. rswindell
    Thu Feb 14 2019 04:06 pm PST

    Modified Files:
    src/sbbs3/scfgsave.c 1.76 1.77 diff

    Log Message:
    When saving message sub-boards and file directories to msgs.cnf/file.cnf,
    if any sub-boards or directories have *blank* names or internal code suffixes
    (a sign of a corrupted configuration), exclude them from the saved subs/dirs
    automatically. I'm not sure how this can happen (use of cnflib.js?) - but
    running "scfg -f" (force save) should fix this situation. For Android8675.
    
  760. rswindell
    Thu Feb 14 2019 01:55 am PST

    Modified Files:
    src/sbbs3/pack_qwk.cpp 1.81 1.82 diff

    Log Message:
    Include the Synchronet revision (e.g. 'c') in the "SYSTEM" value of the QWK
    DOOR.ID file created by Synchronet.
    
  761. rswindell
    Thu Feb 14 2019 01:54 am PST

    Modified Files:
    src/sbbs3/msgtoqwk.cpp 1.54 1.55 diff

    Log Message:
    For normal (non-QWKnet) users, when packing QWK packets, include the
    plain-text portion (only) for MIME-encoded messages (emails). If/when there
    are ever QWK readers that support MIME-decoding, I'll make this behavior
    configurable. :-)
    When passing mail between QWKnet nodes, leave the original MIME-encoding in
    tact (if there is any).
    
  762. rswindell
    Thu Feb 14 2019 01:48 am PST

    Modified Files:
    src/xpdev/str_list.c 1.52 1.53 diff

    Log Message:
    Fix potential for heap corruption in (new function) strListModifyEach():
    If the modify callback function returned a pointer *within* the list item's
    allocated buffer, the strcpy() would copy from potentialy free'd memory as
    realloc may change the location of the heap buffer when resizing.
    Fixed by allocating a copy of the returned pointer before freeing the original
    list item buffer and then just assign the allocated pointer (no copying
    needed). This likely will result in more heap fragmentation for modified list
    items are now newly-allocated buffers rather than reallocated existing buffers
    but the other option would have been to allocate a temporary copy of the string
    before reallocating and then copying and that would've been a lot more overhead
    than with this approach.
    
    This likely fixes any crashes seen in recent revs of v3.17c (e.g. when
    imported QWK or REP packets and text/*.can and the twitlist.cfg are parsed).
    The sighting on Vertrauen was only in the Windows build and appeared when
    importing QWK/REP packets.
    
  763. rswindell
    Mon Feb 11 2019 07:14 pm PST

    Modified Files:
    src/sbbs3/sbbsecho.c 3.104 3.105 diff

    Log Message:
    Restore the BRE inter-bbs netmail attachment work-around from SBBSecho v2:
    If the attached file begins with a '^', ignore/skip that character in the file
    path. This should resolve the error reported by Ken  of Section One BBS:
    ERROR line 850, attachment file not found: ^C:/SBBS/XTRN/BRE777/...
    
    SBBSecho v2.x included this work-around and it was not included in the v3
    re-factoring/re-write. Of course, BRE is doing something wrong and is totally
    at fault here, but no one expects BRE to be fixed... ever. :-)
    
  764. rswindell
    Mon Feb 11 2019 03:07 pm PST

    Modified Files:
    src/sbbs3/xtrn.cpp 1.244 1.245 diff

    Log Message:
    Patch from Mark Lewis (wk42):
    
    i've made a few adjustments to xtrn.cpp for external.bat...
    
    - remove unneeded redirection of dosemu output.
       still uses same log file name and stops zero
       byte file dosemu.log from being created in node
       directories.
    - fix faulty "keystroke" dosemu -I command. it
       didn't actually do the "\r" but sent it as
       characters to the command line.
    - added code for SBBS specific lredirs to be
       done more cleanly like dosemu's default
       autoexec.bat. only deletes redir if it exists.
    
    His editor also appears to have removed trailling white-space from this file,
    which is fine.
    
  765. rswindell
    Fri Feb 08 2019 03:35 pm PST

    Modified Files:
    src/xpdev/str_list.c 1.51 1.52 diff

    Log Message:
    Fix Borland C (5.6, not C99 compliant) build issue introduced in previous
    commit.
    
  766. rswindell
    Thu Feb 07 2019 06:41 pm PST

    Modified Files:
    src/sbbs3/un_rep.cpp 1.70 1.71 diff

    Log Message:
    Remove unused variable: fp
    
  767. rswindell
    Thu Feb 07 2019 06:39 pm PST

    Modified Files: