/[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.11 by joko, Fri Jun 16 00:31:50 2006 UTC revision 1.12 by joko, Fri Jun 16 00:37:22 2006 UTC
# Line 11  int main(int argc, char * argv[]) { Line 11  int main(int argc, char * argv[]) {
11        
12    // interactive mode with prompt    // interactive mode with prompt
13    if (argc == 1) {    if (argc == 1) {
14      fprintf(stderr, "Interactive mode not implemented yet.\n");      //fprintf(stderr, "Interactive mode not implemented yet.\n");
15      //printf("No arguments given.");      //exit(EXIT_FAILURE);
16      exit(EXIT_FAILURE);      run_commands(stdin, "> ");
17    }    }
18        
19    // scripting mode    // scripting mode
20    if (argc == 2) {    if (argc == 2) {
21      FILE * script = fopen(argv[1], "r");      FILE * script = fopen(argv[1], "r");
22      run_commands(script);      run_commands(script, "");
23      fclose(script);      fclose(script);
24    }    }
25  }  }
26    
27  void run_commands(FILE * fp) {  void run_commands(FILE * fp, char * prompt) {
28        
29    char command[MAX_COMMAND_LENGTH];    char command[MAX_COMMAND_LENGTH];
30        
31      // echo first prompt
32      fprintf(stdout, "%s", prompt);
33    while (fgets(command, MAX_COMMAND_LENGTH, fp)) {    while (fgets(command, MAX_COMMAND_LENGTH, fp)) {
34      int command_length;      int command_length;
35            
# Line 36  void run_commands(FILE * fp) { Line 38  void run_commands(FILE * fp) {
38            
39      // ... and action      // ... and action
40      dispatch_command(command);      dispatch_command(command);
41        
42        // echo prompt after executing shell command
43        fprintf(stdout, "%s", prompt);
44    }    }
45        
46  }  }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

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