mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
STABLE12-winnt-fix-duplication-20030314
get rid of duplication
This commit is contained in:
parent
b2cc81be69
commit
d6f8c0fbe2
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user