From a60b3c7daf7fcd4a6a88f57e8dc6cceff6d55faf Mon Sep 17 00:00:00 2001 From: DTB Date: Mon, 30 Sep 2024 15:00:38 -0600 Subject: [PATCH] 2024-09-14 --- homepage.content | 53 ++++++++++++++++++++++++++++++++++++++++++ lib3/include/lstring.h | 16 +++++++++++++ lib3/src/lstring.c | 17 ++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 lib3/include/lstring.h create mode 100644 lib3/src/lstring.c diff --git a/homepage.content b/homepage.content index 95efe3f..dc45785 100755 --- a/homepage.content +++ b/homepage.content @@ -1050,6 +1050,57 @@ pre { /* DRY who? */ } +/blah/2024-09-29.html + +I'm 21 years old. The first time I purchased alcohol, legally, I.D. and +everything, I bought a bottle of Smirnoff 90-proof. The second time, I bought a +bottle of something else 100-proof, then some 190-proof Everclear and got a +nip of the same 100-proof for free because it was so close to my birthday. That +was cool. I got blackout drunk for the first time while playing Super Monkey +Ball 2 with some friends on a borrowed Wii and broke a martini glass and +sprained my thumb - 14 shots or so. We had 2/3s of a bottle of vodka. Swell. + +I have to do some work for a gig - accepted only in LaTeX. I don't know LaTeX. +I only have time to do this by tomorrow. Fortunately a friend does know LaTeX. +Its resources and I are giving myself a crash course tonight. + +So I have my trusty OpenBSD KVM booted up as Raspbian is a piss-poor working +environment (mysterious libc issues). + +# pkg_add texlive_base + +I don't know what I'm doing. I hope this gives me enough to get started. It's +2326 local time. I popped a caf pill. I'm sitting on the floor, on my sleeping +bag, using a cheap keyboard in front of a bright monitor otherwise in the dark. +This feels like the old days - though I can't call them good. Perhaps soothing. +Listening to In Rainbows. How many times have I listened to this album in the +last 16 years? + +I can't paste with this keyboard as its shitty little trackpad doesn't have a +third button. There are errors and I'm sysupgrade(8)ing to see if that'll fix +them. + + +/blah/2024-09-14.html + +If you write like you're writing poetry, you're doing it wrong. +If you write like you're writing prose, you're doing it wrong. +If you write, with your opinions, you're doing it wrong. +If you write with your opinions you're doing it wrong. +If you write in your opinions you're doing it wrong. +If you don't know what to write you're doing it wrong. +If you do know what to write you're doing it wrong. +If you write like someone you've read you're doing it wrong. +If you write like nobody you've read you're doing it wrong. +Blah blah blah. Do it wrong. + +I'm stuck in a state of permanent pleasant melancholy. Autumn is my favorite +season. I've been away from Maine damn near a year and I told everyone there +I'd visit inside of six months. I think my old roommate Scott is dead. I've +been waiting for the bus here for half of forever. The wind rocks me every time +a car goes by. + + /blah/2024-08-20.html : story p1 @@ -1106,6 +1157,8 @@ chair outside our intact, red door. I could feel the blood leave my face. Behind me, Tracy gasped as she found us. The man stood and looked me in the eyes. His irises were gray. +- +"Hello Jo." /blah/2024-08-14.html diff --git a/lib3/include/lstring.h b/lib3/include/lstring.h new file mode 100644 index 0000000..4235671 --- /dev/null +++ b/lib3/include/lstring.h @@ -0,0 +1,16 @@ +/* #include /* uint8_t, uint16_t, uint32_t, uint64_t */ + +/* This interface was conceived by an anonymous contributor. Library functions + * were needed for their undisclosed uses. This could be copyrighted. */ +typedef struct lstr8 { uint8_t len; char *str; } __packed lstr8; +typedef struct lstr16 { uint16_t len; char *str; } __packed lstr16; +typedef struct lstr32 { uint32_t len; char *str; } __packed lstr32; +typedef struct lstr64 { uint64_t len; char *str; } __packed lstr64; + +/* Okay, the rest of this is */ +/* public domain. dtb. 2024. */// :3 <3 -3 + + lstr8 *lstr8_next( lstr8 *current); +lstr16 *lstr16_next(lstr16 *current); +lstr32 *lstr32_next(lstr32 *current); +lstr64 *lstr64_next(lstr64 *current); diff --git a/lib3/src/lstring.c b/lib3/src/lstring.c new file mode 100644 index 0000000..3468ef8 --- /dev/null +++ b/lib3/src/lstring.c @@ -0,0 +1,17 @@ +/* public domain. dtb. 2024. */// :3 <3 -3 + +#include +#include "lstring.h" + +/* Returns the address immediately following the current lstr. */ +#define RETEXP(type) \ + &((uint8_t *)(current))[sizeof type + sizeof char * current->len - 1] +/* |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * | This is the size (in bytes) of the lstr8, + * | ASSUMING the string contents are stored as part + * | of the struct (i.e. str == &len[1]). */ + lstr8 *lstr8_next( lstr8 *current){ return RETEXP( lstr8); } +lstr16 *lstr16_next(lstr16 *current){ return RETEXP(lstr16); } +lstr32 *lstr32_next(lstr32 *current){ return RETEXP(lstr32); } +lstr64 *lstr64_next(lstr64 *current){ return RETEXP(lstr64); } +#undef RETEXP