+2007-03-11 11:54 +0100 Thomas Roessler <roessler@does-not-exist.org> (8a640badfb60)
+
+ * COPYRIGHT, build-release, crypt-gpgme.c, doc/applying-patches.txt,
+ doc/dotlock.man, doc/manual.xml.head, doc/muttrc.man.head,
+ muttbug.sh.in, po/bg.po, po/da.po, po/eo.po, po/es.po, po/et.po,
+ po/gl.po, po/it.po, po/lt.po, po/pt_BR.po, po/sk.po, po/zh_CN.po,
+ po/zh_TW.po: Grabage-collect references to an outdated email
+ address.
+
+2007-03-09 10:58 -0800 Rocco Rutte <pdmef@gmx.net> (d1122bbaacd8)
+
+ * doc/Makefile.am, doc/manual.xml.head: Make manual validate against
+ DocBook 4.2 DTD for "book" This adds a 'validate' target to
+ doc/Makefile which uses xmllint(1) to validate manual.xml against
+ the DTD given in the doctype (intended for developers only).
+
+ Running it revealed two validation errors which this patch fixes:
+
+ 1) We declare 'article' as the doctype but want to use 'book' 2)
+ Within a lists's items, we didn't include our text in a paragraph
+
+2007-03-08 21:13 -0800 Michael Elkins <me@mutt.org> (0ec4394636c4)
+
+ * init.h: Add `UL' cast for Umask entry in MuttVars to supress
+ compiler warning.
+
+2007-03-08 12:19 -0800 Petr P\92sa? <petr.pisar@atlas.cz> (d0924f72d2e8)
+
+ * po/cs.po: Czech spelling fixes and new translations
+
+2007-03-07 12:18 -0800 Christoph Berg <cb@df7cb.de> (5de130a3cb96)
+
+ * ChangeLog, doc/muttrc.man.head: Typos in muttrc.man.head
+
2007-03-07 12:11 -0800 Michael Tatge <Michael.Tatge@web.de> (162f0c127492)
* doc/mutt.man: Document -d in the man page
int from = 0;
int this_is_from;
int ignore = 0;
- char buf[STRING]; /* should be long enough to get most fields in one pass */
+ char buf[LONG_STRING]; /* should be long enough to get most fields in one pass */
char *nl;
LIST *t;
char **headers;
int hdr_count;
int x;
char *this_one = NULL;
+ size_t this_one_len;
int error;
if (ftello (in) != off_start)
{
if (!address_header_decode (&this_one))
rfc2047_decode (&this_one);
+ this_one_len = mutt_strlen (this_one);
}
-
+
if (!headers[x])
headers[x] = this_one;
else
{
- safe_realloc (&headers[x], mutt_strlen (headers[x]) +
- mutt_strlen (this_one) + sizeof (char));
- strcat (headers[x], this_one); /* __STRCAT_CHECKED__ */
+ int hlen = mutt_strlen (headers[x]);
+
+ safe_realloc (&headers[x], hlen + this_one_len + sizeof (char));
+ strcat (headers[x] + hlen, this_one); /* __STRCAT_CHECKED__ */
FREE (&this_one);
}
if (!ignore)
{
dprint (2, (debugfile, "Reorder: x = %d; hdr_count = %d\n", x, hdr_count));
- if (!this_one)
+ if (!this_one) {
this_one = safe_strdup (buf);
- else
- {
- safe_realloc (&this_one,
- mutt_strlen (this_one) + mutt_strlen (buf) + sizeof (char));
- strcat (this_one, buf); /* __STRCAT_CHECKED__ */
+ this_one_len = mutt_strlen (this_one);
+ } else {
+ int blen = mutt_strlen (buf);
+
+ safe_realloc (&this_one, this_one_len + blen + sizeof (char));
+ strcat (this_one + this_one_len, buf); /* __STRCAT_CHECKED__ */
+ this_one_len += blen;
}
}
} /* while (ftello (in) < off_end) */
headers[x] = this_one;
else
{
- safe_realloc (&headers[x], mutt_strlen (headers[x]) +
- mutt_strlen (this_one) + sizeof (char));
- strcat (headers[x], this_one); /* __STRCAT_CHECKED__ */
+ int hlen = mutt_strlen (headers[x]);
+
+ safe_realloc (&headers[x], hlen + this_one_len + sizeof (char));
+ strcat (headers[x] + hlen, this_one); /* __STRCAT_CHECKED__ */
FREE (&this_one);
}
char buf[HUGE_STRING];
char cbuf[STRING];
char c2buf[STRING];
-
- int l, linelen, buflen, count;
+ char *p;
+ int l, linelen, buflen, count, cbuflen, c2buflen, plen;
+
linelen = mutt_strlen (*h);
+ plen = linelen;
buflen = linelen + 3;
-
-
+
safe_realloc (h, buflen);
for (count = 0; a; a = a->next, count++)
{
ADDRESS *tmp = a->next;
a->next = NULL;
*buf = *cbuf = *c2buf = '\0';
- rfc822_write_address (buf, sizeof (buf), a, 0);
+ l = rfc822_write_address (buf, sizeof (buf), a, 0);
a->next = tmp;
- l = mutt_strlen (buf);
if (count && linelen + l > 74)
{
strcpy (cbuf, "\n\t"); /* __STRCPY_CHECKED__ */
buflen++;
strcpy (c2buf, ","); /* __STRCPY_CHECKED__ */
}
-
- buflen += l + mutt_strlen (cbuf) + mutt_strlen (c2buf);
+
+ cbuflen = mutt_strlen (cbuf);
+ c2buflen = mutt_strlen (c2buf);
+ buflen += l + cbuflen + c2buflen;
safe_realloc (h, buflen);
- strcat (*h, cbuf); /* __STRCAT_CHECKED__ */
- strcat (*h, buf); /* __STRCAT_CHECKED__ */
- strcat (*h, c2buf); /* __STRCAT_CHECKED__ */
+ p = *h;
+ strcat (p + plen, cbuf); /* __STRCAT_CHECKED__ */
+ plen += cbuflen;
+ strcat (p + plen, buf); /* __STRCAT_CHECKED__ */
+ plen += l;
+ strcat (p + plen, c2buf); /* __STRCAT_CHECKED__ */
+ plen += c2buflen;
}
/* Space for this was allocated in the beginning of this function. */
- strcat (*h, "\n"); /* __STRCAT_CHECKED__ */
+ strcat (p + plen, "\n"); /* __STRCAT_CHECKED__ */
}
static int address_header_decode (char **h)
ADDRESS *rfc822_cpy_adr (ADDRESS *addr);
ADDRESS *rfc822_cpy_adr_real (ADDRESS *addr);
ADDRESS *rfc822_append (ADDRESS **a, ADDRESS *b);
-void rfc822_write_address (char *, size_t, ADDRESS *, int);
+int rfc822_write_address (char *, size_t, ADDRESS *, int);
void rfc822_write_address_single (char *, size_t, ADDRESS *, int);
void rfc822_free_address (ADDRESS **addr);
void rfc822_cat (char *, size_t, const char *, const char *);