• src/sbbs3/js_uifc.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Feb 20 14:16:00 2023
    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 Sat Oct 28 18:39:39 2023
    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 Sat Oct 28 18:51:55 2023
    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 Sun Oct 29 17:47:10 2023
    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 Tue Mar 5 15:37:58 2024
    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 Tue Jun 18 22:40:02 2024
    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 Fri Jun 21 00:26:42 2024
    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