-/* $Cambridge: exim/src/src/parse.c,v 1.13 2008/06/06 14:40:21 michael Exp $ */
-
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2007 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for parsing addresses */
uschar *p, *t;
int hlen;
BOOL coded = FALSE;
+BOOL first_byte = FALSE;
if (charset == NULL) charset = US"iso-8859-1";
int ch = *s++;
if (t > buffer + buffer_size - hlen - 8) break;
- if (t - p > 70)
+ if ((t - p > 67) && !first_byte)
{
*t++ = '?';
*t++ = '=';
if (ch < 33 || ch > 126 ||
Ustrchr("?=()<>@,;:\\\".[]_", ch) != NULL)
{
- if (ch == ' ') *t++ = '_'; else
+ if (ch == ' ')
+ {
+ *t++ = '_';
+ first_byte = FALSE;
+ }
+ else
{
sprintf(CS t, "=%02X", ch);
while (*t != 0) t++;
coded = TRUE;
+ first_byte = !first_byte;
}
}
- else *t++ = ch;
+ else { *t++ = ch; first_byte = FALSE; }
}
*t++ = '?';
obs-day-of-week = [CFWS] day-name [CFWS]
*/
-uschar *o;
-static const uschar *day_name[7]={ "mon", "tue", "wed", "thu", "fri", "sat", "sun" };
+static const uschar *day_name[7]={ US"mon", US"tue", US"wed", US"thu", US"fri", US"sat", US"sun" };
int i;
uschar day[4];
++str;
}
day[3]='\0';
-for (i=0; i<7; ++i) if (strcmp(day,day_name[i])==0) break;
+for (i=0; i<7; ++i) if (Ustrcmp(day,day_name[i])==0) break;
if (i==7) return NULL;
str=skip_comment(str);
return str;
*/
uschar *c,*n;
-static const uschar *month_name[]={ "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" };
+static const uschar *month_name[]={ US"jan", US"feb", US"mar", US"apr", US"may", US"jun", US"jul", US"aug", US"sep", US"oct", US"nov", US"dec" };
int i;
uschar month[4];