|
|
1.1 ! root 1: /* $Header$ */ ! 2: ! 3: /* ! 4: * Author: Peter J. Nicklin ! 5: */ ! 6: #include <stdio.h> ! 7: #include "macro.h" ! 8: #include "yesno.h" ! 9: ! 10: /* ! 11: * ch_dir changes current working directory. Returns integer YES if ! 12: * successful, otherwise NO. ! 13: */ ! 14: ch_dir(pathname) ! 15: char *pathname; /* pathname of destination directory */ ! 16: { ! 17: extern int IGNORE_BAD_EXIT; /* exit if command doesn't return 0 */ ! 18: ! 19: if (!CHDIR(pathname)) ! 20: { ! 21: pperror(pathname); ! 22: if (IGNORE_BAD_EXIT == NO) ! 23: pxexit(); ! 24: return(NO); ! 25: } ! 26: return(YES); ! 27: } ! 28: ! 29: ! 30: ! 31: /* ! 32: * getpvindex() returns the location of the PROJECT environment ! 33: * variable in the global cell environ. ! 34: */ ! 35: getpvindex() ! 36: { ! 37: extern char **environ; /* global environment cell */ ! 38: register int i; /* location of PROJECT env. variable */ ! 39: int strncmp(); /* compare n characters */ ! 40: ! 41: for (i = 0; environ[i] != NULL; i++) ! 42: if (strncmp(environ[i], "PROJECT=", 8) == 0) ! 43: return(i); ! 44: return(-1); ! 45: } ! 46: ! 47: ! 48: ! 49: /* ! 50: * nomorecore() prints a warning error message and then exits. ! 51: */ ! 52: nomorecore() ! 53: { ! 54: warn("out of memory"); ! 55: pxexit(); ! 56: } ! 57: ! 58: ! 59: ! 60: /* ! 61: * print_title prints a project directory title. ! 62: */ ! 63: void ! 64: print_title(ppathname) ! 65: char *ppathname; /* project directory pathname */ ! 66: { ! 67: static int done_command; /* has a command been done? */ ! 68: ! 69: printf((done_command) ? "\n==> %s <==\n" : "==> %s <==\n", ppathname); ! 70: fflush(stdout); ! 71: done_command = 1; ! 72: } ! 73: ! 74: ! 75: ! 76: /* ! 77: * pxexit() calls exit(ERRSTATUS). ! 78: */ ! 79: pxexit() ! 80: { ! 81: extern int ERRSTATUS; /* pexec error status */ ! 82: ! 83: exit(ERRSTATUS); ! 84: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.