Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package feh for openSUSE:Factory checked in at 2022-05-13 23:03:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/feh (Old) and /work/SRC/openSUSE:Factory/.feh.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "feh" Fri May 13 23:03:11 2022 rev:43 rq:976978 version:3.8 Changes: -------- --- /work/SRC/openSUSE:Factory/feh/feh.changes 2021-11-03 17:27:01.433362096 +0100 +++ /work/SRC/openSUSE:Factory/.feh.new.1538/feh.changes 2022-05-13 23:03:12.563125192 +0200 @@ -1,0 +2,12 @@ +Thu May 12 12:38:27 UTC 2022 - Ferdinand Thiessen <[email protected]> + +- Update to version 3.8: + * Add button ID "0" to cursor bindings. This pseudo-button is + triggered whenever feh observes a cursor movement. + It does not have a default binding. + * Support hexadecimal IDs in --window-id + * Disable --auto-rotate in feh builds compiled with Imlib2 1.7.5 + or later. Imlib2 1.7.5 introduces transparent EXIF-based image + orientation adjustment, so --auto-rotate is no longer needed + +------------------------------------------------------------------- Old: ---- feh-3.7.2.tar.bz2 feh-3.7.2.tar.bz2.asc New: ---- feh-3.8.tar.bz2 feh-3.8.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ feh.spec ++++++ --- /var/tmp/diff_new_pack.nOuSWR/_old 2022-05-13 23:03:13.227125803 +0200 +++ /var/tmp/diff_new_pack.nOuSWR/_new 2022-05-13 23:03:13.235125810 +0200 @@ -1,7 +1,7 @@ # # spec file for package feh # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,10 +17,10 @@ Name: feh -Version: 3.7.2 +Version: 3.8 Release: 0 Summary: X11 image viewer -License: MIT AND LGPL-2.0-or-later +License: LGPL-2.0-or-later AND MIT URL: https://feh.finalrewind.org/ Source: https://feh.finalrewind.org/%{name}-%{version}.tar.bz2 Source1: https://feh.finalrewind.org/%{name}-%{version}.tar.bz2.asc @@ -46,8 +46,8 @@ Requires: libjpeg-turbo Requires(post): desktop-file-utils Requires(post): hicolor-icon-theme -Requires(postun): desktop-file-utils -Requires(postun): hicolor-icon-theme +Requires(postun):desktop-file-utils +Requires(postun):hicolor-icon-theme %description feh is an X11 image viewer aimed mostly at console users. It does not ++++++ feh-3.7.2.tar.bz2 -> feh-3.8.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/.github/workflows/c.yml new/feh-3.8/.github/workflows/c.yml --- old/feh-3.7.2/.github/workflows/c.yml 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/.github/workflows/c.yml 2022-01-03 11:34:57.000000000 +0100 @@ -27,12 +27,12 @@ run: sudo apt-get -y install build-essential libx11-dev libxt-dev libimlib2-dev libtest-command-perl libtest-simple-perl - name: Install libcurl if: matrix.curl - run: sudo apt-get -y install libcurl4-openssl-dev + run: sudo apt-get -y install libcurl4-openssl-dev - name: Install libexif if: matrix.exif - run: sudo apt-get -y install libexif-dev + run: sudo apt-get -y install libexif-dev - name: Install Xinerama if: matrix.xinerama - run: sudo apt-get -y install libxinerama-dev + run: sudo apt-get -y install libxinerama-dev - name: Build and Test run: for inotify in 0 1; do for verscmp in 0 1; do make curl=${{ matrix.curl }} exif=${{ matrix.exif }} inotify=$inotify verscmp=$verscmp xinerama=${{ matrix.xinerama }} && make test && make clean; done; done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/ChangeLog new/feh-3.8/ChangeLog --- old/feh-3.7.2/ChangeLog 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/ChangeLog 2022-01-03 11:34:57.000000000 +0100 @@ -1,3 +1,16 @@ +Mon, 03 Jan 2022 11:29:03 +0100 Daniel Friesel <[email protected]> + +* Release v3.8 + * Add button ID "0" to cursor bindings. This pseudo-button is triggered + whenever feh observes a cursor movement. It does not have a default + binding. + * Support hexadecimal IDs in --window-id + * Disable --auto-rotate in feh builds compiled with Imlib2 1.7.5 or later. + Imlib2 1.7.5 introduces transparent EXIF-based image orientation + adjustment, so --auto-rotate is no longer needed (and would cause + mis-orientation of images, as Imlib2 has already adjusted the + orientation). + Sat, 25 Sep 2021 09:21:25 +0200 Daniel Friesel <[email protected]> * Release v3.7.2 @@ -1238,8 +1251,8 @@ > In short, it enables the user to use feh as an image viewer used by a > file manager like ROX-Filer or Nautilus when invoked with the --fmmode > option. The file manager passes the file that the user wants to view to - > feh. My function then reads the directory in which the file resides and - > first passes the current image, then alphabetically all the following + > feh. My function then reads the directory in which the file resides and + > first passes the current image, then alphabetically all the following > images and at last the images that are alphabetically before the current > file to the 'filelist'. > Afaik that's the default behaviour of gqview and gthumb. @@ -1285,7 +1298,7 @@ Sat Jul 24 14:52:19 BST 2004 Tom Gilbert <[email protected]> - * Various warning fixes from Claes Nasten <[email protected]> + * Various warning fixes from Claes Nasten <[email protected]> Thu Jun 10 23:14:36 BST 2004 Tom Gilbert <[email protected]> @@ -1416,13 +1429,13 @@ * AUTHORS: added Jon Bernard Sun Oct 20 14:49:46 2002 EDT, Paul Duncan <[email protected]> - + * New beveled, off-white background image for menus. I made it the default after consulting with the boss (eg Sue Gilbert). Tom thinks it's okay too. Sun Oct 20 05:48:40 2002 EDT Paul Duncan <[email protected]> - + * Added Xinerama support. Currently defaults to fullscreen on the first head (this can be fixed with a little work). * Added winwidget_{move,get_geometry}(); @@ -1983,7 +1996,7 @@ Thu Jun 22 23:57:33 2000 Tom Gilbert <[email protected]> * Optimisations to thumb hilites. Only show hilite when you can - click to open an image, don't show when over emtpy space, and + click to open an image, don't show when over emtpy space, and don't re-render if the selection hasn't changed from the last mouseover. Speeds it up a lot. @@ -2086,7 +2099,7 @@ Sun Jun 18 01:29:16 2000 Tom Gilbert <[email protected]> - * The first part of some background setting code from richlowe + * The first part of some background setting code from richlowe <[email protected]> - more to come, it'll be sweet. * Doesn't work yet btw, so don't get excited ;) @@ -2108,7 +2121,7 @@ bg. Same for --theme chrome. Sat Jun 17 12:57:49 PDT 2000 Paul Duncan <[email protected]> - + * wget is now quiet by default (wget -q). it's verbose if the -V or --verbose flag is passed to feh. Your terminal will thank you. @@ -2183,7 +2196,7 @@ the singleton context (accidentally leaving context_antialias on, not blending when I should be etc), and to fix them I was adding lines and lines of context_set this, context_set that. I've - wrapped the imlib calls in an imlib1 + wrapped the imlib calls in an imlib1 lots-of-params-per-function-call stylee, and now it's much more readable and harder to break. * In the process, made big speedups by not antialiasing when I @@ -2522,7 +2535,7 @@ * If ~/.fehrc exists, or if not, but /etc/fehrc exists, feh will look in it for name/options pairs. An example entry would be: imagemap -rVq --thumb-width 40 --thumb-height 30 - * You can use the theme in two ways. Either + * You can use the theme in two ways. Either feh -C themename [images] or you can create a symbolic link to feh with the name of the options you want it to use. So from the example above: @@ -2535,7 +2548,7 @@ create an index.jpg in the current directory. I just run: $ mkindex. * An example.fehrc is provided with a couple of cool examples. - + Fri Mar 24 19:17:27 2000 Tom Gilbert <[email protected]> * Slightly increased the default index mode font size. @@ -2771,11 +2784,11 @@ tired right now to try to make sense out of gilbertt's callback logic. :-) I'll try to fix it this weekend if he doesn't beat me to it. - + Wed Mar 1 15:13:04 PST 2000 Michael Jennings <[email protected]> * Math lib - + Sun Feb 20 15:22:00 2000 Tom Gilbert <[email protected]> * Remove some crufty duplication. @@ -3078,7 +3091,7 @@ Sun Dec 19 20:29:33 1999 Tom Gilbert <[email protected]> * Added a .spec file for feh. Contributed by Alistair Sutton - <[email protected]>, (who is obviously a metallica fan ;), + <[email protected]>, (who is obviously a metallica fan ;), and has written specs for me before ::) Thanks dude :) * Urm. I haven't actually tested this yet :) @@ -3188,4 +3201,3 @@ Thu Dec 16 22:10:50 1999 Tom Gilbert <[email protected]> * Initial import. Feh is currently at 0.5.0 release level. - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/Makefile new/feh-3.8/Makefile --- old/feh-3.7.2/Makefile 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/Makefile 2022-01-03 11:34:57.000000000 +0100 @@ -25,20 +25,20 @@ install: install-man install-doc install-bin install-font install-img install: install-icon install-examples install-applications -install-man: +install-man: man/feh.1 @echo installing manuals to ${man_dir} @mkdir -p ${man_dir}/man1 @cp man/feh.1 ${man_dir}/man1 @chmod 644 ${man_dir}/man1/feh.1 -install-doc: +install-doc: AUTHORS ChangeLog README.md TODO @echo installing docs to ${doc_dir} @mkdir -p ${doc_dir} @cp AUTHORS ChangeLog README.md TODO ${doc_dir} @chmod 644 ${doc_dir}/AUTHORS ${doc_dir}/ChangeLog ${doc_dir}/README.md \ ${doc_dir}/TODO -install-bin: +install-bin: src/feh @echo installing executables to ${bin_dir} @mkdir -p ${bin_dir} @cp src/feh ${bin_dir}/feh.tmp @@ -78,7 +78,7 @@ @cp examples/* ${example_dir} @chmod 644 ${example_dir}/* -install-applications: +install-applications: share/applications/feh.desktop @echo installing desktop file to ${desktop_dir} @mkdir -p ${desktop_dir} @cp share/applications/feh.desktop ${desktop_dir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/README.md new/feh-3.8/README.md --- old/feh-3.7.2/README.md 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/README.md 2022-01-03 11:34:57.000000000 +0100 @@ -91,6 +91,7 @@ | help | 0 | include help text (refers to the manpage otherwise) | | inotify | 0 | enable inotify, needed for `--auto-reload` | | stat64 | 0 | Support CIFS shares from 64bit hosts on 32bit machines | +| mkstemps | 1 | Whether your libc provides `mkstemps()`. If set to 0, feh will be unable to load gif images via libcurl | | verscmp | 1 | Whether your libc provides `strvercmp()`. If set to 0, feh will use an internal implementation. | | xinerama | 1 | Support Xinerama/XRandR multiscreen setups | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/config.mk new/feh-3.8/config.mk --- old/feh-3.7.2/config.mk 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/config.mk 2022-01-03 11:34:57.000000000 +0100 @@ -1,11 +1,12 @@ PACKAGE ?= feh -VERSION ?= 3.7.2 +VERSION ?= 3.8 app ?= 0 curl ?= 1 debug ?= 0 exif ?= 0 help ?= 0 +mkstemps ?= 1 verscmp ?= 1 xinerama ?= 1 @@ -63,6 +64,10 @@ CFLAGS += -D_FILE_OFFSET_BITS=64 endif +ifeq (${mkstemps},1) + CFLAGS += -DHAVE_MKSTEMPS +endif + ifeq (${verscmp},1) CFLAGS += -DHAVE_STRVERSCMP endif @@ -90,7 +95,7 @@ MAN_INOTIFY = disabled endif -MAN_DATE ?= September 25, 2021 +MAN_DATE ?= January 03, 2022 # Uncomment this to use dmalloc #CFLAGS += -DWITH_DMALLOC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/examples/buttons new/feh-3.8/examples/buttons --- old/feh-3.7.2/examples/buttons 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/examples/buttons 2022-01-03 11:34:57.000000000 +0100 @@ -14,4 +14,4 @@ # make scroll wheel (mousewheel up and down) zoom, instead of flipping images zoom_in 4 -zoom_out 5 \ No newline at end of file +zoom_out 5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/examples/keys new/feh-3.8/examples/keys --- old/feh-3.7.2/examples/keys 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/examples/keys 2022-01-03 11:34:57.000000000 +0100 @@ -37,7 +37,7 @@ zoom_default d zoom_fit s -# I only hit these accidentaly +# I only hit these accidentally save_image save_filelist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/man/feh.pre new/feh-3.8/man/feh.pre --- old/feh-3.7.2/man/feh.pre 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/man/feh.pre 2022-01-03 11:34:57.000000000 +0100 @@ -261,9 +261,16 @@ .It Cm --auto-rotate . .Pq optional feature, $MAN_EXIF$ in this build +.Pq deprecated in favor of Imlib2's auto-orientation support Automatically rotate images based on EXIF data. Does not alter the image files. . +.Pp +. +Note that Imlib2 version 1.7.5+ performs auto-rotation by itself, so this option is obsolete on systems with Imlib2 version 1.7.5 or later. +.Nm +currently cannot detect this at runtime. +. .It Cm -Z , --auto-zoom . Zoom pictures to screen size in fullscreen / fixed geometry mode. @@ -1905,6 +1912,13 @@ . Reload current image . +.It 0 Ao cursor movement while not panning, zooming, or similar Ac +. +Does not have a default binding. +By binding it to +.Cm quit , +you can turn feh into a simple screensaver. +. .It 1 Ao left mouse button Ac Bq pan . pan the current image @@ -2130,6 +2144,15 @@ . .Pp . +Imlib2 releases 1.7.5+ automatically rotate images based on their EXIF tags. +When combined with the +.Cm --auto-rotate +option, this causes images to be rotated twice and end up in an incorrect orientation. +As a workaround, do not use +.Cm --auto-rotate +on systems with Imlib2 version 1.7.5 or later. +.Pp +. On systems with giflib 5.1.2, .Nm may be unable to load gif images. @@ -2169,14 +2192,15 @@ .Aq [email protected] or via .Aq https://github.com/derf/feh/issues . -You are also welcome to direct any feh-related comments/questions/... to #feh -on irc.oftc.net. . .Pp . Please include the feh version .Aq the output of Qq feh --version , steps to reproduce the bug and, if necessary, images to reproduce it. +Note that +.Nm +is a hobby project, so bug reports may be addressed with significant delays. . . .Sh LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/deps.mk new/feh-3.8/src/deps.mk --- old/feh-3.7.2/src/deps.mk 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/deps.mk 2022-01-03 11:34:57.000000000 +0100 @@ -15,7 +15,7 @@ gib_style.o: gib_style.c gib_style.h gib_list.h utils.h debug.h imlib.o: imlib.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ structs.h menu.h utils.h getopt.h debug.h filelist.h signals.h \ - winwidget.h options.h + winwidget.h options.h exif.h index.o: index.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ options.h index.h @@ -55,3 +55,12 @@ winwidget.o: winwidget.c feh.h gib_hash.h gib_list.h gib_imlib.h \ gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ winwidget.h options.h events.h timers.h +exif.o: exif.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ + structs.h menu.h utils.h getopt.h debug.h options.h exif.h exif_canon.h \ + exif_nikon.h exif_cfg.h +exif_canon.o: exif_canon.c feh.h gib_hash.h gib_list.h gib_imlib.h \ + gib_style.h structs.h menu.h utils.h getopt.h debug.h exif.h \ + exif_canon.h +exif_nikon.o: exif_nikon.c feh.h gib_hash.h gib_list.h gib_imlib.h \ + gib_style.h structs.h menu.h utils.h getopt.h debug.h exif.h \ + exif_nikon.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/events.c new/feh-3.8/src/events.c --- old/feh-3.7.2/src/events.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/events.c 2022-01-03 11:34:57.000000000 +0100 @@ -85,6 +85,15 @@ button->button = atoi(cur); button->state = mod; + + if (button->button == 0) { + /* + * Mod3 is unused on today's keyboards. If Mod3 is unset and button==0, + * we are dealing with an uninitialized or unset binding. If Mod3 is set + * and button==0, it refers to mouse movement. + */ + button->state |= Mod3Mask; + } } /* @@ -680,6 +689,8 @@ y = (ev->xbutton.y - winwid->im_y) / winwid->zoom; thumbnail = feh_thumbnail_get_thumbnail_from_coords(x, y); feh_thumbnail_select(winwid, thumbnail); + } else { + feh_event_handle_generic(winwid, ev->xmotion.state | Mod3Mask, NoSymbol, 0); } } return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/filelist.c new/feh-3.8/src/filelist.c --- old/feh-3.7.2/src/filelist.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/filelist.c 2022-01-03 11:34:57.000000000 +0100 @@ -641,7 +641,7 @@ filelist file can be saved anywhere and feh will still find the images */ D(("Need to convert %s to an absolute form\n", path)); - /* I SHOULD be able to just use a simple realpath() here, but dumb * + /* I SHOULD be able to just use a simple realpath() here, but dumb * old Solaris's realpath doesn't return an absolute path if the path you give it is relative. Linux and BSD get this right... */ if (getcwd(cwd, sizeof(cwd)) == NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/getopt.c new/feh-3.8/src/getopt.c --- old/feh-3.7.2/src/getopt.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/getopt.c 2022-01-03 11:34:57.000000000 +0100 @@ -296,7 +296,7 @@ /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the - longer segment in the right place overall, but it consists of two parts + longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #ifdef _LIBC @@ -304,7 +304,7 @@ can work normally. Our top argument must be in the range of the string. */ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { - /* We must extend the array. The user plays games with us and presents + /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc(top + 1); @@ -534,7 +534,7 @@ } /* The special ARGV-element `--' means premature end of options. Skip - it like a null option, then exchange with previous non-options as if + it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp(argv[optind], "--")) { @@ -580,7 +580,7 @@ /* Check whether the ARGV-element is a long option. - If long_only and the ARGV-element has the form "-f", where f is a valid + If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. @@ -605,7 +605,7 @@ for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; - /* Test all long options for either exact match or abbreviated matches. + /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp(p->name, nextchar, nameend - nextchar)) { @@ -686,7 +686,7 @@ return pfound->val; } - /* Can't find it as a long option. If this is not getopt_long_only, or + /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index(optstring, *nextchar) == NULL) { @@ -761,7 +761,7 @@ taking next ARGV-elt as argument. */ optarg = argv[optind++]; - /* optarg is now the argument, see if it's in the table of longopts. + /* optarg is now the argument, see if it's in the table of longopts. */ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) @@ -830,7 +830,7 @@ return pfound->val; } nextchar = NULL; - return 'W'; /* Let the application handle it. + return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/gib_hash.c new/feh-3.8/src/gib_hash.c --- old/feh-3.7.2/src/gib_hash.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/gib_hash.c 2022-01-03 11:34:57.000000000 +0100 @@ -89,7 +89,7 @@ gib_hash_node *node = GIB_HASH_NODE(list); char *key = (char*) data; - /* strncasecmp causes simliar keys like key1 and key11 clobber eachother */ + /* strncasecmp causes similar keys like key1 and key11 clobber each other */ return !strcasecmp(node->key, key); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/gib_imlib.c new/feh-3.8/src/gib_imlib.c --- old/feh-3.7.2/src/gib_imlib.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/gib_imlib.c 2022-01-03 11:34:57.000000000 +0100 @@ -322,7 +322,7 @@ gib_style_bit *bb; gib_list *l; - /* here we shift the draw to accomodate bits with negative offsets, + /* here we shift the draw to accommodate bits with negative offsets, * which would be drawn at negative coords otherwise */ l = s->bits; while (l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/gib_list.c new/feh-3.8/src/gib_list.c --- old/feh-3.7.2/src/gib_list.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/gib_list.c 2022-01-03 11:34:57.000000000 +0100 @@ -520,7 +520,7 @@ for (i=root; i; i=i->next) if (find_func(i,data)) return i; - + return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/imlib.c new/feh-3.8/src/imlib.c --- old/feh-3.7.2/src/imlib.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/imlib.c 2022-01-03 11:34:57.000000000 +0100 @@ -462,8 +462,9 @@ if (file->ed) { ExifByteOrder byteOrder = exif_data_get_byte_order(file->ed); ExifEntry *exifEntry = exif_data_get_entry(file->ed, EXIF_TAG_ORIENTATION); - if (exifEntry && opt.auto_rotate) + if (exifEntry && opt.auto_rotate) { orientation = exif_get_short(exifEntry->data, byteOrder); + } } if (orientation == 2) @@ -869,15 +870,32 @@ } basename = strrchr(url, '/') + 1; - tmpname = feh_unique_filename(path, basename); - if (strlen(tmpname) > (NAME_MAX-6)) - tmpname[NAME_MAX-7] = '\0'; +#ifdef HAVE_MKSTEMPS + tmpname = estrjoin("_", "feh_curl_XXXXXX", basename, NULL); - sfn = estrjoin("_", tmpname, "XXXXXX", NULL); + if (strlen(tmpname) > NAME_MAX) { + tmpname[NAME_MAX] = '\0'; + } +#else + if (strlen(basename) > NAME_MAX-7) { + tmpname = estrdup("feh_curl_XXXXXX"); + } else { + tmpname = estrjoin("_", "feh_curl", basename, "XXXXXX", NULL); + } +#endif + + sfn = estrjoin("", path, tmpname, NULL); free(tmpname); + D(("sfn is %s\n", sfn)) + +#ifdef HAVE_MKSTEMPS + fd = mkstemps(sfn, strlen(basename) + 1); +#else fd = mkstemp(sfn); +#endif + if (fd != -1) { sfp = fdopen(fd, "w+"); if (sfp != NULL) { @@ -886,8 +904,8 @@ #endif /* * Do not allow requests to take longer than 30 minutes. - * This should be sufficiently high to accomodate use cases with - * unusually high latencies, while at the sime time avoiding + * This should be sufficiently high to accommodate use cases with + * unusually high latencies, while at the same time avoiding * feh hanging indefinitely in unattended slideshows. */ curl_easy_setopt(curl, CURLOPT_TIMEOUT, 1800); @@ -936,7 +954,11 @@ close(fd); } } else { +#ifdef HAVE_MKSTEMPS + weprintf("open url: mkstemps failed:"); +#else weprintf("open url: mkstemp failed:"); +#endif free(sfn); } curl_easy_cleanup(curl); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/index.c new/feh-3.8/src/index.c --- old/feh-3.7.2/src/index.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/index.c 2022-01-03 11:34:57.000000000 +0100 @@ -131,7 +131,7 @@ weprintf( "The image size you specified (%dx%d) is not large\n" "enough to hold all %d thumbnails. To fit all the thumbnails,\n" - "either decrease their size, choos e asmaller font,\n" + "either decrease their size, choose a smaller font,\n" "or use a larger image (like %dx%d)", opt.limit_w, opt.limit_h, filelist_len, w, h); h = opt.limit_h; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/main.c new/feh-3.8/src/main.c --- old/feh-3.7.2/src/main.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/main.c 2022-01-03 11:34:57.000000000 +0100 @@ -243,7 +243,7 @@ } if (window_num == 0 || sig_exit != 0) return(0); - + return(1); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/options.c new/feh-3.8/src/options.c --- old/feh-3.7.2/src/options.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/options.c 2022-01-03 11:34:57.000000000 +0100 @@ -758,7 +758,12 @@ opt.draw_exif = 1; break; case OPTION_auto_rotate: +#if defined(IMLIB2_VERSION_MAJOR) && defined(IMLIB2_VERSION_MINOR) && defined(IMLIB2_VERSION_MICRO) && (IMLIB2_VERSION_MAJOR > 1 || IMLIB2_VERSION_MINOR > 7 || IMLIB2_VERSION_MICRO >= 5) + weprintf("This feh release was built with Imlib2 version %d.%d.%d, which transparently adjusts for image orientation according to EXIF data.", IMLIB2_VERSION_MAJOR, IMLIB2_VERSION_MINOR, IMLIB2_VERSION_MICRO); + weprintf("--auto-rotate would rotate an already correctly oriented image, resulting in incorrect orientation. It has been disabled in this build. Rebuild feh with Imlib2 <1.7.5 to enable --auto-rotate."); +#else opt.auto_rotate = 1; +#endif break; #endif case OPTION_no_xinerama: @@ -838,7 +843,7 @@ opt.use_conversion_cache = 0; break; case OPTION_window_id: - opt.x11_windowid = atol(optarg); + opt.x11_windowid = strtol(optarg, NULL, 0); break; case OPTION_zoom_step: opt.zoom_rate = atof(optarg); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/slideshow.c new/feh-3.8/src/slideshow.c --- old/feh-3.7.2/src/slideshow.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/slideshow.c 2022-01-03 11:34:57.000000000 +0100 @@ -165,7 +165,7 @@ if (opt.filelistfile) { filelist = gib_list_cat(filelist, feh_read_filelist(opt.filelistfile)); } - + if (!(filelist_len = gib_list_length(filelist))) { eprintf("No files found to reload."); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/thumbnail.c new/feh-3.8/src/thumbnail.c --- old/feh-3.7.2/src/thumbnail.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/thumbnail.c 2022-01-03 11:34:57.000000000 +0100 @@ -636,9 +636,9 @@ /* FIXME: what happens with http, https, and ftp? MTime etc */ if (!path_is_url(name)) { - /* make sure it's an absoulte path */ + /* make sure it's an absolute path */ /* FIXME: add support for ~, need to investigate if it's expanded - somewhere else before adding (unecessary) code */ + somewhere else before adding (unnecessary) code */ if (name[0] != '/') { /* work around /some/path/./image.ext */ if ((strncmp(name, "./", 2)) == 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/wallpaper.c new/feh-3.8/src/wallpaper.c --- old/feh-3.7.2/src/wallpaper.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/wallpaper.c 2022-01-03 11:34:57.000000000 +0100 @@ -591,7 +591,7 @@ if (data_root) XFree(data_root); - + if (data_esetroot) XFree(data_esetroot); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7.2/src/winwidget.c new/feh-3.8/src/winwidget.c --- old/feh-3.7.2/src/winwidget.c 2021-09-25 09:24:31.000000000 +0200 +++ new/feh-3.8/src/winwidget.c 2022-01-03 11:34:57.000000000 +0100 @@ -104,8 +104,13 @@ ret->w = ret->im_w = gib_imlib_image_get_width(ret->im); ret->h = ret->im_h = gib_imlib_image_get_height(ret->im); - if (opt.full_screen && (type != WIN_TYPE_THUMBNAIL)) + if (opt.full_screen && (type != WIN_TYPE_THUMBNAIL)) { ret->full_screen = True; + } else if (opt.default_zoom) { + ret->zoom = 0.01 * opt.default_zoom; + ret->w *= ret->zoom; + ret->h *= ret->zoom; + } winwidget_create_window(ret, ret->w, ret->h); winwidget_render_image(ret, 1, 0); @@ -133,8 +138,13 @@ ret->w = ret->im_w = gib_imlib_image_get_width(ret->im); ret->h = ret->im_h = gib_imlib_image_get_height(ret->im); D(("image is %dx%d pixels, format %s\n", ret->w, ret->h, gib_imlib_image_format(ret->im))); - if (opt.full_screen) + if (opt.full_screen) { ret->full_screen = True; + } else if (opt.default_zoom) { + ret->zoom = 0.01 * opt.default_zoom; + ret->w *= ret->zoom; + ret->h *= ret->zoom; + } winwidget_create_window(ret, ret->w, ret->h); winwidget_render_image(ret, 1, 0); } @@ -454,7 +464,12 @@ int antialias = 0; if (!winwid->full_screen && resize) { - winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0); + if (opt.default_zoom) { + winwid->zoom = 0.01 * opt.default_zoom; + winwidget_resize(winwid, winwid->im_w * winwid->zoom, winwid->im_h * winwid->zoom, 0); + } else { + winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0); + } winwidget_reset_image(winwid); } @@ -763,7 +778,7 @@ for (int j = 0; j < window_num; j++) { if(windows[j]->inotify_wd == event->wd) { if (event->mask & IN_IGNORED) { - D(("inotify watch was implicitely removed\n")); + D(("inotify watch was implicitly removed\n")); windows[j]->inotify_wd = -1; } else if (event->mask & (IN_CLOSE_WRITE | IN_MOVED_TO)) { if (strcmp(event->name, FEH_FILE(windows[j]->file->data)->name) == 0) {
