OSDN Git Service

* path.cc (special_name): Accommodate all special names with extensions.
authorcgf <cgf>
Sun, 17 Aug 2003 16:33:15 +0000 (16:33 +0000)
committercgf <cgf>
Sun, 17 Aug 2003 16:33:15 +0000 (16:33 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/path.cc

index ed37e0b..6debe68 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-17  Christopher Faylor  <cgf@redhat.com>
+
+       * path.cc (special_name): Accommodate all special names with
+       extensions.
+
 2003-08-15  Corinna Vinschen  <corinna@vinschen.de>
 
        * mmap.cc (mmap64): Avoid crash if file size is less than requested
@@ -10,7 +15,7 @@
 
 2003-08-13  Corinna Vinschen  <corinna@vinschen.de>
 
-       * cygwin.din: Accomodate change from cygwin_lstat to lstat.
+       * cygwin.din: Accommodate change from cygwin_lstat to lstat.
        * syscalls.cc: Add defines to avoid declaration issues when
        renaming cygwin_lstat back to lstat.
        (lstat): Reverted name change from cygwin_lstat.
        * shared_info.h: Match shared_name declaration with below change.
        * shared.cc (shared_name): Use incoming char * parameter instead of
        local static buffer.
-       (open_shared): Accomodate new calling convention for shared_name.
+       (open_shared): Accommodate new calling convention for shared_name.
        * exceptions.cc (events_init): Ditto.
        * sigproc.cc (getsem): Ditto.
        * syscalls.cc (login): Ditto.
 
        * fhandler_socket.cc (secret_event_name): Return void.  Use incoming
        char * parameter instead of local static buffer.
-       (fhandler_socket::create_secret_event): Accomodate new calling
+       (fhandler_socket::create_secret_event): Accommodate new calling
        convention for secret_event_name.
        (fhandler_socket::close_secret_event): Ditto.
 
        * wincap.cc: Set has_terminal_services capability throughout.
        (wincap_2003): New global object representing Windows 2003 Server
        capabilities.
-       (wincapc::init): Accomodate Windows 2003 Server.
+       (wincapc::init): Accommodate Windows 2003 Server.
        * wincap.h (struct wincaps): Add has_terminal_services capability.
 
 2003-05-20  Charles Wilson  <cygwin@cwilson.fastmail.fm>
        (mmap_record::fixup_map): Format change.
        (list::add_record): Add offset and length parameter to call
        mmap_record::alloc_map() correctly.
-       (mmap64): Rename `l' variable to `map_list'.  Accomodate above changes.
+       (mmap64): Rename `l' variable to `map_list'.  Accommodate above changes.
        (munmap): Rename `l' variable to `map_list'.
        (msync): Ditto.
        (fhandler_disk_file::mmap): Streamline code.
index 7241994..bffddce 100644 (file)
@@ -1418,24 +1418,21 @@ special_name (const char *s, int inc = 1)
   if (strpbrk (s, special_chars))
     return !strncasematch (s, "%2f", 3);
 
-  // FIXME: add com0 and {com,lpt}N.*
-  if (strcasematch (s, "nul")
-      || strncasematch (s, "nul.", 4)
-      || strcasematch (s, "aux")
-      || strncasematch (s, "aux.", 4)
-      || strcasematch (s, "prn")
-      || strncasematch (s, "prn.", 4)
-      || strcasematch (s, "con")
-      || strncasematch (s, "con.", 4)
-      || strcasematch (s, "conin$")
-      || strcasematch (s, "conout$"))
+  const char *p;
+  if (strcasematch (s, "conin$") || strcasematch (s, "conout$"))
     return -1;
-  if (!strncasematch (s, "com", 3)
-      && !strncasematch (s, "lpt", 3))
+
+  if (strncasematch (s, "nul", 3)
+      || strncasematch (s, "aux", 3)
+      || strncasematch (s, "prn", 3)
+      || strncasematch (s, "con", 3))
+    p = s + 3;
+  else if (strncasematch (s, "com", 3) || strncasematch (s, "lpt", 3))
+    (void) strtoul (s + 3, (char **) &p, 10);
+  else
     return false;
-  char *p;
-  (void) strtoul (s + 3, &p, 10);
-  return -(*p == '\0');
+
+  return (*p == '\0' || *p == '.') ? -1 : false;
 }
 
 bool