File: system.c

package info (click to toggle)
ytree 1.94-1.1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 836 kB
  • ctags: 1,510
  • sloc: ansic: 15,271; makefile: 208
file content (97 lines) | stat: -rw-r--r-- 1,746 bytes parent folder | download | duplicates (4)
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 ); 
}