- Jun 12, 2022
-
-
Birte Kristina Friesel authored
-
- Jun 10, 2022
-
-
Birte Kristina Friesel authored
Closes #656
-
Birte Kristina Friesel authored
-
- Apr 27, 2022
-
- Feb 10, 2022
-
-
Birte Kristina Friesel authored
use libmagic to detect valid file formats
-
Birte Kristina Friesel authored
init_parse_options calls feh_prepare_filelist, which in turn calls feh_file_info_preload if opt.preload is set. This function will load all images in the filelist to determine their attributes, so we need to initialize libmagic before calling init_parse_options.
-
- Feb 08, 2022
-
-
Christian Hesse authored
Add a global `magic_t magic` and initialize it just once. Also `feh_is_image()` now calls itself to check compressed files, saving some duplicate code.
-
Christian Hesse authored
Writing our own magic bytes detection is prone to errors and an everlasting catch-up-game. Let's use libmagic to get things right, this is less code and makes things more reliable. Building without libmagic is still possible. That will make the code act like specifying FEH_SKIP_MAGIC=1, effectively passing everything to imlib2.
-
- Jan 21, 2022
-
-
Ryan Schmidt authored
When _POSIX_C_SOURCE is defined, macOS hides the definitions of mkdtemp and mkstemps, among others. Define _DARWIN_C_SOURCE to counteract that.
-
- Jan 16, 2022
-
-
getopt_long() is widely supported these days, removing it from the source tree should be okay. Here's documentation or the implementation of getopt_long on many systems: All the BSDs: https://man.netbsd.org/NetBSD-9.2-STABLE/getopt_long.3 https://man.openbsd.org/OpenBSD-7.0/getopt_long https://www.freebsd.org/cgi/man.cgi?query=getopt_long https://leaf.dragonflybsd.org/cgi/web-man?command=getopt_long Illumos (OpenSolaris fork): https://illumos.org/man/3c/getopt_long The musl, newlib, and uclibc-ng libcs: https://gogs.waldemar-brodkorb.de/oss/uclibc-ng/src/master/libc/unistd/getopt_long-simple.c#L49-L52 https://git.musl-libc.org/cgit/musl/tree/src/misc/getopt_long.c#n140 https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/stdlib/getopt.c;h=d4f225a7a735dc741d2874eb6c131b6fce2967c5;hb=HEAD#l475 Mingw-w64: https://github.com/mirror/mingw-w64/blob/master/mingw-w64-crt/misc/getopt.c#L542-L549 Mac OS X: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/getopt_long.3.html
-
- Jan 03, 2022
-
-
Birte Kristina Friesel authored
Closes #642
-
- Dec 24, 2021
-
-
Birte Kristina Friesel authored
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
-
Birte Kristina Friesel authored
See GitHub issue #642
-
- Nov 20, 2021
-
-
Birte Kristina Friesel authored
Closes #639
-
- Nov 13, 2021
-
-
Birte Kristina Friesel authored
Useful to make feh quit (or execute actions) on mouse movement Closes #568
-
- Sep 25, 2021
-
-
Birte Kristina Friesel authored
-
Birte Kristina Friesel authored
-
- Sep 23, 2021
-
-
Birte Kristina Friesel authored
-
- Sep 21, 2021
-
-
Birte Kristina Friesel authored
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
-
Birte Kristina Friesel authored
-
- Sep 09, 2021
-
-
Birte Kristina Friesel authored
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
-
- Jul 25, 2021
-
-
Birte Kristina Friesel authored
Needs further testing
-
- Jul 24, 2021
-
-
Birte Kristina Friesel authored
-
-
- Jul 23, 2021
-
-
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 ""
-
Birte Kristina Friesel authored
-
Tobias Stoeckmann authored
* 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>
-
- Jun 21, 2021
-
-
Birte Kristina Friesel authored
Fix feh_is_image for tiny (<16 byte) image files
-
David Buchanan authored
-
David Buchanan authored
-
- Jun 09, 2021
-
-
Note that Imlib2 does not support JXL images out of the box. However, the imlib2-jxl loader (https://github.com/alistair7/imlib2-jxl) does.
-
- May 09, 2021
-
-
Birte Kristina Friesel authored
-
Birte Kristina Friesel authored
-
- May 08, 2021
-
-
Birte Kristina Friesel authored
This is consistent with --scroll-step (option name) and --zoom (percentage)
-
Birte Kristina Friesel authored
-
- May 02, 2021
-
-
Birte Kristina Friesel authored
"screen" and "display" are different X11 terms; we're actually talking about "monitors"
-
Birte Kristina Friesel authored
This should help answer questions such as #605 in the future
-