Update.
[kopensolaris-gnu/glibc.git] / io / fts.c
index 4ce6527..0172af7 100644 (file)
--- a/io/fts.c
+++ b/io/fts.c
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
  * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
@@ -231,6 +227,7 @@ fts_close(sp)
 {
        register FTSENT *freep, *p;
        int saved_errno;
+       int retval = 0;
 
        /*
         * This still works if we haven't read anything -- the dummy structure
@@ -259,15 +256,16 @@ fts_close(sp)
                (void)__close(sp->fts_rfd);
        }
 
-       /* Free up the stream pointer. */
-       free(sp);
-
        /* Set errno and return. */
        if (!ISSET(FTS_NOCHDIR) && saved_errno) {
                __set_errno (saved_errno);
-               return (-1);
+               retval = -1;
        }
-       return (0);
+
+       /* Free up the stream pointer. */
+       free (sp);
+
+       return retval;
 }
 
 /*
@@ -818,7 +816,7 @@ fts_stat(sp, dp, p, follow)
        /* If user needs stat info, stat buffer already allocated. */
        sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp;
 
-#ifdef DT_WHT
+#if defined DT_WHT && defined S_IFWHT
        /*
         * Whited-out files don't really exist.  However, there's stat(2) file
         * mask for them, so we set it so that programs (i.e., find) don't have