}
+int mk_dir(const char *mp, const char *name)
+{
+ char full_name[100];
+
+ sprintf(full_name, "%s/%s", mp, name);
+
+ return yaffs_mkdir(full_name, S_IREAD| S_IWRITE);
+}
+
+int mk_file(const char *mp, const char *name)
+{
+ char full_name[100];
+ int h;
+
+ sprintf(full_name, "%s/%s", mp, name);
+
+ h = yaffs_open(full_name, O_RDWR | O_CREAT | O_TRUNC, S_IREAD| S_IWRITE);
+
+ yaffs_write(h, name, strlen(name));
+
+ yaffs_close(h);
+ return 0;
+}
+
+void xx_test(const char *mountpt)
+{
+ char xx_buffer[1000];
+
+ yaffs_start_up();
+
+ yaffs_format(mountpt,0,0,0);
+
+ yaffs_mount(mountpt);
+ printf("mounted\n");
+ dumpDir(mountpt);
+
+ printf("create files\n");
+
+ mk_dir(mountpt, "foo");
+ mk_file(mountpt, "foo/f1");
+ mk_file(mountpt, "foo/f2");
+ mk_file(mountpt, "foo/f3");
+ mk_file(mountpt, "foo/f4");
+ dump_directory_tree(mountpt);
+
+ printf("unmount and remount\n");
+
+ /* Unmount/remount */
+ yaffs_unmount(mountpt);
+ yaffs_mount(mountpt);
+ dump_directory_tree(mountpt);
+}
+
+void yy_test(const char *mountpt)
+{
+ char xx_buffer[1000];
+
+ yaffs_start_up();
+
+ yaffs_mount(mountpt);
+ dump_directory_tree(mountpt);
+}
+
+
void readdir_test(const char *mountpt)
{
char xx_buffer[1000];
//basic_utime_test("/yaffs2");
- format_test("/yaffs2");
+ //format_test("/yaffs2");
//max_files_test("/yaffs2");
//basic_utime_test("/yaffs2");
//case_insensitive_test("/yaffs2");
+ yy_test("/yaffs2");
+
+
return 0;
}
static int yaffs_wr_data_obj(struct yaffs_obj *in, int inode_chunk,
const u8 *buffer, int n_bytes, int use_reserve);
-
+static void yaffs_fix_null_name(struct yaffs_obj *obj, YCHAR *name,
+ int buffer_size);
/* Function to calculate chunk and offset */
return sum;
}
+
void yaffs_set_obj_name(struct yaffs_obj *obj, const YCHAR * name)
{
memset(obj->short_name, 0, sizeof(obj->short_name));
- if (name &&
+
+ if (name && !name[0]) {
+ yaffs_fix_null_name(obj, obj->short_name,
+ YAFFS_SHORT_NAME_LENGTH);
+ name = obj->short_name;
+ } else if (name &&
strnlen(name, YAFFS_SHORT_NAME_LENGTH + 1) <=
- YAFFS_SHORT_NAME_LENGTH)
+ YAFFS_SHORT_NAME_LENGTH) {
strcpy(obj->short_name, name);
- else
- obj->short_name[0] = _Y('\0');
+ }
+
obj->sum = yaffs_calc_name_sum(name);
}