• src/xpdev/genwrap.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Dec 2 21:03:26 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/01bda6a85c3621f211f8b5d6
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Work around GetVersionEx deprecation warning/error

    For some reason this deprecation warning is being treated as an error (and only with newer Windows platform SDKs). Just disable this warning for the GetVersionEx line.
    See https://stackoverflow.com/questions/22303824/warning-c4996-getversionexw-was-declared-deprecated for details.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Feb 11 20:49:58 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f587a43e6fee5458e3376d5a
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    When a double is cast to an int, but the double has a larger value
    than the int supports, it's set to 0x80000000 to indicate overflow.

    msclock() is *always* overflowing, and clock_t is only 32-bits on
    some platforms (specifically FreeBSD). To "avoid" problems, just
    keep subtracting UIN32_MAX from the value until it's less than INT_MAX
    then cast.

    This function is, of course, terrible and shouldn't actually be used,
    but it should at least sorta kinda workish.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Feb 11 23:43:24 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/d2eda12d2c30356cc14461d5
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix Win32 builds maybe?

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Feb 11 23:47:10 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e7761bb1b03cbbf6b3ab0662
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix Win32 harder

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Feb 11 23:49:49 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/c3c6d783f4da67a9b2a1f1ed
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Moar!

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Feb 12 00:00:22 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f0a83672aa0c8d0d638bfd62
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Resolve new msvc warning

    warning C4244: '=': conversion from 'double' to 'uint64_t', possible loss of data

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Sat Feb 12 00:07:16 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f8da2a2f2ff8668017906f48
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    More Win32 optimizations.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Sat Feb 12 00:15:39 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/7d1fc057418fe859028b1c54
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    More Win32 optimizations.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Sat Feb 12 00:40:31 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/489c0c3c20b98f74f54046d0
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Borland doesn't have roundl() so do terrible things instead.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Sat Feb 12 00:45:48 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0488082a3e46f9cd25efc140
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Not *that* t.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Feb 25 14:30:46 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/7a3dcb6c2ad19812fd674660
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix MSVC warning in xp_timer64()

    genwrap.c(855): warning C4244: '=': conversion from 'LONGLONG' to 'uint32_t', possible loss of data

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed Jul 6 21:18:35 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a302a01b1b42887cdece9b23
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Escape chars >= 0x7f too (DEL and ex-ASCII/UTF-8 and whatnot)

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed Jul 6 21:23:26 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/735aa51e4f3bcaa8a6640416
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix for previous commit and escaped char values > 127 (0x7F)

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Sat Mar 11 17:27:03 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/7081a525902dcc4acf4f00a2
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix mysterious double overflow issue in parse_byte_count()

    It's possible that some values (e.g. "16384P") exceed the storage (count of bytes) of a 64-bit integer, and such values were causing floating point exceptions when running sbbsctrl.exe, e.g.
    Faulting application name: sbbsctrl.exe, version: 3.20.0.0, time stamp: 0x00000000
    Faulting module name: gdi32full.dll, version: 10.0.19041.2604, time stamp: 0x2b5302d5
    Exception code: 0xc0000090

    but interesting (and perhaps a clue), not with sbbs.exe.

    Anyway, this added range checking, limiting the maximum value to INT64_MAX (after division by unit, though there was no division-unit in the problem
    case, the "min_dspace" value parsing in scfglib2.c). Using conditional/ternary return statement had the same floating point exception occurrences, so this if-statement shouldn't be removed/changed/optimized!

    I suspect this has something to do with mix of Borland and MSVC run-time libs and perhaps different expectations or setups with regards to floating point exceptions. I did notice that when stepping through read_file_cfg(), I would get different return values for the same call to iniGetBytes() depending on whether it was initiated from sbbsctrl.exe (built with C++Builder) or
    sbbs.dll (built with MSVC).

    Thanks to Codefenix for providing the sample file.ini file that demonstrated the issue. This problem would've been very hard to root-cause otherwise!

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Fri Mar 17 19:26:55 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/973b548fcd8c126de3633b5c
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Use const doubles for time durations

    Instead of copy/pasta. No change in function,.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Mar 28 15:27:09 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/ea44c50ad1ffe1a9cef1a7ff
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Fix clang warning: implicit conversion from 'long' to 'double'

    changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if(bytes < 0 || bytes > INT64_MAX)
    ~ ^~~~~~~~~
    /usr/include/x86/_stdint.h:90:19: note: expanded from macro 'INT64_MAX'
    #define INT64_MAX 0x7fffffffffffffff
    ^~~~~~~~~~~~~~~~~~

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Dec 18 17:21:37 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/9031ac11bbc1003e9cd13f3e
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    Cosmetic improvements to duration*_to_[v]str() functions

    Use lower case y/w/d/h/m suffix.

    If a duration is an exact multiple, don't display ".0" fraction. This is not consistent with byte_estimate_to_str() string generation, but I think it's
    more in line with human expectations.

    Don't display "90d" as "12.9w" (unless the requested unit is one-week).

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net