Synchronet CVS Commit Log

This is a log of the 500 most recent changes in the Synchronet CVS repository.
If you want to view more commits, you can by passing ?<number> in URL.
  1. 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.
    
  2. 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.
    
  3. 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.
    
  4. 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).
    
  5. 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).
    
  6. 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()
    
  7. 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
    
  8. 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.
    
  9. 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
    
  10. 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)
    
  11. 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)
    
  12. 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
    
  13. 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
    
  14. 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
    
  15. 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
    
  16. 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.
    
  17. 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.
    
  18. 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
    
  19. 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.
    
  20. 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.
    
  21. 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.
    
  22. 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.
    
  23. 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.
    
  24. 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().
    
  25. 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.
    
  26. 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.
    
  27. 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
    
  28. 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.
    
  29. 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
    
  30. 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.
    
  31. 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.
    
  32. 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
    
  33. 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.
    
  34. 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)
    
  35. 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.
    
  36. 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.
    
  37. 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.
    
  38. 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).
    
  39. 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.
    
  40. 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.
    
  41. 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).
    
  42. 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.
    
  43. 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)
    
  44. 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.
    
  45. 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.
    
  46. 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().
    
  47. 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.
    
  48. 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
    
  49. 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>
    
  50. 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.
    
  51. 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
    
  52. 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.
    
  53. 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().
    
  54. 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.)
    
  55. 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.
    
  56. 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)
    
  57. 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 (?).
    
  58. 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.
    
  59. 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).
    
  60. 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
    
  61. 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
    
  62. 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
    
  63. 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
    
  64. 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
    
  65. 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
    
  66. 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.
    
  67. 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().
    
  68. 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.
    
  69. 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).
    
  70. 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.
    
  71. 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
    
  72. 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.
    
  73. 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
    
  74. 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
    
  75. 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.
    
  76. 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.
    
  77. 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).
    
  78. 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.
    
  79. 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).
    
  80. 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.
    
  81. 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.
    
  82. 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.
    
  83. 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)
    
  84. 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
    
  85. 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>
    
  86. 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.
    
  87. 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.
    
  88. 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).
    
  89. 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).
    
  90. 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.
    
  91. 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).
    
  92. 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
    
  93. 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).
    
  94. 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
    
  95. 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().
    
  96. 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.
    
  97. 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)
    
  98. 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).
    
  99. 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).
    
  100. 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
    
  101. 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
    
  102. rswindell
    Thu May 02 2019 12:37 pm PDT

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

    Log Message:
    SAFEPRINTF->SAFEPRINTF2 :-/
    
  103. 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.
    
  104. 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.
    
  105. rswindell
    Thu May 02 2019 02:16 am PDT

    Modified Files:
    src/sbbs3/scansubs.cpp 1.28 1.29 diff

    Log Message:
    sprintf->SAFEPRINTF
    
  106. 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.
    
  107. 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.
    
  108. 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.
    
  109. rswindell
    Wed May 01 2019 11:14 pm PDT

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

    Log Message:
    Added MsgCarbonCopyList.
    
  110. 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
    
  111. 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.
    
  112. 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.
    
  113. 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.
    
  114. 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 (!).
    
  115. 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.
    
  116. 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().
    
  117. 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?
    
  118. 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.
    
  119. 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.
    
  120. 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.
    
  121. 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>"
    
  122. 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.
    
  123. 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.
    
  124. 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.
    
  125. 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
    
  126. 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.
    
  127. 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.
    
  128. 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.
    
  129. 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?=
    
  130. 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.
    
  131. 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.
    
  132. 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)
    
  133. 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.
    
  134. 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).
    
  135. 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.
    
  136. 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
    
  137. 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
    
  138. 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).
    
  139. 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.
    
  140. 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
    
  141. 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?
    
  142. 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.
    
  143. 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.
    
  144. 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.
    
  145. 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
    
  146. 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).
    
  147. 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.
    
  148. 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).
    
  149. 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
    
  150. 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.
    
  151. 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).
    
  152. 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
    
  153. 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.
    
  154. 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)
    
  155. 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)
    
  156. 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.
    
  157. 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.
    
  158. 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
    
  159. 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
    
  160. 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.
    
  161. 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.
    
  162. 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
    
  163. 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').
    
  164. 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).
    
  165. 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
    
  166. 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.
    
  167. 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.
    
  168. 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)
    
  169. 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.
    
  170. 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.
    
  171. 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.
    
  172. 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!
    
  173. 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.
    
  174. 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.
    
  175. 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
    
  176. 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
    
  177. 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.
    
  178. 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.
    
  179. 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
    
  180. 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.
    
  181. 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>
    
  182. 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.
    
  183. 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. :-)
    
  184. 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
    
  185. 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.
    
  186. 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.
    
  187. 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.
    
  188. 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
    
  189. 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.
    
  190. 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 ' > '
    
  191. 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
    
  192. 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)
    
  193. 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).
    
  194. 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.
    
  195. 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.
    
  196. 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
    
  197. 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.
    
  198. 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".
    
  199. 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.
    
  200. 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.
    
  201. 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.
    
  202. 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.
    
  203. 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.
    
  204. 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.
    
  205. 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.
    
  206. 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.
    
  207. 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.
    
  208. 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.
    
  209. 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.
    
  210. 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).
    
  211. 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.
    
  212. 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.
    
  213. 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'.
    
  214. 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.
    
  215. 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!).
    
  216. 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!).
    
  217. 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'
    
  218. 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.
    
  219. 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.
    
  220. 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.
    
  221. 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.
    
  222. 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.
    
  223. 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.
    
  224. 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.
    
  225. 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).
    
  226. 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().
    
  227. 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().
    
  228. 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.
    
  229. 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.
    
  230. 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.
    
  231. 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.
    
  232. 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.
    
  233. 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.
    
  234. 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.
    
  235. 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!). :-)
    
  236. 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.
    
  237. 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)
    
  238. 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
    
  239. 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.
    
  240. 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.
    
  241. 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.
    
  242. 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.
    
  243. 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'
    
  244. 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.
    
  245. 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.
    
  246. 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.
    
  247. 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.
    
  248. 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.
    
  249. 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.
    
  250. 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.
    
  251. 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).
    
  252. 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.
    
  253. 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).
    
  254. 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.
    
  255. 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.
    
  256. 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.
    
  257. 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.
    
  258. 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.
    
  259. 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.
    
  260. 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.
    
  261. 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().
    
  262. 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.
    
  263. 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()
    
  264. 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)
    
  265. 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.
    
  266. 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"]);
    
  267. 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).
    
  268. 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).
    
  269. 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).
    
  270. 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).
    
  271. 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).
    
  272. 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).
    
  273. 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).
    
  274. 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.
    
  275. 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.
    
  276. 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.
    
  277. 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).
    
  278. 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.
    
  279. 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.
    
  280. 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().
    
  281. 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.
    
  282. 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.
    
  283. 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.
    
  284. 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().
    
  285. 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.
    
  286. 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.
    
  287. 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.
    
  288. 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.
    
  289. 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"
    
  290. 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).
    
  291. 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
    
  292. 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).
    
  293. 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.
    
  294. 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.
    
  295. 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.
    
  296. 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().
    
  297. 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.
    
  298. 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.
    
  299. 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.
    
  300. 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.
    
  301. 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.
    
  302. 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.
    
  303. 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).
    
  304. 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().
    
  305. 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!>
    
  306. 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.
    
  307. 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.
    
  308. 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.
    
  309. 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.
    
  310. 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.
    
  311. 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.
    
  312. 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
    
  313. 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
    
  314. 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.
    
  315. 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
    
  316. 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
    
  317. 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'.
    
  318. 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).
    
  319. 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
    
  320. 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.
    
  321. 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).
    
  322. 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.
    
  323. 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.
    
  324. 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.
    
  325. 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.
    
  326. 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()).
    
  327. 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.
    
  328. 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).
    
  329. 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.
    
  330. 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)
    
  331. 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.
    
  332. 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.
    
  333. 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.
    
  334. 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.
    
  335. 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.
    
  336. 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
    
  337. 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.
    
  338. 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).
    
  339. 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!)
    
  340. 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).
    
  341. 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.
    
  342. 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().
    
  343. 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".
    
  344. 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).
    
  345. 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.
    
  346. 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().
    
  347. 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.
    
  348. 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.
    
  349. 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.
    
  350. 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.
    
  351. 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.
    
  352. 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).
    
  353. 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.
    
  354. 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. :-)
    
  355. 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.
    
  356. 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.
    
  357. 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
    
  358. rswindell
    Thu Feb 07 2019 06:39 pm PST

    Modified Files:
    src/sbbs3/sbbs.h 1.501 1.502 diff
    src/sbbs3/sbbsecho.c 3.103 3.104 diff
    src/sbbs3/str_util.c 1.57 1.58 diff
    src/sbbs3/un_qwk.cpp 1.54 1.55 diff
    src/sbbs3/un_rep.cpp 1.69 1.70 diff

    Log Message:
    Add/use new function findstr_list() which opens and returns a string list
    suitable for passing to findstr_in_list().
    SBBSecho peformance improvement: don't open/read the twitlist.cfg file for
    *each* imported message: just read it once during initialization (using the new
    findstr_list() function of course).
    Reversed course on the findstr()/trashcan() matching logic: significant leading
    white-space was not backwards compatible (and was the cause of recent lost
    messages in DOVE-Net) - so I decided to go a different route and support
    C-style character escape sequences (e.g. \r, \n, \t, \x##, etc.) in findstr
    comparison strings, so the new way to represent a leading space character
    in a filter file (e.g. twitlist.cfg, name.can) would be: "\ ". So to match
    (e.g.
    filter/disallow) all strings with a leading space: "\ *". "\x20 *" would also
    work (0x20 is ASCII for "space").
    Now, again, leading white-space in filter files (e.g. text/*.can, twitlist.cfg)
    is ignored. <sigh>
    
  359. rswindell
    Thu Feb 07 2019 06:13 pm PST

    Modified Files:
    src/xpdev/str_list.c 1.50 1.51 diff
    src/xpdev/str_list.h 1.26 1.27 diff

    Log Message:
    New function: strListModifyEach(), iterates through a string list, calling
    a caller-supplied function (callback) which can modify each string or leave
    the string in tact by returning NULL. Shrinking strings is trivial while
    expanding strings (making them bigger) is a little more involved, probably
    using the cbdata to pass a temporary buffer around to store each expanded
    string or returning a new globally-valid pointer.
    Removed the malloc.h #include as we haven't used alloca() here for a while.
    
  360. rswindell
    Mon Feb 04 2019 07:38 pm PST

    Modified Files:
    exec/dyndns.js 1.16 1.17 diff

    Log Message:
    Support an optiona '-q' (quiet) option, must follow the password.
    Now log a warning about unexpected messages from the server and
    unexpected disconnects, even when in quiet mode.
    
  361. rswindell
    Mon Feb 04 2019 07:25 pm PST

    Modified Files:
    exec/dyndns.js 1.15 1.16 diff

    Log Message:
    Use log() for output with a tx-log-level of "Debug" and an rx-log-level of
    "Info".
    Return 0 (success) if we get an "ok" response from the server (new), 1 (error)
    otherwise.
    
  362. echicken
    Mon Feb 04 2019 05:53 am PST

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

    Log Message:
    Pass 'cfg' to add_file method.
    
  363. rswindell
    Sun Feb 03 2019 09:53 pm PST

    Modified Files:
    src/sbbs3/str_util.c 1.56 1.57 diff

    Log Message:
    Fixed another instance where the leading white-space in search/filter
    files was being skipped, causing false-positive filtering of imported
    QWK messages on Vertrauen. Sorry about that!
    
  364. echicken
    Sun Feb 03 2019 08:46 pm PST

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

    Log Message:
    'this' is not scoped correctly in private function, make a 'self' instead and
    use it. (For ragnarok)
    
  365. rswindell
    Sat Feb 02 2019 04:20 pm PST

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.112 1.113 diff
    src/sbbs3/sbbs.h 1.500 1.501 diff

    Log Message:
    sbbs_t::listmsgs() is called from both readmsgs() and listsub(), where the
    message numbers should be printed differently for each context, so added a
    'reading' boolean argument (defaults to true) to indicate it was called from
    readmsgs() and to use the index offset (+1) as the printed msg number in that
    case.
    
  366. rswindell
    Sat Feb 02 2019 03:27 pm PST

    Modified Files:
    ctrl/text.dat 1.92 1.93 diff

    Log Message:
    Updated SearchSubFmt and CantDeleteMsg.
    
  367. rswindell
    Sat Feb 02 2019 03:26 pm PST

    Modified Files:
    src/sbbs3/text_defaults.c 1.54 1.55 diff

    Log Message:
    Updated SearchSubFmt and CantDeleteMsg.
    
  368. rswindell
    Sat Feb 02 2019 03:22 pm PST

    Modified Files:
    src/sbbs3/readmail.cpp 1.85 1.86 diff

    Log Message:
    When printing the CantDeleteMsg text line, include the msg number.
    
  369. rswindell
    Sat Feb 02 2019 03:21 pm PST

    Modified Files:
    src/sbbs3/readmsgs.cpp 1.111 1.112 diff

    Log Message:
    When printing the CantDeleteMsg text line, incude the message number.
    The (O)perator (D)elete message (range) command will now skip permanent msgs.
    Fixed bug with (L)ist msgs command while in (S)earch for Your Messages mode
    (the msg numbers listed did not match the msg numbers used by the Read prompt).
    
  370. rswindell
    Sat Feb 02 2019 02:43 pm PST

    Modified Files:
    exec/chksetup.js 1.6 1.7 diff

    Log Message:
    Don't warn about the system operator name if it matches user #1's real name.
    Warn if DOVE-Net subs are configured to disallow voting or they are not
    configured for QWK networking.
    
  371. rswindell
    Fri Feb 01 2019 04:44 pm PST

    Modified Files:
    src/sbbs3/prntfile.cpp 1.31 1.32 diff

    Log Message:
    Restore the functionality in menu() lost in rev 1.29 where if you pass a
    full path (sans file suffix/extension), it would use that path for the menu
    file to be displayed.
    
  372. rswindell
    Fri Feb 01 2019 03:46 pm PST

    Modified Files:
    src/sbbs3/str_util.c 1.55 1.56 diff

    Log Message:
    Don't ignore leading white-space chars in filter files (e.g. *.can,
    twitlist.cfg) - this allows adding a filter of say " *" which will filter
    out names (e.g. mail "Fromt" names) beginning with a space character.
    
  373. rswindell
    Fri Feb 01 2019 01:59 pm PST

    Modified Files:
    src/uifc/uifcx.c 1.36 1.37 diff

    Log Message:
    Removed strupr() - conflicts with xpdev/genwrap.*
    
  374. rswindell
    Fri Feb 01 2019 01:52 pm PST

    Modified Files:
    src/uifc/uifcx.c 1.35 1.36 diff

    Log Message:
    Fix Windows build after most recent changes.
    
  375. rswindell
    Fri Feb 01 2019 02:50 am PST

    Modified Files:
    src/sbbs3/zmodem.c 1.122 1.123 diff

    Log Message:
    Address GCC v7.3.0
    warning: ΓÇÿsprintfΓÇÖ may write a terminating nul past the end of the
    destination
    
  376. rswindell
    Fri Feb 01 2019 02:49 am PST

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

    Log Message:
    Fix warnings raised by GCC v7.3.0:
    warning: ΓÇÿ*ΓÇÖ in boolean context, suggest ΓÇÿ&&ΓÇÖ instead
    note: ΓÇÿsprintfΓÇÖ output between 5 and 132 bytes into a destination of size
    128
    
  377. rswindell
    Fri Feb 01 2019 02:47 am PST

    Modified Files:
    src/uifc/uifc32.c 1.235 1.236 diff
    src/uifc/uifcx.c 1.34 1.35 diff

    Log Message:
    Fix very unlikely, but possible, buffer overflows identified by GCC v7.3.0:
    warning: ΓÇÿ%sΓÇÖ directive writing up to 4096 bytes into a region of size 3969
    
  378. rswindell
    Fri Feb 01 2019 02:29 am PST

    Modified Files:
    src/conio/ciolib.c 1.172 1.173 diff

    Log Message:
    Fix what appears to be a bug caused by a typo (* instead of &) in
    ciolib_attrfont(), caught by GCC v7.3.0:
    	warning: ΓÇÿ*ΓÇÖ in boolean context, suggest ΓÇÿ&&ΓÇÖ instead
    
  379. rswindell
    Fri Feb 01 2019 12:58 am PST

    Added Files:
    text/menu/sysmscan.msg NONE 1.1 diff

    Removed Files:
    	sysmscan.asc 
    Log Message:
    Renamed sysmscan.asc to sysmscan.msg
    Added (D)elete Messages (in a range) command: new
    Removed (E)dit Message Text  command: redundant
    
  380. rswindell
    Fri Feb 01 2019 12:31 am PST

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

    Log Message:
    Created a "Delete a range of posts" sys/sub-op command from the [O]perator
    sub-board of the "Reading" prompt. This allows a sysop or sub-board
    operator to quickly delete a range of messages from a message base. e.g. for
    easier clean-up of msg-net hiccups or intentional spamming of subs.
    
  381. rswindell
    Thu Jan 31 2019 11:21 pm PST

    Modified Files:
    exec/chksetup.js 1.5 1.6 diff

    Log Message:
    Created a function check the DOVE-Net setup:
    - check there are 22 sub-boards
    - confirm each sub-board is configured to *NOT* gate between net-types
    
  382. rswindell
    Thu Jan 31 2019 08:27 pm PST

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

    Log Message:
    Include group and sub-board numbers when listing messsages in a sub-board
    (e.g. as the result of a search for text or messages to you).
    
  383. rswindell
    Thu Jan 31 2019 01:00 pm PST

    Modified Files:
    exec/sbbsimsg.js 1.38 1.39 diff

    Log Message:
    Clear the screen before displaying the list when used with '-l'.
    
  384. rswindell
    Wed Jan 30 2019 07:13 pm PST

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

    Log Message:
    Handy macros to calculate the number of digits in a given integer:
    HEX_DIGITS() and DEC_DIGITS()
    
  385. rswindell
    Wed Jan 30 2019 03:33 pm PST

    Modified Files:
    exec/chksetup.js 1.4 1.5 diff

    Log Message:
    Report an issue if the BBS is not listed in sbbsimsg.lst.
    
  386. rswindell
    Wed Jan 30 2019 03:31 pm PST

    Modified Files:
    exec/sbbsimsg.js 1.37 1.38 diff

    Log Message:
    Better Ctrl-C handling (doesn't exit all the way out of the module) and
    better invalid destination address detection.
    
  387. rswindell
    Wed Jan 30 2019 03:30 pm PST

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

    Log Message:
    Created a dest_host() method, used for parsing the host part of a destination
    address (if valid), for use with sbbsimsg.js.
    Added 'include_self' parameter to read_sys_list() to control whether or not
    the local bbs is excluded from the returned list (for chksetup.js use).
    
  388. rswindell
    Wed Jan 30 2019 02:40 pm PST

    Modified Files:
    exec/tickitcfg.js 1.14 1.15 diff

    Log Message:
    Beautification of the Global Option and Area Options menus.
    Some objectification of the edit_area() and edit_globals() functions, these
    2 functions really should be merged since they appear to be mostly just a
    copy/paste of one another. :-(
    
  389. rswindell
    Wed Jan 30 2019 02:35 pm PST

    Modified Files:
    exec/tickitcfg.js 1.13 1.14 diff

    Log Message:
    Bug-fix: was storing the selected directory's *name* in the configuration
    (tickit.ini) rather than the internal code.
    Thanks for the report, Ragnarok.
    
  390. rswindell
    Tue Jan 29 2019 02:49 pm PST

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

    Log Message:
    A small library for loading/caching the [nodelist] options from the
    ctrl/modopts.ini file. Used by scripts performing frequent node activity /
    user presence actions.
    Thanks Ragnark for pointing out that I had forgot to add this file to CVS.
    
  391. rswindell
    Tue Jan 29 2019 02:29 am PST

    Modified Files:
    exec/nodelist.js 1.9 1.10 diff

    Log Message:
    Use the nodelist_options.js library for easy caching of the nodelist options
    (in bbs.mods).
    
  392. rswindell
    Tue Jan 29 2019 02:17 am PST

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

    Log Message:
    Added last_active() method to return the last-activity date of an entry.
    Implemented the "active" special sort order.
    Added support to the remove_dupes() method for the verbose option.
    
  393. rswindell
    Tue Jan 29 2019 02:14 am PST

    Modified Files:
    exec/sbbslist.js 1.50 1.51 diff

    Log Message:
    Added the -f=<filename.json> and -test options.
    Added the 'active' command (show last active date for all entries)
    The 'dedupe' command now supports the -v (verbose) option.
    
  394. rswindell
    Tue Jan 29 2019 01:19 am PST

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

    Log Message:
    Added anchor tags so you can (if you know how) direct someone directly to a
    specific BBS entry on this page, e.g. http://synchro.net/sbbslist.html#your_bbs
    
  395. rswindell
    Tue Jan 29 2019 01:15 am PST

    Modified Files:
    exec/sbbslist.js 1.49 1.50 diff

    Log Message:
    Implement the "maint" command handler:
    - uses the sbbslist_lib.remove_inactive() method
    - uses the (new) max_inactivity (days) value from modopts.ini [sbbslist]
      (default: 180 days)
    - supports the -v (verbose) option to display details about entries being
      removed due to inactivity (if desired)
    
  396. rswindell
    Tue Jan 29 2019 01:11 am PST

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

    Log Message:
    Create a remove_inactive() method for removing inactive (old) BBS entries.
    
  397. rswindell
    Mon Jan 28 2019 06:10 pm PST

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

    Log Message:
    More liberal inclusion in auto-verifed list (even if software != "synchronet").
    Include service descriptions in the html output, if/when they exist.
    
  398. rswindell
    Mon Jan 28 2019 05:53 pm PST

    Modified Files:
    exec/privatemsg.js 1.4 1.5 diff

    Log Message:
    Updates to the (T)elegram option:
    - cosmetic fixes (extra CRLFs removed)
    - save/use the last 10 telegram recipients (using the getstr() history feature)
    
  399. rswindell
    Mon Jan 28 2019 05:24 pm PST

    Modified Files:
    exec/sbbsimsg.js 1.36 1.37 diff

    Log Message:
    Re-read the user property file for each telegram sent to get the recipient list
    (which is updated by sbbsimsg_lib.send_msg() now).
    
  400. rswindell
    Mon Jan 28 2019 05:22 pm PST

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

    Log Message:
    send_msg() now stores the inter-bbs "sent msg" recipient and time to the user
    property file (data/user/*.ini), like sbbsimsg.js used to before rev 1.30 when
    I moved the send_msg() functionality to this lib but failed to add the property
    file update logic. Fixed.
    
  401. rswindell
    Mon Jan 28 2019 04:00 pm PST

    Modified Files:
    src/sbbs3/xtrn.cpp 1.243 1.244 diff

    Log Message:
    Fix missing param in last commit (for *nix builds only).
    
  402. rswindell
    Mon Jan 28 2019 03:58 pm PST

    Modified Files:
    src/sbbs3/xtrn.cpp 1.242 1.243 diff

    Log Message:
    Replace all occurences of unsafe strcat() calls with strncat() in
    sbbs_t::cmdstr() and cmdstr().
    
  403. rswindell
    Mon Jan 28 2019 03:52 pm PST

    Modified Files:
    src/sbbs3/xtrn.cpp 1.241 1.242 diff

    Log Message:
    Linux-DOSEMU patch fix:
    Use case-insensitive check of executable file extension for ".bat".
    The obvious "fix" would have been to use strcasestr() instead of strstr(),
    but that would leave the unlikely corner case of x.bat.exe producing a
    false-positive, for example. Use the proper functions for getting a file
    extension and performing a full case-insensitive string compare.
    
  404. rswindell
    Mon Jan 28 2019 02:54 pm PST

    Modified Files:
    exec/tickitcfg.js 1.12 1.13 diff

    Log Message:
    From Mark Lewis:
    removed unused "var tmp2".
    moved Global Options to own sub-menu edit_globals(). makes cleaner menus.
    renamed edit_sourceaddress(obj) to select_sourceaddress(obj).
    select a source address from system.fido_addr_list instead of typing anything
    you wanted in the sourceaddress field.
    when in the source address selection list window:
         ESC for no changes to the source address.
         ENTER on first option in list to remove existing source address.
         ENTER on an address to use it for the source address in generated TICs.
    
  405. rswindell
    Mon Jan 28 2019 01:51 pm PST

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

    Log Message:
    Forgot to commit this earlier (with tickitcfg.js rev 1.9):
    save() methods return true (on success) or an error string. No throw()'s.
    
  406. rswindell
    Mon Jan 28 2019 01:08 pm PST

    Modified Files:
    src/sbbs3/xtrn.cpp 1.240 1.241 diff

    Log Message:
    Fix multiple potential buffer overflows in external() (for Windows) with
    "overly long" cmdlines.
    Also fixed a bug (for Windows) where external() would return 0 (success) even
    when CreateProcess() fails - must re-restore the "last_error" value before
    returning.
    
  407. rswindell
    Mon Jan 28 2019 01:01 pm PST

    Modified Files:
    src/sbbs3/download.cpp 1.54 1.55 diff

    Log Message:
    Fix potential buffer overrun with a really long file xfer command-line
    (excessively long fspec/%s value).
    
  408. rswindell
    Sun Jan 27 2019 02:04 pm PST

    Modified Files:
    exec/tickitcfg.js 1.11 1.12 diff

    Log Message:
    Eliminate the loops when entering Source Address and Uploader Name -
    no necessarily. Now hitting enter does what you'd expect.
    Also, use js_on_exit() to always call uifc.bail() upon exception
    (with a nice "Abnormal Exit" popup in that case) - this should eliminate
    all the possible ways this script can fubar the console upon exit.
    
  409. rswindell
    Sun Jan 27 2019 01:42 pm PST

    Modified Files:
    exec/tickitcfg.js 1.10 1.11 diff

    Log Message:
    Fix another sub-menu that didn't dynamically update the option values.
    Fix an exception: 'obj is undefined' in edit_area().
    Fix a number of dialogs that didn't save/restore the background text.
    
    Now, I don't understand the input "loops" for Source Address and
    Upload Name - hitting "Enter" doesn't exit the input loop, you have to hit
    ESC. This behavior is inconsistent with every other Synchronet configuration
    program/script behavior, but I'll leave it to the author(s) to address that
    oddity.
    
  410. rswindell
    Sun Jan 27 2019 01:34 pm PST

    Modified Files:
    exec/tickitcfg.js 1.9 1.10 diff

    Log Message:
    As requested by Mark Lewis:
    reflect the new setting in the menu once it is changed
    
  411. rswindell
    Sun Jan 27 2019 01:30 pm PST

    Modified Files:
    exec/tickitcfg.js 1.8 1.9 diff

    Log Message:
    Clean up the whole exiting/saving thing
    - beautify, display status/progress with popups
    - gracefully handle save() failures and display error message
    
  412. rswindell
    Sun Jan 27 2019 01:11 pm PST

    Modified Files:
    exec/tickitcfg.js 1.7 1.8 diff

    Log Message:
    From Mark Lewis: fix wrong order of per area menu items
    
  413. rswindell
    Sun Jan 27 2019 02:02 am PST

    Modified Files:
    exec/chksetup.js 1.3 1.4 diff

    Log Message:
    Generate warnings for QWKnet taglines and Fido origin lines that are blank.
    Warn if the SNDBUF or RCVBUF options are set in the ctrl/sockopts.ini.
    
  414. rswindell
    Sat Jan 26 2019 05:36 pm PST

    Modified Files:
    exec/load/sbbsdefs.js 1.83 1.84 diff

    Log Message:
    Use require() instead of load() for the recursively load'ed *defs scripts,
    this eliminates unnecessary redundant load/execution of scripts that were
    already loaded (faster, leaner, better).
    
  415. rswindell
    Sat Jan 26 2019 05:28 pm PST

    Modified Files:
    exec/sbbslist.js 1.48 1.49 diff

    Log Message:
    When adding a new BBS entry, indicate which fields are required first.
    Don't allow a blank terminal server address when creating a new entry.
    Detect an invalid "first_online" date and reject.
    
  416. rswindell
    Sat Jan 26 2019 05:25 pm PST

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

    Log Message:
    Display numeric fields with a value of 0, as 0 (not blank). Undefined
    numeric fields will be displayed as blank.
    Sort numeric fields by attempting to convert to a number first (due to bugs,
    some numeric fields are sometimes strings), if the value is an invalid
    number (or numeric string), the sort value of the field is -1.
    
  417. rswindell
    Sat Jan 26 2019 03:44 am PST

    Modified Files:
    exec/sbbslist.js 1.47 1.48 diff

    Log Message:
    Put more work into insuring that numeric values are created/edited as numbers
    (not strings).
    
  418. rswindell
    Sat Jan 26 2019 03:43 am PST

    Modified Files:
    exec/load/sbbslist_lib.js 1.18 1.19 diff

    Log Message:
    Define max length of service description (don't hard-code in sbbslist.js).
    Define max length of min_rate, max_rate, port, and protocol as well.
    Remove the max 'storage' value definition.
    
  419. rswindell
    Sat Jan 26 2019 01:40 am PST

    Modified Files:
    exec/sbbslist.js 1.46 1.47 diff

    Log Message:
    Fix issues with create/editing numeric fields (E.g. service "port") and them
    being saved as a String value - use the new lib.max_val object to determine
    numeric fields and limit their values to between 0 and lib.max_val[field].
    Also fixed a few parseInt()/octal bugs with date conversions (srsly -still?).
    
  420. rswindell
    Sat Jan 26 2019 01:37 am PST

    Modified Files:
    exec/load/sbbslist_lib.js 1.17 1.18 diff

    Log Message:
    Numeric entry fields now have defined 'maximum values' in the max_val object.
    
  421. echicken
    Fri Jan 25 2019 01:32 pm PST

    Modified Files:
    exec/ircbots/weather/weather_functions.js 1.10 1.11 diff

    Log Message:
    Whatever.
    
  422. echicken
    Fri Jan 25 2019 01:15 pm PST

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

    Log Message:
    Don't cache response if HTTP response code out of range of goodness.
    
  423. rswindell
    Fri Jan 25 2019 12:37 am PST

    Modified Files:
    exec/privatemsg.js 1.3 1.4 diff

    Log Message:
    Added support for sending telegrams to users using the Web (ecWeb v4)
    interface.
    The entire send-telegram logic has been reimplemented here (for the 3rd time,
    first in chat.cpp, then in js_bbs.cpp, and now here).
    
  424. rswindell
    Fri Jan 25 2019 12:34 am PST

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

    Log Message:
    web_user_status() now accepts the 'browsing' word as the second argument and
    web_users() doesn't expect a 'browsing' argument.
    
  425. rswindell
    Thu Jan 24 2019 05:55 pm PST

    Modified Files:
    exec/chksetup.js 1.2 1.3 diff

    Log Message:
    Report non-guest users with blank passwords.
    Check that the local sbbslist entry for your BBS matches the one on Vert.
    Check that the 'syncdata' sub-board is present and findable.
    
  426. rswindell
    Thu Jan 24 2019 05:07 pm PST

    Modified Files:
    exec/sbbslist.js 1.45 1.46 diff

    Log Message:
    Added support for exporting and importing "SBL-Remove" messages to remotely
    remove a BBS entry (e.g. your own) from remote databases. You can remove
    any entry (as before) with "jsexec sbbslist remove=<name>", add the '-remote'
    option and it'll post an SBL-Remove message to the SYNCDATA sub.
    The new "delete" option is the same, but automatically uses your local BBS
    name as the name of the entry to be deleted/removed (you still need the -remote
    option to create an SBL-Remove message).
    A confirmation prompt was added.
    The "Name:" portion fo the SBL-Remove message body is not actually needed
    /parsed right now but makes a good sanity check for message subject (BBS name)
    truncation or manipulation, should that be a problem.
    
  427. deuce
    Thu Jan 24 2019 12:50 pm PST

    Modified Files:
    3rdp/build/GNUmakefile 1.44 1.45 diff
    3rdp/build/cl-bn_div2.patch NONE 1.1 diff

    Added Files:
    	cl-bn_div2.patch 
    Log Message:
    Don't use the inline assembler in the BN_div function.
    
    This has not had the crash here in over three days (crosses fingers).
    
  428. rswindell
    Wed Jan 23 2019 06:13 pm PST

    Modified Files:
    exec/sbbslist.js 1.44 1.45 diff

    Log Message:
    Don't import deleted sbl.dab entries (the first character of the BBS's
    name is a 0).
    
  429. rswindell
    Tue Jan 22 2019 11:48 pm PST

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

    Log Message:
    The reply in (M)ail command has been somewhat broken since Mar-13-2018 when
    smb_netaddr_type() was changed to *never* return NET_NONE. Locally-posted
    messages would result in a (M)ail reply trying to go to a invalid Internet mail
    addres (the user's name/alias).
    
  430. rswindell
    Mon Jan 21 2019 07:18 pm PST

    Modified Files:
    src/sbbs3/js_msgbase.c 1.224 1.225 diff

    Log Message:
    Beautification/typo of MsgBase methods by_offset blurb.
    
  431. echicken
    Mon Jan 21 2019 03:04 pm PST

    Modified Files:
    exec/load/openweathermap.js 1.6 1.7 diff

    Log Message:
    Added 'raw' parameter to call_api, for fetching non-JSON data.
    
  432. deuce
    Mon Jan 21 2019 10:49 am PST

    Modified Files:
    3rdp/build/GNUmakefile 1.43 1.44 diff

    Log Message:
    Old slow way crashes faster.
    
  433. deuce
    Mon Jan 21 2019 10:44 am PST

    Modified Files:
    3rdp/build/GNUmakefile 1.42 1.43 diff
    3rdp/build/cl-bn_div.patch NONE 1.1 diff

    Added Files:
    	cl-bn_div.patch 
    Log Message:
    Switch to "The old slow way" in BN_div()
    
  434. rswindell
    Mon Jan 21 2019 02:22 am PST

    Modified Files:
    exec/avatars.js 1.35 1.36 diff

    Log Message:
    Fixed typo: security.restrictions, not security_restrictions!
    
  435. rswindell
    Mon Jan 21 2019 02:10 am PST

    Modified Files:
    src/sbbs3/js_msgbase.c 1.223 1.224 diff

    Log Message:
    Attempt to clarify all this MsgBase.get...(by_offset,
    number_or_offset_or_id_header)
    confusion: You should not pass both a message number *and* a message header to
    the
    retrieval methods that support referring to a message by either (number/offset,
    id
    or header).
    
  436. rswindell
    Mon Jan 21 2019 01:20 am PST

    Modified Files:
    src/sbbs3/writemsg.cpp 1.139 1.140 diff

    Log Message:
    Added support for the standard "Delete line" control keys (Ctrl-Y/X) to the
    the internal message editor. It doesn't redraw the lines below the deleted
    line or do anything terribly fancy, but at least it behaves more as one
    would expect.
    
  437. rswindell
    Sat Jan 19 2019 09:25 pm PST

    Modified Files:
    src/sbbs3/js_file.c 1.176 1.177 diff
    src/sbbs3/js_global.c 1.376 1.377 diff
    src/sbbs3/jsexec.c 1.202 1.203 diff
    src/sbbs3/sbbs.h 1.499 1.500 diff

    Log Message:
    The "stdio" File objects (stdin, stdout, stderr) did not work on Windows,
    because the stdout FILE* is a different address in jsexec than it is in
    sbbs.dll
    (where the actual File I/O operations occurred). Refactored by passing the
    stdio file descriptor (and open mode) to js_CreateFileObject rather than the
    FILE* and using fdopen() to get a FILE* associated with the descriptor.
    stdout.write() now works, for example.
    
  438. rswindell
    Sat Jan 19 2019 05:58 pm PST

    Modified Files:
    exec/exportcfg.js 1.2 1.3 diff

    Log Message:
    Allow specific items (e.g. subs, dirs, xtrns, events, editors) to be
    selected/included with the -inc=<code> option or excluded with the
    -exc=<code> option.
    Fixed a problem where some item types did not have a 'code' property
    (this is a difficiency in the JS object model that will be fixed in the
    future - but a work-around is to just use the associative-array 'index'
    value if the 'code' property does not exist).
    
  439. rswindell
    Sat Jan 19 2019 05:55 pm PST

    Modified Files:
    src/sbbs3/jsexec.c 1.201 1.202 diff

    Log Message:
    Fix long-standing bug: if jsexec was passed any option which requires a
    parameter value and no value was supplied (e.g. 'jsexec -c'), a null pointer
    dereference would cause the program to crash.
    Also display more helpful error if option parameter value is missing.
    
  440. rswindell
    Sat Jan 19 2019 02:48 pm PST

    Modified Files:
    exec/chksetup.js 1.1 1.2 diff

    Log Message:
    Output the group name when printing sub/dir/xtrn code issues.
    
  441. rswindell
    Sat Jan 19 2019 01:32 am PST

    Modified Files:
    exec/podcast.js 1.15 1.16 diff

    Log Message:
    Add support for podcast_lost_episodes.xml
    
  442. rswindell
    Sat Jan 19 2019 01:30 am PST

    Modified Files:
    CVSROOT/loginfo 1.33 1.34 diff

    Log Message:
    Try exporting the SDL_VIDEODRIVER env var.
    
  443. rswindell
    Sat Jan 19 2019 01:28 am PST

    Modified Files:
    exec/nntpservice.js 1.129 1.130 diff

    Log Message:
    A better example of creating a new User object.
    
  444. deuce
    Sat Jan 19 2019 01:26 am PST

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

    Log Message:
    Attempt to fix Linux weirdness with UIFC jsexec things.
    
    Basically, this just tracks if curses is already suspended or not and if it
    is, does not call noraw() and endwin() again.  This should fix the issue on
    Linux since well-behaved scripts will call uifc.bail() before they exit.
    
    It appears what's happening is that jsexec sets the terminal as raw, then
    ciolib is initialized at which point ncurses saves the current terminal state.
    Before exiting, jsexec sets the terminal back to cooked mode, then exits.
    atexit() ciolib calls curs_suspend() which calls endwin() which restores
    the previously saved terminal state (ie: raw).
    
  445. rswindell
    Sat Jan 19 2019 12:44 am PST

    Modified Files:
    CVSROOT/loginfo 1.32 1.33 diff

    Log Message:
    <Deuce> Can set the env variable SDL_VIDEODRIVER=dummy
    <Deuce> Though I'm not sure how to get cvs to have env variables in the child
    processes.
    <Deuce> It will still do "things" with SDL, but none of them should matter.
    <Deuce> Basically, it will initialize the dummy driver, uninitialize it, then
    call main()
    
  446. rswindell
    Sat Jan 19 2019 12:03 am PST

    Modified Files:
    exec/sbbsimsg.js 1.35 1.36 diff

    Log Message:
    A little modernization (e.g. using require instead of load).
    
  447. rswindell
    Fri Jan 18 2019 11:49 pm PST

    Modified Files:
    exec/fingerservice.js 1.46 1.47 diff

    Log Message:
    Better example of creating a User instance.
    
  448. rswindell
    Fri Jan 18 2019 06:54 pm PST

    Added Files:
    exec/chksetup.js NONE 1.1 diff

    Log Message:
    A new script that will check your Synchronet BBS setup (install/data) for
    common problems, intended to be run using JSexec, example:
    	jsexec chksetup.js
    	jsexec chksetup.js -v
    
    If it reports any issues, you should probably look into them. :-)
    
  449. rswindell
    Fri Jan 18 2019 05:13 pm PST

    Modified Files:
    exec/exportcfg.js 1.1 1.2 diff

    Log Message:
    Added the msising '-ex' option to the usage help output.
    
  450. rswindell
    Fri Jan 18 2019 03:03 pm PST

    Modified Files:
    exec/sbbsecho_upgrade.js 1.13 1.14 diff

    Log Message:
    Fix comment added to created sbbsecho.ini file:
    The revision is of sbbsecho_upgrade.js, not the "exec_file" (update.js).
    
  451. rswindell
    Fri Jan 18 2019 01:14 am PST

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.486 1.487 diff

    Log Message:
    Further optimization for directory index and listing generation: if "Check for
    File Existence" is disabled (in SCFG->File Areas... Toggle Options), then don't
    check the disk for the file's existence, size, or date/time.
    
  452. rswindell
    Thu Jan 17 2019 05:56 pm PST

    Modified Files:
    src/sbbs3/un_rep.cpp 1.68 1.69 diff

    Log Message:
    Log a warning instead of an error when unpacking a QWK REP packet which
    contains a message hdr with a block length less than 2. Some versions of
    Mystic apparently generate these REP packets and the errors are annoying
    and there's really nothing the sysop can do about it but report back to
    the user (or QWKnet node) that their packets contained some invalid
    message headers.
    
  453. rswindell
    Thu Jan 17 2019 01:58 pm PST

    Modified Files:
    src/sbbs3/sbbsecho.c 3.102 3.103 diff

    Log Message:
    Longer, hopefully more helpful, "Authenticated EchoMail" warning log msg.
    
  454. rswindell
    Thu Jan 17 2019 09:57 am PST

    Modified Files:
    exec/tickit.js 1.53 1.54 diff

    Log Message:
    add lost code to write existing Path lines to the TIC file - wkitty42
    
  455. rswindell
    Thu Jan 17 2019 12:31 am PST
    exec fileareas.js 1.3 NONE
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv12450
    
    Removed Files:
    	fileareas.js 
    Log Message:
    This file was made redundant by exportcfg.js, killed by its own offspring.
    
  456. rswindell
    Tue Jan 15 2019 07:43 pm PST

    Modified Files:
    exec/logon.js 1.36 1.37 diff

    Log Message:
    Use the bbs.menu_exists() method of checking for text/menu/logon*.* files
    
  457. rswindell
    Tue Jan 15 2019 07:34 pm PST

    Modified Files:
    text/menu/msgscan.asc 1.10 1.11 diff

    Log Message:
    Use Ctrl-Az instead of Ctrl-AZ to output a Ctrl-Z (SUB) char)
    
  458. rswindell
    Tue Jan 15 2019 01:22 pm PST

    Modified Files:
    src/sbbs3/writemsg.cpp 1.138 1.139 diff

    Log Message:
    Internal message editor needs to recount the lines when saving. This
    is the likely cause of missing lines or "Aborted" messages upon saving
    with the internal editor.
    
  459. rswindell
    Mon Jan 14 2019 11:04 pm PST

    Modified Files:
    exec/email_sec.js 1.6 1.7 diff

    Log Message:
    Don't load/list the mail index in reverse (newest-first) order by default.
    Unfortunately, the call to readmail() in other places in sbbs
    (e.g. logon.ccp, useredit.cpp) is hard-coded without *out* this loadmail
    flag, so you get an index in oldest-first order when you logon and answer
    "Yes" to the "Read your mail now?" prompt and get the index in reverse
    (newest-first) order when you use the 'R' command from the email prompt
    which is unexpected and likely confusing to users. Until we can replace
    these hard-coded calls to readmail() with scripted logic which can read/
    use a user-preference property (e.g. from data/user/*.ini), we will just
    default to the old/previous behavior. The user is one key (!) away from
    reversing the index anyway.
    
  460. rswindell
    Mon Jan 14 2019 10:54 pm PST

    Modified Files:
    src/sbbs3/js_console.cpp 1.122 1.123 diff

    Log Message:
    Fixed typo in JSDOCS description of console.putbyte().
    
  461. rswindell
    Mon Jan 14 2019 08:37 pm PST

    Added Files:
    exec/exportcfg.js NONE 1.1 diff

    Log Message:
     Converted fileareas.js into a generic cfg-list exporter (e.g. for msg areas,
    etc.)
    
  462. rswindell
    Mon Jan 14 2019 07:07 pm PST

    Modified Files:
    src/uifc/filepick.c 1.41 1.42 diff

    Log Message:
    Get rid of this file's local getdirname() in favor of the xpdev/dirwrap.c
    function of the same name. The dirwrap version (now) behaves identically
    when passed a pathname ending in a directory name (ending in a '/') but
    differs when passed a pathname ending in a file name (not ending in a '/').
    That should be okay.
    
  463. rswindell
    Mon Jan 14 2019 07:05 pm PST

    Modified Files:
    src/xpdev/dirwrap.c 1.103 1.104 diff

    Log Message:
    Make getdirname() behave more consistently with the function of the
    same name in uifc/filepick.c - specifically with regards to paths that
    begin with a / (or \ on Windows).
    
  464. rswindell
    Mon Jan 14 2019 02:07 am PST

    Modified Files:
    exec/fileareas.js 1.2 1.3 diff

    Log Message:
    Support both -option=<value> and -option <value> command-line syntax.
    Make usage-printed option defaults to the actual defaults and not just the
    current values of the options (which could have changed).
    
  465. rswindell
    Mon Jan 14 2019 12:13 am PST

    Modified Files:
    exec/fileareas.js 1.1 1.2 diff

    Log Message:
    Added support for a different (preferred) method of property format
    specification ("<prop>=<format>"). The "-fmt <format>" option syntax is
    still supported.
    Fixed a bunch of typos and update the "docs" in the comment header.
    
  466. rswindell
    Sun Jan 13 2019 11:15 pm PST

    Added Files:
    exec/fileareas.js NONE 1.1 diff

    Log Message:
    A new utility module that may be executed via JSexec to generate file area
    lists (listing of areas/directories, not files within those directories),
    to export your file area configuration to various file formats (e.g.
    FILEGATE.ZXX, tab-delimited, CVS, etc.). This utility is much more flexible
    than the SCFG "Export Areas..." option.
    This module can also be load()'d to capture the listing output for use within
    other scripts or shells.
    See the comments at the top of the file for detailed documentation.
    
  467. rswindell
    Sun Jan 13 2019 03:27 pm PST

    Modified Files:
    exec/testbuild.js 1.30 1.31 diff

    Log Message:
    3rdp Library files are (have been) part of the sbbs_dev archive for a while
    now.
    
  468. rswindell
    Sun Jan 13 2019 02:05 pm PST

    Modified Files:
    src/sbbs3/sbbs_ini.c 1.167 1.168 diff

    Log Message:
    We build this file with BCB6, which is not C99 compliant, so we can't use this
    fancy structure initalization syntax here.
    
  469. rswindell
    Sat Jan 12 2019 06:45 pm PST

    Modified Files:
    exec/sbbslist.js 1.43 1.44 diff

    Log Message:
    Moved list of common_bbs_services from exec/sbbslist.js to load/sbbslist_lib.js
    Removed TCP/IP services not supported by BBS clients (e.g. SyncTERM) from the
    list (e.g. ftp, nntp, smtp, binkp, irc) and added "modem".
    
  470. rswindell
    Sat Jan 12 2019 06:43 pm PST

    Modified Files:
    exec/load/sbbslist_lib.js 1.16 1.17 diff

    Log Message:
    Moved list of common_bbs_services from exec/sbbslist.js to load/sbbslist_lib.js
    Removed TCP/IP services not supported by BBS clients (e.g. SyncTERM) from the
    list (e.g. ftp, nntp, smtp, binkp, irc) and added "modem".
    This list is now used by the syncterm_list() function to filter which entries
    will be written to the exported syncterm.lst file.
    Also added duplicate section name detection and better names for multiple
    services per BBS (using service description and port as well as protocol)
    to syncterm_list().
    Added support to imsg_capable_system() for an over-ride (imsg_capable).
    Changed several info-level log messages to debug-level (e.g. for every list
    open/read/write).
    
  471. rswindell
    Sat Jan 12 2019 04:37 pm PST

    Modified Files:
    src/sbbs3/sbbs_ini.c 1.166 1.167 diff

    Log Message:
    Updated the default sbbs.ini style when saving (improve readability):
    - separate sections with a blank line (when adding a section)
    - place spaces around '=' in value assignments ("key = value").
    
  472. rswindell
    Sat Jan 12 2019 04:30 pm PST

    Modified Files:
    ctrl/sbbs.ini 1.81 1.82 diff

    Log Message:
    Disabled HTTP_LOGGING and CGI support in [web] by default.
    Mostly just white-space changes (beautification).
    Added some comments.
    
  473. rswindell
    Sat Jan 12 2019 04:21 pm PST

    Modified Files:
    src/sbbs3/websrvr.h 1.54 1.55 diff

    Log Message:
    Cruft removal: IDENT/Identity protocol not supported by webserver.
    
  474. rswindell
    Sat Jan 12 2019 04:06 pm PST

    Modified Files:
    ctrl/sbbs.ini 1.80 1.81 diff

    Log Message:
    Remove unused [web] key (EmbJavaScriptExtension) and option (GET_IDENT)
    
  475. rswindell
    Sat Jan 12 2019 04:04 pm PST

    Modified Files:
    src/sbbs3/sbbs_ini.c 1.165 1.166 diff
    src/sbbs3/websrvr.c 1.676 1.677 diff
    src/sbbs3/websrvr.h 1.53 1.54 diff

    Log Message:
    Cruft removal:  EmbeddedJavaScriptExt (web_startup.js_ext) settings
    this idea (web-server parsed html files with embedded JS) was never implemented
    and made obsolete by web handlers (e.g. xjs).
    
  476. rswindell
    Sat Jan 12 2019 03:53 pm PST

    Modified Files:
    src/sbbs3/ctrl/MainFormUnit.cpp 1.201 1.202 diff

    Log Message:
    Better "Incorrect DLL" error message, display the expected version too.
    
  477. rswindell
    Sat Jan 12 2019 03:48 pm PST

    Modified Files:
    src/sbbs3/ctrl/WebCfgDlgUnit.cpp 1.8 1.9 diff
    src/sbbs3/ctrl/WebCfgDlgUnit.dfm 1.12 1.13 diff
    src/sbbs3/ctrl/WebCfgDlgUnit.h 1.4 1.5 diff

    Log Message:
    Cruft removal: EmbeddedJavaScriptExt (.bbs) settings - this option was hidden
    anyway (here) and never implemented in the web server.
    
  478. rswindell
    Sat Jan 12 2019 03:45 pm PST

    Modified Files:
    src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp 1.25 1.26 diff
    src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm 1.31 1.32 diff
    src/sbbs3/ctrl/TelnetCfgDlgUnit.h 1.18 1.19 diff

    Log Message:
    Cruft removal: JavaScript Support and Identity Lookup checkboxes.
    Oddly, the Identity Lookup checkbox was obscurring (hiding) the Hostname
    Lookup checkbox, so that becomes visible/available again.
    
  479. rswindell
    Sat Jan 12 2019 02:53 pm PST

    Modified Files:
    ctrl/sbbs.ini 1.79 1.80 diff

    Log Message:
    Removed the NO_JAVASCRIPT option from the list of supported [bbs] Options
    (not practical to disable JavaScript for the terminal server any longer)
    and added the NO_SPY_SOCKETS option.
    
  480. rswindell
    Sat Jan 12 2019 02:49 pm PST

    Modified Files:
    ctrl/sockopts.ini 1.7 1.8 diff

    Log Message:
    Added the new [unix] section (empty)
    
  481. rswindell
    Sat Jan 12 2019 02:44 pm PST

    Modified Files:
    src/sbbs3/sockopts.c 1.25 1.26 diff

    Log Message:
    For Unix-domain sockets (e.g. localspy sockets on *nix), use the [unix]
    section of the sockopts.ini (if there is one) rather than the [tcp] or
    [udp] sections. This resolves the errors:
          term xxxx !ERROR 95 setting socket option (TCP_NODELAY, 1) to 1
    which started appearing after the TCP_NODELAY option was added to the
    [tcp] section.
    
  482. rswindell
    Sat Jan 12 2019 02:05 pm PST

    Modified Files:
    exec/websocketservice.js 1.11 1.12 diff

    Log Message:
    Allow a hostname to be specified on the command-line without also specifying
    a target port number.
    The port and hostname arguments can now be supplied in any order.
    Added debug-level log output with the host/port we're trying to connect to.
    Include the socket error value in the failure to connect log message.
    
  483. rswindell
    Sat Jan 12 2019 01:36 pm PST

    Modified Files:
    src/sbbs3/js_socket.c 1.224 1.225 diff

    Log Message:
    Bug-fix: Socket.connect() would return true (success) even though a
    TCP connection actually failed. This bug only appeared to affect *nix
    systems. This bug appears to be very old, introduced in rev 1.74 of
    this file (Mar-2003) by yours truly.
    From the Linux 'connect' man page:
    EINPROGRESS
                  The  socket  is  nonblocking  and the connection cannot be i
                  completed immediately.  It is possible to select(2) or poll(2)
                  for completion by selecting the socket for writing.  After 
                  select(2) indicates writability, use getsockopt(2) to read the
                  SO_ERROR option at level SOL_SOCKET to determine whether 
                  connect() completed successfully (SO_ERROR is zero) or 
                  unsuccessfully (SO_ERROR is one of the usual error codes listed
                  here, explaining the reason for the failure).
    
    We weren't doing the 'getsockopt(SO_ERROR)' part.
    
  484. rswindell
    Sat Jan 12 2019 04:09 am PST

    Modified Files:
    src/sbbs3/scfg/scfg.c 1.100 1.101 diff
    src/sbbs3/scfg/scfg.h 1.26 1.27 diff
    src/sbbs3/scfg/scfgmsg.c 1.57 1.58 diff
    src/sbbs3/scfg/scfgnet.c 1.39 1.40 diff
    src/sbbs3/scfg/scfgnode.c 1.34 1.35 diff
    src/sbbs3/scfg/scfgsys.c 1.50 1.51 diff
    src/sbbs3/scfg/scfgxfr1.c 1.27 1.28 diff
    src/sbbs3/scfg/scfgxfr2.c 1.55 1.56 diff
    src/sbbs3/scfg/scfgxtrn.c 1.59 1.60 diff

    Log Message:
    Cosmetic change only:
    Wrap all read_*_cfg() and write_*_cfg() calls with simple functions that
    display popup messages that the Reading or Writing is being performed.
    There was already copy/pasta everywhere for the Reading ... cnf files, but
    nothing for writing.
    
  485. rswindell
    Sat Jan 12 2019 03:56 am PST

    Modified Files:
    src/xpdev/dirwrap.c 1.102 1.103 diff
    src/xpdev/dirwrap.h 1.50 1.51 diff

    Log Message:
    Added getdirname(): returns the filename or lastdirectory portion of a full
    pathname (directories must end in a '/'). Unlike getfname() which returns an
    empty string if passed a path ending in a '/'.
    Useful with glob(.., GLOB_MARK).
    
  486. rswindell
    Sat Jan 12 2019 02:29 am PST

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.485 1.486 diff

    Log Message:
    Fix some new issues due to use of GLOB_MARK:
    getfname() on a path that ends in a slash, returns an empty string pointer.
    Fixed-up some logging output around listing creations.
    
  487. rswindell
    Sat Jan 12 2019 12:52 am PST

    Modified Files:
    src/sbbs3/ftpsrvr.c 1.484 1.485 diff

    Log Message:
    Optimized all directory listings and index generation:
    - use GLOB_MARK to eliminate calls to isdir() in loops
    - use stat() rather than calls to flength() and fdate()
    - don't call getfiledat() if getfileixb() failed
    - profiling info-level log msgs added for index/listing generation, e.g.
      "detailed listing (3459 bytes) of /main/SBBS (45 files) created in 2 seconds"
    
    Fixed bug with indexes generated for directories with the 
    "Access Files Not In Database" option enabled, files not in database were
    excluded from the generated index (e.g. 00index, 00index.html).
    
  488. rswindell
    Sat Jan 12 2019 12:11 am PST

    Modified Files:
    src/sbbs3/filedat.c 1.39 1.40 diff

    Log Message:
    Optimized getfiledat():
    rather than calling both flength() and fdate() (which both call stat()), just
    call stat() once and use the result for both file size and date/time.
    
  489. rswindell
    Sat Jan 12 2019 12:01 am PST

    Modified Files:
    src/xpdev/dirwrap.c 1.101 1.102 diff

    Log Message:
    Optimized fdate(), fcdate(), flength(), fnameexist() functions:
    There's no reason to call access() before stat() since stat() will fail
    (return -1) if the file does not exist.
    
  490. rswindell
    Fri Jan 11 2019 06:15 pm PST

    Modified Files:
    exec/chat_sec.js 1.10 1.11 diff

    Log Message:
    Modernization of this script (e.g. "use strict", require(), load(), etc.)
    Loads child scripts (finger.js, sbbsimsg.js) quicker.
    Note: irc.js can't be load()ed from here because it calls exit().
    Now using appropriate strings from text.dat (R_Chat, ON, OFF).
    Added modopts.ini [chat_sec] irc option (disable IRC access by setting to
    false).
    
  491. rswindell
    Fri Jan 11 2019 05:50 pm PST

    Modified Files:
    exec/irc.js 1.49 1.50 diff

    Log Message:
    Using a much more reliable method of saving/restoring the initial
    console.ctrlkey_passthru state.
    As it was, if the irc.js abended, many ctrl-keys (e.g. ^C) would not work
    after exiting. A lot of scripts that much with the console.ctrlkey_passthru
    have this/similar issue and this is a simple but very reliable fix.
    
  492. rswindell
    Fri Jan 11 2019 05:47 pm PST

    Modified Files:
    exec/finger.js 1.7 1.8 diff

    Log Message:
    Use the new load/finger_lib.js
    
  493. rswindell
    Fri Jan 11 2019 05:46 pm PST

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

    Log Message:
    A library for finger or systat/active-user client requests
    (mostly migrated from exec/finger.js).
    
  494. rswindell
    Fri Jan 11 2019 05:35 pm PST

    Modified Files:
    exec/tickit.js 1.52 1.53 diff
    exec/tickitcfg.js 1.6 1.7 diff

    Log Message:
    TickIT patch supplied by Mark Lewis:
    tickit.js version pulled from $ID string in .js file.
    tickit version used in Created by line.
    tickit version used in Path line.
    utc time stamp of processing used in Path line per FTS-5006.001.
    per area uploader.
    address selection:
       per area aka matching in From and Path lines.
       per area source address in From and Path lines.
       global aka matching in From and Path lines (original addressing method).
       global source address in From and Path lines.
       main FTN address from system.fido_addr_list (preferred but last in line with
    the above overrides).
    can use domains on linked systems' addresses in sbbsecho.ini again.
    can use domains on any address in tickit.ini.
    domains are NOT currently written to the generated TIC files to avoid creating
    possible problems for other TIC processors.
    force replace is available globally and per area in the ini and not only the
    command line.
    
  495. rswindell
    Fri Jan 11 2019 05:35 pm PST

    Modified Files:
    exec/load/fidocfg.js 1.36 1.37 diff

    Log Message:
    TickIT patch supplied by Mark Lewis:
    tickit.js version pulled from $ID string in .js file.
    tickit version used in Created by line.
    tickit version used in Path line.
    utc time stamp of processing used in Path line per FTS-5006.001.
    per area uploader.
    address selection:
       per area aka matching in From and Path lines.
       per area source address in From and Path lines.
       global aka matching in From and Path lines (original addressing method).
       global source address in From and Path lines.
       main FTN address from system.fido_addr_list (preferred but last in line with
    the above overrides).
    can use domains on linked systems' addresses in sbbsecho.ini again.
    can use domains on any address in tickit.ini.
    domains are NOT currently written to the generated TIC files to avoid creating
    possible problems for other TIC processors.
    force replace is available globally and per area in the ini and not only the
    command line.
    
  496. rswindell
    Fri Jan 11 2019 04:16 am PST

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

    Log Message:
    Stop parsing/converting when reading a Ctrl-Z (CPM EOF char): used to mark
    the beginning of a SAUCE record and the end of very old MS-DOS text files.
    Added support for ESC[1;1f/H (home cursor) and ESC[0J (clear to EOS) sequences
    (converted to the equivalent in Ctrl-A codes).
    Output Ctrl-A characters in uppercase, as they were documented and as is
    common practice.
    Covert ESC[xB and ESC[xD to the appropriate Ctrl-A sequences rather than
    converting to ASCII ctrl chars (CR, LF, BS).
    
  497. rswindell
    Fri Jan 11 2019 03:47 am PST

    Modified Files:
    src/sbbs3/asc2ans.c 1.10 1.11 diff

    Log Message:
    Add missing (but rarely used) Ctrl-A sequences:
    Ctrl-AJ (clear to EOS)
    Ctrl-A` (home cursor)
    
  498. rswindell
    Fri Jan 11 2019 03:29 am PST

    Modified Files:
    src/sbbs3/asc2ans.c 1.9 1.10 diff
    src/sbbs3/con_out.cpp 1.93 1.94 diff
    src/sbbs3/getkey.cpp 1.51 1.52 diff
    src/sbbs3/js_global.c 1.375 1.376 diff
    src/sbbs3/msgtoqwk.cpp 1.53 1.54 diff
    src/sbbs3/putmsg.cpp 1.43 1.44 diff
    src/sbbs3/sbbsecho.c 3.101 3.102 diff
    src/sbbs3/str_util.c 1.54 1.55 diff

    Log Message:
    A partial retraction of the Ctrl-AZ interpretation changes introduced on
    Oct-14-2018:
    It turns out, PabloDraw actually inserts a Ctrl-AZ sequence at the end of .msg
    (and presumably Synchronet .asc) files it edits - before the SAUCE record.
    This resulted in a printed Ctrl-Z character (arrow pointing right) in most
    terminals when viewing text/menu files created or edited with PabloDraw. :-(
    So, now Ctrl-AZ (uppercase) will revert to the previous definition:
    premature end-of-file (EOF)
    and a Ctrl-Az (lowercase) will output a Ctrl-Z (substitute) character.
    I'm not a big fan of case-sensitive Ctrl-A codes, but frankly, running out of
    chars and I already started this pattern with the Ctrl-AF/f sequences.
    Hopefully there's no existing software that is/was putting Ctrl-Az (lowercase)
    in files, expecting that to trigger a premature EOF. I certainly was not.
    
  499. rswindell
    Fri Jan 11 2019 01:38 am PST

    Modified Files:
    exec/badpasswords.js 1.2 1.3 diff

    Log Message:
    Provide a better/updated example.
    
  500. rswindell
    Fri Jan 11 2019 01:37 am PST

    Modified Files:
    exec/userlist.js 1.5 1.6 diff

    Log Message:
    Provide a better/updated example.
    
AuthorCommitsLatest
rswindell443Wed May 22 2019 01:11 pm
mcmlxxix17Wed May 15 2019 01:22 pm
deuce9Mon May 13 2019 03:44 pm
nightfox14Sun May 12 2019 08:12 pm
echicken17Sun May 05 2019 08:37 pm

Dynamically generated in 318 milliseconds