- /* deal with case insensitive, case-preserving filesystems. */
- if ((stat(upath, st) == 0)) {
- if ((size_t)-1 == (convert_string_allocate(vol->v_volcharset, CH_UCS2, oldname,
- strlen(oldname), (char**) &oldname_w)) ) {
- return AFPERR_MISC; /* conversion error has already been logged */
- }
- if ((size_t)-1 == (convert_string_allocate(vol->v_volcharset, CH_UCS2, newname,
- strlen(newname), (char**) &newname_w)) ) {
- free(oldname_w);
- return AFPERR_MISC; /* conversion error has already been logged */
- }
- if (!strcasecmp_w(oldname_w, newname_w)) {
- free(oldname_w);
- free(newname_w);
+ if (stat(upath, st) == 0) {
+ if (!stat(p, &nst) && !(nst.st_dev == st->st_dev && nst.st_ino == st->st_ino) ) {
+ /* not the same file */