/*
* Helper application to test normalization of declaration specifiers.
- * Copyright © 2021-2023 Nick Bowler
+ * Copyright © 2021-2024 Nick Bowler
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <errno.h>
#include <getopt.h>
#include "cdecl.h"
#include "cdecl-internal.h"
-#include "test.h"
#define PROGNAME "normalize"
-static const char *progname = PROGNAME;
+#include "test.h"
+
static const char sopts[] = "f:VH";
static const struct option lopts[] = {
{ "file", 1, NULL, 'f' },
}
}
- if (filename) {
- infile = fopen(filename, "r");
- if (!infile) {
- perror(filename);
- return EXIT_FAILURE;
- }
+ if (filename && !freopen(filename, "r", stdin)) {
+ print_error("%s: %s", filename, strerror(errno));
+ return EXIT_FAILURE;
}
- while ((rc = getline(&line, &n, infile)) >= 0) {
- if (rc > 0 && line[rc-1] == '\n')
- line[rc-1] = 0;
+ while (test_getline(&line, &n)) {
if (do_normalize(line, n) < 0)
ret = EXIT_FAILURE;
}