# csv2gph.awk version 4 by Ben Collver
# Convert CSV file to gopher map, emitting items for links found.
# Assumes first line of CSV is a header with field names.
# print_wrap() will break long lines into line continuations
function print_wrap(str, len) {
line = 1
buf = str
while (length(buf) > len) {
chunk = substr(buf, 1, len)
if (match(chunk, / [^ ]*$/)) {
before = substr(buf, 1, RSTART-1)
after = substr(buf, RSTART+1)
print " " before
buf = after
} else if (match(chunk, /-[^-]*$/)) {
before = substr(buf, 1, RSTART)
after = substr(buf, RSTART+1)
print " " before
buf = after
} else {
break
}
line++
}
print " " buf
}
function uri_encode(value, retval) {
retval = value
# do not double-encode value
if (retval !~ /%/) {
# URI encode a few choice characters
gsub(/ /, "%20", retval)
gsub(/&/, "%26", retval)
gsub(/=/, "%3D", retval)
gsub(/?/, "%3F", retval)
}
return retval
}