Short: GNU Gengetopt Author: Lorenzo Bettini & Diego Casorran Uploader: dcr8520 amiga org Type: dev/gg Version: 2.6 Requires: gcc Architecture: m68k-amigaos ---------------------------------------------------------------------------- This package comes from http://Amiga.SourceForge.net ---------------------------------------------------------------------------- This program generates a C function that uses getopt_long function to parse the command line options, to validate them and fills a struct. Thus your program can now handle options such as: myprog --input foo.c -o foo.o --no-tabs -i 100 *.class And both long options (those that start with --) and short options (start with - and consist of only one character) can be handled. For standards about short and long options you may want to take a look at the GNU Coding Standards. gengetopt is free software. Please see the file LICENSE and COPYING for details. Notice that: Use of gengetopt does not impose any particular license on the generated code: the code generated is not under any license. For documentation, please read this file. gengetopt is perfect if you are too lazy (like me) to write all stuff required to call getopt_long, and when you have a program and wish it took options. Generated code works if you use GNU Autoconf or GNU Automake. Gengetopt has originally been written by Roberto Arturo Tena Sanchez , and currently maintained by Lorenzo Bettini . Gengetopt is a GNU program and its main home page is at GNU site: http://www.gnu.org/software/gengetopt/gengetopt.html, Download You can download it from GNU's ftp site: ftp://ftp.gnu.org/gnu/gengetopt/ or from one of its mirrors (see http://www.gnu.org/prep/ftp.html). I do not distribute Windows binaries anymore; since, they can be easily built by using Cygnus C/C++ compiler, available at http://www.cygnus.com/. However, if you don't feel like downloading such compiler, you can request such binaries directly to me, by e-mail (bettini@gnu.org) and I can send them to you. You may also want to check the md5sum of the archives, which are also digitally signed by me (Lorenzo Bettini) with GNU gpg (http://www.gnupg.org). My GPG public key can be found at my home page (see at the end of this doc). You can also get the patches, if they are available for a particular release (see below for patching from a previous version). Changes in this release * fixed documentation (thanks to Francesco Potorti ) * function names and names used in #ifndef directives in generated sources are canonized, thus avoiding errors by the compiler (notified by Francesco Potorti and Alexey Mahotkin ) * fixed line number when reporting an error in a .ggo file, and '\n' is no longer needed at the end of a .ggo file (notified by Francesco Potorti) * in the generated parser use HAVE_STRDUP to check whether the standard strdup function can be used, and use EXIT_SUCCESS and EXIT_FAILURE for exit (suggested by Frans E. van Dorsselaer ) * do not exit with error if an empty desc for an option is given (thanks to Excoffier Denis ) * fixed a bug in creation of string for the comment header in the generated sources (thanks to Xavier Trochu ) * Added default values in options for integer and string options (with help of Ralf Zeise ) Changes in release 2.5 * much more recent versions of getopt.h, getopt.c, getopt1.c are provided (the previous ones were very very old!), that do not rely on alloca anymore. * when a flag option is given the corresponding _given variable is set (bug fixed by Guillaume Chazarain ). * Fixed documentation of sample1, as suggested by Lutz Maibaum . * Avoid a warning due to generated gengetopt_strdup (thanks to Brian Minard ) * the generated print_help function use a different printf for every option, thus avoiding a single printf with a possible very huge string (thanks to Herbert Thoma ) see also NEWS file and ChangeLog for the complete list of changes between versions (also summarized in old_changes.html). Installation See the file INSTALL for detailed building and installation instructions; anyway if you're used to compiling Linux software that comes with sources you may simply follow the usual procedure: cd ./configure make make install Note: unless you specify a different install directory by --prefix option of configure (e.g. ./configure --prefix=), you must be root to 'make install'. You can also run some tests by issuing 'make check'. Files will be installed in the following directories: * Executables -> /prefix/bin * Docs -> /prefix/share/doc/gengetopt * Man pages -> /prefix/man * Examples -> /prefix/share/doc/gengetopt/examples * Util files -> /prefix/share/gengetopt Default value for prefix is /usr/local but you may change it with --prefix option to configure (see above). What you need to build gengetopt Actually you need nothing more than a Unix C/C++ compiler. getopt_long function is usually in the standard C library, but there may be some C libraries which don't include it; in this case you have to link the program that uses the file generated by gengetopt with the files getopt.c and getopt1.c and include getopt.h in your project. You may also need to link alloca.c.We obviously provide these files in the utility files directory (/prefix/share/gengetopt). These files are part of the GNU C library. You may want to take a look at getopt man page. Read also no_getopt_long.txt. for instuctions on how to check if getopt_long and alloca are part of the library and how to deal with their lacking (using autoconf and automake). gengetopt has been developed under Linux, using gcc, and bison (yacc) and flex (lex), and ported under Windows with Cygnus C/C++ compiler, available at http://www.cygnus.com/. I used the excellent GNU Autoconf and Automake. I also used Autotools (ftp://ftp.ugcs.caltech.edu/pub/elef/autotools) which creates a starting source tree (according to GNU standards) with autoconf, automake starting files, and getopt_long (for command line parsing). Actually, unless you want to develop gengetopt, you don't need all these tools to build gengetopt because I provide generated sources; you don't need neither bison (yacc) nor flex (lex), for the same reason. Actually programs that use lex generated files need to link with library libfl (or libl for lex); anyway configuration phase can discover if this library is missing and in that case it sets the program to link with a source file I provide. This hack works for flex: I don't know about lex generated scanners. But, again, this is a problem only if you develop gengetopt and you use lex. Patching from a previous version If you downloaded a patch, say gengetopt-1.3-1.3.1-patch.gz (i.e. the patch to go from version 1.3 to version 1.3.1), cd to the directory with sources from the previous version (gengetopt-1.3) and type: gunzip -cd ../gengetopt-1.3-1.3.1.patch.gz | patch -p1 and restart the compilation process (if you had already run configure a simple make will do). Usage (a little tutorial) The command line options, which have to be handled by gengetopt generated function, are specified in a file (typically with .ggo extension). This file consist in lines of sentences with the following formats: package version option {default=""} option flag option no Where: packname Double quoted string. version Double quoted string. purpose What the program does (even on more than one line), it will be printed with the help. Double quoted string. long The long option, a double quoted string with upper and lower case chars, digits, '-' and '.'. No spaces allowed. The name of the variables generated to store arguments are long options converted to be legal C variable names. This means, '.' and '-' are both replaced by '_'. '_arg' is appended, or '_flag' for a flag. short The short option, a single upper or lower case char, or a digit. If a '-' is specified, then no short option is considered for the long option (thus long options with no associated short options are allowed). desc Double quoted string with upper and lower case chars, digits, '-', '.' and spaces. First character must not be a space. argtype string, int, short, long, float, double, longdouble or longlong. default an optional default value for the option. The value must always be specified as a double quoted string. required yes or no. onoff on or off. This is the state of the flag when the program starts. If user specifies the option, the flag toggles. The third type of option is used when the option does not take any argument. It must not be required. Comments begins with '#' in any place of the line and ends in the end of line. Here's an example of such a file (the file is called sample1.ggo) # file sample1.ggo option "str-opt" s "A string option" string no option "my-opt" m "Another integer option" int no option "int-opt" i "A int option" int yes option "flag-opt" - "A flag option" flag off option "funct-opt" F "A function option" no option "long-opt" - "A long option" long no option "def-opt" - "A string option with default" string default="Hello" no The simplest way to use gengetopt is to pass this file as the standard input, i.e.: gengetopt < sample1.ggo by default gengetopt generates cmdline.h and cmdline.c. Otherwise we can specify these names with a command line option: gengetopt < sample1.ggo --file-name=cmdline1 --unamed-opts The option --unamed-opts allows the generated command line parser to accept also names, without an option (for instance you can pass a file name without an option in front of it, and also use wildcards, such as *.c, foo*.? and so on). In cmdline1.h you'll find the generated C struct: /* cmdline1.h */ /* File autogenerated by gengetopt version 2.6 */ #ifndef _cmdline1_h #define _cmdline1_h #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Don't define PACKAGE and VERSION if we use automake. */ #if defined PACKAGE # undef PACKAGE #endif #define PACKAGE "sample1" #if defined VERSION # undef VERSION #endif #define VERSION "2.0" struct gengetopt_args_info { char * str_opt_arg; /* A string option. */ int my_opt_arg; /* Another integer option. */ int int_opt_arg; /* A int option. */ int flag_opt_flag; /* A flag option (default=off). */ long long_opt_arg; /* A long option. */ char * def_opt_arg; /* A string option with default (default='Hello'). */ int help_given ; /* Whether help was given. */ int version_given ; /* Whether version was given. */ int str_opt_given ; /* Whether str-opt was given. */ int my_opt_given ; /* Whether my-opt was given. */ int int_opt_given ; /* Whether int-opt was given. */ int flag_opt_given ; /* Whether flag-opt was given. */ int funct_opt_given ; /* Whether funct-opt was given. */ int long_opt_given ; /* Whether long-opt was given. */ int def_opt_given ; /* Whether def-opt was given. */ char **inputs ; /* unamed options */ unsigned inputs_num ; /* unamed options number */ } ; int cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info); void cmdline_parser_print_help(void); void cmdline_parser_print_version(void); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _cmdline1_h */ Notice that by default the generated function is called cmdline_parser (see the command line options below, to override this name), and it takes the arguments that main receives and a pointer to such a struct, that it will be filled. And here's how this function can be used inside the main program: /* main1.cc */ /* we try to use gengetopt generated file in a C++ program */ /* we don't use autoconf and automake vars */ #include #include "stdlib.h" #include "cmdline1.h" int main (int argc, char **argv) { gengetopt_args_info args_info; cout << "This one is from a C++ program" << endl ; cout << "Try to launch me with some options" << endl ; cout << "(type sample1 --help for the complete list)" << endl ; cout << "For example: ./sample1 *.* --funct-opt" << endl ; /* let's call our cmdline parser */ if (cmdline_parser (argc, argv, &args_info) != 0) exit(1) ; cout << "Here are the options you passed..." << endl; for ( unsigned i = 0 ; i < args_info.inputs_num ; ++i ) cout << "file: " << args_info.inputs[i] << endl ; if ( args_info.funct_opt_given ) cout << "You chose --funct-opt or -F." << endl ; if ( args_info.str_opt_given ) cout << "You inserted " << args_info.str_opt_arg << " for " << "--str-opt option." << endl ; if ( args_info.int_opt_given ) cout << "This is the integer you input: " << args_info.int_opt_arg << "." << endl; if (args_info.flag_opt_given) cout << "The flag option was given!" << endl; cout << "The flag is " << ( args_info.flag_opt_flag ? "on" : "off" ) << "." << endl ; cout << args_info.def_opt_arg << "! "; cout << "Have a nice day! :-)" << endl ; return 0; } Now you can compile main1.cc and the cmdline1.c generated by gengetopt and link all together to obtain sample1 executable: gcc -c cmdline1.c g++ -c main1.cc g++ -o sample1 cmdline1.o main1.o (Here we assume that getopt_long is included in the standard C library; see 'What you need to build gengetopt' section). Now let's try some tests with this program: $ ./sample1 -s "hello" --int-opt 1234 This one is from a C++ program Try to launch me with some options (type sample1 --help for the complete list) For example: ./sample1 *.* --funct-opt Here are the options you passed... You inserted hello for --str-opt option. This is the integer you input: 1234. The flag is off. Have a nice day! :-) You can also pass many file names to the command line (this also shows how flags work): $ ./sample1 *.h -i -100 -x This one is from a C++ program Try to launch me with some options (type sample1 --help for the complete list) For example: ./sample1 *.* --funct-opt Here are the options you passed... file: cmdline1.h file: cmdline2.h file: cmdline.h file: getopt.h This is the integer you input: -100. The flag is on. Have a nice day! :-) And if we try to omit the --int-opt (or -i), which is required, we get an error: $ ./sample1 This one is from a C++ program Try to launch me with some options (type sample1 --help for the complete list) For example: ./sample1 *.* --funct-opt sample1: `--int-opt' (`-i') option required! If you're curious you may want to take a look at the generated C file. You may find other examples in /prefix/share/doc/gengetopt. Warning for Windows users If you run Windows, please remember that DOS shell does not translate wildcards, and thus the previous test which uses '*.h' will not work. Options This is the output of gengetopt --help: $ gengetopt --help gengetopt 2.6 Purpose: This program generates a C function that uses getopt_long function to parse the command line options, validate them and fill a struct. Usage: gengetopt [OPTIONS]... -h --help Print help and exit -V --version Print version and exit -iSTRING --input=STRING input file (default std input) -fSTRING --func-name=STRING name of generated function (default='cmdline_parser') -FSTRING --file-name=STRING name of generated file (default='cmdline') -l --long-help long usage line in help -u --unamed-opts accept filenames --no-handle-help do not handle --help|-h automatically --no-handle-version do not handle --version|-V automatically --no-handle-error do not exit on errors Maintained by Lorenzo Bettini Report bugs to The options should be clear; in particular: * if no --func-name is given, cmdline_parser is taken by default; * with --long-help option, the "Usage" line reports all the options; this may be unpleasant if options are many; * with --unamed-opts we can accept also options without a name, which, in most case, means that we can pass many file names to the program (see the example above when we call sample1 *.h). * if --no-handle-help (--no-handle-version) is given the command line --help|-h (--version|-V) is not handled automatically, so the programmer will be able to print some other information; then the function for printing the standard help (version) response can be used; this function is called _print_help (_print_version), where is the name specified with ---func-name or the default cmdline_parser. * if --no-handle-error is given, an error in the parsing does not provoke the exit of the program; instead, since the parser function, in case of an error, returns non 0, the program can print a help message, as gengetopt itself does in case of an error (try it!). You may have already guessed it: gengetopt uses gengetopt itself for command line options, and this is its specification file: purpose "This program generates a C function that uses getopt_long function to parse the command line options, validate them and fill a struct." option "input" i "input file. default std input" string no option "func-name" f "name of generated function" string default="cmdline_parser" no option "file-name" F "name of generated file" string default="cmdline" no option "long-help" l "long usage line in help" no option "unamed-opts" u "accept filenames" no option "no-handle-help" - "do not handle --help|-h automatically" no option "no-handle-version" - "do not handle --version|-V automatically" no option "no-handle-error" - "do not exit on errors" no In particular the command line for gengetopt itself is generated with the following command: gengetopt --input=cmdline.ggo --no-handle-version --no-handle-help --no-handle-error Indeed when --help|-h is passed on the command line, gengetopt will call cmdline_parser_print_help() and then the lines for reporting bugs. When --version|-V is passed, it will call cmdline_parser_print_version() and then prints a copyright. If an error occurs it prints a message on the screen: $ ./gengetopt --zzzz ./gengetopt: unrecognized option `--zzzz' Run gengetopt --help to see the list of options. Credits See THANKS file :-) Feedback Tell us if you like this software :-) Actually we want to extend it, so if you have some ideas... The most import one will be to make gengetopt more customizable :-) Please send all bug reports by electronic mail to: bug-gengetopt@gnu.org Mailing Lists The following mailing lists are available: * help-gengetopt@gnu.org, for generic discussions about the program and for asking for help about it (open mailing list), http://mail.gnu.org/mailman/listinfo/help-gengetopt * info-gengetopt@gnu.org, for receiving information about new releases and features (read-only mailing list), http://mail.gnu.org/mailman/listinfo/info-gengetopt if you want to subscribe to a mailing list just go to the URL and follow the instructions. Lorenzo Bettini Roberto Arturo Tena Sanchez http://w3.newnet.it/bettini or http://arturo.directmail.org http://infostud.dsi.unifi.it/~bettini, (very fast if you're in University) . gengetopt is free software. See the file LICENSE and COPYING for copying conditions. Anyway we won't get offended if you send us a postcard :-) C/C++ files are formatted with GNU Source-highlight (http://www.gnu.org/software/src-highlite/) by Lorenzo Bettini. ------------------------------------------------------------------------ Return to GNU's home page. Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF. Please send comments on these web pages to webmasters@gnu.org, send other questions to gnu@gnu.org. Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Updated:9 Jan 2001 mhw ------------------------------------------------------------------------ ·············································A·r·c·h·i·v·e··C·o·n·t·e·n·t·s·· LhA Freeware Version 2.2 Copyright © 1991-94 by Stefan Boberg. Copyright © 1998-2000 by Jim Cooper and David Tritscher. Listing of archive 'gengetopt-2.6.lha': Original Packed Ratio Date Time Name -------- ------- ----- --------- -------- ------------- 260 129 50.3% 24-Jun-02 08:27:34 +confdefs.h 1129 465 58.8% 24-Jun-02 08:34:52 +config.h 2374 701 70.4% 24-Jun-02 08:35:08 +config.log 10704 3204 70.0% 24-Jun-02 08:28:54 +config.status 12955 3923 69.7% 24-Jun-02 08:29:32 +Makefile 10 10 0.0% 24-Jun-02 08:35:04 +stamp-h 3726 1543 58.5% 24-Jun-02 08:29:50 +txtc.sh 182 103 43.4% 02-Mar-02 10:19:44 +cmdline.ggo 444 249 43.9% 02-Mar-02 10:21:32 +default_cmdline.c 15404 4223 72.5% 24-Jun-02 08:33:16 +Makefile 131 103 21.3% 24-Jun-02 08:34:02 +more_than_once.sh 97 83 14.4% 24-Jun-02 08:33:38 +no_optgiven.sh 129 96 25.5% 31-Dec-01 13:10:12 +canonize-names-cmd.ggo 385 243 36.8% 31-Dec-01 13:26:38 +canonize-names.c 441 242 45.1% 02-Mar-02 10:21:42 +default_values.c 446 210 52.9% 02-Mar-02 11:17:06 +default_values_cmd.ggo 898 375 58.2% 24-Jun-01 12:45:44 +more_than_once.c 177 106 40.1% 06-May-01 12:45:18 +more_than_once_cmd.ggo 379 235 37.9% 24-Jun-01 12:45:34 +no_optgiven.c 121 90 25.6% 31-Dec-01 13:10:56 +no_optgiven_cmd.ggo 273 179 34.4% 24-Jun-01 12:45:24 +no_unamed.c 97 89 8.2% 05-May-01 13:58:48 +no_optgiven.sh.in 276 181 34.4% 24-Jun-01 12:45:16 +no_strings.c 115 82 28.6% 23-Mar-01 22:43:08 +no_strings_cmd.ggo 150 101 32.6% 23-Mar-01 22:43:08 +no_unamed_cmd.ggonu 4642 1949 58.0% 24-Jun-02 08:31:42 +gengetopt.1 35679 9842 72.4% 24-Jun-02 08:32:30 +gengetopt.html 2760 1163 57.8% 02-Mar-02 10:22:44 +Makefile.am 17914 4298 76.0% 02-Mar-02 13:23:18 +Makefile.in 131 110 16.0% 06-May-01 12:45:18 +more_than_once.sh.in 340 198 41.7% 09-Feb-01 18:17:14 +cxxconfig.h 14917 4346 70.8% 24-Jun-02 08:31:10 +Makefile 2383 1109 53.4% 16-Dec-01 14:20:40 +no_getopt_long.txt 4150 1786 56.9% 02-Mar-02 10:03:06 +old_changes.html 2126 677 68.1% 02-Mar-02 11:20:50 +testdata 32718 3026 90.7% 24-Jun-02 08:51:00 +cmdline1.c.html 1551 531 65.7% 24-Jun-02 12:44:36 +cmdline1.h 1974 594 69.9% 24-Jun-02 08:51:04 +cmdline2.h 10712 3745 65.0% 23-Jul-00 20:00:32 +man_getopt.html 10 10 0.0% 02-Mar-02 13:23:18 +samples.stamp 7289 1878 74.2% 24-Jun-02 12:44:36 +cmdline1.c 9355 2087 77.6% 24-Jun-02 08:51:04 +cmdline2.c 1402 591 57.8% 02-Mar-02 11:20:32 +main1.cc 747 378 49.3% 24-Jun-01 12:29:38 +main2.c 675 251 62.8% 24-Jun-02 12:44:34 +sample1.ggo 1046 388 62.9% 24-Jun-02 12:44:34 +sample2.ggo 4660 1952 58.1% 02-Mar-02 12:57:36 +gengetopt.1.in 35691 9853 72.3% 02-Mar-02 13:01:32 +gengetopt.html.in 4025 1558 61.2% 16-Dec-01 14:38:54 +Makefile.am 2679 1285 52.0% 07-Dec-00 15:42:16 +mdate-sh 183111 59370 67.5% 07-Dec-00 15:42:16 +texinfo.tex 15722 4422 71.8% 02-Mar-02 13:23:18 +Makefile.in 114420 45639 60.1% 24-Jun-02 08:50:38 +gengetopt 214 116 45.7% 24-Jun-02 08:47:08 +gengetopt_strdup.o 12685 5782 54.4% 24-Jun-02 08:48:50 +getopt.o 3596 1559 56.6% 24-Jun-02 08:49:34 +getopt1.o 3201 1436 55.1% 24-Jun-02 08:46:10 +yyerror.o 1499 613 59.1% 24-Jun-02 08:41:08 +argsdef.o 9365 3933 58.0% 24-Jun-02 08:42:34 +cmdline.o 10647 4717 55.6% 24-Jun-02 08:43:56 +gengetopt.o 24910 10831 56.5% 24-Jun-02 08:45:32 +gm.o 11636 5504 52.6% 24-Jun-02 08:38:40 +parser.o 20906 9266 55.6% 24-Jun-02 08:40:38 +scanner.o 2904 1261 56.5% 02-Mar-02 10:06:08 +cmdline.ggo 1546 518 66.4% 02-Mar-02 10:23:14 +cmdline.h 192 108 43.7% 24-Jun-02 08:36:34 +copyright.o 340 198 41.7% 09-Feb-01 18:17:14 +cxxconfig.h 11961 4070 65.9% 24-Jun-02 08:30:26 +Makefile 194 108 44.3% 24-Jun-02 08:37:28 +reportbugs.o 1203 612 49.1% 14-May-01 19:41:34 +argsdef.h 1209 614 49.2% 01-Mar-02 21:47:52 +gengetopt.h 6447 2530 60.7% 16-Dec-01 14:04:08 +getopt.h 712 372 47.7% 01-Mar-02 22:04:52 +ggos.h 1287 613 52.3% 14-May-01 19:41:34 +gm.h 391 207 47.0% 01-Mar-02 22:21:26 +parser.h 1101 577 47.5% 14-May-01 19:41:34 +argsdef.c 8182 1932 76.3% 02-Mar-02 10:23:14 +cmdline.c 7656 2441 68.1% 02-Mar-02 10:15:00 +gengetopt.c 309 182 41.1% 17-Dec-01 21:23:28 +gengetopt_strdup.text 25103 5688 77.3% 02-Mar-02 10:12:54 +gm.c 317 216 31.8% 02-Mar-02 11:11:42 +yyerror.c 374 247 33.9% 02-Mar-02 13:22:56 +copyright.text 4096 1402 65.7% 02-Mar-02 11:16:58 +parser.y 88 74 15.9% 20-Mar-01 23:16:38 +reportbugs.text 2932 1245 57.5% 01-Mar-02 22:34:20 +scanner.l 272 166 38.9% 17-Dec-01 21:23:24 +strdup.c 273 197 27.8% 01-Jul-00 13:58:44 +yywrap.c 30147 9485 68.5% 16-Dec-01 14:04:02 +getopt.c 4520 1805 60.0% 16-Dec-01 14:03:58 +getopt1.c 2786 1381 50.4% 17-Dec-01 21:24:44 +Makefile.am 11892 4043 66.0% 02-Mar-02 13:23:18 +Makefile.in 27657 8217 70.2% 02-Mar-02 11:17:12 +parser.c 42989 12759 70.3% 01-Mar-02 22:34:24 +scanner.c 3211 1520 52.6% 31-Dec-01 14:18:22 +configure.in 5598 2233 60.1% 07-Dec-00 15:42:16 +install-sh 983 545 44.5% 14-May-01 19:41:34 +LICENSE 6283 2135 66.0% 07-Dec-00 15:42:16 +missing 722 380 47.3% 07-Dec-00 15:42:16 +mkinstalldirs 779 464 40.4% 01-Jul-00 13:58:44 +reconf 3728 1544 58.5% 20-Mar-01 23:16:38 +txtc.sh.in 119 98 17.6% 09-Feb-01 18:17:14 +acconfig.h 3385 1399 58.6% 09-Feb-01 18:17:14 +acinclude.m4 8202 3360 59.0% 31-Dec-01 14:18:34 +aclocal.m4 1011 430 57.4% 17-Dec-01 21:11:26 +config.h.in 83140 20902 74.8% 31-Dec-01 14:18:34 +configure 1486 729 50.9% 01-Mar-02 22:12:26 +THANKS 1810 890 50.8% 06-May-01 14:03:58 +TODO 550 334 39.2% 30-Jul-00 15:27:38 +AUTHORS 12988 4304 66.8% 02-Mar-02 13:05:12 +ChangeLog 17992 7014 61.0% 01-Jul-00 13:58:44 +COPYING 7644 3020 60.4% 10-Apr-01 18:51:08 +INSTALL 965 554 42.5% 14-May-01 19:41:34 +Makefile.am 5463 2452 55.1% 02-Mar-02 13:22:50 +NEWS 10 10 0.0% 31-Dec-01 14:18:38 +stamp-h.in 12885 3901 69.7% 02-Mar-02 13:23:16 +Makefile.in 20889 7754 62.8% 02-Mar-02 13:02:04 +README -------- ------- ----- --------- -------- 1061714 352998 66.7% Operation successful. _____________________________ .Readme created with: MRea \