summaryrefslogtreecommitdiff
path: root/libmailutils/datetime
AgeCommit message (Collapse)AuthorFiles
2024-01-06Update copyright yearsSergey Poznyakoff14
2023-01-22Update copyright yearsSergey Poznyakoff13
2022-01-02Update copyright yearSergey Poznyakoff13
2021-11-20Fix typosSergey Poznyakoff2
2021-11-01Require GNU bison and flexSergey Poznyakoff3
* am/bison.m4: Use AC_PATH_PROG. * am/flex.m4: Likewise. * configure.ac: Remove MU_YLWRAP. * include/mailutils/yyloc.h (YYLTYPE): Remove. This needs be defined in each grammar source individually. * mu-aux/Makefile.am: Remove gylwrap. * mu-aux/gylwrap: Remove. * libmailutils/cfg/Makefile.am: Rewrite rules for building grammars and lexers. * libmailutils/datetime/Makefile.am: Likewise. * libmu_sieve/Makefile.am: Likewise. * mail/Makefile.am: Likewise. * mh/Makefile.am: Likewise. * mimeview/Makefile.am: Likewise. * libmailutils/cfg/gylwrap.conf: Remove. * libmailutils/datetime/gylwrap.conf: Remove. * libmu_sieve/gylwrap.conf: Remove. * mh/gylwrap.conf: Remove. * mimeview/gylwrap.conf: Remove. * libmailutils/cfg/lexer.l: Use %option prefix * libmu_sieve/sieve-lex.l: Likewise. * mh/mh_alias_lex.l: Likewise. * mimeview/lexer.l: Likewise. * libmailutils/cfg/parser.y: Use api.prefix and %code requires. * libmailutils/datetime/parsedate.y: Likewise. * mh/mh_alias_gram.y: Likewise. * mh/mh_fmtgram.y: Likewise. * mh/pick-gram.y: Likewise. * libmu_sieve/sieve-gram.y: Likewise. * mimeview/grammar.y: Likewise. * testsuite/lib/mailutils.exp (mu_create_config): Fix source location.
2021-09-30Fix timezone calculation (see https://savannah.gnu.org/bugs/?61239)Sergey Poznyakoff1
* libmailutils/datetime/utcoff.c (mu_utc_offset): Fix the timezone correction.
2021-01-05Update copyright yearsSergey Poznyakoff13
2020-11-27Don't use __FILE__ and __LINE__ in mu_debug.Sergey Poznyakoff1
This is spurious as it can be enabled by the debug.line-info configuration directive.
2020-11-27mu_scan_datetime: Fix error recovery. %Z handles both time-zone forms.Sergey Poznyakoff1
The value stored in the memory location pointed to by the endp argument has changed. On the MU_ERR_PARSE error, it is (as earlier) the position in input where conversion stopped. On the MU_ERR_FORMAT, however, it is the character in fmt where the format error was detected. * libmailutils/datetime/scantime.c (peek_state): Return MU_ERR_FORMAT if mu_list_tail fails (the list is empty). This reflects unbalanced closing parenthesis or bracket. (scan_recovery): fix algorithm. (mu_scan_datetime): %Z handles both abbreviated time-zones and time-zones as hour offset from GMT. Improve error handling. On MU_ERR_PARSE error, point *endp to the character in input where conversion stopped. On MU_ERR_FORMAT error, point it to the character in fmt, where the format error was detected. * libmailutils/tests/scantime.c: Improve error handling. * libmailutils/tests/scantime.at: More testcases.
2020-11-26mboxrb: Keep timestamps in normalized formSergey Poznyakoff2
* include/mailutils/datetime.h (mu_timezone_offset): New proto. * libmailutils/datetime/scantime.c: New conversion: %Z (timezone abbreviation). * libmailutils/datetime/parsedate.y (mu_timezone_offset): New function. Returns time offset in seconds corresponding to the given timezone abbreviation. * include/mailutils/sys/mboxrb.h (mu_mboxrb_hdr): Remove unneeded enum. (mu_mboxrb_message): Remove env_date_start, New member "date" holds the string representation of the envelope timestamp in normalized form - ctime(3), UTC. * libproto/mbox/mboxrb.c (scan_message_finalize): New function. (scan_message_begin): New function. When initializing the message, timestamps in obsolete forms are converted to normalized representation. (mboxrb_rescan_unlocked): Use scan_message_finalize and scan_message_begin. * libproto/mbox/message.c (mboxrb_envelope_date): Get normalized timestamp from the date member, * libproto/mbox/tests/env.at: Reflect the above changes.
2020-08-02Provide fallback methods for restoring the envelope date.Sergey Poznyakoff1
* libmailutils/mailbox/msgenv.c (message_envelope_date): Try Received, X-Envelope-Date, and Date headers, in that order. * libmailutils/datetime/scantime.c (mu_scan_datetime): Timezone defaults to UTC.
2020-06-14Fix memory leaks.Sergey Poznyakoff1
* libmailutils/base/amd.c (amd_message_stream_close): Use mu_stream_destroy instead of mu_stream_close. * libmailutils/base/ctparse.c (content_type_parse): Free value. * libmailutils/base/tilde.c (mu_tilde_expansion): Free proto. * libmailutils/cfg/driver.c (mu_config_destroy_container): Free refcount. * libmailutils/cfg/parser.y (mu_cfg_tree_postprocess): Destroy iterator. (mu_cfg_destroy_tree): Free the tree itself. * libmailutils/datetime/scantime.c (pop_input): Free the popped element. * libmailutils/mailer/mailer.c (send_fragments): Destroy mime after converting it to message. * libmailutils/mime/mimehdr.c (_mime_header_parse): Free ws after errors.
2020-04-28BugfixSergey Poznyakoff1
* libmailutils/datetime/utcoff.c (mu_utc_offset): Fix a typo.
2020-02-08Update copyright yearsSergey Poznyakoff13
2019-12-14Fix several linking issuesSergey Poznyakoff1
* configure.ac: Require libtool version 2.4.6 (MU_LINK_POSTFLAGS): Remove. Not needed with the patched version of ltmain.sh. Detect the presencecof GSSAPI. Fix displaying the status of GSSAPI support. Remove the hack introduced on 2010-02-19 (commit 35ac66f056). (MU_AUTHLIBS,SQLLIB) (SQL_LOADABLE_MODULES,SQL_LIBOBJS): Insert spaces only when needed. * mu-aux/ltmain.sh: ltmain.sh from libtool 2.4.6 with fixes from http://gray.gnu.org.ua/public/ltbug installed. * bootstrap.conf (bootstrap_epilogue): Install the fixed ltmain.sh version. * am/gssapi.m4: Allow for "yes" and "probe" argument values. Improve makefile style consistency . Uniformly use parentheses instead of curly braces in variable referencing; . Prefer to use Make variables over substitution variables, for variables prefixed with MU_; * comsat/Makefile.am * dotlock/Makefile.am * examples/Makefile.am * examples/cpp/Makefile.am * frm/Makefile.am * imap4d/Makefile.am * imap4d/tests/Makefile.am * lib/Makefile.am * libmailutils/Makefile.am * libmailutils/address/Makefile.am * libmailutils/auth/Makefile.am * libmailutils/base/Makefile.am * libmailutils/cfg/Makefile.am * libmailutils/cidr/Makefile.am * libmailutils/cli/Makefile.am * libmailutils/datetime/Makefile.am * libmailutils/diag/Makefile.am * libmailutils/filter/Makefile.am * libmailutils/imapio/Makefile.am * libmailutils/list/Makefile.am * libmailutils/locus/Makefile.am * libmailutils/mailbox/Makefile.am * libmailutils/mailcap/Makefile.am * libmailutils/mailer/Makefile.am * libmailutils/mime/Makefile.am * libmailutils/msgset/Makefile.am * libmailutils/opt/Makefile.am * libmailutils/property/Makefile.am * libmailutils/server/Makefile.am * libmailutils/sockaddr/Makefile.am * libmailutils/stdstream/Makefile.am * libmailutils/stream/Makefile.am * libmailutils/string/Makefile.am * libmailutils/tests/Makefile.am * libmailutils/url/Makefile.am * libmailutils/wicket/Makefile.am * libmu_auth/Makefile.am * libmu_cpp/Makefile.am * libmu_dbm/Makefile.am * libmu_scm/Makefile.am * libmu_scm/mailutils/Makefile.am * libmu_sieve/Makefile.am * libmu_sieve/extensions/Makefile.am * libproto/dotmail/Makefile.am * libproto/dotmail/tests/Makefile.am * libproto/imap/Makefile.am * libproto/imap/tests/Makefile.am * libproto/maildir/Makefile.am * libproto/mailer/Makefile.am * libproto/mbox/Makefile.am * libproto/mh/Makefile.am * libproto/nntp/Makefile.am * libproto/pop/Makefile.am * mail/Makefile.am * mapi/Makefile.am * mda/lib/Makefile.am * mda/lmtpd/Makefile.am * mda/mda/Makefile.am * mda/mda/tests/Makefile.am * mda/putmail/Makefile.am * messages/Makefile.am * mh/Makefile.am * mh/tests/Makefile.am * mimeview/Makefile.am * movemail/Makefile.am * mu/Makefile.am * mu/libexec/Makefile.am * pop3d/Makefile.am * python/2/libmu_py/Makefile.am * python/2/mailutils/Makefile.am * python/3/libmu_py/Makefile.am * python/3/mailutils/Makefile.am * readmsg/Makefile.am * sieve/Makefile.am * sql/Makefile.am * testsuite/Makefile.am
2019-01-03Update copyright yearsSergey Poznyakoff13
2018-10-23Fix static linkageSergey Poznyakoff1
* libmailutils/datetime/scantime.c (get_num): static * mu/libexec/ldflags.c: Make sure libmailutils is linked after all libmu_ libraries that rely on it.
2018-06-08Further fixes in the scheme library. Add guile testsuite.Sergey Poznyakoff1
* .gitignore: Ignore .gdbinit * README: Update. * configure.ac: Add guile testsuite * libmu_scm/Makefile.am (SUBDIRS): Add tests. * libmu_scm/mu_body.c: Update smob support. * libmu_scm/mu_dbgport.c (mu_scm_make_debug_port): Delegate buffering to mailutils streams layer. * libmu_scm/mu_mailbox.c: Update smob support. (mu-mailbox-more-messages?): Fix reversed return value. * libmu_scm/mu_message.c: Update smob support. * libmu_scm/mu_mime.c: Likewise. * libmu_scm/mu_port.c (mu_port_make_from_stream): Delegate buffering to mailutils streams layer. * libmu_scm/tests/.gitignore: New file. * libmu_scm/tests/Makefile.am: New file. * libmu_scm/tests/atlocal.in: New file. * libmu_scm/tests/const.at: New file. * libmu_scm/tests/mailbox-get-message.at: New file. * libmu_scm/tests/mailbox-get-size.at: New file. * libmu_scm/tests/mailbox-get-url.at: New file. * libmu_scm/tests/mailbox-iterate.at: New file. * libmu_scm/tests/mailbox-messages-count.at: New file. * libmu_scm/tests/mailbox-open-exc.at: New file. * libmu_scm/tests/mailbox-open.at: New file. * libmu_scm/tests/mailbox-print.at: New file. * libmu_scm/tests/message-create.at: New file. * libmu_scm/tests/message-print.at: New file. * libmu_scm/tests/testsuite.at: New file.
2018-01-19Version 3.4.90; update copyright yearsSergey Poznyakoff13
2017-09-27Assume UTC for IMAP internaldateSergey Poznyakoff2
* include/mailutils/datetime.h (mu_datetime_tz_utc): New proto. * libmailutils/datetime/tzutc.c: New file. * libmailutils/datetime/Makefile.am: Add tzutc.c * imap4d/fetch.c (_frt_internaldate): Assume UTC for internaldate. * libproto/imap/fetch.c (_date_mapper): Likewise. * mh/send.c: Improve diagnostics.
2017-07-04mu_parse_date_dtl: Minor fixSergey Poznyakoff1
* libmailutils/datetime/parsedate.y (mu_parse_date_dtl): Set tm.tm_gmtoff and tm.tm_zone upon return (if present).
2017-07-04Improve parsedate & related MH formatsSergey Poznyakoff1
* libmailutils/datetime/parsedate.y (spec production): If a non-signed number is given, treat it as a (positive) timezone, unless tz is already set, or as a year number, unless a year is already set, or throw an error otherwise. (mu_parse_date_dtl): Revert sign of the returned utc_offset * mh/mh_format.c (builtin_tzone): Compatibility fix * mh/tests/fmtfunc.at: Test more functions.
2017-07-04Move parsedate.y from base to datetime librarySergey Poznyakoff3
2017-06-29Bugfix in libdatetimeSergey Poznyakoff1
* libmailutils/datetime/utcoff.c (mu_utc_offset): Correct the difference if computed at the break of a day.
2017-01-01Happy GNU YearSergey Poznyakoff12
2016-01-22Update copyright yearsSergey Poznyakoff12
2015-03-02Update copyright yearsSergey Poznyakoff12
2014-08-10imap-related bugfixes.Sergey Poznyakoff1
* imap4d/search.c (imap4d_search0): Use parsebuf.err_mesg if defined, otherwise fall back to the general "parse error" message. * include/mailutils/datetime.h (MU_DATETIME_INTERNALDATE): Use %e for day. Day can be one-digit decimal. * libmailutils/datetime/scantime.c (mu_scan_datetime): Skip initial ws for %e. * mu/imap.c (com_search): Print newline after the "no matches" message.
2014-02-26Use AM_CPPFLAGS instead of INCLUDES; upgrade gintSergey Poznyakoff1
2014-02-05Update copyright years.Sergey Poznyakoff12
2013-04-02Rewrite mu_utc_offset in a more portable (hopefully) way.Sergey Poznyakoff1
2013-03-30Implement IMAP SEARCH. New function mu_mailbox_access_time.Sergey Poznyakoff1
* include/mailutils/imap.h (mu_imap_search): New proto. * libproto/imap/search.c: New file. * include/mailutils/sys/imap.h (MU_IMAP_CLIENT_SEARCH_RX): New state. * libproto/imap/fetch.c: Fix debugging categories * libproto/imap/mbox.c (_imap_messages_recent) (_imap_message_unseen): Use search if information is not readily available. * libproto/imap/status.c (_mu_imap_status_name_table): Comment out UNSEEN: its semantics is entirely different from what we need. * libproto/imap/Makefile.am: Add new file. * mu/imap.c: Implement search. * include/mailutils/sys/mailbox.h (_mu_mailbox) <_get_atime>: New method. * include/mailutils/mailbox.h (mu_mailbox_access_time): New proto. * libproto/mbox/mbox.c (_mailbox_mbox_init): Initialize >_get_atime. * libmailutils/mailbox/mailbox.c (mu_mailbox_access_time): New function. * libmailutils/datetime/utcoff.c (mu_utc_offset): Rewrite using tzset. * mh/msgchk.c: Implement --date. Check for new mail using both recent and unseen messages.
2012-01-05Happy GNU YearSergey Poznyakoff12
2011-12-13Minor changes.Sergey Poznyakoff1
* libmailutils/datetime/streamftime.c (mu_c_streamftime): Handle %Z separately. * libmu_sieve/sieve.y (mu_sieve_compile): Return MU_ERR_PARSE on errors.
2011-12-08New function mu_datetime_tz_local.Sergey Poznyakoff4
The function initializes mu_timezone structure to the local timezone. * include/mailutils/datetime.h (mu_utc_offset): Change return type. (mu_datetime_tz_local): New proto. * libmailutils/datetime/tzlocal.c: New file. * libmailutils/datetime/Makefile.am: Add new file. * libmailutils/datetime/scantime.c (mu_scan_datetime): Use mu_datetime_tz_local to initialize local TZ. * mh/mh_format.c (_parse_date): Likewise. * libmailutils/datetime/utcoff.c (mu_utc_offset): Returns int. * libmu_sieve/actions.c (mime_create_ds): Use mu_c_streamftime to format time directly to stream.
2011-12-08Rename mu_tm2time to mu_datetime_to_utc.Sergey Poznyakoff2
2011-12-08Revamp date/time calculations.Sergey Poznyakoff11
* configure.ac: Build libmailutils/datetime/Makefile.am * include/mailutils/datetime.h (mu_datetime_julianday) (mu_datetime_dayofweek,mu_datetime_dayofyear) (mu_datetime_year_days): New protos. * libmailutils/Makefile.am (SUBDIRS): Add datetime (libmailutils_la_LIBADD): Add libdatetime.la * libmailutils/base/Makefile.am (libbase_la_SOURCES): Remove date.c and strftime.c. * libmailutils/base/date.c: Remove. * libmailutils/base/strftime.c: Move to libmailutils/datetime * libmailutils/datetime/Makefile.am: New file. * libmailutils/datetime/dow.c: New file. * libmailutils/datetime/doy.c: New file. * libmailutils/datetime/jd.c: New file. * libmailutils/datetime/scantime.c: New file. * libmailutils/datetime/streamftime.c: New file. * libmailutils/datetime/tab.c: New file. * libmailutils/datetime/unixtime.c: New file. * libmailutils/datetime/utcoff.c: New file. * libmailutils/datetime/yd.c: New file. * libmailutils/tests/scantime.at: Fix yday numbers.

Return to:

Send suggestions and report system problems to the System administrator.