diff options
| author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2025-10-15 19:46:13 +0200 |
|---|---|---|
| committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2025-10-15 19:46:13 +0200 |
| commit | 184526f3bf90e2948b1d09b9da58d66814181f4d (patch) | |
| tree | d39614e3e29fb89594d1dc52ef07805bc754c4c7 /sam/acid.lib | |
| parent | fd41e6cc88f98121db5c64a0693e4169962f6c2c (diff) | |
Import sam and samterm sources
Diffstat (limited to 'sam/acid.lib')
| -rw-r--r-- | sam/acid.lib | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/sam/acid.lib b/sam/acid.lib new file mode 100644 index 0000000..341f345 --- /dev/null +++ b/sam/acid.lib @@ -0,0 +1,104 @@ +defn saminit() +{ + if !access("/sys/src/cmd/sam/cmd.acid") then + rc("cd /sys/src/cmd/sam && mk cmd.acid"); + include("/sys/src/cmd/sam/cmd.acid"); +} + +defn printrunestring(addr, len) +{ + loop 1,len do { + print(*(addr\r)); + addr = addr+2; + } +} + +defn runestring(addr, len) +{ + local s; + + s = ""; + loop 1,len do { + s = s + *(addr\r); + addr = addr+2; + } + return s; +} + +defn string(s) +{ + complex String s; + return runestring(s.s, s.n); +} + +defn filemenu(f) +{ + complex File f; + local s; + + s = ""; + if f != *cmd then { + if f.mod then + s = s + "'"; + else + s = s + " "; + if f.rasp != 0 then + s = s + "+"; + else + s = s + "-"; + if f == *curfile then + s = s + "."; + else + s = s + " "; + s = s + " "; + } + s = s + string(f.name); + print("file(", f\X, ") // ", s, "\n"); +} + +defn files() +{ + local i, f, fx, fp; + + fx = (List)file; + if fx.nused == 0 then + filemenu(*cmd); + i = 0; + loop 1,fx.nused do { + f = (File)fx.g.filep[i]; + filemenu(f); + i = i+1; + } +} + +defn range(r) +{ + complex Range r; + + if r.p1 == r.p2 then + return itoa(r.p1, "#%d"); + return itoa(r.p1, "#%d")+"-"+itoa(r.p2, "#%d"); +} + +defn file(f) +{ + complex File f; + + filemenu(f); + print("\t$=#", f.nc\D, " .=", range(f.dot.r), " buffer(", f\X, ")\n"); + if f == *cmd then { + print("\tcmdpt=#", *cmdpt\D, " cmdptadv=#", *cmdptadv\D, "\n"); + } +} + +defn buffer(b) +{ + complex Buffer b; + + print("buffer(", b\X, "): c=", b.c\X, " nc=", b.nc\D, "\n"); + print("cache: ==("); + print(runestring(b.c, b.nc)); + print(")==\n"); +} + +print("/sys/lib/acid/sam"); |