mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-11-04 10:21:36 +01:00 
			
		
		
		
	Tools to create/check Apple HFS+ filesystems https://src.fedoraproject.org/rpms/hfsplus-tools About the package name: * diskdev_cmds: upstream, Gentoo, OpenSUSE * hfsprogs: Arch Linux, Debian, NixOS, VoidLinux * hfsplus-tools: Fedora diskdev_cmds is really bad name, so I choose more popular and descriptive name: hfsprogs.
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Patch-Source: https://src.fedoraproject.org/rpms/hfsplus-tools/blob/f27/f/hfsplus-tools-learn-to-stdarg.patch
 | 
						|
 | 
						|
diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c
 | 
						|
--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx	2012-02-01 12:17:19.000000000 -0500
 | 
						|
+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c	2014-06-18 13:44:45.125620007 -0400
 | 
						|
@@ -296,11 +296,8 @@ static volatile int    keep_going = 1;
 | 
						|
 #undef printf
 | 
						|
 
 | 
						|
 // prototype
 | 
						|
-void print_to_mem(int type, const char *fmt, const char *str, va_list ap);
 | 
						|
-
 | 
						|
-#define  DO_VPRINT   1    // types for print_to_mem
 | 
						|
-#define  DO_STR      2
 | 
						|
-
 | 
						|
+void vprint_to_mem(const char *fmt, va_list ap);
 | 
						|
+void print_to_mem(const char *fmt, ...);
 | 
						|
 
 | 
						|
 static void *
 | 
						|
 fsck_printing_thread(void *arg)
 | 
						|
@@ -547,8 +544,8 @@ setup_logging(void)
 | 
						|
 		cur_in_mem = in_mem_log;
 | 
						|
 
 | 
						|
 		t = time(NULL);
 | 
						|
-		print_to_mem(DO_STR, "\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV", NULL); 
 | 
						|
-		print_to_mem(DO_STR, "fsck_hfs run at %s", ctime(&t), NULL);
 | 
						|
+		print_to_mem("\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV"); 
 | 
						|
+		print_to_mem("fsck_hfs run at %s", ctime(&t));
 | 
						|
 
 | 
						|
 		if (live_fsck && log_file) {
 | 
						|
 		    pthread_cond_init(&mem_buf_cond, NULL);
 | 
						|
@@ -576,26 +573,20 @@ setup_logging(void)
 | 
						|
 
 | 
						|
 
 | 
						|
 void
 | 
						|
-print_to_mem(int type, const char *fmt, const char *str, va_list ap)
 | 
						|
+vprint_to_mem(const char *fmt, va_list ap)
 | 
						|
 {
 | 
						|
     int ret;
 | 
						|
     size_t size_remaining;
 | 
						|
     va_list ap_copy;
 | 
						|
     
 | 
						|
-    if (type == DO_VPRINT) {
 | 
						|
-	va_copy(ap_copy, ap);
 | 
						|
-    }
 | 
						|
+    va_copy(ap_copy, ap);
 | 
						|
     
 | 
						|
     if (live_fsck) {
 | 
						|
 	pthread_mutex_lock(&mem_buf_lock);
 | 
						|
     }
 | 
						|
 	
 | 
						|
     size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - in_mem_log);
 | 
						|
-    if (type == DO_VPRINT) {
 | 
						|
-	ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
 | 
						|
-    } else {
 | 
						|
-	ret = snprintf(cur_in_mem, size_remaining, fmt, str);
 | 
						|
-    }
 | 
						|
+    ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
 | 
						|
     if (ret > size_remaining) {
 | 
						|
 	char *new_log;
 | 
						|
 	size_t amt;
 | 
						|
@@ -619,11 +610,7 @@ print_to_mem(int type, const char *fmt,
 | 
						|
 	cur_in_mem = new_log + (cur_in_mem - in_mem_log);
 | 
						|
 	in_mem_log = new_log;
 | 
						|
 	size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - new_log);
 | 
						|
-	if (type == DO_VPRINT) {
 | 
						|
-	    ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
 | 
						|
-	} else {
 | 
						|
-	    ret = snprintf(cur_in_mem, size_remaining, fmt, str);
 | 
						|
-	}
 | 
						|
+	ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
 | 
						|
 	if (ret <= size_remaining) {
 | 
						|
 	    cur_in_mem += ret;
 | 
						|
 	}
 | 
						|
@@ -636,11 +623,18 @@ print_to_mem(int type, const char *fmt,
 | 
						|
 	pthread_mutex_unlock(&mem_buf_lock);
 | 
						|
     }
 | 
						|
 done:
 | 
						|
-    if (type == DO_VPRINT) {
 | 
						|
-	va_end(ap_copy);
 | 
						|
-    }
 | 
						|
+    va_end(ap_copy);
 | 
						|
 }
 | 
						|
 
 | 
						|
+void
 | 
						|
+print_to_mem(const char *fmt, ...)
 | 
						|
+{
 | 
						|
+    va_list ap;
 | 
						|
+
 | 
						|
+    va_start(ap, fmt);
 | 
						|
+    vprint_to_mem(fmt, ap);
 | 
						|
+    va_end(ap);
 | 
						|
+}
 | 
						|
 
 | 
						|
 static int need_prefix=1;
 | 
						|
 
 | 
						|
@@ -662,7 +656,7 @@ static int need_prefix=1;
 | 
						|
 	LOG_PREFIX \
 | 
						|
 	vfprintf(log_file, fmt, ap); \
 | 
						|
     } else { \
 | 
						|
-	print_to_mem(DO_VPRINT, fmt, NULL, ap);	\
 | 
						|
+	vprint_to_mem(fmt, ap);	\
 | 
						|
     }
 | 
						|
 
 | 
						|
 #define FLOG(fmt, str) \
 | 
						|
@@ -670,7 +664,7 @@ static int need_prefix=1;
 | 
						|
 	LOG_PREFIX;				\
 | 
						|
 	fprintf(log_file, fmt, str);		\
 | 
						|
     } else { \
 | 
						|
-	print_to_mem(DO_STR, fmt, str, NULL);	\
 | 
						|
+	print_to_mem(fmt, str);	\
 | 
						|
     }
 | 
						|
 
 | 
						|
 
 | 
						|
@@ -800,7 +794,7 @@ vplog(const char *fmt, va_list ap)
 | 
						|
 	LOG_PREFIX;
 | 
						|
 	vfprintf(log_file, fmt, ap);
 | 
						|
     } else {
 | 
						|
-	print_to_mem(DO_VPRINT, fmt, NULL, ap);
 | 
						|
+	vprint_to_mem(fmt, ap);
 | 
						|
     }
 | 
						|
 }
 | 
						|
 
 |