1997-04-09 01:24 Ulrich Drepper * argp-fmtstream.c: Add casts to prevent warnings. * argp-fmtstream.h: Likewise. * argp-help.c: Likewise. 1997-02-27 16:26 Andreas Schwab * argp-parse.c (parser_finalize): Always set *END_INDEX if supplied. Thu May 8 17:15:31 1997 Miles Bader * argp.h [!__error_t_defined] (__error_t_defined): Define. * argp-help.c (canon_doc_option): Correct ctype tests. Wed Mar 5 16:49:51 1997 Miles Bader * argp-help.c (__argp_state_help): Use ARGP_ERR_EXIT_STATUS when exiting due to an error. * argp.h (argp_err_exit_status): New variable. * argp-eexst.c: New file. * Makefile (SRCS): Add argp-eexst.c. Fri Feb 21 10:41:02 1997 Miles Bader * argp.h (OPTION_NO_USAGE): New macro. * argp-help.c (usage_long_opt, usage_argful_short_opt, add_argless_short_opt): Implement OPTION_NO_USAGE. Thu Feb 20 15:56:16 1997 Miles Bader * idvec.c (idvec_insert_only): Handle POS >= IDVEC->num correctly. (idvec_insert, idvec_remove): Handle POS > IDVEC->num correctly. * argp-fmtstream.c (__argp_fmtstream_update): Account for case where NEXTLINE points one past the end of the active buffer. * argp-help.c : New include. (__argp_failure): Only exit if STATE says it's ok. (print_header, hol_entry_help): Use UPARAMS fields rather than constants. (_help): Call fill_in_uparams if necessary. (struct hol_help_state): New type. (struct pentry_state): Add hhstate field. Remove prev_entry & sep_groups fields. (hol_entry_help): Add HHSTATE parameter. Remove prev_entry & sep_groups parameters. Suppress duplicate arguments if requested, and note the fact. (print_header, comma): Use PEST->hhstate fields. (hol_help): Add HHSTATE variable & pass to hol_entry_help. Remove LAST_ENTRY & SEP_GROUPS variables. If any suplicate arguments were suppressed, print explanatory note. (filter_doc): Replace PEST parameter with STATE. (struct uparams): New type. (uparams): New variable. (struct uparam_name): New type. (uparam_names): New variable. (fill_in_uparams): New function. (__argp_failure, __argp_error, __argp_state_help): Make STATE parameter const. * argp.h (argp_state_help, __argp_state_help, argp_usage, __argp_usage, argp_error, __argp_error, argp_failure, __argp_failure): Make STATE parameter const. (ARGP_KEY_HELP_DUP_ARGS_NOTE): New macro. * argp.h (argp_program_bug_address): Make const. Wed Feb 19 18:48:15 1997 Miles Bader * argp-pv.c (argp_program_version): Make const. * argp-ba.c (argp_program_bug_address): Make const. * argp-ex2.c, argp-ex3.c, argp-ex4.c (argp_program_version, argp_program_bug_address): Make const. * argp-parse.c (argp_default_parser): Set STATE->name for OPT_PROGNAME. (parser_init): Use the basename for PARSER->state.name. * argp-help.c (__argp_error, __argp_failure, __argp_state_help): Use PROGRAM_INVOCATION_SHORT_NAME instead of PROGRAM_INVOCATION_NAME. * argp-parse.c (parser_init): Set PARSER->state.flags. Make check whether PARSER has the prog name in argv[0] at the proper place. Mon Feb 17 13:33:11 1997 Miles Bader * argp-parse.c (parser_parse_next, parser_init): Remove __ prefixes from references to getopt functions variables (OPT*). (argp_version_parser, parser_finalize): Use _ instead of gettext. (gettext): Macro removed. * argp-namefrob.h (__getopt_long, __getopt_long_only, __optind, __optarg, __opterr, __optopt): Macros removed. Sun Feb 16 00:04:07 1997 Miles Bader * argp-help.c (space): New function. (usage_argful_short_opt): Use space. (argp_doc): Deal with help filters. Add STATE param. (argp_hol): Passin ARGP to make_hol, not ARGP->options. (struct hol_entry): Add argp field. (make_hol): Make this first parameter ARGP instead of OPT. Set each entry's argp field. (filter_doc): New function. (print_header): Filter STR if necesary. (hol_add_cluster): Add ARGP argument. (argp_hol): Pass ARGP to hol_add_cluster. (struct hol_cluster): Add argp field. (hol_entry_help): Add STATE param. Do user filtering if necessary. (struct pentry_state): Add state field. (hol_help): Add STATE param. (_help): Renamed from __argp_help. Add STATE argument, which pass on appropiately. (__argp_help): Now a wrapper that calls _help. (__argp_state_help): Call _help instead of __argp_help. * argp-parse.c (parser_init): Set PARSER->state.pstate. (struct group): Add argp field. (convert_options): Set it. (__argp_input): New function. * argp-namefrob.h (__argp_input): New macro. Sat Feb 15 22:00:42 1997 Miles Bader * argp.h (struct argp): Add help_filter field. (struct argp_state): Add pstate field. Fri Feb 14 18:00:52 1997 Miles Bader * argp-help.c, argp-parse.c [!_] (_): New macro. [!_ && HAVE_LIBINTL_H] : New include. * argp-help.c (hol_entry_help, __argp_help, argp_args_usage, argp_doc, usage_long_opt, arg, hol_entry_help): Call gettext in appropriate places. * argp-parse.c (parser_finalize, argp_version_parser): Likewise. * argp-help.c: Incorporate gettext changes from drepper. Thu Feb 13 16:46:59 1997 Miles Bader * argp-parse.c, argp-help.c, argp-fmtstream.c, argp-pvh.c, argp-test.c, argp-fs-xinl.c, argp-xinl.c [HAVE_CONFIG_H] : New include. Wed Feb 12 00:35:21 1997 Miles Bader * argp-fmtstream.c (_GNU_SOURCE): New macro. : New include. [!isblank] (isblank): New macro. * argp-fmtstream.h : Include removed. * argp-parse.c (parser_parse_next): Decrement PARSER->state.next if we consumed an arg we didn't end up parsing. Set ARG_EBADKEY ourselves in all cases. (parser_parse_arg, parser_parse_opt): Get rid of ARG_EBADKEY param. * argp-parse.c (__progname, __progname_full): Decls removed. (argp_default_parser): Use PROGRAM_INVOCATION_NAME & PROGRAM_INVOCATION_SHORT_NAME, not __PROGNAME_FULL & __PROGNAME. * argp-help.c (__progname, __progname_full): Decls removed. (__argp_failure, __argp_error, __argp_state_help): Use PROGRAM_INVOCATION_NAME instead of __PROGNAME_FULL. (__argp_error): Use STATE->name if it's available. * argp-namefrob.h (__progname_full): Macro removed. * argp.h (ARGP_KEY_END, ARGP_KEY_NO_ARGS, ARGP_KEY_INIT, ARGP_KEY_SUCCESS, ARGP_KEY_ERROR): Change values. * argp-help.c (make_hol): Initalize clusters field. (argp_args_usage): Don't trash memory. Tue Feb 11 19:16:39 1997 Miles Bader * argp-help.c (argp_args_levels): New function. (argp_args_usage): Add LEVELS & ADVANCE arguments, and implement multi-pattern output. (__argp_help): Print multiple argument patterns if there are any. * argp-test.c (args_doc): Add an alternative args pattern. (parse_opt): Enforce it. * argp-parse.c: Largely rewritten to clean up the code, avoid using nested functions, and adapt namespace and locking in preparation for moving into libc. * argp-help.c (make_hol): Make static. Increment default group for option headers. (until_short): Return correct key. (group_cmp): Put group 0 before other groups, not in the middle. (hol_entry_cmp): Use __strcasecmp instead of strcasecmp. (hol_entry_cmp, usage_argful_short_opt, usage_long_opt): Don't use ?: operator. (__argp_help): Renamed from argp_help. (__argp_state_help): Renamed from argp_state_help. (__argp_error): Renamed from argp_error. (__argp_failure): Renamed from argp_failure. [weak_alias] (argp_help, argp_state_help, argp_error, argp_failure): New weak aliases. (__progname, __progname_full): New declarations. (__argp_state_help, __argp_error, __argp_failure): Use __PROGNAME_FULL instead of PROGRAM_INVOCATION_NAME. "argp-namefrob.h": New include. * argp.h [HAVE_CONFIG_H] : New include. [__GNU_LIBRARY__] : New include. [!__const] (__const): New macro. (struct argp_option, struct argp, struct argp_child, struct argp_state): Use __const instead of const. (__argp_parse, __argp_help, __argp_state_help, __argp_error, __argp_usage, __argp_failure, __option_is_short, __option_is_end): New declarations. (argp_parse, argp_help, argp_state_help, argp_error, argp_usage, argp_failure, _option_is_short, _option_is_end): Use __P macro for function declarations. (argp_usage, _option_is_end, _option_is_short): Inline definitions replaced by __-prefixed versions, and protected by __OPTIMIZE__. [__OPTIMIZE__ && !_LIBC] (__argp_usage, __argp_state_help, __option_is_short, __option_is_end): Add redefs (& later undefs) of __ versions of inline definitions so they define the correct name for the environment (libc vs. non-libc). * argp-fmtstream.c, argp-fmtstream.h, argp-fs-xinl.c, argp-xinl.c, argp-namefrob.h, argp-test.c: New files. * argp.c: File removed. * Makefile (SRCS): Add argp-fmtstream.c, argp-fs-xinl.c, and argp-xinl.c. Remove argp.c. (installhdrs): Define explicitly. (LCLHDRS): Define in terms of $(installhdrs) + others. (CFLAGs): Add -DHAVE_LINEWRAP_H & -DHAVE_CTHREADS_H. Mon Feb 10 22:19:46 1997 Miles Bader * argp-help.c (indent_to, arg, struct pentry_state, print_header, comma, hol_entry_help, hol_help, usage_argful_short_opt, usage_long_opt, hol_usage, argp_args_usage, argp_doc, argp_help): Use argp_fmtstream_t & associated functions instead of stdio streams. "argp-fmtstream.h": New include. : Include removd. * argp-help.c (hol_append): Use memcpy instead of bcopy. (argp_doc): Use strchr instead of index. (make_hol): Make static. * argp-parse.c (argp_default_parser): Use strrchr instead of rindex. (argp_parse): Use strchr instead of index, memset instead of bzero. * argp-parse2.c (parser_init, argp_parse): Use memset instead of bzero. (argp_default_parser): Use strrchr instead of rindex. (parser_parse_opt): Use strchr instead of index. Sun Feb 9 10:53:20 1997 Miles Bader * argp.h (ARGP_LONG_ONLY, ARGP_HELP_LONG_ONLY): New macros. * argp-parse.c (argp_parse): Support ARGP_LONG_ONLY. * argp-parse2.c (parser_parse_next): Likewise. * argp-help.c (argp_state_help): Add ARGP_HELP_LONG_ONLY to FLAGS if STATE has ARGP_LONG_ONLY set. * argp-help.c (hol_entry_help): Correctly output odoc options. Use un-nested helper functions, with state block. (arg, print_header, comma): New functions (were nested in hol_entry_help) (struct pentry_state): New type. (add_argless_short_opt, usage_argful_short_opt, usage_long_opt): New functions (were nested in hol_usage). (hol_usage): Use un-nested functions. * argp-help.c (hol_entry_short_iterate, hol_entry_long_iterate): Add COOKIE argument, also to signature of FUNC. (until_short): Add COOKIE argument. Sat Feb 8 17:18:43 1997 Miles Bader * argp.h (OPTION_DOC): New macro. * argp-parse.c (argp_parse): Don't parse OPTION_DOC options. * argp-parse2.c (convert_options): Likewise. * argp-help.c (odoc): New macro. (oshort): Exclude options for which odoc is true. (canon_doc_option): New function. (hol_entry_cmp): Correctly place odoc options. * argp-help.c (hol_entry_qcmp): New function. (hol_sort): Remove cmp and use hol_entry_qcmp instead. (until_short): New function, from old nested function func1 in hol_entry_first_short. Only return short key when oshort is true. (hol_entry_first_short): Remove func1 and use until_short insteadd. Tue Nov 12 19:22:58 1996 Thomas Bushnell, n/BSG * idvec.h (idvec_set, idvec_set_ids): New functions. * idvec.c (idvec_set, idvec_set_ids): Ditto. Tue Nov 5 21:16:10 1996 Thomas Bushnell, n/BSG * idvec.h (idvec_setid): Doc fix. Thu Oct 24 15:15:27 1996 Miles Bader * argp-help.c (hol_entry_help: comma): Only print cluster headers for real clusters. Emit a newline after cluster headers. Wed Oct 23 13:58:22 1996 Miles Bader * argp-help.c (argp_args_usage, argp_doc): Use the new type of argp child vector. Tue Oct 22 15:35:56 1996 Miles Bader * argp-help.c (make_hol): Accept new CLUSTER argument, and fill in the corresponding entry fields with it. (hol_sort): Use hol_entry_cmp. (hol_entry_cmp, group_cmp, hol_cluster_cmp, hol_cluster_base, hol_add_cluster): New functions. (hol_free): Free clusters. (hol_append): Deal with clusters. Always use hol_free to free MORE, and just mark it's entries as invalid if we steal them. (argp_hol): Add, and use the new CLUSTER argument. Use the new type of argp child vector, and make clusters. (argp_help): Pass new CLUSTER argument to argp_hol. (hol_entry_help): Add gunk to print cluster headers. * argp.h (struct argp_child): New type. (struct argp): Change type of CHILDREN field to `struct argp_child *'. * argp-parse.c (argp_parse): Convert to use the new type of argp children vectors. Mon Oct 21 22:00:44 1996 Thomas Bushnell, n/BSG * argp.h: Add extern inline protection. * idvec.h: Likewise. * maptime.h: Likewise. * argp.c, idvec-funcs.c, maptime-funcs.c: New files. * Makefile (SRCS): Add argp.c, idvec-funcs.c, and maptime-funcs.c. Mon Oct 14 18:06:19 1996 Miles Bader * argp-parse.c (argp_parse): Don't consume non-option arguments that aren't recognized by any parser. Allocate enough space for TOP_ARGP's parent list to include the version parser. Thu Sep 19 17:48:14 1996 Miles Bader * fsysops.c (fsys_update): Renamed from fsys_remount. Use --update, not --remount. Fri Aug 30 20:44:44 1996 Miles Bader * argp-help.c (argp_help): Print documentation only according to the ARGP_HELP_*_DOC bits in FLAGS. Possibly print bug report address if ARGP_HELP_BUG_ADDR is set. Replace FIRST by ANYTHING (sense inverted). * argp.h (ARGP_HELP_PRE_DOC, ARGP_HELP_POST_DOC, ARGP_HELP_DOC, ARGP_HELP_BUG_ADDR): New macros. (ARGP_HELP_STD_HELP): Include ARGP_HELP_DOC & ARGP_HELP_BUG_ADDR. (argp_program_bug_address): New declaration. (ARGP_HELP_EXIT_ERR, ARGP_HELP_EXIT_OK): Values changed. * Makefile (SRCS): Add argp-ba.c. Tue Aug 20 17:12:42 1996 Miles Bader * argp-help.c (argp_doc): Add FIRST_ONLY argument. Don't output a blank line for empty post-docs. (argp_help): Use it. Move first call to argp_doc after newline. Mon Aug 19 14:45:30 1996 Miles Bader * argp-help.c (argp_help): Add note about --usage to `Try...' msg. Supply new args to argp_doc, and additional call before arg help. (argp_doc): Add the POST and PRE_BLANK arguments, & return val. Wed Jul 31 15:24:09 1996 Thomas Bushnell, n/BSG * wire.c (_start): No longer declared as weak, now that everything is getting recompiled anyway. Fri Jul 26 20:57:53 1996 Miles Bader * timefmt.c (fmt_past_time): Always use WIDTH+1 as strftime's limit. Thu Jul 25 23:10:35 1996 Miles Bader * timefmt.c (fmt_past_time): Terminate SEPS. * argp-help.c (hol_entry_help): Never return without restoring margins. Mon Jul 22 23:41:38 1996 Miles Bader * timefmt.c (fmt_past_time): Try several separators when concatenating dates & times. Fri Jul 19 17:23:18 1996 Miles Bader * argp-help.c (hol_usage): Allocate enough space in SHORT_NO_ARG_OPTS for the '\0' terminator. Tue Jul 16 00:24:18 1996 Miles Bader * argp-help.c (argp_help): Set the lmargin after printing the start of the usage message, so that it won't get indented. Wed Jul 10 12:16:57 1996 Miles Bader * argp-parse.c (argp_version_options, argp_version_parser): Use an uppercase 'V' for short version option. * argp-help.c (argp_help): "OPTIONS..." -> "OPTION...". Sat Jul 6 16:17:53 1996 Miles Bader * argp-parse.c (argp_version_parser): Output ARGP_PROGRAM_VERSION to STATE->out_stream, not stdout. Supply that stream and STATE to ARGP_PROGRAM_VERSION_HOOK. * argp.h (argp_program_version_hook): Add argument types. * argp-pv.c (argp_program_version): Doc updated. * argp-pvh.c (argp_program_version_hook): Type & doc updated. "argp.h": New include. Fri Jul 5 17:13:12 1996 Miles Bader * timefmt.c (fmt_past_time): Get rid of extraneous `f' in fmt string. Thu Jun 27 17:09:30 1996 Miles Bader * argp-parse.c (argp_parse): Zero the CHILD_INPUTS vector. Fri Jun 21 17:15:31 1996 Miles Bader * argp-parse.c (argp_parse): Use group_parse instead of calling group parser directly for long options. Wed Jun 19 13:11:15 1996 Miles Bader * fsysops.c: New file. * Makefile (SRCS): Add fsysops.c. Tue Jun 18 21:09:52 1996 Miles Bader * argp-help.c (argp_failure): If FMT is 0, don't print `: MSG'. Sun Jun 16 19:25:10 1996 Miles Bader * Makefile (SRCS): Remove line.c. (LCLHDRS): Remove line.h. * argp-help.c (argp_help, argp_state_help, argp_error, argp_failure): Handle null streams. * argp.h (struct argp_state): Add NAME, ERR_STREAM, & OUT_STREAM fields. (argp_failure): New declaration. (ARGP_NO_HELP, ARGP_NO_EXIT): Fix values (were hex, but with decimal value!). (argp_help): Add NAME argument. * argp-parse.c (argp_default_parser): Output to STATE->out_stream. (argp_parse): Initialize new fields in STATE. Output errors to STATE.err_stream. Handle null streams. * argp-help.c (argp_help): Add and use NAME argument. (argp_error): Use STATE->err_stream instead of STDERR. (argp_state_help): Supply NAME argument to argp_help. (argp_failure): New function. Thu May 30 18:10:35 1996 Miles Bader * argp-help.c (indent_to): Terminate. Tue May 28 18:05:40 1996 Miles Bader * timefmt.c (fmt_seconds): Don't print two decimal points. Wed May 22 00:11:24 1996 Miles Bader * argp-parse.c (argp_default_parser): Break after --HANG. * argp-help.c (hol_usage): Prefix each option desc with a space. Do manual wrapping of descs with an embedded space. Don't set wrap margin (done elsewhere now). (argp_args_usage): Do manual line wrapping because of embedded spaces. (argp_help): Set wrap & left margins when printing usage. * argp-parse.c (argp_parse): Only print a `Try...' message if the error was a parsing error. Tue May 14 21:59:43 1996 Miles Bader * timefmt.c (add_field): Correctly decrement *SECS by amount printed. * timefmt.c (fmt_named_interval): Use fraction digit in more cases. Always pick the last suffix if we can't find any that fits. Use new tv_ functions. (tv_is_zero, tv_is_ge): New functions. Fri May 10 23:17:38 1996 Miles Bader * argp.h (ARGP_ERR_UNKNOWN): New define. * argp-parse.c (EBADKEY): New define. (argp_default_parser, argp_version_parser, argp_parse): Use EBADKEY instead of EINVAL. Turn any EBADKEY that makes it to the end back into EINVAL. Thu May 9 11:30:47 1996 Miles Bader * maptime.c (maptime_map): Use new file_get_storage_info interface. * argp-help.c (argp_help): Just assign STREAM instead of using 2 vars. Thu May 9 11:00:52 1996 Michael I. Bushnell, p/BSG * exec-reauth.c (exec_reauth): Use new args to auth_user_authenticate. * timefmt.c (fmt_past_time): Cast arg to localtime appropriately. * argp-help.c (argp_args_usage): add_usage_item -> fprintf. (argp_help): Don't shadow arg; change parm STREAM to be STREAMARG and adjust initialization of STREAM variable to use the renamed parm. Tue May 7 14:58:48 1996 Miles Bader * timefmt.c (fmt_past_time): Suppress leading noise in some formats. * argp-help.c (hol_usage): Set the wmargin, not the lmargin. (hol_help): Set the wmargin as well as the lmargin. * argp-help.c : New include. (lmargin): Function deleted. (hol_entry_help, hol_usage): Use line_wrap_set_lmargin instead. Mon May 6 12:46:16 1996 Miles Bader * argp-help.c : Include removed. (lmargin, indent_to): New functions. (argp_usage_arg): Function removed. (hol_entry_help, hol_help, hol_usage, argp_args_usage, argp_doc, argp_help): Use stdio streams and line_wrap_ functions instead of line_ functions. Sat May 4 05:32:28 1996 Roland McGrath * rwlock.h: Moved to ../libthreads. * Makefile (LCLHDRS): Remove rwlock.h. Fri May 3 18:10:41 1996 Roland McGrath * path-lookup.c: File removed. * Makefile (SRCS): Remove path-lookup.c. * argz.c, argz.h, envz.c, envz.h: Files removed. * Makefile (SRCS): Remove argz.c, envz.c. (LCLHDRS): Remove argz.h, envz.h. Thu May 2 00:31:32 1996 Miles Bader * argp-parse.c (_argp_hang): New variable. (OPT_HANG): New macro. (argp_default_options, argp_default_parser): Add hidden --HANG option. (argp_default_parser): New function. (argp_version_options, argp_version_argp): New variables. (argp_parse): Use ARGP_VERSION_ARGP when appropiate. * argp.h (argp_program_version, argp_program_version_hook): New decls. * Makefile (SRCS): Add argp-pv.c & argp-pvh.c. * argp-pv.c, argp-pvh.c: New files. Tue Apr 30 20:25:12 1996 Miles Bader * timefmt.c (fmt_past_time): New function. (fmt_minutes, fmt_seconds): New args, rewrite. (add_field): New function. (fmt_frac_value, append_fraction): Functions removed. * timefmt.h (fmt_past_time): New declaration. (fmt_minutes, fmt_seconds): Update. * argp-parse.c (argp_parse): Work with ARGP == 0. Mon Apr 29 15:34:00 1996 Miles Bader * cacheq.c, cacheq.h: New files. * Makefile (SRCS): Add cacheq.c. (LCLHDRS): Add cacheq.h. Thu Apr 25 00:09:48 1996 Roland McGrath * idvec.c (idvec_free_contents): New function. * idvec.h (idvec_free_contents): Declare it. Thu Apr 11 15:23:15 1996 Michael I. Bushnell, p/BSG * wire.c (wire_segment_internal): Cast values nicely in `poke' loop. Wed Apr 3 12:57:39 1996 Miles Bader * argp.h (argp_parse): Change HOOK argument to INPUT. (struct argp_state): Rename HOOK & CHILD_HOOKS to INPUT & CHILD_INPUTS; add HOOK field again. * argp-parse.c (argp_parse): Change HOOK argument to INPUT. Don't propagate back return values when we're done. (struct group): Rename HOOK & CHILD_HOOKS to INPUT & CHILD_INPUTS; add HOOK field again. (group_parse): Restore and save value of GROUP's hook field into STATE around calling the parser. Don't save changed value of INPUT. Tue Apr 2 18:25:51 1996 Miles Bader * lcm.c: New file. * Makefile (SRCS): Add lcm.c. Thu Mar 28 19:06:12 1996 Miles Bader * portinfo.c, xportinfo.c, portinfo.h: New files. * portxlate.c, portxlate.h: New files. * Makefile (LCLHDRS): Add portinfo.h, portxlate.h. (SRCS): Add portinfo.c, xportinfo.c, portxlate.c. Tue Mar 26 17:43:51 1996 Miles Bader * wire.c: Add a weak reference to _start, so we don't have to compile all users of this library. Mon Mar 25 18:38:23 1996 Miles Bader * timefmt.c (fmt_named_interval): Rationalize WIDTH. Mon Mar 25 16:11:49 1996 Michael I. Bushnell, p/BSG * wire.h, wire.c: New files. * Makefile (SRCS): Add wire.c. (LCLHDRS): Add wire.h. Mon Mar 25 16:06:40 1996 Miles Bader * envz.c (envz_merge): NEW_LEN is a size, not a char. Mon Mar 18 14:09:18 1996 Miles Bader * argp.h (struct argp_state): Add HOOK and CHILD_HOOKS fields. Rename the PARENTS field to be CHILDREN (the most common use is initialization, so this change shouldn't have much effect). (ARGP_KEY_BEGIN, ARGP_KEY_ERROR): New macros. * argp-parse.c (struct group): Add PARENT, PARENT_INDEX, HOOK, and CHILD_HOOKS fields. (argp_parse): Add HOOK argument. Implement passing hook values to parsers, and propagating them between parents and children. * argp-help.c (argp_doc, argp_args_usage, argp_hol): Rename PARENTS field to CHILDREN. * argp-help.c (argp_error): Take an argp_state instead of an argp, and only doing anything if ARGP_NO_ERRS isn't set in it. (argp_state_help): New function. (argp_help): Don't interpret exiting options anymore. * argp-parse.c (argp_default_options): Add --usage option. (argp_default_parser): Use argp_state_help, so we don't need to screw with exit options anymore. Add usage option. (argp_parse): When printing `too many arguments', test ARGP_NO_ERRS instead of ARGP_NO_HELP. * argp.h (argp_state_help): New function. (argp_usage, argp_error): Change arguments. Fri Mar 1 18:59:40 1996 Miles Bader * argp-help.c (hol_entry_help): Don't print extraneous blank lines. Wed Feb 28 18:44:38 1996 Miles Bader * argp-parse.c (argp_parse): Print an error message if appropiate when we know there are too many arguments. * argp-help.c (hol_entry_help): Handle null group headers nicely. Wed Feb 28 16:09:27 1996 Michael I. Bushnell, p/BSG * maptime.c (maptime_map): mapped_time_value arg is volatile data. * maptime.h (maptime_map): Likewise. Sat Feb 17 21:34:18 1996 Miles Bader * shared-dom.c, localhost.c: New file. * Makefile (SRCS): Add shared-dom.c and localhost.c. Fri Feb 16 15:54:22 1996 Miles Bader * maptime.c, maptime.h: New files. * Makefile (SRCS, LCLHDRS): Add maptime.c and maptime.h respectively. * timefmt.c (fmt_named_interval): Correct backwards comparison. Thu Feb 15 15:18:34 1996 Miles Bader * canon-host.c: New file. * Makefile (SRCS): Add canon-host.c. * argp-parse.c (argp_parse): Correctly deal with errors from getopt, and allow the user to use '?' as a short option. (KEY_ERR): New macro. (argp_default_options, argp_default_parser): Use -? as the short option for --help. Wed Feb 14 14:33:48 1996 Miles Bader * argp-parse.c (argp_parse): Make things a bit more readable by using the TRY_GETOPT variable in place of opt == EOF. Use KEY_END, KEY_ARG, and QUOTE. Clear STATE.quoted if STATE.next has been moved back before it. (KEY_END): New macro, in place of EOF. (KEY_ARG, QUOTE): New macros. Mon Feb 12 15:08:33 1996 Miles Bader * argp-parse.c (argp_parse): Don't parse args in order by default. Honor ARGP_NO_ARGS. Deal correctly when the user turns a non-option arg into an option in re-ordering mode. * argp.h (struct argp_state): Add `quoted' field. Thu Feb 8 19:35:49 1996 Miles Bader * argp-parse.c (argp_parse): When a non-option arg fails to be parsed with EINVAL, set ARG_EINVAL true, and leave ERR as is until just before we return. Put process_arg() in the right scope. Wed Feb 7 23:08:33 1996 Miles Bader * argp-parse.c (argp_parse): Deal with getopt returning EOF early because of `--'. * argp-parse.c (argp_parse): Make STATE.arg_num per-group. (struct group): Renamed process_arg field to args_processed (a count). Mon Feb 5 13:39:57 1996 Miles Bader * argp.h (struct argp_state): Add ARG_NUM field. * argp-parse.c (argp_parse): Implement the ARG_NUM field. * argp.h (struct argp, struct argp_state, argp_parse, argp_help, argp_usage, argp_error, _option_is_short, _option_is_end): Add `const' where appropriate. * argp-parse.c (argp_default_options, argp_default_argp, argp_parse, find_long_option): Likewise. * argp-help.c (struct hol_entry, make_hol, hol_entry_short_iterate, hol_entry_long_iterate, hol_entry_first_short, hol_entry_first_long, hol_find_entry, hol_sort, hol_entry_help, argp_hol, argp_args_usage, argp_doc, argp_help, argp_error): Likewise. * line.h (line_write, line_fill, line_puts): Likewise. * line.c (line_write, line_fill): Likewise. Sat Feb 3 02:00:06 1996 Miles Bader * idvec.c (idvec_merge_ids): Correctly add all IDS, even if some duplicates are avoided. Tue Jan 23 15:02:03 1996 Miles Bader * argp-help.c (hol_entry_help): Correctly print group headers, and precede them with a blank line. (hol_set_group): Renamed from hol_set_sort_class. (argp_help): Use hol_set_group instead of hol_set_sort_class. (struct hol_entry, make_hol, hol_sort, hol_set_group): Rename the `set_class' field to be `group'. (hol_help, hol_entry_help): After a group header has been printed, separate subsequent groups with a blank line. Mon Jan 15 11:01:15 1996 Miles Bader * path-lookup.c (hurd_file_name_path_lookup, file_name_path_lookup): Add PREFIXED_NAME (return) argument. (file_name_path_scan): New function. (hurd_file_name_path_lookup): Use file_name_path_scan(). Tue Jan 2 01:24:57 1996 Miles Bader * argp-parse.c (argp_default_options, argp_default_parser): Add --program-name (hidden) option. (OPT_PROGNAME): New macro. * idvec.c (idvec_merge_ids): Preserve duplicates internal to IDS. (idvec_ensure): Alloc NUM ids, not NUM chars! (idvec_remove): Correctly copy ids when deleting. * idvec.h (idvec_merge, idvec_delete): New declarations. * idvec-auth.c (idvec_merge_auth): Fix various small typos. * argz.c (argz_delete): If the result is empty, free it. * exec-reauth.c (exec_reauth): Doc fix. * argz.h (argz_delete): Renamed from argz_remove. * argz.c (argz_delete): Ditto. (argz_insert): Deref ARGZ where necessary. * envz.c (envz_merge): Rename argz_remove to argz_delete. Mon Jan 1 17:48:34 1996 Miles Bader * idvec.c (idvec_remove, idvec_insert_only): New functions. (idvec_setid): Use idvec_insert_only() instead of idvec_insert_new(). * idvec.h (idvec_remove, idvec_insert_only): New declarations. * Makefile (SRCS): Add exec-reauth.c. * idvec.c (idvec_free_wrapper, idvec_free, idvec_ensure, idvec_grow, idvec_tail_contains, idvec_add_new, idvec_insert_new, idvec_merge_ids, idvec_setid): New functions. (idvec_insert): Rewritten to use idvec_grow(). * idvec-auth.c (idvec_merge_auth): New function. * idvec.h (idvec_free_wrapper, idvec_free, idvec_ensure, idvec_grow, idvec_tail_contains, idvec_add_new, idvec_insert_new, idvec_merge_ids, idvec_setid, idvec_merge_auth): New declarations. * Makefile (SRCS): Added idvec-auth.c. Fri Dec 29 12:15:00 1995 Miles Bader * argp-parse.c (_argp_unlock_xxx): New function. Thu Dec 21 10:18:04 1995 Miles Bader * idvec.h (struct idvec): Renamed from struct ivec. `ints' field renamed to `ids'. (make_idvec, idvec_insert, idvec_add, idvec_contains): All renamed from the corresponding `ivec' declaration, and types, variable names, etc, changed accordingly. * idvec.c (make_idvec, idvec_insert, idvec_add, idvec_contains): All renamed from the corresponding `ivec' routine, and types, variable names, etc, changed accordingly. * Makefile (SRCS): Remove options.c. Rename ivec.c to idvec.c. (LCLHDRS): Remove options.h. Rename ivec.h to idvec.h. Wed Dec 20 13:05:00 1995 Miles Bader * argz.c (argz_insert): Instead of an integer position N, take a pointer BEFORE into ARGZ to insert before. * argz.h (argz_insert): Instead of an integer position N, take a pointer BEFORE into ARGZ to insert before. (argz_next): New inline function. Tue Dec 19 13:52:52 1995 Miles Bader * argp.h (struct argp_option): Add the GROUP field. Twiddle doc. (_option_is_end): Be more pessimistic about what constitutes `the end'. * argp-help.c (make_hol): Use the new GROUP field in struct argp_option to initialize sort_classes. (HEADER_COL): New macro. (hol_entry_help): Deal with group headers. * argp-parse.c (argp_default_options): Put --help in group -1. Sun Dec 17 00:18:58 1995 Miles Bader * ivec.c: New file. * ivec.h: New file. * Makefile (LCLHDRS): Add ivec.h. (SRCS): Add ivec.c. Sat Dec 16 17:42:27 1995 Miles Bader * termsize.c (deduce_term_size): New function, new file. * Makefile (SRCS): Add termsize.c. * argz.c (argz_insert): New function. (argz_remove, argz_append, argz_add): New functions, were in envz.c. * argz.h (argz_insert): New declaration. Thu Dec 14 18:04:48 1995 Miles Bader * argz.h (argz_append, argz_add, argz_remove): New functions. Wed Dec 13 14:28:12 1995 Miles Bader * envz.c: New file. * envz.h: New file. * Makefile (SRCS): Add envz.c. (LCLHDRS): Add envz.h Wed Dec 6 15:05:43 1995 Miles Bader * argp.h (struct argp_state): Rename the INDEX field to be NEXT. * argp-parse.c (argp_parse): Change uses of that field. * argz.c (argz_stringify): Add the SEP argument. * argz.h (argz_stringify): Ditto. Tue Dec 5 18:38:40 1995 Roland McGrath * Makefile (SRCS, LCLHDRS): Removed error.c and error.h. (CPPFLAGS-error.c): Variable removed. * error.c, error.h: Files removed. Thu Oct 19 18:39:59 1995 Miles Bader * argp.h (argp_usage, argp_error): New declarations. (argp_usage): New inline function. * argp-help.c (argp_error): New function. Fri Oct 13 19:28:28 1995 Miles Bader * argp.h (ARGP_HELP_STD_ERR): Doesn't print a usage message. (ARGP_HELP_STD_USAGE): ... whereas this does. Thu Oct 12 15:57:18 1995 Miles Bader * argp-parse.c (argp_parse): Correctly mark short options as optional. (argp_parse): If an option alias doesn't have a key, use the real key. Wed Oct 11 13:54:18 1995 Miles Bader * argp-help.c (hol_find_entry): Don't increment ENTRY prematurely. * argp-parse.c (argp_parse): Update STATE.argp when adding a wrapper to implement the --help option. In general, use the version of variables that are in STATE. Update STATE.index in the case where getopt returns EOF. (argp_parse): Correctly translate options. * line.c (line_write): New function. (line_puts): Function deleted. (line_fill): Use line_write instead of line_printf. * line.h (line_write): New declaration. (line_puts): Rewrite in terms of line_write. * argp-help.c (hol_entry_help): Print the right documentation string for each entry. * argp-parse.c (argp_default_parser, argp_parse): Rename uses of argp_usage* to argp_help*. * argp-help.c (argp_help): Renamed from argp_usage. * argp.h (ARGP_HELP_*, argp_help): Renamed from ARGP_USAGE_* &c. * argp.h (ARGP_USAGE_STD_HELP): Use ARGP_USAGE_SHORT_USAGE instead of ARGP_USAGE_USAGE. * argp-help.c (make_hol): Deal with a null value of OPT. If there are no entries, don't define the ENTRIES or SHORT_OPTIONS fields. (hol_free): Don't free ENTRIES or SHORT_OPTIONS unless there are any. (hol_sort): Don't sort unless there are some entries. (hol_usage): Don't do anything unless there are some entries. (hol_sort): Sort int he correct order. (argp_usage): Add the ARGP_USAGE_SHORT_USAGE case. * argp-parse.c (argp_parse): Deal with null parser or option fields. If an argp has neither a parser or any options, don't put it in GROUPS. Use comparison with EGROUP, rather than testing the parser field, the end test for iteration over GROUPS. * argp-help.c (hol_append): Implement. * argp-parse.c (argp_parse): Pass in the right value for GROUPS to convert_options. * Makefile (SRCS): Add argp-parse.c, argp-help.c, and line.c (LCLHDRS): Add line.h and argp.h. Tue Oct 10 17:58:14 1995 Miles Bader * argp.h: Doc fixes. * argp.h: (ARGP_KEY_NO_ARGS): New macro. * argp-parse.c (argp_parse): Add support for ARGP_KEY_NO_ARGS. Put all the group attributes into structures which get stored in the GROUPS array, rather than having a separate array for each. Sat Oct 7 03:32:51 1995 Roland McGrath * rwlock.h: Protect against multiple inclusion. Include cthreads.h and assert.h. Wed Sep 27 17:37:08 1995 Miles Bader * options.c (options_parse): Use 0 as the tag for non-option args. * options.h: Ditto. Sat Sep 23 14:15:01 1995 Roland McGrath * rwlock.h (RWLOCK_INITIALIZER): New macro. Sat Sep 16 13:40:22 1995 Roland McGrath * Makefile (lndist, $(srcdir)/hurd-snap/$(dir)/error.[ch]): Targets removed. Thu Aug 24 11:49:13 1995 Miles Bader * options.c: Include "options.h" instead of .