delorie.com/archives/browse.cgi | search |
Date: | Thu, 3 Feb 2000 19:27:10 +0200 (WET) |
From: | Andris Pavenis <pavenis AT lanet DOT lv> |
To: | Mumit Khan <khan AT NanoTech DOT Wisc DOT EDU>, djgpp-workers AT delorie DOT com |
Subject: | Re: (patch) updated protoize patch |
In-Reply-To: | <B0000118036@stargate.astr.lu.lv> |
Message-ID: | <Pine.A41.4.05.10002031922340.137990-100000@ieva01.lanet.lv> |
MIME-Version: | 1.0 |
Reply-To: | djgpp-workers AT delorie DOT com |
Errors-To: | dj-admin AT delorie DOT com |
X-Mailing-List: | djgpp-workers AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
Here is patch to avoids trying to generate relative paths in shortpath() in protoize.c on DOS based file systems when files are on different drives. Currently I still treated /foo/bar and c:/foo/bar as different when C: is current drive (perhaps there is no harm from that). Patch is for gcc-2.95.2 Andris --- protoize.c~1 Tue Feb 1 10:57:44 2000 +++ protoize.c Thu Feb 3 19:30:00 2000 @@ -1471,6 +1471,23 @@ shortpath (cwd, filename) cwd_p++; path_p++; } + +#ifdef HAVE_DOS_BASED_FILE_SYSTEM + /* For DOS based file system we should chech whether cwd_p and path_p + points to the same drive. Only then we can look for relative paths */ + if ((cwd_p[0] && cwd_p[1]==':' && IS_DIR_SEPARATOR(cwd_p[2])) || + (path_p[0] && path_p[1]==':' && IS_DIR_SEPARATOR(path_p[2]))) + { + if (!IS_SAME_PATH_CHAR(cwd_p[0],path_p[0]) || + cwd_p[1]!=path_p[1] || + !IS_DIR_SEPARATOR(cwd_p[2]) || + !IS_DIR_SEPARATOR(path_p[2])) + { + return filename; + } + } +#endif + if (!*cwd_p && (!*path_p || IS_DIR_SEPARATOR (*path_p))) { /* whole pwd matched */
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |