* path.cc (suffix_scan::lnk_match): Return true beginning with

SCAN_APPENDLNK.
	(suffix_scan::next): Rearrange code to make .lnk append order slightly
	more deterministic.
	* spawn.cc (exe_suffixes): Try no suffix before .exe suffix to align
	evaluation with stat_suffixes.
	(dll_suffixes): Ditto.
This commit is contained in:
Corinna Vinschen 2006-02-03 21:33:09 +00:00
parent d6b2195f1c
commit 1912201029
3 changed files with 23 additions and 13 deletions

View File

@ -1,3 +1,13 @@
2006-02-03 Corinna Vinschen <corinna@vinschen.de>
* path.cc (suffix_scan::lnk_match): Return true beginning with
SCAN_APPENDLNK.
(suffix_scan::next): Rearrange code to make .lnk append order slightly
more deterministic.
* spawn.cc (exe_suffixes): Try no suffix before .exe suffix to align
evaluation with stat_suffixes.
(dll_suffixes): Ditto.
2006-02-02 Christopher Faylor <cgf@timesys.com> 2006-02-02 Christopher Faylor <cgf@timesys.com>
* cygwin/version.h: Mention CW_SETUP_WINENV in comment for API minor * cygwin/version.h: Mention CW_SETUP_WINENV in comment for API minor

View File

@ -3035,7 +3035,7 @@ public:
const char *path; const char *path;
char *has (const char *, const suffix_info *); char *has (const char *, const suffix_info *);
int next (); int next ();
int lnk_match () {return nextstate >= SCAN_EXTRALNK;} int lnk_match () {return nextstate >= SCAN_APPENDLNK;}
}; };
char * char *
@ -3092,22 +3092,20 @@ suffix_scan::next ()
nextstate = SCAN_LNK; nextstate = SCAN_LNK;
return 1; return 1;
} }
if (!*suffixes->name)
suffixes++;
nextstate = SCAN_EXTRALNK; nextstate = SCAN_EXTRALNK;
/* fall through to suffix checking below */ /* fall through to suffix checking below */
break; break;
case SCAN_HASLNK: case SCAN_HASLNK:
nextstate = SCAN_EXTRALNK; /* Skip SCAN_BEG */ nextstate = SCAN_APPENDLNK; /* Skip SCAN_BEG */
return 1;
case SCAN_EXTRALNK:
nextstate = SCAN_DONE;
*eopath = '\0';
return 0;
case SCAN_JUSTCHECK:
nextstate = SCAN_LNK;
return 1; return 1;
case SCAN_LNK: case SCAN_LNK:
case SCAN_EXTRALNK:
strcpy (eopath, ".lnk");
nextstate = SCAN_DONE;
return 1;
case SCAN_JUSTCHECK:
nextstate = SCAN_APPENDLNK;
return 1;
case SCAN_APPENDLNK: case SCAN_APPENDLNK:
strcat (eopath, ".lnk"); strcat (eopath, ".lnk");
nextstate = SCAN_DONE; nextstate = SCAN_DONE;

View File

@ -39,7 +39,8 @@ details. */
static suffix_info exe_suffixes[] = static suffix_info exe_suffixes[] =
{ {
suffix_info (".exe", 1), suffix_info ("", 1), suffix_info ("", 1),
suffix_info (".exe", 1),
suffix_info (".com"), suffix_info (".com"),
suffix_info (NULL) suffix_info (NULL)
}; };
@ -47,7 +48,8 @@ static suffix_info exe_suffixes[] =
static suffix_info dll_suffixes[] = static suffix_info dll_suffixes[] =
{ {
suffix_info (".dll"), suffix_info (".dll"),
suffix_info (".exe", 1), suffix_info ("", 1), suffix_info ("", 1),
suffix_info (".exe", 1),
suffix_info (NULL) suffix_info (NULL)
}; };