Index: packages/fs/ram/current/ChangeLog =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/ram/current/ChangeLog,v retrieving revision 1.8 diff -u -5 -r1.8 ChangeLog --- packages/fs/ram/current/ChangeLog 8 Jan 2004 17:24:27 -0000 1.8 +++ packages/fs/ram/current/ChangeLog 20 Feb 2004 10:28:54 -0000 @@ -1,5 +1,18 @@ +2004-02-20 Vincent Catros + + * src/ramfs.c : + (ramfs_find) Policy to skip path separator is no longer + "if '/' then skip" but "while '/' then skip" allowing + multi '/' separators (i.e : /tmp////foo). + (find_entry) Policy to detect end of path is no longer + "if '\0' then end_of_path" + but "while '/' skip it and then if '\0' then end_of_path" + allowing path terminated with any number of '/' + (i.e : chdir(/tmp///)). + + 2004-01-08 Vincent Catros * src/ramfs.c (ramfs_fo_write): Return ENOSPC when the filesystem is full. Index: packages/fs/ram/current/src/ramfs.c =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/ram/current/src/ramfs.c,v retrieving revision 1.5 diff -u -5 -r1.5 ramfs.c --- packages/fs/ram/current/src/ramfs.c 8 Jan 2004 17:24:27 -0000 1.5 +++ packages/fs/ram/current/src/ramfs.c 20 Feb 2004 10:28:57 -0000 @@ -1345,11 +1345,12 @@ // Isolate the next element of the path name. while( *n != '\0' && *n != '/' ) n++, namelen++; - // If we terminated on a NUL, set last flag. + // Check if this is the last path element. + while( *n == '/') n++; if( *n == '\0' ) ds->last = true; // update name in dirsearch object ds->name = name; @@ -1396,11 +1397,11 @@ return ENOERR; // Update dirsearch object to search next directory. d->dir = d->node; d->path += d->namelen; - if( *(d->path) == '/' ) d->path++; // skip dirname separators + while( *(d->path) == '/' ) d->path++; // skip dirname separators } } //========================================================================== // Pathconf support Index: packages/fs/rom/current/ChangeLog =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/rom/current/ChangeLog,v retrieving revision 1.13 diff -u -5 -r1.13 ChangeLog --- packages/fs/rom/current/ChangeLog 11 Dec 2003 12:55:41 -0000 1.13 +++ packages/fs/rom/current/ChangeLog 20 Feb 2004 10:28:57 -0000 @@ -1,5 +1,17 @@ +2004-02-20 Vincent Catros + + * src/fs-ecos.c : + (jffs2_find) Policy to skip path separator is no longer + "if '/' then skip" but "while '/' then skip" allowing + multi '/' separators (i.e : /tmp////foo). + (find_entry) Policy to detect end of path is no longer + "if '\0' then end_of_path" + but "while '/' skip it and then if '\0' then end_of_path" + allowing path terminated with any number of '/' + (i.e : chdir(/tmp///)). + 2003-12-11 Sandeep Kumar * src/romfs.c (romfs_mount) : function wrongly returns ENOENT even if fste->data isn't NULL. Index: packages/fs/rom/current/src/romfs.c =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/rom/current/src/romfs.c,v retrieving revision 1.5 diff -u -5 -r1.5 romfs.c --- packages/fs/rom/current/src/romfs.c 11 Dec 2003 12:55:42 -0000 1.5 +++ packages/fs/rom/current/src/romfs.c 20 Feb 2004 10:28:59 -0000 @@ -448,11 +448,12 @@ // Isolate the next element of the path name. while( *n != '\0' && *n != '/' ) n++, namelen++; - // If we terminated on a NUL, set last flag. + // Check if this is the last path element. + while( *n == '/') n++; if( *n == '\0' ) ds->last = true; // update name in dirsearch object ds->name = name; @@ -499,11 +500,11 @@ return ENOERR; // Update dirsearch object to search next directory. d->dir = d->node; d->path += d->namelen; - if( *(d->path) == '/' ) d->path++; // skip dirname separators + while( *(d->path) == '/' ) d->path++; // skip dirname separators } } //========================================================================== // Pathconf support Index: packages/fs/jffs2/current/ChangeLog =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/jffs2/current/ChangeLog,v retrieving revision 1.25 diff -u -5 -r1.25 ChangeLog --- packages/fs/jffs2/current/ChangeLog 17 Feb 2004 15:36:14 -0000 1.25 +++ packages/fs/jffs2/current/ChangeLog 20 Feb 2004 10:28:59 -0000 @@ -1,5 +1,17 @@ +2004-02-20 Vincent Catros + + * src/fs-ecos.c : + (jffs2_find) Policy to skip path separator is no longer + "if '/' then skip" but "while '/' then skip" allowing + multi '/' separators (i.e : /tmp////foo). + (find_entry) Policy to detect end of path is no longer + "if '\0' then end_of_path" + but "while '/' skip it and then if '\0' then end_of_path" + allowing path terminated with any number of '/' + (i.e : chdir(/tmp///)). + 2004-02-17 David Woodhouse * src/fs-ecos.c: Don't re-initialise the already-locked f->sem. It makes eCos unhappy. Index: packages/fs/jffs2/current/src/fs-ecos.c =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/jffs2/current/src/fs-ecos.c,v retrieving revision 1.18 diff -u -5 -r1.18 fs-ecos.c --- packages/fs/jffs2/current/src/fs-ecos.c 17 Feb 2004 15:36:14 -0000 1.18 +++ packages/fs/jffs2/current/src/fs-ecos.c 20 Feb 2004 10:29:01 -0000 @@ -261,11 +261,12 @@ // Isolate the next element of the path name. while (*n != '\0' && *n != '/') n++, namelen++; - // If we terminated on a NUL, set last flag. + // Check if this is the last path element. + while( *n == '/') n++; if (*n == '\0') ds->last = true; // update name in dirsearch object ds->name = name; @@ -351,11 +352,11 @@ jffs2_iput(d->dir); // Update dirsearch object to search next directory. d->dir = d->node; d->path += d->namelen; - if (*(d->path) == '/') + while (*(d->path) == '/') d->path++; // skip dirname separators } } //==========================================================================