On Mar 3 13:12, Dave Korn wrote: > On 03 March 2006 09:46, Corinna Vinschen wrote: > > > > > Btw., since you seem to be interested in hacking the registry... would > > you also be interested to introduce registry write access below > > /proc/registry inside of the Cygwin DLL? That would be extra cool. > > I'm not quite sure how to handle the mapping from file types to > > registry key types, but there might be some simple way which I'm just > > too blind to see. > > > Hey, how about using pseudo filename-extensions on the pseudo-files that > represent registry keys? > > i.e > > $ echo "Foo" >/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.sz > creates /proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName, type > REG_SZ, content "Foo<NUL>" > > $ echo "%WINDIR%" > >/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.xsz > creates /proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName as > REG_EXPAND_SZ > > $ echo "23" > >/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.dword > $ echo "0x17" > >/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.dword > > $ dd bs=1024 count=3 if=/dev/random > of=/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.bin > > $ touch /proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.none > > etc etc ? (We might even want a $CYGWIN option to make the extension show up > in dir listings, but it wouldn't be backwardly-compatible to do so in > general). > > Hmm, and how about for MULTI_SZ taking account of the open mode? > > $ echo "String1" > >/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.msz > $ echo "String2" > >>/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.msz > $ echo "String3" > >>/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.msz > $ echo "String4" > >>/proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.msz > $ od -c < /proc/registry/HKEY_CURRENT_USER/Software/App/Key/ValueName.msz > String1\0String2\0String3\0String4\0\0
That's actually an interesting idea. I was always thinking along the lines of using POSIX file types (plain,socket,pipe,...). However, file suffixes is something we're already suffering from a lot (it's not by chance that SUFFix and SUFFer are so similar, IMHO). What if a key "foo.sz" really exists and somebody wants to create a registry key "foo"? When reading "foo", which file is meant? What's the order of checking suffixes? When somebody writes to a key "foo", what's the default suffix, er..., key type? Or does that fail with an error message? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat