ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/CCSAdmin/chsh.c
Revision: 562
Committed: 2005-08-27T21:46:39-07:00 (19 years, 9 months ago) by douglas
Content type: text/x-c
File size: 1121 byte(s)
Log Message:
Moo!

File Contents

# User Rev Content
1 douglas 562 // Douglas Thrift
2     //
3     // CCS Computer Science
4     //
5     // Change Shell
6    
7     #include <sys/utsname.h>
8    
9     #include "common.h"
10    
11     int main(int argc, char *argv[])
12     {
13     int exception;
14     jmp_buf environment;
15    
16     switch (exception = setjmp(environment))
17     {
18     case 0:
19     break;
20     case 1:
21     perror(argv[0]);
22    
23     return 1;
24     default:
25     fprintf(stderr, "%s: %s\n", argv[0], (char *)exception);
26    
27     return 1;
28     }
29    
30     typedef struct
31     {
32     const char *name;
33     char *freebsd, *linux, *darwin;
34     }
35     Shell;
36    
37     typedef enum { sh, csh, tcsh, bash, ksh, zsh, _3sh, custom } Shells;
38    
39     Shell shells[] = {
40     { "sh", "/bin/sh", "/bin/sh", "/bin/sh" },
41     { "csh", "/bin/csh", "/bin/csh", "/bin/csh" },
42     { "tcsh", "/bin/tcsh", "/bin/tcsh", "/bin/tcsh" },
43     { "bash", "/usr/local/bin/bash", "/bin/bash", "/bin/bash" },
44     { "ksh", "/usr/local/bin/ksh", "/bin/ksh", "/bin/ksh" },
45     { "zsh", "/usr/local/bin/zsh", "/bin/zsh", "/bin/zsh" },
46     { "3sh", "/ccs/bin/3sh", "/ccs/bin/3sh", "/ccs/bin/3sh" },
47     { "custom", NULL, NULL, NULL }
48     };
49    
50     for (Shells shell = sh; shell != custom; ++shell)
51     printf("%s, ", shells[shell].name);
52    
53     printf("%s\n", shells[custom].name);
54    
55     return 0;
56     }