Remove duplicate code. Thanks Johann
[yaffs2.git] / direct / yaffsfs.c
index 9d7804c153d1e113aa6b987cf861de53f188b4e3..9ac4493d7cf842171753097bd9c2521defe2b4b2 100644 (file)
@@ -25,7 +25,7 @@
 #endif
 
 
-const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.13 2006-10-03 10:13:03 charles Exp $";
+const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.15 2006-11-17 01:43:48 charles Exp $";
 
 // configurationList is the list of devices that are supported
 static yaffsfs_DeviceConfiguration *yaffsfs_configurationList;
@@ -729,10 +729,6 @@ int yaffsfs_DoUnlink(const char *path,int isDirectory)
        {
                yaffsfs_SetError(-ENOTDIR);
        }
-       else if(isDirectory && obj->variantType != YAFFS_OBJECT_TYPE_DIRECTORY)
-       {
-               yaffsfs_SetError(-ENOTDIR);
-       }
        else
        {
                result = yaffs_Unlink(dir,name);
@@ -1302,8 +1298,14 @@ struct yaffs_dirent *yaffs_readdir(yaffs_DIR *dirp)
                yaffsfs_SetError(0);
                if(dsc->nextReturn){
                        dsc->de.d_ino = yaffs_GetEquivalentObject(dsc->nextReturn)->objectId;
+                       dsc->de.d_dont_use = (unsigned)dsc->nextReturn;
                        dsc->de.d_off = dsc->offset++;
-                       yaffs_GetObjectName(dsc->nextReturn,dsc->de.d_name,NAME_MAX+1);
+                       yaffs_GetObjectName(dsc->nextReturn,dsc->de.d_name,NAME_MAX);
+                       if(strlen(dsc->de.d_name) == 0)
+                       {
+                               // this should not happen!
+                               strcpy(dsc->de.d_name,"zz");
+                       }
                        dsc->de.d_reclen = sizeof(struct yaffs_dirent);
                        retVal = &dsc->de;
                        yaffsfs_DirAdvance(dsc);