core/file: Rework REPORT_ERROR() function

I want to be able to print any message as an error message without
relying on errno.  Let's handle this by introducing REPORT_ERRNO() to
look up the right error message for a given errno.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2016-03-30 14:17:12 -04:00
parent ee4f0d4c89
commit fe6f31b1e5
1 changed files with 6 additions and 5 deletions

View File

@ -7,8 +7,9 @@
#include <errno.h>
#include <unistd.h>
#define REPORT_ERROR(fname) \
printf("%s (%s:%d): %s: %s\n", __func__, __FILE__, __LINE__, fname, strerror(errno))
#define REPORT_ERROR(fname, error) \
g_printerr("%s (%s:%d): %s: %s\n", __func__, __FILE__, __LINE__, fname, error)
#define REPORT_ERRNO(fname) REPORT_ERROR(fname, strerror(errno))
static gchar *__file_path(const gchar *name)
{
@ -20,7 +21,7 @@ static FILE *__file_open(gchar *path, const gchar *mode)
FILE *ret = g_fopen(path, mode);
if (!ret)
REPORT_ERROR(path);
REPORT_ERRNO(path);
g_free(path);
return ret;
}
@ -31,7 +32,7 @@ static bool __file_mkdir()
int ret = g_mkdir_with_parents(dir, 0755);
if (ret != 0)
REPORT_ERROR(dir);
REPORT_ERRNO(dir);
g_free(dir);
return ret == 0;
}
@ -187,6 +188,6 @@ int file_writef(struct file *file, const char *fmt, ...)
va_end(argp);
if (ret < 0)
REPORT_ERROR(file->f_name);
REPORT_ERRNO(file->f_name);
return ret;
}