#!/bin/sh
#
# 
# 
export LANG=c

if [ "$1" = -h ];then

	echo	"hltrace zvyrazni syntax stopy od strace."
	echo	"Pouziti: hltrace [volby] <stopa.strace >stopa.html"
	echo	"Volby:"
	echo	"-s SYSCALL  Specialne zvyrazni volani SYSCALL."
	exit 1
fi

if [ "$1" = -s ]; then # = je pro retezce, -eq pro cisla

echo "<html>
<style>
.pid 	{ color:darkred; }
.ts 	{ color:navy; }
.number { color:red; }
.const 	{ color:green; }
.string { color:blue; }
.hlcall { text-decoration:none; font-weight:bold; color:black; }
.call 	{ text-decoration:none; color:olive; }
</style>
<body><pre>"

sed -r '
s#&#\&amp;#g;
s#<#\&lt;#g;
s#>#\&gt;#g; 
s#(["][^"]*["])#<span class="string">\1</span>#g;
s#([(|{|\||=| |[])([[:upper:]][[:upper:]_[:digit:]]+)([^\])#\1<span class="const">\2</span>\3#g;
s#([|])([[:upper:]][[:upper:]_[:digit:]]+)([^\])#\1<span class="const">\2</span>\3#g;
s#(^[[:digit:]]+)#<span class="pid">\1</span>#g;
s#([ ][[:digit:]]+[\.][[:digit:]]+)#<span class="ts">\1</span>#g;
s#(^[[:digit:]]+[\.][[:digit:]]+)#<span class="ts">\1</span>#g;
s#('$2')([(])#<a href="http://www.kernel.org/doc/man-pages/online/pages/man2/\1.2.html" class="hlcall">\1</a>\2#g;
s#(^[[:lower:]_[:digit:]]+)#<a href="http://www.kernel.org/doc/man-pages/online/pages/man2/\1.2.html" class="call">\1</a>#g;
s#([>][ ])([[:lower:]_[:digit:]]+)([(])#\1<a href="http://www.kernel.org/doc/man-pages/online/pages/man2/\2.2.html" class="call">\2</a>\3#g;
s#([^={])([0][x][0-9a-fA-F]+)#\1<span class="number">\2</span>#g;
s#([(])([[:digit:]]+)#\1<span class="number">\2</span>#g;
s#([-][[:digit:]]+)#<span class="number">\1</span>#g;
s#([ ][=])([ ][[:digit:]]+)#\1<span class="number">\2</span>#g;
s#([,])([ ][[:digit:]]+)#\1<span class="number">\2</span>#g;
'

#1) '&' za &amp;
#2) '<' za "&lt;"
#3) '>' za "&gt;"
#4)string "" pozor na hladovou hvezdicku
#5)const 
#5a)const 
#6)pid cisla procesu
#7)ts casy procesu 
#8)hlcall zvyraznene volani
#9)call trida volani pro zacatek radku
#10)call trida volani za cas
#11)number 0x
#12)number (
#13)number - cislo
#14)number = cislo
#15)number , cislo


#[[:alnum:]] nebo [A-Za-z0-9]
#[[:alpha:]] nebo [A-Za-z]
#[[:blank:]] nebo [\x09]
#[[:cntrl:]] nebo [\x00-\x19\x7F]
#[[:digit:]] nebo [0-9]
#[[:graph:]] nebo [!-~]
#[[:lower:]] nebo [a-z]
#[[:print:]] nebo [ -~]
#[[:punct:]] nebo [!-/:-@[-`{-~]
#[[:space:]] nebo [\t\v\f]
#[[:upper:]] nebo [A-Z]
#[[:xdigit:]] nebo [0-9a-fA-F]



echo "</pre></body></html>"

fi
  
exit 0
