diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2013-12-03 22:13:49 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2013-12-03 22:13:49 +0200 |
commit | 7bc4e38b948e20f3d72e06662691a527a50eecbf (patch) | |
tree | 0b3b35312a402168eb00958b841dceb65740d3ed | |
parent | 8067e43cf0c77c53e1a8eb5e2014f26ff5e68c59 (diff) | |
download | egawk-7bc4e38b948e20f3d72e06662691a527a50eecbf.tar.gz egawk-7bc4e38b948e20f3d72e06662691a527a50eecbf.tar.bz2 egawk-7bc4e38b948e20f3d72e06662691a527a50eecbf.zip |
VMS fixes in io.c.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | io.c | 10 |
2 files changed, 13 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2013-12-03 John E. Malmberg <wb8tyw@qsl.net> + + * io.c (redirect): Add additional VMS error code to check. + (do_find_source): Append "/" if not a VMS filename. + 2013-12-01 Andrew J. Schorr <aschorr@telemetry-investments.com> * main.c (optab): Sort by long option name. @@ -947,7 +947,10 @@ redirect(NODE *redir_exp, int redirtype, int *errflg) /* Alpha/VMS V7.1's C RTL is returning this instead of EMFILE (haven't tried other post-V6.2 systems) */ #define SS$_EXQUOTA 0x001C - else if (errno == EIO && vaxc$errno == SS$_EXQUOTA) +#define SS$_EXBYTLM 0x2a14 /* VMS 8.4 seen */ + else if (errno == EIO && + (vaxc$errno == SS$_EXQUOTA || + vaxc$errno == SS$_EXBYTLM)) close_one(); #endif else { @@ -2632,7 +2635,10 @@ do_find_source(const char *src, struct stat *stb, int *errcode, path_info *pi) return NULL; } erealloc(path, char *, strlen(path) + strlen(src) + 2, "do_find_source"); -#ifndef VMS +#ifdef VMS + if (strcspn(path,">]:") == strlen(path)) + strcat(path, "/"); +#else strcat(path, "/"); #endif strcat(path, src); |