STABLE12-winnt-fix-duplication-20030314

get rid of duplication
This commit is contained in:
Chaskiel M Grundman 2003-03-14 20:17:27 +00:00 committed by Derrick Brashear
parent b2cc81be69
commit d6f8c0fbe2

View File

@ -1147,82 +1147,6 @@ long fs_StripDriveLetter(const char *inPathp, char *outPathp, long outSize)
}
BOOL RemoveSymlink(const char * linkName)
{
BOOL error = FALSE;
INT code=0;
struct ViceIoctl blob;
char tbuffer[1024];
char lsbuffer[1024];
char tpbuffer[1024];
char *tp;
tp = (char *) strrchr(linkName, '\\');
if (!tp)
tp = (char *) strrchr(linkName, '/');
if (tp) {
strncpy(tbuffer, linkName, code=tp-linkName+1); /* the dir name */
tbuffer[code] = 0;
tp++; /* skip the slash */
}
else {
fs_ExtractDriveLetter(linkName, tbuffer);
strcat(tbuffer, ".");
fs_StripDriveLetter(tp, tpbuffer, 0);
tp=tpbuffer;
}
blob.in = tp;
blob.in_size = strlen(tp)+1;
blob.out = lsbuffer;
blob.out_size = sizeof(lsbuffer);
code = pioctl(tbuffer, VIOC_LISTSYMLINK, &blob, 0);
if (code)
return FALSE;
blob.out_size = 0;
blob.in = tp;
blob.in_size = strlen(tp)+1;
return (pioctl(tbuffer, VIOC_DELSYMLINK, &blob, 0)==0);
}
BOOL IsSymlink(const char * true_name)
{
char parent_dir[MAXSIZE]; /*Parent directory of true name*/
char strip_name[MAXSIZE];
struct ViceIoctl blob;
char *last_component;
int code;
last_component = (char *) strrchr(true_name, '\\');
if (!last_component)
last_component = (char *) strrchr(true_name, '/');
if (last_component) {
/*
* Found it. Designate everything before it as the parent directory,
* everything after it as the final component.
*/
strncpy(parent_dir, true_name, last_component - true_name + 1);
parent_dir[last_component - true_name + 1] = 0;
last_component++; /*Skip the slash*/
}
else {
/*
* No slash appears in the given file name. Set parent_dir to the current
* directory, and the last component as the given name.
*/
fs_ExtractDriveLetter(true_name, parent_dir);
strcat(parent_dir, ".");
last_component = strip_name;
fs_StripDriveLetter(true_name, strip_name, sizeof(strip_name));
}
blob.in = last_component;
blob.in_size = strlen(last_component)+1;
blob.out_size = MAXSIZE;
blob.out = space;
memset(space, 0, MAXSIZE);
code = pioctl(parent_dir, VIOC_LISTSYMLINK, &blob, 1);
return (code==0);
}
BOOL RemoveSymlink(const char * linkName)
{
BOOL error = FALSE;