You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@collab.net> on 2002/07/18 20:18:42 UTC

Re: [PATCH] docstrings on apr_filepath_merge() flags?

Ben Collins-Sussman <su...@collab.net> writes:

> I've got a path as a command-line argument, and I'm trying to convert
> it to canonical case using apr_filepath_merge:
> 
>    apr_err = apr_filepath_merge (&truenamed_target, NULL, raw_target,
>                                  APR_FILEPATH_TRUENAME, pool);
> 
> Unfortunately, this had the side-effect of converting a relative path
> into an absolute path.
> 
> After some experimentation, I discovered that adding the
> APR_FILEPATH_NOTABSOLUTE flag prevented this behavior.
> 
> What annoys me is that I *deliberately* ignored this flag, because of
> its cryptic docstring:
> 
>    /** Fail apr_filepath_merge if the merged path is absolute */
>    #define APR_FILEPATH_NOTABSOLUTE    0x08
> 
> I read this docstring, and thought it was talking about somehow
> restricting the *inputs* to the function... like forcing the function
> to only accept absolute paths, or something.  It doesn't make a lot of
> sense.

[Crossposting to svn and apr lists.  svn people, read my original mail
to apr above.]

Argh, it seems that this flag doesn't do exactly what I thought.

The flag definitely prevents apr_filepath_merge from absolutizing
everything;  but now it actually *errors* if you pass an absolute path
into it!

I need a simple behavior:  "accept either relative or absolute input;
and don't change the output at all."  That is, relative input produces
relative output, and absolute input produces absolute output.  I
*just* want the case canonicalized, no other side-effects.  :-)

Does this mean it's time to add another flag?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org