aboutsummaryrefslogtreecommitdiff
path: root/bin/u2d.sh
blob: 310303412759da3a82099aa2294fc4d2fedf1e47 (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
# Convert UNIX line endings to DOS ones

# Check arguments
if [ "$#" -eq 0 ] ; then
    printf >&2 'u2d: Need a filename\n'
    exit 2
fi

# Put a carriage return into a variable for convenience
r=$(printf '\r')

# Iterate over arguments and apply the same ed(1) script to each of them
for fn ; do

    # Note the heredoc WORD is intentionally unquoted because we want to expand
    # $r within it to get a literal carriage return; the escape characters
    # prescribed for ed(1) by POSIX are very limited
    ed -s -- "$fn" <<EOF || ex=1
,s/\$/$r/
w
EOF
done

# If any of the ed(1) commands failed, we should exit with 1
exit "${ex:-0}"