opnsense-ports/textproc/clucene/files/patch-src__contribs-lib__CLucene__highlighter__Highlighter.cpp
Franco Fichtner 8cb1a96ede ports: pull in a snapshot of the FreeBSD ports tree
Taken from:	https://github.com/freebsd/freebsd-ports.git
Commit id:	5070672073b68be364139bc6b3a89100bd17d331
2014-11-09 14:03:21 +01:00

56 lines
2 KiB
C++

--- src/contribs-lib/CLucene/highlighter/Highlighter.cpp.orig 2011-03-16 20:21:07.000000000 -0400
+++ src/contribs-lib/CLucene/highlighter/Highlighter.cpp 2013-03-27 19:05:00.000000000 -0400
@@ -214,8 +214,9 @@
int32_t startOffset;
int32_t endOffset;
int32_t lastEndOffset = 0;
+ int len;
_textFragmenter->start(text);
- TCHAR substringBuffer[LUCENE_MAX_WORD_LEN];
+ TCHAR substringBuffer[LUCENE_MAX_WORD_LEN+1];
TokenGroup* tokenGroup=_CLNEW TokenGroup();
@@ -229,8 +230,9 @@
startOffset = tokenGroup->getStartOffset();
endOffset = tokenGroup->getEndOffset();
- _tcsncpy(substringBuffer,text+startOffset,endOffset-startOffset);
- substringBuffer[endOffset-startOffset]=_T('\0');
+ len = cl_min(endOffset-startOffset,LUCENE_MAX_WORD_LEN);
+ _tcsncpy(substringBuffer,text+startOffset,len);
+ substringBuffer[len]=_T('\0');
TCHAR* encoded = _encoder->encodeText(substringBuffer);
TCHAR* markedUpText=_formatter->highlightTerm(encoded, tokenGroup);
@@ -238,9 +240,7 @@
//store any whitespace etc from between this and last group
if (startOffset > lastEndOffset){
- int len = startOffset-lastEndOffset;
- if ( len > LUCENE_MAX_FIELD_LEN )
- len = LUCENE_MAX_FIELD_LEN;
+ len = cl_min(startOffset-lastEndOffset,LUCENE_MAX_FIELD_LEN);
_tcsncpy(buffer,text+lastEndOffset,len);
buffer[len]=_T('\0');
@@ -287,8 +287,9 @@
startOffset = tokenGroup->getStartOffset();
endOffset = tokenGroup->getEndOffset();
- _tcsncpy(substringBuffer,text+startOffset,endOffset-startOffset);
- substringBuffer[endOffset-startOffset]=_T('\0');
+ len = cl_min(endOffset-startOffset,LUCENE_MAX_WORD_LEN);
+ _tcsncpy(substringBuffer,text+startOffset,len);
+ substringBuffer[len]=_T('\0');
TCHAR* encoded = _encoder->encodeText(substringBuffer);
TCHAR* markedUpText=_formatter->highlightTerm(encoded, tokenGroup);
@@ -393,6 +394,7 @@
}
}
)
+ return NULL;
}