aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Riehs <tristan.riehs@inria.fr>2026-07-05 17:23:32 +0200
committerTristan Riehs <tristan.riehs@inria.fr>2026-07-05 17:23:32 +0200
commitcc96dd40bc1710cd20cc64f2f36622a1f01f174a (patch)
tree2dd6bde7700cc2c95e1059ff0501605e9cff7d77
parent339d330fb1b709c95c1db54f02b2365f4fe03c1f (diff)
Fix handling of argc and argv
The subcommand's name must be kept in argv[0] for getopt to work properly.
-rw-r--r--src/main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 1f33e16..a9ab73b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -689,7 +689,7 @@ static void ftag_file(int argc, char **argv)
/* TODO: add an edit command */
};
const int file_command_count = sizeof(file_commands)/ sizeof(struct ftag_command);
- parse_args(argc, argv, file_commands, file_command_count);
+ parse_args(argc - 1, argv + 1, file_commands, file_command_count);
}
static void ftag_help(int, char **)
@@ -960,7 +960,7 @@ static void ftag_sync(int argc, char **argv)
{ .name = "push", .func = ftag_sync_push }
};
int sync_command_count = sizeof(sync_commands) / sizeof(struct ftag_command);
- parse_args(argc, argv, sync_commands, sync_command_count);
+ parse_args(argc - 1, argv + 1, sync_commands, sync_command_count);
}
/* Check that the tag we are trying to create does not exist yet. If this
@@ -1035,7 +1035,7 @@ static void ftag_tag(int argc, char **argv)
/* TODO: add an edit command */
};
int tag_command_count = sizeof(tag_commands) / sizeof(struct ftag_command);
- parse_args(argc, argv, tag_commands, tag_command_count);
+ parse_args(argc - 1, argv + 1, tag_commands, tag_command_count);
}
static void parse_args(int argc,
@@ -1047,7 +1047,7 @@ static void parse_args(int argc,
assert(command_count > 0);
for (int i = 0; i < command_count; i++) {
if (strcmp(argv[0], commands[i].name) == 0) {
- commands[i].func(argc-1, argv+1);
+ commands[i].func(argc, argv);
return;
}
}