+ partialptr = partial_dir ? partial_dir_fname(fname) : fname;
+
+ if (f_in_name >= 0) {
+ uchar j;
+ switch (j = read_byte(f_in_name)) {
+ case FNAMECMP_FNAME:
+ fnamecmp = fname;
+ break;
+ case FNAMECMP_PARTIAL_DIR:
+ fnamecmp = partialptr ? partialptr : fname;
+ break;
+ case FNAMECMP_BACKUP:
+ fnamecmp = get_backup_name(fname);
+ break;
+ case FNAMECMP_BASIS_DIR:
+ default:
+ pathjoin(fnamecmpbuf, sizeof fnamecmpbuf,
+ basis_dir[j], fname);
+ fnamecmp = fnamecmpbuf;
+ break;
+ }
+ } else
+ fnamecmp = fname;
+