Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
Imlib2 v1.7.5 introduces automatic (and transparent) orientation adjustment
based on EXIF orientation tags. This makes feh's --auto-rotate function
both superfluous and erroneous: It doesn't know about Imlib2's adjustments,
so it rotates an image which is already correctly oriented, leading to
incorrect orientation.
I am not aware of a simple run-time check for detecting whethen running
Imlib2 < 1.7.5 or ≥ 1.7.5. For now, feh disables --auto-rotate entirely when
compiled on a system with Imlib2 1.7.5+ and outputs a warning when the
option is used.
Rationale: The Imlib2 version available at run-time should in most cases be
at least as recent as the Imlib2 version used at compile-time. So, while there
may be cases where feh was compiled with Imlib2 1.7.4 and exhibits erroneous
auto-rotate behaviour on an Imlib2 1.7.5 system, the inverse case
(a feh with disabled auto-rotate support running on Imlib2 1.7.4) should be
sufficiently rare. If it does occur, it can be remedied by compiling feh
from source locally.
Possible caveat: Imlib2 only adjusts for EXIF orientation when loading JPEG
and TIFF images. If there are additional EXIF-aware file formats supported by
feh, but not Imlib2, they lose auto-rotate support.
Reference: GitHub issue #642
|
|
Closes #639
|
|
Useful to make feh quit (or execute actions) on mouse movement
Closes #568
|
|
If stdin is not connected, the X11 connection may use FD 0, which is
traditionally used for STDIN. Do not attempt reads from fd 0 unless it
_really_ is connected to a terminal on stdin.
Reported by https://github.com/pvanstam, thanks a lot!
Closes #631
Closes #632
|
|
|
|
This allows feh to load .gif images via libcurl, as some imlib2 versions only
load gif images if the suffix is correct. It's also more convenient when using
--keep-http.
To achieve this, feh needs to use mkstemps. mkstemps is a non-standard
extension that is available on several systems. Compile feh with
"mkstemps=0" to use mkstemp instead.
Closes #630
|
|
Needs further testing
|
|
|
|
The snprintf string argument should not be duplicated.
It is not needed and also not released afterwards.
|
|
Calling feh with an empty argument leads to out of boundary access.
This can be seen best when compiled with asan:
$ feh ""
|
|
|
|
* Fix out of boundary access
The while-loop is not finished when pos is set to EXIF_MAX_DATA.
Instead, the loop continues and therefore tries to access data outside
of the array.
This is triggered when compiled with exif=1 and asan:
$ feh --draw-exif image.jpg
* Fixed formatting
No functional change but makes previous commit easier verifiable
(independent of tab space setup).
* Call break; instead of setting pos2 to a magic value
This is in line with the following else clause
* Another cosmetic adjustment
Co-authored-by: Daniel Friesel <derf@finalrewind.org>
|
|
|
|
Note that Imlib2 does not support JXL images out of the box. However, the
imlib2-jxl loader (https://github.com/alistair7/imlib2-jxl) does.
|
|
|
|
|
|
This is consistent with --scroll-step (option name) and --zoom (percentage)
|
|
|
|
|
|
|
|
Both of these protocols are supported in latest curl.
Signed-off-by: parazyd <parazyd@dyne.org>
|
|
|
|
This makes --(auto-)reload use the directory specified at --start-at
instead of the current working directory. Closes #597
|
|
* fixed for simpler parenthesis matching
* absolute file path for .fehbg, moved script creation into helper function
* Removed unused variable.
* added early exit condition as per Ferada's suggestion
* Added enum for options to improve readability
* migrated options to enum.
* added support for zoom specification through options
* added man entry for zoom-rate
* added help entry for zoom-rate commands
* updated man to have warnings about strange values for zoom options
* fix memory leak (free exec_absolute_path)
* added detection for path vs env PATH launch for use in .fehbg script gen.
* Added enum for options to improve readability
* migrated options to enum.
* added support for zoom specification through options
* added man entry for zoom-rate
* added help entry for zoom-rate commands
* updated man to have warnings about strange values for zoom options
* Update help.raw
removed zoom-in/out
* removed zoom-in/out from options
* updated man/help entry to remove in/out zoom specification
* sanitize --zoom-rate in options parser; use a single variable for storing it
Co-authored-by: Daniel Friesel <derf@finalrewind.org>
|
|
This fixes Ctrl+key causing unintended behaviour. Closes #596
|
|
Fix some warnings from `gcc`.
|
|
Closes #595
|
|
.fehbg now stores the full path to the feh binary when it was run using a relative path (i.e., not from $PATH)
|
|
|
|
|
|
|
|
|
|
|
|
Closes #584
|
|
|
|
feh is C code, _XFUNCPROTO(BEGIN|END) are only needed for C++ applications.
|
|
|
|
|
|
|
|
codehearts-add-windowid-option
|
|
|
|
Fixes https://github.com/derf/feh/issues/580
|
|
Note that Imlib2 does not support HEIC/HEIF images out of the box. However, the
imlib2-heic loader (https://github.com/vi/imlib2-heic) does.
Closes #579
|
|
Closes #577
|
|
|
|
|
|
|
|
This fixes two memory bugs that only manifest with exif=1 and long-running
slideshows.
* when feh loads an image, it writes exif data to file->ed. Previously, this
data was never free'd, causing a memory leak on subsequent loads of the same
file.
* As file->ed is never free'd, the accumulated EXIF data consumes a significant
amount of memory over time. with slideshow-delay = 10 and two days of
runtime, feh may exceed 1 GB of memory usage. If the slideshow is so large
that feh does not encounter the same image twice in this time, this is not
detected as a memory leak, as each EXIF data chunk is referenced from the
filelist.
See <https://github.com/derf/feh/issues/553> for details.
Closes #553
|