diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp index f2f066fea571df322d89e7c3f2d13bdcdf431a0a..4ad16a5f0fb7e7ca28b7adc8270c4e1c93e91483 100644 --- a/src/sbbs3/chat.cpp +++ b/src/sbbs3/chat.cpp @@ -1383,19 +1383,21 @@ void sbbs_t::guruchat(char *line, char *gurubuf, int gurunum) answers=0; while(*ptr && answers<100 && ptr<gurubuf+len) { i=0; - while(*ptr && *ptr!=CR && i<512 && ptr<gurubuf+len) { + while(*ptr && *ptr!=CR && *ptr!=LF && i<512 && ptr<gurubuf+len) { answer[answers][i]=*ptr; ptr++; i++; - if(*ptr=='\\' && *(ptr+1)==CR) { /* multi-line answer */ - ptr+=3; /* skip \CRLF */ + /* multi-line answer */ + if(*ptr=='\\' && (*(ptr+1)==CR || *(ptr+1)==LF)) { + ptr++; /* skip \ */ + while(*ptr && *ptr<SP) ptr++; /* skip [CR]LF */ answer[answers][i++]=CR; answer[answers][i++]=LF; } } answer[answers][i]=0; if(!strlen(answer[answers]) || answer[answers][0]=='(') { ptr-=strlen(answer[answers]); break; } - ptr+=2; /* skip CRLF */ + while(*ptr && *ptr<SP) ptr++; /* skip [CR]LF */ answers++; } if(answers==100) while(*ptr && *ptr!='(' && ptr<gurubuf+len)