summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliot Wolk <elliot.wolk@gmail.com>2016-10-29 14:05:36 -0400
committerElliot Wolk <elliot.wolk@gmail.com>2016-10-29 14:14:45 -0400
commit868fdddb3882036ed5676ebb8192f95dd0708752 (patch)
tree8323bcf34eff85615e4d2c37eda9e415faec7cf7
parent465238bdddb11d00926dcaa76ffe2f59fb536df5 (diff)
add cmdline opt --auto-rotate to rotate according to EXIF info
-rw-r--r--src/help.raw1
-rw-r--r--src/imlib.c2
-rw-r--r--src/options.c4
-rw-r--r--src/options.h1
4 files changed, 7 insertions, 1 deletions
diff --git a/src/help.raw b/src/help.raw
index 03c8348..067e35f 100644
--- a/src/help.raw
+++ b/src/help.raw
@@ -35,6 +35,7 @@ OPTIONS
-d, --draw-filename Show the filename in the image window
--draw-tinted Show overlay texts on semi-transparent background
--draw-exif Show some Exif information (if compiled with exif=1)
+ --auto-rotate Rotate images according to Exif info (if compiled with exif=1)
-^, --title TITLE Set window title (see FORMAT SPECIFIERS)
-D, --slideshow-delay NUM Set delay between automatically changing slides
--cycle-once Exit after one loop through the slideshow
diff --git a/src/imlib.c b/src/imlib.c
index 1cf2e5b..fd78d0c 100644
--- a/src/imlib.c
+++ b/src/imlib.c
@@ -264,7 +264,7 @@ int feh_load_image(Imlib_Image * im, feh_file * file)
if (exifData) {
ExifByteOrder byteOrder = exif_data_get_byte_order(exifData);
ExifEntry *exifEntry = exif_data_get_entry(exifData, EXIF_TAG_ORIENTATION);
- if (exifEntry)
+ if (exifEntry && opt.auto_rotate)
orientation = exif_get_short(exifEntry->data, byteOrder);
}
file->ed = exifData;
diff --git a/src/options.c b/src/options.c
index 9e2ff5a..56323a8 100644
--- a/src/options.c
+++ b/src/options.c
@@ -396,6 +396,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)
{"no-jump-on-resort", 0, 0, 220},
#ifdef HAVE_LIBEXIF
{"draw-exif" , 0, 0, 223},
+ {"auto-rotate" , 0, 0, 242},
#endif
{"cycle-once" , 0, 0, 224},
{"no-xinerama" , 0, 0, 225},
@@ -730,6 +731,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)
case 223:
opt.draw_exif = 1;
break;
+ case 242:
+ opt.auto_rotate = 1;
+ break;
#endif
case 224:
opt.cycle_once = 1;
diff --git a/src/options.h b/src/options.h
index c7ce689..5a5ce84 100644
--- a/src/options.h
+++ b/src/options.h
@@ -51,6 +51,7 @@ struct __fehoptions {
unsigned char draw_filename;
#ifdef HAVE_LIBEXIF
unsigned char draw_exif;
+ unsigned char auto_rotate;
#endif
unsigned char list;
unsigned char quiet;