summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-08-28Fix segfault when closing a window in multi-window reload modeDaniel Friesel-2/+37
Issue: * start feh --multiwindow --reload 5 * close a window with "x" * wait up to 5 seconds * segfault The issue was caused by the closed window's reload timer still being active even after the winwidget was free'd.
2020-08-28Fix segmentation fault when combining --multiwindow and --reloadDaniel Friesel-36/+43
Introduced in 3fa39154f089a6fadc1a14eb6b206e2d2875be71
2020-06-17Merge pull request #500 from reiseb/masterDaniel Friesel-0/+11
add option 'a' to show play/paused information in slideshow mode
2020-06-17toggle_pause: Re-render the image instead of reloadingDaniel Friesel-2/+2
When the slideshow state is toggled, the info line needs to be redrawn as it may use the %a format specifier (which shows whether the slideshow is running or paused). feh_reload_image does this, but also resets all pan and zoom options and reloads the image from disk. winwidget_render_image only redraws info, caption and similar lines in this case, which is more efficient and does not incur unwanted side-effects.
2020-06-17re-add verscmp flag to --version outputDaniel Friesel-0/+4
2020-06-16change play/pause to playing/paused to improve UXreiseb-3/+3
2020-06-16fix indentation (all tabs)reiseb-8/+8
2020-06-16add option 'a' to show play/paused information in slideshow modereiseb-0/+11
2020-06-15Enable --version-sort on systems without strverscmp()Tim van der Molen-9/+65
The --version-sort option requires strverscmp(), but this is a glibc extension that does not exist on OpenBSD and other systems. To enable --version-sort on those systems, provide an internal implementation of strverscmp(). The implementation is from the musl C library and is MIT-licensed. The build process remains the same: the verscmp flag should be set to 1 only if strverscmp() is available in libc. If verscmp is 0, then the internal implementation is used.
2020-05-30Update zoom in / zom out keys in feh --helpDaniel Friesel-2/+2
2020-05-29Fix lossless rotate for Imlib2 ≥ 1.6Daniel Friesel-2/+4
Closes #532
2020-04-11update copyrightDaniel Friesel-24/+24
2020-04-11ensure cache != NULL before accessing itDaniel Friesel-1/+1
Closes #521
2020-04-11Handle file:/// URLs as local paths in --start-atDaniel Friesel-1/+10
2020-04-08Notify user when attempting to edit caption of a URLDaniel Friesel-1/+4
2020-04-08fix a memory leak when loading a non-native image more than onceDaniel Friesel-0/+12
feh_file_info_load is called even if file_info is already populated, so the original file_info struct is never freed. This results in a leak of ~44 Byte for each subsequenc image load
2020-04-05Use conversion cache for imlib2 and dcraw imagesDaniel Friesel-21/+37
2020-03-30bypass HTTP cache when reloading an imageDaniel Friesel-3/+16
2020-03-30move feh_reload_image to imlib.c (next to feh_load_image)Daniel Friesel-76/+76
2020-03-30Enable HTTP cache by defaultDaniel Friesel-2/+5
2020-03-30Enable re-using downloaded http cacheAwal Garg-2/+21
2020-03-29Merge branch 'start-at-supports-urls' of https://github.com/iglosiggio/feh ↵Daniel Friesel-1/+3
into iglosiggio-start-at-supports-urls
2020-03-26Quit curl cleanly even if libcurl is old.c99pedant-0/+6
Building feh 3.3 on CentOS 7 x86_64 warns `curl_quit_function` in `imlib.c` is unused: ``` cc -g -O2 -Wall -Wextra -pedantic -std=c11 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DHAVE_LIBCURL -DHAVE_VERSCMP -DHAVE_LIBXINERAMA -DHAVE_LIBEXIF -DPREFIX=\"/usr/local\" -DPACKAGE=\"feh\" -DVERSION=\"3.3\" -c -o imlib.o imlib.c imlib.c:545:12: warning: ‘curl_quit_function’ defined but not used [-Wunused-function] static int curl_quit_function(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) ^ ``` The `curl_quit_function` code was added in response to pull [#435](https://github.com/derf/feh/pull/435) In issue [#485](https://github.com/derf/feh/issues/485) a fellow CentOS 7 user had an error building feh because CentOS 7 is locked into an old version of libcurl. In the fix, a version guard was wrapped around the `curl_easy_setopt` call, but the rest of the code was unchanged. Since I don't want to maintain a local build of libcurl, I looked at the curl docs and noticed there is an older callback which serves the same purpose: https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html The difference between `PROGRESS` and `XFERINFO` is the callback's argument types, with `PROGRESS` using `double` and `XFERINFO` using `curl_off_t`: https://curl.haxx.se/libcurl/c/CURLOPT_XFERINFOFUNCTION.html The callback's return value logic and use of `CURLOPT_NOPROGRESS` is the same. For context, the latest libcurl RPM I'm getting from yum updates is `libcurl-7.29.0-54.el7_7.2.x86_64`. The "stable" versions of other distros may encounter similar issues. The CentOS 7 "End of Life" date is 2024-06-30 so you should hear the end of this by then, at least from us pesky CentOS users.
2020-01-23Ignore --start-at if the parameter is an URLIgnacio Losiggio-1/+3
2019-11-07Guard CURLOPT_XFERINFOFUNCTION usage with LIBCURL_VERSION_NUM checkDaniel Friesel-0/+2
Closes #485
2019-11-07Merge branch 'x11-properties' of https://github.com/Ferada/feh into ↵Daniel Friesel-1/+6
Ferada-x11-properties
2019-10-29events: guard against NULL returns from imlib callsBen Boeckel-17/+21
This can happen with images that have ridiculous dimensions.
2019-10-11Allow setting the X11 class hint as an option.Olof-Joachim Frahm-1/+6
2019-07-22Use --no-fehbg in .fehbg commandlineDaniel Friesel-1/+1
This ensures that X11 layout or other changes do not affect the .fehbg contents, which are meant to only be updated when a --bg-option is used manually. Closes #482
2019-07-12Check stat for error before setting permissions.Tobias Stoeckmann-3/+4
When setting wallpapers without --no-fehbg option, a ~/.fehbg file is created. This file is set to be an executable for later re-use. Calling stat() without checking the return value can lead to issues. If the call fails, then s.st_mode is undefined and excessive permissions could be set to .fehbg, at worst even setuid/setgid bits for a world writable file. While adjusting this, I changed the code to use fstat() and fchmod() to avoid a further -- but very unlikely -- issue: race condition in form of TOCTOU. If the file ~/.fehsetbg is replaced by a symlink right before the chmod call, then a different file would be set executable + the default mode of the (newly created) file. I don't expect this to be a real world issue but changed this part "while at it" anyway for more robust code and a good example on how to handle files. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2019-07-08Merge branch 'geometry' of https://github.com/CrackedP0t/feh into ↵Daniel Friesel-1/+8
CrackedP0t-geometry
2019-07-08Fix lockup when receiving a signal and inotify is enabledDaniel Friesel-2/+2
That part slipped through while reviewing the PR...
2019-04-18inotify: Support files in current working directoryDaniel Friesel-0/+9
2019-04-18Gracefully handle inotify failuresDaniel Friesel-3/+4
2019-04-18print error string if an inotify operation failsDaniel Friesel-3/+3
2019-04-12Enable auto-reload by default (when compiled with inotify=1)Daniel Friesel-0/+6
2019-04-12Handle no-longer-valid files in inotify-based auto-reloadDaniel Friesel-2/+2
2019-04-12Merge branch 'master' of https://github.com/swillner/feh into swillner-masterDaniel Friesel-5/+154
2019-04-05Correctly round human-readable file sizeDaniel Friesel-3/+3
Closes #463
2019-04-01Merge remote-tracking branch 'original/master'Sven Willner-291/+238
2019-03-26Make SIGUSR1 / SIGUSR2 relaod the current image in single-file slideshowsDaniel Friesel-4/+9
2019-03-14Get geometry after mappingElaina Martineau-0/+2
2019-03-14Get actual geometry from Xlib after resizeElaina Martineau-1/+6
2019-02-14Do not omit filenames in ~/.fehbg when using --no-xinerama (#456)Daniel Friesel-1/+1
2019-02-11remove debug printf3.1.2Daniel Friesel-1/+0
2019-02-11Unset "draw info" flag when encountering --info ';whatever'Daniel Friesel-2/+4
Otherwise, several --info switches will not properly override each other
2019-02-11Unset "start paused" flag on positive slideshow delayDaniel Friesel-0/+2
This fixes "feh -D -1 -D 1" and similar starting the slideshow in paused mode even though the last -D option specifies autostart.
2019-02-08Fix ~/.fehbg creation when using --randomize or directory argumentsDaniel Friesel-9/+10
Closes #456 Note that --randomize and directory names are not saved in fehbg. It only contains the command line needed to recreate the wallpaper setup which resulted from its invocation, i.e., after randomization etc. have been applied. This is intentional.
2019-02-01Remove dead codeDaniel Friesel-2/+0
closes #458
2019-01-21Update "src/signals.h"guraga-1/+1
Use "extern volatile" instead of "volatile extern" to avoid "gcc" warning "'extern' is not at beginning of declaration [-Wold-style-declaration]".