From 9c1b241c17ac867a49b4bf48ae6537ebe37d6a11 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 19 Nov 2021 14:44:16 -0500 Subject: Cycle between adding colon suffix and not in tab complete Allows completing a nick at the beginning of a message without a colon by continuing to press tab, as well as after another nick already followed by a colon without turning it into a comma-separated list of nicks all followed by a colon. For example, tab can be used to cycle between the following pairs: nick1: | nick1 | nick1, nick2: | nick1: nick2 | --- edit.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/edit.c b/edit.c index 7dc0d34..71c5cca 100644 --- a/edit.c +++ b/edit.c @@ -130,6 +130,7 @@ static struct { size_t pos; size_t pre; size_t len; + bool suffix; } tab; static void tabComplete(uint id) { @@ -139,6 +140,7 @@ static void tabComplete(uint id) { if (tab.pos == pos) return; tab.pre = pos - tab.pos; tab.len = tab.pre; + tab.suffix = true; } char mbs[MB_LEN_MAX * Cap]; @@ -148,7 +150,10 @@ static void tabComplete(uint id) { mbs[n] = '\0'; const char *comp = complete(id, mbs); - if (!comp) comp = complete(id, mbs); + if (!comp) { + comp = complete(id, mbs); + tab.suffix ^= true; + } if (!comp) { tab.len = 0; return; @@ -169,12 +174,12 @@ static void tabComplete(uint id) { tab.len = n; if (wcs[0] == L'\\' || wcschr(wcs, L' ')) { reserve(tab.pos, tab.len); - } else if (wcs[0] != L'/' && (!tab.pos || colon)) { + } else if (wcs[0] != L'/' && tab.suffix && (!tab.pos || colon)) { tab.len += 2; reserve(tab.pos, tab.len); buf[tab.pos + n + 0] = L':'; buf[tab.pos + n + 1] = L' '; - } else if (tab.pos >= 2 && buf[tab.pos - 2] == L':') { + } else if (tab.suffix && tab.pos >= 2 && buf[tab.pos - 2] == L':') { tab.len += 2; reserve(tab.pos, tab.len); buf[tab.pos - 2] = L','; @@ -183,6 +188,9 @@ static void tabComplete(uint id) { } else { tab.len++; reserve(tab.pos, tab.len); + if (!tab.suffix && tab.pos >= 2 && buf[tab.pos - 2] == L',') { + buf[tab.pos - 2] = L':'; + } buf[tab.pos + n] = L' '; } wmemcpy(&buf[tab.pos], wcs, n); -- cgit 1.4.1 d>
path: root/www/text.causal.agency/022-swans-are-dead.7 (unfollow)
Commit message (Collapse)Author
2025-04-13Add A Half-Built GardenJune McEnroe
Good one.
2025-04-13Also hide lens for trips if it hasn't changedJune McEnroe
2025-04-12Don't list lens in trips if fixedJune McEnroe
2025-04-12Allow setting exposures when loading filmJune McEnroe
2025-04-08Those were supposed to be en-dashes...June McEnroe
2025-04-08Generate pages per rollJune McEnroe
2025-04-08Add metadata from many rolls of filmJune McEnroe
2025-03-25Add emoji for lens, replace all f/'sJune McEnroe
2024-12-29Add photos from December 28June McEnroe
2024-12-29Fancify the manual lens textJune McEnroe
2024-12-28Update film preset list with what I expect to keep shootingJune McEnroe
2024-12-28Add the past few months of rolls of filmJune McEnroe
2024-11-13Add Tea with the Black DragonJune McEnroe
I found this in a box on the side of the road being thrown own. It's decent pulp but nothing special. Not even as racist as I expected it to be. Also as one might guess, the author using their initials is a woman, so I only broke one of my rules when it comes to book selection.
2024-11-05Add a bunch of photosJune McEnroe
2024-10-12Publish "film review"June McEnroe
2024-10-12Add photos from October 6June McEnroe
2024-10-12Add photos from October 5June McEnroe
2024-10-09Add photos from October 1June McEnroe
Ok the first 3 are from September 29 but I didn't want to spoil the black and white roll.
2024-10-07Add photos from September 29June McEnroe
2024-10-07Add photos from September 28June McEnroe
2024-10-07Add photos from September 22June McEnroe
2024-09-25Add photos from September 15June McEnroe
2024-09-24Add photos from September 14June McEnroe
2024-09-24Add photos from September 12June McEnroe
2024-09-24Add photos from September 7June McEnroe
2024-09-24Allow not having descriptionsJune McEnroe
I'm sorry, I can't keep writing descriptions. It makes posting photos take too long, I often don't know the words for what I'm looking at, and a good description is an entirely different work of art than the photo I took, and I'm just a photographer. It's visual art.
2024-09-23Automatically select the last used lens for a bodyJune McEnroe
2024-09-19Add photos from September 5June McEnroe
Had to prefix the folder number onto these file names manually because they must have come out of a different scanner or something.
2024-09-15Add some more film stocks to the listJune McEnroe
2024-09-13Add photos from September 2June McEnroe
2024-09-13Add Fomapan 200 to films listJune McEnroe
2024-09-10Add August 29 picnic photosJune McEnroe
2024-09-08Apply some bold to trips renderingJune McEnroe
This seems easier to visually scan. The only other thing I'd like is a nicer date rendering but JavaScript is useless for that.
2024-09-08Render trips hopefully more efficientlyJune McEnroe
2024-09-08Allow removing bodies and lensesJune McEnroe
2024-09-08Limit body width so it looks less silly on desktopJune McEnroe
2024-09-07Handle no film being loadedJune McEnroe
2024-09-07Fancy up the text a littleJune McEnroe