cvs commit: apache-1.3/src/modules/standard mod_autoindex.c mod_include.c

1999-12-31 Thread dgaudet
dgaudet 99/12/30 21:35:53

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c mod_include.c
  Log:
  > Attached are 2 alternative diffs to finish implementing server-parsed
  > mod_autoindex Header and Readme files in apache_1.3. A third diff is
  > attached that shows the differences between the alternatives.
  >
  > Why this is needed: With an unpatched apache_1.3.9, the include variables
  > DOCUMENT_NAME, DOCUMENT_PATH_INFO, DOCUMENT_URI, LAST_MODIFIED,
  > SCRIPT_NAME, and SERVER_PROTOCOL will have values reflecting the Header
  > or Readme files instead of the directory. Contrast this with the use of
  > included files in a non directory document where those include variables
  > reflect the base document, not the included file.
  >
  > Both alternatives work with and without various pool/memory
  > allocation/deallocation debugging options enabled and using various
  > compiler optimization levels on Linux. Alternative 0 has been in use for
  > the last 6 months (without the ap_table_unset's in mod_autoindex) using
  > apache_1.3.7-dev (downloaded 19990504) without problems.
  >
  > Two alternatives are presented because Dean did not think that alternative
  > 0 was safe 6 months ago. I believe that it is and it provides a cleaner
  > method for module authors to use the power and flexibility of mod_include
  > to enhance generated content, like mod_autoindex.
  
  i chose alternative 0.
  
  Submitted by: Raymond S Brand <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.1487+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1486
  retrieving revision 1.1487
  diff -u -r1.1486 -r1.1487
  --- CHANGES   1999/12/28 09:12:33 1.1486
  +++ CHANGES   1999/12/31 05:35:48 1.1487
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.10
   
  +  *) Changes to enable server-parsed mod_autoindex Header and
  + Readme files. [Raymond S Brand <[EMAIL PROTECTED]>]
  +
 *) Add back support for UseCanonicalName in  containers
[Manoj Kasichainula]
   
  
  
  
  1.113 +16 -0 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.112
  retrieving revision 1.113
  diff -u -r1.112 -r1.113
  --- mod_autoindex.c   1999/12/01 22:10:45 1.112
  +++ mod_autoindex.c   1999/12/31 05:35:52 1.113
  @@ -970,6 +970,10 @@
   ap_rputs("\n", r);
   }
   
  +/* See mod_include */
  +#define SUB_REQ_STRING   "Sub request to mod_include"
  +#define PARENT_STRING"Parent request to mod_include"
  +
   /*
* Handle the preamble through the H1 tag line, inclusive.  Locate
* the file with a subrequests.  Process text/html documents by actually
  @@ -1012,6 +1016,11 @@
if (! suppress_amble) {
emit_preamble(r, title);
}
  +
  + /* See mod_include */
  + ap_table_add(r->notes, PARENT_STRING, "");
  + ap_table_add(rr->notes, SUB_REQ_STRING, "");
  +
/*
 * If there's a problem running the subrequest, display the
 * preamble if we didn't do it before -- the header file
  @@ -1022,6 +1031,7 @@
emit_amble = suppress_amble;
emit_H1 = 1;
}
  + ap_table_unset(r->notes, PARENT_STRING);/* cleanup */
}
else if (!strncasecmp("text/", rr->content_type, 5)) {
/*
  @@ -1087,11 +1097,17 @@
if (rr->content_type != NULL) {
if (!strcasecmp(ap_field_noparam(r->pool, rr->content_type),
"text/html")) {
  +
  + /* See mod_include */
  + ap_table_add(r->notes, PARENT_STRING, "");
  + ap_table_add(rr->notes, SUB_REQ_STRING, "");
  +
if (ap_run_sub_req(rr) == OK) {
/* worked... */
suppress_sig = 1;
suppress_post = suppress_amble;
}
  + ap_table_unset(r->notes, PARENT_STRING);/* cleanup */
}
else if (!strncasecmp("text/", rr->content_type, 5)) {
/*
  
  
  
  1.121 +58 -10apache-1.3/src/modules/standard/mod_include.c
  
  Index: mod_include.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_include.c,v
  retrieving revision 1.120
  retrieving revision 1.121
  diff -u -r1.120 -r1.121
  --- mod_include.c 1999/12/11 00:36:17 1.120
  +++ mod_include.c 1999/12/31 05:35:52 1.121
  @@ -108,9 +108,6 @@
   
   module MODULE_VAR_EXPORT includes_module;
   
  -/* just need some arb

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-12-01 Thread coar
coar99/12/01 14:10:50

  Modified:htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Add the long-awaited IndexOptions DescriptionWidth keyword.
It was waiting for a way to avoid breaking HTML tags, but
that's already been done as much as possible -- we can't
do anything about breaking HTML elements without putting
a full parser in.
  
  PR:   2324
  
  Revision  ChangesPath
  1.33  +22 -1 apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- mod_autoindex.html1999/12/01 20:33:48 1.32
  +++ mod_autoindex.html1999/12/01 22:10:32 1.33
  @@ -215,6 +215,17 @@
   IndexOptions SuppressSize, and 19 bytes may be
   added if IndexOptions SuppressLastModified is
   in effect.  The widest this column can be is therefore 49 bytes.
  +
  +As of Apache 1.3.10, the
  +DescriptionWidth
  +IndexOptions keyword allows you to adjust this width
  +to any arbitrary size.
  +
  +Caution: Descriptive text defined with AddDescription
  +may contain HTML markup, such as tags and character entities.  If the
  +width of the description column should happen to truncate a tagged
  +element (such as cutting off the end of a bolded phrase), the results
  +may affect the rest of the directory listing.
   
   
   
  @@ -545,13 +556,23 @@
REL="Help"
   >Compatibility: '+/-' syntax and merging of multiple
IndexOptions directives is only available with
  - Apache 1.3.3 and later; the FoldersFirst option is only
  + Apache 1.3.3 and later; the FoldersFirst and
  + DescriptionWidth options are only
available with Apache 1.3.10 and later
   
   
   The IndexOptions directive specifies the behavior of the directory indexing.
   Option can be one of
   
  +DescriptionWidth=[n | *]
  + (Apache 1.3.10 and later)
  +
  +The DescriptionWidth keyword allows you to specify the
  +width of the description column in characters.  If the keyword value
  +is '*', then the column is automatically sized to the
  +length of the longest filename in the display.
  +See the section on AddDescription
  +for dangers inherent in truncating descriptions.
   FancyIndexing
   
   This turns on fancy indexing of directories.
  
  
  
  1.1468+5 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1467
  retrieving revision 1.1468
  diff -u -r1.1467 -r1.1468
  --- CHANGES   1999/12/01 20:54:55 1.1467
  +++ CHANGES   1999/12/01 22:10:39 1.1468
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.10
   
  +  *) Add IndexOptions DescriptionWidth so that the width of the
  + description field in fancy-indexed directory listings can
  + be specified.
  + [Ken Coar] PR#2324, plus lots that are closed unsatisfied
  +
 *) EBCDIC: Escaped characters were encoding the ebcdic representation
of the special characters, not the latin1 representation. This
would result in invalid URI's for, e.g., filenames (with special chars)
  
  
  
  1.112 +80 -19apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.111
  retrieving revision 1.112
  diff -u -r1.111 -r1.112
  --- mod_autoindex.c   1999/12/01 20:34:10 1.111
  +++ mod_autoindex.c   1999/12/01 22:10:45 1.112
  @@ -125,6 +125,7 @@
* Other default dimensions.
*/
   #define DEFAULT_NAME_WIDTH 23
  +#define DEFAULT_DESC_WIDTH 23
   
   struct item {
   char *type;
  @@ -141,13 +142,14 @@
   } ai_desc_t;
   
   typedef struct autoindex_config_struct {
  -
   char *default_icon;
   int opts;
   int incremented_opts;
   int decremented_opts;
   int name_width;
   int name_adjust;
  +int desc_width;
  +int desc_adjust;
   int icon_width;
   int icon_height;
   char *default_order;
  @@ -465,6 +467,31 @@
d_cfg->name_adjust = K_NOADJUST;
}
}
  + else if (!strcasecmp(w, "DescriptionWidth")) {
  + if (action != '-') {
  + return "DescriptionWidth with no value may only appear as "
  +"'-DescriptionWidth'";
  + }
  + d_cfg->desc_width = DEFAULT_DESC_WIDTH;
  + d_cfg->desc_adjust = K_NOADJUST;
  + }
  + else if (!strncasecmp(w, "DescriptionWidth=", 17)) {
  + if (action == '-') {
  + return "Cannot combine '-' with DescriptionWidth=n";
  + }
  + if 

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-12-01 Thread coar
coar99/12/01 12:34:18

  Modified:htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Add a FoldersFirst keyword to the IndexOptions directive, which
causes subdirectories to always appear first in FancyIndexed
listings.
  
  Reviewed by:  Ryan Bloom, Martin Kraemer, Jim Jagielski
  
  Revision  ChangesPath
  1.32  +24 -8 apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- mod_autoindex.html1999/05/13 18:25:45 1.31
  +++ mod_autoindex.html1999/12/01 20:33:48 1.32
  @@ -545,7 +545,8 @@
REL="Help"
   >Compatibility: '+/-' syntax and merging of multiple
IndexOptions directives is only available with
  - Apache 1.3.3 and later
  + Apache 1.3.3 and later; the FoldersFirst option is only
  + available with Apache 1.3.10 and later
   
   
   The IndexOptions directive specifies the behavior of the directory indexing.
  @@ -564,6 +565,21 @@
is combined with any IndexOptions directive already
specified for the current scope.
   
  +FoldersFirst
  + (Apache 1.3.10 and later)
  +
  +If this option is enabled, subdirectories in a FancyIndexed listing
  +will always appear first, followed by normal files in the
  +directory.  The listing is basically broken into two components,
  +the files and the subdirectories, and each is sorted separately and
  +then displayed subdirectories-first.  For instance, if the sort order
  +is descending by name, and FoldersFirst is enabled,
  +subdirectory Zed will be listed before subdirectory
  +Beta, which will be listed before normal files
  +Gamma and Alpha.
  +This option only has an effect if
  +FancyIndexing
  +is also enabled.
   IconHeight[=pixels] (Apache 1.3 
and later)
   
   
  @@ -648,14 +664,14 @@
   The default is that no options are enabled. If multiple IndexOptions
   could apply to a directory, then the most specific one is taken complete;
   the options are not merged. For example:
  -
  - 
  -IndexOptions FancyIndexing 
  -
  - 
  -IndexOptions ScanHTMLTitles 
  +
  +
  +IndexOptions FancyIndexing
   
  -
  +
  +IndexOptions ScanHTMLTitles
  +
  +
   then only ScanHTMLTitles will be set for the /web/docs/spec
   directory.
   
  
  
  
  1.1465+4 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1464
  retrieving revision 1.1465
  diff -u -r1.1464 -r1.1465
  --- CHANGES   1999/12/01 20:24:50 1.1464
  +++ CHANGES   1999/12/01 20:33:58 1.1465
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.10
   
  +  *) Add IndexOptions FoldersFirst to allow fancy-indexed directory
  + listings to have the subdirectories always listed at the top.
  + [Ken Coar]
  +
 *) BS2000: Use send() instead of write() in the core buff routines
for better performance and fewer restrictions (max. transfer size)
[Martin Kraemer]
  
  
  
  1.111 +24 -0 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.110
  retrieving revision 1.111
  diff -u -r1.110 -r1.111
  --- mod_autoindex.c   1999/06/05 15:48:12 1.110
  +++ mod_autoindex.c   1999/12/01 20:34:10 1.111
  @@ -95,6 +95,7 @@
   #define SUPPRESS_PREAMBLE 64
   #define SUPPRESS_COLSORT 128
   #define NO_OPTIONS 256
  +#define FOLDERS_FIRST 512
   
   #define K_PAD 1
   #define K_NOPAD 0
  @@ -400,6 +401,9 @@
   else if (!strcasecmp(w, "SuppressColumnSorting")) {
   option = SUPPRESS_COLSORT;
}
  +else if (!strcasecmp(w, "FoldersFirst")) {
  +option = FOLDERS_FIRST;
  + }
else if (!strcasecmp(w, "None")) {
if (action != '\0') {
return "Cannot combine '+' or '-' with 'None' keyword";
  @@ -681,6 +685,8 @@
   time_t lm;
   struct ent *next;
   int ascending;
  +int isdir;
  +int checkdir;
   char key;
   };
   
  @@ -1147,6 +1153,14 @@
   p->alt = NULL;
   p->desc = NULL;
   p->lm = -1;
  +p->isdir = 0;
  +/*
  + * It's obnoxious to have to include this in every entry, but the qsort()
  + * comparison routine only takes two arguments..  The alternative would
  + * add another function call to each invocation.  Let's use memory
  + * rather than CPU.
  + */
  +p->checkdir = (

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-06-04 Thread coar
coar99/06/04 11:30:37

  Modified:.STATUS
   src  CHANGES
   src/include ap_mmn.h httpd.h
   src/main util.c
   src/modules/standard mod_autoindex.c
  Log:
mod_autoindex was only checking for exact matches of "text/html"
for ScanHTMLTitles, which meant that "text/html;charset=foo"
documents wouldn't be scanned.  As a side effect of this patch,
add ap_field_noparam(), which returns the unparameterised value
for any HTTP field that can use '*( ";" parameter)'.
  
  PR:   4524
  
  Revision  ChangesPath
  1.701 +1 -7  apache-1.3/STATUS
  
  Index: STATUS
  ===
  RCS file: /home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.700
  retrieving revision 1.701
  diff -u -r1.700 -r1.701
  --- STATUS1999/06/04 17:40:04 1.700
  +++ STATUS1999/06/04 18:30:07 1.701
  @@ -1,5 +1,5 @@
 1.3 STATUS:
  -  Last modified at [$Date: 1999/06/04 17:40:04 $]
  +  Last modified at [$Date: 1999/06/04 18:30:07 $]
   
   Release:
   
  @@ -105,12 +105,6 @@
   * Tony Finch's patch to support mass virtual hosting
Message-ID: <[EMAIL PROTECTED]>
Status: Dean +1
  -
  -* Ken's patch to work around exact matches of content-types (PR#4524)
  -  (Long-term fix should involve breaking this [and other fields with
  -  parameters] into pieces.)
  - Message-ID: <[EMAIL PROTECTED]>
  - Status: Ken +1
   
   * Brian Havard's patch to remove dependency of mod_auth_dbm on mod_auth.
 (PR#2598)
  
  
  
  1.1370+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1369
  retrieving revision 1.1370
  diff -u -r1.1369 -r1.1370
  --- CHANGES   1999/06/04 17:15:49 1.1369
  +++ CHANGES   1999/06/04 18:30:16 1.1370
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.7
   
  +  *) Fix mod_autoindex's handling of ScanHTMLTitles when file
  + content-types are "text/html;parameters".  PR#4524  [Ken Coar]
  +
 *) Remove "mxb" support from mod_negotiation -- it was a draft feature
never accepted into any standard, and it opens up certain DoS
attacks.  [Koen Holtman <[EMAIL PROTECTED]>]
  
  
  
  1.37  +2 -1  apache-1.3/src/include/ap_mmn.h
  
  Index: ap_mmn.h
  ===
  RCS file: /home/cvs/apache-1.3/src/include/ap_mmn.h,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- ap_mmn.h  1999/05/21 15:38:49 1.36
  +++ ap_mmn.h  1999/06/04 18:30:22 1.37
  @@ -218,6 +218,7 @@
* 19990320.2   - add cmd_parms.context, ap_set_config_vectors, 
*export ap_add_file_conf
* 19990320.3   - add ap_regexec()
  + * 19990604.4   - add ap_field_noparam()
*/
   
   #define MODULE_MAGIC_COOKIE 0x41503133UL /* "AP13" */
  @@ -225,7 +226,7 @@
   #ifndef MODULE_MAGIC_NUMBER_MAJOR
   #define MODULE_MAGIC_NUMBER_MAJOR 19990320
   #endif
  -#define MODULE_MAGIC_NUMBER_MINOR 3 /* 0...n */
  +#define MODULE_MAGIC_NUMBER_MINOR 4 /* 0...n */
   #define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR/* backward 
compat */
   
   /* Useful for testing for features. */
  
  
  
  1.280 +1 -0  apache-1.3/src/include/httpd.h
  
  Index: httpd.h
  ===
  RCS file: /home/cvs/apache-1.3/src/include/httpd.h,v
  retrieving revision 1.279
  retrieving revision 1.280
  diff -u -r1.279 -r1.280
  --- httpd.h   1999/06/02 07:08:18 1.279
  +++ httpd.h   1999/06/04 18:30:24 1.280
  @@ -920,6 +920,7 @@
   
   API_EXPORT(struct tm *) ap_get_gmtoff(int *tz);
   API_EXPORT(char *) ap_get_time(void);
  +API_EXPORT(char *) ap_field_noparam(pool *p, const char *intype);
   API_EXPORT(char *) ap_ht_time(pool *p, time_t t, const char *fmt, int gmt);
   API_EXPORT(char *) ap_gm_timestr_822(pool *p, time_t t);
   
  
  
  
  1.163 +17 -0 apache-1.3/src/main/util.c
  
  Index: util.c
  ===
  RCS file: /home/cvs/apache-1.3/src/main/util.c,v
  retrieving revision 1.162
  retrieving revision 1.163
  diff -u -r1.162 -r1.163
  --- util.c1999/05/25 15:24:01 1.162
  +++ util.c1999/06/04 18:30:31 1.163
  @@ -119,6 +119,23 @@
   return (time_string);
   }
   
  +/*
  + * Examine a field value (such as a media-/content-type) string and return
  + * it sans any parameters; e.g., strip off any ';charset=foo' and the like.
  + */
  +API_EXPORT(char *) ap_field_noparam(pool *p, const char *intype)
  +{
  +const char *semi;
  +
  +semi = strchr(intype, ';');
  +if (semi != NULL) {
  + while ((semi > intype

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c mod_include.c

1999-05-13 Thread coar
coar99/05/13 11:25:59

  Modified:htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c mod_include.c
  Log:
Someone finally stood up and made the ReadmeName and HeaderName
features use subrequests.  Not only that, but they can be
parsed for SSIs too!
  
  PR:   1574, 3026, 3529, 3569, 4256
  Submitted by: Raymond S Brand <[EMAIL PROTECTED]>
  Reviewed by:  Ken Coar
  
  Revision  ChangesPath
  1.31  +57 -17apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- mod_autoindex.html1999/01/04 14:35:53 1.30
  +++ mod_autoindex.html1999/05/13 18:25:45 1.31
  @@ -426,20 +426,53 @@
   Module: mod_autoindex
  +>Module: mod_autoindex
  +  
  +  Compatibility: some features only available after
  + 1.3.6; see text
   
  +
   The HeaderName directive sets the name of the file that will be inserted
   at the top of the index listing. Filename is the name of the file
  -to include, and is taken to be relative to the directory being indexed.
  -The server first attempts to include filename.html
  -as an HTML document, otherwise it will include filename as plain
  -text. Example:
  +to include.
  +
  +Apache 1.3.6 and earlier:
  +The module first attempts to include filename.html
  +as an HTML document, otherwise it will try to include filename as
  +plain text.  Filename is treated as a filesystem path relative
  +to the directory being indexed.  In no case is SSI processing done.
  +Example:
   HeaderName HEADER
   when indexing the directory /web, the server will first look for
   the HTML file /web/HEADER.html and include it if found, 
otherwise
   it will include the plain text file /web/HEADER, if it exists.
  -
  -See also ReadmeName.
  +
  +Apache versions after 1.3.6:
  +Filename is treated as a URI path relative to the one used
  +to access the directory being indexed, and must resolve to a document
  +with a major content type of "text" (e.g.,
  +text/html, text/plain, etc.).
  +This means that filename may refer to a CGI script if the
  +script's actual file type (as opposed to its output) is marked as
  +text/html such as with a directive like:
  +
  +AddType text/html .cgi
  +
  +Content negotiation
  +will be performed if the MultiViews
  +option is enabled.
  +If filename resolves to a static text/html document
  +(not a CGI script) and the
  +Includes option is enabled,
  +the file will be processed for server-side includes (see the
  +mod_include documentation).
  +
  +
  +See also ReadmeName.
  +
   
   IndexIgnore
   
  @@ -753,19 +786,26 @@
   Module: mod_autoindex
  +>Module: mod_autoindex
  +  
  +  Compatibility: some features only available after
  + 1.3.6; see text
   
  +
   The ReadmeName directive sets the name of the file that will be appended
   to the end of the index listing. Filename is the name of the file
  -to include, and is taken to be relative to the directory being indexed.
  -The server first attempts to include filename.html
  -as an HTML document, otherwise it will include filename as plain
  -text. Example:
  -ReadmeName README
  -when indexing the directory /web, the server will first look for
  -the HTML file /web/README.html and include it if found, 
otherwise
  -it will include the plain text file /web/README, if it exists.
  -
  +to include, and is taken to be relative to the location being indexed.
  +
  +
  +The filename argument is treated as a stub filename
  +in Apache 1.3.6 and earlier, and as a relative URI in later versions.
  +Details of how it is handled may be found under the description of
  +the HeaderName directive, which uses the
  +same mechanism and changed at the same time as ReadmeName.
  +
   See also HeaderName.
   
   
  
  
  
  1.1354+8 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1353
  retrieving revision 1.1354
  diff -u -r1.1353 -r1.1354
  --- CHANGES   1999/05/12 16:50:40 1.1353
  +++ CHANGES   1999/05/13 18:25:50 1.1354
  @@ -1,5 +1,13 @@
   Changes with Apache 1.3.7
   
  +  *) Support for server-parsed and multiview-determined ReadmeName and
  + HeaderName files in mod_autoindex. Removed the restriction on
  + "/"s in ReadmeName and HeaderName directives since the *sub_req*
  + routines will deal with the access issues. (It's now possible to
  + have {site|group|project|customer|...} wide readmes and headers.)
  + [Raymond S Brand <[EMAIL PROTECTED]>, Ken Coar] PR#1574, 3026, 3529,
  + 3569, 4256
  +
 *) When stat() fails, don't assume anything about the contents 

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-05-03 Thread coar
coar99/05/03 13:48:44

  Modified:src/modules/standard mod_autoindex.c
  Log:
Improve the filename pattern matching so that we only do
wildcard processing when we must, and simple scanning when we can.
  
  Revision  ChangesPath
  1.106 +49 -13apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.105
  retrieving revision 1.106
  diff -u -r1.105 -r1.106
  --- mod_autoindex.c   1999/05/03 19:05:17 1.105
  +++ mod_autoindex.c   1999/05/03 20:48:43 1.106
  @@ -136,6 +136,7 @@
   char *pattern;
   char *description;
   int full_path;
  +int wildcards;
   } ai_desc_t;
   
   typedef struct autoindex_config_struct {
  @@ -269,16 +270,27 @@
   }
   
   /*
  - * Add description text for a filename pattern.  Prefix the pattern
  - * with a wildcard unless it begins with '/' signifying an absolute
  - * path.  If the pattern contains a '/' anywhere, add a slash to the
  - * prefix so that "bar/bletch" won't be matched by "foobar/bletch",
  - * and make a note that there's a delimiter; the matching routine
  - * simplifies to just the actual filename whenever it can.  This allows
  - * definitions in parent directories to be made for files in subordinate
  - * ones using relative paths.  Always postfix with a wildard so that
  - * partial or leading names will match.
  + * Add description text for a filename pattern.  If the pattern has
  + * wildcards already (or we need to add them), add leading and
  + * trailing wildcards to it to ensure substring processing.  If the
  + * pattern contains a '/' anywhere, force wildcard matching mode,
  + * add a slash to the prefix so that "bar/bletch" won't be matched
  + * by "foobar/bletch", and make a note that there's a delimiter;
  + * the matching routine simplifies to just the actual filename
  + * whenever it can.  This allows definitions in parent directories
  + * to be made for files in subordinate ones using relative paths.
*/
  +
  +/*
  + * Absent a strcasestr() function, we have to force wildcards on
  + * systems for which "AAA" and "aaa" mean the same file.
  + */
  +#ifdef CASE_BLIND_FILESYSTEM
  +#define WILDCARDS_REQUIRED 1
  +#else
  +#define WILDCARDS_REQUIRED 0
  +#endif
  +
   static const char *add_desc(cmd_parms *cmd, void *d, char *desc, char *to)
   {
   autoindex_config_rec *dcfg = (autoindex_config_rec *) d;
  @@ -287,11 +299,17 @@
   
   desc_entry = (ai_desc_t *) ap_push_array(dcfg->desc_list);
   desc_entry->full_path = (strchr(to, '/') == NULL) ? 0 : 1;
  -if (*to != '/') {
  +desc_entry->wildcards = (WILDCARDS_REQUIRED
  +  || desc_entry->full_path
  +  || ap_is_fnmatch(to));
  +if (desc_entry->wildcards) {
prefix = desc_entry->full_path ? "*/" : "*";
  + desc_entry->pattern = ap_pstrcat(dcfg->desc_list->pool,
  +  prefix, to, "*", NULL);
   }
  -desc_entry->pattern = ap_pstrcat(dcfg->desc_list->pool,
  -  prefix, to, "*", NULL);
  +else {
  + desc_entry->pattern = ap_pstrdup(dcfg->desc_list->pool, to);
  +}
   desc_entry->description = ap_pstrdup(dcfg->desc_list->pool, desc);
   return NULL;
   }
  @@ -745,6 +763,13 @@
* same as the order in which directives were processed, earlier matching
* directives will dominate.
*/
  +
  +#ifdef CASE_BLIND_FILESYSTEM
  +#define MATCH_FLAGS FNM_CASE_BLIND
  +#else
  +#define MATCH_FLAGS 0
  +#endif
  +
   static char *find_desc(autoindex_config_rec *dcfg, request_rec *r)
   {
   int i;
  @@ -765,12 +790,23 @@
   }
   for (i = 0; i < dcfg->desc_list->nelts; ++i) {
ai_desc_t *tuple = &list[i];
  + int found;
   
/*
 * Only use the full-path filename if the pattern contains '/'s.
 */
filename = (tuple->full_path) ? filename_full : filename_only;
  - if (ap_fnmatch(tuple->pattern, filename, 0) == 0) {
  + /*
  +  * Make the comparison using the cheapest method; only do
  +  * wildcard checking if we must.
  +  */
  + if (tuple->wildcards) {
  + found = (ap_fnmatch(tuple->pattern, filename, MATCH_FLAGS) == 0);
  + }
  + else {
  + found = (strstr(filename, tuple->pattern) != NULL);
  + }
  + if (found) {
return tuple->description;
}
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-05-03 Thread coar
coar99/05/03 12:05:19

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Rip loose another piece of mod_autoindex's configuration hairball,
breaking the description handling free from the path/filename
paradigm used for most of the stuff.  Make AddDescription work
as documented.
  
  PR:   1898, 3072
  
  Revision  ChangesPath
  1.1342+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1341
  retrieving revision 1.1342
  diff -u -r1.1341 -r1.1342
  --- CHANGES   1999/05/03 15:09:04 1.1341
  +++ CHANGES   1999/05/03 19:05:11 1.1342
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.7
   
  +  *) Modify mod_autoindex's handling of AddDescription so that the
  + behaviour matches the documentation.  [Ken Coar] PR#1898, 3072.
  +
 *) Add functionality to the install-bindist.sh script created by
binbuild.sh to use tar when copying distribution files to the
serverroot. This allows upgrading an existing installation
  
  
  
  1.105 +76 -6 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.104
  retrieving revision 1.105
  diff -u -r1.104 -r1.105
  --- mod_autoindex.c   1999/05/01 17:13:04 1.104
  +++ mod_autoindex.c   1999/05/03 19:05:17 1.105
  @@ -72,6 +72,7 @@
   #include "http_log.h"
   #include "http_main.h"
   #include "util_script.h"
  +#include "fnmatch.h"
   
   module MODULE_VAR_EXPORT autoindex_module;
   
  @@ -131,6 +132,12 @@
   char *data;
   };
   
  +typedef struct ai_desc_t {
  +char *pattern;
  +char *description;
  +int full_path;
  +} ai_desc_t;
  +
   typedef struct autoindex_config_struct {
   
   char *default_icon;
  @@ -143,8 +150,12 @@
   int icon_height;
   char *default_order;
   
  -array_header *icon_list, *alt_list, *desc_list, *ign_list;
  -array_header *hdr_list, *rdme_list;
  +array_header *icon_list;
  +array_header *alt_list;
  +array_header *desc_list;
  +array_header *ign_list;
  +array_header *hdr_list;
  +array_header *rdme_list;
   
   } autoindex_config_rec;
   
  @@ -257,10 +268,31 @@
   return NULL;
   }
   
  +/*
  + * Add description text for a filename pattern.  Prefix the pattern
  + * with a wildcard unless it begins with '/' signifying an absolute
  + * path.  If the pattern contains a '/' anywhere, add a slash to the
  + * prefix so that "bar/bletch" won't be matched by "foobar/bletch",
  + * and make a note that there's a delimiter; the matching routine
  + * simplifies to just the actual filename whenever it can.  This allows
  + * definitions in parent directories to be made for files in subordinate
  + * ones using relative paths.  Always postfix with a wildard so that
  + * partial or leading names will match.
  + */
   static const char *add_desc(cmd_parms *cmd, void *d, char *desc, char *to)
   {
  -push_item(((autoindex_config_rec *) d)->desc_list, cmd->info, to,
  -   cmd->path, desc);
  +autoindex_config_rec *dcfg = (autoindex_config_rec *) d;
  +ai_desc_t *desc_entry;
  +char *prefix = "";
  +
  +desc_entry = (ai_desc_t *) ap_push_array(dcfg->desc_list);
  +desc_entry->full_path = (strchr(to, '/') == NULL) ? 0 : 1;
  +if (*to != '/') {
  + prefix = desc_entry->full_path ? "*/" : "*";
  +}
  +desc_entry->pattern = ap_pstrcat(dcfg->desc_list->pool,
  +  prefix, to, "*", NULL);
  +desc_entry->description = ap_pstrdup(dcfg->desc_list->pool, desc);
   return NULL;
   }
   
  @@ -530,7 +562,7 @@
   new->name_adjust = K_UNSET;
   new->icon_list = ap_make_array(p, 4, sizeof(struct item));
   new->alt_list = ap_make_array(p, 4, sizeof(struct item));
  -new->desc_list = ap_make_array(p, 4, sizeof(struct item));
  +new->desc_list = ap_make_array(p, 4, sizeof(ai_desc_t));
   new->ign_list = ap_make_array(p, 4, sizeof(struct item));
   new->hdr_list = ap_make_array(p, 4, sizeof(struct item));
   new->rdme_list = ap_make_array(p, 4, sizeof(struct item));
  @@ -688,7 +720,6 @@
   
   #define find_icon(d,p,t) find_item(p,d->icon_list,t)
   #define find_alt(d,p,t) find_item(p,d->alt_list,t)
  -#define find_desc(d,p) find_item(p,d->desc_list,0)
   #define find_header(d,p) find_item(p,d->hdr_list,0)
   #define find_readme(d,p) find_item(p,d->rdme_list,0)
   
  @@ -705,6 +736,45 @@
   r.content_type = r.content_encoding = NULL;
   
   return find_item(&r, d->icon_list, 1);
  +}
  +
  +/*
  + * Look through the list of pattern/description pairs and return the first 
one
  + * if any) that matches the filename in the re

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-05-01 Thread dgaudet
dgaudet 99/05/01 10:13:05

  Modified:src/modules/standard mod_autoindex.c
  Log:
  fix a slight problem with my recent fix to mod_autoindex
  
  Submitted by: Raymond S Brand <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.104 +2 -2  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.103
  retrieving revision 1.104
  diff -u -r1.103 -r1.104
  --- mod_autoindex.c   1999/04/21 02:00:55 1.103
  +++ mod_autoindex.c   1999/05/01 17:13:04 1.104
  @@ -1167,8 +1167,8 @@
  nwidth = name_width;
}
ap_rvputs(r, " ",
  -   ap_escape_html(scratch, t2), pad_scratch + nwidth,
  -   "", NULL);
  +   ap_escape_html(scratch, t2), "", pad_scratch + nwidth,
  +   NULL);
/*
 * The blank before the storm.. er, before the next field.
 */
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-04-21 Thread dgaudet
dgaudet 99/04/20 19:00:57

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  we don't need padding when we're not doing fancyindexing
  
  PR:   3770
  Submitted by: [EMAIL PROTECTED]
  
  Revision  ChangesPath
  1.1318+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1317
  retrieving revision 1.1318
  diff -u -r1.1317 -r1.1318
  --- CHANGES   1999/04/21 01:29:17 1.1317
  +++ CHANGES   1999/04/21 02:00:48 1.1318
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.7
   
  +  *) "IndexOptions None" generated extra spaces at the end of each
  + line.  [EMAIL PROTECTED] PR#3770
  +
 *) The "100 Continue" response wasn't being sent after internal
redirects. [Jose KAHAN <[EMAIL PROTECTED]>] PR#3910, 3806, 3575
   
  
  
  
  1.103 +1 -1  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.102
  retrieving revision 1.103
  diff -u -r1.102 -r1.103
  --- mod_autoindex.c   1999/04/20 21:53:25 1.102
  +++ mod_autoindex.c   1999/04/21 02:00:55 1.103
  @@ -1198,7 +1198,7 @@
}
else {
ap_rvputs(r, " ", t2,
  -   "", pad_scratch + strlen(t2), NULL);
  +   "", NULL);
}
ap_rputc('\n', r);
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-04-20 Thread dgaudet
dgaudet 99/04/20 14:53:27

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  the width stuff wasn't taking into account &escapes;
  
  PR:   4075
  
  Revision  ChangesPath
  1.1315+4 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1314
  retrieving revision 1.1315
  diff -u -r1.1314 -r1.1315
  --- CHANGES   1999/04/20 19:42:54 1.1314
  +++ CHANGES   1999/04/20 21:53:22 1.1315
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.7
   
  +  *) When padding the name with spaces for display, mod_autoindex would
  + count &, <, and > in their escaped width, messing up the display.
  + [Dean Gaudet] PR#4075
  +
 *) PORT: fixed a compilation problem on NEXT.
[Jacques Distler <[EMAIL PROTECTED]>] PR#4130
   
  
  
  
  1.102 +21 -64apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.101
  retrieving revision 1.102
  diff -u -r1.101 -r1.102
  --- mod_autoindex.c   1999/01/04 19:49:41 1.101
  +++ mod_autoindex.c   1999/04/20 21:53:25 1.102
  @@ -410,8 +410,8 @@
else {
int width = atoi(&w[10]);
   
  - if (width < 1) {
  - return "NameWidth value must be greater than 1";
  + if (width < 5) {
  + return "NameWidth value must be greater than 5";
}
d_cfg->name_width = width;
d_cfg->name_adjust = K_NOADJUST;
  @@ -1042,41 +1042,6 @@
   }
   }
   
  -/*
  - * Fit a string into a specified buffer width, marking any
  - * truncation.  The size argument is the actual buffer size, including
  - * the \0 termination byte.  The buffer will be prefilled with blanks.
  - * If the pad argument is false, any extra spaces at the end of the
  - * buffer are omitted.  (Used when constructing anchors.)
  - */
  -static ap_inline char *widthify(const char *s, char *buff, int size, int pad)
  -{
  -int s_len;
  -
  -memset(buff, ' ', size);
  -buff[size - 1] = '\0';
  -s_len = strlen(s);
  -if (s_len > (size - 1)) {
  - ap_cpystrn(buff, s, size);
  - if (size > 1) {
  - buff[size - 2] = '>';
  - }
  - if (size > 2) {
  - buff[size - 3] = '.';
  - }
  - if (size > 3) {
  - buff[size - 4] = '.';
  - }
  -}
  -else {
  - ap_cpystrn(buff, s, s_len + 1);
  - if (pad) {
  - buff[s_len] = ' ';
  - }
  -}
  -return buff;
  -}
  -
   static void output_directories(struct ent **ar, int n,
   autoindex_config_rec *d, request_rec *r,
   int autoindex_opts, char keyid, char direction)
  @@ -1088,6 +1053,7 @@
   pool *scratch = ap_make_sub_pool(r->pool);
   int name_width;
   char *name_scratch;
  +char *pad_scratch;
   
   if (name[0] == '\0') {
name = "/";
  @@ -1102,10 +1068,10 @@
}
}
   }
  -++name_width;
   name_scratch = ap_palloc(r->pool, name_width + 1);
  -memset(name_scratch, ' ', name_width);
  -name_scratch[name_width] = '\0';
  +pad_scratch = ap_palloc(r->pool, name_width + 1);
  +memset(pad_scratch, ' ', name_width);
  +pad_scratch[name_width] = '\0';
   
   if (autoindex_opts & FANCY_INDEXING) {
ap_rputs("", r);
  @@ -1122,15 +1088,9 @@
);
}
ap_rputs("> ", r);
  - }
  -emit_link(r, widthify("Name", name_scratch,
  -   (name_width > 5) ? 5 : name_width, K_NOPAD),
  -   K_NAME, keyid, direction, static_columns);
  - if (name_width > 5) {
  - memset(name_scratch, ' ', name_width);
  - name_scratch[name_width] = '\0';
  - ap_rputs(&name_scratch[5], r);
}
  +emit_link(r, "Name", K_NAME, keyid, direction, static_columns);
  + ap_rputs(pad_scratch + 4, r);
/*
 * Emit the guaranteed-at-least-one-space-between-columns byte.
 */
  @@ -1156,7 +1116,6 @@
   
   for (x = 0; x < n; x++) {
char *anchor, *t, *t2;
  - char *pad;
int nwidth;
   
ap_clear_pool(scratch);
  @@ -1167,15 +1126,12 @@
if (t[0] == '\0') {
t = "/";
}
  -/* 1234567890123456 */
t2 = "Parent Directory";
  - pad = name_scratch + 16;
anchor = ap_escape_html(scratch, ap_os_escape_path(scratch, t, 0));
}
else {
t = ar[x]->name;
  - pad = name_scratch + strlen(t);
  - t2 = ap_escape_html(scratch, t);
  + t2 = t;
anchor = ap_escape_html(scra

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-01-04 Thread coar
coar99/01/04 11:49:46

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Fix mod_autoindex's handling of SuppressColumnSorting; the
display order could be manually overridden by putting the
appropriate query string into the URL (one of the strings
the column-header anchors used).
  
  Revision  ChangesPath
  1.1201+6 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1200
  retrieving revision 1.1201
  diff -u -r1.1200 -r1.1201
  --- CHANGES   1999/01/04 14:35:54 1.1200
  +++ CHANGES   1999/01/04 19:49:36 1.1201
  @@ -1,5 +1,11 @@
   Changes with Apache 1.3.4
   
  +  *) IndexOptions SuppressColumnSorting only turned off making
  + the column headers anchors; you could still change the display
  + order by manually adding a '?N=A' or similar query string to the
  + URL.  Now SuppressColumnSorting locks in the sort order so
  + it can't be overridden this way.  [Ken Coar]
  +
 *) Added IndexOrderDefault directive to supply a default sort order
for FancyIndexed directory listings.  [Ken Coar] PR#1699
   
  
  
  
  1.101 +20 -22apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.100
  retrieving revision 1.101
  diff -u -r1.100 -r1.101
  --- mod_autoindex.c   1999/01/04 14:35:55 1.100
  +++ mod_autoindex.c   1999/01/04 19:49:41 1.101
  @@ -1365,35 +1365,33 @@
   
   /*
* Figure out what sort of indexing (if any) we're supposed to use.
  + *
  + * If no QUERY_STRING was specified or column sorting has been
  + * explicitly disabled, we use the default specified by the
  + * IndexOrderDefault directive (if there is one); otherwise,
  + * we fall back to ascending by name.
*/
  -if (autoindex_opts & SUPPRESS_COLSORT) {
  +qstring = r->args;
  +if ((autoindex_opts & SUPPRESS_COLSORT)
  + || ((qstring == NULL) || (*qstring == '\0'))) {
  + qstring = autoindex_conf->default_order;
  +}
  +/*
  + * If there is no specific ordering defined for this directory,
  + * default to ascending by filename.
  + */
  +if ((qstring == NULL) || (*qstring == '\0')) {
keyid = K_NAME;
direction = D_ASCENDING;
   }
   else {
  - qstring = r->args;
  -
  - /*
  -  * If no QUERY_STRING was specified, we use the default specified
  -  * by the IndexOrderDefault directive (if there is one); otherwise,
  -  * we fall back to ascending by name.
  -  */
  - if ((qstring == NULL) || (*qstring == '\0')) {
  - qstring = autoindex_conf->default_order;
  + keyid = *qstring;
  + ap_getword(r->pool, &qstring, '=');
  + if (qstring != '\0') {
  + direction = *qstring;
}
  - if ((qstring == NULL) || (*qstring == '\0')) {
  - keyid = K_NAME;
  - direction = D_ASCENDING;
  - }
else {
  - keyid = *qstring;
  - ap_getword(r->pool, &qstring, '=');
  - if (qstring != '\0') {
  - direction = *qstring;
  - }
  - else {
  - direction = D_ASCENDING;
  - }
  + direction = D_ASCENDING;
}
   }
   
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1999-01-04 Thread coar
coar99/01/04 06:35:56

  Modified:.STATUS
   htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Allow fancyindexed directories to be presorted in some other way
than by name.
  
  PR:   1699
  Submitted by: Ken Coar
  Reviewed by:  Martin Kraemer
  
  Revision  ChangesPath
  1.587 +1 -7  apache-1.3/STATUS
  
  Index: STATUS
  ===
  RCS file: /home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.586
  retrieving revision 1.587
  diff -u -r1.586 -r1.587
  --- STATUS1999/01/03 13:46:16 1.586
  +++ STATUS1999/01/04 14:35:52 1.587
  @@ -1,5 +1,5 @@
 1.3 STATUS:
  -  Last modified at [$Date: 1999/01/03 13:46:16 $]
  +  Last modified at [$Date: 1999/01/04 14:35:52 $]
   
   Release:
   
  @@ -93,12 +93,6 @@
vhost-xxx.html document out of it. -- rse
   
   Available Patches:
  -
  -* Ken's default sort order for autoindexed listings
  -  First pass for concept; maybe directive should be renamed or
  -  syntax changed?
  - Message-ID: <[EMAIL PROTECTED]>
  - Status: Ken +1 (concept), Martin +1 (concept)
   
   * Lars' 'binbuild' patch
   Message-ID: <[EMAIL PROTECTED]>
  
  
  
  1.30  +61 -0 apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- mod_autoindex.html1998/10/22 17:43:20 1.29
  +++ mod_autoindex.html1999/01/04 14:35:53 1.30
  @@ -74,6 +74,7 @@
   HeaderName
   IndexIgnore
   IndexOptions
  +IndexOrderDefault
   ReadmeName
   
   
  @@ -668,6 +669,66 @@
   
   
   
  +
  +
  +
  +IndexOrderDefault
  +
  +Syntax: IndexOrderDefault
  +Ascending|Descending Name|Date|Size|Description
  +
  +Context: server config, virtual host, directory,
  +.htaccess
  +
  +Override: Indexes
  +
  +Status: Base
  +
  +Module: mod_autoindex
  +
  +Compatibility: IndexOrderDefault is only available in
  +Apache 1.3.4 and later.
  +
  +
  +The IndexOrderDefault directive is used in combination with
  +the FancyIndexing
  +index option.  By default, fancyindexed directory listings are displayed in 
ascending order by filename; the IndexOrderDefault allows
  +you to change this initial display order.
  +
  +
  +IndexOrderDefault takes two arguments.  The first must be either
  +Ascending or Descending, indicating the direction
  +of the sort.  The second argument must be one of the keywords
  +Name, Date, Size, or
  +Description, and identifies the primary key.  The secondary
  +key is always the ascending filename.
  +
  +
  +You can force a directory listing to only be displayed in a particular
  +order by combining this directive with the
  +SuppressColumnSorting index option; this will prevent
  +the client from requesting the directory listing in a different order.
  +
  +
   
   
   ReadmeName
  
  
  
  1.1200+5 -1  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1199
  retrieving revision 1.1200
  diff -u -r1.1199 -r1.1200
  --- CHANGES   1999/01/03 16:45:23 1.1199
  +++ CHANGES   1999/01/04 14:35:54 1.1200
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.4
   
  +  *) Added IndexOrderDefault directive to supply a default sort order
  + for FancyIndexed directory listings.  [Ken Coar] PR#1699
  +
 *) Change the ap_assert macro to a variant that works on all platforms.
[Richard Prinz <[EMAIL PROTECTED]>] PR#2575
   
  @@ -19,7 +22,8 @@

 *) Make top-level Makefile aware of a parallel build procedures (make -j) 
by
making sure the src/support/ tools are _forced_ to be build last (they
  - depend on other libraries). [Markus Theissinger <[EMAIL PROTECTED]>]
  + depend on other libraries).
  + [Markus Theissinger <[EMAIL PROTECTED]>]
   
 *) Fix installation procedure: Now that os-inline.c is actually used (a
recently fixed bug prevented this) we need to also install os-include.c
  
  
  
  1.100 +54 -2 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.99
  retrieving revision 1.100
  diff -u -r1.99 -r1.100
  --- mod_autoindex.c   1999/01/01 19:05:07 1.99
  +++ mod_autoindex.c   1999/01/04 14:35:55 1.100
  @@ -141,6 +141,7 @@
   int name_adjust;
   int icon_width;
   int icon_height;
  +char *default_order;
   
   array_header *icon_list, *alt_list

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-10-28 Thread martin
martin  98/10/28 11:34:00

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  For files where the last modified time stamp was unavailable (e.g., broken
  symlinks), an empty string was printed which was 2 bytes short.
  The size and description columns were therefore not aligned correctly.
  (This is a remainder of the %y to %Y fix: the two missing spaces are
  for the century)
  
  Revision  ChangesPath
  1.1128+5 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1127
  retrieving revision 1.1128
  diff -u -r1.1127 -r1.1128
  --- CHANGES   1998/10/28 19:26:29 1.1127
  +++ CHANGES   1998/10/28 19:33:52 1.1128
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.4
   
  +  *) Fix in mod_autoindex: for files where the last modified time stamp was
  + unavailable, an empty string was printed which was 2 bytes short.
  + The size and description columns were therefore not aligned correctly.
  + [Martin Kraemer] (no PR#)
  +
 *) Update BS2000 OS code to work with recent versions. Starting with
release A17, the child fork() must be replaced by a _rfork().
(BS2000 only) [Martin Kraemer]
  
  
  
  1.98  +2 -1  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.97
  retrieving revision 1.98
  diff -u -r1.97 -r1.98
  --- mod_autoindex.c   1998/10/17 14:17:10 1.97
  +++ mod_autoindex.c   1998/10/28 19:33:57 1.98
  @@ -1176,7 +1176,8 @@
ap_rputs(time_str, r);
}
else {
  - ap_rputs(" ", r);
  + /*Length="22-Feb-1998 23:42  " (see 4 lines above) */
  + ap_rputs("   ", r);
}
}
if (!(autoindex_opts & SUPPRESS_SIZE)) {
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-10-17 Thread coar
coar98/10/17 07:17:11

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
IndexOptions NameWidth was not getting inherited properly
by directories that had mod_autoindex directives in the .htaccess
but no actual IndexOptions line.  Also, NameWidth, IconHeight,
and IconWidth couldn't be incrementally enabled with '+'.
  
  Revision  ChangesPath
  1.1110+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1109
  retrieving revision 1.1110
  diff -u -r1.1109 -r1.1110
  --- CHANGES   1998/10/16 07:04:41 1.1109
  +++ CHANGES   1998/10/17 14:17:08 1.1110
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.4
   
  +  *) Fix inheritance of IndexOptions NameWidth and remove unintended
  + restriction on +NameWidth, +IconHeight, and +IconWidth.  [Ken Coar]
  +
 *) Fix per-directory config merging for cases in which a 500 error
is encountered in an .htaccess file somewhere down the tree.
[Ken Coar]  PR#2409
  
  
  
  1.97  +28 -12apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- mod_autoindex.c   1998/10/04 06:13:18 1.96
  +++ mod_autoindex.c   1998/10/17 14:17:10 1.97
  @@ -98,6 +98,10 @@
   #define K_PAD 1
   #define K_NOPAD 0
   
  +#define K_NOADJUST 0
  +#define K_ADJUST 1
  +#define K_UNSET 2
  +
   /*
* Define keys for sorting.
*/
  @@ -368,8 +372,8 @@
}
}
else if (!strncasecmp(w, "IconWidth=", 10)) {
  - if (action != '\0') {
  - return "Cannot combine '+' or '-' with IconWidth=n";
  + if (action == '-') {
  + return "Cannot combine '-' with IconWidth=n";
}
d_cfg->icon_width = atoi(&w[10]);
}
  @@ -382,8 +386,8 @@
}
}
else if (!strncasecmp(w, "IconHeight=", 11)) {
  - if (action != '\0') {
  - return "Cannot combine '+' or '-' with IconHeight=n";
  + if (action == '-') {
  + return "Cannot combine '-' with IconHeight=n";
}
d_cfg->icon_height = atoi(&w[11]);
}
  @@ -393,14 +397,14 @@
   "'-NameWidth'";
}
d_cfg->name_width = DEFAULT_NAME_WIDTH;
  - d_cfg->name_adjust = 0;
  + d_cfg->name_adjust = K_NOADJUST;
}
else if (!strncasecmp(w, "NameWidth=", 10)) {
  - if (action != '\0') {
  - return "Cannot combine '+' or '-' with NameWidth=n";
  + if (action == '-') {
  + return "Cannot combine '-' with NameWidth=n";
}
if (w[10] == '*') {
  - d_cfg->name_adjust = 1;
  + d_cfg->name_adjust = K_ADJUST;
}
else {
int width = atoi(&w[10]);
  @@ -409,6 +413,7 @@
return "NameWidth value must be greater than 1";
}
d_cfg->name_width = width;
  + d_cfg->name_adjust = K_NOADJUST;
}
}
else {
  @@ -477,7 +482,7 @@
   new->icon_width = 0;
   new->icon_height = 0;
   new->name_width = DEFAULT_NAME_WIDTH;
  -new->name_adjust = 0;
  +new->name_adjust = K_UNSET;
   new->icon_list = ap_make_array(p, 4, sizeof(struct item));
   new->alt_list = ap_make_array(p, 4, sizeof(struct item));
   new->desc_list = ap_make_array(p, 4, sizeof(struct item));
  @@ -550,9 +555,20 @@
 */
new->opts |= new->incremented_opts;
new->opts &= ~new->decremented_opts;
  +}
  +/*
  + * Inherit the NameWidth settings if there aren't any specific to
  + * the new location; otherwise we'll end up using the defaults set in the
  + * config-rec creation routine.
  + */
  +if (add->name_adjust == K_UNSET) {
  + new->name_width = base->name_width;
  + new->name_adjust = base->name_adjust;
  +}
  +else {
  + new->name_width = add->name_width;
  + new->name_adjust = add->name_adjust;
   }
  -new->name_width = add->name_width;
  -new->name_adjust = add->name_adjust;
   
   return new;
   }
  @@ -1030,7 +1046,7 @@
   }
   
   name_width = d->name_width;
  -if (d->name_adjust) {
  +if (d->name_adjust == K_ADJUST) {
for (x = 0; x < n; x++) {
int t = strlen(ar[x]->name);
if (t > name_width) {
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-10-04 Thread marc
marc98/10/03 23:13:19

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  Fix mod_autoindex bug where directories got a size of "0k" instead
  of "-".  This was introduced by a bogus cleanup in rev 1.31; -1 was
  changed to 0 to avoid storing -1 in a size_t, when the correct fix is
  to change the size_t to an off_t.
  
  Submitter's patch modified for correctness.
  
  PR: 3130
  Submitted by: Martin Plechsmid <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.1099+4 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1098
  retrieving revision 1.1099
  diff -u -r1.1098 -r1.1099
  --- CHANGES   1998/10/03 19:28:16 1.1098
  +++ CHANGES   1998/10/04 06:13:16 1.1099
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.3
   
  +  *) Fix mod_autoindex bug where directories got a size of "0k" instead
  + of "-".  [Martin Plechsmid <[EMAIL PROTECTED]>, Marc Slemko]
  + PR#3130
  +
 *) PORT: DRS 6000 machine. [Paul Debleecker <[EMAIL PROTECTED]>]
   
 *) Add the server signature text (from the core ServerSignature directive)
  
  
  
  1.96  +3 -3  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- mod_autoindex.c   1998/10/02 21:35:38 1.95
  +++ mod_autoindex.c   1998/10/04 06:13:18 1.96
  @@ -569,7 +569,7 @@
   char *icon;
   char *alt;
   char *desc;
  -size_t size;
  +off_t size;
   time_t lm;
   struct ent *next;
   int ascending;
  @@ -859,7 +859,7 @@
   
   p = (struct ent *) ap_pcalloc(r->pool, sizeof(struct ent));
   p->name = ap_pstrdup(r->pool, name);
  -p->size = 0;
  +p->size = -1;
   p->icon = NULL;
   p->alt = NULL;
   p->desc = NULL;
  @@ -879,7 +879,7 @@
if (!(p->alt = find_alt(d, rr, 1))) {
p->alt = "DIR";
}
  - p->size = 0;
  + p->size = -1;
p->name = ap_pstrcat(r->pool, name, "/", NULL);
}
else {
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-10-02 Thread coar
coar98/10/02 14:35:40

  Modified:htdocs/manual/mod mod_autoindex.html
   src/modules/standard mod_autoindex.c
  Log:
Back off a portion of the incremental-IndexOptions patch;
unprefixed keywords should clear all inherited options and
start setting the local directory's options from scratch.
Otherwise, 'keyword' and '+keyword' are essentially identical,
and clearing inheritance a pain.
  
  Revision  ChangesPath
  1.26  +4 -8  apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- mod_autoindex.html1998/09/28 22:32:10 1.25
  +++ mod_autoindex.html1998/10/02 21:35:33 1.26
  @@ -637,8 +637,8 @@
   Whenever a '+' or '-' prefixed keyword is encountered, it is applied
   to the current IndexOptions settings (which may have been
   inherited from an upper-level directory).  However, whenever an unprefixed
  -keyword is processed, it clears all incremental settings.  Consider
  -the following example:
  +keyword is processed, it clears all inherited options and any incremental
  +settings encountered so far.  Consider the following example:
   
   IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
   
  @@ -654,13 +654,9 @@
   
   
   To unconditionally set the IndexOptions for a
  -particular directory, clearing the inherited settings, use
  +particular directory, clearing the inherited settings, specify
  +keywords without either '+' or '-' prefixes.
   
  -
  -IndexOptions None
  -
  -IndexOptions new-setting ...
  -
   
   
   
  
  
  
  1.95  +24 -9 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- mod_autoindex.c   1998/09/28 22:32:12 1.94
  +++ mod_autoindex.c   1998/10/02 21:35:38 1.95
  @@ -512,23 +512,38 @@
   if (add->opts & NO_OPTIONS) {
/*
 * If the current directory says 'no options' then we also
  -  * clear any incremental mods from being inheritable.
  +  * clear any incremental mods from being inheritable further down.
 */
new->opts = NO_OPTIONS;
new->incremented_opts = 0;
new->decremented_opts = 0;
   }
   else {
  - new->incremented_opts = (base->incremented_opts 
  -  | add->incremented_opts)
  - & ~add->decremented_opts;
  - new->decremented_opts = (base->decremented_opts
  -  | add->decremented_opts);
/*
  -  * We've got some local settings, so make sure we don't inadvertently
  -  * inherit an IndexOptions None from above.
  +  * If there were any non-incremental options selected for
  +  * this directory, they dominate and we don't inherit *anything.*
  +  * Contrariwise, we *do* inherit if the only settings here are
  +  * incremental ones.
 */
  - new->opts = ((base->opts | add->opts) & ~NO_OPTIONS);
  + if (add->opts == 0) {
  + new->incremented_opts = (base->incremented_opts 
  +  | add->incremented_opts)
  + & ~add->decremented_opts;
  + new->decremented_opts = (base->decremented_opts
  +  | add->decremented_opts);
  + /*
  +  * We may have incremental settings, so make sure we don't
  +  * inadvertently inherit an IndexOptions None from above.
  +  */
  + new->opts = (base->opts & ~NO_OPTIONS);
  + }
  + else {
  + /*
  +  * There are local non-incremental settings, which clear
  +  * all inheritance from above.  They *are* the new base settings.
  +  */
  + new->opts = add->opts;;
  + }
/*
 * We're guaranteed that there'll be no overlap between
 * the add-options and the remove-options.
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-09-28 Thread coar
coar98/09/28 15:32:13

  Modified:.STATUS
   htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
There appear to be no dissenters (other than for brand-new and
incompatible syntaxes) after three days, and I want to get this
in for 1.3.3.  It can always be modified or reverted later.
  
Add +/- prefixes to IndexOptions keywords, allow merging of
multiple occurrences, and document the changes.
  
  Revision  ChangesPath
  1.495 +0 -4  apache-1.3/STATUS
  
  Index: STATUS
  ===
  RCS file: /export/home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.494
  retrieving revision 1.495
  diff -u -r1.494 -r1.495
  --- STATUS1998/09/25 19:33:38 1.494
  +++ STATUS1998/09/28 22:32:09 1.495
  @@ -25,10 +25,6 @@
   
   Available Patches:
   
  -* Ken's "[PATCH] Add '+' and '-' to IndexOptions keywords"
  - Message-ID: <[EMAIL PROTECTED]>
  - Status: Ken +1
  -
   * Earle Ake: Apache 1.3.1 port to Pyramid DC/OSx
 <[EMAIL PROTECTED]>
   
  
  
  
  1.25  +78 -4 apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- mod_autoindex.html1998/09/24 15:27:52 1.24
  +++ mod_autoindex.html1998/09/28 22:32:10 1.25
  @@ -470,8 +470,17 @@
   Syntax: IndexOptions option option ...
  +>Syntax: IndexOptions option option ...
  + (Apache 1.3.2 and earlier)
  +
   Syntax: IndexOptions [+|-]option [+|-]option
  + ...
  + (Apache 1.3.3 and later)
  +
  +Context: server config, virtual host, directory,
  @@ -487,7 +496,15 @@
   Module: mod_autoindex
  +>Module: mod_autoindex
  +
  +Compatibility: '+/-' syntax and merging of multiple
  + IndexOptions directives is only available with
  + Apache 1.3.3 and later
  +
   
   The IndexOptions directive specifies the behavior of the directory indexing.
   Option can be one of
  @@ -577,7 +594,15 @@
   
   This will suppress the file size in fancy indexing listings.
   
  -This default is that no options are enabled. If multiple IndexOptions
  +
  +There are some noticeable differences in the behaviour of this
  +directive in recent (post-1.3.0) versions of Apache.
  +
  +
  +Apache 1.3.2 and earlier:
  +
  +
  +The default is that no options are enabled. If multiple IndexOptions
   could apply to a directory, then the most specific one is taken complete;
   the options are not merged. For example:
   
  @@ -589,7 +614,56 @@
   
   
   then only ScanHTMLTitles will be set for the /web/docs/spec
  -directory.
  +directory.
  +
  +
  +Apache 1.3.3 and later:
  +
  +
  +Apache 1.3.3 introduced some significant changes in the handling of
  +IndexOptions directives.  In particular,
  +
  +
  + Multiple IndexOptions directives for a single
  +  directory are now merged together.  The result of the example above
  +  will now be the equivalent of
  +  IndexOptions FancyIndexing ScanHTMLTitles.
  + 
  + The addition of the incremental syntax (i.e., prefixing
  +  keywords with '+' or '-').
  + 
  +
  +
  +Whenever a '+' or '-' prefixed keyword is encountered, it is applied
  +to the current IndexOptions settings (which may have been
  +inherited from an upper-level directory).  However, whenever an unprefixed
  +keyword is processed, it clears all incremental settings.  Consider
  +the following example:
  +
  +IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
  +
  +IndexOptions +SuppressSize
  +
  +
  +
  +The net effect is equivalent to
  +IndexOptions FancyIndexing +SuppressSize, because
  +the unprefixed FancyIndexing discarded the incremental
  +keywords before it, but allowed them to start accumulating again
  +afterward.
  +
  +
  +To unconditionally set the IndexOptions for a
  +particular directory, clearing the inherited settings, use
  +
  +
  +IndexOptions None
  +
  +IndexOptions new-setting ...
  +
  +
  +
  +
   
   ReadmeName
   
  
  
  
  1.1083+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1082
  retrieving revision 1.1083
  diff -u -r1.1082 -r1.1083
  --- CHANGES   1998/09/28 20:04:33 1.1082
  +++ CHANGES   1998/09/28 22:32:10 1.1083
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.3
   
  +  *) Add +/- incremental prefixes to IndexOptions keywords, and
  + enable merging of multiple IndexOptions directives.  [Ken Coar]
  +
 *) PORT: Allow GuessOS to recognize Unixware 7.0.1 [Steve Cameron
<[EMAIL PROTECTED]>]
   
  
  
  
  1.94  +102 -12   ap

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-09-24 Thread coar
coar98/09/24 08:53:41

  Modified:src/modules/standard mod_autoindex.c
  Log:
mod_autoindex wasn't inheriting options from parent directories
properly; the use of any other mod_autoindex directives in
a .htaccess that didn't also include IndexOptions would wipe
out any IndexOptions settings.
  
  PR:   3061
  
  Revision  ChangesPath
  1.93  +11 -2 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- mod_autoindex.c   1998/09/24 10:41:55 1.92
  +++ mod_autoindex.c   1998/09/24 15:53:40 1.93
  @@ -93,6 +93,7 @@
   #define SUPPRESS_DESC 32
   #define SUPPRESS_PREAMBLE 64
   #define SUPPRESS_COLSORT 128
  +#define NO_OPTIONS 256
   
   #define K_PAD 1
   #define K_NOPAD 0
  @@ -331,7 +332,7 @@
   opts |= SUPPRESS_COLSORT;
}
else if (!strcasecmp(w, "None")) {
  - opts = 0;
  + opts = NO_OPTIONS;
}
else if (!strcasecmp(w, "IconWidth")) {
d_cfg->icon_width = DEFAULT_ICON_WIDTH;
  @@ -362,6 +363,9 @@
return "Invalid directory indexing option";
}
   }
  +if ((opts & NO_OPTIONS) && (opts & ~NO_OPTIONS)) {
  + return "Cannot combine other IndexOptions keywords with 'None'";
  +}
   d_cfg->opts = opts;
   return NULL;
   }
  @@ -436,7 +440,12 @@
   new->desc_list = ap_append_arrays(p, add->desc_list, base->desc_list);
   new->icon_list = ap_append_arrays(p, add->icon_list, base->icon_list);
   new->rdme_list = ap_append_arrays(p, add->rdme_list, base->rdme_list);
  -new->opts = add->opts;
  +if (add->opts & NO_OPTIONS) {
  + new->opts = NO_OPTIONS;
  +}
  +else {
  + new->opts = base->opts | add->opts;
  +}
   new->name_width = add->name_width;
   new->name_adjust = add->name_adjust;
   
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-09-24 Thread coar
coar98/09/24 03:41:56

  Modified:src/modules/standard mod_autoindex.c
  Log:
Oops.  Logical NOT used instead of bitwise.
  
  Submitted by: Ben Yoshino <[EMAIL PROTECTED]>
  Reviewed by:  Ken Coar
  
  Revision  ChangesPath
  1.92  +1 -1  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.91
  retrieving revision 1.92
  diff -u -r1.91 -r1.92
  --- mod_autoindex.c   1998/09/02 21:04:41 1.91
  +++ mod_autoindex.c   1998/09/24 10:41:55 1.92
  @@ -293,7 +293,7 @@
   
   cfg = (autoindex_config_rec *) d;
   curopts = cfg->opts;
  -newopts = (arg ? (curopts | FANCY_INDEXING) : (curopts & 
!FANCY_INDEXING));
  +newopts = (arg ? (curopts | FANCY_INDEXING) : (curopts & 
~FANCY_INDEXING));
   cfg->opts = newopts;
   return NULL;
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-09-02 Thread coar
coar98/09/02 14:04:43

  Modified:htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Update the filname column width-sizing piece of mod_autoindex
so that it's customisable with a NameLength keyword on the
IndexOptions directive.  A value of '*' means 'as wide as the
longest filename,' which was the default effect of the last
patch in this area.
  
  PR:   1949, 2324
  
  Revision  ChangesPath
  1.21  +12 -2 apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- mod_autoindex.html1998/08/31 01:18:48 1.20
  +++ mod_autoindex.html1998/09/02 21:04:39 1.21
  @@ -482,10 +482,14 @@
   
   This turns on fancy indexing of directories.
   
  - Note that the FancyIndexing and
  + Note that in versions of Apache prior to 1.3.2, the
  + FancyIndexing and
IndexOptions directives will override each other. You
should use IndexOptions FancyIndexing in preference
  - to the standalone FancyIndexing directive.
  + to the standalone FancyIndexing directive.
  + As of Apache 1.3.2, a standalone FancyIndexing directive
  + is combined with any IndexOptions directive already
  + specified for the current scope.
   
   IconHeight[=pixels] (Apache 1.3 and later)
   
  @@ -512,6 +516,12 @@
   images have been loaded.  If no value is given for the option, it
   defaults to the standard width of the icons supplied with the Apache
   software.
  +NameLength=[n | *] (Apache 1.3.2 and later)
  +
  +The NameLength keyword allows you to specify the width of the
  +filename column in bytes.  If the keyword value is '*',
  +then the column is automatically sized to the length of the longest
  +filename in the display.
   ScanHTMLTitles
   
   This enables the extraction of the title from HTML documents for fancy
  
  
  
  1.1044+4 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1043
  retrieving revision 1.1044
  diff -u -r1.1043 -r1.1044
  --- CHANGES   1998/09/01 17:21:11 1.1043
  +++ CHANGES   1998/09/02 21:04:40 1.1044
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.2
   
  +  *) Add NameWidth keyword to IndexOptions directive so that the
  + width of the filename column is customisable.  [Ken Coar, Dean Gaudet]
  + PR#1949, 2324.
  +
 *) Recognize lowercase _and_ uppercase `uname' results under
SCO OpenServer. [David Coelho <[EMAIL PROTECTED]>]
   
  
  
  
  1.91  +103 -11   apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.90
  retrieving revision 1.91
  diff -u -r1.90 -r1.91
  --- mod_autoindex.c   1998/08/31 01:18:53 1.90
  +++ mod_autoindex.c   1998/09/02 21:04:41 1.91
  @@ -94,6 +94,9 @@
   #define SUPPRESS_PREAMBLE 64
   #define SUPPRESS_COLSORT 128
   
  +#define K_PAD 1
  +#define K_NOPAD 0
  +
   /*
* Define keys for sorting.
*/
  @@ -111,6 +114,11 @@
   #define DEFAULT_ICON_WIDTH 20
   #define DEFAULT_ICON_HEIGHT 22
   
  +/*
  + * Other default dimensions.
  + */
  +#define DEFAULT_NAME_WIDTH 23
  +
   struct item {
   char *type;
   char *apply_to;
  @@ -122,6 +130,8 @@
   
   char *default_icon;
   int opts;
  +int name_width;
  +int name_adjust;
   int icon_width;
   int icon_height;
   
  @@ -335,6 +345,19 @@
else if (!strncasecmp(w, "IconHeight=", 11)) {
d_cfg->icon_height = atoi(&w[11]);
}
  + else if (!strncasecmp(w, "NameWidth=", 10)) {
  + if (w[10] == '*') {
  + d_cfg->name_adjust = 1;
  + }
  + else {
  + int width = atoi(&w[10]);
  +
  + if (width < 1) {
  + return "NameWidth value must be greater than 1";
  + }
  + d_cfg->name_width = width;
  + }
  + }
else {
return "Invalid directory indexing option";
}
  @@ -382,6 +405,8 @@
   
   new->icon_width = 0;
   new->icon_height = 0;
  +new->name_width = DEFAULT_NAME_WIDTH;
  +new->name_adjust = 0;
   new->icon_list = ap_make_array(p, 4, sizeof(struct item));
   new->alt_list = ap_make_array(p, 4, sizeof(struct item));
   new->desc_list = ap_make_array(p, 4, sizeof(struct item));
  @@ -412,6 +437,8 @@
   new->icon_list = ap_append_arrays(p, add->icon_list, base->icon_list);
   new->rdme_list = ap_append_arrays(p, ad

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-08-31 Thread coar
coar98/08/30 18:18:55

  Modified:htdocs/manual new_features_1_3.html upgrading_to_1_3.html
   htdocs/manual/mod mod_autoindex.html
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
Clean up mod_autoindex's storage of the IndexOptions settings.
They are per-directory, not per-filename, so keeping them in
an array is confusing and pointless.  They're now stored in an
int in the module config record.  Also (finally!) fix the
FancyIndexing directive so it gets merged into any IndexOptions
settings for the current directory, rather than replacing them.
  
  Revision  ChangesPath
  1.68  +6 -0  apache-1.3/htdocs/manual/new_features_1_3.html
  
  Index: new_features_1_3.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/new_features_1_3.html,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- new_features_1_3.html 1998/07/20 00:18:18 1.67
  +++ new_features_1_3.html 1998/08/31 01:18:45 1.68
  @@ -268,6 +268,12 @@
   height and width attributes to the  tag in
   directory listings.
   
  +The FancyIndexing directive now correctly has
  +the same impact as IndexOptions FancyIndexing
  + without replacing the effect of any existing IndexOptions
  + directive.
  +
   
   
   Less Buffering of CGI Script Output
  
  
  
  1.28  +4 -0  apache-1.3/htdocs/manual/upgrading_to_1_3.html
  
  Index: upgrading_to_1_3.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/upgrading_to_1_3.html,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- upgrading_to_1_3.html 1998/07/04 15:10:50 1.27
  +++ upgrading_to_1_3.html 1998/08/31 01:18:45 1.28
  @@ -72,6 +72,10 @@
   Run-Time Configuration Changes
   
   
  +  Standalone FancyIndexing directives
  +are now combined with the settings of any IndexOptions
  +directive already in effect, rather than replacing them.
  +  
 AuthName strings will need to be quoted
   in .htaccess or server configuration files if they contain
   blank characters (like spaces). For example, if you use
  
  
  
  1.20  +6 -2  apache-1.3/htdocs/manual/mod/mod_autoindex.html
  
  Index: mod_autoindex.html
  ===
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_autoindex.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- mod_autoindex.html1998/05/20 14:12:54 1.19
  +++ mod_autoindex.html1998/08/31 01:18:48 1.20
  @@ -373,10 +373,14 @@
   preference.
   
   
  - Note that the FancyIndexing and
  + Note that in versions of Apache prior to 1.3.2, the
  + FancyIndexing and
IndexOptions directives will override each other. You
should use IndexOptions FancyIndexing in preference
  - to the standalone FancyIndexing directive.
  + to the standalone FancyIndexing directive.
  + As of Apache 1.3.2, a standalone FancyIndexing directive
  + is combined with any IndexOptions directive already
  + specified for the current scope.
   
   
   
  
  
  
  1.1040+5 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1039
  retrieving revision 1.1040
  diff -u -r1.1039 -r1.1040
  --- CHANGES   1998/08/28 11:27:19 1.1039
  +++ CHANGES   1998/08/31 01:18:51 1.1040
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.2
   
  +  *) Simplify handling of IndexOptions in mod_autoindex -- and BTW
  + cause the standalone FancyIndexing directive to logically OR
  + into any existing IndexOptions settings rather than wiping
  + them out.  [Ken Coar]
  +
 *) Changes in ftp proxy: make URL parsing simpler by using the
parsed_uri stuff.
+ Add display of the "current directory" in cases where it's
  
  
  
  1.90  +28 -39apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.89
  retrieving revision 1.90
  diff -u -r1.89 -r1.90
  --- mod_autoindex.c   1998/08/29 18:27:10 1.89
  +++ mod_autoindex.c   1998/08/31 01:18:53 1.90
  @@ -121,11 +121,12 @@
   typedef struct autoindex_config_struct {
   
   char *default_icon;
  +int opts;
   int icon_width;
   int icon_height;
   
   array_header *icon_list, *alt_list, *desc_list, *ign_list;
  -array_header *hdr_list, *rdme_list, *opts_list;
  +array_header *hdr_list, *rdme_list;
   
   } 

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-08-29 Thread martin
martin  98/08/29 11:27:11

  Modified:src/modules/standard mod_autoindex.c
  Log:
  Make configuration parsing for IconWidth/Height somewhat easier and
  more robust. Previously, the IconWidth/IconHeight directives were
  not checked correctly (e.g., IconWidthFailsToDetectThis=10 would
  be parsed as a legal IconWidth=10 option). Also, copying the argument and
  parsing it with ap_getword() seems to be a waste of computing time.
  
  Revision  ChangesPath
  1.89  +10 -22apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.88
  retrieving revision 1.89
  diff -u -r1.88 -r1.89
  --- mod_autoindex.c   1998/08/22 06:57:17 1.88
  +++ mod_autoindex.c   1998/08/29 18:27:10 1.89
  @@ -319,29 +319,17 @@
else if (!strcasecmp(w, "None")) {
opts = 0;
}
  - else if (!strncasecmp(w, "IconWidth", 9)) {
  - if (strchr(w, '=') != NULL) {
  - const char *x = ap_pstrdup(cmd->pool, w);
  - char *val;
  - val = ap_getword(cmd->pool, &x, '=');
  - val = ap_getword(cmd->pool, &x, '=');
  - d_cfg->icon_width = atoi(val);
  - }
  - else {
  - d_cfg->icon_width = DEFAULT_ICON_WIDTH;
  - }
  + else if (!strcasecmp(w, "IconWidth")) {
  + d_cfg->icon_width = DEFAULT_ICON_WIDTH;
}
  - else if (!strncasecmp(w, "IconHeight", 10)) {
  - if (strchr(w, '=') != NULL) {
  - const char *x = ap_pstrdup(cmd->pool, w);
  - char *val;
  - val = ap_getword(cmd->pool, &x, '=');
  - val = ap_getword(cmd->pool, &x, '=');
  - d_cfg->icon_height = atoi(val);
  - }
  - else {
  - d_cfg->icon_height = DEFAULT_ICON_HEIGHT;
  - }
  + else if (!strncasecmp(w, "IconWidth=", 10)) {
  + d_cfg->icon_width = atoi(&w[10]);
  + }
  + else if (!strcasecmp(w, "IconHeight")) {
  + d_cfg->icon_height = DEFAULT_ICON_HEIGHT;
  + }
  + else if (!strncasecmp(w, "IconHeight=", 11)) {
  + d_cfg->icon_height = atoi(&w[11]);
}
else {
return "Invalid directory indexing option";
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-08-22 Thread dgaudet
dgaudet 98/08/21 23:57:17

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  dynamincally size the filename column
  
  Reviewed by:  Martin Kraemer
  
  Revision  ChangesPath
  1.1031+3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1030
  retrieving revision 1.1031
  diff -u -r1.1030 -r1.1031
  --- CHANGES   1998/08/20 04:07:43 1.1030
  +++ CHANGES   1998/08/22 06:57:15 1.1031
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.2
   
  +  *) Dynamically size the filename column of mod_autoindex output.
  + [Dean Gaudet]
  +
 *) Add the ability to do POST requests to the ab benchmarking tool.
[Kurt Sussman <[EMAIL PROTECTED]>] PR#2871
   
  
  
  
  1.88  +28 -32apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- mod_autoindex.c   1998/08/06 17:30:56 1.87
  +++ mod_autoindex.c   1998/08/22 06:57:17 1.88
  @@ -865,15 +865,29 @@
   autoindex_config_rec * d, request_rec *r,
 int autoindex_opts, char keyid, char direction)
   {
  -int x, len;
  +int x;
   char *name = r->uri;
   char *tp;
   int static_columns = (autoindex_opts & SUPPRESS_COLSORT);
   pool *scratch = ap_make_sub_pool(r->pool);
  +int name_width;
  +char *name_scratch;
   
   if (name[0] == '\0')
name = "/";
   
  +name_width = 23;
  +for (x = 0; x < n; x++) {
  + int t = strlen(ar[x]->name);
  + if (t > name_width) {
  + name_width = t;
  + }
  +}
  +++name_width;
  +name_scratch = ap_palloc(r->pool, name_width + 1);
  +memset(name_scratch, ' ', name_width);
  +name_scratch[name_width] = 0;
  +
   if (autoindex_opts & FANCY_INDEXING) {
ap_rputs("", r);
if ((tp = find_default_icon(d, "^^BLANKICON^^"))) {
  @@ -891,7 +905,7 @@
ap_rputs("> ", r);
}
   emit_link(r, "Name", K_NAME, keyid, direction, static_columns);
  - ap_rputs("   ", r);
  + ap_rputs(name_scratch + 4, r);
if (!(autoindex_opts & SUPPRESS_LAST_MOD)) {
   emit_link(r, "Last modified", K_LAST_MOD, keyid, direction,
 static_columns);
  @@ -912,7 +926,8 @@
   }
   
   for (x = 0; x < n; x++) {
  - char *anchor = NULL, *t = NULL, *t2 = NULL;
  + char *anchor, *t, *t2;
  + char *pad;
   
ap_clear_pool(scratch);
   
  @@ -922,40 +937,21 @@
if (t[0] == '\0') {
t = "/";
}
  - anchor = ap_pstrcat(scratch, "", NULL);
  - t2 = "Parent Directory   ";
  +/* 1234567890123456 */
  + t2 = "Parent Directory";
  + pad = name_scratch + 16;
  + anchor = ap_escape_html(scratch, ap_os_escape_path(scratch, t, 0));
}
else {
t = ar[x]->name;
  - len = strlen(t);
  - if (len > 23) {
  - t2 = ap_pstrdup(scratch, t);
  - t2[21] = '.';
  - t2[22] = '.';
  - t2[23] = '\0';
  - t2 = ap_escape_html(scratch, t2);
  - t2 = ap_pstrcat(scratch, t2, "", NULL);
  - }
  - else {
  - char buff[24] = "   ";
  - t2 = ap_escape_html(scratch, t);
  - buff[23 - len] = '\0';
  - t2 = ap_pstrcat(scratch, t2, "", buff, NULL);
  - }
  - anchor = ap_pstrcat(scratch, "", NULL);
  + pad = name_scratch + strlen(t);
  + t2 = ap_escape_html(scratch, t);
  + anchor = ap_escape_html(scratch, ap_os_escape_path(scratch, t, 0));
}
   
if (autoindex_opts & FANCY_INDEXING) {
if (autoindex_opts & ICONS_ARE_LINKS) {
  - ap_rputs(anchor, r);
  + ap_rvputs(r, "", NULL);
}
if ((ar[x]->icon) || d->default_icon) {
ap_rvputs(r, "", r);
}
   
  - ap_rvputs(r, " ", anchor, t2, NULL);
  + ap_rvputs(r, " ", t2, "", pad, NULL);
if (!(autoindex_opts & SUPPRESS_LAST_MOD)) {
if (ar[x]->lm != -1) {
char time_str[MAX_STRING_LEN];
  @@ -998,7 +994,7 @@
}
}
else {
  - ap_rvputs(r, " ", anchor, " ", t2, NULL);
  + ap_rvputs(r, "  ", t2, "", pad, 
NULL);
}
ap_rputc('\n', r);
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-07-07 Thread dgaudet
dgaudet 98/07/06 21:54:05

  Modified:src/modules/standard mod_autoindex.c
  Log:
  - fix a gcc -Wall warning in dsortf()  (Ken you should be using -Wall)
  - remove unnecessary complexity and verbiage (backport dsortf from 
apache-nspr)
  
  Revision  ChangesPath
  1.85  +21 -74apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- mod_autoindex.c   1998/06/20 11:20:39 1.84
  +++ mod_autoindex.c   1998/07/07 04:54:04 1.85
  @@ -1017,12 +1017,9 @@
   
   static int dsortf(struct ent **e1, struct ent **e2)
   {
  -char *s1;
  -char *s2;
   struct ent *c1;
   struct ent *c2;
   int result = 0;
  -int compare_by_string = 1;
   
   /*
* First, see if either of the entries is for the parent directory.
  @@ -1040,87 +1037,37 @@
*/
   if ((*e1)->ascending) {
   c1 = *e1;
  - c2 = *e2;
  +c2 = *e2;
   }
   else {
   c1 = *e2;
   c2 = *e1;
   }
  -/*
  - * Choose the right values for the sort keys.
  - */
   switch (c1->key) {
   case K_LAST_MOD:
  -/*
  -  * Since the last-modified time is a monotonically increasing integer,
  -  * we can short-circuit this process with a simple comparison.
  -  */
  -result = c1->lm - c2->lm;
  - if (result != 0) {
  - result = (result > 0) ? 1 : -1;
  - }
  - compare_by_string = 0;
  - break;
  + if (c1->lm > c2->lm) {
  +return 1;
  +}
  +else if (c1->lm < c2->lm) {
  +return -1;
  +}
  +break;
   case K_SIZE:
  -/*
  -  * We can pull the same trick with the size as with the mtime.
  -  */
  -result = c1->size - c2->size;
  - if (result != 0) {
  - result = (result > 0) ? 1 : -1;
  - }
  - compare_by_string = 0;
  - break;
  +if (c1->size > c2->size) {
  +return 1;
  +}
  +else if (c1->size < c2->size) {
  +return -1;
  +}
  +break;
   case K_DESC:
  - s1 = c1->desc;
  - s2 = c2->desc;
  - break;
  -case K_NAME:
  -default:
  - s1 = c1->name;
  - s2 = c2->name;
  - break;
  -}
  -
  -if (compare_by_string) {
  -/*
  -  * Take some care, here, in case one string or the other (or both) is
  -  * NULL.
  -  */
  -
  -/*
  -  * Two valid strings, compare normally.
  -  */
  -if ((s1 != NULL) && (s2 != NULL)) {
  - result = strcmp(s1, s2);
  - }
  - /*
  -  * Two NULL strings - primary keys are equal (fake it).
  -  */
  - else if ((s1 == NULL) && (s2 == NULL)) {
  - result = 0;
  - }
  - /*
  -  * s1 is NULL, but s2 is a string - so s2 wins.
  -  */
  - else if (s1 == NULL) {
  - result = -1;
  - }
  - /*
  -  * Last case: s1 is a string and s2 is NULL, so s1 wins.
  -  */
  - else {
  - result = 1;
  - }
  -}
  -/*
  - * If the keys were equal, the file name is *always* the secondary key -
  - * in ascending order.
  - */
  -if (!result) {
  - result = strcmp((*e1)->name, (*e2)->name);
  +result = strcmp(c1->desc ? c1->desc : "", c2->desc ? c2->desc : "");
  +if (result) {
  +return result;
  +}
  +break;
   }
  -return result;
  +return strcmp(c1->name, c2->name);
   }
   
   
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-06-19 Thread coar
coar98/06/19 06:31:31

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
IndexIgnore was looking for an exact match of the filename against
the pattern, even though on Win32 README.html, Readme.html, and
readme.html are all the same file.
  
  PR:   2455
  
  Revision  ChangesPath
  1.926 +3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.925
  retrieving revision 1.926
  diff -u -r1.925 -r1.926
  --- CHANGES   1998/06/17 13:33:59 1.925
  +++ CHANGES   1998/06/19 13:31:28 1.926
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.1
   
  +  *) IndexIgnore should be case-blind on Win32 (and any other case-aware
  + but case-insensitive platforms).  [Ken Coar] PR#2455
  +
 *) Enable DSO support for OpenBSD in general, not only for 2.x, because it
also works for OpenBSD 1.x. [Ralf S. Engelschall]
   
  
  
  
  1.83  +10 -0 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- mod_autoindex.c   1998/06/16 03:40:13 1.82
  +++ mod_autoindex.c   1998/06/19 13:31:30 1.83
  @@ -534,10 +534,20 @@
ap++;
}
   
  +#ifndef WIN32
if (!ap_strcmp_match(path, p->apply_path)
&& !ap_strcmp_match(tt, ap)) {
return 1;
}
  +#else  /* !WIN32 */
  + /*
  +  * On Win32, the match must be case-blind.
  +  */
  + if (!ap_strcasecmp_match(path, p->apply_path)
  + && !ap_strcasecmp_match(tt, ap)) {
  + return 1;
  + }
  +#endif /* !WIN32 */
   }
   return 0;
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-06-16 Thread brian
brian   98/06/15 20:40:13

  Modified:src/modules/standard mod_autoindex.c
  Log:
  shut up gcc's warning.
  
  Revision  ChangesPath
  1.82  +1 -1  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- mod_autoindex.c   1998/06/13 15:23:08 1.81
  +++ mod_autoindex.c   1998/06/16 03:40:13 1.82
  @@ -1009,7 +1009,7 @@
   char *s2;
   struct ent *c1;
   struct ent *c2;
  -int result;
  +int result = 0;
   int compare_by_string = 1;
   
   /*
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-06-12 Thread dgaudet
dgaudet 98/06/12 10:42:43

  Modified:src/modules/standard mod_autoindex.c
  Log:
  - It's not possible for name to be NULL.
  - It's not necessary to test name[0] == 0 because the next if will fail in
that event anyhow.  Ditto for name[1] == 0.
  
  Revision  ChangesPath
  1.80  +1 -13 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- mod_autoindex.c   1998/06/12 15:53:23 1.79
  +++ mod_autoindex.c   1998/06/12 17:42:42 1.80
  @@ -140,20 +140,8 @@
* matches ".." or "../").  Hopefully this one call is significantly less
* expensive than multiple strcmp() calls.
*/
  -static int is_parent(const char *name)
  +static ap_inline int is_parent(const char *name)
   {
  -/*
  - * If it's no name at all, it isn't our parent.
  - */
  -if (name == NULL) {
  -return 0;
  -}
  -/*
  - * Nor is it if the name isn't long enough.
  - */
  -if ((name[0] == '\0') || (name[1] == '\0')) {
  -return 0;
  -}
   /*
* Now, IFF the first two bytes are dots, and the third byte is either
* EOS (\0) or a slash followed by EOS, we have a match.
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-06-12 Thread coar
coar98/06/12 08:53:26

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
I've been meaning to clean up these integer-as-string comparisons
for a while, and encountered the misplacement of the parent directory
entry during testing.  Needing the parent-directory test in a
second location prompted streamlining simplification of the method.
  
  Revision  ChangesPath
  1.911 +9 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.910
  retrieving revision 1.911
  diff -u -r1.910 -r1.911
  --- CHANGES   1998/06/10 21:13:26 1.910
  +++ CHANGES   1998/06/12 15:53:21 1.911
  @@ -1,5 +1,14 @@
   Changes with Apache 1.3.1
   
  +  *) Improve performance of directory listings (mod_autoindex) by comparing
  + integer keys (last-modified and size) as integers rather than converting
  + them to strings first.  Also use a set of explicit byte tests rather
  + than strcmp() to check for parent directory-ness of an entry.  Oh, and
  + make sure the parent directory (if displayed) is *always* listed first
  + regardless of the sort key.  Overall performance winnage should be good
  + in CPU time, instruction cache, and memory usage, particularly for large
  + directories.  [Ken Coar]
  +
 *) Add httpd -t (test) option for running configuration syntax tests only.
If something is broken it complains and exits with a return code
non-equal to 0. This can be used manually by the user to check the 
Apache
  
  
  
  1.79  +119 -60   apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- mod_autoindex.c   1998/06/12 11:20:56 1.78
  +++ mod_autoindex.c   1998/06/12 15:53:23 1.79
  @@ -136,6 +136,37 @@
   #define BY_PATH &c_by_path
   
   /*
  + * Return true if the specified string refers to the parent directory (i.e.,
  + * matches ".." or "../").  Hopefully this one call is significantly less
  + * expensive than multiple strcmp() calls.
  + */
  +static int is_parent(const char *name)
  +{
  +/*
  + * If it's no name at all, it isn't our parent.
  + */
  +if (name == NULL) {
  +return 0;
  +}
  +/*
  + * Nor is it if the name isn't long enough.
  + */
  +if ((name[0] == '\0') || (name[1] == '\0')) {
  +return 0;
  +}
  +/*
  + * Now, IFF the first two bytes are dots, and the third byte is either
  + * EOS (\0) or a slash followed by EOS, we have a match.
  + */
  +if (((name[0] == '.') && (name[1] == '.'))
  + && ((name[2] == '\0')
  + || ((name[2] == '/') && (name[3] == '\0' {
  +return 1;
  +}
  +return 0;
  +}
  +
  +/*
* This routine puts the standard HTML header at the top of the index page.
* We include the DOCTYPE because we may be using features therefrom (i.e.,
* HEIGHT and WIDTH attributes on the icons if we're FancyIndexing).
  @@ -417,9 +448,7 @@
   char *alt;
   char *desc;
   size_t size;
  -char *size_cmp;
   time_t lm;
  -char *lm_cmp;
   struct ent *next;
   int ascending;
   char key;
  @@ -750,20 +779,15 @@
}
   
ap_destroy_sub_req(rr);
  -}
  -if (keyid == K_SIZE) {
  - p->size_cmp = ap_palloc(r->pool, 14);
  - ap_snprintf(p->size_cmp, 14, "%013d", p->size);
   }
  +/*
  + * We don't need to take any special action for the file size key.  If
  + * we did, it would go here.
  + */
   if (keyid == K_LAST_MOD) {
  - struct tm *ts = localtime(&p->lm);
  -
  - if(ts) {
  - p->lm_cmp = ap_palloc(r->pool, 15);
  - strftime(p->lm_cmp, 15, "%Y%m%d%H%M%S", ts);
  +if (p->lm < 0) {
  + p->lm = 0;
}
  - else
  - p->lm_cmp=NULL;
   }
   return (p);
   }
  @@ -892,7 +916,7 @@
   
ap_clear_pool(scratch);
   
  - if ((!strcmp(ar[x]->name, "../")) || (!strcmp(ar[x]->name, ".."))) {
  + if (is_parent(ar[x]->name)) {
t = ap_make_full_path(scratch, name, "../");
ap_getparents(t);
if (t[0] == '\0') {
  @@ -986,73 +1010,108 @@
   }
   }
   
  +/*
  + * Compare two file entries according to the sort criteria.  The return
  + * is essentially a signum function value.
  + */
   
   static int dsortf(struct ent **e1, struct ent **e2)
   {
   char *s1;
   char *s2;
  -char *s3;
  +struct ent *c1;
  +struct ent *c2;
   int result;
  +int compare_by_string = 1;
   
   /*
  + * First, see if either of the entries is for the par

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-06-12 Thread coar
coar98/06/12 04:20:57

  Modified:src/modules/standard mod_autoindex.c
  Log:
Style-guide cleanups.
  
  Revision  ChangesPath
  1.78  +175 -122  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- mod_autoindex.c   1998/05/16 21:11:17 1.77
  +++ mod_autoindex.c   1998/06/12 11:20:56 1.78
  @@ -142,15 +142,9 @@
*/
   static void emit_preamble(request_rec *r, char *title)
   {
  -ap_rvputs
  - (
  - r,
  - "\n",
  - "\n \n  Index of ",
  - title,
  - "\n \n \n",
  - NULL
  - );
  +ap_rvputs(r, "\n",
  +   "\n \n  Index of ", title,
  +   "\n \n \n", NULL);
   }
   
   static void push_item(array_header *arr, char *type, char *to, char *path,
  @@ -158,33 +152,41 @@
   {
   struct item *p = (struct item *) ap_push_array(arr);
   
  -if (!to)
  +if (!to) {
to = "";
  -if (!path)
  +}
  +if (!path) {
path = "";
  +}
   
   p->type = type;
   p->data = data ? ap_pstrdup(arr->pool, data) : NULL;
   p->apply_path = ap_pstrcat(arr->pool, path, "*", NULL);
   
  -if ((type == BY_PATH) && (!ap_is_matchexp(to)))
  +if ((type == BY_PATH) && (!ap_is_matchexp(to))) {
p->apply_to = ap_pstrcat(arr->pool, "*", to, NULL);
  -else if (to)
  +}
  +else if (to) {
p->apply_to = ap_pstrdup(arr->pool, to);
  -else
  +}
  +else {
p->apply_to = NULL;
  +}
   }
   
   static const char *add_alt(cmd_parms *cmd, void *d, char *alt, char *to)
   {
  -if (cmd->info == BY_PATH)
  - if (!strcmp(to, "**DIRECTORY**"))
  +if (cmd->info == BY_PATH) {
  +if (!strcmp(to, "**DIRECTORY**")) {
to = "^^DIRECTORY^^";
  + }
  +}
   if (cmd->info == BY_ENCODING) {
ap_str_tolower(to);
   }
   
  -push_item(((autoindex_config_rec *) d)->alt_list, cmd->info, to, 
cmd->path, alt);
  +push_item(((autoindex_config_rec *) d)->alt_list, cmd->info, to,
  +   cmd->path, alt);
   return NULL;
   }
   
  @@ -203,28 +205,24 @@
*cl = '\0'; /* Lose closing paren */
add_alt(cmd, d, &alt[1], to);
   }
  -if (cmd->info == BY_PATH)
  - if (!strcmp(to, "**DIRECTORY**"))
  +if (cmd->info == BY_PATH) {
  +if (!strcmp(to, "**DIRECTORY**")) {
to = "^^DIRECTORY^^";
  + }
  +}
   if (cmd->info == BY_ENCODING) {
ap_str_tolower(to);
   }
   
  -push_item(((autoindex_config_rec *) d)->icon_list, cmd->info, to, 
cmd->path,
  -   iconbak);
  +push_item(((autoindex_config_rec *) d)->icon_list, cmd->info, to,
  +   cmd->path, iconbak);
   return NULL;
   }
   
   static const char *add_desc(cmd_parms *cmd, void *d, char *desc, char *to)
   {
  -push_item
  - (
  - ((autoindex_config_rec *) d)->desc_list,
  - cmd->info,
  - to,
  - cmd->path,
  - desc
  - );
  +push_item(((autoindex_config_rec *) d)->desc_list, cmd->info, to,
  +   cmd->path, desc);
   return NULL;
   }
   
  @@ -239,7 +237,8 @@
   if (strchr(name, '/')) {
return "HeaderName cannot contain a /";
   }
  -push_item(((autoindex_config_rec *) d)->hdr_list, 0, NULL, cmd->path, 
name);
  +push_item(((autoindex_config_rec *) d)->hdr_list, 0, NULL, cmd->path,
  +   name);
   return NULL;
   }
   
  @@ -248,15 +247,16 @@
   if (strchr(name, '/')) {
return "ReadmeName cannot contain a /";
   }
  -push_item(((autoindex_config_rec *) d)->rdme_list, 0, NULL, cmd->path, 
name);
  +push_item(((autoindex_config_rec *) d)->rdme_list, 0, NULL, cmd->path,
  +   name);
   return NULL;
   }
   
   
   static const char *add_opts_int(cmd_parms *cmd, void *d, int opts)
   {
  -push_item(((autoindex_config_rec *) d)->opts_list, (char *) (long) opts, 
NULL,
  -   cmd->path, NULL);
  +push_item(((autoindex_config_rec *) d)->opts_list, (char *) (long) opts,
  +   NULL, cmd->path, NULL);
   return NULL;
   }
   
  @@ -273,25 +273,33 @@
   
   while (optstr[0]) {
w = ap_getword_conf(cmd->pool, &optstr);
  - if (!strcasecmp(w, "FancyIndexing"))
  + if (!strcasecmp(w, "FancyIndexing")) {
opts |= FANCY_INDEXING;
  - else if (!strcasecmp(w, "IconsAreLinks"))
  + }
  + else if (!strcasecmp(w, "IconsAreLinks")) {
opts |= ICONS_ARE_LINKS;
  - else if (!strcasecmp(w, "ScanHTMLTitles"))
  + }
  + else if (!strcasecmp(w, "ScanHTMLTitles")) {
opts |= SCAN_HTML_TITLES;
  - else if (!strcasecmp(w, "SuppressLastModified"))
  

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-05-16 Thread ben
ben 98/05/16 14:11:17

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  Fix conversion of time -1.
  
  Revision  ChangesPath
  1.850 +3 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.849
  retrieving revision 1.850
  diff -u -r1.849 -r1.850
  --- CHANGES   1998/05/16 16:34:44 1.849
  +++ CHANGES   1998/05/16 21:11:15 1.850
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3b7
   
  +  *) WIN32: Clicking on "Last Modified" in a fancy index caused a crash. 
Fixed.
  + [Ben Laurie] PR#2238
  +
 *) WIN32: CGIs could cause a hang (because of a deadlock in the standard C
library), so CGI handling has been changed to use Win32 native handles
 instead of C file descriptors.
  
  
  
  1.77  +6 -2  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- mod_autoindex.c   1998/05/03 16:46:50 1.76
  +++ mod_autoindex.c   1998/05/16 21:11:17 1.77
  @@ -718,8 +718,12 @@
   if (keyid == K_LAST_MOD) {
struct tm *ts = localtime(&p->lm);
   
  - p->lm_cmp = ap_palloc(r->pool, 15);
  - strftime(p->lm_cmp, 15, "%Y%m%d%H%M%S", ts);
  + if(ts) {
  + p->lm_cmp = ap_palloc(r->pool, 15);
  + strftime(p->lm_cmp, 15, "%Y%m%d%H%M%S", ts);
  + }
  + else
  + p->lm_cmp=NULL;
   }
   return (p);
   }
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-05-03 Thread jim
jim 98/05/03 09:46:50

  Modified:.STATUS
   src  CHANGES
   src/modules/standard mod_autoindex.c
  Log:
  PR: 2112
  Submitted by: Jim Jagielski
  Reviewed by:  Dean Gaudet, Ralf Engelschall
  
  Revision  ChangesPath
  1.354 +1 -5  apache-1.3/STATUS
  
  Index: STATUS
  ===
  RCS file: /export/home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.353
  retrieving revision 1.354
  diff -u -r1.353 -r1.354
  --- STATUS1998/05/03 16:29:38 1.353
  +++ STATUS1998/05/03 16:46:47 1.354
  @@ -82,6 +82,7 @@
   * Ben's WIN32: Make roots of filesystems (e.g. c:/) work, PR#1558
   * Ben's WIN32: Extensive overhaul of the way UNCs are handled.
   * Ralf's fix for referer/agent log entries in installed httpd.conf, 
PR#2175
  +* Jim's fix for MIME type case sensitivity disparity, PR#2112
   
   Available Patches:
   
  @@ -136,11 +137,6 @@
 CustomLog-like tailoring of directory listing formats
   
   FINAL RELEASE SHOWSTOPPERS:
  -
  -* MIME type case sensitivity disparity between 1.2.6 and 1.3b6 (PR #2112)
  -  mod_autoindex should lowercase the mime-type when comparing
  -  [PATCH] <[EMAIL PROTECTED]>
  -  Status: Jim, Dean +1
   
   * proxy security fixes from 1.2.5 need to be brought forward
  Jim: What are these?
  
  
  
  1.810 +4 -1  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.809
  retrieving revision 1.810
  diff -u -r1.809 -r1.810
  --- CHANGES   1998/05/03 10:22:29 1.809
  +++ CHANGES   1998/05/03 16:46:48 1.810
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3b7
  - 
  +
  +  *) mod_autoindex's find_itme() was sensitive to MIME type case.
  + [Jim Jagielski] PR#2112
  +
 *) Make sure the referer_log and agent_log entries in the default 
httpd.conf
file are also adjusted for the actual relative installation paths.
[Ralf S. Engelschall] PR#2175
  
  
  
  1.76  +2 -2  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- mod_autoindex.c   1998/04/15 17:09:29 1.75
  +++ mod_autoindex.c   1998/05/03 16:46:50 1.76
  @@ -437,13 +437,13 @@
else if (!path_only) {
if (!content_encoding) {
if (p->type == BY_TYPE) {
  - if (content_type && !ap_strcmp_match(content_type, 
p->apply_to))
  + if (content_type && !ap_strcasecmp_match(content_type, 
p->apply_to))
return p->data;
}
}
else {
if (p->type == BY_ENCODING) {
  - if (!ap_strcmp_match(content_encoding, p->apply_to))
  + if (!ap_strcasecmp_match(content_encoding, p->apply_to))
return p->data;
}
}
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-04-15 Thread dgaudet
dgaudet 98/04/15 10:09:30

  Modified:src  CHANGES
   src/include conf.h
   src/main alloc.c
   src/modules/proxy proxy_cache.c
   src/modules/standard mod_autoindex.c
  Log:
  clean up warnings on ultrix
  
  Submitted by: Ben Hyde
  
  Revision  ChangesPath
  1.768 +2 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.767
  retrieving revision 1.768
  diff -u -r1.767 -r1.768
  --- CHANGES   1998/04/12 15:49:25 1.767
  +++ CHANGES   1998/04/15 17:09:25 1.768
  @@ -1,4 +1,6 @@
   Changes with Apache 1.3b6
  +
  +  *) PORT: Clean up warnings on Ultrix.  [Ben Hyde]

 *) Adding DSO support for the HP/UX platform by emulating the dlopen-style
interface via the similar but proprietary HP/UX shl_xxx-style system
  
  
  
  1.201 +6 -0  apache-1.3/src/include/conf.h
  
  Index: conf.h
  ===
  RCS file: /export/home/cvs/apache-1.3/src/include/conf.h,v
  retrieving revision 1.200
  retrieving revision 1.201
  diff -u -r1.200 -r1.201
  --- conf.h1998/04/09 08:20:24 1.200
  +++ conf.h1998/04/15 17:09:27 1.201
  @@ -965,6 +965,12 @@
   #define ap_selectselect
   #endif
   
  +#ifdef ULTRIX_BRAIN_DEATH
  +#define ap_fdopen(d,m) fdopen((d), (char *)(m))
  +#else
  +#define ap_fdopen(d,m) fdopen((d), (m))
  +#endif
  +
   #ifndef ap_inet_addr
   #define ap_inet_addr inet_addr
   #endif
  
  
  
  1.88  +6 -6  apache-1.3/src/main/alloc.c
  
  Index: alloc.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/alloc.c,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- alloc.c   1998/04/11 12:00:28 1.87
  +++ alloc.c   1998/04/15 17:09:28 1.88
  @@ -1557,7 +1557,7 @@
modeFlags);
if (desc >= 0) {
desc = ap_slack(desc, AP_SLACK_LOW);
  - fd = fdopen(desc, mode);
  + fd = ap_fdopen(desc, mode);
}
   }
   else {
  @@ -1575,7 +1575,7 @@
   FILE *f;
   
   ap_block_alarms();
  -f = fdopen(fd, mode);
  +f = ap_fdopen(fd, mode);
   if (f != NULL)
ap_note_cleanups_for_file(a, f);
   ap_unblock_alarms();
  @@ -1753,7 +1753,7 @@
   #define os_pipe(fds) pipe(fds)
   #endif /* WIN32 */
   
  -/* for fdopen, to get binary mode */
  +/* for ap_fdopen, to get binary mode */
   #if defined (__EMX__) || defined (WIN32)
   #define BINMODE  "b"
   #else
  @@ -1969,7 +1969,7 @@
   }
   
   if (pipe_out) {
  - *pipe_out = fdopen(fd_out, "r" BINMODE);
  + *pipe_out = ap_fdopen(fd_out, "r" BINMODE);
if (*pipe_out)
ap_note_cleanups_for_file(p, *pipe_out);
else
  @@ -1977,7 +1977,7 @@
   }
   
   if (pipe_in) {
  - *pipe_in = fdopen(fd_in, "w" BINMODE);
  + *pipe_in = ap_fdopen(fd_in, "w" BINMODE);
if (*pipe_in)
ap_note_cleanups_for_file(p, *pipe_in);
else
  @@ -1985,7 +1985,7 @@
   }
   
   if (pipe_err) {
  - *pipe_err = fdopen(fd_err, "r" BINMODE);
  + *pipe_err = ap_fdopen(fd_err, "r" BINMODE);
if (*pipe_err)
ap_note_cleanups_for_file(p, *pipe_err);
else
  
  
  
  1.37  +3 -0  apache-1.3/src/modules/proxy/proxy_cache.c
  
  Index: proxy_cache.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/proxy_cache.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- proxy_cache.c 1998/04/11 12:00:39 1.36
  +++ proxy_cache.c 1998/04/15 17:09:29 1.37
  @@ -636,6 +636,9 @@
   int ap_proxy_cache_update(struct cache_req *c, array_header *resp_hdrs,
   const int is_HTTP1, int nocache)
   {
  +#ifdef ULTRIX_BRAIN_DEATH
  +  extern char *mktemp(char *template);
  +#endif 
   request_rec *r = c->req;
   char *p;
   int i;
  
  
  
  1.75  +0 -4  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- mod_autoindex.c   1998/04/13 18:05:15 1.74
  +++ mod_autoindex.c   1998/04/15 17:09:29 1.75
  @@ -1113,12 +1113,8 @@
p = p->next;
}
   
  -#ifdef ULTRIX_BRAIN_DEATH
  - qsort((void *) ar, num_ent, sizeof(struct ent *), (int (*)) dsortf);
  -#else
qsort((void *) ar, num_ent, sizeof(struct ent *),
  (int (*)(const void *, const void *)) dsortf);
  -#endif
   }
   output_directories(ar, num_ent, autoindex_con

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c

1998-03-06 Thread dgaudet
dgaudet 98/03/05 20:25:46

  Modified:src/modules/standard mod_autoindex.c
  Log:
  indent
  
  Revision  ChangesPath
  1.69  +2 -2  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- mod_autoindex.c   1998/02/12 02:18:43 1.68
  +++ mod_autoindex.c   1998/03/06 04:25:45 1.69
  @@ -1150,8 +1150,8 @@
   
   if (allow_opts & OPT_INDEXES) {
/* KLUDGE --- make the sub_req lookups happen in the right directory.
  -* Fixing this in the sub_req_lookup functions themselves is 
difficult,
  -* and would probably break virtual includes...
  +  * Fixing this in the sub_req_lookup functions themselves is difficult,
  +  * and would probably break virtual includes...
 */
   
if (r->filename[strlen(r->filename) - 1] != '/') {
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c mod_negotiation.c

1998-02-12 Thread dgaudet
dgaudet 98/02/11 18:18:45

  Modified:src/ap   ap_snprintf.c
   src/helpers dummy.c
   src/main fnmatch.c http_core.c
   src/modules/standard mod_autoindex.c mod_negotiation.c
  Log:
  Clean up gcc 2.8.0 -Wall warnings... so we don't have to deal with PRs
  about them.
  
  Revision  ChangesPath
  1.13  +2 -1  apache-1.3/src/ap/ap_snprintf.c
  
  Index: ap_snprintf.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/ap/ap_snprintf.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ap_snprintf.c 1998/01/07 16:45:56 1.12
  +++ ap_snprintf.c 1998/02/12 02:18:38 1.13
  @@ -426,7 +426,7 @@
return (buf);
   }
   
  -if (format == 'f')
  +if (format == 'f') {
if (decimal_point <= 0) {
*s++ = '0';
if (precision > 0) {
  @@ -443,6 +443,7 @@
if (precision > 0 || add_dp)
*s++ = '.';
}
  +}
   else {
*s++ = *p++;
if (precision > 0 || add_dp)
  
  
  
  1.4   +1 -1  apache-1.3/src/helpers/dummy.c
  
  Index: dummy.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/helpers/dummy.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- dummy.c   1997/07/25 02:03:17 1.3
  +++ dummy.c   1998/02/12 02:18:39 1.4
  @@ -1,7 +1,7 @@
   /* this file is used by TestLib */
   int foo ( const char *c )
   {
  -return 0;
  +return *c;
   }
   int main(void) {
   const char *c = '\0';
  
  
  
  1.6   +6 -3  apache-1.3/src/main/fnmatch.c
  
  Index: fnmatch.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/fnmatch.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- fnmatch.c 1997/11/06 22:03:40 1.5
  +++ fnmatch.c 1998/02/12 02:18:40 1.6
  @@ -84,12 +84,15 @@
return (FNM_NOMATCH);
   
/* Optimize for pattern with * at end or before /. */
  - if (c == EOS)
  - if (flags & FNM_PATHNAME)
  + if (c == EOS) {
  + if (flags & FNM_PATHNAME) {
return (strchr(string, '/') == NULL ?
0 : FNM_NOMATCH);
  - else
  + }
  + else {
return (0);
  + }
  + }
else if (c == '/' && flags & FNM_PATHNAME) {
if ((string = strchr(string, '/')) == NULL)
return (FNM_NOMATCH);
  
  
  
  1.158 +12 -6 apache-1.3/src/main/http_core.c
  
  Index: http_core.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
  retrieving revision 1.157
  retrieving revision 1.158
  diff -u -r1.157 -r1.158
  --- http_core.c   1998/02/08 23:15:34 1.157
  +++ http_core.c   1998/02/12 02:18:41 1.158
  @@ -690,11 +690,14 @@
   const char *err = check_cmd_context(cmd, 
NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
   if (err != NULL) return err;
   
  -if (!is_directory (arg))
  - if (cmd->server->is_virtual)
  +if (!is_directory (arg)) {
  + if (cmd->server->is_virtual) {
fprintf (stderr, "Warning: DocumentRoot [%s] does not exist\n", 
arg);
  - else
  + }
  + else {
return "DocumentRoot must be a directory";
  + }
  +}
   
   conf->document_root = arg;
   return NULL;
  @@ -1551,11 +1554,14 @@
return;
   }
   
  -if ((str = getword_conf(cmd->pool, &arg)))
  - if (!strcasecmp(str, "max"))
  +if ((str = getword_conf(cmd->pool, &arg))) {
  + if (!strcasecmp(str, "max")) {
cur = limit->rlim_max;
  - else
  + }
  + else {
cur = atol(str);
  + }
  +}
   else {
aplog_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, cmd->server,
"Invalid parameters for %s", cmd->cmd->name);
  
  
  
  1.68  +8 -4  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- mod_autoindex.c   1998/02/12 01:09:44 1.67
  +++ mod_autoindex.c   1998/02/12 02:18:43 1.68
  @@ -635,12 +635,16 @@
if ((p = ind(&titlebuf[++x], '<')) != -1)
titlebuf[x + p] = '\0';
/* Scan for line breaks for Tanmoy's secretary */
  - for (y = x; titlebuf[y]; y++)
  - if ((titlebuf[y] == CR) || (titlebuf[y] == LF))
  - if (y == x)
  +

cvs commit: apache-1.3/src/modules/standard mod_autoindex.c mod_mime.c mod_negotiation.c

1998-02-12 Thread dgaudet
dgaudet 98/02/11 17:09:47

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c mod_mime.c
mod_negotiation.c
  Log:
  Old clients really don't want to see "Content-Encoding: gzip".  So now we
  preserve the encoding given by the AddEncoding directive.  This allows us,
  for example, to move forward with things like "AddEncoding deflate .df",
  while preserving backwards brokenness with "AddEncoding x-gzip .gz".
  
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  Dean Gaudet
  
  Revision  ChangesPath
  1.626 +4 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.625
  retrieving revision 1.626
  diff -u -r1.625 -r1.626
  --- CHANGES   1998/02/09 13:25:40 1.625
  +++ CHANGES   1998/02/12 01:09:41 1.626
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3b5
   
  +  *) Preserve the content encoding given by the AddEncoding directive
  + when the client doesn't otherwise specify an encoding.
  + [Ronald Tschalaer <[EMAIL PROTECTED]>]
  +
 *) WIN32: Append a '.' to extensionless executables in spawn[lv]e*
replacements, which makes them work.
[Sam Robb <[EMAIL PROTECTED]>, Ben Laurie]
  
  
  
  1.67  +0 -6  apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- mod_autoindex.c   1998/02/06 09:11:39 1.66
  +++ mod_autoindex.c   1998/02/12 01:09:44 1.67
  @@ -178,9 +178,6 @@
to = "^^DIRECTORY^^";
   if (cmd->info == BY_ENCODING) {
str_tolower(to);
  - if (to[0] == 'x' && to[1] == '-') {
  - to += 2;
  - }
   }
   
   push_item(((autoindex_config_rec *) d)->alt_list, cmd->info, to, 
cmd->path, alt);
  @@ -207,9 +204,6 @@
to = "^^DIRECTORY^^";
   if (cmd->info == BY_ENCODING) {
str_tolower(to);
  - if (to[0] == 'x' && to[1] == '-') {
  - to += 2;
  - }
   }
   
   push_item(((autoindex_config_rec *) d)->icon_list, cmd->info, to, 
cmd->path,
  
  
  
  1.31  +0 -2  apache-1.3/src/modules/standard/mod_mime.c
  
  Index: mod_mime.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_mime.c,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- mod_mime.c1998/02/06 09:11:39 1.30
  +++ mod_mime.c1998/02/12 01:09:44 1.31
  @@ -127,8 +127,6 @@
   {
   if (*ext == '.')
   ++ext;
  -if ((enc[0] == 'x' || enc[0] == 'X') && enc[1] == '-')
  -enc += 2;
   table_set(m->encoding_types, ext, enc);
   return NULL;
   }
  
  
  
  1.70  +16 -6 apache-1.3/src/modules/standard/mod_negotiation.c
  
  Index: mod_negotiation.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_negotiation.c,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- mod_negotiation.c 1998/02/10 05:54:02 1.69
  +++ mod_negotiation.c 1998/02/12 01:09:45 1.70
  @@ -1463,6 +1463,7 @@
   int i;
   accept_rec *accept_recs = (accept_rec *) neg->accept_encodings->elts;
   char *enc = variant->content_encoding;
  +char *x_enc = NULL;
   
   if (!enc || is_identity_encoding(enc)) {
   return;
  @@ -1479,19 +1480,28 @@
   
   /* Go through each of the encodings on the Accept-Encoding: header,
* looking for a match with our encoding
  - */
  + * Prefer non- 'x-' prefixed token (e.g. gzip over x-gzip) */
  +if (enc[0] == 'x' && enc[1] == '-') {
  +enc += 2;
  +}
   for (i = 0; i < neg->accept_encodings->nelts; ++i) {
   char *name = accept_recs[i].type_name;
  -int off = 0;
  -
  - if (name[0] == 'x' && name[1] == '-')
  -off = 2;
   
  -if (!strcmp(name+off, enc)) {
  +if (!strcmp(name, enc)) {
   variant->encoding_quality = 1;
   variant->content_encoding = name;
   return;
   }
  +
  +if (name[0] == 'x' && name[1] == '-' && !strcmp(name+2, enc)) {
  +x_enc = name;
  +}
  +}
  +
  +if (x_enc != NULL) {
  +variant->encoding_quality = 1;
  +variant->content_encoding = x_enc;
  +return;
   }
   
   /* Encoding not found on Accept-Encoding: header, so it is
  
  
  


cvs commit: apache-1.3/src/modules/standard mod_autoindex.c mod_mime.c mod_negotiation.c

1998-02-06 Thread dgaudet
dgaudet 98/02/06 01:11:42

  Modified:src  CHANGES
   src/modules/standard mod_autoindex.c mod_mime.c
mod_negotiation.c
  Log:
  HTTP/1.1 requires x-gzip and gzip encodings be treated
  equivalent, similarly for x-compress and compress.  Apache
  now ignores a leading x- when comparing encodings.  It also
  preserves the encoding the client requests (for example if
  it requests x-gzip, then Apache will respond with x-gzip
  in the Content-Encoding header).
  
  PR:   1772
  Submitted by: Ronald Tschalaer <[EMAIL PROTECTED]>
  Reviewed by:  Dean Gaudet, Roy Fielding (concept)
  
  Revision  ChangesPath
  1.617 +9 -1  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.616
  retrieving revision 1.617
  diff -u -r1.616 -r1.617
  --- CHANGES   1998/02/04 21:23:30 1.616
  +++ CHANGES   1998/02/06 09:11:36 1.617
  @@ -1,5 +1,13 @@
   Changes with Apache 1.3b4
  -  
  +
  +  *) HTTP/1.1 requires x-gzip and gzip encodings be treated
  + equivalent, similarly for x-compress and compress.  Apache
  + now ignores a leading x- when comparing encodings.  It also
  + preserves the encoding the client requests (for example if
  + it requests x-gzip, then Apache will respond with x-gzip
  + in the Content-Encoding header).
  + [Ronald Tschalaer <[EMAIL PROTECTED]>] PR#1772
  +
 *) Fix a memory leak on keep-alive connections.  [Igor Tatarinov]
   
 *) Added mod_so module to support dynamic loading of modules on Unix
  
  
  
  1.66  +12 -0 apache-1.3/src/modules/standard/mod_autoindex.c
  
  Index: mod_autoindex.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_autoindex.c,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- mod_autoindex.c   1998/01/29 20:36:11 1.65
  +++ mod_autoindex.c   1998/02/06 09:11:39 1.66
  @@ -176,6 +176,12 @@
   if (cmd->info == BY_PATH)
if (!strcmp(to, "**DIRECTORY**"))
to = "^^DIRECTORY^^";
  +if (cmd->info == BY_ENCODING) {
  + str_tolower(to);
  + if (to[0] == 'x' && to[1] == '-') {
  + to += 2;
  + }
  +}
   
   push_item(((autoindex_config_rec *) d)->alt_list, cmd->info, to, 
cmd->path, alt);
   return NULL;
  @@ -199,6 +205,12 @@
   if (cmd->info == BY_PATH)
if (!strcmp(to, "**DIRECTORY**"))
to = "^^DIRECTORY^^";
  +if (cmd->info == BY_ENCODING) {
  + str_tolower(to);
  + if (to[0] == 'x' && to[1] == '-') {
  + to += 2;
  + }
  +}
   
   push_item(((autoindex_config_rec *) d)->icon_list, cmd->info, to, 
cmd->path,
  iconbak);
  
  
  
  1.30  +2 -0  apache-1.3/src/modules/standard/mod_mime.c
  
  Index: mod_mime.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_mime.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- mod_mime.c1998/01/13 23:11:23 1.29
  +++ mod_mime.c1998/02/06 09:11:39 1.30
  @@ -127,6 +127,8 @@
   {
   if (*ext == '.')
   ++ext;
  +if ((enc[0] == 'x' || enc[0] == 'X') && enc[1] == '-')
  +enc += 2;
   table_set(m->encoding_types, ext, enc);
   return NULL;
   }
  
  
  
  1.67  +9 -3  apache-1.3/src/modules/standard/mod_negotiation.c
  
  Index: mod_negotiation.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_negotiation.c,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- mod_negotiation.c 1998/01/27 10:00:44 1.66
  +++ mod_negotiation.c 1998/02/06 09:11:40 1.67
  @@ -1468,7 +1468,6 @@
   return;
   }
   
  -
   /* if no Accept: header, leave quality alone (will
* remain at the default value of 1) */
   if (neg->accept_encodings->nelts == 0) {
  @@ -1483,9 +1482,14 @@
*/
   for (i = 0; i < neg->accept_encodings->nelts; ++i) {
   char *name = accept_recs[i].type_name;
  +int off = 0;
  +
  + if (name[0] == 'x' && name[1] == '-')
  +off = 2;
   
  -if (!strcmp(name, enc)) {
  +if (!strcmp(name+off, enc)) {
   variant->encoding_quality = 1;
  +variant->content_encoding = name;
   return;
   }
   }
  @@ -2192,7 +2196,9 @@
   r->filename = sub_req->filename;
   r->handler = sub_req->handler;
   r->content_type = sub_req->content_type;
  -r->content_encoding = sub_req->content_encoding;
  +/* it may have been modified, so that it would match the exact encoding
  + * requested by the client (i.e.