Art Cancro [Tue, 4 Jun 2024 23:51:44 +0000 (19:51 -0400)]
Cleaned up ANSI Detect code.
I was actually planning to go in and write this, only to find out
that it was already written exactly as I had planned, a long time
ago, by Michael Hampton (IO ERROR). Rest in peace, buddy.
Art Cancro [Mon, 3 Jun 2024 21:33:25 +0000 (17:33 -0400)]
Temp nav now includes view select.
The temporary navigation buttons can now select a day view,
three day view, five day (work week) view, or seven day (week)
view. Month view is not included because that will be a different
renderer.
Art Cancro [Mon, 3 Jun 2024 21:04:47 +0000 (17:04 -0400)]
Finally got the calendar navigation logic correct.
Something about the javascript date object makes instances of it
persist even when it goes out of scope and is reinitialized in the
next call. I had to try a bunch of different methods before I found
one that went out of scope correctly.
But now it's working properly. All of the temporary nav buttons
←Y | ←M | ←W | ←D | today | D→ | W→ | M→ | Y→
are doing what they are expected to do.
Next steps will be to pretty up the view and then populate it with
calendar data.
Art Cancro [Mon, 3 Jun 2024 03:53:08 +0000 (23:53 -0400)]
Getting navigation in place for week view.
Week View is actually also Day View, because it's using a flexbox and
can display a arbitrary number of day columns. So we will use 1 column
for day view, 5 columns for work week view, and 7 columns for week view.
Art Cancro [Sun, 2 Jun 2024 19:42:33 +0000 (19:42 +0000)]
Really just a commit test.
I'm going to try to put commit messages back into the
Citadel Development room now that the communists at Google
have stopped throwing them into the spam bucket.
But I didn't like the format that the RSS feed was using
so I'm trying out my own commit hook.
Art Cancro [Sun, 2 Jun 2024 19:40:16 +0000 (19:40 +0000)]
Really just a commit test.
I'm going to try to put commit messages back into the
Citadel Development room now that the communists at Google
have stopped throwing them into the spam bucket.
But I didn't like the format that the RSS feed was using
so I'm trying out my own commit hook.
Art Cancro [Sun, 2 Jun 2024 19:37:59 +0000 (19:37 +0000)]
Really just a commit test.
I'm going to try to put commit messages back into the
Citadel Development room now that the communists at Google
have stopped throwing them into the spam bucket.
But I didn't like the format that the RSS feed was using
so I'm trying out my own commit hook.
Art Cancro [Sun, 2 Jun 2024 19:36:52 +0000 (19:36 +0000)]
Really just a commit test.
I'm going to try to put commit messages back into the
Citadel Development room now that the communists at Google
have stopped throwing them into the spam bucket.
But I didn't like the format that the RSS feed was using
so I'm trying out my own commit hook.
Art Cancro [Fri, 31 May 2024 05:27:00 +0000 (05:27 +0000)]
html_to_ascii.c: major overhaul to buffer use.
This commit does away with the smaller buffers for reading and writing
individual lines. A single input buffer is scanned and a single output
buffer is written. The output buffer is a StrBuf during operation but
is converted to a plain C string for final output.
I did this because I want to be able to support inline graphics when
the terminal supports Sixel. That isn't written yet but the overhaul
now allows us to extract arbitrarily long image urls (they could be
huge if they are data urls) and output the sixel data in the correct
place. Theoretically that should write pretty fast.
Art Cancro [Tue, 21 May 2024 15:23:54 +0000 (15:23 +0000)]
dumploadtest.sh now requires YES_DELETE_MY_DATABASE to be set.
Before this commit, it had an exit statement that the operator had to remove
to run the program. Now it just bombs out telling the operator that they have
to set YES_DELETE_MY_DATABASE if they really want to do this.
Art Cancro [Fri, 19 Apr 2024 15:06:05 +0000 (15:06 +0000)]
Mailing list header changes (fuck you Google)
DRY the code to generate listsub/unsub confirmations.
We're going to need this to do One Click Unsubscribe, which we have to add
because the godless commies at Google will use any excuse to put non-Google
senders on their spam list.
Art Cancro [Wed, 27 Mar 2024 15:47:55 +0000 (08:47 -0700)]
validate_recipients() remove extra copy of recipients
We no longer need to copy recipients_in to recipients, because we no longer
destructively tokenize it. Now we non-destructively tokenize it into an array.
Also I discovered that there is an unused parameter in that call. Removed it
and the one place where it was being non-functionally called.
Art Cancro [Thu, 21 Mar 2024 21:49:36 +0000 (14:49 -0700)]
Defined 19010101T010101Z-99991231T235959Z consts.
These are now known as "the_beginning_of_time" and
"the_end_of_time" and closely track the time boundaries within
which libical can safely operate.
Supplied these as default values when filling variables to call the
time range compare function, allowing us to remove the check-for-null
code in that function.
Art Cancro [Thu, 21 Mar 2024 18:30:29 +0000 (11:30 -0700)]
Do not convert compared times to UTC.
ical_ctdl_is_overlap() works because icaltime_compare() is really smart.
It looks at the time zone of the dtstart/dtend and can apparently go back up the icalcomponent
hierarchy to find its time zone data. I tested this by creating an event with a fictional
time zone and it did the right thing. It even showed the fictional name to me. This saves us
from having to convert everything to UTC before comparing. Nice!
Art Cancro [Wed, 20 Mar 2024 19:56:01 +0000 (15:56 -0400)]
ical_ctdl_is_overlap() is now symlinked 3 places.
It's the same function used in Citadel Server, WebCit-Classic, and
WebCit-NG. It isn't really suitable for use in libcitadel so we
made symlinks instead.
Art Cancro [Tue, 27 Feb 2024 16:16:56 +0000 (11:16 -0500)]
Skeleton code for time-range test (section 9.9)
After finally getting to the point where we are recursing up
through both the nested components and the nested queries in a
way that matches them properly, we are now able to start writing
the individual property and parameter queries defined in the RFC.
time-range (section 9.9) is the obvious first choice to implement
because it is the most useful. Wrote and bound the skeleton
function to do this.