summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/fhandler.cc9
-rw-r--r--winsup/cygwin/fhandler.h1
-rw-r--r--winsup/cygwin/path.cc9
-rw-r--r--winsup/cygwin/path.h1
5 files changed, 27 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 6e1ad17e2..0a79d6d0f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,12 @@
2005-01-31 Christopher Faylor <cgf@timesys.com>
+ * path.h (path_conv::set_name): Declare new function.
+ * path.cc (path_conv::set_name): Define new function.
+ * fhandler.h (fhandler_dev_null::open): Declare new function.
+ * fhandler.cc (fhandler_dev_null::open): Define new function.
+
+2005-01-31 Christopher Faylor <cgf@timesys.com>
+
* smallprint.c (rnarg): Use long rather than unsigned long so that we
get proper sign extension.
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index ba539a33e..a58472b8c 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -1421,6 +1421,15 @@ fhandler_dev_null::dump (void)
paranoid_printf ("here");
}
+int
+fhandler_dev_null::open (int flags, mode_t mode)
+{
+ char posix[strlen (get_name ()) + 1];
+ strcpy (posix, get_name ());
+ pc.set_name ("NUL", posix);
+ return fhandler_base::open_9x (flags, mode);
+}
+
void
fhandler_base::set_no_inheritance (HANDLE &h, int not_inheriting)
{
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 3879e067e..103404c02 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -951,6 +951,7 @@ class fhandler_dev_null: public fhandler_base
{
public:
fhandler_dev_null ();
+ int open (int, mode_t);
void dump ();
select_record *select_read (select_record *s);
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 5d5d1eade..9705acd1a 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -942,6 +942,15 @@ out:
#endif
}
+void
+path_conv::set_name (const char *win32, const char *posix)
+{
+ if (!normalized_path_size && normalized_path)
+ cfree (normalized_path);
+ strcpy (path, win32);
+ set_normalized_path (posix, false);
+}
+
path_conv::~path_conv ()
{
if (!normalized_path_size && normalized_path)
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index 569d4560d..f9d206670 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -191,6 +191,7 @@ class path_conv
{path[0] = '\0';}
~path_conv ();
+ void set_name (const char *win32, const char *posix);
inline char *get_win32 () { return path; }
PUNICODE_STRING get_nt_native_path (UNICODE_STRING &upath);
operator char *() {return path;}