$Id$
--- logrotate-3.7.1.orig/config.c	Thu Aug  7 13:13:14 2003
+++ logrotate-3.7.1/config.c	Sat Jan 20 18:54:35 2007
@@ -142,12 +142,17 @@ static int checkFile(const char * fname)
 	(!fname[1] || (fname[1] == '.' && !fname[2])))
 	return 0;
 
+    /* Don't include 'hidden' files either; this breaks Gentoo 
+       portage config file management http://bugs.gentoo.org/87683 */
+    if (fname[0] == '.')
+	return 0;
+
     /* Check if fname is ending in a taboo-extension; if so, return
        false */
     for (i = 0; i < tabooCount; i++) {
 	if (!strcmp(fname + strlen(fname) - strlen(tabooExts[i]),
 	    tabooExts[i])) {
-	    message(MESS_ERROR, "Ignoring %s, because of %s "
+	    message(MESS_DEBUG, "Ignoring %s, because of %s "
 		    "ending\n", fname, tabooExts[i]);
 
 	    return 0;
@@ -511,6 +516,14 @@ static int readConfigFile(const char * c
 		newlog->flags &= ~LOG_FLAG_IFEMPTY;
 
 		*endtag = oldchar, start = endtag;
+	    } else if (!strcmp(start, "dateext")) {
+		newlog->flags |= LOG_FLAG_DATEEXT;
+
+		*endtag = oldchar, start = endtag;
+	    } else if (!strcmp(start, "nodateext")) {
+		newlog->flags &= ~LOG_FLAG_DATEEXT;
+
+		*endtag = oldchar, start = endtag;
 	    } else if (!strcmp(start, "noolddir")) {
 		newlog->oldDir = NULL;
 
@@ -667,6 +680,21 @@ static int readConfigFile(const char * c
 		      message(MESS_ERROR, "%s:%d bad start count '%s'\n",
 			      configFile, lineNum, start);
 		      return 1;
+		    }
+		    *endtag = oldchar, start = endtag;
+		}
+	    } else if (!strcmp(start, "maxage")) {
+		*endtag = oldchar, start = endtag;
+
+		if (!isolateValue(configFile, lineNum, "maxage count", &start,
+				  &endtag)) {
+		    oldchar = *endtag, *endtag = '\0';
+
+		    newlog->rotateAge = strtoul(start, &chptr, 0);
+		    if (*chptr || newlog->rotateAge < 0) {
+			message(MESS_ERROR, "%s:%d bad maximum age '%s'\n",
+				configFile, lineNum, start);
+			return 1;
 		    }
 		    *endtag = oldchar, start = endtag;
 		}
