classic adouble format
*/
-static int validupath_adouble(const struct vol *vol, const char *name)
+static int netatalk_name(const char *name)
{
- return (vol->v_flags & AFPVOL_USEDOTS) ?
- strcasecmp(name,".AppleDB") &&
- strcasecmp(name,".AppleDouble") &&
- strcasecmp(name,".AppleDesktop") &&
- strcasecmp(name,".Parent")
- : name[0] != '.';
+ return strcasecmp(name,".AppleDB") &&
+ strcasecmp(name,".AppleDouble") &&
+ strcasecmp(name,".AppleDesktop");
}
+static int validupath_adouble(const struct vol *vol, const char *name)
+{
+ return (vol->v_flags & AFPVOL_USEDOTS) ?
+ netatalk_name(name) && strcasecmp(name,".Parent"): name[0] != '.';
+}
+
/* ----------------- */
static int RF_chown_adouble(const struct vol *vol, const char *path, uid_t uid, gid_t gid)
/* =======================================
osx adouble format
*/
-static int validupath_osx(const struct vol *vol _U_, const char *name)
+static int validupath_osx(const struct vol *vol, const char *name)
{
- return strncasecmp(name,".Apple", 6) && strncasecmp(name,"._", 2);
-}
+ return strncmp(name,"._", 2) && (
+ (vol->v_flags & AFPVOL_USEDOTS) ? netatalk_name(name): name[0] != '.');
+}
/* ---------------- */
int RF_renamedir_osx(const struct vol *vol, const char *oldpath, const char *newpath)