• src/sbbs3/js_uifc.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Monday, February 20, 2023 14:16:00
    https://gitlab.synchro.net/main/sbbs/-/commit/2a2c6ed4ffdb1d31c5fbd8a2
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Fix insufficient 'mode' string length in init() method

    Limited to 6 chars, yet some values are as long as 12 chars.

    Also, eliminates this warning from RELEASE builds (only) using gcc version 12.2.0 (Debian 12.2.0-14):
    js_uifc.c: In function `js_uifc_init':
    sbbs.h:230:56: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=]
    230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \
    | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sbbs.h:242:9: note: in expansion of macro `JSSTRING_TO_ASTRING'
    242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \
    | ^~~~~~~~~~~~~~~~~~~
    js_uifc.c:609:17: note: in expansion of macro `JSVALUE_TO_ASTRING'
    609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL);
    | ^~~~~~~~~~~~~~~~~~
    In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:20: note: destination object of size 7 allocated by `__builtin_alloca'
    77 | #define alloca(sz) __builtin_alloca(sz)
    | ^~~~~~~~~~~~~~~~~~~~
    sbbs.h:228:43: note: in expansion of macro `alloca'
    228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \
    | ^~~~~~
    sbbs.h:242:9: note: in expansion of macro `JSSTRING_TO_ASTRING'
    242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \
    | ^~~~~~~~~~~~~~~~~~~
    js_uifc.c:609:17: note: in expansion of macro `JSVALUE_TO_ASTRING'
    609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL);
    | ^~~~~~~~~~~~~~~~~~

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Saturday, October 28, 2023 18:39:39
    https://gitlab.synchro.net/main/sbbs/-/commit/13b61182ea5e0084fab1acc2
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    'prompt' argument missing from uifc.input() JSDOC

    Also clarify (or try to clarify) that the maxlen argument is required if you want to specify any kmode flags.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Saturday, October 28, 2023 18:51:55
    https://gitlab.synchro.net/main/sbbs/-/commit/b4c97d4673102605ccccda92
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Document all the parameters to and return value of uifc.input()

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Sunday, October 29, 2023 17:47:10
    https://gitlab.synchro.net/main/sbbs/-/commit/a3f62409cf84c5d5946e122c
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Update JS docs for uifc methods

    The CTX constructor arguments weren't documented

    Some blind beautification via HTML tags

    ---
    ■ 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 Tuesday, March 05, 2024 15:37:58
    https://gitlab.synchro.net/main/sbbs/-/commit/0121fc5ff50c2e53e35a46e0
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Make uifc.input.CTX and uifc.showbuf.CTX constructors match assumptions/docs

    This one has caught me up before, for the CTX constructors didn't actually accept any initial property values (as arguments).

    mlong even documented it this way at https://wiki.synchro.net/ref:uifc#javascript_interface

    And construted his input.CTXs this way (using all 0 values, which were
    ignored) in his xtrnmenucfg.js

    ---
    ■ 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 Tuesday, June 18, 2024 22:40:02
    https://gitlab.synchro.net/main/sbbs/-/commit/91059084757d5c218e7b4b56
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Use new uifc.list mode flag WIN_BLANKOPTS

    uifc option lists are always NULL-terminated string lists (not static
    arrays of char arrays, as is often used in other UIFC utils), so grow
    the ability to have blank options (list items).

    This was needed for fileman.js to accurately edit extended file
    descriptions that contain blank lines.

    ---
    ■ 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 Friday, June 21, 2024 00:26:42
    https://gitlab.synchro.net/main/sbbs/-/commit/16525f870b76c17a25ef3fa1
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Use the new uifc_t.restore() method when decrementing the save_num

    This is the proper way to manually-restore the most recently saved
    window (via the WIN_SAV mode flag to the list() method).

    I wanted something that was backward comaptible with earlier builds
    of SBBS, so just doing a magic thing when decrementing the save_num
    rather than adding a new method seemed the seamless way to do it.

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