Skip to content
Snippets Groups Projects
  1. Mar 14, 2023
  2. Jan 17, 2023
  3. Jun 25, 2022
  4. Mar 02, 2022
  5. Jan 02, 2022
  6. Dec 30, 2021
  7. Apr 23, 2021
    • Rob Swindell's avatar
      Use JS_ValueToECMAUint32 for File position, date, and length properties · 370b79dd
      Rob Swindell authored
      This resolves errors when setting these properties to values > 2147483647
      example:
      !JavaScript  /sbbs/exec/load/sauce_lib.js line 69: Error: can't convert
      2430770157 to an integer
      
      That means you can now seek around (set position) within files > 2GB, truncate
      or extend a file > 2GB, or set a file's date to > Jan-19-2038.
      370b79dd
  8. Apr 04, 2021
  9. Mar 30, 2021
    • Deucе's avatar
      Initial poll() work · 0821142a
      Deucе authored
      Still needs updates in services_thread(), CGI stuff in websrvr.c,
      and sbbs_t::external()
      0821142a
  10. Mar 05, 2021
  11. Feb 22, 2021
  12. Feb 15, 2021
  13. Jan 26, 2021
  14. Jan 24, 2021
    • Rob Swindell's avatar
      More support for !include in .ini files · 2ff1a3b5
      Rob Swindell authored
      Some (important) File methods did not support .ini files that used the !include directive because they were using the xpdev iniRead* API (which performs no "pre-processing") instead of xpdev iniGet*.
      
      Impacted methods:
      - iniGetValue()
      - iniGetKeys()
      - iniGetObject()
      
      The other existing ini* methods already worked fine with nested (!include'd) .ini files. It's possible there's a slight performance penalty with the new implementation since the entire .ini file is always read for each operation and previously it was possible that only a few "lines" were read to find the key(s) of interest. However, since .ini files are not typically huge and the iniRead/file-stream method likely read large (e.g. 8-32K) blocks anyway (which is usually the entire .ini file) - I don't actually suspect any observable impact to performance.
      
      This change was needed for the new ctrl/modopts.d support.
      
      Added new method useful for debugging nested .ini files:
      - iniReadAll()
      2ff1a3b5
  15. Jan 03, 2021
  16. Nov 13, 2020
    • Rob Swindell's avatar
      JS File.iniGetObject() and .iniGetAllObjects() now support blank strings · 6d6451c8
      Rob Swindell authored
      If an .ini file is read by either the iniGetObject() or iniGetAllObjects() methods and contains a key with a blank value, that property would be created with an "undefined" value.
      
      Both the iniGetObject() and iniGetAllObjects() methods now accept an additional Boolean argument (which defaults to false), to specify that "blanks" are acceptable. When the "blanks" argument is true, then keys with empty values in the .ini file are created as properties with empty string values (length of 0).
      
      This is going to be useful for modopts.js to read potentially-blank strings from modopts.ini and differentiate between a blank string key and a missing key.
      6d6451c8
  17. Nov 06, 2020
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · ec20d959
      Rob Swindell authored
      I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values.
      
      This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service).
      
      The new macros names are bit more descriptive as well.
      ec20d959
  18. Aug 16, 2020
  19. Apr 17, 2020
  20. Apr 12, 2020
  21. Apr 07, 2020
  22. Apr 06, 2020
  23. Apr 03, 2020
  24. Sep 19, 2019
    • deuce's avatar
      Even more leak paranoia... · 7c162e3f
      deuce authored
      If dup() fails, return NULL
      If callog() fails, fclose() the new FILE*
      No functional change (hopefully).
      7c162e3f
    • rswindell's avatar
      Don't leak FILE streams for calls to js_CreateFileObject(), setting external · c20f74cc
      rswindell authored
      to TRUE meant the FILE* (created with fdopen) would never be closed. So we now
      duplicate the file descriptor and get rid of the external flag, always closing
      Files (FILE streams) upon File object finalize.
      This fixes the resource leak leading to the eventual "Error 24 opening ..." in
      the ircd.js when loaded via jsexec, on Windows. This error happened after
      169 calls to load(true,...), because each background load creates 3 Files
      (for stdin/out/err) and those FILE streams were never closed/freed, and
      169 * 3 = 507, plus a few open files = 512, the maximum number of open file
      streams in the Microsoft CRTL apparently. Thanks to Deuce for recognizing these
      numbers as "magic" and pointing to the likely cause.
      c20f74cc
    • rswindell's avatar
      Address some debug-log output issues with the File object: · 437edfa4
      rswindell authored
      "4294967295 File closed"
      "0000 File closed: /path/to/file"
      437edfa4
  25. Aug 27, 2019
  26. Aug 21, 2019
Loading