version 1.4, 2000/02/26 23:22:44 |
version 1.5, 2000/02/27 05:49:14 |
|
|
return (ABORT); |
return (ABORT); |
} |
} |
(void) strcpy(nname, fn); |
(void) strcpy(nname, fn); |
/* |
(void) strcat(nname, "~"); |
* with BSD, just strcat the ~. But SV has a max file name of 14, so |
if (rename(fn, nname) < 0) { |
* we have to check. |
|
*/ |
|
lastpart = strrchr(nname, '/'); |
|
if (lastpart) |
|
lastpart++; |
|
else |
|
lastpart = nname; |
|
i = strlen(lastpart); |
|
if (i > 13) |
|
if (lastpart[13] == '~') { /* already a backup name */ |
|
free(nname); |
|
return(FALSE); |
|
} |
|
else |
|
lastpart[13] = '~'; |
|
else { |
|
lastpart[i] = '~'; |
|
lastpart[i+1] = 0; |
|
} |
|
(void) unlink(nname); /* Ignore errors. */ |
|
if (link(fn, nname) != 0 || unlink(fn) != 0) { |
|
free(nname); |
free(nname); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
ewprintf("Bad directory name"); |
ewprintf("Bad directory name"); |
return NULL; |
return NULL; |
} |
} |
|
if(dirname[strlen(dirname)-1] != '/') (VOID) strcat(dirname, "/"); |
if((bp = findbuffer(dirname)) == NULL) { |
if((bp = findbuffer(dirname)) == NULL) { |
ewprintf("Could not create buffer"); |
ewprintf("Could not create buffer"); |
return NULL; |
return NULL; |