summaryrefslogtreecommitdiff
path: root/navit/script
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2008-09-25 21:31:21 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2008-09-25 21:31:21 +0000
commit03600c6a2d53434df074242d579975e1f0ce5d72 (patch)
tree721ade19849ebc40214c20301cb207b4f98588d7 /navit/script
parentedd42e879f5ed8d846650c21190c5c8a2689363b (diff)
downloadnavit-03600c6a2d53434df074242d579975e1f0ce5d72.tar.gz
Fix:script:Exit when pipe is broken
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1418 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/script')
-rwxr-xr-xnavit/script/gps_emu411
1 files changed, 9 insertions, 2 deletions
diff --git a/navit/script/gps_emu4 b/navit/script/gps_emu4
index eb293c78a..342a3b4ab 100755
--- a/navit/script/gps_emu4
+++ b/navit/script/gps_emu4
@@ -2,12 +2,19 @@
use Glib qw/TRUE FALSE/;
use Gtk2 '-init';
+sub exit_with_error
+{
+ my ($error)=@_;
+ print STDERR "$error\n";
+ exit(1);
+}
+
sub process_one_packet
{
$pos[$idx++]=tell(STDIN);
while (<STDIN>) {
if (!defined($match)) {
- print $_;
+ syswrite(STDOUT,$_) or exit_with_error $!;
} else {
$buffer.=$_;
}
@@ -19,7 +26,7 @@ sub process_one_packet
}
if (substr($time,0,length($match)) eq $match) {
undef $match;
- print $buffer;
+ syswrite(STDOUT,$buffer) or exit_with_error $!;
return;
}
$buffer='';