Made -msg_op "parse" obey -backslash_codes.
This commit is contained in:
@ -3559,8 +3559,8 @@ int Xorriso_msg_op_parse(struct XorrisO *xorriso, char *line,
|
||||
int max_words, int pflag, int input_lines,
|
||||
int flag)
|
||||
{
|
||||
int ret, i, l, pargc= 0;
|
||||
char *pline= NULL, **pargv= NULL, *parse_line;
|
||||
int ret, i, l, pargc= 0, bsl_mem;
|
||||
char *pline= NULL, **pargv= NULL, *parse_line, *text= NULL, *text_pt;
|
||||
|
||||
Xorriso_alloc_meM(pline, char, SfileadrL);
|
||||
|
||||
@ -3590,6 +3590,10 @@ int Xorriso_msg_op_parse(struct XorrisO *xorriso, char *line,
|
||||
ret= Xorriso_parse_line(xorriso, parse_line, prefix, separators, max_words,
|
||||
&pargc, &pargv, pflag);
|
||||
|
||||
/* Temporarily disable backslash encoding of result channel */
|
||||
bsl_mem= xorriso->bsl_interpretation;
|
||||
xorriso->bsl_interpretation&= ~32;
|
||||
|
||||
xorriso->msg_sieve_disabled= 1;
|
||||
sprintf(xorriso->result_line, "%d\n", ret);
|
||||
Xorriso_result(xorriso, 1);
|
||||
@ -3597,10 +3601,16 @@ int Xorriso_msg_op_parse(struct XorrisO *xorriso, char *line,
|
||||
sprintf(xorriso->result_line, "%d\n", pargc);
|
||||
Xorriso_result(xorriso, 1);
|
||||
for(i= 0; i < pargc; i++) {
|
||||
ret= Sfile_count_char(pargv[i], '\n') + 1;
|
||||
text_pt= pargv[i];
|
||||
if (bsl_mem & 32) {
|
||||
ret= Sfile_bsl_encoder(&text, pargv[i], strlen(pargv[i]), 4);
|
||||
if(ret > 0)
|
||||
text_pt= text;
|
||||
}
|
||||
ret= Sfile_count_char(text_pt, '\n') + 1;
|
||||
sprintf(xorriso->result_line, "%d\n", ret);
|
||||
Xorriso_result(xorriso, 1);
|
||||
Sfile_str(xorriso->result_line, pargv[i], 0);
|
||||
Sfile_str(xorriso->result_line, text_pt, 0);
|
||||
strcat(xorriso->result_line, "\n");
|
||||
Xorriso_result(xorriso, 1);
|
||||
}
|
||||
@ -3608,10 +3618,11 @@ int Xorriso_msg_op_parse(struct XorrisO *xorriso, char *line,
|
||||
sprintf(xorriso->result_line, "0\n");
|
||||
Xorriso_result(xorriso, 1);
|
||||
}
|
||||
|
||||
xorriso->bsl_interpretation= bsl_mem;
|
||||
ret= 1;
|
||||
ex:;
|
||||
Xorriso__dispose_words(&pargc, &pargv);
|
||||
Xorriso_free_meM(text);
|
||||
Xorriso_free_meM(pline);
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user