summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-08-16 22:19:23 -0400
committerJune McEnroe <june@causal.agency>2018-08-16 22:19:23 -0400
commita38738c93885fc177a42b280a328471424fc030a (patch)
tree3e87460f1ff301c9fa703fcbdb0f9c28731ec447
parentDetect pings in ACTIONs (diff)
downloadcatgirl-a38738c93885fc177a42b280a328471424fc030a.tar.gz
catgirl-a38738c93885fc177a42b280a328471424fc030a.zip
Don't treat input as command if word contains extra slash
-rw-r--r--input.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/input.c b/input.c
index 2d9bc46..997c570 100644
--- a/input.c
+++ b/input.c
@@ -155,7 +155,14 @@ static const struct {
 static const size_t COMMANDS_LEN = sizeof(COMMANDS) / sizeof(COMMANDS[0]);
 
 void input(struct Tag tag, char *input) {
-	if (input[0] != '/') {
+	bool slash = (input[0] == '/');
+	if (slash) {
+		char *space = strchr(&input[1], ' ');
+		char *extra = strchr(&input[1], '/');
+		if (extra && (!space || extra < space)) slash = false;
+	}
+
+	if (!slash) {
 		if (tag.id == TAG_VERBOSE.id) {
 			ircFmt("%s\r\n", input);
 		} else if (tag.id != TAG_STATUS.id) {
@@ -163,6 +170,7 @@ void input(struct Tag tag, char *input) {
 		}
 		return;
 	}
+
 	char *command = strsep(&input, " ");
 	if (input && !input[0]) input = NULL;
 	for (size_t i = 0; i < COMMANDS_LEN; ++i) {
>2021-01-20Generate tags for sh files in mtagsJune McEnroe Only matches functions declared at the beginnings of lines, but I'm fine with that. 2021-01-20Add messy sh lexerJune McEnroe Surprisingly seems to work for everything I looked at in my repos. 2021-01-20Add all target to git.causal.agency MakefileJune McEnroe 2021-01-20Remove Lua supportJune McEnroe Lua support is unused and the dlsym fwrite/write hacks horrify me. Clean it up. 2021-01-20Fix tests for diff spansJune McEnroe 2021-01-20Avoid matching ':' in make tagsJune McEnroe Otherwise a :: rule includes one of the ':'s in the tag name. 2021-01-19Prefer tag matches not preceded by [[:alnum:]]June McEnroe Otherwise the "id" in "void" matches for "void id". 2021-01-19Escape \ and / in mtags search patternsJune McEnroe 2021-01-20Use mtags in source-filterJune McEnroe 2021-01-19Add mtags to generate tags for make and mdocJune McEnroe 2021-01-19Map tags to IDs using only [[:alnum:]-._]June McEnroe 2021-01-19Don't use a pager if reading standard inputJune McEnroe 2021-01-19Support BSD make syntax and match *.amJune McEnroe These don't really go together, but... 2021-01-19Match tab following escaped newline in make assignmentsJune McEnroe Otherwise it ends up going into Shell state. 2021-01-18Allow matching lexers using first input lineJune McEnroe