[haiku-development] Re: BPath::Append() resets the original path in case of failure.

> This code:
>
>         BPath path1 = "/aaa/bbb";
>         BPath path2 = "/ccc/ddd";
>
>         path1.Append(path2.Path());
>
>         printf("%s\n", path1.Path());
>
> Will print "(null)". The reason is that path2 must be relative (and not
> absolute) so the call to Append fails. I don't have anymore any working
> ZETA or BeOS installations here to test but I would be surprised if
> this behaviour is expected. IMHO, it should simply not change the
> original path.
>
> So, is this really the wanetd behaviour? Can someone test this on BeOS/
> ZETA and check if the same happens?

Same Behavor in Zeta 1.5.

BPath path1 = "/aaa/bbb";
BPath path2 = "/ccc/ddd";
path1.Append(path2.Path());
printf("%s\n", path1.Path());
Prints = null

BPath path1 = "/aaa/bbb/";
BPath path2 = "ccc/ddd";
path1.Append(path2.Path());
printf("%s\n", path1.Path());
Prints = null

BPath path1 = "/aaa/bbb";
BPath path2 = "ccc/ddd";
path1.Append(path2.Path());
printf("%s\n", path1.Path());
Prints = /aaa/bbb            (no ccc/ddd added)

BPath path1 = "/aaa/bbb";
//BPath path2 = "/ccc/ddd";
path1.Append("ccc/ddd");
printf("%s\n", path1.Path());
Prints = /aaa/bbb/ccc/ddd/

>
> -Bruno
>
>
>
>


-- 
MVH
Fredrik Modéen


Other related posts: