diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-09-25 21:31:21 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-09-25 21:31:21 +0000 |
commit | 03600c6a2d53434df074242d579975e1f0ce5d72 (patch) | |
tree | 721ade19849ebc40214c20301cb207b4f98588d7 /navit/script | |
parent | edd42e879f5ed8d846650c21190c5c8a2689363b (diff) | |
download | navit-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-x | navit/script/gps_emu4 | 11 |
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=''; |