summaryrefslogtreecommitdiff
path: root/completions/links
blob: e0c28e21339aa0101745f58819c6ebef916f926d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# bash completion for links                                -*- shell-script -*-

_links()
{
    local cur prev words cword
    _init_completion -n : || return

    case $prev in
        -html-t-text-color | -html-t-link-color)
            COMPREPLY=($(compgen -W '{0..15}' -- "$cur"))
            return
            ;;
        -http.fake-firefox | -html-[gt]-ignore-document-color)
            COMPREPLY=($(compgen -W '0 1' -- "$cur"))
            return
            ;;
        --help | -help | -mode | -display | -source | -dump | -width | -max-connections | \
            -max-connections-to-host | -retries | -receive-timeout | \
            -unrestartable-receive-timeout | -*-size | -*-proxy | \
            -append-text-to-dns-lookups | -ssl.client-cert-passwd | -http.fake-* | \
            -http.extra-header | -ftp.anonymous-passwd | -*-color | -*-gamma | \
            -bfu-aspect | -html-image-scale | -html-margin)
            return
            ;;
        -lookup)
            _known_hosts_real -- "$cur"
            return
            ;;
        -driver)
            local drivers=$("$1" -driver foo 2>&1 |
                command sed -ne '$!d' -e '/^[a-z0-9, ]\{1,\}$/s/,/ /gp')
            [[ $drivers ]] || drivers='x svgalib fb directfb pmshell atheos'
            COMPREPLY=($(compgen -W "$drivers" -- "$cur"))
            return
            ;;
        -codepage | -bookmarks-codepage | -http-assume-codepage)
            _xfunc iconv _iconv_charsets
            return
            ;;
        -download-dir)
            _filedir -d
            return
            ;;
        -bind-address)
            _ip_addresses
            return
            ;;
        -bind-address-ipv6)
            _ip_addresses -6
            __ltrim_colon_completions "$cur"
            return
            ;;
        -async-dns | -download-utime | -aggressive-cache | -only-proxies | \
            -http-bugs.* | -http.do-not-track | -ftp.use-* | -ftp.fast | -ftp.set-iptos | \
            -smb.allow-hyperlinks-to-smb | -save-url-history | -dither-letters | \
            -dither-images | -overwrite-instead-of-scroll | -html-*)
            COMPREPLY=($(compgen -W '0 1' -- "$cur"))
            return
            ;;
        -address-preference | -http.referer)
            COMPREPLY=($(compgen -W '{0..4}' -- "$cur"))
            return
            ;;
        -ssl-certificates | -display-optimize | -gamma-correction)
            COMPREPLY=($(compgen -W '{0..2}' -- "$cur"))
            return
            ;;
        -ssl.client-cert-key)
            _filedir '@(key|pem)'
            return
            ;;
        -ssl.client-cert-crt)
            _filedir '@(c?(e)rt|cer|pem|der)'
            return
            ;;
        -bookmarks-file)
            _filedir html
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W '$(_parse_help "$1" |
            command grep -vF -- "->")' -- "$cur"))
        return
    fi

    local dir
    for dir in .links .links2; do
        if [[ -r ~/$dir/links.his ]]; then
            COMPREPLY+=($(compgen -W '$(cat ~/$dir/links.his)' -- "$cur"))
            __ltrim_colon_completions "$cur"
        fi
    done
    _filedir '@(htm|html)'

} &&
    complete -F _links links links2

# ex: filetype=sh