This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Avoid duplicate names in /proc/registry (which may crash find) ?
- From: "Christian Franke" <Christian dot Franke at t-online dot de>
- To: cygwin at cygwin dot com
- Date: Tue, 02 Dec 2008 14:38:01 +0100
- Subject: Re: Avoid duplicate names in /proc/registry (which may crash find) ?
- References: <4934461E.5040708@t-online.de> <20081202120840.GM12905@calimero.vinschen.de>
- Reply-to: "Christian Franke" <Christian dot Franke at t-online dot de>
Corinna Vinschen wrote:
> ...
>
> Some random thoughts:
>
> - Do we really need d_type support in the registry? How often is that
> actually used?
>
/proc/registry is probably rarely used, so d_type support is not
important.
But adding it would be trivial and the effect is significant:
Speed up of "oldfind" (which does not crash :-) is >= 2.
> - If find crashes in this situation, isn't this a bug in find which
> should be fixed in find?
>
Yes. As far as I understand POSIX, it does not require "directory
snapshot" semantics for readdir(). So if e.g. a directory "foo" is
replaced by a file "foo" during a readdir() sequence, duplicate names
with different d_type may occur (at least in theory :-)
> - /proc/registry is a convenience for reading the registry. Due to
> some funny definitions of the registry it's not a full solution. You
> can't write this way, you can't even access the "(Default)" key
> values.
Access to (Default) works for me with "/proc/registry/.../key/@"
> I personally don't worry if some border cases don't work. For the
> border cases and for the full access we have regtool.
>
> Having said that, I really don't know what's the best solution for
> these problems would be. None of the above ideas are very attractive.
> For instance, in idea 1, the path would actually be
>
> /proc/registry/HKEY_LOCAL_MACHINE.key/SOFTWARE.key/Cygwin.key/blub.val
>
or:
3. Add an extension (describing its type) to value only:
/proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Cygwin/blub.type
But then a possible "somekey.type" should be escaped ...
> Shouldn't we rather defer these border cases to regtool?
>
Yes, further enhancements to /proc/registry are probably not worth the
effort.
Hmm... "/proc/registry/..." pathnames as an alternative for the
KEY/VALUE parameters of regtool would allow to use shell tab-completion
and therefore enhance usability (?).
Christian
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/