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
}
|