} conf_t;
void usage() {
- die("usage: tl-append [-i] [--no-fnctl-lock] [--no-flock-lock]");
+ die("usage: tl-append [-i] [-C dir] [--no-fnctl-lock] [--no-flock-lock]");
}
conf_t parse_command_line(int argc, char *argv[]) {
conf.fcntl_lock = 0;
else if (strcmp(argv[i], "--no-flock-lock") == 0)
conf.flock_lock = 0;
- else
+ else if (strcmp(argv[i], "-C") == 0) {
+ if (i + 1 >= argc)
+ die("-C requires a directory");
+ if (chdir(argv[i + 1]) == -1)
+ die_err("Couldn't change directory");
+ i++;
+ } else
usage();
}
}
static void lock_and_write_line(conf_t *conf, const char *line) {
- const char *now = encode_time(time(NULL));
+ char *now = encode_time(time(NULL));
FILE *f = fopen(FILENAME, "a");
take_lock(conf, f);
if (fclose(f) != 0)
die_err("Error closing output file");
+ free(now);
write_acknowledgment(conf);
}