diff options
author | Özgür Kesim <oec@codeblau.de> | 2024-12-08 23:06:58 +0100 |
---|---|---|
committer | Özgür Kesim <oec@codeblau.de> | 2024-12-08 23:06:58 +0100 |
commit | e682ade2e9b491a7abe3bc1ba8cdda9c0b2460f5 (patch) | |
tree | 5e4c9b1812f6e2c35e1db81424b3da013ebeebae | |
parent | fc558d99f29c5333dd0b26428e48ec2b61d640ec (diff) |
substitute location in error output with acme addr
-rw-r--r-- | uncrust.go | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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-- { |