Author: wayland Date: 2009-08-18 12:16:37 +0200 (Tue, 18 Aug 2009) New Revision: 28019
Modified: docs/Perl6/Spec/S16-io.pod docs/Perl6/Spec/S32-setting-library/IO.pod Log: S32/IO: Mention that Path can be used as an array of path elements S16: Restrict filenames to POSIX Modified: docs/Perl6/Spec/S16-io.pod =================================================================== --- docs/Perl6/Spec/S16-io.pod 2009-08-18 09:47:04 UTC (rev 28018) +++ docs/Perl6/Spec/S16-io.pod 2009-08-18 10:16:37 UTC (rev 28019) @@ -103,16 +103,21 @@ =head3 Default constraints -The default p{} only allows "/" as separator and does not allow path elements -to contain -characters that won't work on modern Windows and Unix like \ / ? % * : | " > <, -etc. The reason for this is that portable paths are the default. If -platform/filesystem specific behavior is really needed it should be shown in +The default paths are portable paths. These are POSIX-compatible (see +POSIX.1-2008 sections4.7 and 3.276). If +platform/filesystem specific behavior is needed it should be shown in the code by applying different sets of constraints (see below). +The default constraints are to only allow "/" as separator and only allows +POSIX filenames. That means A-Z, a-z, 0-9, <period>, <underscore>, and +<hyphen>. Additionally, hyphen may not be the first character in the path. + +Any path that starts with a "/" is considered an absolute path, otherwise +the path is considered relative. + =head3 Windows-style constraints -We allow windows style paths so converting and maintaining code on this +We allow Windows style paths so converting and maintaining code on this platform is not a pain. my Path $path = p:win{C:\Program Files\MS Access\file.file}; @@ -131,6 +136,11 @@ And for cases where this is a problem p:bin{} can be used as no checking is done here, other than assuming that / is the separator. +=head3 Other constraints + +It is expected that other sets of constraints, such as VMS, DOS, and old-style +Mac will be provided by modules. + =head1 Name Services =head2 User role Modified: docs/Perl6/Spec/S32-setting-library/IO.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/IO.pod 2009-08-18 09:47:04 UTC (rev 28018) +++ docs/Perl6/Spec/S32-setting-library/IO.pod 2009-08-18 10:16:37 UTC (rev 28019) @@ -680,7 +680,7 @@ are usually created with the p{/path/to/file} syntax. It could be a directory, file, link, or something else OS-specific. - role Path { + role Path does Str does Array { has Str $.Type; has Array of Str @.Elements; has Array of IO::ACL @.ACLs; @@ -698,6 +698,10 @@ C<$.Type> can be C<File>, C<Directory>, C<Link>, or C<Other>. See C<.create()> method documentation for how it is set. +When used as a Str, it allows some operations, so that it can be concatenated +easily with other strings. When used as an Array, it acts as an array of +path elements. + =head3 Methods =over 4