angel@FLIPPER.MIAMI.EDU (angel li) (09/01/89)
The following patch fixes two problems: * On VMS, argv[0] has the absolute path of the program. I removed the directory spec and extension so when errors are printed, they fit on a single line. * In pfatal_with_name, change the exit code from a generic failure code to the exact reason. The third patch is something that I will announce sometime soon... Angel Li University of Miami/RSMAS Remote Sensing Group Internet: angel@flipper.miami.edu UUCP: ncar!umigw!angel *** cccp.c-orig Thu Aug 31 17:46:39 1989 --- cccp.c Thu Aug 31 18:16:34 1989 *************** *** 272,280 **** { &cplusplus_include_defaults[2], GCC_INCLUDE_DIR }, { 0, "/usr/include" } #else ! { &cplusplus_include_defaults[1], "GNU_CC_INCLUDE:" }, /* VAX-11 C includes */ ! { &cplusplus_include_defaults[2], "SYS$SYSROOT:[SYSLIB.]" }, { 0, "" }, /* This makes normal VMS filespecs work OK */ #endif /* VMS */ }; --- 272,281 ---- { &cplusplus_include_defaults[2], GCC_INCLUDE_DIR }, { 0, "/usr/include" } #else ! { &cplusplus_include_defaults[1], "GNU_GXX_INCLUDE:" }, ! { &include_defaults[2], "GNU_CC_INCLUDE:" }, /* GNU includes */ /* VAX-11 C includes */ ! { &cplusplus_include_defaults[3], "SYS$SYSROOT:[SYSLIB.]" }, { 0, "" }, /* This makes normal VMS filespecs work OK */ #endif /* VMS */ }; *************** *** 539,544 **** --- 540,563 ---- /* Target-name to write with the dependency information. */ char *deps_target = 0; + #ifdef VMS + { + /* + Remove the directory information from argv[0]: + Error messages might fit on one line now. + */ + char *s; + char *strrchr(); + + if (!(s = strrchr(argv[0], ']'))) + s = strrchr(argv[0], ':'); + if (s) + strcpy(argv[0], s+1); + if (s = strrchr(argv[0], '.')) + *s = '\0'; + } + #endif + #ifdef RLIMIT_STACK /* Get rid of any avoidable limit on stack size. */ { *************** *** 5307,5313 **** --- 5326,5336 ---- char *name; { perror_with_name (name); + #ifdef VMS + exit (vaxc$errno); + #else exit (FATAL_EXIT_CODE); + #endif }