Eric Blake <[EMAIL PROTECTED]> writes:

> Should I add a dependency on the verify module to ensure that drive
> letter prefixes are only used on ASCII platforms?

I wouldn't bother, unless there's a serious possibility that we'll see
drive letter prefixes on an EBCDIC platform.  I think that unlikely.
Besides, if we ever port to OS/360, we'll need to rewrite all this
code anyway -- their file name syntax is _weird_.

> Should I still move FILE_SYSTEM_PREFIX_LEN out of config.h and into
> dirname.h?

I'd rather move it out of config.h, yes.  I have some qualms with
config.h containing ifdefs.

> POSIX poses the rule as: if "$string" is a valid filename, then 'cd
> "$(dirname "$string")"; ls "$(basename "$string")"' lists the same
> file

Yes, that's a better way to formulate the constraint (though it's not
a complete spec).

> (although POSIX fails to mention that this will fail if the
> filename contains a trailing newline).

That problem doesn't occur for dir_name and base_name though, right?
At least on Unix-like platforms.

> My patch makes base_name("c:/") return "".

Is "" a valid file name?  If not, then we're violating the constraint.
I don't know the DOS rules, but I suspect that the only suffix of
"c:/" that identifies the same file is "c:/" itself; in that case,
base_name("c:/") should return "c:/".

> For that matter, would it help to redefine our base_name to ALWAYS return
> the empty string if the argument is a root directory?

That might be simpler, yes, but due to backward-compatibility concerns
I might be inclined to give that function a different name --
base_component perhaps.

> Another thing to think about.  Currently, strip_trailing_slashes("///")
> currently calls base_name("///"), gets a single "/", skips past that
> slash, then returns false (leaving the user with "///" still).  But it
> might be more intuitive if it changed the input string to "/\0/" and
> returned true.

Yes, that's true.

I'd like someone to review the uses of base_name, dir_name, etc. in
coreutils and tar.  This will give us a better feeling for how these
changes would affect real code.  Perhaps our backward-compatibility
concerns are unwarranted....



_______________________________________________
bug-gnulib mailing list
bug-gnulib@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnulib

Reply via email to