Commit a4a29fde a4a29fde714a0bc14f02e783e79f392811524894 by uid65697

Updated

1 parent 7f9a8e30
2003-12-25 Sergey Poznyakoff
Added changes from the backup repository
2003-12-24 Sergey Poznyakoff
* examples/spamd.c: New file.
......@@ -58,7 +62,7 @@
Date from Date to Repository
======== ======= ==========
1999-09-10 2003-12-01 Savannah
2003-12-04 *** Mirddin
2003-12-04 2003-12-25 Mirddin
2003-12-05 Sergey Poznyakoff
......
Makefile
Makefile.in
iconv.m4
codeset.m4
gettext.m4
glibc21.m4
iconv.m4
intdiv0.m4
inttypes-pri.m4
inttypes.m4
intmax.m4
inttypes_h.m4
inttypes.m4
inttypes-pri.m4
isc-posix.m4
lcmessage.m4
lib-ld.m4
lib-link.m4
lib-prefix.m4
longdouble.m4
longlong.m4
nls.m4
po.m4
printf-posix.m4
progtest.m4
signed.m4
size_max.m4
stdint_h.m4
uintmax_t.m4
ulonglong.m4
wchar_t.m4
wint_t.m4
xsize.m4
......
......@@ -339,6 +339,7 @@ mailbox_imap_open (mailbox_t mailbox, int flags)
return status;
}
f_imap->state = IMAP_NO_STATE;
break;
default:
status = EINVAL;
......
......@@ -34,8 +34,6 @@ Things to consider:
--> Groups no longer show up in the address_t list.
- Need a way to parse "<>", it's a valid SMTP address...
- Need a way to parse ",,,", it's a valid address-list, it just doesn't
have any addresses.
......@@ -1022,6 +1020,13 @@ parse822_route_addr (const char **p, const char *e, address_t * a)
return rc;
}
if (!(rc = parse822_special (p, e, '>')))
{
(void) (((rc = fill_mb (a, 0, 0, 0, 0)) == EOK)
&& ((rc = str_append (&(*a)->email, "")) == EOK));
return rc;
}
parse822_route (p, e, &route);
......
......@@ -596,7 +596,7 @@ smtp_send_message (mailer_t mailer, message_t argmsg, address_t argfrom,
case SMTP_ENV_FROM:
ENV_FROM:
{
status = smtp_writeline (smtp, "MAIL FROM: %s\r\n", smtp->mail_from);
status = smtp_writeline (smtp, "MAIL FROM: <%s>\r\n", smtp->mail_from);
CHECK_ERROR (smtp, status);
smtp->state = SMTP_MAIL_FROM;
}
......@@ -639,7 +639,7 @@ smtp_send_message (mailer_t mailer, message_t argmsg, address_t argfrom,
CHECK_ERROR (smtp, status);
}
status = smtp_writeline (smtp, "RCPT TO: %s\r\n", to);
status = smtp_writeline (smtp, "RCPT TO: <%s>\r\n", to);
free (to);
......
......@@ -386,7 +386,8 @@ list-ietf-wg-apps-drums@faerber.muc.de (=?ISO-8859-1?Q?Claus_F=E4rber?=)=> pcoun
1 email <0xdeadbeef-request@petting-zoo.net>
local-part <0xdeadbeef-request> domain <petting-zoo.net>
<>=> error MU_ERR_BAD_822_FORMAT
<>=> pcount 1
1 email <>
<Christia.Roberts@nrc.ca>=> pcount 1
1 email <Christia.Roberts@nrc.ca>
......
......@@ -1822,40 +1822,12 @@ builtin_isreply (struct mh_machine *mach)
static void
decode_string (strobj_t *obj)
{
char *charset = NULL;
char *tmp;
int rc;
if (strobj_is_null (obj))
return;
charset = mh_global_profile_get ("Charset", NULL);
if (!charset)
return;
if (strcasecmp (charset, "auto") == 0)
{
/* Try to deduce the charset from LC_ALL variable */
tmp = getenv ("LC_ALL");
if (tmp)
{
char *sp;
char *lang;
char *terr;
lang = strtok_r (tmp, "_", &sp);
terr = strtok_r (NULL, ".", &sp);
charset = strtok_r (NULL, "@", &sp);
if (!charset)
charset = mu_charset_lookup (lang, terr);
}
}
if (!charset)
return;
rc = rfc2047_decode (charset, strobj_ptr (obj), &tmp);
if (!rc)
if (mh_decode_2047 (strobj_ptr (obj), &tmp) == 0)
{
strobj_free (obj);
strobj_create (obj, tmp);
......
......@@ -806,3 +806,36 @@ mh_set_reply_regex (const char *str)
err ? ": " : "",
err ? err : "");
}
int
mh_decode_2047 (char *text, char **decoded_text)
{
char *charset = mh_global_profile_get ("Charset", NULL);
if (!charset)
return 1;
if (strcasecmp (charset, "auto") == 0)
{
/* Try to deduce the charset from LC_ALL variable */
char *tmp = getenv ("LC_ALL");
if (tmp)
{
char *sp;
char *lang;
char *terr;
lang = strtok_r (tmp, "_", &sp);
terr = strtok_r (NULL, ".", &sp);
charset = strtok_r (NULL, "@", &sp);
if (!charset)
charset = mu_charset_lookup (lang, terr);
}
}
if (!charset)
return 1;
return rfc2047_decode (charset, text, decoded_text);
}
......
......@@ -408,7 +408,8 @@ static mhl_variable_t vartab[] = {
{ B_NEWLINE, "newline", dt_flag },
{ B_ADDRFIELD, "addrfield", dt_flag },
{ B_DATEFIELD, "datefield", dt_flag },
{ B_DECODE, "decode", dt_flag },
/* String variables */
{ S_OVERFLOWTEXT, "overflowtext", dt_string },
{ S_COMPONENT, "component", dt_string },
......@@ -620,6 +621,12 @@ print_header_value (struct eval_env *env, char *val)
val = p;
}
if (env->bvar[B_DECODE])
{
if (mh_decode_2047 (val, &p) == 0)
val = p;
}
if (env->bvar[B_UPPERCASE])
{
for (p = val; *p; p++)
......
......@@ -206,7 +206,7 @@ restore_envelope (stream_t str, struct _mhdraft_message **pmenv)
char *env_from = NULL;
char *env_date = NULL;
int rc;
char buffer[80];
char buffer[128];
size_t len;
off_t body_start, body_end;
......
2003-12-25 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* ro.po: Added missing ^K in msgstrs
2003-12-10 Jordi Mallach <jordi@gnu.org>
* LINGUAS: Added ro.
......