]> Sergey Matveev's repositories - nnn.git/commit
nuke: port sxiv-rifle performance improvement over
authorNRK <nrk@disroot.org>
Tue, 2 Nov 2021 04:01:32 +0000 (10:01 +0600)
committerNRK <nrk@disroot.org>
Tue, 2 Nov 2021 04:13:45 +0000 (10:13 +0600)
commit5e6c62cd8e123aa4c09a5cd3823fabc86b234e03
tree8cd1e80cfd1f8f630c6b157835a43b14be569ed5
parent473cd271b547beba896e887fc99bbb2ba63dfe9a
nuke: port sxiv-rifle performance improvement over

this commit is mostly porting over some recent performance improvements
from `sxiv-rifle`: https://github.com/ranger/ranger/pull/2411

there's one "bug-fix" in this commit. currently a file named "afilejpeg"
would be matched due to the `-iregex` in listimages. this commit changes
that so only extensions would match, so for example "afile.jpeg" would
match but not "afilejpeg".

As for performance, there's a couple things this commit does:

* store the result of listimages into a tmp file instead of calling that
  function twice, this is probably the biggest performance improvement.
  especially when loading large directories.

* abspath now sets the var abs_target instead of calling printf. since
  abspath is only called from load_dir, we can go one step further and
  inline it. but i haven't done that since the function might be useful
  later on.

* avoid call to dirname and use parameter subsitution instead inside
  `listimages`

* use grep instead of `-iregex`, it's POSIX compliant and can be faster.

i've tested this out with sxiv and everything seems to be working as
expected.
plugins/nuke