Skip to content
Snippets Groups Projects
  1. Jun 03, 2023
    • Deucе's avatar
      Document how to build a dpkg. · be613be9
      Deucе authored
      It's pretty important to specift PREFIX here right now since it's
      not actually used in the paths, which means there would be a mismatch
      between where the files are installed and where the data lives.
      
      This is fairly easy to fix, but I likely never will.
      be613be9
    • Deucе's avatar
      Finally got ChromeOS icon/toltip working! · fd0370d5
      Deucе authored
      It appears its matching based on the class, not the application.
      Since this was hard-coded to CIOLIB based on the idea of using
      resources to customize all CIOLIB windows, this didn't match the
      SyncTERM .desktop file, so ChromeOS assumed it was "something else"
      
      Add yet another ciolib_initial_* variable to set this, and she's
      finally good!
      fd0370d5
    • Deucе's avatar
      Add dpkg target · 1a9930f0
      Deucе authored
      Part of my apparently never-ending quest to get the icon to show up
      for the SyncTERM window on ChromeOS.
      1a9930f0
    • Rob Swindell's avatar
      Fix channel.js line 372: TypeError: c.list[i] is undefined · b343e36f
      Rob Swindell authored
      Cyan may have a better fix. <shrug>
      b343e36f
    • Deucе's avatar
      Implement the _NET_WM_PING protcol · fb8189ce
      Deucе authored
      Implied by _NET_WM_PID being set, so may as well do it.
      fb8189ce
    • Deucе's avatar
      Set _NET_WM_PID · bf9cfc12
      Deucе authored
      Seems like a good idea, should allow WMs to kill hung processes and
      stuff like that.
      bf9cfc12
    • Rob Swindell's avatar
      Use "Message Editors" instead of the (vague) "External Editors" · 81548689
      Rob Swindell authored
      It was redudnant having "External Editors" under "External Programs" (they're
      all external, yeah?) and of course, "Editors of what?"
      
      So yeah, existing docs are now all wrong. :-)
      81548689
    • Deucе's avatar
      Disable X Synchronize and some minr optimizations in set_icon() · bbeb07bc
      Deucе authored
      The XSynchronize disablement is the most important here... didn't
      realize it defaulted to enabled, which has been slowing down a *lot*
      of stuff for a long time... not that there's much left that benefits
      from disabling Synchronized XLib except this new terrible icon thing.
      bbeb07bc
    • Rob Swindell's avatar
      Add a 60-second timeout to sbbs_t::passthru_socket_activate() · 0766f913
      Rob Swindell authored
      Keyop reported an issue via irc whereby a user that failed to download a file
      would leave the node "hung" in "downloading via telnet" node status even
      though the user had long since disconnected and the log reflected that the
      terminal server was aware of this:
      
      term Node 4 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 4 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 4 <user> external Timeout waiting for output buffer to empty
      <minutes later>
      term Node 4 connection reset by peer on send
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 !ERROR 32 sending on socket 102
      term Node 4 disconnected
      term Node 4 !ERROR 32 sending on socket 102
      
      and
      
      term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !Receive timeout (1 seconds)
      term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
      term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
      term Node 3 <user> external Timeout waiting for output buffer to empty
      <minutes later>
      term Node 3 connection reset by peer on receive
      term Node 3 !ERROR 32 sending on socket 96
      
      These nodes were then locked up in call to passthru_socket_activate(false)
      as reported by gdb, e.g.
      
      Looking at passthru_socket_activate(), the deactivation path (called at the
      end of external() in this case), it was clear that this could be an infinite
      loop in the case the user had disconnected:
      
          do { // Allow time for the passthru_thread to move any pending socket data to the outbuf
              SLEEP(100); // Before the node_thread starts sending its own data to the outbuf
          } while(RingBufFull(&outbuf));
      
      These flush/purge loops aren't strictly needed if the user has disconnected,
      but as can be seen by the above logs, the terminal server may not know that
      (the socket may not indicate disconnect) before passthru_socket_activate()
      is called by external().
      
      So... worst case, just do the activation and deactivation buffer flushes
      and purges for 60 seconds.
      0766f913
  2. Jun 02, 2023
  3. Jun 01, 2023
  4. May 31, 2023
    • Deucе's avatar
      Add support for XTerm "Bracketed Paste" · 567f2d12
      Deucе authored
      At the same time, add BD, BE, PE, and PS to the terminfo entry.
      
      Note that it seems this is "normally" detected by seeing if $TERM
      contains "xterm" which shouldn't work with SyncTERM (which is wildly
      incompatible), but the terminfo source file here:
      https://invisible-island.net/ncurses/terminfo.ti.html
      Gives us hope in the form of this comment:
      
      https://invisible-island.net/xterm/xterm-paste64.html
      
      Bracketed paste was introduced by xterm patch #203 in May 2005, as part of a
      larger feature for manipulating the clipboard selection.  Few terminals aside
      from xterm fully implement the clipboard feature, but several copy this
      detail.  The names for the extended capabilities here were introduced by vim
      in January 2017, but used internally.  In 2023, vim patch 9.0.1117 is needed
      to work with this change.
      
      That is to say that it likely won't work on anyone's system today
      (except maybe Cyan's), but it may magically start working in the
      future... assuming tic supports these capnames.  No real clue there
      since there's absolutely no termcap support, and I use FreeBSD.
      567f2d12
    • Deucе's avatar
      Fix off-by-one in delete lines · 3eee47ba
      Deucе authored
      Previously, delete lines would erase the line above the current one.
      This was visible in vim which makes extensive use of delete line
      to scroll.
      3eee47ba
    • Deucе's avatar
      Use /bin/pwd instead of pwd to get the PWD. · 2ba9dc40
      Deucе authored
      Some shell pwd implementations default to the "Logical" PWD, which
      can contain symlinks.  The POSIX standard for /bin/pwd is to return
      the "Physical" PWD with all symlinks resolved.  Some shells don't
      support the -P option the the built-in pwd, so we don't want to
      reply on that.
      
      For some reason, we're redefining the PWD env variable which should
      by the phyical path, but I'm not really interested in tracking down
      all the windy history for this.
      
      Basically, this bit me once, and now it's fixed.
      2ba9dc40
Loading