|
|
fbe451a |
diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c
|
|
|
fbe451a |
--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx 2012-02-01 12:17:19.000000000 -0500
|
|
|
fbe451a |
+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c 2014-06-18 13:44:45.125620007 -0400
|
|
|
fbe451a |
@@ -296,11 +296,8 @@ static volatile int keep_going = 1;
|
|
|
fbe451a |
#undef printf
|
|
|
fbe451a |
|
|
|
fbe451a |
// prototype
|
|
|
fbe451a |
-void print_to_mem(int type, const char *fmt, const char *str, va_list ap);
|
|
|
fbe451a |
-
|
|
|
fbe451a |
-#define DO_VPRINT 1 // types for print_to_mem
|
|
|
fbe451a |
-#define DO_STR 2
|
|
|
fbe451a |
-
|
|
|
fbe451a |
+void vprint_to_mem(const char *fmt, va_list ap);
|
|
|
fbe451a |
+void print_to_mem(const char *fmt, ...);
|
|
|
fbe451a |
|
|
|
fbe451a |
static void *
|
|
|
fbe451a |
fsck_printing_thread(void *arg)
|
|
|
fbe451a |
@@ -547,8 +544,8 @@ setup_logging(void)
|
|
|
fbe451a |
cur_in_mem = in_mem_log;
|
|
|
fbe451a |
|
|
|
fbe451a |
t = time(NULL);
|
|
|
fbe451a |
- print_to_mem(DO_STR, "\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV", NULL);
|
|
|
fbe451a |
- print_to_mem(DO_STR, "fsck_hfs run at %s", ctime(&t), NULL);
|
|
|
fbe451a |
+ print_to_mem("\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV");
|
|
|
fbe451a |
+ print_to_mem("fsck_hfs run at %s", ctime(&t);;
|
|
|
fbe451a |
|
|
|
fbe451a |
if (live_fsck && log_file) {
|
|
|
fbe451a |
pthread_cond_init(&mem_buf_cond, NULL);
|
|
|
fbe451a |
@@ -576,26 +573,20 @@ setup_logging(void)
|
|
|
fbe451a |
|
|
|
fbe451a |
|
|
|
fbe451a |
void
|
|
|
fbe451a |
-print_to_mem(int type, const char *fmt, const char *str, va_list ap)
|
|
|
fbe451a |
+vprint_to_mem(const char *fmt, va_list ap)
|
|
|
fbe451a |
{
|
|
|
fbe451a |
int ret;
|
|
|
fbe451a |
size_t size_remaining;
|
|
|
fbe451a |
va_list ap_copy;
|
|
|
fbe451a |
|
|
|
fbe451a |
- if (type == DO_VPRINT) {
|
|
|
fbe451a |
- va_copy(ap_copy, ap);
|
|
|
fbe451a |
- }
|
|
|
fbe451a |
+ va_copy(ap_copy, ap);
|
|
|
fbe451a |
|
|
|
fbe451a |
if (live_fsck) {
|
|
|
fbe451a |
pthread_mutex_lock(&mem_buf_lock);
|
|
|
fbe451a |
}
|
|
|
fbe451a |
|
|
|
fbe451a |
size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - in_mem_log);
|
|
|
fbe451a |
- if (type == DO_VPRINT) {
|
|
|
fbe451a |
- ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
|
|
|
fbe451a |
- } else {
|
|
|
fbe451a |
- ret = snprintf(cur_in_mem, size_remaining, fmt, str);
|
|
|
fbe451a |
- }
|
|
|
fbe451a |
+ ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
|
|
|
fbe451a |
if (ret > size_remaining) {
|
|
|
fbe451a |
char *new_log;
|
|
|
fbe451a |
size_t amt;
|
|
|
fbe451a |
@@ -619,11 +610,7 @@ print_to_mem(int type, const char *fmt,
|
|
|
fbe451a |
cur_in_mem = new_log + (cur_in_mem - in_mem_log);
|
|
|
fbe451a |
in_mem_log = new_log;
|
|
|
fbe451a |
size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - new_log);
|
|
|
fbe451a |
- if (type == DO_VPRINT) {
|
|
|
fbe451a |
- ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
|
|
|
fbe451a |
- } else {
|
|
|
fbe451a |
- ret = snprintf(cur_in_mem, size_remaining, fmt, str);
|
|
|
fbe451a |
- }
|
|
|
fbe451a |
+ ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
|
|
|
fbe451a |
if (ret <= size_remaining) {
|
|
|
fbe451a |
cur_in_mem += ret;
|
|
|
fbe451a |
}
|
|
|
fbe451a |
@@ -636,11 +623,18 @@ print_to_mem(int type, const char *fmt,
|
|
|
fbe451a |
pthread_mutex_unlock(&mem_buf_lock);
|
|
|
fbe451a |
}
|
|
|
fbe451a |
done:
|
|
|
fbe451a |
- if (type == DO_VPRINT) {
|
|
|
fbe451a |
- va_end(ap_copy);
|
|
|
fbe451a |
- }
|
|
|
fbe451a |
+ va_end(ap_copy);
|
|
|
fbe451a |
}
|
|
|
fbe451a |
|
|
|
fbe451a |
+void
|
|
|
fbe451a |
+print_to_mem(const char *fmt, ...)
|
|
|
fbe451a |
+{
|
|
|
fbe451a |
+ va_list ap;
|
|
|
fbe451a |
+
|
|
|
fbe451a |
+ va_start(ap, fmt);
|
|
|
fbe451a |
+ vprint_to_mem(fmt, ap);
|
|
|
fbe451a |
+ va_end(ap);
|
|
|
fbe451a |
+}
|
|
|
fbe451a |
|
|
|
fbe451a |
static int need_prefix=1;
|
|
|
fbe451a |
|
|
|
fbe451a |
@@ -662,7 +656,7 @@ static int need_prefix=1;
|
|
|
fbe451a |
LOG_PREFIX \
|
|
|
fbe451a |
vfprintf(log_file, fmt, ap); \
|
|
|
fbe451a |
} else { \
|
|
|
fbe451a |
- print_to_mem(DO_VPRINT, fmt, NULL, ap); \
|
|
|
fbe451a |
+ vprint_to_mem(fmt, ap); \
|
|
|
fbe451a |
}
|
|
|
fbe451a |
|
|
|
fbe451a |
#define FLOG(fmt, str) \
|
|
|
fbe451a |
@@ -670,7 +664,7 @@ static int need_prefix=1;
|
|
|
fbe451a |
LOG_PREFIX; \
|
|
|
fbe451a |
fprintf(log_file, fmt, str); \
|
|
|
fbe451a |
} else { \
|
|
|
fbe451a |
- print_to_mem(DO_STR, fmt, str, NULL); \
|
|
|
fbe451a |
+ print_to_mem(fmt, str); \
|
|
|
fbe451a |
}
|
|
|
fbe451a |
|
|
|
fbe451a |
|
|
|
fbe451a |
@@ -800,7 +794,7 @@ vplog(const char *fmt, va_list ap)
|
|
|
fbe451a |
LOG_PREFIX;
|
|
|
fbe451a |
vfprintf(log_file, fmt, ap);
|
|
|
fbe451a |
} else {
|
|
|
fbe451a |
- print_to_mem(DO_VPRINT, fmt, NULL, ap);
|
|
|
fbe451a |
+ vprint_to_mem(fmt, ap);
|
|
|
fbe451a |
}
|
|
|
fbe451a |
}
|
|
|
fbe451a |
|