00001 #include <cstdlib>
00002 #include "zipios++/zipios-config.h"
00003
00004 #include "zipios++/meta-iostreams.h"
00005
00006 #include "zipios++/ziphead.h"
00007 #include "zipios++/zipheadio.h"
00008
00009 using namespace std ;
00010 using namespace zipios ;
00011
00012 char *_progname ;
00013
00014 void printUsage() ;
00015 void exitUsage( int exit_code ) ;
00016
00017 int main( int argc, char *argv[] ) {
00018 _progname = argv[ 0 ] ;
00019 if ( argc != 3 )
00020 exitUsage( 1 ) ;
00021
00022 ofstream exef( argv[ 1 ], ios::app | ios::binary ) ;
00023 if( ! exef ) {
00024 cout << "Error: Unable to open " << argv[ 1 ] << " for writing" << endl ;
00025 exitUsage( 1 ) ;
00026 }
00027
00028 ifstream zipf( argv[ 2 ], ios::in | ios::binary ) ;
00029 if( ! zipf ) {
00030 cout << "Error: Unable to open " << argv[ 2 ] << " for reading." << endl ;
00031 exitUsage( 1 ) ;
00032 }
00033
00034
00035 uint32 zip_start = exef.tellp() ;
00036 cout << "zip start will be at " << zip_start << endl ;
00037
00038
00039
00040 exef << zipf.rdbuf() ;
00041
00042 writeUint32( zip_start, exef ) ;
00043
00044 exef.close() ;
00045 zipf.close() ;
00046 return 0;
00047 }
00048
00049
00050 void printUsage() {
00051 cout << "Usage: " << _progname << " exe-file zipfile" << endl ;
00052 }
00053
00054 void exitUsage( int exit_code ) {
00055 printUsage() ;
00056 exit( exit_code ) ;
00057 }
00058
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083