Improved false quote handling
This commit is contained in:
parent
a4a0348e5f
commit
687765873c
@ -2094,6 +2094,8 @@ void MakeLineIndex(GMsg* msg, int margin, bool getvalue, bool header_recode) {
|
||||
}
|
||||
|
||||
// Get type of line
|
||||
int isq_flag1 = 0;
|
||||
bool isq_flag2 = false;
|
||||
|
||||
if(wraps == 0) {
|
||||
|
||||
@ -2270,7 +2272,8 @@ void MakeLineIndex(GMsg* msg, int margin, bool getvalue, bool header_recode) {
|
||||
ptr = tptr;
|
||||
}
|
||||
}
|
||||
else if(is_quote(ptr) && is_quote2(line, ptr))
|
||||
else if ((isq_flag1 = is_quote(ptr)) &&
|
||||
(isq_flag2 = is_quote2(line, ptr)))
|
||||
{
|
||||
para = GLINE_QUOT;
|
||||
line->type |= GLINE_QUOT|GLINE_HARD;
|
||||
@ -2278,6 +2281,36 @@ void MakeLineIndex(GMsg* msg, int margin, bool getvalue, bool header_recode) {
|
||||
}
|
||||
}
|
||||
|
||||
if (CFG->quoteusenewai && isq_flag1 && !isq_flag2)
|
||||
{
|
||||
uint bad_qlen;
|
||||
char bad_qbuf[MAXQUOTELEN];
|
||||
char *bad_ptr;
|
||||
|
||||
GetQuotestr(bad_ptr = ptr, bad_qbuf, &bad_qlen);
|
||||
|
||||
while (true)
|
||||
{
|
||||
for (; *bad_ptr && (*bad_ptr != CR); bad_ptr++);
|
||||
if (!*bad_ptr) break;
|
||||
|
||||
char *bad_head = bad_ptr;
|
||||
|
||||
bad_ptr++;
|
||||
if (*bad_ptr == LF) bad_ptr++;
|
||||
|
||||
if (strneql(bad_qbuf, bad_ptr, bad_qlen))
|
||||
{
|
||||
*bad_head = ' ';
|
||||
|
||||
memmove(bad_head+1, bad_ptr+bad_qlen, strlen(bad_ptr));
|
||||
bad_ptr = bad_head;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Get one line
|
||||
|
||||
ch = '\0';
|
||||
@ -3251,4 +3284,3 @@ void InvalidateControlInfo(GMsg* msg) {
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user