The project "Citadel server, clients, utilities":
The branch, master has been updated via 2f5f286330edbe5d4ca07df68cfa3537fee33aa8 (commit) via 63b58db3b17a3cfd291c2ac2d61d9ae787a38ff1 (commit) via 6bd79e0a46de1d8c4e64c955d7b221babc720110 (commit) via e76cee338cbb83bc79cc44259a333cb6746720a2 (commit) via cb74f52cc79de47d86b65a4f8ea812e22b275a04 (commit) via cabf2fc5c9e798dcb73278d97dc027fd69039004 (commit) via 733cb9052f4234e78f4f6420a77236be4c9a5951 (commit) via 5ef507b6a1810abeb2d8a68e84aaa55197129b5f (commit) via f3ca6700ae5be09b6f7be8adfdd6df2979c7577f (commit) via 29b9fda56bf174aec9c6ff1771cb6eec8d3a36d5 (commit) via f9ddb6d7eca99723a23e5de150b2c42b66b6e7dd (commit) via 14f70eb44053cb8b9e9743343b8a0e82d0b3eb87 (commit) via ca4328a16f2ed94dbfff1fcbf6d48bccbd0924fa (commit) via cc780532a61477e440039509eb217ac9e0c5b025 (commit) via ac426ad9af512f1b043aa87ad9f17ed8ac7beef2 (commit) via 0ee2bd4eba7aaab42cf7f0d63cccf0dfddce327d (commit) via 18c0d770db4aa85a7048b2554434130703378188 (commit) via 39d21684f9573388b831d29d3ef5253e5395df22 (commit) via baf0e38c626c6fa7c3f1e8fcfaac6d1b373d6c1c (commit) via 2e569e9c557e01f7916abb732b1dd6a7e3c842f4 (commit) via eaae0f70b7a1972b5661d87a4f60bd683b5bd3f8 (commit) via 57207c7066b7feeacdf6ee79fefbeed0cf58f2f4 (commit) via ff5c0bcb9695a8c285d3a7cabbe8e347de6a852f (commit) via 51dd799abf232a021f586805d18b6943e23e3c01 (commit) via 89a841ffc79e2c9e1c25c022001ea7dc8044f989 (commit) via 576644c2e7b98098d8bdb0b9e5af282293790d9e (commit) via af4d80deb41fab1ed79b18c78a42b702f2ff09c2 (commit) via eccb8be585ff8b4943ccb7b01b231d1c62be50c1 (commit) via ab967efb000b7c6f3a9c12a98b62718a1f6dc584 (commit) via ccc0a990c54508d6e094ec6457b1ccf90ab8fa32 (commit) via 3453113e509db29b5a42fb61a861b68ecba91b29 (commit) via a405fdfc4614dc28ed2d6fe3087eab3f91f5d018 (commit) via 5140871a40c75aaa33ed0a3514351abd766b9007 (commit) via 27025f5e6c4e1f7406aa49224b7254ef866aade1 (commit) via eb54625772088f9bfcd836e220de9b8f10f4c914 (commit) via 977bbc133019a1f094fd5a7ebf2f7ac0796f56e9 (commit) via c7e36a0155fab4d583371552e2b4e1c297068bf0 (commit) via 567ad9024f479d23f067cf006c8636e2898084ac (commit) via 587b4944a5716d2469d8f6c0dc306255f48364f5 (commit) via 28c9ce73afacd91fc08081197a44c51d268de9cf (commit) via a99b76253acf923a3575e61eefdc0e2c54e325db (commit) via f2de8e1d26a1a79dd9c31a4b9a8d43a992b10797 (commit) via d3469dc1e69e49e4129b5e0c199b1290ef537e67 (commit) from 2a0f7681f4d4d03b3d88c7819ab4f20876d19c48 (commit) - Log ----------------------------------------------------------------- commit 2f5f286330edbe5d4ca07df68cfa3537fee33aa8 Merge: 2a0f7681f 63b58db3b Author: Art Cancro <a...@citadel.org> Date: Wed Dec 18 13:34:00 2024 -0500 Merge branch 'console_rework' commit 63b58db3b17a3cfd291c2ac2d61d9ae787a38ff1 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 18 11:56:52 2024 -0500 Completed the return of the status line. commit 6bd79e0a46de1d8c4e64c955d7b221babc720110 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 18 11:23:00 2024 -0500 disable debug bar commit e76cee338cbb83bc79cc44259a333cb6746720a2 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 18 11:18:49 2024 -0500 messages.c: dial back word wrap by one more column commit cb74f52cc79de47d86b65a4f8ea812e22b275a04 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 17 23:35:04 2024 -0500 initial go at restoring the status line commit cabf2fc5c9e798dcb73278d97dc027fd69039004 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 17 22:48:38 2024 -0500 screen.c: more simplification of stty_ctdl() commit 733cb9052f4234e78f4f6420a77236be4c9a5951 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 17 16:02:54 2024 -0500 Consolidating terminal stuff into screen.c commit 5ef507b6a1810abeb2d8a68e84aaa55197129b5f Author: Art Cancro <a...@citadel.org> Date: Mon Dec 16 23:10:09 2024 -0500 Moar editor tweaks commit f3ca6700ae5be09b6f7be8adfdd6df2979c7577f Author: Art Cancro <a...@citadel.org> Date: Mon Dec 16 22:35:14 2024 -0500 messages.c: more fine tuning of the editor. commit 29b9fda56bf174aec9c6ff1771cb6eec8d3a36d5 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 16 21:49:39 2024 -0500 citedit: rely on screen.c to tell us what column we're actually in. commit f9ddb6d7eca99723a23e5de150b2c42b66b6e7dd Author: Art Cancro <a...@citadel.org> Date: Mon Dec 16 21:41:54 2024 -0500 Saving my work because I'm about to try something commit 14f70eb44053cb8b9e9743343b8a0e82d0b3eb87 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 16 16:39:04 2024 -0500 replace size_t with int where signed comparisons are needed commit ca4328a16f2ed94dbfff1fcbf6d48bccbd0924fa Author: Art Cancro <a...@citadel.org> Date: Sun Dec 15 21:51:20 2024 -0500 Rewrote the built in editor. commit cc780532a61477e440039509eb217ac9e0c5b025 Author: Art Cancro <a...@citadel.org> Date: Thu Dec 12 11:55:09 2024 -0500 Replaced most of the error messages with a new macro call scr_perror() This simply displays the function name from __func__ along with strerror(errno) which turns out to be a perfectly serviceable error message 99% of the time. commit ac426ad9af512f1b043aa87ad9f17ed8ac7beef2 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 11 22:39:19 2024 -0500 Please forgive my frequent small commits. They are probably annoying. commit 0ee2bd4eba7aaab42cf7f0d63cccf0dfddce327d Author: Art Cancro <a...@citadel.org> Date: Wed Dec 11 16:13:14 2024 -0500 <.E>nter <A>scii now converts CRLF to LF, avoids unwanted double-spacing commit 18c0d770db4aa85a7048b2554434130703378188 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 11 16:00:04 2024 -0500 process_quote() cleanup. second tempfile is far more ephemeral now and no longer a global variable. commit 39d21684f9573388b831d29d3ef5253e5395df22 Author: Harlow Solutions <cita...@harlowsolutions.com> Date: Tue Dec 10 16:43:29 2024 -0500 msgbase.c: When saving message, switch from locking room to regular lock. Originally thought locking room was the proper solution when writing to database. Found that emails from unauthenticated users result in an blank room, so not a solution for all cases. Switched to using critical section locks for all saves. commit baf0e38c626c6fa7c3f1e8fcfaac6d1b373d6c1c Author: Harlow Solutions <cita...@harlowsolutions.com> Date: Mon Dec 9 23:30:12 2024 -0500 msgbase.c: Fixing room locking bug when saving message. CtdlSubmitMsg() change locked room. After further testing in production, found that messages from Gmail (and probably others) resulted in blank room names. Changed so if a lock does not work, still go ahaed and save teh message. Will need to debug more to determine how to lock all rooms. This fix at least fix some possible deadlocks. commit 2e569e9c557e01f7916abb732b1dd6a7e3c842f4 Author: Art Cancro <a...@citadel.org> Date: Wed Dec 11 15:17:48 2024 -0500 Newfangled string traversal commit eaae0f70b7a1972b5661d87a4f60bd683b5bd3f8 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 23:29:08 2024 -0500 messages.c: war on goto statements continued, this time in the editor save options loop commit 57207c7066b7feeacdf6ee79fefbeed0cf58f2f4 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 16:18:54 2024 -0500 ka_system() is no longer called by anything. Removed. commit ff5c0bcb9695a8c285d3a7cabbe8e347de6a852f Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 16:08:41 2024 -0500 strproc() is now sanitize_string() and has improved badassery commit 51dd799abf232a021f586805d18b6943e23e3c01 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 15:01:26 2024 -0500 Replace non-obvious 'mode' variable with 'editor_mode' and enum'ed options commit 89a841ffc79e2c9e1c25c022001ea7dc8044f989 Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 13:41:56 2024 -0500 textclient.h: much cleanup, see description below. There is a lot of very old code in here, some of it as much as 37 years old. To understand why it is as messy as it is in places, one must understand that the text client is actually the remnant of the old monolithic Citadel BBS program after the back end code was moved to a dedicated server. Most of it was left in its existing form for decades because it was working fine and it contained no interesting problems to solve. Currently, there are people who are finding the text client to be an attractive place to tinker. This seems to be a combination of interest in retro style interaction and an increase in the deployment of Citadel on high latency links such as darknets and digital radio modes. Because of this interest, my current whim is to clean up the text client and make it an easier platform to hack. The current commit mostly focuses on making the textclient.h header file more sensible to navigate. It began as a concatenation of multiple header files but makes more sense this way. Those following the commit log will have noticed that there was much duplication of effort in externs and function prototypes appearing redundantly all over the system. This has been cleaned up quite a bit. My coding style in 1987 was quite atrocious and overused the 'goto' statement, which is considered poor form in C language. Although this practice has been corrected throughout most of the system, there are still a few sections remaining in which the use of 'goto' is heavily entrenched. These have either been recently corrected or are in the process of being replaced. Another regrettable anti-pattern in the client is the overuse of temporary files. These seemed to make sense at the time, particularly for anything that held a message being composed or quoted. This may have been excusable on a small system in 1987 but it no longer makes sense in the modern era when there is both ample system memory and a universe of documentation on how to perform these functions using in-memory buffers. In particular, we are refactoring the code in preparation for a complete rewrite of the message composition editor (which, coincidentally, now has the largest remaining density of 'goto' statements). Finally, there is the classic Citadel behavior of formatting all messages to the reader's screen width. This behavior was mostly implemented in the message output routines and in the message editor. Inspired by a recent read through of Jeff Prothero's 1981 Citadel CP/M code, I have extended the scr_printf() and its companion functions written by Michael Hampton in the early 2000's to handle soft word wrapping at that layer. He originally wrote scr_printf() and the rest of screen.c to implement an ncurses-based output mode, which we later abandoned in favor of just-plain-ANSI because there are no longer any non-ANSI terminals in use. Owing to the fact that ALL client output now goes through this layer, we are able to handle soft word wrap in a single location, eliminating the need for other functions to handle it and making all code more simple and understandable. This is all taking place in the 'console_rework' git branch, which will be merged back to git master once it has achieved feature parity. For those of you who want to tinker with it: happy hacking. commit 576644c2e7b98098d8bdb0b9e5af282293790d9e Author: Art Cancro <a...@citadel.org> Date: Tue Dec 10 10:51:45 2024 -0500 Editing system banners now requires an external editor (for now). This was done because I'm going to rewrite the built in message editor and that means citedit() is going away. It will return in some form later. commit af4d80deb41fab1ed79b18c78a42b702f2ff09c2 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 22:50:29 2024 -0500 Minor string formatting changes commit eccb8be585ff8b4943ccb7b01b231d1c62be50c1 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 21:48:22 2024 -0500 suppress the paginator when redirecting output to a memory buffer commit ab967efb000b7c6f3a9c12a98b62718a1f6dc584 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 21:00:36 2024 -0500 footprint-reduced fmout() that is only needed until we rewrite the message editor commit ccc0a990c54508d6e094ec6457b1ccf90ab8fa32 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 20:53:54 2024 -0500 read_one_message() now converts legacy message format to unwrapped lines. Let the screen.c renderer handle soft line wrap. commit 3453113e509db29b5a42fb61a861b68ecba91b29 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 20:30:18 2024 -0500 war on fmout() commit a405fdfc4614dc28ed2d6fe3087eab3f91f5d018 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 19:19:59 2024 -0500 fmout() subst mode is long gone, remove the param commit 5140871a40c75aaa33ed0a3514351abd766b9007 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 19:12:40 2024 -0500 Phasing out fmout() commit 27025f5e6c4e1f7406aa49224b7254ef866aade1 Merge: eb5462577 aede97e50 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 18:46:43 2024 -0500 Merge branch 'master' into console_rework commit eb54625772088f9bfcd836e220de9b8f10f4c914 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 18:40:48 2024 -0500 <Q>uote and <P>rint use the new scr_redir api commit 977bbc133019a1f094fd5a7ebf2f7ac0796f56e9 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 17:59:18 2024 -0500 Added scr_ functions to redirect output to a memory buffer commit c7e36a0155fab4d583371552e2b4e1c297068bf0 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 17:16:27 2024 -0500 Removed unused parameter to scr_getc() commit 567ad9024f479d23f067cf006c8636e2898084ac Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 14:52:10 2024 -0500 scr_printf() dynamic buffer and don't mangle it commit 587b4944a5716d2469d8f6c0dc306255f48364f5 Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 14:05:38 2024 -0500 character loop output instead of printf commit 28c9ce73afacd91fc08081197a44c51d268de9cf Author: Art Cancro <a...@citadel.org> Date: Mon Dec 9 11:27:56 2024 -0500 fmout() use global screenwidth instead of as a parameter commit a99b76253acf923a3575e61eefdc0e2c54e325db Author: Art Cancro <a...@citadel.org> Date: Sun Dec 8 22:18:17 2024 -0500 moved things commit f2de8e1d26a1a79dd9c31a4b9a8d43a992b10797 Author: Art Cancro <a...@citadel.org> Date: Sun Dec 8 22:09:04 2024 -0500 screen.c: moved other screen handling functions into this file commit d3469dc1e69e49e4129b5e0c199b1290ef537e67 Author: Art Cancro <a...@citadel.org> Date: Sun Dec 8 21:13:34 2024 -0500 Initial go at the console rework ----------------------------------------------------------------------- Summary of changes: textclient/Makefile | 4 +- textclient/citadel.c | 54 +-- textclient/citadel.rc | 4 +- textclient/client_chat.c | 4 +- textclient/commands.c | 1130 ++++++++++++++++--------------------------- textclient/file_transfer.c | 18 +- textclient/messages.c | 939 ++++++++++++++--------------------- textclient/rooms.c | 28 +- textclient/screen.c | 564 ++++++++++++++++----- textclient/sysutil.c | 24 +- textclient/tcpclient.c | 2 +- textclient/textclient.h | 129 ++--- textclient/tuiconfig.c | 6 +- textclient/user_functions.c | 11 +- textclient/utilfunc.c | 48 +- textclient/wcwidth.c | 309 ++++++++++++ 16 files changed, 1670 insertions(+), 1604 deletions(-) create mode 100644 textclient/wcwidth.c -- Citadel server, clients, utilities