On 01/12/2013 06:44:16 AM, [email protected] wrote:
Hi Rob.
New account, let the spam begin (NOT) :-)
When you added the help for cp -n I noticed the
help for -p is missing,
$ ./toybox help cp | grep '[-]p'
-p preserve timestamps, ownership, and permissions
?
even though the help -a
refers to it. Now I notice a few others are also
undocumented.
There's a longstanding missing feature in the help text, which is that
multiple config options don't get collated properly. In this case,
there's a CONFIG_CP and CONFIG_CP_MORE (all the non-posix options,
-rdavsl).
The problem is that I need to merge "usage:" lines, which involves a
certain amount of string parsing that's tricky to do in shell. I should
take another stab at it...
Also, this looks suspicious:
http://landley.net/hg/toybox/rev/5bc258a4c750
1.22 + // Detect recursive copies via
repeated top node (cp -R .. .) or
1.23 + // identical source/target (fun with
hardlinks).
1.24 + if ((TT.top.st_dev == try->st.st_dev
&& TT.top.st_ino == try->st.st_ino
1.25 + && (catch = TT.destname))
1.26 + || (!fstatat(cfd, catch, &cst,
0) && cst.st_dev == try->st.st_dev
1.27 + && cst.st_ino == try->st.st_ino))
Because the first if that assigns catch is highly
conditional and the second half uses it
unconditionally.
It's initialized in the declaration:
char *catch = try->parent ? try->name : TT.destname
The assignment in the first half of that just changes the value,
otherwise we stick with the default. (In reality, the assignment is
just to get the right error_ms, we trust it never to be null because
it's initialized in the caller.)
Rob
_______________________________________________
Toybox mailing list
[email protected]
http://lists.landley.net/listinfo.cgi/toybox-landley.net