Age | Commit message (Collapse) | Author | Files |
|
* examples/rename.c: Remove.
* examples/fcopy.c: New file.
* examples/fremove.c: New file.
* examples/frename.c: New file.
* examples/Makefile.am: Update.
* include/mailutils/util.h (mu_rename_file): Add flags.
(mu_remove_file): New function.
(MU_COPY_OVERWRITE): New flag.
* libmailutils/base/renamefile.c: New file.
* libmailutils/base/Makefile.am: Add newe file.
* libmailutils/base/copyfile.c: Fix error handling.
* libmailutils/base/renamefile.c (mu_rename_file): Refuse to proceed if
the destination file exists and MU_COPY_OVERWRITE flag is not set
* libmailutils/diag/errors (MU_ERR_REMOVE_SOURCE)
(MU_ERR_RESTORE_META): New errors
* imap4d/rename.c (imap4d_rename): Use mu_rename_file
* mh/forw.c: Likewise.
* mh/mh_whatnow.c: Likewise.
* mh/mhn.c: Likewise.
* mh/send.c: Likewise.
* include/mailutils/cstr.h (mu_str_count): New proto.
* include/mailutils/util.h (mu_file_name_is_safe): New proto.
* libmailutils/string/safefilename.c: New file.
* libmailutils/string/strcount.c: New file.
* libmailutils/string/Makefile.am: Update.
|
|
* libmailutils/base/copyfile.c: New file.
* libmailutils/base/renamefile.c: New file.
* include/mailutils/util.h (mu_copy_file)
(mu_rename_file): New protos.
* libmailutils/base/Makefile.am: Add new files.
* examples/rename.c: New file.
* examples/Makefile.am: Add new files.
* NEWS: Update.
|
|
* include/mailutils/registrar.h: Swap MU_MAILDIR_PRIO and
MU_MH_PRIO
(mu_record_is_local)
(mu_registrar_apply_filter): New protos.
* libmailutils/base/registrar.c (mu_registrar_set_default_scheme): Use
mu_registrar_set_default_record.
(mu_record_is_local): New function.
(mu_record_get_url): Use it.
(mu_registrar_apply_filter): New function.
|
|
* include/mailutils/argcv.h: Restore
* include/mailutils/Makefile.am: Add back argcv.h
|
|
* include/mailutils/sieve.h (mu_sieve_get_mailbox)
(mu_sieve_get_argc): New protos.
* libmu_sieve/runtime.c: New functions.
|
|
* include/mailutils/sieve.h (mu_sieve_require_environment): New proto.
* libmu_sieve/Makefile.am: Add environment.c
* libmu_sieve/environment.c: New file.
* libmu_sieve/require.c: Handle "environment" keyword.
* libmu_sieve/sieve-priv.h (mu_sieve_machine) <exenv>: New member.
* libmu_sieve/sieve.l: Bugfixes
* libmu_sieve/variables.c: Add missing static qualifiers
* sieve/sieve.c: New option --environment
|
|
|
|
* include/mailutils/util.h (mu_content_type, mu_param): New structs.
(mu_content_type_t): New typedef.
(mu_content_type_parse, mu_content_type_destroy): New protos.
* libmailutils/base/ctparse.c: New file.
* libmailutils/base/Makefile.am: Add new file.
* imap4d/fetch.c: Use mu_content_type_parse to parse the header.
* libmailutils/tests/conttype.c: New file.
* libmailutils/tests/Makefile.am: Add new file.
|
|
* libmu_sieve/util.c (mu_sieve_vlist_compare): Rewrite.
* include/mailutils/sieve.h (mu_sieve_retrieve_t): Change signature.
All uses changed.
(mu_sieve_relational_count): Remove.
(mu_sieve_vlist_compare): Change signature.
* libmu_sieve/extensions/list.c (list_retrieve_header): Always
return meaningful status.
* libmu_sieve/tests.c (mu_sieve_relational_count): Remove.
(retrieve_address,retrieve_envelope): Return meaningful status.
(retrieve_header): Iterate over all mime parts, if required.
(sieve_test_address,sieve_test_header): Rewrite.
* libmu_sieve/variables.c (sieve_test_string): Rewrite using
mu_sieve_vlist_compare.
|
|
* include/mailutils/glob.h: File was missing in df608ed0
* include/mailutils/Makefile.am: Add glob.h
|
|
* include/mailutils/sieve.h (mu_sieve_string): New fields
"constant" and "changed".
(mu_sieve_match_part_tags): New extern.
(mu_sieve_relational_count)
(mu_sieve_require_variables)
(mu_sieve_has_variables)
(mu_sieve_string_get): New functions.
* libmu_sieve/variables.c: New file.
* libmu_sieve/Makefile.am: Add variables.c
* libmu_sieve/comparator.c: Use mu_sieve_string_get to obtain
the actual value of the string.
* libmu_sieve/require.c: Support the "variables" extension.
* libmu_sieve/sieve-priv.h (mu_sieve_machine): New fields
vartab, match_string, match_buf, match_count, match_max.
(mu_i_sv_copy_variables)
(mu_i_sv_expand_variables): New protos.
* libmu_sieve/sieve.l (line_add): zero length means add entire
asciiz string.
* libmu_sieve/sieve.y (mu_sieve_machine_reset): Reset the new
fields.
(mu_sieve_machine_clone): Copy variables and initialize new
fields.
(string_rescan): New function.
(sieve_parse): Rescan string to determine their properties.
* libmu_sieve/strexp.c (update_len): Allow for NULL replacement
values.
* libmu_sieve/string.c (mu_sieve_string_get): New function.
(mu_sieve_string): Use it.
* libmu_sieve/tests.c (do_count): Rename to mu_sieve_relational_count,
make global. All uses changed.
(match_part_tags): Rename to mu_sieve_match_part_tags, make global.
All uses changed.
* sieve/tests/variables.at: New file.
* sieve/tests/Makefile.am: Add new testcases.
* sieve/tests/testsuite.at: Likewise.
|
|
* include/mailutils/opool.h (mu_nonlocal_jmp_t): New type.
(mu_opool_setjmp,mu_opool_clrjmp): New functions.
(mu_opool_setup_nonlocal_jump): New macro.
* libmailutils/base/opool.c (_mu_opool)<jmp>: New field.
(alloc_bucket): Do a non-local jump on out of memory condition,
if jmp is not NULL.
(mu_opool_setjmp,mu_opool_clrjmp): New functions.
* libmailutils/base/glob.c: New file.
* libmailutils/base/Makefile.am: Add glob.c
* include/mailutils/glob.h: New file.
* include/mailutils/mailutils.h: Include glob.h
* libmailutils/tests/globtest.c: New file.
* libmailutils/tests/globtest.at: New test.
* libmailutils/tests/Makefile.am: Add new files.
* libmailutils/tests/testsuite.at: Include new test.
|
|
* include/mailutils/opool.h (mu_opool_detach): New proto.
* libmailutils/base/opool.c (mu_opool_bucket): Redo as union
to ensure proper alignment. All uses changed.
(mu_opool_detach): New function.
|
|
The purpose is to simplify the machine structure and to ensure its
clones are completely independent of the master instance.
* include/mailutils/sieve.h (mu_sieve_command): New struct.
(mu_sieve_record): New enum
(mu_sieve_registry_t): Generalize for storing various types of objects.
(mu_sieve_test_lookup,mu_sieve_action_lookup)
(mu_sieve_require_action,mu_sieve_require_test)
(mu_sieve_require_comparator): Remove.
(mu_sieve_register_test_ext,mu_sieve_register_test)
(mu_sieve_register_action_ext,mu_sieve_register_action)
(mu_sieve_register_comparator)
(mu_sieve_load_ext): Change return type.
(mu_sieve_registry_require,mu_sieve_unload_ext): New functions.
(mu_sieve_machine_inherit): Rename to mu_sieve_machine_clone.
* libmu_sieve/sieve-priv.h (mu_sieve_machine): Remove source_list,
test_list, action_list, and comp_list. Add a single registry list
instead.
Add space for file and command (action and test) names: idspace,
idcount, idmax.
Remove unused field "stack";
(mu_i_sv_lex_finish): Change prototype.
(_mu_i_sv_instr_push,_mu_i_sv_instr_pop): Remove protos.
(mu_i_sv_id_canon,mu_i_sv_id_num)
(mu_i_sv_id_str,mu_i_sv_free_idspace): New protos.
* libmu_sieve/register.c: Rename to registry.c
* libmu_sieve/registry.c (mu_sieve_test_lookup)
(mu_sieve_action_lookup): Remove.
(mu_sieve_require_test,mu_sieve_require_action): Remove.
(mu_sieve_registry_require): New function.
(mu_sieve_registry_add,mu_sieve_registry_lookup): New functions.
* libmu_sieve/Makefile.am: Update.
* libmu_sieve/comparator.c: Rewrite using new registry functions.
* libmu_sieve/load.c (mu_sieve_load_ext): Return module handle.
(mu_sieve_unload_ext): New function.
* libmu_sieve/mem.c (mu_sieve_free): Gracefully handle NULL argument.
(mu_i_sv_id_canon,mu_i_sv_id_num,mu_i_sv_id_str): New functions.
* libmu_sieve/prog.c (mu_i_sv_locus): Store index of the file name in
the id space, instead of pointer to the name itself.
* libmu_sieve/require.c (mu_sieve_require): Rewrite.
* libmu_sieve/runtime.c (_mu_i_sv_instr_source): Expect ID index
as argument.
(_mu_i_sv_instr_push)
(_mu_i_sv_instr_pop): Remove unused instructions.
* libmu_sieve/sieve.l (file_names): Remove. Use mu_sieve_machine
idspace instead.
* libmu_sieve/sieve.y (mu_sieve_machine_clone)
(mu_sieve_machine_dup): Rewrite.
(mu_sieve_machine_destroy): Free idspace and registry
* examples/numaddr.c: Reflect changes.
* libmu_sieve/extensions/editheader.c: Likewise.
* libmu_sieve/extensions/list.c: Likewise.
* libmu_sieve/extensions/moderator.c: Likewise.
* libmu_sieve/extensions/pipe.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* libmu_sieve/extensions/timestamp.c: Likewise.
* libmu_sieve/extensions/vacation.c: Likewise.
|
|
|
|
* include/mailutils/sieve.h (SVT_IDENT): Remove.
* libmu_sieve/comparator.c (mu_sieve_match_part_checker): Remove
unused variable.
* libmu_sieve/mem.c (mu_sieve_reclaim_list): Remove function.
* libmu_sieve/sieve.y: Remove leftover uses of SVT_IDENT.
* libmu_sieve/util.c: Likewise.
* libmu_sieve/sieve-priv.h: Remove useless prototypes.
|
|
Strings are allocated in a per-machine string space. String and
argument lists form contiguous arrays of structures. Regular ex-
pressions are compiled when they are needed. Compiled expressions
are cached for eventual reuse.
|
|
* include/mailutils/sieve.h (mu_sieve_alloc)
(mu_sieve_palloc,mu_sieve_prealloc)
(mu_sieve_pfree,mu_sieve_pstrdup): Remove.
(mu_sieve_mstrdup,mu_sieve_mrealloc)
(mu_sieve_mfree): Remove.
(mu_sieve_reclaim_t): New typedef.
(mu_sieve_calloc,mu_sieve_strdup)
(mu_sieve_realloc)
(mu_sieve_reclaim_default,mu_sieve_reclaim_list)
(mu_sieve_reclaim_value,mu_sieve_reclaim_tag): New functions
(mu_sieve_value_create): Change prototype (take mu_sieve_machine_t
as first argument)
* libmu_sieve/mem.c: New file.
* libmu_sieve/Makefile.am: Add new file.
* libmu_sieve/comparator.c: Use new allocation functions.
* libmu_sieve/prog.c: Likewise.
* libmu_sieve/register.c: Likewise.
* libmu_sieve/sieve.l: Likewise.
* libmu_sieve/sieve.y: Likewise.
* libmu_sieve/util.c: Likewise.
* doc/texinfo/libmu_sieve.texi: Update (needs revision).
|
|
* include/mailutils/list.h (mu_list_remove)
(mu_list_remove_nd): Second arg is const.
* libmailutils/list/remove.c: Likewise.
|
|
|
|
* include/mailutils/sieve.h (mu_sieve_handler_t): Change signature:
remove args and tags arguments, they are contained in struct
mu_sieve_machine now.
(mu_sieve_get_comparator)
(mu_sieve_relcmpn_t): Change signature.
(mu_sieve_tag_lookup,mu_sieve_tag_lookup_untyped): Remove
(mu_sieve_get_tag,mu_sieve_get_tag_untyped): New protos.
(mu_sieve_value_get_optional): Replace by
mu_sieve_get_arg_optional.
(mu_sieve_value_get_untyped): Replace by
mu_sieve_get_arg_untyped.
(mu_sieve_value_get): Replace by
mu_sieve_get_arg.
All uses changed.
* libmu_sieve/sieve-priv.h (mu_sieve_machine): New members:
arg_list and tag_list
* libmu_sieve/runtime.c (instr_run): Set up identifier, arg_list,
and tag_list in mu_sieve_machine_t before calling the handler.
Reset them afterward.
* libmu_sieve/util.c (mu_sieve_value_get_optional): Replace by
mu_sieve_get_arg_optional.
(mu_sieve_value_get_untyped): Replace by
mu_sieve_get_arg_untyped.
(mu_sieve_value_get): Replace by
mu_sieve_get_arg.
(mu_sieve_tag_lookup): Replace by mu_sieve_get_tag
(mu_sieve_tag_lookup_untyped): Replace by
mu_sieve_get_tag_untyped
|
|
* include/mailutils/sieve.h (mu_sieve_data_type): Remove SVT_VALUE_LIST.
(mu_sieve_value_storage): Named union for use in mu_sieve_value_t; remove
the tag field.
(mu_sieve_tag_lookup): Change prototype.
(mu_sieve_value_get): Change prototype.
(mu_sieve_value_get_optional)
(mu_sieve_value_get_untyped): New functions.
(mu_sieve_arg_error): Removed proto.
* libmu_sieve/sieve.y: Remove SVT_VALUE_LIST support.
* libmu_sieve/util.c (mu_sieve_value_create)
(mu_sieve_type_str,mu_sieve_vlist_do): Remove SVT_VALUE_LIST support.
(mu_sieve_value_get): Rewrite.
(mu_sieve_value_get_untyped)
(mu_sieve_value_get_optional): New functions.
(mu_sieve_arg_error): Remove.
(mu_sieve_tag_lookup): Rewrite.
(mu_sieve_tag_lookup_untyped): New function.
* doc/texinfo/libmu_sieve.texi: Update.
libmu_sieve/tests.c
libmu_sieve/actions.c
libmu_sieve/extensions/editheader.c
libmu_sieve/extensions/list.c
libmu_sieve/extensions/moderator.c
libmu_sieve/extensions/pipe.c
libmu_sieve/extensions/spamd.c
libmu_sieve/extensions/timestamp.c
libmu_sieve/extensions/vacation.c
libmu_sieve/relational.c
examples/numaddr.c
|
|
* libmailutils/list/sort.c (mu_list_sort_r): New function.
* include/mailutils/list.h: Provide prototype.
|
|
* libmu_sieve/encoded.c: New file.
* libmu_sieve/strexp.c: New file.
* libmu_sieve/Makefile.am: Add new files.
* libmu_sieve/require.c (mu_sieve_require): Understand "encoded-character".
* libmu_sieve/sieve-priv.h (mu_i_sv_interp_t): New typedef.
(mu_i_sv_expand_encoded_char): New proto.
(mu_sieve_require_encoded_character): New proto.
* libmu_sieve/sieve.l (string): Rewrite via line_.* functions. This
fixes memory leaks on mu_sieve_machine_destroy.
(line_finish): Expand ${} sequences before returning.
(mu_sieve_require_encoded_character): New function.
* sieve/tests/enc-char.at: New file.
* sieve/tests/Makefile.am: Add enc-char.at
* sieve/tests/testsuite.at: Likewise.
|
|
* include/mailutils/sieve.h (mu_sieve_action_log_t): Change proto.
* lib/sieve.c (_sieve_action_log): Rewrite.
* libmu_sieve/util.c (mu_sieve_log_action): Rewrite.
* python/libmu_py/sieve.c (_sieve_action_printer): Rewrite.
* sieve/sieve.c (_sieve_action_log): Rewrite.
|
|
* include/mailutils/sieve.h (MU_SIEVE_DEBUG_TRACE)
(MU_SIEVE_DEBUG_INSTR,MU_SIEVE_DEBUG_DISAS)
(MU_SIEVE_DRY_RUN): Remove.
(mu_sieve_machine_init_ex): Remove proto.
(mu_sieve_set_dbg_stream,mu_sieve_get_dbg_stream)
(mu_sieve_stream_save)
(mu_sieve_stream_restore): New protos.
* libmu_sieve/runtime.c (INSTR_DISASS,INSTR_DEBUG): Reimplement.
* libmu_sieve/sieve-priv.h (MU_SV_SAVED_ERR_STATE)
(MU_SV_SAVED_DBG_STATE,MU_SV_SAVED_STATE): New bitflags.
(mu_sieve_state_disass): New constant.
(mu_sieve_machine)<state_flags, err_mode>
<err_locus,dbg_mode,dbg_locus>: New members.
<dbgstream>: New member.
* libmu_sieve/sieve.y (mu_sieve_machine_init_ex): Remove.
(mu_sieve_machine_dup, mu_sieve_machine_inherit): Fix.
(mu_sieve_set_dbg_stream)
(mu_sieve_get_dbg_stream): New functions.
(mu_sieve_machine_destroy): Destroy dbgstream.
(with_machine): Preserve stream state (mode & locus).
* libmu_sieve/util.c (mu_i_sv_debug,mu_i_sv_debug_command): Use ioctl
instead of format strings.
(mu_sieve_stream_save, mu_sieve_stream_restore): New functions.
* python/libmu_py/sieve.c (api_sieve_machine_init): Use
mu_sieve_machine_init.
* sieve/sieve.c: Improve help output.
(main): Dump disassembled code to standard output.
|
|
* bootstrap.conf (mu_sieve_debug, mu_sieve_trace): Remove.
* include/mailutils/sieve.h (mu_sieve_debug): Remove.
* examples/numaddr.c: Remove calls to mu_sieve_trace.
* libmu_sieve/extensions/list.c: Likewise.
* libmu_sieve/extensions/moderator.c: Likewise.
* libmu_sieve/extensions/pipe.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* libmu_sieve/extensions/timestamp.c: Likewise.
* libmu_sieve/extensions/vacation.c: Likewise.
* libmu_sieve/tests.c: Likewise.
* libmu_sieve/runtime.c: Use new debugging/tracing functions.
* libmu_sieve/sieve-priv.h (mu_i_sv_debug, mu_i_sv_trace)
(mu_i_sv_debug_command)
(mu_i_sv_argf, mu_i_sv_valf): New prototypes.
* libmu_sieve/sieve.y (mu_i_sv_valf, mu_i_sv_argf): New functions.
* libmu_sieve/util.c (mu_sieve_debug): Remove.
(mu_i_sv_print_value_list): Remove.
(mu_i_sv_print_tag_list): Remove.
(mu_sieve_trace): Remove.
(mu_i_sv_tagf): New function.
(mu_i_sv_debug): New function.
(mu_i_sv_trace): New function.
(mu_i_sv_debug_command): New function.
|
|
Instead of keeping individual debug flags for each Sieve machine,
use global debugging mechanism, category "sieve". The following
levels are defined:
trace1 - print parse tree before optimization
trace2 - print parse tree after optimization
trace3 - print parser traces
trace4 - print tests and actions being executed
trace8 - print disassembled code, don't run
trace9 - print each Sieve instruction being executed
* include/mailutils/sieve.h (mu_sieve_get_debug_level)
(mu_sieve_set_debug_level): Remove.
(mu_sieve_is_dry_run,mu_sieve_set_dry_run
* lib/script.c (mu_script_debug_flags): Redo.
* lib/sieve.c (sieve_init): Remove call to obsoleted
mu_sieve_set_debug_level.
* examples/numaddr.c: Use mu_sieve_trace
* libmu_sieve/extensions/list.c: Likewise.
* libmu_sieve/extensions/moderator.c: Likewise.
* libmu_sieve/extensions/pipe.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* libmu_sieve/extensions/timestamp.c: Likewise.
* libmu_sieve/extensions/vacation.c: Likewise.
* libmu_sieve/tests.c: Likewise.
* libmu_sieve/runtime.c (INSTR_DEBUG,INSTR_DISASS): Rewrite.
(mu_sieve_get_debug_level): Remove.
(mu_sieve_is_dry_run_: Rewrite.
(mu_sieve_set_dry_run): New function.
(mu_sieve_disass): Rewrite.
* libmu_sieve/sieve-priv.h (mu_sieve_machine) <debug_level>: Remove.
<dry_run>: New field.
* libmu_sieve/sieve.y (mu_sieve_set_debug_level): Remove.
* libmu_sieve/util.c (mu_sieve_trace): New function.
* sieve/sieve.c: Rewrite support for --dry-run and --debug.
* sieve/tests/ext.at: Use --libdir-prefix instead of -L
|
|
Three objectives:
1. Simplify code.
2. Produce optimized sieve code.
3. Improve error reporting.
4. Prepare for further extensions
* include/mailutils/sieve.h (mu_sieve_tag_checker_t): Change
signature (take mu_sieve_machine_t as the first arg). All
uses changed.
(mu_sieve_require): Likewise.
(mu_sieve_yydebug): Remove global.
* libmu_sieve/sieve-priv.h (mu_locus_range): New struct.
(YYLTYPE): New define
(mu_sieve_state): New enum.
(mu_sieve_machine): New members: string_pool, state.
(mu_sieve_node_type): New enum.
(mu_sieve_node): New struct.
Remove unused prototypes.
* libmu_sieve/sieve.l: Keep track of code locations. Use opool
for constructing string values.
* libmu_sieve/sieve.y: Rewrite. First build the parse tree. Then
optimize it. Finally, generate code.
* libmu_sieve/tests.c (sieve_test_true,sieve_test_false): Remove.
True and false tests are always optimized away.
* libmu_sieve/util.c (mu_sv_compile_error): Remove.
* libmu_sieve/actions.c: Use mu_diag_at_locus to report errors
and mu_i_sv_error to mark sieve machine as being in error state.
* libmu_sieve/comparator.c: Likewise.
* libmu_sieve/prog.c (mu_sv_code): Replace with mu_i_sv_code.
(mu_sv_code_instr,mu_sv_code_handler)
(mu_sv_code_list,mu_sv_code_number)
(mu_sv_code_string,mu_sv_code_source)
(mu_sv_code_line,mu_sv_change_source)
(mu_sv_code_action,mu_sv_code_test)
(mu_sv_code_anyof,mu_sv_code_allof): Remove.
(mu_i_sv_locus,mu_i_sv_code_action)
(mu_i_sv_code_test): New function.
(mu_sv_code_command): Replace with a static function.
* libmu_sieve/require.c (mu_sieve_require): Take ptr to machine
as the first arg.
* libmu_sieve/runtime.c (mu_sieve_mailbox)
(mu_sieve_message): Refuse to run if the machine is in error state.
* sieve/sieve.c: Update.
* sieve/tests/i-numeric.at: Update expected error message.
* libmailutils/diag/diag.c (mu_diag_at_locus): Don't pass locus
if mu_file is NULL.
* libmu_auth/ldap.c (_mu_entry_to_auth_data): Remove leftover
mu_error.
|
|
This was accidentally broken by commit eea2c4aa.
* include/mailutils/mailbox.h (mu_mailbox_expand_name): New proto.
* libmailutils/mailbox/mbx_default.c (mu_mailbox_expand_name): New function.
(mu_mailbox_create_default): Use it.
(mu_set_folder_directory): Accept NULL as argument.
(mu_folder_directory): Reset default value after assiging it. This way
the folder directory still defaults to the same value as earlier, but
can be reset to NULL, if so desired.
(plus_expand): Return a copy of the input string if folder is NULL.
* mail/copy.c (append_to_mailbox): Use mu_mailbox_create, as the mailbox
name has already been expanded.
* mail/file.c (mail_expand_name): Use mu_mailbox_expand_name.
(mail_file): Use mu_mailbox_create, as the mailbox
name has already been expanded.
* mail/mailvar.c (mailvar_cmd): New enum.
(mailvar_symbol) <handler>: Change signature and return type.
(mailvar_set): Rewrite. Take care not to modify the variable
if the handler (if any) returns non-null or if the memory can't
be allocated.
(set_folder): Handler for the "folder" variable.
* mail/tests/copy01.at: New testcase.
* mail/tests/copy02.at: New testcase.
* mail/tests/copy03.at: New testcase.
* mail/tests/copy04.at: New testcase.
* mail/tests/Makefile.am: Add new tests.
* mail/tests/testsuite.at (MUT_MAIL_CMD): Set MAILRC to /dev/null.
Add new tests.
|
|
The field-map statement (.ldap.field-map & .sql.field-map) takes a
list of mappings as argument. For compatibility and for internal purposes,
a string is still allowed.
* doc/texinfo/programs.texi: Update.
* include/mailutils/cfg.h (mu_cfg_field_map): New proto.
* include/mailutils/sql.h (mu_password_type): Rename.
(mu_sql_module_config) <positional>: Remove.
(mu_sql_decode_password_type): Remove prototype.
* libmailutils/base/mutil.c (mu_sql_decode_password_type): Remove
function.
* libmailutils/cfg/driver.c (mu_cfg_field_map): New function.
* libmu_auth/ldap.c (cb_field_map): Use mu_cfg_field_map.
(module_init): Fix default filter.
* libmu_auth/sql.c (cb_field_map): Use mu_cfg_field_map.
(mu_sql_param): Rename "password-type" statement to "password-encryption".
Remove the "positional" statement.
|
|
* include/mailutils/cfg.h (mu_cfg_parse_hints):
Rename site_rcfile to site_file, custom_rcfile to custom_file.
Remove append_tree and data fields.
(MU_PARSE_CONFIG_GLOBAL,MU_CFG_PARSE_PROGRAM): Remove.
(MU_PARSE_CONFIG_VERBOSE): Rename to MU_CF_VERBOSE.
(MU_PARSE_CONFIG_DUMP): Rename to MU_CF_DUMP.
(MU_CFG_FMT_LOCUS): Rename to MU_CF_FMT_LOCUS.
(MU_CFG_FMT_VALUE_ONLY): Rename to MU_CF_FMT_VALUE_ONLY.
(MU_CFG_FMT_PARAM_PATH): Rename to MU_CF_FMT_PARAM_PATH.
(MU_CFG_COMPATIBILITY,MU_CFG_DEPRECATED): Remove.
(mu_parse_config, mu_get_config): Remove deprecated functions.
* libmailutils/cli/cli.c (mu_general_help_text): New global.
(app_data): New struct.
(init_options): Construct configuration option group depending on
which configuration files are in use.
(mu_cli_ext): Don't use per-user configuration files for servers.
Pass pointer to app_data structure as po.po_data
(mu_cli): Set MU_CFHINT_PER_USER_FILE flag by default.
* mail/testsuite/lib/mail.exp: Rewrite invocation of the mu_init command.
* include/mailutils/cli.h (mu_cli_setup) <server>: New field.
* comsat/comsat.c (cli): Mark as server.
(main): Bugfix: pass pointer to server to mu_cli.
* imap4d/imap4d.c (cli): Mark as server.
* pop3d/pop3d.c: Likewise.
* comsat/tests/testsuite.at: Use the --no-site-config
option.
* imap4d/tests/testsuite.at: Likewise.
* libmailutils/cfg/driver.c: Update.
* libmailutils/cfg/format.c: Update.
* libmailutils/cfg/lexer.l: Update.
* libmailutils/cfg/parser.y: Update.
* mu/acl.c: Update.
* pop3d/testsuite/lib/pop3d.exp: Likewise.
* mu/mu.c: Don't read configuration files.
* mu/query.c: Fix args_doc
* testsuite/lib/mailutils.exp (mu_init): Change option handling.
Set --no-config option by default.
|
|
* configure.ac: Version 2.99.993
* NEWS: Update.
* include/mailutils/opool.h (MU_OPOOL_DEFAULT)
(MU_OPOOL_ENOMEMABRT): New defines.
(mu_opool_create): Change meaning of the 2nd argument. All uses updated.
(mu_opool_free, mu_opool_dup): New proto.
* libmailutils/base/opool.c (_mu_opool) <memerr>: Replace with flags.
<head,tail,free>: Rename.
(mu_opool_free, mu_opool_dup): New functions.
(mu_opool_head): Bugfix.
|
|
|
|
* include/mailutils/opt.h (MU_PARSEOPT_SPECIAL_ARGS): New flag.
(mu_parseopt)<po_special_args>: New field.
* libmailutils/opt/help.c (option_summary)
(print_program_usage): Print po_special_args, if defined.
* libmailutils/opt/opt.c (parseopt_init): Initialize po_special_args
unless MU_PARSEOPT_SPECIAL_ARGS is set.
MH: Advertise [+FOLDER] special argument if the -folder option is declared.
* mh/mh_getopt.c (folder_option): Bugfix: -folder takes argument.
(mh_getopt): Set po_special_args if the -folder option is declared.
* mh/inc.c: Fix arg_doc.
* mh/mhpath.c: Likewise.
* mh/repl.c: Likewise.
* mh/rmf.c: Likewise.
* mh/rmm.c: Likewise.
* mh/scan.c: Likewise.
* mh/show.c: Likewise.
|
|
* include/mailutils/cfg.h (MU_CFG_APPEND_TREE): New flag.
* include/mailutils/cli.h (mu_version_copyright): New extern.
(mu_cli_ext): New proto.
* libmailutils/cfg/parser.y (mu_cfg_parse_config): Check for
MU_CFG_APPEND_TREE bit set before accessing hints->append_tree.
* libmailutils/cli/cli.c (param_set): Likewise.
(mu_cli_ext): New function.
(mu_cli): Rewrite as an entry point to mu_cli_ext.
* comsat/comsat.c: Remove inclusion of obsolete headers.
* mu/help.c: Likewise.
* pop3d/extra.c: Likewise.
|
|
* include/mailutils/cli.h (mu_version_func): Rename to mu_version_hook.
* libmailutils/cli/cli.c: Likewise.
* pop3d/popauth.c: Likewise.
* mh/mh_getopt.c: (mh_getopt): Initialize NLS support. Install
standard version hook (needed for mh-e autodetect feature).
* mh/ali.c: Update prog_doc. Remove NLS initialization.
* mh/anno.c: Likewise
* mh/burst.c: Likewise
* mh/comp.c: Likewise
* mh/fmtcheck.c: Likewise
* mh/folder.c: Likewise
* mh/forw.c: Likewise
* mh/inc.c: Likewise
* mh/install-mh.c: Likewise
* mh/mark.c: Likewise
* mh/mhl.c: Likewise
* mh/mhn.c: Likewise
* mh/mhparam.c: Likewise
* mh/mhpath.c: Likewise
* mh/mhseq.c: Likewise
* mh/msgchk.c: Likewise
* mh/pick.c: Likewise
* mh/prompter.c: Likewise
* mh/refile.c: Likewise
* mh/repl.c: Likewise
* mh/rmf.c: Likewise
* mh/rmm.c: Likewise
* mh/scan.c: Likewise
* mh/send.c: Likewise
* mh/show.c: Likewise
* mh/sortm.c: Likewise
* mh/whatnow.c: Likewise
* mh/whom.c: Likewise
|
|
This finishes work started at commit bc73fc65.
* include/mailutils/opt.h (mu_option_cache) <cache_arg>: Made const.
* libmailutils/opt/opt.c (mu_option_cache_destroy): Don't free cache_arg.
* doc/texinfo/mu-mh.texi: Update.
* po/POTFILES.in: Remove obsolete files.
* mh/tests/refile.at: Don't use double-dash options.
* mh/mh_getopt.c (mh_opt_set_folder): New function.
* mh/mh_getopt.h: Likewise.
* mh/mhn.c: Convert to mh_getopt.
* mh/mhparam.c: Likewise.
* mh/mhpath.c: Likewise.
* mh/mhseq.c: Likewise.
* mh/msgchk.c: Likewise.
* mh/pick.c: Likewise.
* mh/pick.h: Likewise.
* mh/pick.y: Likewise.
* mh/prompter.c: Likewise.
* mh/refile.c: Likewise.
* mh/repl.c: Likewise.
* mh/rmf.c: Likewise.
* mh/rmm.c: Likewise.
* mh/scan.c: Likewise.
* mh/send.c: Likewise.
* mh/show.c: Likewise.
* mh/sortm.c: Likewise.
* mh/whatnow.c: Likewise.
* mh/whom.c: Likewise.
|
|
MH utilities will use only single-dash long options.
* include/mailutils/opt.h (mu_option) <opt_default>: New member.
* libmailutils/opt/opt.c (find_long_option): Improve detection
of ambiguous options.
(mu_option_set_value): Use default value (opt_default), if
supplied.
* mh/mh_argp.c: Delete.
* mh/Makefile.am (libmh_a_SOURCES): Remove mh_argp.c
* mh/mh_getopt.c: Rewrite from scratch using mailutils/opt
* mh/mh_getopt.h: Likewise.
* mh/mh.h: Add missing includes
(mh_read_formfile, mh_alias_read): Change signatures.
* mh/mh_alias.l (mh_alias_read): Name is const
* mh/mh_init.c (mh_read_formfile): Name is const.
* mh/ali.c: Convert to mh_getopt.
* mh/anno.c: Likewise.
* mh/burst.c: Likewise.
* mh/comp.c: Likewise.
* mh/fmtcheck.c: Likewise.
* mh/folder.c: Likewise.
* mh/forw.c: Likewise.
* mh/inc.c: Likewise.
* mh/install-mh.c: Likewise.
* mh/mark.c: Likewise.
* mh/mhl.c: Likewise.
* mh/scan.c: Likewise.
* mh/tests/burst.at: Don't use double-dash options
* mh/tests/folder.at: Likewise.
|
|
options.
* include/mailutils/opt.h (MU_PARSEOPT_SINGLE_DASH)
(MU_PARSEOPT_NEGATION): New flags.
(mu_parseopt) <po_negation, po_long_opt_start>: New fields.
(mu_option_describe_options): Change signature.
* libmailutils/opt/help.c (init_usage_vars): Initialize
long_opt_col depending on the value of MU_PARSEOPT_SINGLE_DASH
bit.
(print_option): Handle single-dash long options and boolean
options with negations.
(option_summary): Likewise.
(mu_option_describe_options): Take struct mu_parseopt *
as its second parameter.
* libmailutils/opt/opt.c (find_long_option): Handle
boolean options with negations. Return also a pointer
to the mu_option describing the originally used option
(as opposed to the canonical one returned by the function).
(parse): Handle single-dash long options.
(parseopt_init): Initialize po_negation and po_long_opt_start.
* libmailutils/tests/parseopt.c (parseopt_param): Handle
MU_PARSEOPT_SINGLE_DASH and MU_PARSEOPT_NEGATION.
|
|
* Makefile.am: Remove libmu_argp and libmu_cfg
* configure.ac: Likewise.
* libmu_argp/: Remove.
* libmu_cfg/: Remove.
* include/mailutils/Makefile.am (pkginclude_HEADERS): Remove gocs.h,
libargp.h, libcfg.h
* frm/frm.c: Register tls auth module
* frm/from.c: Likewise.
* maidag/maidag.c: Likewise.
* mail/mail.c: Likewise.
* messages/messages.c: Likewise.
* movemail/movemail.c: Likewise.
* readmsg/readmsg.c: Likewise.
* sieve/sieve.c: Likewise.
* frm/frm.h: Remove obsolete includes
* imap4d/Makefile.am: Update.
* imap4d/imap4d.c: Use mu_cli for command line and configuration
parsing.
* imap4d/imap4d.h: Update.
* include/mailutils/gocs.h: Remove.
* libmailutils/cfg/gocs.c: Remove.
* libmailutils/cfg/Makefile.am: Remove gocs.c
* include/mailutils/cli.h (mu_cli_capa_apply): Rename to
mu_cli_capa_extend_settings
(mu_cli_setup) <inorder, prog_doc_hook>: New fields.
* include/mailutils/daemon.h: Remove obsolete includes.
* include/mailutils/gsasl.h: Likewise.
* include/mailutils/mailutils.h: Update.
* include/mailutils/mu_auth.h (mu_auth_mode): New enum
(mu_auth_module): Redo structure.
* include/mailutils/opt.h (mu_parseopt) <po_prog_doc_hook>: New field.
* include/mailutils/sql.h (mu_sql_module_config): New extern.
(mu_sql_interface_index): Change proto.
* libmailutils/auth/mu_auth.c: Rewrite.
* libmailutils/auth/system.c (mu_auth_system_module): Update structure
* libmailutils/cli/capa.c (mu_cli_capa_apply): Rename to
mu_cli_capa_extend_settings
* libmailutils/cli/cli.c: Extend settings from auth modules as well.
* libmailutils/opt/help.c (mu_program_help): Invoke po_prog_doc_hook
if defined.
* libmailutils/opt/opt.c (parseopt_init): Check the
MU_PARSEOPT_PROG_DOC_HOOK flag.
(find_long_option): Fix recognition of ambiguous options in case
of exact match.
* libmu_auth/gsasl.c: Add configuration.
* libmu_auth/ldap.c: Likewise.
* libmu_auth/pam.c: Likewise.
* libmu_auth/radius.c: Likewise.
* libmu_auth/sql.c: Likewise.
* libmu_auth/tls.c: Likewise.
* libmu_auth/virtual.c: Likewise.
* mu/Makefile.am: Update.
* mu/mu.c: Rewrite using mu_cli
* mu/mu.h: Likewise.
* mu/acl.c: Likewise.
* mu/cflags.c: Likewise.
* mu/dbm.c: Likewise.
* mu/dispatch.c: Likewise.
* mu/filter.c: Likewise.
* mu/flt2047.c: Likewise.
* mu/getans.c: Likewise.
* mu/getarg.c: Likewise.
* mu/getyn.c: Likewise.
* mu/help.c: Likewise.
* mu/imap.c: Likewise.
* mu/info.c: Likewise.
* mu/ldflags.c: Likewise.
* mu/logger.c: Likewise.
* mu/pop.c: Likewise.
* mu/query.c: Likewise.
* mu/send.c: Likewise.
* mu/shell.c: Likewise.
* mu/smtp.c: Likewise.
* mu/util.c: Likewise.
* mu/verbose.c: Likewise.
* mu/wicket.c: Likewise.
* pop3d/Makefile.am: Update.
* pop3d/pop3d.c: Convert to mu_cli interface.
* pop3d/pop3d.h: Likewise.
* sql/sql.c (mu_sql_interface_index): Change argument qualifiers.
|
|
|
|
Alternative invocations follow the main one, each on a separate line,
preceded by " or: ".
* include/mailutils/cli.h (mu_cli_setup) <prog_alt_args>: New member.
* include/mailutils/opt.h (mu_parseopt) <po_prog_args>: Change type.
(mu_program_usage): Change signature.
* include/mailutils/stream.h (MU_IOCTL_WORDWRAP_GET_OFFSET): Rename to
MU_IOCTL_WORDWRAP_GET_COLUMN. All uses changed.
* libmailutils/cli/cli.c (mu_cli): Construct po.po_prog_args from
prog_args and prog_alt_args.
* libmailutils/opt/help.c (move_margin): Remove.
(print_program_usage): New static function.
(mu_program_usage): Second argument instructs how to display options.
Main work is done by print_program_usage.
(mu_program_help): Call print_program_usage.
* libmailutils/opt/opt.c: Update.
* libmailutils/stream/wordwrap.c (set_margin): Avoid unnecessary flushes.
* libmailutils/tests/parseopt.c (MU_PARSEOPT_PROG_ARGS): Alternative
argument sets are separated by the pipe sign.
* libmailutils/tests/Makefile.am: Add new testcase.
* libmailutils/tests/testsuite.at: Likewise.
* libmailutils/tests/parseopt_help04.at: Add MU_PARSEOPT_PROG_ARGS
to keywords.
* libmailutils/tests/parseopt_help12.at: New file.
* libmailutils/tests/tcli.c (cli): Add alternative arguments.
* dotlock/dotlock.c: Update.
* mimeview/mimeview.c: Likewise.
* sieve/sieve.c: Likewise.
|
|
* include/mailutils/stream.h (MU_IOCTL_WORDWRAP_SET_NEXT_MARGIN)
(MU_IOCTL_WORDWRAP_GET_OFFSET): New opcodes.
* libmailutils/stream/wordwrap.c (_wordwrap_flush_line): Replace
whitespace-only lines with single newline on output.
(_wordwrap_flush): Fix condition.
(set_margin): Bugfix.
(_wordwrap_ctl): Handle new opcodes.
* include/mailutils/cli.h (mu_version_func): Change signature.
* include/mailutils/opt.h (mu_parseopt) <po_help_hook>
<po_version_hook>: Change signature.
(mu_parseopt_fmt_text): Remove.
(mu_option_describe_options, mu_program_help)
(mu_program_usage): Change signature.
(mu_program_version): New prototype.
* libmailutils/cli/cli.c (mu_version_func): Take mu_stream_t as
2nd argument. Use mu_stream_printf for output.
(extra_help_hook): Likewise.
* libmailutils/opt/help.c: Rewrite using wordwrap streams.
* libmailutils/opt/opt.c (fn_help, fn_usage, fn_version): Update.
* libmailutils/tests/parseopt.c (version_hook): Write to mu_stream_t.
* libmailutils/tests/parseopt_help00.at: Fix expected output.
* libmailutils/tests/parseopt_help01.at: Likewise.
* libmailutils/tests/parseopt_help02.at: Likewise.
* libmailutils/tests/parseopt_help03.at: Likewise.
* libmailutils/tests/parseopt_help04.at: Likewise.
* libmailutils/tests/parseopt_help05.at: Likewise.
* libmailutils/tests/parseopt_help06.at: Likewise.
* libmailutils/tests/parseopt_help07.at: Likewise.
* libmailutils/tests/parseopt_help08.at: Likewise.
* libmailutils/tests/parseopt_help09.at: Likewise.
* libmailutils/tests/parseopt_help10.at: Likewise.
* libmailutils/tests/parseopt_help11.at: Likewise.
|
|
* include/mailutils/stream.h (MU_IOCTL_WORDWRAPSTREAM): New ioctl.
(mu_wordwrap_stream_create): New proto.
* libmailutils/stream/Makefile.am: add wordwrap.c
* libmailutils/stream/wordwrap.c: New file.
* libmailutils/tests/Makefile.am: Add new testcases.
* libmailutils/tests/testsuite.at: Include new testcases.
* libmailutils/tests/wordwrap.c: New file.
* libmailutils/tests/wordwrap00.at: New file.
* libmailutils/tests/wordwrap01.at: New file.
* libmailutils/tests/wordwrap02.at: New file.
* libmailutils/tests/wordwrap03.at: New file.
|
|
* dotlock/dotlock.c (force): Change type to unsigned.
Provide default value for --force.
(cli): Set exit codes and extra docstring.
* include/mailutils/cli.h (mu_cli_setup): New members: prog_extra_doc,
ex_usage, ex_config.
* include/mailutils/opt.h (mu_parseopt_getcolumn)
(mu_parseopt_fmt_text): New prototypes.
* libmailutils/cli/cli.c (extra_help_hook): New hook.
(mu_cli): Set up customized exit codes.
Pass pointer to struct mu_cli_setup in hints.data.
All uses changed.
Set up help hook if setup->prog_extra_doc is defined.
* libmailutils/opt/help.c (mu_parseopt_getcolumn): New
function.
(print_option_descr): Honor explicit newlines.
(mu_parseopt_fmt_text): New function.
* mimeview/mimeview.c (cli): Provide extra docs.
* sieve/sieve.c: Likewise.
|
|
* configure.ac (MU_APP_NEW_LIBRARIES): New temp variable.
* include/mailutils/sieve.h (mu_cli_capa_sieve): New extern.
* include/mailutils/tls.h (mu_cli_capa_tls): New extern.
* libmailutils/cli/cli.c: Minor change.
* libmailutils/cli/stdcapa.c: Add "auth" capability.
* libmu_auth/tls.c: provide mu_cli_capa_tls
* dotlock/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* dotlock/dotlock.c
* frm/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* frm/frm.h: Fix includes.
* frm/frm.c: Use mu_cli for optionr&config parsing.
* frm/from.c: Likewise.
* messages/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* messages/messages.c: Use mu_cli for optionr&config parsing.
* mimeview/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* mimeview/mimeview.c: Use mu_cli for optionr&config parsing.
* movemail/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* movemail/movemail.c: Use mu_cli for optionr&config parsing.
* readmsg/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* readmsg/readmsg.c: Use mu_cli for optionr&config parsing.
* sieve/Makefile.am: Link with MU_APP_NEW_LIBRARIES
* sieve/sieve.c: Use mu_cli for optionr&config parsing.
|
|
The new API is to replace libmu_cfg and libmu_argp. A smooth transition
is scheduled, during which the two APIs will coexist,
* configure.ac: Build libmailutils/cli/Makefile
* include/mailutils/cli.h: New file.
* include/mailutils/Makefile.am: Add cli.h
* libmailutils/cli/Makefile.am: New file.
* libmailutils/cli/capa.c: New file.
* libmailutils/cli/cli.c: New file.
* libmailutils/cli/stdcapa.c: New file.
* libmailutils/Makefile.am (SUBDIRS): Add cli.
* include/mailutils/cfg.h (mu_cfg_parse_hints): New members: append_tree
and data.
(MU_PARSE_CONFIG_LINT): New flag.
* include/mailutils/diag.h (mu_program_name)
(mu_full_program_name): Remove const qualifier.
* include/mailutils/locker.h (mu_locker_set_default_external_program):
Argument is const.
* libmailutils/base/locker.c: Likewise.
* include/mailutils/opt.h (mu_progname, mu_absprogname): Replace
with mu_program_name and mu_full_program_name.
(mu_set_progname): Rename to mu_set_program_name.
(mu_parseopt) <po_data>: Change type to void *.
(po_help_hook, po_version_hook): Change signatures.
(mu_parseopt_error): New function.
* libmailutils/opt/progname.c (mu_progname, mu_absprogname): Replace
with mu_program_name and mu_full_program_name.
(mu_set_progname): Rename to mu_set_program_name.
* libmailutils/opt/help.c: Minor changes
* libmailutils/opt/opt.c (parse_error): Rename to mu_parse_error (extern).
(next_opt): Fix permutations.
* libmailutils/tests/parseopt.c: Reflect changes.
* libmailutils/tests/parseopt17.at: Improve test case
* libmailutils/tests/parseopt_help05.at: Reflect changes.
* libmailutils/tests/parseopt_help07.at: Reflect changes.
* include/mailutils/stdstream.h (mu_program_name): Remove qualifier.
* libmailutils/cfg/driver.c (mu_cfg_tree_reduce): Remove useless condition
* libmailutils/cfg/lexer.l (mu_cfg_parse_file): Additional info messages.
* libmailutils/cfg/parser.y (mu_cfg_parse_config): Join in
the append_tree.
* libmailutils/diag/diag.c (mu_program_name, mu_full_program_name)
(mu_set_program_name): Remove. Declared elsewhere.
* libmu_sieve/conf.c: Add new configuration code. Mark old text for
removal.
* libmailutils/tests/tcli.c: New program.
* libmailutils/tests/Makefile.am: Add tcli.c
|
|
* include/mailutils/opt.h (MU_PARSEOPT_EXTRA_INFO)
(MU_PARSEOPT_EXIT_ERROR): New flags.
(struct mu_parseopt) <po_extra_info>: New member.
<po_exit_error>: New member.
* libmailutils/opt/help.c: Fix help output formatting.
Implement support for ARGP_HELP_FMT envvar.
* libmailutils/opt/opt.c (add_option_cache): Honor
MU_PARSEOPT_IMMEDIATE.
(parseopt_init): Initialize each member separately.
* libmailutils/tests/parseopt.c: Rewrite envvar handling.
* libmailutils/tests/Makefile.am: Add new tests.
* libmailutils/tests/testsuite.at (PARSEOPT_DEFAULT): New define.
* libmailutils/tests/parseopt00.at: Use PARSEOPT_DEFAULT.
* libmailutils/tests/parseopt01.at: Likewise.
* libmailutils/tests/parseopt02.at: Likewise.
* libmailutils/tests/parseopt03.at: Likewise.
* libmailutils/tests/parseopt04.at: Likewise.
* libmailutils/tests/parseopt05.at: Likewise.
* libmailutils/tests/parseopt06.at: Likewise.
* libmailutils/tests/parseopt07.at: Likewise.
* libmailutils/tests/parseopt08.at: Likewise.
* libmailutils/tests/parseopt09.at: Likewise.
* libmailutils/tests/parseopt10.at: Likewise.
* libmailutils/tests/parseopt11.at: Likewise.
* libmailutils/tests/parseopt12.at: Likewise.
* libmailutils/tests/parseopt13.at: Likewise.
* libmailutils/tests/parseopt14.at: Likewise.
* libmailutils/tests/parseopt15.at: Likewise.
* libmailutils/tests/parseopt16.at: Likewise.
* libmailutils/tests/parseopt17.at: Likewise.
* libmailutils/tests/parseopt18.at: Likewise.
* libmailutils/tests/parseopt19.at: Likewise.
* libmailutils/tests/parseopt20.at: Likewise.
* libmailutils/tests/parseopt21.at: Likewise.
* libmailutils/tests/parseopt22.at: Likewise.
* libmailutils/tests/parseopt23.at: New test.
* libmailutils/tests/parseopt24.at: New test.
* libmailutils/tests/parseopt25.at: New test.
* libmailutils/tests/parseopt_help00.at: New test.
* libmailutils/tests/parseopt_help01.at: New test.
* libmailutils/tests/parseopt_help02.at: New test.
* libmailutils/tests/parseopt_help03.at: New test.
* libmailutils/tests/parseopt_help04.at: New test.
* libmailutils/tests/parseopt_help05.at: New test.
* libmailutils/tests/parseopt_help06.at: New test.
* libmailutils/tests/parseopt_help07.at: New test.
* libmailutils/tests/parseopt_help08.at: New test.
* libmailutils/tests/parseopt_help09.at: New test.
* libmailutils/tests/parseopt_help10.at: New test.
* libmailutils/tests/parseopt_help11.at: New test.
|
|
* include/mailutils/opt.h (mu_parseopt) <po_permuted>: New member.
* libmailutils/opt/help.c (print_option): Fix display of optional
arguments.
* libmailutils/opt/opt.c (next_opt,parse): Fix start-of-arguments
index.
Move permutation into a separate function.
* libmailutils/opt/progname.c (mu_set_progname): Remove eventual lt-
prefix.
* libmailutils/tests/Makefile.am: Add new tests.
* libmailutils/tests/parseopt.c: Use environment to control
mu_parseopt flags.
* libmailutils/tests/testsuite.at: Add new tests.
* libmailutils/tests/strtoc.at: Update.
* libmailutils/tests/parseopt00.at: New file.
* libmailutils/tests/parseopt01.at: New file.
* libmailutils/tests/parseopt02.at: New file.
* libmailutils/tests/parseopt03.at: New file.
* libmailutils/tests/parseopt04.at: New file.
* libmailutils/tests/parseopt05.at: New file.
* libmailutils/tests/parseopt06.at: New file.
* libmailutils/tests/parseopt07.at: New file.
* libmailutils/tests/parseopt08.at: New file.
* libmailutils/tests/parseopt09.at: New file.
* libm |