Updated from libc
authorRoland McGrath <roland@redhat.com>
Mon, 13 May 1996 23:16:23 +0000 (23:16 +0000)
committerRoland McGrath <roland@redhat.com>
Mon, 13 May 1996 23:16:23 +0000 (23:16 +0000)
glob/ChangeLog
glob/glob.c

index 7a8923ced531a0497eba3904010a1738ce020400..33c16565dbae95c1b5887927dff5f67b36226724 100644 (file)
@@ -1,3 +1,9 @@
+Mon May 13 12:03:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+
+       * posix/glob.c [_AMIGA]: Don't include <pwd.h>.
+       (glob): Remove bogus & in call to globfree.
+       [_AMIGA]: Use AmigaDOS file name conventions.
+
 Thu May  9 09:17:46 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
        * posix/glob/SMakefile, posix/glob/SCOPTIONS, posix/glob/Makefile.ami:
index 1a00af6f3fca5b1bfabe34fe4593f003d5f8e6a0..7dfd7f5347bff59fc6195e3ba88d07f764d304ce 100644 (file)
@@ -65,7 +65,9 @@ Cambridge, MA 02139, USA.  */
 #endif
 #endif
 
+#ifndef _AMIGA
 #include <pwd.h>
+#endif
 
 #if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS)
 extern int errno;
@@ -160,6 +162,7 @@ extern void bcopy ();
 #ifdef __GNUC__
 __inline
 #endif
+#ifndef __SASC
 static char *
 my_realloc (p, n)
      char *p;
@@ -172,7 +175,8 @@ my_realloc (p, n)
   return (char *) realloc (p, n);
 }
 #define        realloc my_realloc
-#endif
+#endif /* __SASC */
+#endif /* __GNU_LIBRARY__ */
 
 
 #if    !defined(__alloca) && !defined(__GNU_LIBRARY__)
@@ -332,7 +336,7 @@ glob (pattern, flags, errfunc, pglob)
              if (onealt == NULL)
                {
                  if (!(flags & GLOB_APPEND))
-                   globfree (&pglob);
+                   globfree (pglob);
                  return GLOB_NOSPACE;
                }
 #endif
@@ -391,7 +395,11 @@ glob (pattern, flags, errfunc, pglob)
   if (filename == NULL)
     {
       filename = pattern;
+#ifdef _AMIGA
+      dirname = (char *) "";
+#else
       dirname = (char *) ".";
+#endif
       dirlen = 0;
     }
   else if (filename == pattern)
@@ -433,6 +441,10 @@ glob (pattern, flags, errfunc, pglob)
        {
          /* Look up home directory.  */
          dirname = getenv ("HOME");
+#ifdef _AMIGA
+         if (dirname == NULL || dirname[0] == '\0')
+           dirname = "SYS:";
+#else
          if (dirname == NULL || dirname[0] == '\0')
            {
              extern char *getlogin __P ((void));
@@ -446,13 +458,19 @@ glob (pattern, flags, errfunc, pglob)
            }
          if (dirname == NULL || dirname[0] == '\0')
            dirname = (char *) "~"; /* No luck.  */
+#endif
        }
       else
        {
+#ifdef _AMIGA
+         if (dirname == NULL || dirname[0] == '\0')
+           dirname = "SYS:";
+#else
          /* Look up specific user's home directory.  */
          struct passwd *p = getpwnam (dirname + 1);
          if (p != NULL)
            dirname = p->pw_dir;
+#endif
        }
     }
 
@@ -774,7 +792,11 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
 
            if (fnmatch (pattern, name,
                         (!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) |
-                        ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0)) == 0)
+                        ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0)
+#ifdef _AMIGA
+                        | FNM_CASEFOLD
+#endif
+                        ) == 0)
              {
                struct globlink *new
                  = (struct globlink *) __alloca (sizeof (struct globlink));