Sxiv: [рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз] рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЕрдХреНрддреВре░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: muennich/sxiv

рдЕрдЧрд░ рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдХреНрд▓рд┐рдХ рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рднреА рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░ рд╕рдХреВрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЙрдкрд╛рдп:
https://github.com/Parveshdhull/misc/tree/master/linux

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sxiv рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Google sxiv-rifle рдпрд╛ рдирд┐рдореНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

#!/bin/sh

if [ $# -ne 1 -o ! -f "$1" ]; then
    echo "usage: ${0##*/} FILE" >&2
    exit 1
fi

file -i "$(dirname "$1")"/* \
    | awk -F ': *' -v f="$1" '
        $2 ~ "^image" {
            files[cnt++] = $1;
            if ($1 == f)
                n = cnt;
        }
        END {
            for (i = 0; i < cnt; i++)
                print files[i] | "sxiv -i -n " n;
        }'

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ -n рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ "рдЗрдВрдбреЗрдХреНрд╕ рдирдВрдмрд░" рдХреЗ рдмрдЬрд╛рдп "рдлрд╝рд╛рдЗрд▓ рдирд╛рдо" рднреА рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЦреЛрд▓рдирд╛ред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк sxiv -n x.png *.png рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

diff --git a/options.c b/options.c
index de02407..b9ca468 100644
--- a/options.c
+++ b/options.c
@@ -45,6 +45,7 @@ void parse_options(int argc, char **argv)
    int n, opt;
    char *end, *s;
    const char *scalemodes = "dfwh";
+   char *opt_n = NULL;   /* -n (starting picture number) can be index or filename */

    progname = strrchr(argv[0], '/');
    progname = progname ? progname + 1 : argv[0];
@@ -117,10 +118,7 @@ void parse_options(int argc, char **argv)
                _options.from_stdin = true;
                break;
            case 'n':
-               n = strtol(optarg, &end, 0);
-               if (*end != '\0' || n <= 0)
-                   error(EXIT_FAILURE, 0, "Invalid argument for option -n: %s", optarg);
-               _options.startnum = n - 1;
+               opt_n = optarg;
                break;
            case 'N':
                _options.res_name = optarg;
@@ -172,6 +170,21 @@ void parse_options(int argc, char **argv)
    _options.filenames = argv + optind;
    _options.filecnt = argc - optind;

+   if (opt_n != NULL) {
+       for (n = 0; n < _options.filecnt; n++) {
+           if (strcmp(_options.filenames[n], opt_n) == 0)
+               break;
+       }
+       if (n < _options.filecnt) {
+           _options.startnum = n;
+       } else {
+           n = strtol(opt_n, &end, 0);
+           if (*end != '\0' || n <= 0)
+               error(EXIT_FAILURE, 0, "Invalid argument for option -n: %s", optarg);
+           _options.startnum = n - 1;
+       }
+   }
+
    if (_options.filecnt == 1 && STREQ(_options.filenames[0], "-")) {
        _options.filenames++;
        _options.filecnt--;

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрд╕ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ (https://github.com/muennich/sxiv/pull/371)ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЙрдкрд╛рдп:
https://github.com/Parveshdhull/misc/tree/master/linux

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕