summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uncrust.go10
1 files 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-- {