diff options
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | man/feh.pre | 7 | ||||
| -rw-r--r-- | src/feh.h | 1 | ||||
| -rw-r--r-- | src/list.c | 10 | ||||
| -rw-r--r-- | src/slideshow.c | 25 | 
5 files changed, 38 insertions, 13 deletions
| @@ -1,3 +1,11 @@ +git HEAD + +    * exif-support fixes by Dennis Real +    * format specifier %S now uses the appropriate suffix (B/kB/MB) +    * format specifier %P now prints the number of pixels with k/M suffix, +      like %S. Printing the program name ("feh") is no longer supported +    * feh --list now uses %S/%P to print image size and amount of pixels +  Thu, 02 Feb 2012 21:04:06 +0100  Daniel Friesel <derf@finalrewind.org>  * Release v2.3 diff --git a/man/feh.pre b/man/feh.pre index e460fad..acb4948 100644 --- a/man/feh.pre +++ b/man/feh.pre @@ -791,7 +791,8 @@ Number of image pixels  .  .It \&%P  . -.Nm +Numbor of image pixels +.Pq kilopixels / megapixels  .  .It %s  . @@ -799,8 +800,8 @@ Image size in bytes  .  .It %S  . -Image size in kilobytes -.Pq with kB postfix +Human-readable image size +.Pq kB / MB  .  .It %t  . @@ -137,6 +137,7 @@ void init_keyevents(void);  void init_buttonbindings(void);  void feh_event_handle_keypress(XEvent * ev);  void feh_action_run(feh_file * file, char *action); +char *format_size(int size);  char *feh_printf(char *str, feh_file * file);  void im_weprintf(winwidget w, char *fmt, ...);  void feh_draw_zoom(winwidget w); @@ -37,7 +37,7 @@ void init_list_mode(void)  	mode = "list";  	if (!opt.customlist) -		fputs("NUM\tFORMAT\tWIDTH\tHEIGHT\tPIXELS\tSIZE(bytes)\tALPHA\tFILENAME\n", +		fputs("NUM\tFORMAT\tWIDTH\tHEIGHT\tPIXELS\tSIZE\tALPHA\tFILENAME\n",  				stdout);  	for (l = filelist; l; l = l->next) { @@ -45,10 +45,12 @@ void init_list_mode(void)  		if (opt.customlist)  			printf("%s\n", feh_printf(opt.customlist, file));  		else -			printf("%d\t%s\t%d\t%d\t%d\t%d\t\t%c\t%s\n", ++j, +			printf("%d\t%s\t%d\t%d\t%s", ++j,  					file->info->format, file->info->width, -					file->info->height, file->info->pixels, -					file->info->size, +					file->info->height, +					format_size(file->info->pixels)); +			printf("\t%s\t\t%c\t%s\n", +					format_size(file->info->size),  					file->info->has_alpha ? 'X' : '-', file->filename);  		feh_action_run(file, opt.actions[0]); diff --git a/src/slideshow.c b/src/slideshow.c index 189357d..a65d95e 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -404,6 +404,19 @@ char *shell_escape(char *input)  	return ret;  } +char *format_size(int size) +{ +	static char ret[5]; +	char units[] = {' ', 'k', 'M', 'G', 'T'}; +	unsigned char postfix = 0; +	while (size >= 1000) { +		size /= 1000; +		postfix++; +	} +	snprintf(ret, 5, "%3d%c", size, units[postfix]); +	return ret; +} +  char *feh_printf(char *str, feh_file * file)  {  	char *c; @@ -452,9 +465,7 @@ char *feh_printf(char *str, feh_file * file)  				break;  			case 'S':  				if (file && (file->info || !feh_file_info_load(file, NULL))) { -					snprintf(buf, sizeof(buf), -							"%.2fkB", ((double)file->info->size / 1000)); -					strcat(ret, buf); +					strcat(ret, format_size(file->info->size));  				}  				break;  			case 'p': @@ -463,14 +474,16 @@ char *feh_printf(char *str, feh_file * file)  					strcat(ret, buf);  				}  				break; +			case 'P': +				if (file && (file->info || !feh_file_info_load(file, NULL))) { +					strcat(ret, format_size(file->info->pixels)); +				} +				break;  			case 't':  				if (file && (file->info || !feh_file_info_load(file, NULL))) {  					strcat(ret, file->info->format);  				}  				break; -			case 'P': -				strcat(ret, PACKAGE); -				break;  			case 'v':  				strcat(ret, VERSION);  				break; | 
