git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Logging: fix initial listening-on log line
[exim.git]
/
src
/
src
/
imap_utf7.c
diff --git
a/src/src/imap_utf7.c
b/src/src/imap_utf7.c
index 0c3d5a20dc125e55f9e1994d96ff86ad67c3cf8c..aac0fef6a04e1fffe84e6ff6620a2b46ef867819 100644
(file)
--- a/
src/src/imap_utf7.c
+++ b/
src/src/imap_utf7.c
@@
-1,3
+1,6
@@
+/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* See the file NOTICE for conditions of use and distribution. */
+
#include "exim.h"
#ifdef SUPPORT_I18N
#include "exim.h"
#ifdef SUPPORT_I18N
@@
-8,11
+11,10
@@
imap_utf7_encode(uschar *string, const uschar *charset, uschar sep,
{
static uschar encode_base64[64] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
{
static uschar encode_base64[64] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
-int ptr = 0;
-int size = 0;
size_t slen;
size_t slen;
-uschar *sptr, *yield = NULL;
-int i = 0, j; /* compiler quietening */
+uschar *sptr;
+gstring * yield = NULL;
+int i = 0; /* compiler quietening */
uschar c = 0; /* compiler quietening */
BOOL base64mode = FALSE;
BOOL lastsep = FALSE;
uschar c = 0; /* compiler quietening */
BOOL base64mode = FALSE;
BOOL lastsep = FALSE;
@@
-104,7
+106,7
@@
while (slen > 0)
i = 0;
}
i = 0;
}
- for (j = 0; j < 2; j++, s++) switch (i++)
+ for (
int
j = 0; j < 2; j++, s++) switch (i++)
{
case 0:
/* Top 6 bits of the first octet */
{
case 0:
/* Top 6 bits of the first octet */
@@
-170,7
+172,7
@@
while (slen > 0)
if (outptr > outbuf + sizeof(outbuf) - 3)
{
if (outptr > outbuf + sizeof(outbuf) - 3)
{
- yield = string_catn(yield,
&size, &ptr,
outbuf, outptr - outbuf);
+ yield = string_catn(yield, outbuf, outptr - outbuf);
outptr = outbuf;
}
outptr = outbuf;
}
@@
-196,12
+198,12
@@
if (base64mode)
iconv_close(icd);
#endif
iconv_close(icd);
#endif
-yield = string_catn(yield,
&size, &ptr,
outbuf, outptr - outbuf);
-if (yield[ptr-1] == '.')
- ptr--;
-
yield[ptr] = '\0'
;
+yield = string_catn(yield, outbuf, outptr - outbuf);
+
+if (yield->s[yield->ptr-1] == '.')
+
yield->ptr--
;
-return
yield
;
+return
string_from_gstring(yield)
;
}
#endif /* whole file */
}
#endif /* whole file */