1. 13 Mar, 2021 2 commits
    • Deucе's avatar
      We can't pollute the namespace with curses everywhere. · 687d092c
      Deucе authored
      Just rename ESCDELAY member to escdelay.
    • Deucе's avatar
      include curs_fix from ciolib.h to fix openSUSE · e679fa13
      Deucе authored
      Apparently, the ncurses in openSUSE Leap-15.2 has the following:
      Since we have a struct member named ESCDELAY, we can't actually set
      it at all when this macro is defined.
      The three possibilities to deal with this are:
      1) Rename the ESCDELAY member.
         Likely the best option long-term, but I don't want to find everything
         and update it at this time.
      2) Avoid using the ESCDELAY member #ifdef ESCDELAY
         Which makes it not work in the exact set of circumstances it makes
         sense in.
      3) #include curs_fix.h from ciolib.h
         This actually renames the ESCDELAY member to _nc_ESCDELAY, but you
         won't be able to actually notice this.
  2. 09 Mar, 2021 1 commit
    • Deucе's avatar
      Deal with dorkit hangup issues... commit #1 · 9a89f8c9
      Deucе authored
      1) Ciolib CIO_KEY_QUIT and CIO_KEY_MOUSE conflicted with ALT_7 and ALT_6
         respectively, change these to use \xE0 prefixes.
      2) Add a new dorkit key "CONNECTION_CLOSED" which is returned by getkey()
         after the connection is closed.
      3) Have the various connection back-ends send a CONNECTION_CLOSED key to
         the keyboard buffer when the connection is closed.
      4) Have the local console send a CONNECTION_CLOSED key when the window
         is closed.
      5) Disable auto_terminate in dorkit.
      6) Introduce dk.connection.disconnect_timeout variable (defaults to 30
         seconds).  After a CONNECTION_CLOSED key is received, dorkit will
         immediately set js.terminated, then after disconnect_timeout seconds,
         will enable js.auto_terminate.
      7) After a CONNECTION_CLOSED key, waitkey() always returns true, getkey()
         always returns a CONNECTION_CLOSED key, and getbyte() always returns
      8) To prevent a poorly written door from hogging 100% CPU for the whole
         30 seconds, put an mswait(1) in the connection check when the
         inactivity timer is running.
  3. 16 Aug, 2020 1 commit
  4. 27 Jun, 2020 1 commit
  5. 14 May, 2020 2 commits
  6. 07 May, 2020 1 commit
  7. 04 May, 2020 1 commit
  8. 29 Apr, 2020 1 commit
  9. 25 Apr, 2020 2 commits
  10. 17 Apr, 2020 2 commits
  11. 16 Apr, 2020 1 commit
    • deuce's avatar
      Give each font a codepage. · e89200ca
      deuce authored
      getcliptext() and copytext() (ie: copy/paste) now work on UTF-8 strings.
      Not tested on Win32 yet.
  12. 13 Apr, 2020 2 commits
  13. 12 Apr, 2020 1 commit
  14. 03 Apr, 2020 1 commit
  15. 02 Apr, 2020 1 commit
    • deuce's avatar
      SyncTERM changes: · 34ec98f0
      deuce authored
      Have SyncTERM save/restore the window size
      Ciolib changes:
      Hopefully fix streaming texture updates (ie: white screen)
      - Request pixel data on expose rather than re-render texture
      - This allows the rect update to copy the screen
      Fix ALT-Enter fullscreen toggle
      Ensure vstatlock is held when accessing cvstat
      Add setwinsize() and setwinpos() to ciolib
      Return window position from get_window_info() in SDL mode
      SDL driver no longer supports setscaling() (use setwinsize())
      Use ALT-<arrow> to change window scaling, not Meta
      Add winwidth/winheight to vstat structure
  16. 01 Apr, 2020 2 commits
    • deuce's avatar
      More SDL2 fixes... · 0294a141
      deuce authored
      Remove CIOLIB_MODE_SDL_YUV* macros, these modes have no point anymore
      Fix SDL prototypes
      Use _beginthread() instead of SDL_CreateThread().  For some reason, using
      CreateThread() sometimes caused an application crash (ie: when using -?)
      Everyhing else uses _beginthread() so there's no reason for this to be
      special, especially when it breaks stuff.
    • deuce's avatar
      Fix Windows builds some more... re-introduce CIOLIB_main(), but only for · b838d32c
      deuce authored
      Win32 now (and it only runs main() from WinMain()).  This shouldn't be
      necessary for MSVC builds.
  17. 31 Mar, 2020 1 commit
  18. 25 Jul, 2019 2 commits
  19. 11 Jul, 2019 3 commits
  20. 22 Mar, 2019 1 commit
    • rswindell's avatar
      Use default calling convention (__cdecl) for DLL funcs in Borland builds. · bf82a889
      rswindell authored
      Fix age-old bug with Borland/C++Builder built executables (Windows):
      to achieve compatibility with  the default __cdecl symbol naming rules of
      Visual C++, we were using __stdcall convention for DLL functions when
      building code with Borland/C++Builder tools and using the default (__cdecl)
      convention when building with Microsoft (Visual C++) tools. Although this
      allowed symbols to be located when linking, the calling convention mismatch
      caused a stack cleanup issue that very rarely manifested itself in a bug
      (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
      the calling conventions was unintentional (I thought the default for MSVC
      DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions
      worked 99% of the time, I didn't realize there was an underlying issue. So I
      now work-around the DLL symbol naming mismatch using a command-line option (-a)
      passed to implib in src/sbbs3/ctrl/makelibs.bat
      I had previously worked-around exceptions when calling MSVC DLL functions in
      sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler
      rather than a user control (e.g. button) event handler. Those work-arounds can
      now be removed.
      The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted)
      to many other projects' header files in cvs.synchro.net. In the future, we may
      want to just remove all instances of *CALL since they now serve no purpose and
      appear as useless "Kruft" (but do allow us to more-easily globally change DLL
      function calling conventions if/when necessary in the future).
  21. 18 Apr, 2018 1 commit
  22. 14 Feb, 2018 2 commits
  23. 13 Feb, 2018 2 commits
    • deuce's avatar
      Eliminate pputtext() and pgettext() in favour of vmem_puttext() and vmem_gettext() · 3a0b3655
      deuce authored
      Update scrollback to use vmem_gettext()
      Update all the things I previously updated for the new cterm_init() prototype
      So now I expect things to work again... though X11 mode may have issues,
      and SDL overlay mode is dog slow.
    • deuce's avatar
      Beginnings of a massive ciolib overhaul... · 210cc022
      deuce authored
      We're switching to TrueColor now, and maintaining a 65536 entry palette
      for the various palettized bits.  This change hurts the overlay output most
      since it currently means floating point calculations for every pixel.
      The getfont() function now takes a fontnum argument so you can get all the
      current fonts.
      The vmem array now holds the font data, so once a glyph is written to the
      screen, it can stay in that font "forever".  This still has some issues
      with savescreen()/restorescreen() since there's no extension to grab the new
      stuff... that'll be coming soon, likely replacing the pgettext() and
      pputtext() functions.  For now, various popups will likely reset fonts to
      the default font on the screen.
      Now that we have all this, the status bar in SyncTERM can retain the default
      font and colours at all times.  Further, menus can be displayed in the "right"
      colours and fonts, and no more translation will be needed.  This is a work
      in progress though, so there's likely to be glitches.  The scrollback doesn't
      have the font data either (same issue as savescreen()/restorescreen()).
  24. 12 Feb, 2018 2 commits
  25. 08 Feb, 2018 2 commits
  26. 07 Feb, 2018 2 commits