VOID Installer_ExecuteScript( VOID ) { // Задаем приложение и команду для него. CHAR Rexx_script[ SIZE_OF_PATH ] = ""; strcpy( Rexx_script, Installer_Thread.Current_directory ); strcat( Rexx_script, "\\Install\\Script.cmd" ); // Проверяем существование приложения. if( !FileExists( Rexx_script ) ) return; // Запускаем приложение. { CHAR Rexx_parameters[ SIZE_OF_PATH ] = ""; if( Installer_Thread.Install_Enhancer ) strcat( Rexx_parameters, " --action=install" ); if( Installer_Thread.Uninstall_Enhancer ) strcat( Rexx_parameters, " --action=uninstall" ); if( Installer.Code_page == RUSSIAN ) strcat( Rexx_parameters, " --language=russian" ); { CHAR Rexx_launcher[] = "Cmd.exe"; CHAR Launcher_parameters[ SIZE_OF_PATH ] = ""; strcpy( Launcher_parameters, Rexx_launcher ); strcat( Launcher_parameters, "|" ); strcat( Launcher_parameters, "/C" ); strcat( Launcher_parameters, " \"" ); strcat( Launcher_parameters, Rexx_script ); strcat( Launcher_parameters, " " ); strcat( Launcher_parameters, Rexx_parameters ); strcat( Launcher_parameters, "\"" ); strchg( Launcher_parameters, '|', 0x00 ); CHAR Error_string[ 1 ] = ""; RESULTCODES Return_codes; CHAR Path[ SIZE_OF_PATH ] = ""; strcpy( Path, Installer_Thread.Current_directory ); strcat( Path, "\\Install" ); DosSetCurrentDir( Path ); DosResetBuffer( -1 ); DosExecPgm( Error_string, sizeof( Error_string ), EXEC_SYNC, Launcher_parameters, NULL, &Return_codes, Rexx_launcher ); DosSetCurrentDir( Installer_Thread.Current_directory ); } } // Возврат. return; }
int main(int argc, char *argv[]) { //struct ip4table *table4 = load_ip4table(); //struct ip6table *table6 = load_ip6table(); char line[BUFSIZE + 1]; char *ipstr; unsigned short int ip4bin; unsigned long long int ip6bin; unsigned int as_num; char *buf; char *p; // arg validation // stdin loop while(fgets(line, sizeof(line), stdin) != NULL) { // chomp if ((p = strrchr(line, '\n')) != NULL) { *p = '\0'; } rewind(stdin); as_num = 0; //if ((ipstr = ip4match(line)) != NULL && // (ip4bin = ip4parse(ipstr)) != 0) { // as_num = lookup_ip4table(ip4bin, table4); //} else if ((ipstr = ip6match(line)) != NULL && // (ip6bin = ip6parse(ipstr)) != 0) { // as_num = lookup_ip6table(ip6bin, table6); //} // replace the line if (as_num != 0) { sprintf(buf, "%s[AS%d]", ipstr, as_num); strchg(line, ipstr, buf); } printf("%s\n", line); } return 0; }
VOID main( VOID ) { // ********************************************************** // // Можно создать приложение, *.dll или *.obj. CHAR Target[] = "/Ge+ /Ss+"; // Приложение. // CHAR Target[] = "/C /Ss+"; // Object. // CHAR Target[] = "/Ge- /Ss+"; // Library. // Процессор - Pentium. CHAR Processor[] = "/G5 /Gf+ /Gi+"; // Оптимизация - по скорости. CHAR Optimization[] = "/Gs+ /O+ /Oi+"; // Размер стека - как и у всех потоков. CHAR Stack_size[] = "/B\"/ST:32768\""; // Имена файлов. CHAR CPP_Name[] = "Nice-os2.cpp"; CHAR DEF_Name[] = "Nice-os2.def"; CHAR LIB_Name[] = "..\\Shared\\DosCalls\\Doscalls.lib"; CHAR RC_Name[] = "Resources\\Resources.rc"; CHAR RES_Name[] = "Resources\\Resources.res"; CHAR OBJ_Name[] = "Nice-os2.obj"; CHAR TGT_Name[] = "Nice-os2.exe "; // ********************************************************** // // Задаем параметры. CHAR Compiler[] = "Icc.exe"; CHAR Parameters[ 255 ] = ""; strcpy( Parameters, Compiler ); strcat( Parameters, "|" ); strcat( Parameters, Target ); strcat( Parameters, " " ); strcat( Parameters, CPP_Name ); strcat( Parameters, " " ); strcat( Parameters, DEF_Name ); strcat( Parameters, " " ); strcat( Parameters, LIB_Name ); strcat( Parameters, " " ); strcat( Parameters, Processor ); strcat( Parameters, " " ); strcat( Parameters, Optimization ); strcat( Parameters, " " ); strcat( Parameters, Stack_size ); strchg( Parameters, '|', 0x00 ); // Удаляем файлы, которые требуется получить. DosForceDelete( TGT_Name ); // Вызываем IBM VA C++. CHAR Error_string[ 1 ]; RESULTCODES Return_codes; DosResetBuffer( -1 ); DosExecPgm( Error_string, sizeof( Error_string ), EXEC_SYNC, Parameters, NULL, &Return_codes, Compiler ); // Задаем параметры для Resource Compiler. // RC.exe - 16-разрядное приложение, и его надо вызвать как "Cmd /C RC.exe". CHAR RC_starter[] = "Cmd.exe"; Parameters[ 0 ] = 0; strcpy( Parameters, RC_starter ); strcat( Parameters, "|" ); strcat( Parameters, "/C RC.exe" ); strcat( Parameters, " " ); strcat( Parameters, RC_Name ); strcat( Parameters, " " ); strcat( Parameters, TGT_Name ); strchg( Parameters, '|', 0x00 ); // Вызываем Resource Compiler. DosResetBuffer( -1 ); DosExecPgm( Error_string, sizeof( Error_string ), EXEC_SYNC, Parameters, NULL, &Return_codes, RC_starter ); // Удаляем временные файлы. DosForceDelete( OBJ_Name ); DosForceDelete( RES_Name ); // Звук. WinAlarm( HWND_DESKTOP, WA_NOTE ); // Выход. return; }