Use const char *argv[] signatures

C is really weird about this stuff, but this makes more sense to me.
master
Curtis McEnroe 2018-10-28 02:14:22 -04:00
parent 9bc200bfe5
commit 36ec6cf258
No known key found for this signature in database
GPG Key ID: CEA2F97ADCFCD77C
4 changed files with 9 additions and 10 deletions

4
chat.h
View File

@ -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 {

View File

@ -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);
}

View File

@ -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 {

4
url.c
View File

@ -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);