Check-in by ben on 2025-11-12 15:55:27
Merge info_wrap() and print_wrap() into a single function wrap()
INSERTED DELETED
44 57 coprolit.awk
44 57 TOTAL over 1 changed file
Index: coprolit.awk
==================================================================
--- coprolit.awk
+++ coprolit.awk
@@ -177,11 +177,11 @@
file = sprintf("%s/patch/%s.txt", _work, commit)
printf "%s\n\n", type >file
if (length(comment) < 66) {
println(file, comment)
} else {
- print_wrap(file, comment, 65)
+ wrap("print", file, comment, 65)
}
printf "\n" >>file
close(file)
cmd = sprintf("fossil diff -v --checkin %s --numstat -R %s >>%s",
@@ -207,11 +207,11 @@
info(out, "")
if (length(comment) < 66) {
info(out, sprintf("Comment: %s", comment))
} else {
info(out, "Comment:")
- info_wrap(out, comment, 65)
+ wrap("info", out, comment, 65)
}
if (is_checkin && has_downloads) {
info(out, "")
info(out, "Downloads:")
slug = sprintf("%s/tarball/%s/%s-%s.tar.gz",
@@ -447,11 +447,11 @@
printf "Ticket Hash: %s\n", uuid >>out
if (length(title) < 66) {
printf "Title: %s\n", title >>out
} else {
printf "Title:\n" >>out
- print_wrap(out, title, 65)
+ wrap("print", out, title, 65)
}
printf "Status: %s\n", status >>out
printf "Type: %s\n", type >>out
printf "Severity: %s\n", severity >>out
printf "Priority: %s\n", priority >>out
@@ -529,11 +529,11 @@
info(out, "Status: " $field["status"])
if (length($field["title"]) < 61) {
info(out, "Title: " $field["title"])
} else {
info(out, "Title:")
- info_wrap(out, $field["title"], 65)
+ wrap("info", out, $field["title"], 65)
}
info(out, "")
generate_ticket(ticket,
$field["ctime"],
$field["foundin"],
@@ -742,36 +742,10 @@
printf "i%s\tErr\t%s\t%s\r\n", str, _server, _port >>out
}
return
}
-# info_wrap() will break long lines into line continuations
-
-function info_wrap(out, 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)
- info(out, " " before)
- buf = after
- } else if (match(chunk, /-[^-]*$/)) {
- before = substr(buf, 1, RSTART)
- after = substr(buf, RSTART+1)
- info(out, " " before)
- buf = after
- } else {
- break
- }
- line++
- }
- info(out, " " buf)
- return
-}
-
function item(out, type, label, sel, host, port, line) {
line = item_str(type, label, sel, host, port)
if (length(out) == 0) {
printf "%s\r\n", line
} else {
@@ -901,36 +875,10 @@
print str >>out
}
return
}
-# print_wrap() will break long lines into line continuations
-
-function print_wrap(out, 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)
- println(out, " " before)
- buf = after
- } else if (match(chunk, /-[^-]*$/)) {
- before = substr(buf, 1, RSTART)
- after = substr(buf, RSTART+1)
- println(out, " " before)
- buf = after
- } else {
- break
- }
- line++
- }
- println(out, " " buf)
- return
-}
-
function quit_if_uptodate(workdir, cmd, path) {
cmd = "fossil timeline -n 1 --oneline -R " _repo
if ((cmd | getline) > 0) {
path = workdir "/info/" $1
if (exists(path "/gophermap") || exists(path "/index.gph")) {
@@ -946,11 +894,11 @@
info(out, "")
info(out, "# Reference")
info(out, "")
for (i = 1; i <= refs["count"]; i++) {
if (length(refs[i]) > 65) {
- info_wrap(out, refs[i], 65)
+ wrap("info", out, refs[i], 65)
} else {
info(out, refs[i])
}
}
return
@@ -986,9 +934,48 @@
print "--timeline (default: 100)"
print " limit number of items in timeline, 0 = unlimited"
print ""
return
}
+
+# wrap() will break long lines into line continuations
+
+function wrap(which, out, 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)
+ if (which == "info") {
+ info(out, " " before)
+ } else {
+ println(out, " " before)
+ }
+ buf = after
+ } else if (match(chunk, /-[^-]*$/)) {
+ before = substr(buf, 1, RSTART)
+ after = substr(buf, RSTART+1)
+ if (which == "info") {
+ info(out, " " before)
+ } else {
+ println(out, " " before)
+ }
+ buf = after
+ } else {
+ break
+ }
+ line++
+ }
+ if (which == "info") {
+ info(out, " " buf)
+ } else {
+ println(out, " " buf)
+ }
+ return
+}
+
BEGIN {
main()
}