* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify

code which checks for symlinks.  Fix problem with UNC paths.

	* environ.cc (struct parse_thing): Remove transparent_exe option.
	* syscalls.cc (transparent_exe): Remove.
	(unlink): Always add stat_suffixes, drop transparent_exe check.
	(open): Ditto.
	(link): Ditto.
	(pathconf): Ditto.
	* fhandler_disk_file.cc (fhandler_disk_file::link): Ditto.
	* fhandler_process.cc (fhandler_process::fill_filebuf): Always remove
	.exe suffix.
	* path.cc (realpath): Never attach known_suffix.
This commit is contained in:
Corinna Vinschen
2008-04-13 16:47:21 +00:00
parent a7ff2096f7
commit 9bf7c7e96c
6 changed files with 40 additions and 45 deletions

View File

@ -2872,25 +2872,13 @@ realpath (const char *path, char *resolved)
if (!real_path.error && real_path.exists ())
{
/* Check for the suffix being tacked on. */
int tack_on = 0;
if (!transparent_exe && real_path.known_suffix)
{
char *c = strrchr (real_path.normalized_path, '.');
if (!c || !ascii_strcasematch (c, real_path.known_suffix))
tack_on = strlen (real_path.known_suffix);
}
if (!resolved)
{
resolved = (char *) malloc (strlen (real_path.normalized_path)
+ tack_on + 1);
resolved = (char *) malloc (strlen (real_path.normalized_path) + 1);
if (!resolved)
return NULL;
}
strcpy (resolved, real_path.normalized_path);
if (tack_on)
strcat (resolved, real_path.known_suffix);
return resolved;
}