summaryrefslogtreecommitdiff
path: root/sys/src/cmd/sam/acid.lib
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/sam/acid.lib
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/sam/acid.lib')
-rwxr-xr-xsys/src/cmd/sam/acid.lib104
1 files changed, 104 insertions, 0 deletions
diff --git a/sys/src/cmd/sam/acid.lib b/sys/src/cmd/sam/acid.lib
new file mode 100755
index 000000000..341f34587
--- /dev/null
+++ b/sys/src/cmd/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");