Euphoria
Ticket #853:
walk_dir does not recurse directories
-
Reported by
mattlewis
Feb 21, 2013
The following code never returns from walk_dir:
include std/filesys.e
function my_function( sequence path_name, sequence item )
printf(1, "%s : %s\n", { path_name, item[D_NAME]} )
return 0
end function
puts(1, "starting...\n")
walk_dir( current_dir(), routine_id( "my_function" ), 1 )
puts(1, "done.\n")
It seems to work correctly when there are no subdirectories to actually recurse.
Details
1. Comment by mattlewis
Feb 21, 2013
Actually, the problem was that I had a directory named "*.*".
2. Comment by jimcbrown
Feb 21, 2013
That's a valid name. The code should be able to deal with this.
3. Comment by mattlewis
Feb 21, 2013
I agree. But it's important for the diagnosis.
4. Comment by DerekParnell
Feb 21, 2013
In Windows (tm) systems, a folder/file cannot have certain characters in their name. They cannot have any of the following ...
\ / : * ? " < > |
5. Comment by mattlewis
Feb 21, 2013
Yes, this was on an ext4 filesystem, where the only characters you can't use are NULL and /.
6. Comment by SDPringle
Jan 31, 2015
I reproduced this on Linux/32bit on an ext3 file system.
7. Comment by SDPringle
Jan 31, 2015
See: hg:euphoria/rev/19b9a8f7e142
changeset: 6299:19b9a8f7e142 branch: 4.0 tag: tip user: Shawn Pringle <shawn.pringle@gmail.com> date: Sat Jan 31 13:43:06 2015 -0300 files: include/std/filesys.e tests/t_walkdir.e description:
- ticket 853: fixes walk_dir in the strange *.* directory name case.
8. Comment by SDPringle
Oct 20, 2015
marking fixed.
9. Comment by SDPringle
May 04, 2018
See: hg:euphoria/rev/5b8912a4a2cf
changeset: 6468:5b8912a4a2cf branch: 4.0 user: Shawn David Pringle B.Sc. <shawn.pringle@gmail.com> date: Fri May 04 10:00:59 2018 -0300 files: docs/release/4.0.6.txt description:
- updated the release notes. ticket 831, ticket 907, ticket 803, ticket 853, ticket 928, ticket 938, ticket 752, ticket 915, ticket 948, ticket 921