Skip to content
Snippets Groups Projects
  1. Feb 26, 2023
  2. Feb 25, 2023
  3. Feb 23, 2023
  4. Feb 22, 2023
    • Rob Swindell's avatar
      Use the new UIFC input mode flags to trim spaces where inappropriate · f5e58c70
      Rob Swindell authored
      from sysop input, automatically.
      f5e58c70
    • Rob Swindell's avatar
      Add uifcapi_t.kmode that can be used to set global key-input mode flags · 640c1355
      Rob Swindell authored
      e.g. this a way to set the K_TRIM mode globally for all keyboard input
      640c1355
    • Rob Swindell's avatar
      Add input K_TRIM and K_NOSPACE mode flags · 5e0d2ef7
      Rob Swindell authored
      K_TRIM causes leading and trailing whitespace to be trimmed.
      K_NOSPACE disallows any whitespace characters to be added to the string.
      
      Previously, trailing whitespace was always trimmed. Now, only do that
      if/when K_TRIM is specified.
      5e0d2ef7
    • Rob Swindell's avatar
      Fix corrupted RFC822 msg headers when a header field was > 1024 chars · b77a0ba6
      Rob Swindell authored
      When sending an SMB message header via SMTP or POP3, some header fields (lines) could potentially be longer than 1024 and yet sockprintf() was limited to sending 1024 bytes (actually 1022 plus CRLF). This could result in some messages not being sent correctly: header field truncated, not CRLR-terminated, and notably resulting in MIME message contents not being decoded properly in a message viewer/reader. Example (Content-Type is part of the previous header field/line):
      x-ms-exchange-antispam-messagedata-0:
       =?us-ascii?Q?cm9T1Q9G65VC/lKTTqhODKhy5lHT2y6WWMb/WyvJ+EeGEwYmY7ILhzE3yfNM?=
       =?us-ascii?Q?KeFWN9T/PqHBya1plKf/sHgaw0iRmI7Hq+u9Dp4bG8OqdniKQlK+Aa27oXMd?=
       =?us-ascii?Q?Hly6OEYaSu7jbhGGY89LF0gyRVqquqxkaMfpKvG+h4cQnnu4Tl8YAKeE39a2?=
       =?us-ascii?Q?lHW3372ulmb9jvvZU72J2RtZYkuoIr+Wsqhfyuj39wTZ/+C4qKCsYrmTxrki?=
       =?us-ascii?Q?fBZ4gMPzWkrcWAr7zPcXBg8bphJJB8VJFUjQyksA3EG4dtH8+TZeEcNNBmHf?=
       =?us-ascii?Q?oCGnV9wHr9HszzrSkkZ2GGyh3QZLHAVDNe7wDXSy7HJttZugf9kNqKGeaYQL?=
       =?us-ascii?Q?TpljH1aHPe7MiSP9Dmp/xHQ/DWQOZDx5guNS+iMciMt5p5ad+SkQye0hWRhd?=
       =?us-ascii?Q?usHvpllclzIee6lxJ0VSPAzHGlAOhtOolrHdDB2ODjvkEzU7L2Fj2f5x7p9q?=
       =?us-ascii?Q?9d6sUgSz7vZVx8yyR3KPq3jIX0QUnl0xr2Mix9xcmMNcg0yFLPcznqBdLVa8?=
       =?us-ascii?Q?IC7j0+8oy4BjYxr8Z3elxMC2JKq13gPYgR95cwm6hMDiZbMB4EW/J1uJhD/I?=
       =?us-ascii?Q?RIIqTZ+Ywt8nKOfXj6/a9Aauf0wN71QKKA+in7KY9oksIhkUGvWOrtJwkVDL?=
       =?us-ascii?Q?Q2UFrBBJyQHJgumj5Y+bG8FDk/55IfyV9XYEcsdLL4bCF+HX4QPHZCw4P+li?=
       =?us-ascii?Q?bRvN+UxOO8hgXVkgB1q8mNJ62yQuaj0AContent-Type: multipart/alternative;
      	boundary="_000_SN6PR07MB454477F4C32C66D48BA0B02187A09SN6PR07MB4544namp_"
      
      Solved by using asprintf() instead of snprintf() for dynamic string formatting and allocation in one go. Using realloc() to expand the buffer for the appended/required CRLF.
      b77a0ba6
  5. Feb 21, 2023
  6. Feb 20, 2023
    • Rob Swindell's avatar
      All loadable modules can now be configured as full command-lines · add79f03
      Rob Swindell authored
      Previously, many/most loadable modules were limited to just 8 chars,
      so while technically you could include a command-line option with a
      very short module name, now all modules can be configured with full
      (up to 63 char) command-lines.
      add79f03
    • Rob Swindell's avatar
      Fix warning about signed/unsigned compare · 3cca779f
      Rob Swindell authored
      3cca779f
    • Rob Swindell's avatar
      Fix (false pos?) warnings in use of JSVALUE_TO_ASTRING only in RELEASE builds · 90dc709d
      Rob Swindell authored
      using gcc version 12.2.0 (Debian 12.2.0-14), e.g.
      
      js_console.cpp: In function ‘JSBool js_handle_ctrlkey(JSContext*, uintN, jsval*)’:
      sbbs.h:230:56: warning: writing 8 bytes into a region of size 2 [-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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      In file included from sbbs.h:255:
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size [1, 2] 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-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)); \
            |         ^~~~~~~~~~~~~~~~~~~
      90dc709d
    • Rob Swindell's avatar
      Fix insufficient 'mode' string length in init() method · 440bc585
      Rob Swindell authored
      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);
            |                 ^~~~~~~~~~~~~~~~~~
      440bc585
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true, part 2 · 51d4a1af
      Rob Swindell authored
      Missing part of yesterday's commit, whoops
      51d4a1af
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true · 4656c07c
      Rob Swindell authored
      Move the pack and unpack commands to an "Advanced" sub-menu since they
      are completely optional now.
      
      Set QWKhub 'VERT' to disabled by default in a new install.
      
      Fixes issue #506
      4656c07c
    • Rob Swindell's avatar
      Resolve GCC warning · d20d7fd0
      Rob Swindell authored
      warning: passing argument 1 of ‘ra’ discards ‘const’ qualifier from
      pointer target type
      d20d7fd0
    • Rob Swindell's avatar
      7d7f6d48
  7. Feb 19, 2023
Loading