Age | Commit message (Collapse) | Author | Files |
|
* movemail/movemail.c (main): When using POP3 UIDLs for message
identification, be sure to store them in the X-UIDL header.
|
|
* libmailutils/diag/diag.c (mu_diag_vprintf): Fix debug level formatting.
It missed 's' after the escape character.
* mu/libexec/ldflags.c (lib_descr): Add dotmail.
|
|
These might be needed only in rare cases during the development
cycle. There is no use keeping them around.
* configure.ac (MU_AUTHLIBS_DEPENDENCY)
(DBMLIB_DEPENDENCY,SQLLIB_DEPENDENCY): Remove.
* imap4d/Makefile.am: Remove explicit _DEPENDENCIES.
* pop3d/Makefile.am: Likewise.
* libmu_auth/Makefile.am: Likewise.
* libmu_dbm/Makefile.am: Likewise.
|
|
This helps automake discover dependency on this library.
|
|
|
|
The DOT decoder accepts input consisting of two characters ".\n"
and decodes it to empty output. When encoding empty input, ".\n"
is produced
Similarly, CRLFDOT handles ".\r\n" the same way.
* libmailutils/filter/crlfdot.c (_crlfdot_encoder): Accept ".\r\n"
as input.
* libmailutils/filter/dot.c: Accept ".\n" as input.
* libmailutils/tests/crlfdot.at: Add new test.
* libmailutils/tests/dot.at: Likewise.
|
|
* imap4d/list.c (list_fun): Don't check if the returned
record matches refinfo->pfx->record. This is done by
mu_folder_scan.
(list_ref): Use mu_folder_scan.
|
|
* include/mailutils/folder.h (mu_list_response): Rename 'level' to
'depth'.
All uses updated.
|
|
system folders.
* include/mailutils/registrar.h (mu_record_match): New struct.
(mu_registrar_match_records): New proto.
* libmailutils/base/registrar.c (mu_registrar_match_records): New
function.
* libmailutils/mailbox/fsfolder.c (list_helper): Actually select
the matching record from scn->records (if supplied).
* libmailutils/tests/Makefile.am: Add new tests.
* libmailutils/tests/fsfolder.c: Minor changes.
* libmailutils/tests/testsuite.at: Add new tests.
* libmailutils/tests/fsfolder03.at: New file.
* libmailutils/tests/fsfolder04.at: New file.
|
|
* libmailutils/mailbox/fsfolder.c (list_helper): Fix
depth cut off.
Fix the lookup in scn->records.
* libmailutils/tests/fsfolder.c: Implement two test
records.
New command: "scan".
|
|
* libmailutils/tests/tesh.c: New file.
* libmailutils/tests/tesh.h: New file.
* libmailutils/tests/Makefile.am: Add new files.
* libmailutils/tests/fsfolder.c: Rewrite using test shell framework.
* libmailutils/tests/fsfolder00.at: Use semicolons to delimit commands.
* libmailutils/tests/fsfolder01.at: Likewise.
* libmailutils/tests/linetrack.c: Rewrite using test shell framework.
* libmailutils/tests/linetrack.at: Change command initial character to
dot.
* libmailutils/tests/listop.c: Rewrite using test shell framework.
* libmailutils/tests/list.at: Minor changes.
* libproto/dotmail/tests/dm_mesg.c: Rewrite using test shell framework.
* libproto/dotmail/tests/Makefile.am: Link dm_mesg with libmu_tesh
* libproto/dotmail/dotmail.c: Fix typo.
|
|
mu_string_prefix(A, B) returns true if B is the prefix of A.
mu_string_suffix(A, B) returns true if B is the suffix of A.
* include/mailutils/cstr.h (mu_string_prefix)
(mu_string_suffix): protos.
* libmailutils/string/Makefile.am: Add new files.
* libmailutils/string/strpref.c: New file.
* libmailutils/string/strsuf.c: New file.
|
|
New function mu_folder_scan provides an improved scanning interface.
In particular, it allows the user to abridge the scan to mailboxes
of certain type (or types).
Existing listing API functions are rewritten as alternative entry
points to mu_folder_scan.
* include/mailutils/folder.h (mu_folder_scanner): New struct.
(mu_folder_scan): New function.
* include/mailutils/registrar.h (mu_registrar_list_p): New function.
* include/mailutils/sys/folder.h (_mu_folder._list): Change
signature.
* libmailutils/base/registrar.c (mu_registrar_list_p): New function.
* libmailutils/mailbox/folder.c (mu_folder_scan): New function.
(mu_folder_enumerate): Rewrite as entry point to mu_folder_scan.
* libmailutils/mailbox/fsfolder.c: Use new API,
* libmailutils/tests/fsfolder.c: Rewrite scheme matcher.
* libmailutils/tests/fsfolder00.at: Fix test output.
* libmailutils/tests/fsfolder02.at: Likewise.
* libproto/imap/folder.c: Use new API.
|
|
* libproto/mh/folder.c (mh_dir_p): Check only regular files.
(_mh_list_p): Ditto. All directories are eligible for listing.
* libmailutils/base/registrar.c (mu_record_list_p): Remove
useless check.
|
|
This fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806
* mail/mail.c (cli_attach): Set mime_option.
|
|
* libmailutils/filter/dot.c (_dot_encoder): Don't emit additional
empty line on empty input (i.e. if mu_filter_lastbuf arrives when
dfa is in dot_encode_init state).
* libmailutils/tests/dot.at: Test empty input.
|
|
The dm_mbox tool is not needed after ff847bb1. Remove it.
Modify dm_mesg to optionally take commands from the command line.
Use it instead of dm_mbox in testcases.
|
|
* NEWS: Document the recent changes.
* THANKS: Add Kurt Hackenberg.
|
|
* libproto/mbox/mbox.c (restore_date): Fix possible uninitialized
memory access.
|
|
* include/mailutils/stream.h (mu_stream_header_copy): New proto.
* libmailutils/stream/hdrcpy.c: New file.
* libmailutils/stream/Makefile.am: Add hdrcpy.c
* libmailutils/tests/hdrcpy.c: New test program.
* libmailutils/tests/hdrcpy.at: New testcase.
* libmailutils/tests/Makefile.am: Add new test program and
testcase.
* libmailutils/tests/testsuite.at: Add new testcase.
* libproto/dotmail/tests/append.at: Add new tests.
* libmailutils/tests/.gitignore: Update.
* include/mailutils/sys/dotmail.h (mu_dotmail_message): Remove headers_scanned.
New field: uid_modified.
(mu_dotmail_mailbox): Change type for uidnext to unsigned long.
Remove scanned_uids_count.
(mu_dotmail_message_headers_prescan)
(mu_dotmail_mailbox_scan_uids): Remove.
(mu_dotmail_mailbox_uid_setup): New proto.
* libproto/dotmail/dotmail.c: Revamp UID support. See "Notes" on
line 251 for description.
* libproto/dotmail/message.c (mu_dotmail_message_reconstruct): Optimize
for the case where the message remains unchanged except for the
UID information.
* libproto/dotmail/tests/dm_mesg.c: Add mailbox inspection commands
from dm_mbox. Perhaps the latter can be removed.
|
|
* include/mailutils/sys/dotmail.h (mu_dotmail_message): New members:
body_size and body_dot_stuffed.
* libproto/dotmail/dotmail.c (dotmail_rescan_unlocked): Count
dot-unstuffed octets in the body.
Set dmsg->body_dot_stuffed to 1 if at least one byte was dot-stuffed.
* libproto/dotmail/message.c (dotmail_body_size): Return unstuffed
size.
(_msg_body_setup): If the body was dot-stuffed, return rdcache stream
built over the "DOT" decoder.
* libproto/dotmail/tests/body.at: Check dot-unstuffing.
|
|
* libmailutils/filter/dot.c (_dot_decoder): Don't emit extra newline
at the "\n.\n" marker.
* libmailutils/stream/stream.c (mu_stream_seterr): Don't treat
ENOSYS as fatal error.
* libmailutils/tests/dot.at: New file.
* libmailutils/tests/testsuite.at: Include dot.at.
* libmailutils/tests/Makefile.am: Add dot.at
* testsuite/smtp-msg.at: Remove extra newline from the expected
output.
* testsuite/smtp-str.at: Likewise.
|
|
* libproto/dotmail/tests/dm_mesg.c: Rewrite to take commands from stdin.
* libproto/dotmail/tests/Makefile.am: Add setattr.at
* libproto/dotmail/tests/testsuite.at (DM_MESG): New macro.
* libproto/dotmail/tests/setattr.at: New file.
* libproto/dotmail/tests/append.at: Use DM_MESG.
* libproto/dotmail/tests/attr.at: Likewise.
* libproto/dotmail/tests/body.at: Likewise.
* libproto/dotmail/tests/delete.at: Likewise.
* libproto/dotmail/tests/env.at: Likewise.
* libproto/dotmail/tests/header.at: Likewise.
* libproto/dotmail/tests/uid.at: Likewise.
|
|
Selecting the accuracy level allows the user to achieve the desired
balance between the speed of the folder scan and accuracy of mailbox
format detection.
The accuracy level can be set either from the configuration file,
using the mailbox.accuracy-level statement, or from the environment,
using the MU_AUTODETECT_ACCURACY variable.
The default accuracy level 1 discerns valid mbox and dotmail mailboxes
providing reasonable scan speed.
Level 0 (previous default) does not discern them, but provides maximal
speed.
Level 2 and higher provide better accuracy at the price of speed.
* include/mailutils/url.h (MU_AUTODETECT_ACCURACY_AUTO)
(MU_AUTODETECT_ACCURACY_FAST)
(MU_AUTODETECT_ACCURACY_DEFAULT): New constants.
(mu_scheme_autodetect_p): New proto, moved here from util.h
(mu_set_autodetect_accuracy)
(mu_autodetect_accuracy): New protos.
* libmailutils/base/schemeauto.c (mu_set_autodetect_accuracy)
mu_autodetect_accuracy): New functions.
* libmailutils/cli/stdcapa.c: New configuration statement:
mailbox.autodetect-accuracy.
* libmailutils/url/create.c (_mu_url_create_internal): Assume the
"file" scheme if the MU_URL_PARSE_LOCAL flag is set.
* libproto/dotmail/folder.c: Implement format detection.
Three accuracy levels: 0, 1, and >1
* libproto/mbox/folder.c (_mbox_is_scheme): Implement default format
detection.
* libproto/dotmail/tests/Makefile.am: Add new test.
* libproto/dotmail/tests/autodetect.at: New test.
* libproto/dotmail/tests/dm_detect.c: New file.
* libproto/dotmail/tests/testsuite.at: Add new test.
|
|
* configure.ac: Enable new local format.
* include/mailutils/registrar.h (mu_dotmail_record): New extern.
(mu_register_all_mbox_formats)
(mu_register_local_mbox_formats): Add mu_dotmail_record
* include/mailutils/sys/dotmail.h: New file.
* libproto/dotmail/Makefile.am: New file.
* libproto/dotmail/dotmail.c: New file.
* libproto/dotmail/message.c: New file.
* libproto/dotmail/folder.c: New file.
* libproto/dotmail/tests/.gitignore: New file.
* libproto/dotmail/tests/Makefile.am: New file.
* libproto/dotmail/tests/atlocal.in: New file.
* libproto/dotmail/tests/count.at: New file.
* libproto/dotmail/tests/dm_mbox.c: New file.
* libproto/dotmail/tests/dm_mesg.c: New file.
* libproto/dotmail/tests/env.at: New file.
* libproto/dotmail/tests/header.at: New file.
* libproto/dotmail/tests/recent.at: New file.
* libproto/dotmail/tests/testsuite.at: New file.
* libproto/dotmail/tests/attr.at: New file.
* libproto/dotmail/tests/body.at: New file.
* libproto/dotmail/tests/uid.at: New file.
* libproto/dotmail/tests/dm_qget.c: New file.
* libproto/dotmail/tests/qget.at: New file.
* libproto/dotmail/tests/append.at: New file.
* libproto/dotmail/tests/delete.at: New file.
* libmu_scm/mailutils/ancilla.scm: Fix regular expression to
take into account changes introduced by 4bdc41ff90.
|
|
mu_mailbox_message_unseen
* libmailutils/mailbox/mailbox.c (mu_mailbox_messages_recent)
(mu_mailbox_message_unseen): Fall back to iteration if no
backend-specific method is provided.
|
|
* libmailutils/mailbox/msgenv.c (message_envelope_date): Use timestamp
from Received header.
(message_envelope_sender): Give preference to Return-Path header
|
|
* am/enable.m4 (MU_ENABLE_SUPPORT)
(MU_ENABLE_BUILD): Use m4_-prefixed directives.
(MU_ENABLE_MAILBOX_FORMAT)
(MU_ENABLE_LOCAL_MAILBOX_FORMAT_
(MU_ENABLE_REMOTE_MAILBOX_FORMAT): New macros.
(MU_LIB_MAILBOX)
(MU_LIB_LOCAL_MAILBOX)
(MU_LIB_REMOTE_MAILBOX): New substitution variables.
* configure.ac: Use new macros to enable mailbox formats
* libproto/Makefile.am: Augment SUBDIRS instead of using Makefile
variables.
* comsat/Makefile.am: Use MU_LIB_.*MAILBOX macros to link in the
necessary libraries.
* examples/Makefile.am: Likewise.
* examples/cpp/Makefile.am: Likewise.
* frm/Makefile.am: Likewise.
* imap4d/Makefile.am: Likewise.
* include/mailutils/sys/Makefile.am: Likewise.
* libmu_scm/Makefile.am: Likewise.
* libproto/Makefile.am: Likewise.
* maidag/Makefile.am: Likewise.
* mail/Makefile.am: Likewise.
* messages/Makefile.am: Likewise.
* mh/Makefile.am: Likewise.
* movemail/Makefile.am: Likewise.
* mu/libexec/Makefile.am: Likewise.
* pop3d/Makefile.am: Likewise.
* python/2/libmu_py/Makefile.am: Likewise.
* python/3/libmu_py/Makefile.am: Likewise.
* readmsg/Makefile.am: Likewise.
* sieve/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
|
|
* python/3/libmu_py/mailcap.c: Fix leftover uses of PyString_FromString
and PyInt_FromLong.
|
|
* NEWS: Update.
* configure.ac: Raise version number
Raise VI_CURRENT and clear VI_REVISION (due to 18e23d6e).
* libproto/imap/close.c: Add missing include.
|
|
|
|
* configure.ac: Build libmailutils/mailcap/Makefile
* include/mailutils/mailcap.h: Rewrite
* include/mailutils/sys/Makefile.am: Add mailcap.h
* include/mailutils/sys/mailcap.h: New file.
* include/mailutils/util.h: Add missing include.
* lib/mailcap.c: Rewrite using new API.
* libmailutils/Makefile.am: Build in mailcap
* libmailutils/base/Makefile.am: Remove mailcap.c
* libmailutils/base/mailcap.c: Remove.
* libmailutils/mailcap/Makefile.am: New file.
* libmailutils/mailcap/ctmatch.c: New file.
* libmailutils/mailcap/deferrclos.c: New file.
* libmailutils/mailcap/mcp_creat.c: New file.
* libmailutils/mailcap/mcp_destr.c: New file.
* libmailutils/mailcap/mcp_err.c: New file.
* libmailutils/mailcap/mcp_flags.c: New file.
* libmailutils/mailcap/mcp_get.c: New file.
* libmailutils/mailcap/mcp_sel.c: New file.
* libmailutils/mailcap/mcp_count.c: New file.
* libmailutils/mailcap/mcp_find.c: New file.
* libmailutils/mailcap/ent_cmd.c: New file.
* libmailutils/mailcap/ent_creat.c: New file.
* libmailutils/mailcap/ent_destr.c: New file.
* libmailutils/mailcap/ent_locus.c: New file.
* libmailutils/mailcap/ent_type.c: New file.
* libmailutils/mailcap/fieldacc.c: New file.
* libmailutils/mailcap/fields.c: New file.
* libmailutils/mailcap/finder.c: New file.
* libmailutils/mailcap/parse.c: New file.
* libmailutils/mailcap/parsefile.c: New file.
* libmailutils/tests/mailcap.c: Rewrite using new API. Improve cli
* libmailutils/tests/mcf.c: New file.
* libmailutils/tests/ctm.c: New file.
* libmailutils/tests/ctm.at: New file.
* libmu_cpp/mailcap.cc: Rewrite using new API.
* python/2/libmu_py/mailcap.c: Rewrite using new API.
* python/3/libmu_py/mailcap.c: Rewrite using new API.
* examples/python/2/mailcap.py: Minor change. This example is
broken with the new API. Should be fixed.
* include/mailutils/cpp/mailcap.h: Update
* include/mailutils/cpp/pop3.h: Update
|
|
The mu_iterator_skip_while function continues iteration while the
supplied predicate function returns true.
The mu_iterator_skip_until function continues iteration until the
supplied predicate function returns true.
* include/mailutils/iterator.h: Add new prototypes.
* libmailutils/base/iterator.c: Implement new functions.
|
|
The new implementation consists of two independent state machines for
each transcript channel (input and output). The MU_XSCRIPT_PAYLOAD
state can be turned on for a predefined number of bytes on each channel.
After that many bytes pass through, the state will return back to
MU_XSCRIPT_NUMBER. This allows, in particular, to improve logging of
client commands containing literals in imap4d.
* include/mailutils/stream.h (MU_IOCTL_XSCRIPTSTREAM_CHANNEL): New
ioctl subcode.
(mu_xscript_channel): New struct.
(MU_XSCRIPT_LEVEL_IS_PACKED)
(MU_XSCRIPT_LEVEL_MASK,MU_XSCRIPT_LEVEL_UNMASK)
(MU_XSCRIPT_LEVEL_PACK): New macros.
* include/mailutils/sys/xscript-stream.h (_mu_xscript_channel): New struct.
(_mu_xscript_stream): Keep independent state for each channel.
* libmailutils/stream/xscript-stream.c: Rewrite as a state machine with
independent states for input and output channels.
* libmailutils/tests/xscript.at: Test packed channel levels and
MU_IOCTL_XSCRIPTSTREAM_CHANNEL ioctl.
* libmailutils/tests/xscript.c: Rewrite command parser.
* imap4d/imap4d.h (xscript_declare_client_payload): New proto.
* imap4d/util.c (xscript_declare_client_payload): New function.
* imap4d/io.c (imap4d_readline): Use xscript_declare_client_payload
after literals.
|
|
This requires libunistring.
* NEWS: Update.
* README: Update.
* configure.ac: Check for libunistring.
* libmailutils/base/version.c: Reflect libunistring usage.
* imap4d/Makefile.am: Link with libunistring, if available.
* imap4d/imap4d.h (unistr_downcase)
(unistr_is_substring): New protos.
* imap4d/search.c (_scan_header)
(_scan_header_all,_match_text): Use unistr_is_substring for
searches.
* imap4d/unistr_c.c: New file.
* imap4d/unistr_u8.c: New file.
* imap4d/tests/search.at: Add new test.
|
|
Adding 1 to the buffer size is necessary, because _stream_scandelim
requires buffer to provide enough space to accomodate the trailing 0.
Consequently, the minimal acceptable buffer size is 2.
|
|
* search.c (_match_multipart): Initialize result.
|
|
* imap4d/search.c (parse_search_key): Fix eventual NULL pointer dereference.
|
|
* imap4d/tests/.gitignore: New file.
* imap4d/tests/ckiconv.c: New file.
* imap4d/tests/Makefile.am: Build ckiconv.c
* imap4d/tests/search.at: Add tests for BODY, TEXT and CHARSET
* imap4d/tests/testsuite.at (IMAP4D_WITH_PREREQ): New macro
(IMAP4D_CHECK): Skip test if the supplied prerequisite is not
satisfied.
* testsuite/spool/search2.mbox: New file.
* testsuite/spool/DISTFILES: Add search2.mbox.
* mail/decode.c (mime_descend): Fix handling of message/rfc822.
|
|
|
|
* imap4d/search.c: Implement proper BODY searches. Implement CHARSET.
* imap4d/util.c (util_strcasestr): Remove. Use mu_c_strcasestr instead.
* imap4d/imap4d.h: Likewise.
* NEWS: Document changes.
|
|
* libmailutils/stream/stream.c (mu_stream_write): Return EIO on
short writes if pnwritten is NULL.
* libmailutils/stream/streamcpy.c (mu_stream_copy): Likewise (if
source stream size is known.
|
|
Do not propagate streamref's error and eof state upstream.
* libmailutils/stream/streamref.c (streamref_return): Remove function.
All uses updated.
|
|
|
|
* mail/echo.c: Implement variable and command expansion.
* mail/mail.c (main): Set PID mailvar.
* mail/mailvar.c (mailvar_tab): New variable PID (to
help in debugging).
(set_folder): Expand initial ~
* mail/set.c: Remove misguiding comment.
|
|
* libmailutils/imapio/wildmatch.c (_wild_match): Handle %
at the end of input same way as *.
|
|
|
|
* mail/from.c (sender_string): New function.
* mail/mail.h: Likewise.
* mail/msgset.y: Fix memory management and error reporting.
Implement sender address matching.
* mail/util.c (util_outfolder_name): Always return allocated value.
* mail/copy.c (mail_copy0): Add typecast.
|
|
* doc/texinfo/programs/mail.texi: Document the @ notation.
* NEWS: Likewise.
* mail/copy.c (mail_copy0): Rewrite. Use mailbox URLs instead of
filenames.
* mail/file.c (mail_expand_name): Return integer code. On success,
convert the expanded name to URL and return it in the memory location
supplied by the second argument. Use new shorthand notation @, for
the name of the file given with the -f option.
All uses changed.
* mail/mail.c (secondary_url): New global.
(main): Save the URL of the file given with the -f option in
secondary_url. Use it, instead of the file variable, to decide
what kind of summary message to display for empty mailbox (see
commit 99b6b6f02c3cf94ebe1daf7233a702c743d6a2b5).
* mail/mail.h (secondary_url): New global.
(mail_expand_name): Change prototype.
* mail/mailline.c: Minor changes.
* libmailutils/wicket/noauth.c (noauth_ticket_get_cred): Return
MU_ERR_AUTH_NO_CRED.
|
|
|