summary refs log tree commit diff
diff options
context:
space:
mode:
authorCurtis McEnroe2018-10-28 02:14:22 -0400
committerCurtis McEnroe2018-10-28 02:14:22 -0400
commit36ec6cf258e9b5c3aa49cbfd3179a8714b52fee5 (patch)
tree5fe128d5375d5ea18a14ef1641da49e94d0f6f60
parent9bc200bfe506ef7ffa1f8c6c3573f50fdc9776d9 (diff)
Use const char *argv[] signatures
C is really weird about this stuff, but this makes more sense to me.
-rw-r--r--chat.h4
-rw-r--r--event.c8
-rw-r--r--input.c3
-rw-r--r--url.c4
4 files changed, 9 insertions, 10 deletions
diff --git a/chat.h b/chat.h
index a4d1366..5502665 100644
--- a/chat.h
+++ b/chat.h
@@ -40,8 +40,8 @@ void selfNick(const char *nick);
 void selfUser(const char *user);
 void selfJoin(const char *join);
 
-void eventWait(char *const argv[]);
-void eventPipe(char *const argv[]);
+void eventWait(const char *argv[static 2]);
+void eventPipe(const char *argv[static 2]);
 void eventLoop(int ui, int irc);
 
 struct Tag {
diff --git a/event.c b/event.c
index cad170f..e9864ff 100644
--- a/event.c
+++ b/event.c
@@ -33,18 +33,18 @@ static struct {
 	int fd;
 } spawn;
 
-void eventWait(char *const argv[]) {
+void eventWait(const char *argv[static 2]) {
 	uiHide();
 	pid_t pid = fork();
 	if (pid < 0) err(EX_OSERR, "fork");
 	if (!pid) {
-		execvp(argv[0], argv);
+		execvp(argv[0], (char *const *)argv);
 		err(EX_CONFIG, "%s", argv[0]);
 	}
 	spawn.wait = true;
 }
 
-void eventPipe(char *const argv[]) {
+void eventPipe(const char *argv[static 2]) {
 	if (spawn.pipe) {
 		uiLog(TagStatus, UIHot, L"event: existing pipe");
 		return;
@@ -62,7 +62,7 @@ void eventPipe(char *const argv[]) {
 		dup2(rw[1], STDOUT_FILENO);
 		dup2(rw[1], STDERR_FILENO);
 		close(rw[1]);
-		execvp(argv[0], argv);
+		execvp(argv[0], (char *const *)argv);
 		perror(argv[0]);
 		exit(EX_CONFIG);
 	}
diff --git a/input.c b/input.c
index 7866c5a..84ca71c 100644
--- a/input.c
+++ b/input.c
@@ -144,8 +144,7 @@ static void inputClose(struct Tag tag, char *params) {
 static void inputMan(struct Tag tag, char *params) {
 	(void)tag;
 	(void)params;
-	char *argv[] = { "man", "1", "chatte", NULL };
-	eventWait(argv);
+	eventWait((const char *[]) { "man", "1", "chatte", NULL });
 }
 
 static const struct {
diff --git a/url.c b/url.c
index b62baba..de2ebd9 100644
--- a/url.c
+++ b/url.c
@@ -91,14 +91,14 @@ void urlOpenMatch(struct Tag tag, const char *substr) {
 		struct Entry entry = ringEntry(i);
 		if (!entry.url || entry.tag != tag.id) continue;
 		if (!strstr(entry.url, substr)) continue;
-		eventPipe((char *[]) { "open", entry.url, NULL });
+		eventPipe((const char *[]) { "open", entry.url, NULL });
 		break;
 	}
 }
 
 void urlOpenRange(struct Tag tag, size_t at, size_t to) {
 	size_t argc = 1;
-	char *argv[2 + RingLen] = { "open" };
+	const char *argv[2 + RingLen] = { "open" };
 	size_t tagIndex = 0;
 	for (size_t i = RingLen - 1; i < RingLen; --i) {
 		struct Entry entry = ringEntry(i);