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) {

Reply via email to