]> Dogcows Code - chaz/tar/blobdiff - ChangeLog
Updated
[chaz/tar] / ChangeLog
index 70161c668232056e225efcc0186ff90d8742847c..608f9a78e78b097d85d2199f2ff3b0864b8b5e8c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,342 @@
+2004-05-05  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * TODO: Updated
+       * doc/tar.texi: Updated
+       * src/tar.c: --utc implies -vv
+
+2004-04-28  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/utf8.c: Make sure ICONV_CONST is defined. AM_ICONV
+       does not define it if it fails to find iconv.h.
+
+2004-04-26  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Use gnulib-tool to generate lib/Makefile.am
+       and parts of configure.ac
+       * configure.ac: Invoke tar_GNULIB to configure gnulib stuff.
+       * lib/Makefile.am: Removed
+       * lib/Makefile.tmpl: New file.
+       * lib/.cvsignore: Updated
+       * m4/.cvsignore: Updated
+       * src/xheader.c: Include stpcpy.h
+       
+       * src/create.c: Produce an error, not warning, if the
+       filename is too long.
+       * tests/longv7.sh: Synchronized with the recent changes.
+
+2004-04-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * configure.ac: Fixed test for iconv_t
+       * src/rmt.h: Bugfix by Jürgen Weigert 
+       * THANKS: Add Jürgen Weigert
+       * tests/star/README: Fixed typo
+
+2004-04-04  Paul Eggert  <eggert@twinsun.com>
+
+       Merge getdate documentation changes from coreutils.
+
+       * doc/getdate.texi: Update from coreutils CVS.
+       * doc/tar.texi: Fix getdate menu to match getdate.texi's.
+
+       Merge recent gnulib changes, and remove some lint.
+
+       Improve support for nanosecond-resolution time stamps.
+       * bootstrap: Add gettime, timespec modules.
+       * configure.ac (gl_GETTIME, gl_TIMESPEC): Add.
+       * lib/.cvsignore (getopt_int.h, gettime.c, gettimeofday.c,
+       timespec.h): Add.
+       * lib/Makefile.am (libtar_a_SOURCES): Add gettime.c, timespec.h.
+       * m4/.cvsignore: Add clock_time.m4, gettime.m4, gettimeofday.m4,
+       st_mtim.m4, timespec.m4.  Remove malloc.m4, realloc.m4.
+       * src/common.h (newer_mtime_option): Now a struct timespec, not
+       time_t.  All uses changed.
+       (NEWER_OPTION_INITIALIZED, OLDER_STAT_MTIME): New macros.
+       * src/create.c (dump_file0): Use OLDER_STAT_TIME to compare times.
+       * src/incremen.c (scan_path): Likewise.
+       * src/list.c (read_and): Likewise.
+       * src/list.c (read_and): Use NEWER_OPTION_INITIALIZED to decide
+       whether newer_mtime_option is initialized.
+       * src/tar.c (decode_options): Likewise.
+       * src/tar.c (decode_options): Adjust to new signature for get_date.
+
+       * src/buffer.c (short_read, flush_read): Use size_t, not ssize_t, for
+       result of safe_read, full_write, and similar functions.
+       Detect safe_read error by comparing to SAFE_READ_ERROR;
+       detect full_write error by comparing to 0.
+       All uses changed.
+       * src/common.h (write_error_details, sys_write_archive_buffer):
+       Likewise.
+       * src/misc.c (write_error_details): Likewise.
+       * src/rmt.c (main): Likewise.
+       * src/rmt.h (rmt_read__, rmt_write__): Likewise.
+       * src/rtapelib.c (rmt_read__, rmt_write__, rmt_ioctl__): Likewise.
+       * src/sparse.c (sparse_scan_file, sparse_dump_region,
+       check_sparse_region, check_data_region): Likewise.
+       * src/system.c (sys_write_archive_buffer, sys_drain_input_pipe,
+       sys_child_open_for_compress, sys_child_open_for_uncompress): Likewise.
+       * src/update.c (append_file): Likewise.
+
+       * src/buffer.c (clear_read_error_count): Use explicit (void)
+       to indicate a function with no arguments.
+       * src/create.c (check_links): Likewise.
+       * src/system.c (sys_get_archive_stat, sys_save_archive_dev_ino,
+       sys_detect_dev_null_output, sys_drain_input_pipe, sys_spawn_shell,
+       sys_reset_uid_gid, sys_get_archive_stat, sys_save_archive_dev_ino,
+       sys_detect_dev_null_output, sys_drain_input_pipe, sys_spawn_shell):
+       Likewise.
+       * src/utf8.c (get_input_charset): Likewise.
+       * src/xheader.c (xheader_ghdr_name, xheader_write_global,
+       xheader_decode_global, extended_header_init): Likewise.
+       * tests/mksparse.c (usage): Likewise.
+
+       * src/buffer.c (new_volume): Rename local variables to avoid
+       shadowing warnings.
+       * src/common.h (file_dumpable_p, sys_stat_nanoseconds,
+       sparse_file_p, sparse_member_p, sparse_fixup_header,
+       sparse_dump_file, sparce_extract_file, sparse_skip_file,
+       sparse_diff_file): Likewise.
+       * src/compare.c (diff_archive): Likewise.
+       * src/create.c (file_dumpable_p, dump_regular_file, dump_dir0,
+       dump_dir, dump_hard_link, file_count_links, dump_file0, dump_file):
+       Likewise.
+       * src/extract.c (repair_delayed_set_stat): Likewise.
+       * src/misc.c (maybe_backup_file, add_hierarchy_to_namelist):
+       Likewise.
+       * src/sparse.c (struct tar_sparse_optab, tar_sparse_dump_region,
+       tar_sparse_extract_region, sparse_dump_region, sparse_extract_region,
+       sparse_dump_file, sparse_file_p, sparse_member_p,
+       sparse_fixup_header, sparse_extract_file, sparse_skip_file,
+       check_data_region, sparse_diff_file): Likewise.
+       * src/system.c (sys_stat_nanoseconds): Likewise.
+       * src/xheader.c (xheader_format_name): Likewise.
+
+       * src/common.h (enum old_files): Remove comma before }; not portable.
+
+       * src/common.h (read_fatal_details): Add __attribute__ ((noreturn)).
+       * src/rmt.c (usage): Likewise.
+       * src/xheader.c (xheader_set_single_keyword): Likewise.
+       * tests/genfile.c (usage): Likewise.
+       * tests/mksparse.c (die, usage): Likewise.  Also add printf attribute
+       to die.
+
+       * src/common.h (gname_to_gid, uname_to_uid): Add const to avoid
+       some gcc warnings.
+       * src/names.c (uname_to_uid, gname_to_gid): Likewise.
+       * src/utf8.c (struct langtab.lang, struct langtab.terr, struct
+       langtab.charset, charset_lookup): Likewise.
+
+       * src/common.h (name_init): Remove unused args.  All callers changed.
+       * src/names.c (name_init): Likewise.
+
+       * src/common.h (usage, xheader_write, xheader_write_global,
+       sys_reset_uid_gid): New decls.
+
+       * src/compare.c (report_difference, process_noop): Add
+       __attribute__ ((unused)) for unused attributes.
+       * src/sparse.c (oldgnu_sparse_member_p, star_sparse_member_p):
+       Likewise.
+       * src/xheader.c (dummy_coder, dummy_decoder, atime_coder,
+       gid_coder, gname_coder, linkpath_coder, ctime_coder, mtime_coder,
+       path_coder, size_coder, uid_coder, uname_coder,
+       sparse_numblocks_coder): Likewise.
+
+       * src/create.c (dump_regular_finish, dump_dir0, dump_dir,
+       dump_file0): Now static.
+       * src/utf8.c (charset_lookup): Likewise.
+       * src/xheader.c (xheader_protected_pattern_p,
+       xheader_protected_keyword_p, xheader_set_single_keyword,
+       xheader_keyword_deleted_p, xheader_keyword_override_p,
+       xheader_list_append, xheader_list_destroy, xheader_set_keyword_equal):
+       Likewise.
+       * tests/genfile.c (usage): Likewise.
+       * tests/mksparse.c (die, mkhole, mksparse, usage, xlat_suffix):
+       Likewise.
+
+       * src/create.c (hash_link): Rewrite to avoid cast.
+
+       * src/extract.c (file_newer_p): Use parameter, not global var.
+       * src/misc.c (write_error_details): Likewise.
+
+       * src/extract.c (prepare_to_extract): Remove directory arg; not
+       used.  All callers changed.
+
+       * src/misc.c (close_fatal): Remove; not used.
+       * src/system.c (sys_utimes): Likewise.
+
+       * src/rmt.c (get_string): Avoid buffer overrun (off by 1 error).
+
+       * src/rmt.c (main): Update copyright date to 2004.
+       * src/tar.c (decode_options): Likewise.
+
+       * src/rtapelib.c (get_status_string): Don't lose errno when
+       skipping the error messages.
+       (get_status): Report an error if atol returns a negative number.
+
+       * src/utf8.c (struct langtab, langtab, charset_lookup,
+       get_input_charset) [!defined HAVE_LIBCONV]: Omit unused
+       definitions.
+       (iconv_open, iconv, iconv_close) [!defined HAVE_LIBCONV]:
+       Use macros, not definitions, to avoid type clashes with system
+       headers.
+       (charset_lookup): Local var is now auto, not static.
+       (utf8_convert): Use ICONV_CONST instead of const, to avoid
+       type clashes.
+
+       * src/utf8.c (langtab): Initialize all elements of struct, to
+       avoid gcc warning.
+       * src/xheader.c (xhdr_tab): Likewise.
+
+       * src/xheader.c: Include fnmatch.h, since we use fnmatch.
+
+       * tests/mksparse.c (mkhole): Fix typo: bool was assigned to off_t.
+
+2004-04-04  Sergey Poznyakoff  <gray@Noldor.runasimi.org>
+
+       * NEWS: Updated
+       * configure.ac: Raised version number to 1.13.94
+       * src/system.h: Protect inclusion of <sys/time.h>
+       by ifdef.
+       Declare time() if HAVE_DECL_TIME is 0
+       * tests/.cvsignore: Added mksparse
+
+       * tests/sparse01.sh: New file
+       * tests/multiv02.sh: New file
+       * tests/Makefile.am: Add sparse01.sh and multiv02.sh
+       * tests/longv7.sh: Added missing call to 'after'
+
+       * src/common.h: Added missing prototypes
+       * src/compare.c (diff_archive): Use is_sparse member
+       instead of GNUTYPE_SPARSE.
+       * src/create.c: Removed unused variables
+       * src/extract.c (extract_archive): Use sparse_member_p instead
+       of GNUTYPE_SPARSE.
+       Removed unused variables
+       * src/list.c (decode_header): Use sparse_fixup_header to correct
+       the st_size value.
+       (print_header): Do not rely on GNUTYPE_SPARSE type.
+       Use st->stat.st_size to print real file size.
+       (skip_member): Assign stat_info.file_name to save_name. This fixes
+       bug reported by Mads Martin Joergensen <mmj@suse.de>
+       Use sparse_skip_file() to skip sparse members.
+       * src/rtapelib.c: include "common.h"
+       * src/sparse.c (struct tar_sparse_optab.sparse_member_p)
+       (struct tar_sparse_optab.fixup_header): New member
+       (tar_sparse_member_p): New function.
+       (tar_sparse_init): Return true if decode_header is not provided
+       (tar_sparse_fixup_header)
+       (sparse_member_p,sparse_fixup_header)
+       (sparse_skip_file)
+       (oldgnu_sparse_member_p,oldgnu_fixup_header,star_sparse_member_p)
+       (star_fixup_header, pax_sparse_member_p): New function
+       (pax_decode_header): Remove
+       * src/system.h: Include <sys/time.h> and <utime.h> when available
+       * src/tar.c (usage): Prototype moved to common.h
+       * src/tar.h (struct tar_stat_info.is_sparse): New member
+       * src/utf8.c (utf8_convert): Changed prototype
+       (get_input_charset): Removed unused variable
+       * src/xheader.c: include <fnmatch.h>
+       (size_decoder): Assign to both st->archive_file_size and
+       st->stat.st_size.
+       (st->stat.st_size): Assign to st->stat.st_size
+       (sparse_numbytes_decoder): Removed unused variable
+       * src/.cvsignore: Added .gdbinit
+       * THANKS: Added Mads Martin Joergensen
+
+2004-03-26  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/create.c (write_long_name): Do not allow more than
+       NAME_FIELD_SIZE-1 characters in a file name for V7 format
+       archives.
+       * tests/longv7.sh: New file.
+       * tests/Makefile.am: Add longv7.sh
+
+2004-03-22  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/buffer.c (open_archive): Clear read_full_records_option
+       if reading from a pipe.
+       (short_read): Display warning about the deduced record size
+       if version > 1
+       * tests/star/pax-big-10g.sh: Updated to match the above changes.
+       * tests/star/ustar-big-2g.sh: Likewise.
+       * tests/star/ustar-big-8g.sh: Likewise.
+
+       * configure.ac: Added gl_FUNC_STRTOULL
+       * src/create.c (start_header): Check for GNU_FORMAT
+       if incremental_option is set.
+       * src/xheader.c (to_decimal): New function.
+       (xheader_format_name): Use to_decimal() instead of snprintf.
+       * tests/listed01.sh: Use genfile instead of dd
+       * tests/multiv01.sh: Likewise.
+
+2004-03-12  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/list.c (read_and): Stop processing the archive after
+       encountering a single zero record. Many old archives contain
+       arbitrary garbage after it.
+       The warning is issued anyway.
+
+2004-03-02  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/rtapelib.c (rmt_lseek__,rmt_ioctl__): Bugfix. The
+       conversion buffer was not null terminated. Fix provided
+       by Leland Lucius <llucius@tiny.net>
+       * THANKS: Added Leland Lucius
+       * src/utf8.c (utf8_convert): Indentation fix.
+
+2004-02-29  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/buffer.c (flush_read): Bugfix: the
+       condition at line 714 included
+
+             || (status > 0 && !read_full_records_option)
+
+       which is grossly wrong, since even if new_volume() below succeeds,
+       the subsequent call to rmtread will overwrite the chunk of data
+       already read in the buffer and thus spoil everything.
+       * src/system.c (sys_child_open_for_uncompress): Minor stylistic
+       fix.
+       * tests/star/multi-fail.sh: New test.
+       * tests/Makefile.am: Added multi-fail.sh
+       * tests/star/README: Updated
+
+2004-02-29  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * NEWS: Updated
+       * configure.ac: Removed spurious AC_CHECK_LIB(iconv)
+       * src/common.h (utc_option): new global
+       (enum old_files.KEEP_NEWER_FILES): New element
+       * src/extract.c: Handle --keep-newer-files option
+       * src/list.c (tartime): Print UTC if --utc was given.
+       * src/tar.c: New options: --utc and keep-newer-files
+
+       * tests/Makefile.am: Added new tests
+       * tests/after: Rewritten
+       * tests/before: Rewritten
+       * tests/preset.in: Rewritten
+       * tests/delete03.sh: Accomodate for the new testsuite logic
+       * tests/gzip.sh: Likewise
+       * tests/incremen.sh: Likewise
+       * tests/listed01.sh: Likewise
+       * tests/multiv01.sh: Likewise
+       * tests/old.sh: Likewise
+       * tests/options.sh: Likewise
+       * tests/version.sh: Likewise
+       * tests/volume.sh: Likewise
+
+       * tests/star: New directory
+       * tests/star/README: New file
+       * tests/star/gtarfail.sh: New file
+       * tests/star/gtarfail2.sh: New file
+       * tests/star/pax-big-10g.sh: New file
+       * tests/star/qucktest.sh: New file
+       * tests/star/ustar-big-2g.sh: New file
+       * tests/star/ustar-big-8g.sh: New file
+
+2004-02-26  Paul Eggert  <eggert@twinsun.com>
+
+       * doc/tar.texi (dircategory Individual utilities): Append period,
+       as suggested by Karl Berry.
+
 2004-02-24  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/list.c (decode_header): Call xheader_decode before
 2004-02-24  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/list.c (decode_header): Call xheader_decode before
 
        Added UTF-8 support. Finished global extended header
        support.
 
        Added UTF-8 support. Finished global extended header
        support.
-       
+
        * NEWS: Minor fix
        * configure.ac: Detect libiconv
        * src/utf8.c: New file. Conversions to and from utf-8.
        * NEWS: Minor fix
        * configure.ac: Detect libiconv
        * src/utf8.c: New file. Conversions to and from utf-8.
        missing gettext markers
        (decode_record): Rewritten using caller-provided handler and
        data closure.
        missing gettext markers
        (decode_record): Rewritten using caller-provided handler and
        data closure.
-       * tests/listed01.sh: Give credit to Andreas Schuldei.   
+       * tests/listed01.sh: Give credit to Andreas Schuldei.
 
 2004-02-21  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
 
 2004-02-21  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        <andreas@schuldei.org>.
 
        This is due to the condition
        <andreas@schuldei.org>.
 
        This is due to the condition
-     
-          (0 < top_level || !incremental_option) 
+
+         (0 < top_level || !incremental_option)
 
        Removing it makes incremental backups work for individual
        files as well as for directories. On the other hand, it does
 
        Removing it makes incremental backups work for individual
        files as well as for directories. On the other hand, it does
 
              (!incremental_option)
 
 
              (!incremental_option)
 
-        Now, let's consider the effect of its removal. There are two cases:
+       Now, let's consider the effect of its removal. There are two cases:
 
        1) when incremental_option==1
        This means incremental backup in progress. In this case dump_file
 
        1) when incremental_option==1
        This means incremental backup in progress. In this case dump_file
        irrelevant, and its removal won't alter the behavior of tar,
        *except* that it will enable incremental backups on individual
        files, which is the wanted effect.
        irrelevant, and its removal won't alter the behavior of tar,
        *except* that it will enable incremental backups on individual
        files, which is the wanted effect.
-     
-        2) when incremental_option==0
+
+       2) when incremental_option==0
        In this case the condition yields true and its removal does not
        affect the functionality.
 
        In this case the condition yields true and its removal does not
        affect the functionality.
 
        * tests/listed01.sh: New test. Check listed incremental
        backups on individual files.
        * tests/Makefile.am: Added listed01.sh
        * tests/listed01.sh: New test. Check listed incremental
        backups on individual files.
        * tests/Makefile.am: Added listed01.sh
-       
+
 2004-02-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/common.h (simple_finish_header,start_private_header): New
 2004-02-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/common.h (simple_finish_header,start_private_header): New
 
        * src/update.c (update_archive): Write global extended header if
        constructed.
 
        * src/update.c (update_archive): Write global extended header if
        constructed.
-       * src/xheader.c (xheader_format_name): Bugfix. 
+       * src/xheader.c (xheader_format_name): Bugfix.
        (xheader_xhdr_name): Changed the default extended header name
        to '%d/PaxHeaders.%p/%f', as POSIX requires.
        (xheader_ghdr_name): Removed unused argument.
        (xheader_xhdr_name): Changed the default extended header name
        to '%d/PaxHeaders.%p/%f', as POSIX requires.
        (xheader_ghdr_name): Removed unused argument.
        unconditionally.
        * src/list.c (decode_header): Likewise.
        * src/incremen.c (sort_obstack): Fixed typo in the comment
        unconditionally.
        * src/list.c (decode_header): Likewise.
        * src/incremen.c (sort_obstack): Fixed typo in the comment
-       
+
        * doc/tar.texi: Document new default for extended
        header names.
        * doc/tar.texi: Document new default for extended
        header names.
-       
+
        * tests/before: Accept an optional list of allowed archive
        formats. Exit with the status 77 if the current archive
        format does not match any of them.
        * tests/delete03.sh: Require gnu, oldgnu or posix format
        * tests/incremen.sh: Require gnu or oldgnu format
        * tests/multiv01.sh: Likewise
        * tests/before: Accept an optional list of allowed archive
        formats. Exit with the status 77 if the current archive
        format does not match any of them.
        * tests/delete03.sh: Require gnu, oldgnu or posix format
        * tests/incremen.sh: Require gnu or oldgnu format
        * tests/multiv01.sh: Likewise
-       
+
 2004-02-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 2004-02-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
-       
+
        * doc/tar.texi (Option Summary): Documented --pax-option
        * src/tar.c: Likewise.
        * NEWS: Likewise.
        * src/create.c (to_chars): Added a comment.
        * src/tar.h: Comment to GNU_FORMAT
        * doc/tar.texi (Option Summary): Documented --pax-option
        * src/tar.c: Likewise.
        * NEWS: Likewise.
        * src/create.c (to_chars): Added a comment.
        * src/tar.h: Comment to GNU_FORMAT
-       
+
 2004-02-18  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * README: Updated
 2004-02-18  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * README: Updated
        * src/tar.c: New option --pax-option (equivalent to -o option
        of pax).
        * src/xheader.c: Implement pax -o option. Fixed misleading
        * src/tar.c: New option --pax-option (equivalent to -o option
        of pax).
        * src/xheader.c: Implement pax -o option. Fixed misleading
-       heading comment (introduced 2003-09-02). 
+       heading comment (introduced 2003-09-02).
        * src/incremen.c: Minor fixes
        * m4/.cvsignore: Updated
        * src/incremen.c: Minor fixes
        * m4/.cvsignore: Updated
-       
+
 2004-02-17  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/incremen.c: Removed accumulator stuff in favor of obstack.
        (get_directory_contents): Split into two functions
        * src/update.c: Minor changes
        * doc/tar.texi: Fixed typo
 2004-02-17  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/incremen.c: Removed accumulator stuff in favor of obstack.
        (get_directory_contents): Split into two functions
        * src/update.c: Minor changes
        * doc/tar.texi: Fixed typo
-       
+
 2004-02-15  Paul Eggert  <eggert@twinsun.com>
 
        Fix Debian bug 230872, originally reported by Jeff King in
 2004-02-15  Paul Eggert  <eggert@twinsun.com>
 
        Fix Debian bug 230872, originally reported by Jeff King in
 
 2003-09-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
 
 2003-09-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
-        * src/create.c (start_header): Store long file names
-        in "path" keyword of an extended header if in POSIX
-        mode.
-        (finish_header): print header before calling write_extended().
-        * src/list.c (list_archive): Always decode the header. This
-        is necessary so the extended header is processed and the correct
-        filename is printed no matter what the state of verbose_option.
-        * src/xheader.c (xhdr_tab): Reserved GNU keywords (commented out
-        for the time being).
+       * src/create.c (start_header): Store long file names
+       in "path" keyword of an extended header if in POSIX
+       mode.
+       (finish_header): print header before calling write_extended().
+       * src/list.c (list_archive): Always decode the header. This
+       is necessary so the extended header is processed and the correct
+       filename is printed no matter what the state of verbose_option.
+       * src/xheader.c (xhdr_tab): Reserved GNU keywords (commented out
+       for the time being).
 
 2003-09-01  Paul Eggert  <eggert@twinsun.com>
 
 
 2003-09-01  Paul Eggert  <eggert@twinsun.com>
 
This page took 0.034634 seconds and 4 git commands to generate.