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 | 2da15635b492108ce9acd3c02d2fd23d33291e5d (patch) | |
tree | 721ade19849ebc40214c20301cb207b4f98588d7 /navit/script | |
parent | 7a7abf241431bff42fce5872acdf9ea89e1f84b8 (diff) | |
download | navit-svn-2da15635b492108ce9acd3c02d2fd23d33291e5d.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 eb293c78..342a3b4a 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=''; |