summaryrefslogtreecommitdiff
path: root/mh/mh.h
AgeCommit message (Collapse)AuthorFiles
2017-06-15Merge branch 'master' into locuslocusSergey Poznyakoff1
2017-06-13Switch mh_aliases to line trackerSergey Poznyakoff1
* mh/mh.h (ali_parse_error): Remove. * mh/mh_alias_gram.y: Simplify parser. Use location tracking. * mh/mh_alias_lex.l: Switch to mu_linetrack facility * mh/tests/ali.at: Update expected location.
2017-06-11Fix the -nodraftfolder and -nowhatnowproc options.Sergey Poznyakoff1
The commit 744c4a9c didn't take into account the -nodraftfolder and -nowhatnowproc options, which can be used to cancel the effect of the corresponding facilities. This commit fixes it. * mh/mh_getopt.c (mh_getopt_ext): New function. * mh/mh_getopt.h (mh_getopt_ext): New prototype. (mh_optinit): New struct. * mh/tests/comp.at: Test the use of Draft-Folder * mh/tests/forw.at: Likewise. * mh/tests/repl.at: Likewise. * mh/comp.c (main): use mh_getopt_ext to properly process draftfolder and whatnowproc. * mh/forw.c: Likewise. * mh/repl.c: Likewise. * mh/mh.h (mh_whom): Remove. (mh_whom_header, mh_whom_file, mh_whom_message): New protos. * mh/mh_alias.y (mh_read_aliases): Don't read aliases twice. * mh/mh_whatnow.c (whom): Use mh_whom_file. * mh/mh_whom.c (mh_whom): Rewrite and rename to mh_whom_file. (mh_whom_header, mh_whom_message): New functions. * mh/whom.c: Use mh_getopt_ext. Interpret command line arguments, depending on whether the draftfile facility is in use.
2017-06-08Re-use last invoked editor in MH whatnowSergey Poznyakoff1
This fixes a bug introduced in d30e5a07 * mh/mh.h (mh_whatnow_env) <last_ed>: New member * mh/mh_whatnow.c (_whatnow): Initialize reedit and last_ed members Free last_ed before returning (edit): Prefer wh->last_ed over wh->editor
2017-05-31Fix whatnow edit commandSergey Poznyakoff1
In whatnow shell, edit [program [parameters]] now calls program with supplied parameters plus the name of the file to edit. * mh/mh.h (mh_whatnow_env) <reedit>: New member. * mh/mh_whatnow.c (edit): Rewrite. * mh/whatnow.c (main): Properly handle argv[1] * NEWS: Update.
2017-05-31Fix MH initialization orderSergey Poznyakoff1
Calls to mh_global_profile_get and similar functions must appear only after a call to mh_getopt (more properly, after mh_init and mh_init2 are callead). This sequence was inadvertently changed by commit e267ac86, due to which comp, forw, repl and burst stopped reading important information from .mh_profile. Bug spotted by Pierre-Jean. * mh/burst.c: Make sure profile variables are accessed after the profile is read. * mh/comp.c: Likewise. * mh/forw.c: Likewise. * mh/repl.c: Likewise. * mh/mh.h (mh_whatnow_env_from_environ): Split into two functions: mh_whatnow_env_from_environ_early, to be called before mh_getopt, and mh_whatnow_env_from_environ_late, to be called after it. * mh/whatnowenv.c: Ditto. * mh/whatnow.c: Call these two in the right order. * THANKS: Update.
2017-05-26Bugfixes in MH showSergey Poznyakoff1
* mh/show.c: Set cur before returning. Allow for arguments in showproc settings. Move to next or prev if invoked with the corresponding argv[0] * mh/mh.h (mh_msgset_parse): def argument is const. (mh_msgset_first_current, mh_msgset_first_uid): Remove proto. (mh_msgset_first): Change signature. (mh_msgset_last): New function. * mh/mh_msgset.c (mh_msgset_first): Return UID or message number depending on the value of the second parameter. (mh_msgset_first_current, mh_msgset_first_uid): Remove. (mh_msgset_last): New function. * mh/anno.c: Update. * mh/comp.c: Update. * mh/folder.c: Update. * mh/mh_init.c: Update. * mh/repl.c: Update. * mh/Makefile.am (install-exec-hook): Link show to prev and next
2017-01-01Happy GNU YearSergey Poznyakoff1
2016-12-12Fix -nowhatnow proc in mhSergey Poznyakoff1
* mh/mh.h (mh_whatnow_env) <nowhatnowproc>: New member. * mh/compcommon.c (check_draft_disposition): Return DISP_REPLACE if nowhatnowproc is set. * mh/mh_whatnow.c (mh_whatnowproc): Return 0 if nowhatnowproc is set. * mh/comp.c: Fix -nowhatnowproc * mh/forw.c: Likewise. * mh/repl.c: Likewise.
2016-10-21Begin rewriting MH to get rid of argp stuff.Sergey Poznyakoff1
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.
2016-01-22Update copyright yearsSergey Poznyakoff1
2015-03-02Update copyright yearsSergey Poznyakoff1
2014-02-05Update copyright years.Sergey Poznyakoff1
2013-04-12Implement MH show utility.Sergey Poznyakoff1
* mh/show.c: New file. * NEWS: Document changes. * libmailutils/stream/message_stream.c (copy_trimmed_value): Fix string length calculation to allow for empty lines. * mh/.gitignore: Update. * mh/Makefile.am: Build show. * mh/TODO: Document show. * mh/mh_getopt.h: Add new option codes. * mh/mh_init.c (mh_expand_name): Change handling of the last argument. All callers updated. (mh_draft_name): Remove.
2013-04-01MH: Synchronize sequences after removal of messages.Sergey Poznyakoff1
* include/mailutils/msgset.h (mu_msgset_sget_mailbox): New proto. * include/mailutils/sys/msgset.h (_MU_MSGSET_MODE): New macro. * libmailutils/msgset/Makefile.am: Add getmbox.c * libmailutils/msgset/getmbox.c: New file. * libmailutils/msgset/addset.c: Use _MU_MSGSET_MODE. * libmailutils/msgset/create.c: Likewise. * libmailutils/msgset/foreachmsg.c: Likewise. * libmailutils/msgset/foreachnum.c: Likewise. * libmailutils/msgset/negate.c: Likewise. * libmailutils/msgset/subset.c: Likewise. * libmailutils/msgset/trans.c: Likewise. * mh/mh.h (mh_private_sequences_iterate): New proto. * mh/mh_sequence.c (format_closure) <delim>: New member. (format_sequence): Use delim to avoid outputting leading space. (save_sequence): Initialize delim. (mh_private_sequences_iterate): New function. * mh/rmm.c (main): Remove message numbers from sequences. * mh/tests/rmm.at: Update.
2012-07-28Implement SMTP shell in mu.Sergey Poznyakoff1
* include/mailutils/smtp.h (mu_smtp_get_reply_iterator) (mu_smtp_cmd,mu_smtp_test_param): New protos. * libproto/mailer/Makefile.am (libmu_mailer_la_SOURCES): Add smtp_cmd.c * libproto/mailer/smtp_cmd.c: New file. * libproto/mailer/smtp_io.c (mu_smtp_get_reply_iterator): New function. * libproto/mailer/smtp_param.c (mu_smtp_set_param): Accept NULL parameter value. (mu_smtp_test_param): New function. * mu/Makefile.am [MU_COND_SUPPORT_SMTP]: Add smtp.c to MODULES. (mu_SOURCES): Add getans.c, getyn.c and util.c * mu/getans.c: New file. * mu/getyn.c: New file. * mu/smtp.c: New file. * mu/util.c: New file. * mu/mu.h (port_from_sa): New proto. * mu/pop.c (port_from_sa): Move to util.c
2012-03-25Revise some memory allocation routines.Sergey Poznyakoff1
* examples/aclck.c: Check return values from strdup. * libmailutils/base/usremail.c: Likewise. * libmailutils/mailbox/bodystruct.c: Likewise. * lib/mailcap.c: Likewise. * libmailutils/mailbox/mbx_default.c: Likewise. * libmailutils/server/acl.c: Likewise. * libmailutils/stream/logstream.c: Likewise. * libmailutils/stream/message_stream.c: Likewise. * libmu_argp/mu_argp.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_auth/pam.c: Likewise. * libmu_auth/sql.c: Likewise. * libmu_sieve/comparator.c: Likewise. * libmu_sieve/conf.c: Likewise. * libmu_sieve/extensions/list.c: Likewise. * libmu_sieve/extensions/vacation.c: Likewise. * libproto/mailer/prog.c: Likewise. * libproto/mailer/smtp_io.c: Likewise. * maidag/lmtp.c: Likewise. * python/libmu_py/address.c: Likewise. * sql/odbc.c * examples/sfrom.c (main): Avoid unnecessary memory allocation. * libmailutils/mailbox/mailbox.c: Likewise. * frm/frm.h: Include mailutils/alloc.h, remove xalloc.h * mh/mh.h: Likewise. * imap4d/imap4d.h: Remove xalloc.h * mail/mail.h: Likewise. * mimeview/mimeview.h: Likewise. * mu/acl.c: Likewise. * readmsg/readmsg.c: Likewise. * include/mailutils/locker.h (mu_locker_set_default_external_program): Change returned type. * include/mailutils/mailbox.h (mu_set_folder_directory): Change returned type. * libmailutils/base/locker.c (mu_locker_set_default_external_program): Return int (error code). * libmailutils/base/tilde.c: Add extra checks * libmailutils/mime/mimehdr.c (_mime_header_parse): Bugfix. * mail/folders.c: Don't use alloca, use mu_alloc instead. It was the only use of that function in Mailutils, so this change allows to withdraw the alloca module. * gnulib.modules (alloca, malloc) (realloc, xalloc): Remove. * frm/common.c: Use mu_alloc and friends instead of xmalloc. * frm/from.c: Likewise. * imap4d/append.c: Likewise. * imap4d/auth_gsasl.c: Likewise. * imap4d/authenticate.c: Likewise. * imap4d/fetch.c: Likewise. * imap4d/imap4d.c: Likewise. * imap4d/io.c: Likewise. * imap4d/list.c: Likewise. * imap4d/namespace.c: Likewise. * imap4d/parsebuf.c: Likewise. * imap4d/preauth.c: Likewise. * imap4d/rename.c: Likewise. * imap4d/search.c: Likewise. * imap4d/util.c: Likewise. * libmu_argp/muinit.c: Likewise. * mail/alias.c: Likewise. * mail/alt.c: Likewise. * mail/copy.c: Likewise. * mail/decode.c: Likewise. * mail/escape.c: Likewise. * mail/file.c: Likewise. * mail/from.c: Likewise. * mail/mail.c: Likewise. * mail/mailline.c: Likewise * mail/mailvar.c: Likewise * mail/msgset.y: Likewise * mail/page.c: Likewise * mail/send.c: Likewise * mail/shell.c: Likewise * mail/unset.c: Likewise * mail/util.c: Likewise * mh/folder.c: Likewise * mh/mh_alias.l: Likewise * mh/mh_alias.y: Likewise * mh/mh_fmtgram.y: Likewise * mh/mh_format.c: Likewise * mh/mh_global.c: Likewise * mh/mh_init.c: Likewise * mh/mh_list.c: Likewise * mh/mh_whatnow.c: Likewise * mh/mh_whom.c: Likewise * mh/mhn.c: Likewise * mh/pick.y: Likewise * mh/prompter-rl.c: Likewise * mh/refile.c: Likewise * mh/repl.c: Likewise * mh/send.c: Likewise * mh/sortm.c: Likewise * mimeview/mimetypes.y: Likewise * mu/dbm.c: Likewise * mu/dispatch.c: Likewise * mu/imap.c: Likewise * mu/pop.c: Likewise * mu/shell.c: Likewise * pop3d/apop.c: Likewise * pop3d/bulletin.c: Likewise * pop3d/popauth.c: Likewise * pop3d/user.c: Likewise
2012-01-05Happy GNU YearSergey Poznyakoff1
2011-12-30Improve msgset interface. Use it in MH.Sergey Poznyakoff1
* libmailutils/msgset/Makefile.am (libmsgset_la_SOURCES): Add new files. * libmailutils/msgset/addset.c: New file. * libmailutils/msgset/count.c: New file. * libmailutils/msgset/foreachmsgno.c: New file. * libmailutils/msgset/foreachuid.c: New file. * libmailutils/msgset/isempty.c: New file. * libmailutils/msgset/subset.c: New file. * libmailutils/msgset/trans.c: New file. * libmailutils/msgset/add.c (mu_msgset_add_range): Take fourth argument specifying the conversion mode. Translate numbers as necessary. * libmailutils/msgset/foreachmsg.c: Translate numbers as necessary. * libmailutils/msgset/foreachnum.c: Rewrite. * libmailutils/msgset/negate.c (_invert_range) (mu_msgset_add_range): Update calls to mu_msgset_add_range. * libmailutils/msgset/parse.c (parse_msgnum_env)<mode>: New member. (parse_msgrange): Update calls to mu_msgset_add_range. (mu_msgset_parse_imap): Change signature. All callers updated. * libmailutils/msgset/sub.c (mu_msgset_sub_range): Take fourth argument specifying the conversion mode. Translate numbers as necessary. * imap4d/copy.c (imap4d_copy0): Update calls to mu_msgset_create and mu_msgset_parse_imap. * imap4d/fetch.c (fetch_thunk): Likewise. * imap4d/search.c (parse_simple_key): Likewise. * imap4d/store.c (store_thunk): Likewise. * include/mailutils/msgset.h (MU_MSGSET_NUM,MU_MSGSET_UID): New defines. (mu_msgset_add,mu_msgset_sub): New protos. (mu_msgset_add_range,mu_msgset_sub_range): Take 4 arguments. All callers changed. * include/mailutils/sys/msgset.h (_mu_msgset_translate_pair) (_mu_msgset_translate_range): New protos. * libmailutils/tests/msgset.c: Reflect the above changes. * testsuite/msgset.c: Likewise. * libproto/imap/mbox.c: Update calls to mu_msgset functions. * mh/mh.h (mh_msgset_t): Remove. (mh_iterator_fp): Remove typedef. (mh_msgset_parse): Change signature. (mh_msgset_member,mh_msgset_reverse,mh_msgset_negate) (mh_msgset_current,mh_msgset_free,mh_msgset_uids): Remove protos. (mh_msgset_parse_string): New proto. (mh_msgset_first_current,mh_msgset_first): New proto. (mh_iterate: Remove proto. Use mu_msgset_foreach* functions instead. (mh_seq_add,mh_seq_delete): Change signatures. * mh/mh_init.c (mh_iterate): Remove. * mh/mh_msgset.c: Rewrite using mu_msgset_t. * mh/mh_sequence.c: Likewise. * mh/anno.c: Use new msgset functions. * mh/burst.c: Likewise. * mh/comp.c: Likewise. * mh/folder.c: Likewise. * mh/forw.c: Likewise. * mh/mark.c: Likewise. * mh/mhn.c: Likewise. * mh/mhpath.c: Likewise. * mh/mhseq.c: Likewise. * mh/pick.c: Likewise. * mh/refile.c: Likewise. * mh/repl.c: Likewise. * mh/rmm.c: Likewise. * mh/scan.c: Likewise. * mh/send.c: Likewise. * mh/sortm.c: Likewise. * mh/whatnowenv.c: Likewise. * mh/tests/mark.at: Reflect changes in the format of the saved sequences, which may contain ranges now. * mu/imap.c: Update calls to mu_msgset functions.
2011-12-21Fix API for obtaining full email address.Sergey Poznyakoff1
Old API relied on passing a pointer to the buffer string and its size, which is defective. The new API, in addtion to that, provides functions for obtaining a pointer to the statically allocated original value, a pointer to dynamically allocated copy, and a function for formatting the address directly to a MU stream. Two functions are marked as deprecated: mu_address_to_string and mu_address_format_string. Both assume a pointer to an allocated string of a fixed size, which is far from being convenient nor reliable enough. * include/mailutils/address.h (MU_ADDR_HINT_ADDR): Rename to MU_ADDR_HINT_PRINTABLE (mu_address)<addr>: Rename to printable. (mu_address_sget_printable,mu_address_aget_printable) (mu_address_get_printable): New protos. (mu_stream_format_address): New proto. (mu_address_to_string) (mu_address_format_string): Mark as deprecated. (mu_validate_email): New proto. * examples/mta.c: Use mu_address_sget_printable instead of (mu_address_to_string) * libmailutils/address/addrstream.c: New file. * libmailutils/address/Makefile.am (libaddress_la_SOURCES): Add addrstream.c * libmailutils/address/address.c (mu_address_format_string): Rewrite using streams. (mu_address_to_string): Rewrite as a wrapper over mu_address_get_printable. (mu_address_sget_printable,mu_address_aget_printable) (mu_address_get_printable): New functions. * libmailutils/mime/mimehdr.c (_mime_header_parse): Initialize rc. * mail/util.c (util_merge_addresses): Use mu_address_aget_printable. * mh/mh.h (mh_annotate): Both string args are const. * mh/mh_init.c (mh_annotate): Likewise. * mh/mh_format.c (builtin_formataddr): Use mu_address_sget_printable. * mh/mh_whatnow.c (anno_data)<field,value>: Both are consts. (annotate): Use mu_address_sget_printable. * mh/send.c (set_address_header): Use mu_address_sget_printable. * mu/imap.c (format_email): Use mu_stream_format_address. * python/libmu_py/address.c (api_address_to_string): Likewise.
2011-12-08Move date/time declarations into a separate header: mailutils/datetime.hSergey Poznyakoff1
Additionally, do not typedef mu_timezone, leave it in struct namespace.
2011-01-02Update copyright years.Sergey Poznyakoff1
Happy GNU year!
2010-12-11Implement mu_onexit functions; use MU stdstream in mh and mimeview.Sergey Poznyakoff1
* include/mailutils/types.hin (mu_onexit_t): New typedef. * include/mailutils/util.h (mu_onexit_reset, mu_onexit): New protos. * libmailutils/base/onexit.c: New file. * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add onexit.c * libmailutils/stdstream/basestr.c (stdstream_flushall): New function. (mu_stdstream_setup): Rewrite the fd checking algorithm. Register stdstream_flushall as an onexit function. * mh/anno.c: Use MU stdstream. * mh/mh.h: Include mailutils/stdstream.h. * mh/mh_init.c (mh_init): Call mu_stdstream_setup; use MU stdstream. * mh/mh_whatnow.c (_whatnow): Use MU stdstream. * mh/mhl.c (open_output,list_message): Likewise. * mh/mhn.c (mhn_show,store_handler): Likewise. * pop3d/popauth.c: Use MU stdstream. * mimeview/mimetypes.y: Use MU stdstream. * mimeview/mimeview.c: Likewise. (mimeview_fp): Remove. (mimeview_stream): New variable. * mimeview/mimeview.h (mimeview_fp): Remove. (mimeview_stream): New variable. * lib/mailcap.c (find_entry): Don't report ENOENT.
2010-12-07Rewrite prog stream support.Sergey Poznyakoff1
Two interfaces are provided: mu_prog_stream_create offers full control over the program execution environment (i.e. running privileges, cwd, resource limits) via a set of hints. A simpler interface, mu_command_stream_create, runs the command in the current environment. mu_filter_prog_stream_create is removed, because its functionality can be achieved by a correspondingly crafted set of hints to mu_prog_stream_create. * include/mailutils/prog.h: New file. * include/mailutils/mailutils.h: Include mailutils/prog.h * include/mailutils/Makefile.am (pkginclude_HEADERS): Add prog.h * include/mailutils/stream.h (mu_prog_stream_create) (mu_filter_prog_stream_create): Remove prototypes. * include/mailutils/sys/prog_stream.h (_mu_prog_stream): Change structure. (_mu_prog_limit_codes, _mu_prog_limit_flags): New externs. * include/mailutils/util.h (mu_set_user_privileges) (mu_switch_to_privs): New prototypes. * lib/userprivs.c: Move to libmailutils/base. * lib/Makefile.am (libmuaux_a_SOURCES): Remove userprivs.c * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add userprivs.c * libmailutils/base/userprivs.c (mu_set_user_privileges): New function. (mu_switch_to_privs): Rewrite as another entry point to mu_set_user_privileges. * libmailutils/stream/prog_stream.c (_mu_prog_limit_flags) (_mu_prog_limit_codes): New global variables. (start_program_filter): Use hints to control execution environment. (_prog_stream_create): Save hints. (mu_prog_stream_create): Change signature. (mu_command_stream_create): New function (corresponds to the prior mu_prog_stream_create). (mu_filter_prog_stream_create): Remove function. * comsat/action.c (action_exec): Use new mu_prog_stream_create calling convention. * examples/murun.c: Rewrite. * mh/mhn.c (show_internal): Use new mu_prog_stream_create calling convention. * mh/tests/mhn.at: Reflect changes to mhn. * imap4d/preauth.c: Use mu_command_stream_create. * libmu_sieve/extensions/pipe.c * mail/decode.c * mail/pipe.c * mail/send.c * mh/mhl.c * mu/shell.c * mail/mail.h: Include mailutils/prog.h * mh/mh.h * po/POTFILES.in: Add libmailutils/base/userprivs.c.
2010-12-02Minor change.Sergey Poznyakoff1
* configure.ac: Remove checks for strtok_r, strchrnul, strndup, asprintf, vasprintf: none of these is used any more. * maidag/lmtp.c (lmtp_reply): Use mu_vasnprintf. * mh/mh.h (strchrnul): Remove proto. * mh/mh_list.c (want_header): Rewrite. (print): Use strcspn.
2010-11-30sortm: update current message number; add testsuite.Sergey Poznyakoff1
* mh/sortm.c (current_num): New variable. (sort): Keep track of the current message UID. Store it back to mailbox if in reorder mode. (main): Save initial current message UID. Save global and mailbox status before exiting. * mh/mh.h (mh_open_folder): Change last argument name. * mh_open_folder (mh_open_folder): Change meaning of the 2nd argument: it contains usual stream flags now. All uses changed. * mh/tests/sortm.at: New file. * mh/tests/testsuite.at: Include sortm.at * mh/tests/Makefile.am (TESTSUITE_AT): Add sortm.at.
2010-11-24mh: minor changes in forw and repl; provide a set of traditional scan formats.Sergey Poznyakoff1
* mh/.gitignore: Update. * mh/compcommon.c (mh_comp_draft): Rewrite using mh_find_file and simplify. All callers changed. * mh/mh.h (mh_comp_draft): Change signature. * mh/comp.c (opt_handler) <ARGP_KEY_FINI>: Make sure formfile is initialized. * mh/forw.c: Likewise. * mh/repl.c (opt_handler): Remove unused variable. * mh/tests/comp.at (compcmd): Remove -form. * mh/tests/forw.at (forwcmd): Likewise. * mh/etc/.gitignore: New file. * mh/etc/Makefile.am: New file. * mh/etc/forwcomps: New file. * mh/etc/scan.default: New file. * mh/etc/scan.mailx: New file. * mh/etc/scan.size: New file. * mh/etc/scan.time: New file. * mh/etc/scan.timely: New file.
2010-11-24mh: fix the use of mhl.forward in forw.Sergey Poznyakoff1
* mh/mhl.forward: New file. * mh/forw.c (mh_option): the -format option is boolean. (mhl_filter): Rename to mhl_filter_file. (opt_handler) <ARG_FORMAT>: Use default mhl.filter. <ARG_NOFORMAT>: Set encap_clear. <ARG_FILTER>: Use mh_find_file to determine filter file name. (finish_draft): Use MHL filter file if encap == encap_mhl. * mh/mh.h (mh_find_file): New prototype. * mh/mh_init.c (mh_find_file): New file. (mh_read_formfile): Use mh_find_file to locate the file. * mh/tests/forw.at: Test forw -format. * mh/tests/mhparam.at: Update the -all test. * tests/testsuite.at (MH_SETUP): Set the "mhetcdir" component. * mh/scan.c (opt_handler): Exit if mh_read_formfile failed.
2010-11-22mh: fix msgset parser and some more comp compatibility issues; provide ↵Sergey Poznyakoff1
testsuite for comp. * mh/Makefile.am (bin_PROGRAMS): Add mhseq. * mh/comp.c (main): Rewrite to fix compatibility issues. * mh/mh.h (MH_MSGSET_UID): New define. (mh_msgset_t) <flags,size>: New members. * mh/mh_init.c (mh_draft_message): Bugfix: convert msgset to UIDs. * mh/mh_msgset.c: Rewrite from scratch. * mh/tests/comp.at: New file. * mh/tests/mhseq.at: New file. * mh/tests/Makefile.am (TESTSUITE_AT): Add comp.at, mhseq.at. * mh/tests/testsuite.at: Include comp.at and mhseq.at. * libmailutils/property/mhprop.c (_mh_prop_read_stream): Minor fix. Do remove empty lines. * mh/mh_whatnow.c (_whatnow): Detect EOF. (call_send): Quit after successful send.
2010-11-21mh: Fix compatibility issues in the draftfolder facility. Implement whatnowproc.Sergey Poznyakoff1
* mh/whatnowenv.c: New source. * mh/Makefile.am (libmh_a_SOURCES): Add whatnowenv.c * mh/TODO: Update. * mh/comp.c: Implement draftfolder, whatnowproc and the -use option. * mh/forw.c: Likewise. * mh/repl.c: Likewise. * mh/compcommon.c (check_draft_disposition): Fix typo. * mh/mh.h (mh_whatnow_env) <draftfolder>: Remove. <mbox>: New member. (mh_whatnowproc): New proto. (mh_whatnow_env_from_environ) (mh_whatnow_env_to_environ): New proto. * mh/mh_global.c (prop_merger): Bugfix: initialize dst. * mh/mh_init.c (mh_draft_message): Update cur msg. * mh/mh_whatnow.c (mh_whatnowproc): New function. * mh/whatnow.c (opt_handler): Do not read Draft-Folder variable. (main): Initialize data from the environment.
2010-11-20Move MH profile & context support to libproto.Sergey Poznyakoff1
* mh/mh_ctx.c: Remove. * mh/Makefile.am (libmh_a_SOURCES): Remove mh_ctx.c * mh/folder.c (read_seq_file): Use mu_property_t. * mh/mh.h (mh_context_iterator): Remove typedef. (mh_global_profile_get, mh_global_profile_set) (mh_global_profile_iterate) (mh_global_context_set,mh_global_context_set) (mh_global_context_iterate): Rewrite as macros. (mh_global_sequences_iterate): Change signature. (mh_read_property_file,mh_property_merge): New protos. (mh_context_create,mh_context_read,mh_context_write) (mh_context_get_value,mh_context_set_value,mh_context_iterate) (mh_context_destroy,mh_context_merge): Remove protos. * mh/mh_global.c (mh_global_profile_get, mh_global_profile_set) (mh_global_profile_iterate) (mh_global_context_set,mh_global_context_set) (mh_global_context_iterate): Remove. (mh_read_property_file,mh_property_merge): New functions. (_mh_init_global_context,mh_read_profile) (mh_set_current_folder,mh_global_sequences_iterate): Rewrite. (mh_global_save_state): Rewrite. * mh/mh_whom.c (mh_whom): Use mu_property_t. * mh/send.c: Use mu_property_t. * po/POTFILES.in: Add mh/mboxprop.c.
2010-11-20Re-implement MH sequences via mailbox properties.Sergey Poznyakoff1
* libmailutils/mailbox/header.c (mu_header_clear): New function. (mu_header_sget_value_n): Tolerate pval == NULL. * libmailutils/property/assocprop.c (_assoc_prop_setval): Bugfix. (_assoc_prop_clear): New method. (mu_assoc_property_init): Reference the stream. (mu_assoc_property_init): Initialize _prop_clear. * libmailutils/property/create.c (_mu_property_init): Now extern. * libmailutils/property/propset.c (mu_property_set_value): Null value means unset. * libmailutils/tests/prop.at: Test property clear and invalidate. * libmailutils/tests/prop.c: New commands: 0 for property clear and ! for invalidate. * libmailutils/property/mhprop.c: New file. * libmailutils/property/propclr.c: New file. * libmailutils/property/propinv.c: New file. * libmailutils/property/Makefile.am (noinst_LTLIBRARIES): Add new files. * include/mailutils/header.h (mu_header_clear): New proto. * include/mailutils/property.h (mu_property_clear) (mu_property_invalidate): New protos. (mu_mh_prop): New struct. (mu_mh_property_init): New proto. * include/mailutils/sys/property.h (_mu_property) <_prop_clear>: New member. (_mu_property_init): New proto. * include/mailutils/mh.h: New file. * include/mailutils/Makefile.am (pkginclude_HEADERS): Add mh.h * libproto/mh/profile.c: New file. * libproto/mh/Makefile.am (libmu_mh_la_SOURCES): Add new files. * libproto/mh/mbox.c (mh_get_property): New static function. (_mailbox_mh_init): Set _get_property. * mh/mh_global.c (current_message, sequences): Remove. Use mbox properties instead. (mh_global_sequences_get) (mh_global_sequences_set) (mh_global_sequences_iterate) (mh_global_sequences_drop): Take mbox as first argument. All callers updated. * mh/mh_init.c (mh_init2): Remove call to mh_global_sequences_get. * mh/mh_msgset.c (msgset_cur): Use mh_mailbox_get_cur. * mh/mh_sequence.c (mh_seq_read, write_sequence) (delete_sequence, mh_seq_add, mh_seq_delete): Take mbox as first argument. All callers updated. * mh/mh.h: Include mailutils/property.h. (current_message): Remove. (mh_mailbox_cur_default): New extern. (mh_global_sequences_get) (mh_global_sequences_set) (mh_global_sequences_iterate) (mh_global_sequences_drop): Take mbox as first argument. All callers updated. * mh/mh_format.c (builtin_cur): Rewrite using mh_message_number. * mh/mboxprop.c: New file. * mh/Makefile.am (libmh_a_SOURCES): Add new file. * mh/folder.c: Update calls to sequence management functions. * mh/mark.c: Likewise. * mh/pick.c: Likewise. * mh/inc.c (main): Set mh_mailbox_cur_default to 1. Invalidate properties if changecur is not set. * mh/prompter.c (main): Destroy the iterator. * mh/rmf.c: Rewrite using mu_mailbox_remove. * mh/scan.c: Always close the mailbox. * mh/tests/folder.at: Update. * mh/tests/inc.at: Update. Inc now sets cur to 1 if it was not originally set. This is what others MHs do.
2010-10-28Add wordsplit module.Sergey Poznyakoff1
The wordsplit module (borrowed from another project of mine, called 'grecs') provides a flexible and powerful mechanism for parsing input in a way similar to posix-shell. In particular, the POSIX function wordexp is a subset of the wordsplit functionality. The argcv module is now deprecated. * include/mailutils/wordsplit.h: New file. * include/mailutils/Makefile.am (pkginclude_HEADERS): Add wordsplit.h * libmailutils/string/wordsplit.c: New file. * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add wordsplit.c. * include/mailutils/argcv.h (mu_argcv_join): New proto. (mu_argcv_get, mu_argcv_get_n, mu_argcv_get_np) (mu_argcv_unquote_char, mu_argcv_quote_char) (mu_argcv_quoted_length, mu_argcv_unquote_copy) (mu_argcv_quote_copy): Mark as deprecated. * include/mailutils/mailutils.h: Include wordsplit.h. * libmailutils/tests/wsp.c: New file. * libmailutils/tests/.gitignore: List wsp. * libmailutils/tests/wordsplit.at: New file. * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add wsp (TESTSUITE_AT): Add wordsplit.at. * libmailutils/tests/argcv.c: Define MU_ARCGV_DEPRECATED to avoid deprecation warnings. * libmailutils/tests/testsuite.at: Include wordsplit.at. * libmailutils/base/argcvfree.c: New file. * libmailutils/base/argcvjoin.c: New file. * libmailutils/base/argcvrem.c: New file. * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add new files. * libmailutils/base/argcv.c: Define MU_ARCGV_DEPRECATED to avoid deprecation warnings. (argcv_string, argcv_free, argv_free) (mu_argcv_remove): Rewrite in separate modules. * comsat/comsat.h: Include wordsplit.h. * imap4d/imap4d.h: Likewise. * mail/mail.h: Likewise. * mh/mh.h: Likewise. * readmsg/readmsg.h: Likewise. * comsat/action.c: Use wordsplit. * imap4d/fetch.c: Likewise. * lib/mailcap.c: Likewise. * libmailutils/auth/mu_auth.c: Likewise. * libmailutils/base/mutil.c: Likewise. * libmailutils/cfg/format.c: Likewise. * libmailutils/cfg/lexer.l: Likewise. * libmailutils/cfg/parser.y: Likewise. * libmailutils/diag/gdebug.c: Likewise. * libmailutils/mailer/mailer.c: Likewise. * libmailutils/server/acl.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/tests/listop.c: Likewise. * libmailutils/url/create.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_auth/radius.c: Likewise. * libmu_sieve/sieve.l: Likewise. * libproto/mailer/mbox.c: Likewise. * libproto/mailer/smtp.c: Likewise. * libproto/mailer/smtp_gsasl.c: Likewise. * mail/mailline.c: Likewise. * mail/mailvar.c: Likewise. * mail/send.c: Likewise. * mail/util.c: Likewise. * mh/folder.c: Likewise. * mh/mh_alias.y: Likewise. * mh/mh_argp.c: Likewise. * mh/mh_init.c: Likewise. * mh/mh_list.c: Likewise. * mh/mh_msgset.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mhn.c: Likewise. * mh/send.c: Likewise. * movemail/movemail.c: Likewise. * mu/shell.c: Likewise. * readmsg/readmsg.c: Likewise. * testsuite/smtpsend.c: Likewise. * pop3d/popauth.c: Use wordsplit. Use simplified input format (username and password delimited by any amount of whitespace). Read/produce old format if invoked with the --compatibility option. * examples/aclck.c: Use wordsplit instead of argcv. * examples/header.c: Likewise. * examples/mta.c: Likewise. * examples/.gitignore: Remove pop3client. * examples/Makefile.am: Remove pop3client. * po/POTFILES.in: Add new files.
2010-10-27Use mu_asprintf and mu_vasnprintf instead of asprintf and vasprintf.Sergey Poznyakoff1
*gnulib.modules (snprintf, vasprintf): Remove. *sieve/tests/reject.at: Use AT_PACKAGE_VERSION instead of the hardcoded version number. *lib/mu_asprintf.h: Remove. * imap4d/auth_gss.c: Replace asprintf with mu_asprintf and vasprintf by mu_vasnprintf. * guimb/guimb.h: Likewise. * imap4d/imap4d.h: Likewise. * imap4d/unsubscribe.c: Likewise. * lib/Makefile.am * lib/mailcap.c: Likewise. * libmu_argp/muinit.c: Likewise. * maidag/deliver.c: Likewise. * maidag/maidag.h: Likewise. * mail/escape.c: Likewise. * mail/mail.c: Likewise. * mail/mail.h: Likewise. * mail/util.c: Likewise. * mail/write.c: Likewise. * mh/burst.c: Likewise. * mh/forw.c: Likewise. * mh/mh.h: Likewise. * mh/mh_alias.l: Likewise. * mh/mh_format.c: Likewise. * mh/mh_getopt.c: Likewise. * mh/mh_init.c: Likewise. * mh/mh_msgset.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mhn.c: Likewise. * mh/send.c: Likewise. * mimeview/mimetypes.l: Likewise. * mimeview/mimetypes.y: Likewise. * mimeview/mimeview.c: Likewise. * movemail/movemail.c: Likewise. * mu/ldflags.c: Likewise. * pop3d/expire.c: Likewise. * pop3d/pop3d.h: Likewise. * sieve/sieve.c: Likewise.
2010-10-12Use mu_make_file_name where necessary.Sergey Poznyakoff1
* comsat/action.c (run_user_action): Use mu_make_file_name. * imap4d/lsub.c (imap4d_lsub): Likewise. * imap4d/subscribe.c (imap4d_subscribe): Likewise. * imap4d/unsubscribe.c (imap4d_unsubscribe): Likewise. * libmailutils/base/filename.c (mu_get_full_path): Likewise. * libmailutils/base/tempfile.c (mu_tempfile): Likewise. * libmailutils/base/url.c (_url_path_default): Likewise. * libmu_auth/virtual.c (getpwnam_virtual) (mu_auth_virt_domain_by_name): Likewise. * libmu_sieve/extensions/vacation.c (check_db): Likewise. * libmu_sieve/sieve.l (_try_include): Likewise. * maidag/forward.c (maidag_forward): Likewise. * mh/mh.h (mh_safe_make_file_name): New proto. * mh/mh_init.c (mh_audit_open,mh_get_dir) (mh_expand_name,mh_real_install): Use mh_safe_make_file_name. (mh_safe_make_file_name): New function. * mh/folder.c (read_seq_file, _scan): Use mh_safe_make_file_name. * mh/mh_global.c (mh_read_profile, _mh_init_global_sequences): Likewise. * mh/install-mh.c (main): Likewise. * mh/mhn.c (normalize_path, store_handler, main): Likewise. * mh/repl.c (make_draft): Likewise. * mh/rmf.c (rmf): Likewise. * mh/sortm.c (swap_message): Likewise. * mimeview/mimetypes.l (mimetypes_open): Likewise. * lib/mailcap.c: Add error checking.
2010-10-10Split the mess in mutil.c into logically separated units.Sergey Poznyakoff1
* libmailutils/base/mutil.c (mu_hex2ul, mu_hexstr2ul): Move to string/hexstr.c. (mu_get_homedir, mu_get_full_path) (mu_expand_path_pattern): Move to base/filename.c. (mu_getcwd): Move to base/getcwd.c. (mu_tilde_expansion): Move to base/tilde.c (mu_cpystr): Move to string/cpystr.c. (mu_get_host_name): Move to base/hostname.c. (mu_set_user_email,mu_set_user_email_domain) (mu_get_user_email_domain,mu_aget_user_email_domain) (mu_get_user_email,mu_normalize_path): Move to base/usremail.c. (mu_tempfile,mu_tempname): Move to base/tempfile.c. (mu_spawnvp): Move to base/spawnvp.c. (mu_qualify_link,mu_unroll_symlink): Move to base/symlink.c. (mu_rfc2822_references,mu_rfc2822_msg_id) (mu_rfc2822_in_reply_to): Move to base/msgid.c. (mu_strcasestr): Move to string/cstrcasestr.c. (mu_string_unfold): Move to string/unfold.c. (mu_true_answer_p): Move to string/trueans.c. (mu_scheme_autodetect_p): Move to base/schemeauto.c. (mu_fd_wait): Move to base/fdwait.c. (mu_set_default_fallback,mu_decode_filter): Move to filter/decode.c. (__argp_base_name): Move to lib/argp_base.c. * libmailutils/base/fdwait.c: New file. * libmailutils/base/filename.c: New file. * libmailutils/base/getcwd.c: New file. * libmailutils/base/hostname.c: New file. * libmailutils/base/msgid.c: New file. * libmailutils/base/schemeauto.c: New file. * libmailutils/base/spawnvp.c: New file. * libmailutils/base/symlink.c: New file. * libmailutils/base/tempfile.c: New file. * libmailutils/base/tilde.c: New file. * libmailutils/base/usremail.c: New file. * libmailutils/base/Makefile.am: Add new files. * libmailutils/filter/decode.c: New file. * libmailutils/filter/Makefile.am: Add new files. * libmailutils/string/cpystr.c: New file. * libmailutils/string/cstrcasestr.c: New file. * libmailutils/string/hexstr.c: New file. * libmailutils/string/trueans.c: New file. * libmailutils/string/unfold.c: New file. * libmailutils/string/Makefile.am: Add new files. * lib/argp_base.c: New file. * lib/Makefile.am: Add new files. * include/mailutils/io.h: Include stdarg.h * include/mailutils/mutil.h: Rename to util.h. Reorder prototypes and declarations in logical groups. All uses changed. * include/mailutils/cstr.h (mu_strcasestr): New proto, moved from include/mailutils/mutil.h.
2010-10-09Fix copyleft notices to follow the GNU standards.Sergey Poznyakoff1
2010-01-05Update copyright years.Sergey Poznyakoff1
Happy GNU year!
2009-12-29Support for multibyte-encoding in MH.Sergey Poznyakoff1
* gnulib.modules (mbchar, mbiter, mbslen): New modules. * mh/mh.h (mh_charset): New function. * mh/mh_format.c (DFLWIDTH): New macro. (mbsubstrlen, mbsnlen): New functions. (compress_ws): Handle multibyte strings. (put_string): Use number of characters, not octets, to update ind. (print_hdr_segment): Handle multibyte strings. (print_simple_segment, print_fmt_string): Likewise. (reset_fmt_defaults): Restore default WS compression. (mh_format): Set LC_TYPE based on the settings of profile variables Charset and LC_BASE (new variable). * mh/mh_init.c (mh_charset): New function. (mh_decode_2047): Use mh_charset.
2009-12-26Disable whitespace compression in MH formatting code.Sergey Poznyakoff1
Whitespace compression in its current form interacts badly with wide-character encodings. To prevent it from spoiling wide charater text, it is disabled by default. The user may turn it back on by setting "Compress-WS: yes" in his .mh_profile. * mh/mh.h (MH_FMT_COMPWS): New format flag. * mh/mh_format.c (COMPRESS_WS): New macro. (reset_fmt_defaults): Set MH_FMT_COMPWS flag if Compress-WS global parameter is set to true. (mh_format, builtin_concat): Call COMPRESS_WS.
2009-12-16Fix format specifiers and usage of const char* arguments/variables.Sergey Poznyakoff1
Affected files: * comsat/comsat.c * examples/header.c * examples/mailcap.c * examples/pop3client.c * examples/url-parse.c * imap4d/fetch.c * imap4d/id.c * imap4d/list.c * imap4d/select.c * imap4d/status.c * imap4d/store.c * imap4d/sync.c * imap4d/util.c * include/mailutils/sieve.h * libmu_argp/common.c * libmu_argp/muinit.c * libmu_sieve/actions.c * libmu_sieve/extensions/pipe.c * libmu_sieve/extensions/vacation.c * libmu_sieve/prog.c * libmu_sieve/require.c * libmu_sieve/runtime.c * libmu_sieve/sieve-priv.h * libmu_sieve/sieve.y * libproto/imap/folder.c * libproto/imap/mbox.c * libproto/mailer/sendmail.c * libproto/mbox/mbox.c * libproto/pop/pop3_list.c * libproto/pop/pop3_stat.c * maidag/lmtp.c * maidag/sieve.c * mail/copy.c * mail/decode.c * mail/envelope.c * mail/eq.c * mail/escape.c * mail/from.c * mail/mail.h * mail/mailline.c * mail/mailvar.c * mail/size.c * mail/util.c * mail/write.c * mailbox/cfg_format.c * mailbox/folder.c * mailbox/parse822.c * mailbox/system.c * messages/messages.c * mh/folder.c * mh/forw.c * mh/inc.c * mh/mh.h * mh/mh_alias.l * mh/mh_fmtgram.y * mh/mh_getopt.h * mh/mh_init.c * mh/mh_msgset.c * mh/mh_whatnow.c * mh/mhn.c * mh/pick.y * mimeview/mimetypes.y * python/libmu_py/debug.c * sieve/sieve.c
2009-08-21Minor fixes.Sergey Poznyakoff1
* .gitignore: Add pathdefs.h * examples/Makefile.am (muauth_CPPFLAGS) (muemail_CPPFLAGS): New variables. * examples/argcv.c (main): Remove unused local. * include/mailutils/gsasl.h [USE_GSASL]: Change to WITH_GSASL. * include/mailutils/libcfg.h (mu_acl_cfg_init): New prototype. * include/mailutils/mu_auth.h (mu_authenticate): Password is const. * include/mailutils/python.h: Fix indentation. (mu_py_script_data): module_name is const char *. * libmu_auth/radius.c: Include radius/debug.h * libproto/mailer/smtp.c: Include io.h and secret.h * mail/mail.c: Fix indentation. * mail/util.c (util_rfc2047_decode): Fix local variable declaration. * mailbox/mu_auth.c (mu_authenticate): Password is const. * mh/mh.h (mh_alias_get, mh_alias_get_address) (mh_alias_get_alias): Name is const. * mh/mh_alias.y: Likewise. * mh/mh_list.c (print_header_value): Fix improper use of mu_toupper. * mh/mh_whatnow.c (invoke): Add typecasts. * python/libmu_py/nls.c (api_nls_set_locale): Remove unused automatic. * python/libmu_py/sieve.c (_sieve_error_printer): Provide missing return value. (_sieve_debug_printer): Likewise.
2009-07-07Introduce locale-independent character type and string functions.Sergey Poznyakoff1
* include/mailutils/cctype.h: New file. * include/mailutils/cstr.h: New file. * include/mailutils/Makefile.am: Add new files. * mailbox/cstrcasecmp.c: New file. * mailbox/cstrlower.c: New file. * mailbox/cstrupper.c: New file. * mailbox/muctype.c: New file. * mailbox/strltrim.c: New file. * mailbox/strrtrim.c: New file. * mailbox/strskip.c: New file. * mailbox/Makefile.am: Add new files. * .gitignore: Update * gnulib.modules: Remove strcase. * comsat/comsat.h, imap4d/imap4d.h, include/mailutils/mailutils.h, include/mailutils/mutil.h, include/mailutils/sys/pop3.h, libmu_scm/mu_scm.h, mail/mail.h: Include cstr.h and cctype.h. * comsat/oldcfg.c, config/mailutils-config.c, examples/mimetest.c, examples/mta.c, examples/nntpclient.c, examples/pop3client.c, imap4d/append.c, imap4d/create.c, imap4d/delete.c, imap4d/fetch.c, imap4d/id.c, imap4d/idle.c, imap4d/list.c, imap4d/namespace.c, imap4d/rename.c, imap4d/search.c, imap4d/status.c, imap4d/store.c, imap4d/uid.c, imap4d/util.c, libmu_argp/compat.c, libmu_auth/ldap.c, libmu_auth/sql.c, libmu_scm/mu_message.c, libmu_sieve/actions.c, libmu_sieve/comparator.c, libmu_sieve/extensions/list.c, libmu_sieve/extensions/spamd.c, libmu_sieve/extensions/vacation.c, libmu_sieve/load.c, libmu_sieve/sieve.l, libmu_sieve/tests.c, libproto/imap/folder.c, libproto/mailer/smtp.c, libproto/mbox/mbox.c, libproto/mh/folder.c, libproto/mh/mbox.c, libproto/pop/folder.c, libproto/pop/mbox.c, libproto/pop/pop3_connect.c, maidag/forward.c, maidag/lmtp.c, maidag/maidag.c, maidag/maidag.h, maidag/mailquota.c, mail/alt.c, mail/copy.c, mail/decode.c, mail/escape.c, mail/followup.c, mail/mail.c, mail/mailline.c, mail/msgset.y, mail/print.c, mail/reply.c, mail/send.c, mail/shell.c, mail/util.c, mail/write.c, mailbox/address.c, mailbox/amd.c, mailbox/assoc.c, mailbox/attachment.c, mailbox/attribute.c, mailbox/cfg_lexer.l, mailbox/date.c, mailbox/filter.c, mailbox/gdebug.c, mailbox/header.c, mailbox/kwd.c, mailbox/locale.c, mailbox/mailcap.c, mailbox/mailer.c, mailbox/message.c, mailbox/message_stream.c, mailbox/mime.c, mailbox/msrv.c, mailbox/mutil.c, mailbox/parse822.c, mailbox/progmailer.c, mailbox/rfc2047.c, mailbox/syslog.c, mailbox/url.c, mailbox/version.c, mh/mh.h, mh/mh_alias.l, mh/mh_ctx.c, mh/mh_fmtgram.y, mh/mh_init.c, mh/mh_list.c, mh/mh_msgset.c, mh/mh_sequence.c, mh/mh_whatnow.c, mh/mh_whom.c, mh/mhn.c, mh/mhparam.c, mh/pick.y, mh/sortm.c, mimeview/mimetypes.y, pop3d/bulletin.c, pop3d/expire.c, pop3d/pop3d.c, pop3d/pop3d.h, pop3d/popauth.c, pop3d/user.c, readmsg/msglist.c, readmsg/readmsg.c, readmsg/readmsg.h, sql/mysql.c, sql/postgres.c: Use locale-independent cclass and str functions.
2007-11-18Make libmailutils independent from gnulib. Remove generated filesSergey Poznyakoff1
from the repository. Bootstrap directly from the gnulib CVS. * configure.ac: Update. * lib/Makefile.am: Update. * mailbox/Makefile.am: Update. * include/mailutils/Makefile.am (SUBDIRS): Remove gnu * include/mailutils/gnu/Makefile.am: Remove * examples/argcv.c, examples/mta.c, guimb/guimb.h, imap4d/imap4d.h, libargp/mu_argp.c, libargp/tls.c, maidag/maidag.h, mail/mail.h, mail/send.c, mail.local/mail.local.h, mh/mh.h: Remove getline.h * libproto/nntp/mbox.c: Include mailutils/md5.h * libargp/cmdline.h: Include strings.h * m4/debug.m4, m4/enable.m4, m4/gsasl.m4, m4/guile.m4, m4/mu_libobj.m4: Minor fix * m4/intmax.m4,m4/inttypes-pri.m4,m4/inttypes_h.m4: Update * mailbox/alloca.h: Remove * mailbox/mailbox.c: Include string.h * mailbox/nls.c: Include locale.h * po/Makevars: Remove. * absolute-header.m4, alloca.m4, allocsa.m4, argp.m4, codeset.m4, d-type.m4, eealloc.m4, eoverflow.m4, error.m4, exitfail.m4, extensions.m4, fnmatch.m4, full-header-path.m4, getdelim.m4, getline.m4, getlogin_r.m4, getndelim2.m4, getopt.m4, getpass.m4, gettext.m4, glibc2.m4, glibc21.m4, glob.m4, gnulib.m4, iconv.m4, intdiv0.m4, isc-posix.m4, lcmessage.m4, lib-ld.m4, lib-link.m4, lib-prefix.m4, lock.m4, longdouble.m4, longlong.m4, mailbox-link.m4, mbchar.m4, mbiter.m4, mbrtowc.m4, mbstate_t.m4, mbswidth.m4, memchr.m4, mempcpy.m4, minmax.m4, obstack.m4, onceonly.m4, po.m4, printf-posix.m4, progtest.m4, regex.m4, restrict.m4, setenv.m4, signed.m4, size_max.m4, snprintf.m4, ssize_t.m4, stat-macros.m4, stdbool.m4, stdint.m4, stdint_h.m4, strcase.m4, strchrnul.m4, strdup.m4, strerror_r.m4, strndup.m4, strnlen.m4, strtok_r.m4, sysexits.m4, uint32_t.m4, uintmax_t.m4, ulonglong.m4, unistd_h.m4, unlocked-io.m4, vasnprintf.m4, vasprintf.m4, visibility.m4, vsnprintf.m4, wchar_t.m4, wcwidth.m4, wint_t.m4, xalloc.m4, xsize.m4: Remove. * alloca.c, allocsa.c, allocsa.h, asprintf.c, basename.c, error.c, error.h, exit.h, exitfail.c, exitfail.h, fnmatch.c, fnmatch_.h, fnmatch_loop.c, getpass.c, getpass.h, intprops.h, malloc.c, mbswidth.c, mbswidth.h, md5.c, md5.h, obstack.c, obstack.h, realloc.c, setenv.c, setenv.h, snprintf.c, snprintf.h, stdbool.h, stdbool_.h, strcasecmp.c, strncasecmp.c, strsignal.c, strtok_r.c, unsetenv.c, utmp.c, vasprintf.c, vasprintf.h, vsyslog.c, xalloc-die.c, xalloc.h, xalloc_die.c, xmalloc.c, xsize.h, xstrdup.c: Remove. * alloca.c, alloca_.h, argp-ba.c, argp-eexst.c, argp-fmtstream.c, argp-fmtstream.h, argp-fs-xinl.c, argp-help.c, argp-namefrob.h, argp-parse.c, argp-pin.c, argp-pv.c, argp-pvh.c, argp-xinl.c, argp.h, asnprintf.c, fnmatch.c, fnmatch_.h, fnmatch_loop.c, getdelim.c, getdelim.h, getline.c, getline.h, getlogin_r.c, getlogin_r.h, getndelim2.c, getndelim2.h, getopt.c, getopt.h, getopt1.c, getopt_.h, getopt_int.h, gettext.h, glob-libc.h, glob.c, glob_.h, malloc.c, mbchar.c, mbchar.h, mbuiter.h, memchr.c, mempcpy.c, mempcpy.h, minmax.h, pin.c, printf-args.c, printf-args.h, printf-parse.c, printf-parse.h, regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, regexec.c, stat-macros.h, stdbool_.h, stdint_.h, strcase.h, strcasecmp.c, strchrnul.c, strchrnul.h, strdup.c, strdup.h, strncasecmp.c, strndup.c, strndup.h, strnlen.c, strnlen.h, strnlen1.c, strnlen1.h, strtok_r.c, strtok_r.h, sysexit_.h, unlocked-io.h, vasnprintf.c, vasnprintf.h, vsnprintf.c, vsnprintf.h, wcwidth.h, xsize.h: Remove.
2007-06-28Mark printf-like calls with MU_PRINTFLIKE.Sergey Poznyakoff1
2007-06-27Prepare for the GPL v.3 release. Relicense programs under GPL v.3, libraries ↵Sergey Poznyakoff1
under LPGL v.3
2007-06-26Use mu_header_sget to retrieve context and configuration settings. Update ↵Sergey Poznyakoff1
all callers.
2007-06-24Use mu_address_sget functions, where possible.Sergey Poznyakoff1
2006-09-10Include argp-namefrob.h is no longer neededSergey Poznyakoff1
2006-05-15(mh_makedir): New functionSergey Poznyakoff1