Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
On certain platforms [0] a char may be unsigned [1]. The loop for
getopt would loop forever because:
(char)-1 => 255 and 255 != -1
A signed char also worked. I don't know what that would mean for
performance or portability. int feels simpler to me.
[0]: I'm using Arch Linux ARM on the Samsung Chromebook 2, which is
armv7h. Not sure about other ARM platforms. With this fix, imv
appears to work correctly.
details: https://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook-2
[1]: http://stackoverflow.com/questions/2054939/is-char-signed-or-unsigned-by-default#2054941
|
|
|
|
When the user hits left/right to change image, the time left until the
slideshow changes images is reset. If the user changes image by closing
the current image, the timer is not reset. This patch resolves that.
|
|
It is actually a trivial task for strtoul + some bit shifting, so there is no
need for two separate functions.
|
|
This prevents imv from trying to "catch up" on the time that it was
asleep for by playing the gif back at high speed.
|
|
|
|
In case of error return non-zero value instead of cleaning up navigator. This
way main loop may do some more cleanup, or maybe even act differently.
|
|
Set "last_time" to current time at declaration time, so that it holds at least
something by the time it is used.
|
|
This allows to drop extra printing steps and memory allocations.
|
|
This change effectively backs out f1737ddd06141afbe99f37af3b5c2d0f1df5fe7a,
implementing the same functionality in a simpler and more correct way.
Implementation details:
* imv_navigator.wrapped - a new field that has value "0" by default; once
navigator wraps around the list, this field recieves value "1".
* imv_navigator_wrapped(&nav) - a new function that returns non-zero value iff
navigator wrapped around the list. Currently just returns value of
imv_navigator.wrapped.
While at it, expanded "test_navigator_remove" and merged it with
"test_navigator_add". Resulting test is called "test_navigator_add_remove".
Fixes #94.
|
|
|
|
|
|
For the following actions:
* reset scaling ('s'),
* redraw ('r'),
* scale to actual size ('a'),
* center image ('c'),
* remove selection ('x'),
* toggle fullscreen ('f'),
* toggle playing (space),
* print selection ('p'),
* toggle overlay ('d')
repeating action when key is held does not make sense. After acting upon these
events ignore them until key is released or another key is pressed.
|
|
Key handling code obuses the fact that plus sign is shifted key for equals sign
on US keyboard. Add '+' as a control for layouts where this is not the case.
|
|
|
|
This reduces delay before initial draw in case of slow input, opening
possibilities for use cases like:
$ curl -Osw "%{filename_effective}\n" "http://www.example.com/[1-10].jpg"
which will download all images and start showing them once first arrives.
|
|
|
|
|
|
* Add new switches: "-S" to force (default) "perfect fit" mode and "-s" to force
"best fit" mode.
* Add new control key: "s" to switch scaling mode.
|
|
|
|
|
|
This commit changes processing of arguments:
* When called without arguments (with or without flags), imv reads list of files
from standard input.
* When called with "-" among arguments, read image data from standard input.
|
|
|
|
|
|
Add 8-bit variable that is passed to imv_navigator_poll_changed(). Decrement it
on each run of main loop. When it gets to 0, call stat(2).
|
|
Accept slideshow timeout expressed as fractional numbers. It is intentionally
lax, so that arguments like ".1" or "5." are accepted and give no surprises.
|
|
|
|
|
|
Makes file monitoring in imv completely POSIX.
|
|
The default options block was getting quite ridiculous to try and read.
Let's improve the readability.
|
|
Use default font
|
|
|
|
"Monospace" is a font name reserved for default monospace font, which is
supposed to be set to particular font user prefers.
|
|
At least on OpenBSD stdin, stdout and stderr are macros, and thus they are
expanded before compilation.
|
|
fixes #40
|
|
fixes #37
|
|
Closes #8.
|
|
|
|
|
|
|
|
fixes #43
|
|
|
|
|