/* * /fixlog * eg: * /fixlog 3 file to add 3 hours to all timestamps * /fixlog -5 file to subtract 5 hours */ alias fixlog { if ($isid) { var %n = $pos($1,$chr(32)), %linen = $left($1,$calc(%n - 1)), %line = $right($1,- $+ %n) .fseek -l fixlog %linen if ([* iswm %line) .fwrite fixlog $regsubex(%line,/(?<=^\[)(\d\d)/,$base($calc((24 + \1 + [ $2 ] ) % 24),10,10,2)) else { tokenize 32 $2 $1 .fwrite fixlog $3-4 $asctime($calc($ctime($5-) + 3600 * $1)) } return } if (!$isfile($2-)) || ($1. !isnum) { echo -aec info * /fixlog: invalid parameters return } .fopen fixlog $qt($2-) if (!$ferr) { .copy -o $qt($2-) $qt($2-.bak) filter -nfkg $qt($2-) $!fixlog($1, $+ $1) /^(?:Session (?:Start|Close):|\[\S+\]) / .fclose fixlog echo -aec info Done. } }