Skip to content
Snippets Groups Projects
  1. Jan 20, 2024
    • Rob Swindell's avatar
      The great BOOL->bool conversion in xpdev · 118984e9
      Rob Swindell authored
      Still using BOOL where we need Win32 API compatibility.
      Using JSBool instead of BOOL or bool where it matters.
      Changed most relevant TRUE/FALSE to true/false too (though it's not as critical).
      
      You shouldn't need to #include <stdbool.h> anywhere now - gen_defs.h should do that automatically/correctly based on the language/version/tool. In C23, stdbool.h isn't even needed for bool/true/false definitions (they're keywords), so we don't bother including stdbool.h in that case.
      Microsoft didn't define __STDC_VERSION__ in their older tool chains (even though they were C99 compatible and had stdbool.h), so we use a _MSC_VER check to know that there's a stdbool.h we should use in that case.
      
      For other/old compilers (e.g. Borland C) we #define bool/true/false following the pattern of stdbool.h (doesn't use a typedef).
      
      I didn't convert UIFC yet.
      
      This addresses issue #698
      118984e9
  2. Nov 07, 2023
    • Rob Swindell's avatar
      JSDOC build cleanup (used to generate jsobjs.html) · 96019606
      Rob Swindell authored
      Replaced _property_ver_list (array of numbers) with _property_ver_list (array
      of objects) with a "ver" and (optional) "desc" property. This solves the
      enumeration order problem with objects that have both manual and table-based
      properties. Object's property tables (arrays of jsSyncPropertySpec) can now
      (optionally) contain the property descriptions. For properties defined in this
      manner, there will never be another mismatch between ther name/type and
      description/version in the jsobjs.html (a problem has re-occurred several
      times through the years with nebulous work-arounds).
      
      We still use _property_desc_list arrays for additional (e.g. manually defined)
      properties in such objects or just objects that only use one method of
      property definition and are not subject to the enumeration order problem.
      
      Fixed numerous typos.
      
      Using more consistent terminology and HTML mark-up.
      
      Some beautification and enhancement of readability, but nothing too major.
      96019606
  3. Jun 04, 2023
    • Rob Swindell's avatar
      Fix warnings raised by gcc -D_FORTIFY_SOURCE=3 -O1 · 8667e329
      Rob Swindell authored
      A bunch of possible (but often, not really) use of undefined values.
      Some ignored return values (e.g. of chsize/ftruncate, read, write, fgets).
      
      Other than some added diagnostics upon some of these unexpected syscall
      failures, there should be no change in behavior from this commit.
      8667e329
  4. Mar 14, 2023
  5. Jan 17, 2023
  6. Jun 25, 2022
  7. Mar 02, 2022
  8. Jan 02, 2022
  9. Dec 30, 2021
  10. 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
  11. Apr 04, 2021
  12. 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
  13. Mar 05, 2021
  14. Feb 22, 2021
  15. Feb 15, 2021
  16. Jan 26, 2021
  17. 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
  18. Jan 03, 2021
  19. 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
  20. 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
  21. Aug 16, 2020
  22. Apr 17, 2020
  23. Apr 12, 2020
  24. Apr 07, 2020
  25. Apr 06, 2020
  26. Apr 03, 2020
  27. 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
Loading