1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
/***************************************************************************
*
* $Header: /usr/local/cvsroot/utils/ytree/system.c,v 1.12 2008/07/26 14:29:30 werner Exp $
*
* System Call
*
***************************************************************************/
#include "ytree.h"
int SystemCall(char *command_line)
{
int result;
#ifndef XCURSES
endwin();
#endif
result = SilentSystemCall( command_line );
(void) GetAvailBytes( &statistic.disk_space );
refresh();
return( result );
}
int QuerySystemCall(char *command_line)
{
int result;
#ifndef XCURSES
endwin();
#endif
result = SilentSystemCall( command_line );
HitReturnToContinue();
(void) GetAvailBytes( &statistic.disk_space );
refresh();
return( result );
}
extern struct itimerval value, ovalue;
int SilentSystemCall(char *command_line)
{
return(SilentSystemCallEx(command_line, TRUE));
}
int SilentSystemCallEx(char *command_line, BOOL enable_clock)
{
int result;
#ifdef XCURSES
char *xterm=NULL;
#endif
/* Hier ist die einzige Stelle, in der Kommandos aufgerufen werden! */
#if defined( __NeXT__ )
nl();
#endif /* linux */
SuspendClock();
#ifdef XCURSES
if( ( xterm = malloc( strlen( command_line ) + 10 ) ) == NULL ) {
ERROR_MSG( "Malloc Failed*ABORT" );
exit( 1 );
}
sprintf(xterm, "xterm -e %s &", command_line);
result = system( xterm );
free(xterm);
#else
result = system( command_line );
#endif
#ifndef XCURSES
leaveok(stdscr, TRUE);
curs_set(0);
#if defined( __NeXT__ )
cbreak();
nonl();
noecho();
clearok( stdscr, TRUE );
#endif /* linux */
#endif /* XCURSES */
if(enable_clock)
InitClock();
(void) GetAvailBytes( &statistic.disk_space );
return( result );
}
|