mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-10-31 16:31:40 +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);
 | |
|      }
 | |
|  }
 | |
|  
 |