- Dec 29, 2022
-
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
We've never really cared how many times the ring buffer has become empty, how many times data was added to it, or how many times we've been over the highwater mark. These have effectively always been event signalling, with extra hackiness to clear "extra" semaphore posts. This commit removes RINGBUF_SEM entirely, and uses events for everything. There's an empty event (set when the ring buffer is empty), a data event (set when the ring buffer is not empty), and a highwater event (set when the ring buffer has at least highwater mark bytes). A RingBufWrite() will set data and highwater events if applicable, and clear the empty event. A RingBufRead() will set empty event and clear data and highwater events if applicable. RingBufReInit() will now set the empty event, and clear the data and highwater events. These are the only actions the RingBuf API will perform on the events, it does *not* clear the highwater event on a RingBufWrite() if the buffer does not have enough bytes in it for example, this will *only* be done by RingBufRead() or RingBufReInit(). This allows consumers to force specific behaviours (such as forcing the highwater event on shutdown to prevent waiting for it). Since the current code was able to deal with the semaphores having arbitrarily high counts, the existing code shouldn't have any issue with this. For things that want to shut something down, we're now setting both the data and highwater events to ensure it doesn't wait for a timeout (even for things that don't use highwater like the inbuf). The RingBuffer API should grow a thing to do this (RingBufferFlush perhaps?) rather than the consumers poking into the innards arbitrarily. Tested on the webserver and RLogin server and seems to be working great. sexyz builds. It seems there's some Windows thing that uses the ringbuffer sem for something, but I couldn't figure out what... updated the build file, but no clue if that's broken or not now... I'm sure DigitalMan will be happy to fix it if CI doesn't catch it. ;) This should allow the console object to grow a "flush" method that will set the highwater and data events.
-
Deucе authored
-
Deucе authored
-
Deucе authored
not scale it in one colour space before translating it to a different one. Also, since almost all PPMs will use a maxval of 255, compile that in as the default so we don't need to generate it.
-
Deucе authored
Update the script to verify pixel operations are supported.
-
- Dec 28, 2022
-
-
Deucе authored
-
Deucе authored
You can copy whole, or portions of a PPM file from the cache directory to the screen, optionally applying a mask. The mask can be specified as a base64-encoded bitmap or as a PBM file in the cache directory. You can also copy portions of the screen into an internal buffer, and draw from that internal buffer. There's plans to support loading an image file from the cache directory into the buffer as well. Portions of the buffer can be copied to the screen, optionally applying a mask as with drawing PPMs. There's also plans to support copying a PBM file into a mask buffer. I've added the syncterm-bounce.js script which simply bounces the SyncTERM icon around the screen like the classic screensaver we all hate. I initially wanted to replace the spinning cursor with it, but there doesn't seem to be a way to replace that with a script. :( To use the script, just add the text: @EXEC:syncterm-bounce.js@ to the end of your logon.js script. Log in to nix.synchro.net with the latest nightly build or build from git to see the script in action.
-
- Dec 27, 2022
-
-
Deucе authored
the start of wrapped function call continuation lines, but at the end of struct initializers/enums/etc lines. I think the least bad is commas at the end, especially now that it's got the happy four-space indent for continuations. I may play with this more later, but this seems to be good for now, we'll see how it works out in actual use.
-
Deucе authored
I tried a space after too, but that's weird as well and easily confused with multiplication at first look.
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
Run uncrustify on this mess. There's a few small oddities (especially in enums), but this is much better.
-
Deucе authored
There's no reason to be aggressively ancient.
-
Deucе authored
-b/path/to/bbslist specifies a user BBS list file -n/path/to/inifile specifies a config file Remove undocumented -insert option. This may make nelgin sad, not sure.
-
Rob Swindell authored
... in hopes of debugging issue #468 Also clean up drop files unless -d option is passed. Incremented version to 0.3.
-
Rob Swindell authored
-
Rob Swindell authored
-
- Dec 26, 2022
-
-
Deucе authored
-
Deucе authored
Not actually part of CTerm, but documented here anyway.
-
Deucе authored
This destroys graphics. Fixes SF bug 94.
-
Deucе authored
sdl_setwinsize() and eliminate another race.
-
Deucе authored
-
Deucе authored
-
Deucе authored
Pass window size in SDL_USEREVENT_SETVIDMODE - Fixes race condition where SDL_WINDOWEVENT_RESIZED or SDL_WINDOWEVENT_SIZE_CHANGED arraves while SDL_USEREVENT_SETVIDMODE is in the queue Set new scaling based on old scaling multiplier - Will resize window on mode changes, but tries to keep integer multiplier similar. May break fullscreen modes, dunno. Have aspect_fix() return higher rather than lower - This may make it the same as aspect_correct(), but I'm too lazy to figure that out.
-
Deucе authored
Add additional stderr debugging. Don't try to correct the aspect ratio of the window.
-
Deucе authored
-
Deucе authored
-
- Dec 25, 2022
-
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
Previously, b64_decode was being asked to decode past the end of the application string.
-
Deucе authored
This should get the original RIP stuff working properly. LORD icon files are ideally handled a bit differently: 1) If the remote supports the SyncTERM cache operations, icons are transferred directly to the cache using them. This requires a SyncTERM build including commit e3a280b6. 2) If LORD is running in-process under Synchronet, it will try to initiate a YModem-G download for the files using bbs.send_file(name, 'G'). This means YModem-G must be enabled, and must use the 'G' command key. Having the *correct* icon files will still work, but they must be the expected file size and be the same modified date or newer to be used by LORD JS. Ideally, there would be a way to configure sexyz or something to do icon transfers, but that's a lot harder, so I'm not going to bother.
-
Deucе authored
Fix off-by-one error with b64 cache store buffer size.
-
Deucе authored
-
Deucе authored
This allows ensuring we don't expand CRLF into CRLFLF. This is usually harmless, but there's no real need to put up with it in a program with a single thread using the expand function.
-