From 132ecc0f9f0a2243c4f6745d0af36be810bf9eba Mon Sep 17 00:00:00 2001 From: Dennis Real Date: Sun, 5 Feb 2012 16:56:29 +0100 Subject: - improved handling of images which have exif tags but not ours - fixed uninitialzed pointer in thumbnail mode - added nikon lens info if available --- .gitignore | 1 + config.mk | 2 +- src/exif.c | 8 +++++--- src/filelist.c | 5 ++++- src/imlib.c | 2 ++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index dd0b562..559c5ab 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /src/*.inc /src/feh /man/*.1 +*~ \ No newline at end of file diff --git a/config.mk b/config.mk index 501ec89..d6a5a4f 100644 --- a/config.mk +++ b/config.mk @@ -21,7 +21,7 @@ curl ?= 1 debug ?= 0 help ?= 0 xinerama ?= 1 -exif ?= 0 +exif ?= 1 ifeq (${curl},1) CFLAGS += -DHAVE_LIBCURL diff --git a/src/exif.c b/src/exif.c index 02154e4..9d26072 100644 --- a/src/exif.c +++ b/src/exif.c @@ -45,10 +45,10 @@ static void exif_trim_spaces(char *str) { if (*str != ' ') { - end = str; + end = str+1; } } - *++end = '\0'; + *end = '\0'; } @@ -146,7 +146,7 @@ void exif_get_info(ExifData * ed, char *buffer, unsigned int maxsize) { return; } - else if (ed == NULL ) + else if (ed == NULL) { snprintf(buffer, (size_t)maxsize, "%s\n", "No Exif data in file."); return; @@ -187,6 +187,8 @@ void exif_get_info(ExifData * ed, char *buffer, unsigned int maxsize) { /* Digital Vari-Program */ exif_get_mnote_tag(ed, 171, buffer + strlen(buffer), maxsize - strlen(buffer)); + /* Lens */ + exif_get_mnote_tag(ed, 132, buffer + strlen(buffer), maxsize - strlen(buffer)); } } diff --git a/src/filelist.c b/src/filelist.c index 32bc2a5..9756c27 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -54,6 +54,9 @@ feh_file *feh_file_new(char *filename) else newfile->name = estrdup(filename); newfile->info = NULL; +#ifdef HAVE_LIBEXIF + newfile->ed = NULL; +#endif return(newfile); } @@ -70,7 +73,7 @@ void feh_file_free(feh_file * file) if (file->info) feh_file_info_free(file->info); #ifdef HAVE_LIBEXIF - if (file->info) + if (file->ed) exif_data_unref(file->ed); #endif free(file); diff --git a/src/imlib.c b/src/imlib.c index 0b60180..197b8f5 100644 --- a/src/imlib.c +++ b/src/imlib.c @@ -522,6 +522,8 @@ void feh_draw_exif(winwidget w) return; } + + buffer[0] = '\0'; exif_get_info(FEH_FILE(w->file->data)->ed, buffer, MAX_EXIF_DATA); fn = feh_load_font(w); -- cgit v1.2.3