source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Two sanity checks got lost in treescan()  during the switch from
@ 2013-06-05 20:27 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2013-06-05 20:27 UTC (permalink / raw)
  To: source

Log Message:
-----------
Two sanity checks got lost in treescan() 
during the switch from db to sqlite; restore these:

* Warn and skip when directory and file name mismatch.
* Warn and skip when finding special files.
* Warning about "mandocdb.db" is useless, it is always present.
* While here, do not hardcode "mandocdb.db", use MANDOC_DB.

Modified Files:
--------------
    mdocml:
        mandocdb.c

Revision Data
-------------
Index: mandocdb.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandocdb.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -Lmandocdb.c -Lmandocdb.c -u -p -r1.59 -r1.60
--- mandocdb.c
+++ mandocdb.c
@@ -567,6 +567,8 @@ treescan(void)
 		 * Disallow duplicate (hard-linked) files.
 		 */
 		if (FTS_F == ff->fts_info) {
+			if (0 == strcmp(path, MANDOC_DB))
+				continue;
 			if ( ! use_all && ff->fts_level < 2) {
 				if (warnings)
 					say(path, "Extraneous file");
@@ -575,45 +577,50 @@ treescan(void)
 				if (warnings)
 					say(path, "Duplicate file");
 				continue;
-			} 
-
-			cp = ff->fts_name;
-
-			if (0 == strcmp(cp, "mandocdb.db")) {
-				if (warnings)
-					say(path, "Skip database");
-				continue;
-			} else if (NULL != (cp = strrchr(cp, '.'))) {
-				if (0 == strcmp(cp + 1, "html")) {
-					if (warnings)
-						say(path, "Skip html");
-					continue;
-				} else if (0 == strcmp(cp + 1, "gz")) {
+			} else if (NULL == (sec =
+					strrchr(ff->fts_name, '.'))) {
+				if ( ! use_all) {
 					if (warnings)
-						say(path, "Skip gz");
-					continue;
-				} else if (0 == strcmp(cp + 1, "ps")) {
-					if (warnings)
-						say(path, "Skip ps");
-					continue;
-				} else if (0 == strcmp(cp + 1, "pdf")) {
-					if (warnings)
-						say(path, "Skip pdf");
+						say(path,
+						    "No filename suffix");
 					continue;
 				}
-			}
-
-			if (NULL != (sec = strrchr(ff->fts_name, '.'))) {
-				*sec = '\0';
-				sec = stradd(sec + 1);
+			} else if (0 == strcmp(++sec, "html")) {
+				if (warnings)
+					say(path, "Skip html");
+				continue;
+			} else if (0 == strcmp(sec, "gz")) {
+				if (warnings)
+					say(path, "Skip gz");
+				continue;
+			} else if (0 == strcmp(sec, "ps")) {
+				if (warnings)
+					say(path, "Skip ps");
+				continue;
+			} else if (0 == strcmp(sec, "pdf")) {
+				if (warnings)
+					say(path, "Skip pdf");
+				continue;
+			} else if ( ! use_all &&
+			    ((FORM_SRC == dform && strcmp(sec, dsec)) ||
+			     (FORM_CAT == dform && strcmp(sec, "0")))) {
+				if (warnings)
+					say(path, "Wrong filename suffix");
+				continue;
+			} else {
+				sec[-1] = '\0';
+				sec = stradd(sec);
 			}
 			name = stradd(ff->fts_name);
 			ofadd(dform, path, 
 				name, dsec, sec, arch, ff->fts_statp);
 			continue;
 		} else if (FTS_D != ff->fts_info && 
-				FTS_DP != ff->fts_info)
+				FTS_DP != ff->fts_info) {
+			if (warnings)
+				say(path, "Not a regular file");
 			continue;
+		}
 
 		switch (ff->fts_level) {
 		case (0):
--
 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:[~2013-06-05 20:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-05 20:27 mdocml: Two sanity checks got lost in treescan() during the switch from 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).