aboutsummaryrefslogtreecommitdiff
path: root/thumbs.c
Commit message (Collapse)AuthorAgeFilesLines
* mark functions and vars as static (#146)N-R-K2021-11-201-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | the goal here to mark functions and variables not used outside the translation unit as static. main reason for this is cleanliness. however as a side-effect this can help compilers optimize better as it now has guarantee that a certain function won't be called outside of that translation unit. one other side-effect of this is that accessing these vars/function from config.h is now different. if one wants to access a static var/func from different translation unit in config.h, he would have to create a wrapper function under the right ifdef. for static functions one would also need to forward declare it. here's a dummy example of accessing the function `run_key_handler` from config.h under _MAPPINGS_CONFIG ``` static void run_key_handler(const char *, unsigned); bool send_with_ctrl(arg_t key) { run_key_handler(XKeysymToString(key), ControlMask); return false; } ```
* code-style: general cleanups (#137)N-R-K2021-10-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tns_clean_cache: remove unused function arg * remove malloc casting * improve consistency use sizeof(T) at the end * avoid comparing integers of different signedness * use Window type for embed and parent * remove unnecessary comparisons * remove cpp style comments * improve consistency: remove comma from the end of enumerator list * Removed useless _IMAGE_CONFIG defines * consistency: use the same order as snprintf * Resolve c89 warnings Co-authored-by: uidops <uidops@protonmail.com> Co-authored-by: Arthur Williams <taaparthur@gmail.com>
* update copyright notice (#139)eylles2021-10-281-1/+2
|
* Fix behaviour when TrueColor / 24 bit depth is not available (#114)miseran2021-10-111-4/+4
| | | | | | | | | | | | | * Fix regression introduced in c7ca547 which made nsxiv not start in non-TrueColor X server. * Introduce a new fix for embedding into tabbed-alpha. * Fixes a visual glitch from original sxiv when drawing transparent images in 8 bit depth. In 8 bit PseudoColor, `.pixel` is just an index into the 256 defined colors and thus trying to extract rgb bits from it would result in visual glitch. The values `.color.red` on the other hand and so on are always integers between 0 and 0xFFFF representing the color as expected. * Use XColor for win_bg/fg and mrk_fg Co-authored-by: NRK <nrk@disroot.org>
* code-style: fix consistency issues all over the codebase (#94)Berke Kocaoğlu2021-10-111-4/+2
| | | | | | | | | | | | | | | * remove duplicate comment * remove empty tabs and blank lines * move macros and globals ontop * comment to seprate function implementation * fix alignment * switch to *argv[] similar to other suckless code * kill all empty last lines * append comment to endif * reuse existing ARRLEN macro * comment fall through * use while (true) everywhere Co-authored-by: NRK <nrk@disroot.org>
* Make statusbar optional (#95)Arthur Williams2021-10-101-3/+3
| | | | | | | | libXft and libfontconfig are now optional dependencies which can be disabled via `HAVE_LIBFONTS=0`. Disabling them means disabling the statusbar. This also does not search for freetype2 header if disabled. Co-authored-by: NRK <nrk@disroot.org>
* fix: crashing on bad exif thumbnail (#75)N-R-K2021-09-291-1/+1
| | | | | | | | | this does not need to be a fatal error. if im is NULL we're going to load it with imlib2 anyways. one other problem this solves is that before, due to the fatal error, the tmpfile opened under /tmp wouldn't get cleaned up. Closes: https://github.com/nsxiv/nsxiv/issues/69
* add .mark.foreground to XresourcesNRK2021-09-171-1/+1
| | | | | since we're already allowing both window and bar colors to be customizable, it doesn't make sense to not allow so for mark color.
* Rename, Update Docs and Prepare for Release (#9)Berke Kocaoğlu2021-09-161-8/+9
| | | | | | | Co-authored-by: Guilherme Rugai Freire <41879254+GRFreire@users.noreply.github.com> Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com> Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Arthur Williams <taaparthur@gmail.com> Co-authored-by: eylles <ed.ylles1997@gmail.com>
* set title based on prefix and suffix (#23)qsmodo2021-09-161-0/+2
| | | | | | Co-authored-by: Guilherme Rugai Freire <41879254+GRFreire@users.noreply.github.com> Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* Custom bar colors (#10)Guilherme Freire2021-09-161-3/+3
| | | | | | | | | * set bar and text colors independently * change xresources to Program.class.resource * rename color variables to win/bar_bg/fg * change default bar colors to match window colors
* Use normal win colors in fullscreen modeBert Münnich2019-07-161-8/+3
| | | | Fixes issues #361 and #367
* Fix comparison broken by signednessBert Münnich2019-03-151-16/+17
| | | | Warning generated on MacOS, reported in issue #350.
* Align compile-time color options with X resource colorsBert Münnich2019-01-231-4/+4
| | | | Two colors are more than enough!
* Respect updated path format when cleaning cacheKacper Gutowski2018-07-301-11/+2
| | | | | | Since d8114e8 the file name is used for caching as-is without adding .jpg at the end, but sxiv -c still expected old format causing it to remove all fresh thumbnails.
* Don't skip dot files when cleaning cacheKacper Gutowski2018-07-301-1/+1
|
* Reject text files resembling TGA imagesBert Münnich2017-11-231-8/+2
| | | | | | | | | | | | | | | | | | | Fixes issue #295 The imlib2 TGA loader returns an imlib image handle without any actual data when given a text file like this: T Content-Type: application/javascript Content-Length: 3836 Last-Modified: Wed, 23 Sep 2015 12:25:47 GMT Etag: "56029a4b-efc" Expires: Sat, 20 Aug 2016 15:14:33 GMT Cache-Control: max-age=604800, public Accept-Ranges: bytes Fortunately, `imlib_image_get_data()` returns NULL in this case, so that we can use it as an additional check when opening files.
* One header file for type definitions and function declarationsBert Münnich2017-10-161-8/+4
|
* Add -p flag to disable writing of cache and temporary filesAntti Korpi2017-09-081-1/+5
| | | | Closes #285.
* Fix unused-variable warnings in conditionally compiled codeBert Münnich2016-12-281-3/+2
|
* Only open regular files; fixes issue #252Bert Münnich2016-10-201-6/+10
|
* Allow opening directories non-recursivelyParide Legovini2016-09-281-1/+1
|
* Use Xft for font loading and text drawingBert Münnich2016-08-061-4/+4
|
* Build-time option for default thumbnail size; fixes issue #207Bert Münnich2015-12-201-2/+2
|
* Simplified r_mkdir()Bert Münnich2015-10-281-1/+2
|
* Revised error handlingBert Münnich2015-10-281-7/+8
| | | | | | | - Functions warn() and die() replaced by GNU-like error(3) function - Register cleanup() with atexit(3) - Functions called by cleanup() are marked with CLEANUP and are not allowed to call exit(3)
* Prefix safe allocation functions with 'e' instead of 's_'Bert Münnich2015-10-281-3/+3
|
* Removed feature test macro definitions from source filesBert Münnich2015-10-281-3/+2
|
* Removed overcautious parameter checksBert Münnich2015-10-281-37/+1
|
* Thumbnail cache file format depending on existance of alpha layerBert Münnich2015-07-221-4/+8
| | | | Use PNG if image has alpha layer, JPG if not. Fixes issue #209
* Cache out of view thumbnails in the backgroundBert Münnich2015-01-041-10/+22
|
* Use bit-field for boolean flags in fileinfo structBert Münnich2015-01-041-3/+3
|
* Enforced thumbnail reloading after key handlerBert Münnich2014-11-271-1/+1
|
* Limit thumbnail selection border width to 4pxBert Münnich2014-11-271-0/+1
|
* Do not cache thumbnails, which are smaller than the maximum sizeBert Münnich2014-10-311-12/+22
|
* Discard cached & EXIF thumbnails, which are smaller than the configured ↵Bert Münnich2014-10-311-12/+21
| | | | maximum size
* Fixed leakage of resources allocated by EXIF libraryBert Münnich2014-10-311-4/+4
|
* Fixed segfault when run with -cBert Münnich2014-10-291-1/+1
|
* Do not print could-not-open-warnings for files found by directory traversalBert Münnich2014-10-241-1/+2
|
* Unified file count variable for image & thumbnail modeBert Münnich2014-09-301-21/+22
|
* Set JPEG quality for thumbnail cache filesBert Münnich2014-09-291-0/+1
|
* Fixed thumbnail creation for files with big aspect ratio factor; fixes issue ↵Bert Münnich2014-09-291-1/+2
| | | | #175
* Scale thumbnail selection border width with thumbnail sizeBert Münnich2014-09-291-7/+10
|
* Moved thumbnail sizes array to config.def.hBert Münnich2014-09-291-7/+7
|
* Refactored thumbnail size dependent calculationsBert Münnich2014-09-291-11/+13
|
* Added thumbnail zooming...Bert Münnich2014-09-281-36/+68
| | | | | | - Key mappings +/- are now general commands - Use JPG as thumbnail cache file format instead of PNG - Fixes issue #161
* Changed image mark in thumbnail view to small rectangleBert Münnich2014-09-271-4/+3
|
* Revised thumbnail loading...Bert Münnich2014-09-261-20/+52
| | | | | | | - Only load the thumbnails that are currently visible in the window - Unload thumbnails that are leaving the visible area - Much less memory needed, but scrolling is now slower - This also unintentionally fixes issue #86
* Bug #165: Deletion of unnecessary null pointer checksMarkus Elfring2014-08-221-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function "free" performs input parameter validation. http://pubs.opengroup.org/onlinepubs/9699919799/functions/free.html It is therefore not needed to check a passed pointer before this function call. A corresponding update suggestion was generated by the software "Coccinelle" from the following semantic patch approach. http://coccinelle.lip6.fr/ @Remove_unnecessary_pointer_checks1@ expression x; @@ -if (x != \(0 \| NULL\)) free(x); @Remove_unnecessary_pointer_checks2@ expression x; @@ -if (x != \(0 \| NULL\)) { free(x); x = \(0 \| NULL\); -} @Remove_unnecessary_pointer_checks3@ expression a, b; @@ -if (a != \(0 \| NULL\) && b != \(0 \| NULL\)) +if (a) free(b); @Remove_unnecessary_pointer_checks4@ expression a, b; @@ -if (a != \(0 \| NULL\) && b != \(0 \| NULL\)) { +if (a) { free(b); b = \(0 \| NULL\); } Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
* Beautified thumbnail marks and selection borderBert Münnich2014-08-181-14/+12
|