Age | Commit message (Collapse) | Author | Lines |
|
Closes #754
Closes #740
Squashed commit of the following:
commit 7770f4cf1a1e7ff86238d67053b22b066e3d38ec
Author: wwsmiff <arnav0872@gmail.com>
Date: Sun Mar 17 01:54:55 2024 +0530
Remove font file
commit 70bc5864817e308d44fea51a409ef68c2bb9e574
Author: wwsmiff <arnav0872@gmail.com>
Date: Sun Mar 17 01:54:23 2024 +0530
Fix rotate by 180 degrees bug
|
|
When the user requests sorting by size or mtime, do a "soft preload" of
the file list that only calls stat(2) without loading images.
This avoids calling stat(2) repeatedly on the same files when sorting
the file list, and achieves faster startup on slow filesystems.
|
|
|
|
|
|
|
|
|
|
Closes #730
|
|
A signal interrupts the blocking function calls in the main iteration, so
there is really no need to do (unsafe) heavy lifting in the signal handler.
Closes #705
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These are no longer supported in upcoming clang versions.
warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
Reference: https://archives.gentoo.org/gentoo-dev/message/dd9f2d3082b8b6f8dfbccb0639e6e240
|
|
inotify_add_watch calls fail when the file is a url, since it does not
correspond to an actual on-disk path. The temporary file path fetched by
curl could be kept and monitored, but since this is unlikely to change
just avoid monitoring files opened via a url.
|
|
The default user agent is empty, which is not that friendly.
Closes #660
|
|
|
|
Closes #656
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
|
|
|
|
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>
|