- else if (strcmp(argv[2], "/bin/csh") != 0 &&
- strcmp(argv[2], "/usr/new/csh") != 0 && getuid()) {
- printf("Only /bin/csh or /usr/new/csh may be specified\n");
- exit(1);
- }
- if (argc == 3)
- if (stat(argv[2],&sbuf) < 0)
- {
- printf("%s is unavailable\n",argv[2]);
+ else {
+ if (argv[2][0] != '/')
+ argv[2] = strcat(
+ "/bin/\0 12345678901234567890123456789", argv[2]);
+ if (strcmp(argv[2], "/bin/csh") &&
+ strcmp(argv[2], "/bin/oldcsh") &&
+ strcmp(argv[2], "/bin/newcsh") &&
+ strcmp(argv[2], "/usr/new/csh") &&
+ /* and, for cretins who can't read the manual */
+ strcmp(argv[2], "/bin/sh") &&
+ getuid()) {
+ printf(
+ "Only /bin/csh may be specified\n"
+ );