From 1598a68d67d94039a1944a3da773777546e72019 Mon Sep 17 00:00:00 2001 From: uvman Date: Wed, 1 Nov 2006 14:05:09 +0000 Subject: [PATCH] Fix compilation on environments that one can not assign to "va_list args" (e.g. Debian Alpha). Do so by removing the unused log_reason code. Originally, Szaka asked FlatCap for it but never used it. I've asked Szaka if he is going to use it but he did not reply. I got an implicit answer in the form of ntfs-3g commit. Therefore, commit an updated version of the patch I've sent the Debian package maintainer. --- include/ntfs/logging.h | 2 -- libntfs/logging.c | 52 ++++-------------------------------------- 2 files changed, 5 insertions(+), 49 deletions(-) diff --git a/include/ntfs/logging.h b/include/ntfs/logging.h index 982f90f2..d30d545c 100644 --- a/include/ntfs/logging.h +++ b/include/ntfs/logging.h @@ -75,7 +75,6 @@ int ntfs_log_redirect(const char *function, const char *file, int line, #define NTFS_LOG_LEVEL_ERROR ((u32)1 << 7) /* Operation failed, no damage done */ #define NTFS_LOG_LEVEL_PERROR ((u32)1 << 8) /* Message : standard error description */ #define NTFS_LOG_LEVEL_CRITICAL ((u32)1 << 9) /* Operation failed,damage may have occurred */ -#define NTFS_LOG_LEVEL_REASON ((u32)1 << 10) /* Human readable reason for failure */ /* Logging style flags - Manage the style of the output */ #define NTFS_LOG_FLAG_PREFIX ((u32)1 << 0) /* Prefix messages with "ERROR: ", etc */ @@ -96,7 +95,6 @@ int ntfs_log_redirect(const char *function, const char *file, int line, #define ntfs_log_quiet(FORMAT, ARGS...) ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_QUIET,NULL,FORMAT,##ARGS) #define ntfs_log_verbose(FORMAT, ARGS...) ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_VERBOSE,NULL,FORMAT,##ARGS) #define ntfs_log_warning(FORMAT, ARGS...) ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_WARNING,NULL,FORMAT,##ARGS) -#define ntfs_log_reason(FORMAT, ARGS...) ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_REASON,NULL,FORMAT,##ARGS) /* By default debug and trace messages are compiled into the program, * but not displayed. diff --git a/libntfs/logging.c b/libntfs/logging.c index 137aac9d..6e9a6f43 100644 --- a/libntfs/logging.c +++ b/libntfs/logging.c @@ -77,7 +77,7 @@ static struct ntfs_logging ntfs_log = { #endif NTFS_LOG_LEVEL_INFO | NTFS_LOG_LEVEL_QUIET | NTFS_LOG_LEVEL_WARNING | NTFS_LOG_LEVEL_ERROR | NTFS_LOG_LEVEL_PERROR | NTFS_LOG_LEVEL_CRITICAL | - NTFS_LOG_LEVEL_REASON | NTFS_LOG_LEVEL_PROGRESS, + NTFS_LOG_LEVEL_PROGRESS, NTFS_LOG_FLAG_ONLYNAME, #ifdef DEBUG ntfs_log_handler_outerr @@ -346,26 +346,9 @@ int ntfs_log_handler_syslog(const char *function __attribute__((unused)), const char *file, __attribute__((unused)) int line, u32 level, void *data __attribute__((unused)), const char *format, va_list args) { - const int reason_size = 128; - static char *reason = NULL; int ret = 0; int olderr = errno; - if (level == NTFS_LOG_LEVEL_REASON) { - if (!reason) - reason = malloc(reason_size); - if (reason) { - memset(reason, 0, reason_size); - return vsnprintf(reason, reason_size, format, args); - } else { - /* Rather than call ourselves, just drop through */ - level = NTFS_LOG_LEVEL_PERROR; - format = "Couldn't create reason"; - args = NULL; - olderr = errno; - } - } - if ((ntfs_log.flags & NTFS_LOG_FLAG_ONLYNAME) && (strchr(file, PATH_SEP))) /* Abbreviate the filename */ file = strrchr(file, PATH_SEP) + 1; @@ -385,12 +368,8 @@ int ntfs_log_handler_syslog(const char *function __attribute__((unused)), ret += vfprintf(stream, format, args); - if (level & NTFS_LOG_LEVEL_PERROR) { - if (reason) - ret += fprintf(stream, " : %s\n", reason); - else - ret += fprintf(stream, " : %s\n", strerror(olderr)); - } + if (level & NTFS_LOG_LEVEL_PERROR) + ret += fprintf(stream, ": %s\n", strerror(olderr)); #endif vsyslog(LOG_NOTICE, format, args); ret = 1; /* FIXME: caclulate how many bytes had been written. */ @@ -424,8 +403,6 @@ int ntfs_log_handler_syslog(const char *function __attribute__((unused)), int ntfs_log_handler_fprintf(const char *function, const char *file, int line, u32 level, void *data, const char *format, va_list args) { - const int reason_size = 128; - static char *reason = NULL; int ret = 0; int olderr = errno; FILE *stream; @@ -436,21 +413,6 @@ int ntfs_log_handler_fprintf(const char *function, const char *file, return 0; /* If it's NULL, we can't do anything. */ stream = (FILE*)data; - if (level == NTFS_LOG_LEVEL_REASON) { - if (!reason) - reason = malloc(reason_size); - if (reason) { - memset(reason, 0, reason_size); - return vsnprintf(reason, reason_size, format, args); - } else { - /* Rather than call ourselves, just drop through */ - level = NTFS_LOG_LEVEL_PERROR; - format = "Couldn't create reason"; - args = NULL; - olderr = errno; - } - } - if (ntfs_log.flags & NTFS_LOG_FLAG_COLOUR) { /* Pick a colour determined by the log level */ switch (level) { @@ -500,12 +462,8 @@ int ntfs_log_handler_fprintf(const char *function, const char *file, ret += vfprintf(stream, format, args); - if (level & NTFS_LOG_LEVEL_PERROR) { - if (reason) - ret += fprintf(stream, " : %s\n", reason); - else - ret += fprintf(stream, " : %s\n", strerror(olderr)); - } + if (level & NTFS_LOG_LEVEL_PERROR) + ret += fprintf(stream, ": %s\n", strerror(olderr)); if (col_suffix) ret += fprintf(stream, col_suffix);