aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-09-05 18:33:41 -0700
committerJunio C Hamano <gitster@pobox.com>2022-09-05 18:33:41 -0700
commit27fb520ef276bc4fd948810e60846be8e040bb18 (patch)
tree86ae37f46f35838511fd427d0e00043575c41114
parentfcbc8743ef5935858ae6c5bb531f2ee591f4d567 (diff)
parent0682bc43f5a48bbd4152e9954e647351a0fb9fe9 (diff)
downloadgit-27fb520ef276bc4fd948810e60846be8e040bb18.tar.gz
Merge branch 'jk/test-crontab-fixes'
Test helper fix. * jk/test-crontab-fixes: test-crontab: minor memory and error handling fixes
-rw-r--r--t/helper/test-crontab.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/t/helper/test-crontab.c b/t/helper/test-crontab.c
index 2942543046..e6c1b1e22b 100644
--- a/t/helper/test-crontab.c
+++ b/t/helper/test-crontab.c
@@ -2,33 +2,34 @@
#include "cache.h"
/*
- * Usage: test-tool cron <file> [-l]
+ * Usage: test-tool crontab <file> -l|<input>
*
* If -l is specified, then write the contents of <file> to stdout.
- * Otherwise, write from stdin into <file>.
+ * Otherwise, copy the contents of <input> into <file>.
*/
int cmd__crontab(int argc, const char **argv)
{
int a;
FILE *from, *to;
- if (argc == 3 && !strcmp(argv[2], "-l")) {
+ if (argc != 3)
+ usage("test-tool crontab <file> -l|<input>");
+
+ if (!strcmp(argv[2], "-l")) {
from = fopen(argv[1], "r");
if (!from)
return 0;
to = stdout;
- } else if (argc == 3) {
- from = fopen(argv[2], "r");
- to = fopen(argv[1], "w");
- } else
- return error("unknown arguments");
+ } else {
+ from = xfopen(argv[2], "r");
+ to = xfopen(argv[1], "w");
+ }
while ((a = fgetc(from)) != EOF)
fputc(a, to);
- if (argc == 3)
- fclose(from);
- else
+ fclose(from);
+ if (to != stdout)
fclose(to);
return 0;