source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Make this work on illumos: * define MAX() * ignore O_DIRECTORY
@ 2014-12-11 18:20 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-12-11 18:20 UTC (permalink / raw)
  To: source

Log Message:
-----------
Make this work on illumos:
* define MAX()
* ignore O_DIRECTORY if it isn't defined
* garbage collect two unused variables
Issues reported and fix tested by wiz@NetBSD.

Modified Files:
--------------
    mdocml:
        compat_fts.c

Revision Data
-------------
Index: compat_fts.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/compat_fts.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lcompat_fts.c -Lcompat_fts.c -u -p -r1.5 -r1.6
--- compat_fts.c
+++ compat_fts.c
@@ -62,6 +62,10 @@ static unsigned short	 fts_stat(FTS *, F
 static int	 fts_safe_changedir(FTS *, FTSENT *, int, const char *);
 
 #define	ISDOT(a)	(a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
+#define	MAX(a,b)	(((a)>(b))?(a):(b))
+#ifndef	O_DIRECTORY
+#define	O_DIRECTORY	0
+#endif
 
 #define	CLR(opt)	(sp->fts_options &= ~(opt))
 #define	ISSET(opt)	(sp->fts_options & (opt))
@@ -407,7 +411,7 @@ fts_build(FTS *sp)
 	DIR *dirp;
 	void *oldaddr;
 	size_t dlen, len, maxlen;
-	int nitems, cderrno, descend, level, nlinks, nostat, doadjust;
+	int nitems, cderrno, descend, level, doadjust;
 	int saved_errno;
 	char *cp;
 
@@ -425,14 +429,6 @@ fts_build(FTS *sp)
 	}
 
 	/*
-	 * Nlinks is the number of possible entries of type directory in the
-	 * directory if we're cheating on stat calls, 0 if we're not doing
-	 * any stat calls at all, -1 if we're doing stats on everything.
-	 */
-	nlinks = -1;
-	nostat = 0;
-
-	/*
 	 * If we're going to need to stat anything or we want to descend
 	 * and stay in the directory, chdir.  If this fails we keep going,
 	 * but set a flag so we don't chdir after the post-order visit.
@@ -449,8 +445,7 @@ fts_build(FTS *sp)
 	 */
 	cderrno = 0;
 	if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
-		if (nlinks)
-			cur->fts_errno = errno;
+		cur->fts_errno = errno;
 		cur->fts_flags |= FTS_DONTCHDIR;
 		descend = 0;
 		cderrno = errno;
@@ -545,21 +540,9 @@ mem1:				saved_errno = errno;
 		}
 
 		if (cderrno) {
-			if (nlinks) {
-				p->fts_info = FTS_NS;
-				p->fts_errno = cderrno;
-			} else
-				p->fts_info = FTS_NSOK;
+			p->fts_info = FTS_NS;
+			p->fts_errno = cderrno;
 			p->fts_accpath = cur->fts_accpath;
-		} else if (nlinks == 0
-#ifdef DT_DIR
-		    || (nostat &&
-		    dp->d_type != DT_DIR && dp->d_type != DT_UNKNOWN)
-#endif
-		    ) {
-			p->fts_accpath =
-			    ISSET(FTS_NOCHDIR) ? p->fts_path : p->fts_name;
-			p->fts_info = FTS_NSOK;
 		} else {
 			/* Build a file name for fts_stat to stat. */
 			if (ISSET(FTS_NOCHDIR)) {
@@ -569,11 +552,6 @@ mem1:				saved_errno = errno;
 				p->fts_accpath = p->fts_name;
 			/* Stat it. */
 			p->fts_info = fts_stat(sp, p);
-
-			/* Decrement link count if applicable. */
-			if (nlinks > 0 && (p->fts_info == FTS_D ||
-			    p->fts_info == FTS_DC || p->fts_info == FTS_DOT))
-				--nlinks;
 		}
 
 		/* We walk in directory order so "ls -f" doesn't get upset. */
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-12-11 18:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-11 18:20 mdocml: Make this work on illumos: * define MAX() * ignore O_DIRECTORY schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).