blob: 2a325393f1f14523f3030ed08f6a76c3c155a4d2 (
plain) (
blame)
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
|
#!/bin/sh
# mthr [-a|-s|-p] MSGS... - select thread/subthread/parent of messages
mode=1
case "$1" in
-a) mode=1; shift;;
-s) mode=2; shift;;
-p) mode=3; shift;;
esac
mseq : | awk -v mode=$mode '
BEGIN { split("", parents) }
NR != FNR { exit }
{
match($0, "^ *")
ind = RLENGTH
}
mode==1 && ind==0 {
if (sel)
for (i in thread)
print thread[i]
split("", thread)
sel = 0
}
mode==1 { thread[length(thread)+1] = $0 }
mode==2 && ind <= dep { sel = 0 }
{
for (i in ARGV)
if (substr($0, ind+1) == ARGV[i]) {
sel = 1
dep = ind
}
}
mode==2 && sel { print }
mode==3 && sel {
if (ind>0)
print parents[ind-1]
sel = 0
}
mode==3 {parents[ind] = $0 }
END {
if (mode==1 && sel)
for (i in thread)
print thread[i]
}
' - $(mseq $@)
|