summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-19 23:23:29 -0500
committerJune McEnroe <june@causal.agency>2021-01-19 23:23:59 -0500
commit3e4cbcf40a45dfe50b6ffc107307ec28ad6eb7e0 (patch)
tree4d9cae30c13edb696b8577ebc1356309277c2b17
parentUse mtags in source-filter (diff)
downloadsrc-3e4cbcf40a45dfe50b6ffc107307ec28ad6eb7e0.tar.gz
src-3e4cbcf40a45dfe50b6ffc107307ec28ad6eb7e0.zip
Escape \ and / in mtags search patterns
Diffstat (limited to '')
-rw-r--r--bin/mtags.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/bin/mtags.c b/bin/mtags.c
index 3ff72c19..db66f1d4 100644
--- a/bin/mtags.c
+++ b/bin/mtags.c
@@ -24,6 +24,15 @@
 #include <sysexits.h>
 #include <unistd.h>
 
+static void escape(FILE *file, const char *str, size_t len) {
+	for (size_t i = 0; i < len; ++i) {
+		if (str[i] == '\\' || str[i] == '/') {
+			putc('\\', file);
+		}
+		putc(str[i], file);
+	}
+}
+
 int main(int argc, char *argv[]) {
 	bool append = false;
 	const char *path = "tags";
@@ -70,17 +79,14 @@ int main(int argc, char *argv[]) {
 		while (0 < getline(&buf, &cap, file)) {
 			regmatch_t match[2];
 			if (regexec(regex, buf, 2, match, 0)) continue;
-			int n = fprintf(
-				tags, "%.*s\t%s\t/^%.*s/\n",
+			fprintf(
+				tags, "%.*s\t%s\t/^",
 				(int)(match[1].rm_eo - match[1].rm_so), &buf[match[1].rm_so],
-				argv[i],
-				(int)(match[0].rm_eo - match[0].rm_so), &buf[match[0].rm_so]
+				argv[i]
 			);
-			if (n < 0) err(EX_IOERR, "%s", path);
+			escape(tags, buf, match[0].rm_eo);
+			fprintf(tags, "/\n");
 		}
 		fclose(file);
 	}
-
-	error = fclose(tags);
-	if (error) err(EX_IOERR, "%s", path);
 }
.causal.agency/trips.html?id=931c560140b15c07946d9061def1c6fb03f00cc3&follow=1'>Update 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