New -msg_op opcode "parse_bulk"
This commit is contained in:
@ -842,17 +842,15 @@ unknown_mode:;
|
||||
int Xorriso_option_msg_op(struct XorrisO *xorriso, char *what, char *arg,
|
||||
int flag)
|
||||
{
|
||||
int ret, available, argc, pargc, i, pflag, max_words, input_lines, l, msd_mem;
|
||||
int ret, available, argc, pargc, i, pflag, max_words, input_lines, msd_mem;
|
||||
char **argv= NULL, **pargv= NULL, *msg= "";
|
||||
char *pline= NULL, *prefix, *separators;
|
||||
char *prefix, *separators;
|
||||
|
||||
msd_mem= xorriso->msg_sieve_disabled;
|
||||
|
||||
Xorriso_alloc_meM(pline, char, SfileadrL);
|
||||
|
||||
ret= 1;
|
||||
if(strcmp(what, "parse") == 0) {
|
||||
ret= Xorriso_parse_line(xorriso, arg, "", "", 4, &argc, &argv, 0);
|
||||
if(strcmp(what, "parse") == 0 || strcmp(what, "parse_bulk") == 0) {
|
||||
ret= Xorriso_parse_line(xorriso, arg, "", "", 5, &argc, &argv, 0);
|
||||
prefix= "";
|
||||
if(argc > 0)
|
||||
prefix= argv[0];
|
||||
@ -865,50 +863,20 @@ int Xorriso_option_msg_op(struct XorrisO *xorriso, char *what, char *arg,
|
||||
pflag= 0;
|
||||
if(argc > 3)
|
||||
sscanf(argv[3], "%d", &pflag);
|
||||
|
||||
input_lines= 1;
|
||||
if(argc > 4)
|
||||
sscanf(argv[4], "%d", &input_lines);
|
||||
if(input_lines > 1)
|
||||
sprintf(xorriso->info_text, "-msg_op parse: Enter %d lines of text\n",
|
||||
input_lines);
|
||||
else
|
||||
sprintf(xorriso->info_text, "-msg_op parse: Enter text line\n");
|
||||
Xorriso_info(xorriso, 0);
|
||||
pline[0]= 0;
|
||||
for(i= 0; i < input_lines; i++) {
|
||||
l= strlen(pline);
|
||||
ret= Xorriso_dialog_input(xorriso, pline + l, SfileadrL - l - 1, 8);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
if(i < input_lines - 1)
|
||||
strcat(pline, "\n");
|
||||
}
|
||||
sprintf(xorriso->info_text, "-msg_op parse: Text input complete\n");
|
||||
Xorriso_info(xorriso, 0);
|
||||
ret= Xorriso_parse_line(xorriso, pline, prefix, separators, max_words,
|
||||
&pargc, &pargv, pflag);
|
||||
xorriso->msg_sieve_disabled= 1;
|
||||
sprintf(xorriso->result_line, "%d\n", ret);
|
||||
Xorriso_result(xorriso, 1);
|
||||
if(ret == 1) {
|
||||
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;
|
||||
sprintf(xorriso->result_line, "%d\n", ret);
|
||||
Xorriso_result(xorriso, 1);
|
||||
Sfile_str(xorriso->result_line, pargv[i], 0);
|
||||
strcat(xorriso->result_line, "\n");
|
||||
Xorriso_result(xorriso, 1);
|
||||
}
|
||||
if(strcmp(what, "parse") == 0) {
|
||||
ret= Xorriso_msg_op_parse(xorriso, "", prefix, separators,
|
||||
max_words, pflag, input_lines, 0);
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "0\n");
|
||||
Xorriso_result(xorriso, 1);
|
||||
ret= Xorriso_msg_op_parse_bulk(xorriso, prefix, separators,
|
||||
max_words, pflag, input_lines, 0);
|
||||
}
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
xorriso->msg_sieve_disabled= msd_mem;
|
||||
Xorriso__dispose_words(&argc, &argv);
|
||||
Xorriso__dispose_words(&pargc, &pargv);
|
||||
} else if(strcmp(what, "start_sieve") == 0) {
|
||||
Xorriso_sieve_dispose(xorriso, 0);
|
||||
ret= Xorriso_sieve_big(xorriso, 0);
|
||||
@ -988,7 +956,6 @@ int Xorriso_option_msg_op(struct XorrisO *xorriso, char *what, char *arg,
|
||||
|
||||
ex:;
|
||||
xorriso->msg_sieve_disabled= msd_mem;
|
||||
Xorriso_free_meM(pline);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user