From: charlet Date: Tue, 29 Mar 2005 16:13:31 +0000 (+0000) Subject: 2005-03-29 Doug Rupp X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=23c6b287092131a103aabcd6a6c2baa435aa22d8;p=thirdparty%2Fgcc.git 2005-03-29 Doug Rupp * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical name and translate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97167 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index fbb67afca020..2195b4965329 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -2204,18 +2204,29 @@ __gnat_to_canonical_dir_spec (char *dirspec, int prefixflag) } /* Translate a VMS syntax file specification into Unix syntax. - If no indicators of VMS syntax found, return input string. */ + If no indicators of VMS syntax found, check if its an uppercase + alphanumeric_ name and if so try it out as an environment + variable (logical name). If all else fails return the + input string. */ char * __gnat_to_canonical_file_spec (char *filespec) { + char *filespec1; + strncpy (new_canonical_filespec, "", MAXPATH); if (strchr (filespec, ']') || strchr (filespec, ':')) { strncpy (new_canonical_filespec, - (char *) decc$translate_vms (filespec), - MAXPATH); + (char *) decc$translate_vms (filespec), MAXPATH); + } + else if ((strlen (filespec) == strspn (filespec, + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_")) + && (filespec1 = getenv (filespec))) + { + strncpy (new_canonical_filespec, + (char *) decc$translate_vms (filespec1), MAXPATH); } else {