OSDN Git Service

* cygheap.h (class cwdstuff): Make drive_length private.
authorcorinna <corinna>
Fri, 13 Aug 2010 11:51:52 +0000 (11:51 +0000)
committercorinna <corinna>
Fri, 13 Aug 2010 11:51:52 +0000 (11:51 +0000)
commitdd7c42514921c15b07a80a8c9fa06c62673a6f72
tree4ca1495fc093262470b1e2d640feffa2be00f183
parent00948767164d672b6ae1568874b8a21d5f3bdfa0
* cygheap.h (class cwdstuff): Make drive_length private.
Add "error" member.
(cwdstuff::get_error): New inline method.
(cwdstuff::get_error_desc): Declare.
(cwdstuff::set): Change first parameter to pointer to path_conv.
* path.cc (chdir): Drop doit.  Align call to cwdstuff::set to
new arguments.
(cwdstuff::init): Only call cwdstuff::set if it's not already
initialized.  Add comment.  Drop third parameter in call to
cwdstuff::set.
(cwdstuff::set): Partially rewrite.  Add lots of comments to explain
everything.  Drop "doit" since it's not used anymore.  Always create
new handle to CWD if not in a virtual path.  Drop PEB locking when
reading PEB values in init phase.  Check for accessibility to set
correct error code.  Drop Vista workaround.  Never write back into PEB.
Set Win32 CWD to \\?\PIPE\ on init.  Simplify creation of win32 path.
Set new error member to a meaningful value.
(cwdstuff::get_error_desc): New method to generate error message
from cwd error code.
* spawn.cc (spawn_guts): Call cwdstuff::get_error_desc to create
more meaningful error message when not being able to start native
Win32 app due to CWD restrictions.  When starting native Win32 app,
lock cwd and use in calls to CreateProcessW/CreateProcessAsUserW.
winsup/cygwin/ChangeLog
winsup/cygwin/cygheap.h
winsup/cygwin/path.cc
winsup/cygwin/spawn.cc