• src/uifc/uifc32.c

    From Rob Swindell (on Debian Linux) to Git commit to main/sbbs/master on Thu May 25 11:30:11 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/dc6b7f83882e372ab9199fb7
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    In screen widths < 80 columns, auto-suppress the date/time display

    The the date/time display would overwrite parts of the application
    title in narrower screen modes, so let's not do that.
  • From Deuc╨╡ to Git commit to main/sbbs/master on Wed Dec 27 12:01:02 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/efc1b44e84544103f3911495
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Don't clear exit_flags.

    This should ensure that once quit is used, everything exits, but
    apparently, this never worked.
  • From Rob Swindell (on Windows 11) to Git commit to main/sbbs/master on Sun Dec 31 20:04:23 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/289c3e5cd646300240eff1f5
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Fix dynamically calcluated list height bug when in T2B mode and top val given

    In T2B (top to bottom centering) mode, the 'top' parametr value isn't actually for the top of the window position (later), so just zero it here in case it
    was specified (and non-zero) to correct the calcutation on the next lines:
    ```
    if(top+height>s_bottom)
    height=(s_bottom)-top;
    ```
  • From Deuc╨╡ to Git commit to main/sbbs/master on Tue Mar 12 13:10:16 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/f605e394a59794596b94216e
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Remove non-ASCII char comments.

    These were originally non-ASCII char literals.
  • From Rob Swindell (on Debian Linux) to Git commit to main/sbbs/master on Fri Jun 21 00:26:42 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/f7caa6722d4d5b3132b0050e
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Expand tabs and ignore form-feeds in showbuf/help text
  • From Rob Swindell (on Debian Linux) to Git commit to main/sbbs/master on Fri Jun 21 00:26:42 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/89dda20e134e5d0443196a90
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Truncate long titles in showbuf() the corrupt the screen and the heap

    Don't actually truncate the string, just the display length
  • From Deuc╨╡ to Git commit to main/sbbs/master on Sun Nov 3 11:14:25 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/32fb9b77db11ec82231e4cee
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    More malloc() return checks
  • From Deuc╨╡ to Git commit to main/sbbs/master on Wed Nov 13 22:38:06 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/056304ed9e73c847a08102bb
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Fix bug reported by DigitalMan

    It looks like this has been a long-standing UIFC bug (pre-3.0)

    If a uifc list that can scroll is showing the bottom-most line,
    and an option that is not the last is deleted, and both *cur and
    *bar are left untouched, *bar would be adjusted to be too high,
    resulting in various highlight bar corruption issues.

    This commit just rewrites that logic to be comprehensible, and
    ensures that if bar is set such that the list would end before the
    bottom of the window, it gets moved up. This makes delete do the
    right thing (didn't test with insert, that may do weird things).

    Also, since I figured out a good definition of what bar actually
    represtens, add a comment to that effect.
  • From Deuc╨╡ to Git commit to main/sbbs/master on Wed Nov 13 23:26:48 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/2e47ac987d5f1f1add45e5f7
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Just overhaul this who chunk of code.
  • From Deuc╨╡@shurd@sasktel.net to Git commit to main/sbbs/master on Sat Jan 4 21:51:35 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/d63dd43c9b9a1cc24b268829
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Prevent dereferencing NULL bar or cur with WIN_DYN

    This would be an API violation, but we shouldn't crash about it.
  • From Rob Swindell (on Debian Linux)@rob@synchro.net to Git commit to main/sbbs/master on Thu Jan 9 18:53:52 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/935afe75ac88dd8094e58e71
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Fix buffer overflow when upop() is called with a string > 73 chars

    result in segfault (e.g. adding long filenames using fileman.js)
  • From Rob Swindell (on Debian Linux)@rob@synchro.net to Git commit to main/sbbs/master on Thu Jan 9 20:22:12 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/d55686a5ef0d1f9706d17b18
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    A more complete fix for the upop() issue with long strings

    Completely remove the 80 column screen width assumption/limit.
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Tue Jan 14 17:42:18 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/ad84aa032681df2b5a7eb06d
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Resolve MSVC warning
  • From Deuc╨╡@shurd@sasktel.net to Git commit to main/sbbs/master on Mon Feb 10 14:43:09 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/f55039de28c9dfc30450fec8
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Only base drag-select highlight on the legacy attribute.

    The fg/bg values all have multiple representations, and some bits
    have extra meanings, so inequality there doesn't mean they're not
    the same colour.

    This fixes an issue where the *second* drag select on a screen
    would not highlight blue backgrounds correctly. The background
    colour gets the "pixels set" bit flown because of how
    restorescreen() works, which caused this to "know" it's not blue
    and use a blue background.

    A (good) argument could be made that savescreen()/restorescreen()
    shouldn't result in any changes, but since uifc32 doesn't directly
    use colours that aren't represented by legacy attributes, there's
    no need for it to get tricky here.
  • From Rob Swindell (on Debian Linux)@rob@synchro.net to Git commit to main/sbbs/master on Thu Jan 15 00:56:52 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c435be7c3f57a30fa0095e8e
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Resolve GCC warning about not checking return value of vasprintf
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Sat Jan 17 01:26:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8d530846c761b54828c61493
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Change ugetstr() to be able to use modes K_FIND and K_CHANGES together
  • From Deuc╨╡@shurd@sasktel.net to Git commit to main/sbbs/master on Mon Feb 23 15:53:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/33e2888f435a8d48036759ae
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Check for re-fill blk_scrn buffer before every use

    Previously, the buffer was fixed to the default colours for the API
    structure. Now of the fill char or colours change, the fill is
    updated to reflect that.
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Mon Feb 23 16:30:26 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bbc3bb5a58375d21720b0eba
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Address new warning from MSVC about comparison of signed-mismatched vars
  • From Deuc╨╡@shurd@sasktel.net to Git commit to main/sbbs/master on Sat Mar 21 09:08:52 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bdab1d4d041d467c1d43c6d2
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    Don't modify the option list.

    uifc would truncate space and control characters from the end of
    options if the width was being auto-calculated.

    This is a TERRIBLE idea because those are often const data.
    If this is actually needed, it could be a weird strlen thing, but
    it really shouldn't be needed.

    This has been broken since the beginning.
  • From Rob Swindell (on Debian Linux)@rob@synchro.net to Git commit to main/sbbs/master on Tue May 5 16:50:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/264210ef87b3800b5037fc62
    Modified Files:
    src/uifc/uifc32.c
    Log Message:
    uifc: showbuf width minimum is title_len + 8, not + 6

    When the caller passes width < title_len + 6, showbuf clamped up to
    title_len + 6. But the actual layout takes title_len + 8 cells -
    two corners, two titlebreak chars, two surrounding spaces, plus a
    minimum of two horizontal segments per side. The old minimum left titlebreak_right and top_right writing one cell each past the row's
    end, corrupting the first two cells of row 2. Visible when the title
    was longer than the longest line in the body buffer.

    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>