/[cvs]/joko/Uni/BSArch/03/win32/min_shell.c
ViewVC logotype

Diff of /joko/Uni/BSArch/03/win32/min_shell.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by joko, Thu Jun 15 22:58:58 2006 UTC revision 1.9 by joko, Thu Jun 15 23:16:01 2006 UTC
# Line 10  Line 10 
10  #define MAX_COMMAND_LENGTH 1024  #define MAX_COMMAND_LENGTH 1024
11    
12  int main(int argc, char * argv[]) {  int main(int argc, char * argv[]) {
13      
14      // interactive mode with prompt
15    if (argc == 1) {    if (argc == 1) {
16      //printf("No arguments given.");      //printf("No arguments given.");
17      //exit(EXIT_FAILURE);      //exit(EXIT_FAILURE);
# Line 18  int main(int argc, char * argv[]) { Line 20  int main(int argc, char * argv[]) {
20      os_start_process(filename, background);      os_start_process(filename, background);
21    }    }
22        
23      // scripting mode
24    if (argc == 2) {    if (argc == 2) {
25      FILE * script = fopen(argv[1], "r");      FILE * script = fopen(argv[1], "r");
26      run_commands(script);      run_commands(script);
# Line 29  void run_commands(FILE * fp) { Line 32  void run_commands(FILE * fp) {
32        
33    char command[MAX_COMMAND_LENGTH];    char command[MAX_COMMAND_LENGTH];
34        
35    fgets(command, MAX_COMMAND_LENGTH, fp);    while (fgets(command, MAX_COMMAND_LENGTH, fp)) {
36    chomp(command);      int command_length;
37        
38        // strip newlines
39        chomp(command);
40        
41        // ... and action
42        execute_command(command);
43      }
44        
   execute_command(command);  
45  }  }
46    
47    
48  void execute_command(char * command) {  void execute_command(char * command) {
49    
50      BOOL background = FALSE;
51      int command_length;
52    
53    printf("process_command: %s\n", command);    printf("process_command: %s\n", command);
54    os_start_process(command, 0);    
55      // background or foreground?
56      command_length = strlen(command);
57      if (command[command_length-1] == '&') {
58        command[command_length-1] = '\0';
59        background = TRUE;
60      }
61      
62      os_start_process(command, background);
63  }  }
64    

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.9

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed