From d606d83ed85953a761f7e08ff3f18459d7b29c34 Mon Sep 17 00:00:00 2001 From: "umbraticus@prosimetrum.com" Date: Sat, 16 Apr 2022 06:53:35 +0000 Subject: make = command's output plumbable This patch makes sam's = cmd output what seems to me a more useful (plumbable) format: /full/path/to/file:addr , where addr is line(s) under = and rune(s) under =#. --- sys/src/cmd/sam/sam.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'sys/src/cmd/sam/sam.c') diff --git a/sys/src/cmd/sam/sam.c b/sys/src/cmd/sam/sam.c index d1b53c2ff..14370bdf4 100644 --- a/sys/src/cmd/sam/sam.c +++ b/sys/src/cmd/sam/sam.c @@ -688,11 +688,27 @@ nlcount(File *f, Posn p0, Posn p1) } void -printposn(File *f, int charsonly) +printposn(File *f, int chars) { Posn l1, l2; + char *s; - if(!charsonly){ + if(f->name.s[0]){ + if(f->name.s[0]!='/'){ + getcurwd(); + s = Strtoc(&curwd); + dprint("%s", s); + free(s); + } + s = Strtoc(&f->name); + dprint("%s:", s); + free(s); + } + if(chars){ + dprint("#%lud", addr.r.p1); + if(addr.r.p2 != addr.r.p1) + dprint(",#%lud", addr.r.p2); + }else{ l1 = 1+nlcount(f, (Posn)0, addr.r.p1); l2 = l1+nlcount(f, addr.r.p1, addr.r.p2); /* check if addr ends with '\n' */ @@ -701,11 +717,7 @@ printposn(File *f, int charsonly) dprint("%lud", l1); if(l2 != l1) dprint(",%lud", l2); - dprint("; "); } - dprint("#%lud", addr.r.p1); - if(addr.r.p2 != addr.r.p1) - dprint(",#%lud", addr.r.p2); dprint("\n"); } -- cgit v1.2.3