aboutsummaryrefslogtreecommitdiff
path: root/acme.inc
blob: 6b71535ef151da5cc60ea0c7d0f7ebf74ffc4213 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
fn_set_tag()
{
	echo 'cleartag' | 9p write acme/$winid/ctl
	echo -n " $@" | 9p write acme/$winid/tag
#	echo 'clean' | 9p write acme/$winid/ctl
}

fn_append_tag()
{
	echo -n "$1" | 9p write acme/$winid/tag
}

fn_get_tag()
{
	9p read acme/$winid/tag
}

fn_write_click_event()
{
	local eventType=$1 offset=$2 end=$3

#	echo "M$eventType$offset $end"
	echo "M$eventType$offset $end" | 9p write "acme/$winid/event"
}

fn_exec_cmd_tag()
{
	local cmd_size=$(echo -n "$1" | wc -c | awk '{print $1}')
	local start=$(echo `fn_get_tag` | sed -E 's/( Snarf )[^\|]*/\1/g' | grep -aob "$1" | sed 's/:.*//g')
	if [ -z $start ]; then
		fn_append_tag " ($1)"
		start=$(echo `fn_get_tag` | sed -E 's/( Snarf )[^\|]*/\1/g' | grep -aob "$1" | sed 's/:.*//g')
	fi
	local end=$(expr $start + $cmd_size)

	fn_write_click_event x $start $end
}

fn_win_tag()
{
	9p read "acme/$winid/tag" | sed -E 's/( Snarf ).*/\1/'
}

fn_win_tag_size()
{
	fn_win_tag | wc -c | awk '{print $1}'
}

fn_user_tag()
{
	9p read "acme/$winid/tag" | cut -d'|' -f2 | xargs
}

fn_user_tag_pos()
{
	local size=$(fn_win_tag_size)
	expr $size + 1
}