aboutsummaryrefslogtreecommitdiff
path: root/pdksh/pdkshrc.d/ed.pdksh
blob: f64f6dc68fd4da51442c311d8b38959a572683ab (plain) (blame)
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
# Add a colon prompt to ed when a command is expected rather than text; makes
# it feel a lot more like using ex. Only do this when stdin is a terminal,
# however. Also try and use -v for more verbose error output, and rlwrap(1) if
# it's available.
ed() {

    # We're only adding options if input is from a terminal
    if [[ -t 0 ]] ; then

        # Colon prompt (POSIX)
        set -- -p : "$@"

        # Verbose if availble (not POSIX)
        if ed -sv - </dev/null >&0 2>&0 ; then
            set -- -v "$@"
        fi
    fi

    # Execute the ed(1) call, in a wrapper if appropriate and with the
    # concluded options
    if [[ -t 0 ]] && command -v rlwrap >/dev/null ; then
        command rlwrap ed "$@"
    else
        command ed "$@"
    fi
}