From e682ade2e9b491a7abe3bc1ba8cdda9c0b2460f5 Mon Sep 17 00:00:00 2001 From: Özgür Kesim Date: Sun, 8 Dec 2024 23:06:58 +0100 Subject: substitute location in error output with acme addr --- uncrust.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/uncrust.go b/uncrust.go index 456db8a..2beef5d 100644 --- a/uncrust.go +++ b/uncrust.go @@ -7,6 +7,8 @@ import ( "log" "os" "os/exec" + "path/filepath" + "regexp" "strconv" "strings" @@ -17,6 +19,8 @@ import ( var ( fl_lang = flag.String("l", "C", "Language") fl_verbose = flag.Bool("v", false, "Verbosity on") + + pos_rx = regexp.MustCompile(`File: stdin, orig line is ([\d]+), orig col is ([\d])`) ) func main() { @@ -54,7 +58,9 @@ func main() { if _, ok := e.(*exec.ExitError); ok { str := stderr.String() if len(samfile) != 0 { + samfile = "./" + filepath.Base(samfile) str = strings.ReplaceAll(str, "stdin, open_line is ", samfile+":") + str = pos_rx.ReplaceAllString(str, fmt.Sprintf("%s:$1:#$2", samfile)) } log.Fatal("error: " + str) } @@ -87,11 +93,11 @@ func main() { } if len(edits) > 0 { - win.Write("ctl", []byte("mark")) - win.Write("ctl", []byte("nomark")) if *fl_verbose { log.Printf("Applying %d diffs:\n%s\n", len(edits), pretty(edits, samfile)) } + win.Write("ctl", []byte("mark")) + win.Write("ctl", []byte("nomark")) } for i := len(edits) - 1; i >= 0; i-- { -- cgit v1.2.3