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;
}
示例#2
0
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;
}