From: umbraticus@prosimetrum.com To: 9front@9front.org Subject: [9front] sam = cmd Date: Sat, 16 Apr 2022 17:49:19 +1200 [thread overview] Message-ID: <6F48EC649501E9AB2002E81BA73801AE@prosimetrum.com> (raw) 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 =#. I don't really see how one even could depend on the original format (maybe some complicated sam -d script?) but am open to thoughts & opinions. umbraticus diff f84cf1e60427675514fb056cc1723e45da01e043 uncommitted --- a/sys/man/1/sam +++ b/sys/man/1/sam @@ -403,10 +403,10 @@ Set dot. .TP .B = -Print the line address and character address of the range. +Print the file name and line address of the range. .TP .B =# -Print just the character address of the range. +Print the file name and character address of the range. .PD .SS File commands .PD 0 --- a/sys/src/cmd/sam/sam.c +++ b/sys/src/cmd/sam/sam.c @@ -688,11 +688,25 @@ } void -printposn(File *f, int charsonly) +printposn(File *f, int chars) { Posn l1, l2; + char *s; - if(!charsonly){ + 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 +715,7 @@ 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"); }
next reply other threads:[~2022-04-16 5:52 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-16 5:49 umbraticus [this message] 2022-04-16 6:53 ` umbraticus 2022-04-27 23:41 ` qwx 2022-04-16 14:42 ` Philip Silva 2022-04-16 18:22 ` ori 2022-04-16 20:58 ` Steve Simon 2022-04-27 1:05 ` qwx
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=6F48EC649501E9AB2002E81BA73801AE@prosimetrum.com \ --to=umbraticus@prosimetrum.com \ --cc=9front@9front.org \ --subject='Re: [9front] sam = cmd' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).