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

Reply via email to