/* ihex Copyright (C) 2025 Thomas Albers Raviola 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 the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #include #include #include void die(const char *current_file, const char *fmt, ...) { va_list ap; int saved_errno = errno; if (current_file) fprintf(stderr, "File %s: ", current_file); va_start(ap, fmt); if (fmt) vfprintf(stderr, fmt, ap); va_end(ap); if (errno) fprintf(stderr, " %s\n", strerror(saved_errno)); exit(EXIT_FAILURE); } void * ecalloc(size_t nmemb, size_t size) { void *p; if (!(p = calloc(nmemb, size))) die(NULL, "Could not allocate memory!\n"); return p; } void * erealloc(void *ptr, size_t size) { if (!(ptr = realloc(ptr, size))) die(NULL, "Could not reallocate memory!\n"); return ptr; }