diff options
author | Antti Korpi <an@cyan.io> | 2017-07-13 01:15:51 +0100 |
---|---|---|
committer | Bert Münnich <ber.t@posteo.de> | 2017-09-08 22:04:44 +0200 |
commit | ecc363ec10dec864dd2c956b478549ff235fb3d6 (patch) | |
tree | 8aadf336f60d6c7e54fee3351ad23122e53821b8 | |
parent | 20009c240bb7d22d9b7844c0868d21f34e2fbd2d (diff) |
Add -p flag to disable writing of cache and temporary files
Closes #285.
-rw-r--r-- | options.c | 8 | ||||
-rw-r--r-- | options.h | 1 | ||||
-rw-r--r-- | sxiv.1 | 5 | ||||
-rw-r--r-- | thumbs.c | 6 |
4 files changed, 16 insertions, 4 deletions
@@ -32,7 +32,7 @@ const options_t *options = (const options_t*) &_options; void print_usage(void) { - printf("usage: sxiv [-abcfhioqrtvZ] [-A FRAMERATE] [-e WID] [-G GAMMA] " + printf("usage: sxiv [-abcfhiopqrtvZ] [-A FRAMERATE] [-e WID] [-G GAMMA] " "[-g GEOMETRY] [-N NAME] [-n NUM] [-S DELAY] [-s MODE] [-z ZOOM] " "FILES...\n"); } @@ -72,8 +72,9 @@ void parse_options(int argc, char **argv) _options.quiet = false; _options.thumb_mode = false; _options.clean_cache = false; + _options.private_mode = false; - while ((opt = getopt(argc, argv, "A:abce:fG:g:hin:N:oqrS:s:tvZz:")) != -1) { + while ((opt = getopt(argc, argv, "A:abce:fG:g:hin:N:opqrS:s:tvZz:")) != -1) { switch (opt) { case '?': print_usage(); @@ -129,6 +130,9 @@ void parse_options(int argc, char **argv) case 'o': _options.to_stdout = true; break; + case 'p': + _options.private_mode = true; + break; case 'q': _options.quiet = true; break; @@ -50,6 +50,7 @@ typedef struct { bool quiet; bool thumb_mode; bool clean_cache; + bool private_mode; } options_t; extern const options_t *options; @@ -3,7 +3,7 @@ sxiv \- Simple X Image Viewer .SH SYNOPSIS .B sxiv -.RB [ \-abcfhioqrtvZ ] +.RB [ \-abcfhiopqrtvZ ] .RB [ \-A .IR FRAMERATE ] .RB [ \-e @@ -80,6 +80,9 @@ with .B \-i sxiv can be used as a visual filter/pipe. .TP +.B \-p +Enable private mode, in which sxiv does not write any cache or temporary files. +.TP .B \-q Be quiet, disable warnings to standard error stream. .TP @@ -25,6 +25,7 @@ #include <unistd.h> #include <utime.h> +#include "options.h" #include "thumbs.h" #include "util.h" @@ -83,6 +84,9 @@ void tns_cache_write(Imlib_Image im, const char *filepath, bool force) struct utimbuf times; Imlib_Load_Error err = 0; + if (options->private_mode) + return; + if (stat(filepath, &fstats) < 0) return; @@ -270,7 +274,7 @@ bool tns_load(tns_t *tns, int n, bool force, bool cache_only) cache_hit = true; } #if HAVE_LIBEXIF - } else if (!force) { + } else if (!force && !options->private_mode) { int pw = 0, ph = 0, w, h, x = 0, y = 0; bool err; float zw, zh; |