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
tidying
[exim.git]
/
src
/
src
/
lookups
/
lf_quote.c
diff --git
a/src/src/lookups/lf_quote.c
b/src/src/lookups/lf_quote.c
index 8be03652ecfa5c84d9470c5626402746cf0237ea..72e37bfb4039d3e536a7901e6ee524e9fc6ca0f5 100644
(file)
--- a/
src/src/lookups/lf_quote.c
+++ b/
src/src/lookups/lf_quote.c
@@
-1,11
+1,10
@@
-/* $Cambridge: exim/src/src/lookups/lf_quote.c,v 1.3 2006/02/07 11:19:01 ph10 Exp $ */
-
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 20
06
*/
+/* Copyright (c) University of Cambridge 1995 - 20
18
*/
/* See the file NOTICE for conditions of use and distribution. */
/* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include "../exim.h"
#include "../exim.h"
@@
-24,44
+23,42
@@
Arguments:
name the field name
value the data value
vlength the data length
name the field name
value the data value
vlength the data length
- result the result pointer
- asize points to the size variable
- aoffset points to the offset variable
+ result the result expanding-string
Returns: the result pointer (possibly updated)
*/
Returns: the result pointer (possibly updated)
*/
-uschar *
-lf_quote(uschar *name, uschar *value, int vlength, uschar *result, int *asize,
- int *aoffset)
+gstring *
+lf_quote(uschar *name, uschar *value, int vlength, gstring * result)
{
{
-result = string_append(result,
asize, aoffset,
2, name, US"=");
+result = string_append(result, 2, name, US"=");
/* NULL is handled as an empty string */
/* NULL is handled as an empty string */
-if (value == NULL) value = US"";
+if (!value)
+ {
+ value = US"";
+ vlength = 0;
+ }
/* Quote the value if it is empty, contains white space, or starts with a quote
character. */
if (value[0] == 0 || Ustrpbrk(value, " \t\n\r") != NULL || value[0] == '\"')
{
/* Quote the value if it is empty, contains white space, or starts with a quote
character. */
if (value[0] == 0 || Ustrpbrk(value, " \t\n\r") != NULL || value[0] == '\"')
{
- int j;
- result = string_cat(result, asize, aoffset, US"\"", 1);
- for (j = 0; j < vlength; j++)
+ result = string_catn(result, US"\"", 1);
+ for (int j = 0; j < vlength; j++)
{
if (value[j] == '\"' || value[j] == '\\')
{
if (value[j] == '\"' || value[j] == '\\')
- result = string_cat
(result, asize, aoffse
t, US"\\", 1);
- result = string_cat
(result, asize, aoffse
t, US value+j, 1);
+ result = string_cat
n(resul
t, US"\\", 1);
+ result = string_cat
n(resul
t, US value+j, 1);
}
}
- result = string_cat
(result, asize, aoffse
t, US"\"", 1);
+ result = string_cat
n(resul
t, US"\"", 1);
}
else
}
else
- {
- result = string_cat(result, asize, aoffset, US value, vlength);
- }
+ result = string_catn(result, US value, vlength);
-return string_cat
(result, asize, aoffse
t, US" ", 1);
+return string_cat
n(resul
t, US" ", 1);
}
/* End of lf_quote.c */
}
/* End of lf_quote.c */