]> sourceware.org Git - newlib-cygwin.git/commitdiff
revert premature checkin
authorChristopher Faylor <me@cgf.cx>
Thu, 8 Nov 2007 14:37:59 +0000 (14:37 +0000)
committerChristopher Faylor <me@cgf.cx>
Thu, 8 Nov 2007 14:37:59 +0000 (14:37 +0000)
winsup/cygwin/dtable.cc
winsup/cygwin/fhandler.cc
winsup/cygwin/fhandler.h
winsup/cygwin/path.cc

index 019f8a1a685652d818396ec863e16100b2c7f9e4..f130a2ef7cef32a2f860f611d7f944900c404026 100644 (file)
@@ -41,17 +41,6 @@ static const NO_COPY DWORD std_consts[] = {STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
 
 static const char *handle_to_fn (HANDLE, char *);
 
-#define DEVICE_PREFIX "\\device\\"
-#define DEVICE_PREFIX_LEN sizeof (DEVICE_PREFIX) - 1
-#define REMOTE "\\Device\\LanmanRedirector\\"
-#define REMOTE_LEN sizeof (REMOTE) - 1
-#define REMOTE1 "\\Device\\WinDfs\\Root\\"
-#define REMOTE1_LEN sizeof (REMOTE1) - 1
-#define NAMED_PIPE "\\Device\\NamedPipe\\"
-#define NAMED_PIPE_LEN sizeof (NAMED_PIPE) - 1
-#define POSIX_NAMED_PIPE "/Device/NamedPipe/"
-#define POSIX_NAMED_PIPE_LEN sizeof (POSIX_NAMED_PIPE) - 1
-
 /* Set aside space for the table of fds */
 void
 dtable_init ()
@@ -294,7 +283,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
          else
            dev = *console_dev;
        }
-      else if (0 && ft == FILE_TYPE_PIPE)
+      else if (ft == FILE_TYPE_PIPE)
        {
          if (fd == 0)
            dev = *piper_dev;
@@ -308,12 +297,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
       else
        {
          name = handle_to_fn (handle, (char *) alloca (CYG_MAX_PATH + 100));
-         if (!strncasematch (name, POSIX_NAMED_PIPE, POSIX_NAMED_PIPE_LEN))
-           /* nothing */;
-         else if (fd == 0)
-           dev = *piper_dev;
-         else
-           dev = *pipew_dev;
+         bin = 0;
        }
     }
 
@@ -324,31 +308,25 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
       fhandler_base *fh;
 
       if (dev)
-       fh = build_fh_dev (dev, name);
+       fh = build_fh_dev (dev);
       else
        fh = build_fh_name (name);
 
       if (fh)
        cygheap->fdtab[fd] = fh;
 
-      if (name)
+      if (!bin)
        {
-         bin = fh->pc_binmode ();
-         if (!bin)
-           {
-             bin = fh->get_default_fmode (O_RDWR);
-             if (!bin && dev)
-               bin = O_BINARY;
-           }
+         bin = fh->get_default_fmode (O_RDWR);
+         if (bin)
+           /* nothing */;
+         else if (dev)
+           bin = O_BINARY;
+         else if (name != unknown_file)
+           bin = fh->pc_binmode ();
        }
 
-      DWORD access;
-      if (fd == 0)
-       access = GENERIC_READ;
-      else 
-       access = GENERIC_WRITE;  /* Should be rdwr for stderr but not sure that's
-                                   possible for some versions of handles */
-      fh->init (handle, access, bin);
+      fh->init (handle, GENERIC_READ | GENERIC_WRITE, bin);
       set_std_handle (fd);
       paranoid_printf ("fd %d, handle %p", fd, handle);
     }
@@ -847,6 +825,11 @@ dtable::vfork_child_fixup ()
 }
 #endif /*NEWVFORK*/
 
+#define DEVICE_PREFIX "\\device\\"
+#define DEVICE_PREFIX_LEN sizeof (DEVICE_PREFIX) - 1
+#define REMOTE "\\Device\\LanmanRedirector\\"
+#define REMOTE_LEN sizeof (REMOTE) - 1
+
 static const char *
 handle_to_fn (HANDLE h, char *posix_fn)
 {
@@ -861,7 +844,7 @@ handle_to_fn (HANDLE h, char *posix_fn)
   NTSTATUS res = NtQueryObject (h, ObjectNameInformation, ntfn, sizeof (fnbuf),
                                NULL);
 
-  if (!NT_SUCCESS (res))
+  if (NT_SUCCESS (res))
     {
       strcpy (posix_fn, unknown_file);
       debug_printf ("NtQueryObject failed");
@@ -918,7 +901,6 @@ handle_to_fn (HANDLE h, char *posix_fn)
     }
 
   char *w32 = win32_fn;
-  bool justslash = false;
   if (maxmatchlen)
     {
       n = strlen (maxmatchdos);
@@ -928,38 +910,15 @@ handle_to_fn (HANDLE h, char *posix_fn)
       memcpy (w32, maxmatchdos, n);
       w32[n] = '\\';
     }
-  else if (strncasematch (w32, NAMED_PIPE, NAMED_PIPE_LEN))
-    {
-      debug_printf ("pipe");
-      justslash = true;
-    }
   else if (strncasematch (w32, REMOTE, REMOTE_LEN))
     {
       w32 += REMOTE_LEN - 2;
       *w32 = '\\';
       debug_printf ("remote drive");
-      justslash = true;
-    }
-  else if (strncasematch (w32, REMOTE1, REMOTE1_LEN))
-    {
-      w32 += REMOTE1_LEN - 2;
-      *w32 = '\\';
-      debug_printf ("remote drive");
-      justslash = true;
     }
 
-  if (!justslash)
-    cygwin_conv_to_full_posix_path (w32, posix_fn);
-  else
-    {
-      char *s, *d;
-      for (s = w32, d = posix_fn; *s; s++, d++)
-       if (*s == '\\')
-         *d = '/';
-       else
-         *d = *s;
-    }
 
-  debug_printf ("derived path '%s', posix '%s'", w32, posix_fn);
+  debug_printf ("derived path '%s'", w32);
+  cygwin_conv_to_full_posix_path (w32, posix_fn);
   return posix_fn;
 }
index a479d1b28e37ba004d6effd3fc38fd0102b022ec..bc30a396cddf1dc65924c656686659a29fc22c33 100644 (file)
@@ -1639,7 +1639,6 @@ fhandler_base::wait_overlapped (bool& res, bool writing, DWORD *bytes)
       switch (WaitForMultipleObjects (n, w4, false, INFINITE))
        {
        case WAIT_OBJECT_0:
-         debug_printf ("normal read");
          if (!bytes ||
              GetOverlappedResult (h, get_overlapped (), bytes, false))
            res = 1;
@@ -1650,14 +1649,12 @@ fhandler_base::wait_overlapped (bool& res, bool writing, DWORD *bytes)
            }
          break;
        case WAIT_OBJECT_0 + 1:
-         debug_printf ("got a signal");
          CancelIo (h);
          set_errno (EINTR);
          res = 0;
          break;
        default:
          err = GetLastError ();
-         debug_printf ("WFMO error, %E");
          goto err;
          break;
        }
index 45588fef904be702f6bc76ecfcc9a1a7a1382c31..665dd51e1f19a08575d8614195e8dc34354fad9b 100644 (file)
@@ -149,7 +149,6 @@ class fhandler_base
   path_conv pc;
 
   virtual void set_name (path_conv &pc);
-  virtual void set_name (const char *s) {pc.set_normalized_path (s, false);}
   int error () const {return pc.error;}
   void set_error (int error) {pc.error = error;}
   bool exists () const {return pc.exists ();}
@@ -547,7 +546,6 @@ public:
   int __stdcall fadvise (_off64_t, _off64_t, int) __attribute__ ((regparm (3)));
   int __stdcall ftruncate (_off64_t, bool) __attribute__ ((regparm (3)));
   int ready_for_read (int fd, DWORD howlong);
-  void init (HANDLE, DWORD, mode_t);
   static int create (fhandler_pipe *[2], unsigned, int);
   static int create_selectable (LPSECURITY_ATTRIBUTES, HANDLE&, HANDLE&, DWORD);
 };
index d0de90ec3142b83044b1c08a9b9da3a4806e0f5f..a10a29339c10a8611b91de9a44a31ddb5db8c694 100644 (file)
@@ -543,7 +543,7 @@ path_conv::set_normalized_path (const char *path_copy, bool strip_tail)
 }
 
 PUNICODE_STRING
-get_nt_native_path (const char *path, UNICODE_STRINGupath)
+get_nt_native_path (const char *path, UNICODE_STRING &upath)
 {
   upath.Length = 0;
   if (path[0] == '/')          /* special path w/o NT path representation. */
This page took 0.038068 seconds and 5 git commands to generate.