1
#
2
# Author: Markus Wenzel, TU Muenchen
3
4
# feeder.pl - feed isabelle session
5
6
7
# args
8
9
($head, $emitpid, $quit, $tail) = @ARGV;
10
11
12
# setup signal handlers
13
14
sub hangup { exit(0); }
15
$SIG{'HUP'} = "hangup";
16
$SIG{'INT'} = "IGNORE";
17
18
19
# main
20
21
#buffer lines
22
$| = 1;
23
24
25
$emitpid && (print $$, "\n");
26
27
if ($head) {
28
utf8::upgrade($head);
29
$head =~ s/([\x80-\xff])/\\${\(ord($1))}/g;
30
print $head, "\n";
31
}
32
33
if (!$quit) {
34
while (<STDIN>) {
35
print;
36
37
38
39
$tail && (print "$tail", "\n");
40
41
42
# wait forever
43
44
close STDOUT;
45
sleep;