From c64f10f0d58c768b7ad8c508037f483693d26e4d Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 31 Oct 2024 14:23:09 +0100 Subject: [PATCH] crc: Tweak generator. * lib/crc-generate-table.c (print_header): Don't emit a blank line at the end. (print_copyright_notice): Prepend a "DO NOT EDIT" line. (main): Fail if disk is full after we wrote part of the file. --- ChangeLog | 10 +++++++++- lib/crc-generate-table.c | 15 +++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0719c23bf..cce8ccf7d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,17 @@ +2024-10-31 Bruno Haible + + crc: Tweak generator. + * lib/crc-generate-table.c (print_header): Don't emit a blank line at + the end. + (print_copyright_notice): Prepend a "DO NOT EDIT" line. + (main): Fail if disk is full after we wrote part of the file. + 2024-10-31 Simon Josefsson crc: make it a maintainer setting rather than a user setting. * m4/crc.m4 (gl_CRC_SLICE_BY_8): Drop AC_ARG_ENABLE. -2024-10-27 Sam Russell +2024-10-31 Sam Russell crc: New optimised slice-by-8 implementation * lib/crc.c: Implementation of slice-by-8 algorithm diff --git a/lib/crc-generate-table.c b/lib/crc-generate-table.c index 01f9ff77ed..314bf000ee 100644 --- a/lib/crc-generate-table.c +++ b/lib/crc-generate-table.c @@ -94,12 +94,13 @@ print_header (FILE * stream) fprintf (stream, ","); fprintf (stream, "\n"); } - fprintf (stream, "};\n\n"); + fprintf (stream, "};\n"); } void print_copyright_notice (FILE * stream) { + fprintf (stream, "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */\n"); fprintf (stream, "/* crc.c -- cyclic redundancy checks\n"); fprintf (stream, "Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc.\n"); @@ -134,17 +135,23 @@ main (int argc, char *argv[]) fprintf (stderr, " Usage: %s crc-sliceby8.h\n", argv[0]); exit (1); } - FILE *stream; - stream = fopen (argv[1], "w"); + const char *filename = argv[1]; + FILE *stream = fopen (filename, "w"); if (stream == NULL) { - fprintf (stderr, "cannot open '%s' for writing\n", argv[1]); + fprintf (stderr, "cannot open '%s' for writing\n", filename); exit (1); } print_copyright_notice (stream); print_header (stream); + if (ferror (stream) || fclose (stream)) + { + fprintf (stderr, "error writing to '%s'\n", filename); + exit (1); + } + return 0; } -- 2.39.5