From 351fc50f385f6b6cac0571355b910377bd077781 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Thu, 06 Jul 2023 12:29:35 -0400 Subject: mknod: Factor out error functions into common code --- (limited to 'common/error.c') diff --git a/common/error.c b/common/error.c new file mode 100644 index 0000000..7b46826 --- /dev/null +++ b/common/error.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2023 Patrick McDermott + * + * This file is part of opkg-opk. + * + * opkg-opk 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. + * + * opkg-opk 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 opkg-opk. If not, see . + */ + +#include +#include +#include +#include + +#include "error.h" + +static const char *_opkg_opk_program_name; + +void +opkg_opk_set_program_name(const char *program_name) +{ + _opkg_opk_program_name = program_name; +} + +void __attribute__((format(__printf__, 1, 2))) +opkg_opk_error(const char *fmt, ...) +{ + va_list ap; + + fprintf(stderr, "%s: ", _opkg_opk_program_name); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fputc('\n', stderr); +} + +void __attribute__((format(__printf__, 1, 2))) +opkg_opk_errno(const char *fmt, ...) +{ + va_list ap; + + fprintf(stderr, "%s: ", _opkg_opk_program_name); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, ": %s\n", strerror(errno)); +} -- cgit v0.9.1