Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
defn saminit()
2
{
3
	if !access("/sys/src/cmd/sam/cmd.acid") then
4
		rc("cd /sys/src/cmd/sam && mk cmd.acid");
5
	include("/sys/src/cmd/sam/cmd.acid");
6
}
7
 
8
defn printrunestring(addr, len)
9
{
10
	loop 1,len do {
11
		print(*(addr\r));
12
		addr = addr+2;
13
	}
14
}
15
 
16
defn runestring(addr, len)
17
{
18
	local s;
19
 
20
	s = "";
21
	loop 1,len do {
22
		s = s + *(addr\r);
23
		addr = addr+2;
24
	}
25
	return s;
26
}
27
 
28
defn string(s)
29
{
30
	complex String s;
31
	return runestring(s.s, s.n);
32
}
33
 
34
defn filemenu(f)
35
{
36
	complex File f;
37
	local s;
38
 
39
	s = "";
40
	if f != *cmd then {
41
		if f.mod then
42
			s = s + "'";
43
		else 
44
			s = s + " ";
45
		if f.rasp != 0 then
46
			s = s + "+";
47
		else
48
			s = s + "-";
49
		if f == *curfile then
50
			s = s + ".";
51
		else
52
			s = s + " ";
53
		s = s + " ";
54
	}
55
	s = s + string(f.name);
56
	print("file(", f\X, ") // ", s, "\n");
57
}
58
 
59
defn files()
60
{
61
	local i, f, fx, fp;
62
 
63
	fx = (List)file;
64
	if fx.nused == 0 then
65
		filemenu(*cmd);
66
	i = 0;
67
	loop 1,fx.nused do {
68
		f = (File)fx.g.filep[i];
69
		filemenu(f);
70
		i = i+1;
71
	}
72
}
73
 
74
defn range(r)
75
{
76
	complex Range r;
77
 
78
	if r.p1 == r.p2 then
79
		return itoa(r.p1, "#%d");
80
	return itoa(r.p1, "#%d")+"-"+itoa(r.p2, "#%d");
81
}
82
 
83
defn file(f)
84
{
85
	complex File f;
86
 
87
	filemenu(f);
88
	print("\t$=#", f.nc\D, " .=", range(f.dot.r), " buffer(", f\X, ")\n");
89
	if f == *cmd then {
90
		print("\tcmdpt=#", *cmdpt\D, " cmdptadv=#", *cmdptadv\D, "\n");
91
	}
92
}
93
 
94
defn buffer(b)
95
{
96
	complex Buffer b;
97
 
98
	print("buffer(", b\X, "): c=", b.c\X, " nc=", b.nc\D, "\n");
99
	print("cache: ==(");
100
	print(runestring(b.c, b.nc));
101
	print(")==\n");
102
}
103
 
104
print("/sys/lib/acid/sam");