meson/test cases/common/105 generatorcustom/gen.c

44 lines
1011 B
C
Raw Normal View History

/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright © 2023 Intel Corporation */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char ** argv) {
if (argc != 3) {
fprintf(stderr, "%s %i %s\n", "Got incorrect number of arguments, got ", argc - 1, ", but expected 2");
exit(1);
}
FILE * input, * output;
if ((input = fopen(argv[1], "rb")) == NULL) {
exit(1);
}
if ((output = fopen(argv[2], "wb")) == NULL) {
exit(1);
}
fprintf(output, "#pragma once\n");
fprintf(output, "#define ");
2023-03-09 19:37:26 +08:00
int bytes_copied = 0;
int c;
while((c = fgetc(input)) != EOF) {
2023-03-09 19:37:26 +08:00
if(fputc(c, output) == EOF) {
fprintf(stderr, "Writing to output file failed.\n");
return 1;
}
if(++bytes_copied > 10000) {
fprintf(stderr, "File copy stuck in an eternal loop!\n");
return 1;
}
}
fputc('\n', output);
fclose(input);
fclose(output);
return 0;
}