Move awk(1)-dependent recipes to the bottom
This commit is contained in:
parent
5a5c0e7cfe
commit
279666ea90
@ -229,120 +229,6 @@ f_vsnprintf()
|
||||
eval f_snprintf \"\$1\" \"\$2\" \"\$3\" $4
|
||||
}
|
||||
|
||||
# f_longest_line_length
|
||||
#
|
||||
# Simple wrapper to an awk(1) script to print the length of the longest line of
|
||||
# input (read from stdin). Supports the newline escape-sequence `\n' for
|
||||
# splitting a single line into multiple lines.
|
||||
#
|
||||
f_longest_line_length_awk='
|
||||
BEGIN { longest = 0 }
|
||||
{
|
||||
if (split($0, lines, /\\n/) > 1)
|
||||
{
|
||||
for (n in lines)
|
||||
{
|
||||
len = length(lines[n])
|
||||
longest = ( len > longest ? len : longest )
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
len = length($0)
|
||||
longest = ( len > longest ? len : longest )
|
||||
}
|
||||
}
|
||||
END { print longest }
|
||||
'
|
||||
f_longest_line_length()
|
||||
{
|
||||
awk "$f_longest_line_length_awk"
|
||||
}
|
||||
|
||||
# f_number_of_lines
|
||||
#
|
||||
# Simple wrapper to an awk(1) script to print the number of lines read from
|
||||
# stdin. Supports newline escape-sequence `\n' for splitting a single line into
|
||||
# multiple lines.
|
||||
#
|
||||
f_number_of_lines_awk='
|
||||
BEGIN { num_lines = 0 }
|
||||
{
|
||||
num_lines += split(" "$0, unused, /\\n/)
|
||||
}
|
||||
END { print num_lines }
|
||||
'
|
||||
f_number_of_lines()
|
||||
{
|
||||
awk "$f_number_of_lines_awk"
|
||||
}
|
||||
|
||||
# f_uriencode [$text]
|
||||
#
|
||||
# Encode $text for the purpose of embedding safely into a URL. Non-alphanumeric
|
||||
# characters are converted to `%XX' sequence where XX represents the hexa-
|
||||
# decimal ordinal of the non-alphanumeric character. If $text is missing, data
|
||||
# is instead read from standard input.
|
||||
#
|
||||
f_uriencode_awk='
|
||||
BEGIN {
|
||||
output = ""
|
||||
for (n = 0; n < 256; n++) pack[sprintf("%c", n)] = sprintf("%%%02x", n)
|
||||
}
|
||||
{
|
||||
sline = ""
|
||||
slen = length($0)
|
||||
for (n = 1; n <= slen; n++) {
|
||||
char = substr($0, n, 1)
|
||||
if ( char !~ /^[[:alnum:]_]$/ ) char = pack[char]
|
||||
sline = sline char
|
||||
}
|
||||
output = output ( output ? "%0a" : "" ) sline
|
||||
}
|
||||
END { print output }
|
||||
'
|
||||
f_uriencode()
|
||||
{
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "$1" | awk "$f_uriencode_awk"
|
||||
else
|
||||
awk "$f_uriencode_awk"
|
||||
fi
|
||||
}
|
||||
|
||||
# f_uridecode [$text]
|
||||
#
|
||||
# Decode $text from a URI. Encoded characters are converted from their `%XX'
|
||||
# sequence into original unencoded ASCII sequences. If $text is missing, data
|
||||
# is instead read from standard input.
|
||||
#
|
||||
f_uridecode_awk='
|
||||
BEGIN { for (n = 0; n < 256; n++) chr[n] = sprintf("%c", n) }
|
||||
{
|
||||
sline = ""
|
||||
slen = length($0)
|
||||
for (n = 1; n <= slen; n++)
|
||||
{
|
||||
seq = substr($0, n, 3)
|
||||
if ( seq ~ /^%[[:xdigit:]][[:xdigit:]]$/ ) {
|
||||
hex = substr(seq, 2, 2)
|
||||
sline = sline chr[sprintf("%u", "0x"hex)]
|
||||
n += 2
|
||||
} else
|
||||
sline = sline substr(seq, 1, 1)
|
||||
}
|
||||
print sline
|
||||
}
|
||||
'
|
||||
f_uridecode()
|
||||
{
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "$1" | awk "$f_uridecode_awk"
|
||||
else
|
||||
awk "$f_uridecode_awk"
|
||||
fi
|
||||
}
|
||||
|
||||
# f_replaceall $string $find $replace [$var_to_set]
|
||||
#
|
||||
# Replace all occurrences of $find in $string with $replace. If $var_to_set is
|
||||
@ -526,6 +412,120 @@ f_expand_number()
|
||||
fi
|
||||
}
|
||||
|
||||
# f_longest_line_length
|
||||
#
|
||||
# Simple wrapper to an awk(1) script to print the length of the longest line of
|
||||
# input (read from stdin). Supports the newline escape-sequence `\n' for
|
||||
# splitting a single line into multiple lines.
|
||||
#
|
||||
f_longest_line_length_awk='
|
||||
BEGIN { longest = 0 }
|
||||
{
|
||||
if (split($0, lines, /\\n/) > 1)
|
||||
{
|
||||
for (n in lines)
|
||||
{
|
||||
len = length(lines[n])
|
||||
longest = ( len > longest ? len : longest )
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
len = length($0)
|
||||
longest = ( len > longest ? len : longest )
|
||||
}
|
||||
}
|
||||
END { print longest }
|
||||
'
|
||||
f_longest_line_length()
|
||||
{
|
||||
awk "$f_longest_line_length_awk"
|
||||
}
|
||||
|
||||
# f_number_of_lines
|
||||
#
|
||||
# Simple wrapper to an awk(1) script to print the number of lines read from
|
||||
# stdin. Supports newline escape-sequence `\n' for splitting a single line into
|
||||
# multiple lines.
|
||||
#
|
||||
f_number_of_lines_awk='
|
||||
BEGIN { num_lines = 0 }
|
||||
{
|
||||
num_lines += split(" "$0, unused, /\\n/)
|
||||
}
|
||||
END { print num_lines }
|
||||
'
|
||||
f_number_of_lines()
|
||||
{
|
||||
awk "$f_number_of_lines_awk"
|
||||
}
|
||||
|
||||
# f_uriencode [$text]
|
||||
#
|
||||
# Encode $text for the purpose of embedding safely into a URL. Non-alphanumeric
|
||||
# characters are converted to `%XX' sequence where XX represents the hexa-
|
||||
# decimal ordinal of the non-alphanumeric character. If $text is missing, data
|
||||
# is instead read from standard input.
|
||||
#
|
||||
f_uriencode_awk='
|
||||
BEGIN {
|
||||
output = ""
|
||||
for (n = 0; n < 256; n++) pack[sprintf("%c", n)] = sprintf("%%%02x", n)
|
||||
}
|
||||
{
|
||||
sline = ""
|
||||
slen = length($0)
|
||||
for (n = 1; n <= slen; n++) {
|
||||
char = substr($0, n, 1)
|
||||
if ( char !~ /^[[:alnum:]_]$/ ) char = pack[char]
|
||||
sline = sline char
|
||||
}
|
||||
output = output ( output ? "%0a" : "" ) sline
|
||||
}
|
||||
END { print output }
|
||||
'
|
||||
f_uriencode()
|
||||
{
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "$1" | awk "$f_uriencode_awk"
|
||||
else
|
||||
awk "$f_uriencode_awk"
|
||||
fi
|
||||
}
|
||||
|
||||
# f_uridecode [$text]
|
||||
#
|
||||
# Decode $text from a URI. Encoded characters are converted from their `%XX'
|
||||
# sequence into original unencoded ASCII sequences. If $text is missing, data
|
||||
# is instead read from standard input.
|
||||
#
|
||||
f_uridecode_awk='
|
||||
BEGIN { for (n = 0; n < 256; n++) chr[n] = sprintf("%c", n) }
|
||||
{
|
||||
sline = ""
|
||||
slen = length($0)
|
||||
for (n = 1; n <= slen; n++)
|
||||
{
|
||||
seq = substr($0, n, 3)
|
||||
if ( seq ~ /^%[[:xdigit:]][[:xdigit:]]$/ ) {
|
||||
hex = substr(seq, 2, 2)
|
||||
sline = sline chr[sprintf("%u", "0x"hex)]
|
||||
n += 2
|
||||
} else
|
||||
sline = sline substr(seq, 1, 1)
|
||||
}
|
||||
print sline
|
||||
}
|
||||
'
|
||||
f_uridecode()
|
||||
{
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "$1" | awk "$f_uridecode_awk"
|
||||
else
|
||||
awk "$f_uridecode_awk"
|
||||
fi
|
||||
}
|
||||
|
||||
############################################################ MAIN
|
||||
|
||||
f_dprintf "%s: Successfully loaded." strings.subr
|
||||
|
Loading…
Reference in New Issue
Block a user