You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Nic Benders <xa...@slackworks.com> on 1998/03/23 20:41:23 UTC

mod_autoindex/1979: Change of behavior for listings with SuppressDescription enabled

>Number:         1979
>Category:       mod_autoindex
>Synopsis:       Change of behavior for listings with SuppressDescription enabled
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          change-request
>Submitter-Id:   apache
>Arrival-Date:   Mon Mar 23 11:50:01 PST 1998
>Last-Modified:
>Originator:     xac@slackworks.com
>Organization:
apache
>Release:        1.3b5
>Environment:
Linux 2.0.32, RedHat 5.0, i386 (P5/133), gcc 2.7.2.3
>Description:
When the description field is turned disabled, the space on the page from it is not reclaimed.  This can be a big problem in a situation where files with long names are being server ("SuperDuperBigPatch-0.." which version is it?).  I have provided a simplistic patch that allows for two states, one with SUPPRESS_DESC and one without.  I guess this is really more of a proof of concept patch, but I have been using it on my server for a few weeks, both on pages with and without SuppressDescription.

Aaah, Opensource.  If you don't like the program, fix it.
>How-To-Repeat:

>Fix:
--- mod_autoindex.c	Sat Feb 11 21:18:01 1998
+++ mod_autoindex.c.new	Sat Mar 14 22:21:27 1998
@@ -58,6 +58,9 @@
  * 3/23/93
  * 
  * Adapted to Apache by rst.
+ *
+ * Changed to use free space for longer filenames when SuppressDescription
+ * is turned on.  -Xac Slack (3/14/98)
  */
 
 #include "httpd.h"
@@ -790,11 +793,18 @@
 			       autoindex_config_rec * d, request_rec *r,
 			     int autoindex_opts, char keyid, char direction)
 {
-    int x, len;
+    int x, y, len;
     char *name = r->uri;
     char *tp;
     int static_columns = (autoindex_opts & SUPPRESS_COLSORT);
     pool *scratch = make_sub_pool(r->pool);
+    int FileNameMaxLength;
+
+    if (autoindex_opts & SUPPRESS_DESC) {
+      FileNameMaxLength = 46;
+    } else {
+      FileNameMaxLength = 23;
+    }
 
     if (name[0] == '\0')
 	name = "/";
@@ -816,7 +826,12 @@
 	    rputs("> ", r);
 	}
         emit_link(r, "Name", K_NAME, keyid, direction, static_columns);
-	rputs("                   ", r);
+	if (autoindex_opts & SUPPRESS_DESC) {
+	  rputs("                                         ", r);
+	} else {
+	  rputs("                   ", r);
+	}
+
 	if (!(autoindex_opts & SUPPRESS_LAST_MOD)) {
             emit_link(r, "Last modified", K_LAST_MOD, keyid, direction,
                       static_columns);
@@ -849,23 +864,27 @@
 	    anchor = pstrcat(scratch, "<A HREF=\"",
 			escape_html(scratch, os_escape_path(scratch, t, 0)),
 			     "\">", NULL);
-	    t2 = "Parent Directory</A>       ";
+	    if (autoindex_opts & SUPPRESS_DESC) {
+	      t2 = "Parent Directory</A>                              ";
+	    } else {
+	      t2 = "Parent Directory</A>       ";
+	    }
 	}
 	else {
 	    t = ar[x]->name;
 	    len = strlen(t);
-	    if (len > 23) {
+	    if (len > FileNameMaxLength) {
 		t2 = pstrdup(scratch, t);
-		t2[21] = '.';
-		t2[22] = '.';
-		t2[23] = '\0';
+		t2[FileNameMaxLength-2] = '.';
+		t2[FileNameMaxLength-1] = '.';
+		t2[FileNameMaxLength] = '\0';
 		t2 = escape_html(scratch, t2);
 		t2 = pstrcat(scratch, t2, "</A>", NULL);
 	    }
 	    else {
-		char buff[24] = "                       ";
+ 		char buff[47] = "                                              ";
 		t2 = escape_html(scratch, t);
-		buff[23 - len] = '\0';
+		buff[FileNameMaxLength - len] = '\0';
 		t2 = pstrcat(scratch, t2, "</A>", buff, NULL);
 	    }
 	    anchor = pstrcat(scratch, "<A HREF=\""%2
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]