* some glib-isms.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "notmuch-private.h"
-#define _GNU_SOURCE
+#include <time.h>
-#include <glib.h>
+#include <glib.h> /* For g_ascii_strncasecmp only. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h> /* for MAXHOSTNAMELEN */
-#else
-#define MAXHOSTNAMELEN 64
-#endif
-#ifdef HAVE_UTSNAME_DOMAINNAME
-#include <sys/utsname.h> /* for uname() */
+#ifndef FALSE
+#define FALSE 0
#endif
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h> /* Unix header for getpid() */
-#endif
-#ifdef G_OS_WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#include <process.h>
-#define getpid() _getpid()
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
+
+#ifndef TRUE
+#define TRUE 1
#endif
-#include <ctype.h>
-#include <errno.h>
-
-#include "gmime-utils.h"
-#include "gmime-table-private.h"
-#include "gmime-parse-utils.h"
-#include "gmime-part.h"
-#include "gmime-charset.h"
-#include "gmime-iconv.h"
-#include "gmime-iconv-utils.h"
-
-#ifdef ENABLE_WARNINGS
-#define w(x) x
-#else
-#define w(x)
-#endif /* ENABLE_WARNINGS */
#define d(x)
111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
};
-/* hrm, is there a library for this shit? */
+/* hrm, is there a library for this stuff? */
static struct {
- char *name;
+ const char *name;
int offset;
} tz_offsets [] = {
{ "UT", 0 },
{ "Y", 1200 },
};
-static char *tm_months[] = {
+static const char *tm_months[] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
-static char *tm_days[] = {
+static const char *tm_days[] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
size_t len;
} date_token;
-#define date_token_free(tok) g_slice_free (date_token, tok)
-#define date_token_new() g_slice_new (date_token)
+#define date_token_free(tok) free (tok)
+#define date_token_new() malloc (sizeof (date_token))
static date_token *
datetok (const char *date)
get_wday (const char *in, size_t inlen)
{
int wday;
-
- g_return_val_if_fail (in != NULL, -1);
+
+ if (in == NULL)
+ return -1;
if (inlen < 3)
return -1;
{
int mday;
- g_return_val_if_fail (in != NULL, -1);
+ if (in == NULL)
+ return -1;
mday = decode_int (in, inlen);
{
int i;
- g_return_val_if_fail (in != NULL, -1);
+ if (in == NULL)
+ return -1;
if (inlen < 3)
return -1;
{
int year;
- g_return_val_if_fail (in != NULL, -1);
+ if (in == NULL)
+ return -1;
if ((year = decode_int (in, inlen)) == -1)
return -1;
return year;
}
-static gboolean
+static int
get_time (const char *in, size_t inlen, int *hour, int *min, int *sec)
{
register const char *inptr;
return -1;
}
+#define HAVE_TIMEZONE
+
static time_t
mktime_utc (struct tm *tm)
{
struct tm tm;
time_t t;
- g_return_val_if_fail (tokens != NULL, (time_t) 0);
+ if (tokens == NULL)
+ return 0;
token = tokens;
static time_t
parse_broken_date (date_token *tokens, int *tzone)
{
- gboolean got_wday, got_month, got_tzone;
+ int got_wday, got_month, got_tzone;
int hour, min, sec, offset, n;
date_token *token;
struct tm tm;
}
#endif
-
-/**
- * g_mime_utils_header_decode_date:
- * @str: input date string
- * @tz_offset: timezone offset
- *
- * Decodes the rfc822 date string and saves the GMT offset into
- * @tz_offset if non-NULL.
- *
- * Returns: the time_t representation of the date string specified by
- * @str or (time_t) %0 on error. If @tz_offset is non-NULL, the value
- * of the timezone offset will be stored.
- **/
time_t
-g_mime_utils_header_decode_date (const char *str, int *tz_offset)
+notmuch_parse_date (const char *str, int *tz_offset)
{
date_token *token, *tokens;
time_t date;
-
+
+ if (str == NULL)
+ return 0;
+
if (!(tokens = datetok (str))) {
if (tz_offset)
*tz_offset = 0;
- return (time_t) 0;
+ return 0;
}
if (!(date = parse_rfc822_date (tokens, tz_offset)))