projects
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix issue with long lines with comments in lsearch. fixes: #894
[exim.git]
/
src
/
src
/
lookups
/
lsearch.c
diff --git
a/src/src/lookups/lsearch.c
b/src/src/lookups/lsearch.c
index 4b3c7e23353bc7de6120e5d63d949a3ae941ad71..ba2c673fadfc9c558e3af936b080f90c91b3da4b 100644
(file)
--- a/
src/src/lookups/lsearch.c
+++ b/
src/src/lookups/lsearch.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/lookups/lsearch.c,v 1.
8 2007/01/08 10:50:19 ph10
Exp $ */
+/* $Cambridge: exim/src/src/lookups/lsearch.c,v 1.
9 2009/10/14 13:43:40 nm4
Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-107,6
+107,7
@@
for (last_was_eol = TRUE;
int ptr, size;
int p = Ustrlen(buffer);
int linekeylength;
int ptr, size;
int p = Ustrlen(buffer);
int linekeylength;
+ BOOL this_is_comment;
uschar *yield;
uschar *s = buffer;
uschar *yield;
uschar *s = buffer;
@@
-255,6
+256,7
@@
for (last_was_eol = TRUE;
Initialize, and copy the first segment of data. */
Initialize, and copy the first segment of data. */
+ this_is_comment = FALSE;
size = 100;
ptr = 0;
yield = store_get(size);
size = 100;
ptr = 0;
yield = store_get(size);
@@
-285,11
+287,13
@@
for (last_was_eol = TRUE;
if (last_was_eol)
{
if (last_was_eol)
{
- if (buffer[0] == 0 || buffer[0] == '#') continue;
+ this_is_comment ||= (buffer[0] == 0 || buffer[0] == '#');
+ if (this_is_comment) continue;
if (!isspace((uschar)buffer[0])) break;
while (isspace((uschar)*s)) s++;
*(--s) = ' ';
}
if (!isspace((uschar)buffer[0])) break;
while (isspace((uschar)*s)) s++;
*(--s) = ' ';
}
+ if (this_is_comment) continue;
/* Join a physical or logical line continuation onto the result string. */
/* Join a physical or logical line continuation onto the result string. */