|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|