From 5bfda51bce5b0eb700fbc1f71153bffbf2bc0a9f Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Wed, 7 May 2008 08:38:12 +0000 Subject: [PATCH] Simplify fixes to /fe, /fec (put /fe and /fec back into one loop). git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@32 13b04d17-f746-0410-82c6-800466cd88b0 --- source/if.c | 90 +++++++++++++++++++++-------------------------------- 1 file changed, 35 insertions(+), 55 deletions(-) diff --git a/source/if.c b/source/if.c index 39e2cc8..0e4a58e 100644 --- a/source/if.c +++ b/source/if.c @@ -445,69 +445,49 @@ BUILT_IN_COMMAND(fe) if (doing_fe) { /* FE */ word = new_next_arg(templist, &templist); - while (word) - { - window_display = 0; - for ( y = 0 ; y < ind ; y++ ) - { - if (word) { - add_local_alias(var[y], word); - - word = new_next_arg(templist, &templist); - } else { - add_local_alias(var[y], empty_string); - } - } - window_display = old_display; - parse_line(NULL, todo, subargs?subargs:empty_string, 0, 0, 0); - if (continue_exception) - { - continue_exception = 0; - continue; - } - if (break_exception) - { - break_exception = 0; - break; - } - if (return_exception) - break; - } - } - else - { + } else { /* FEC */ word = fec_buffer; - word[0] = *templist++; - while(word[0]) - { - window_display = 0; - for ( y = 0 ; y < ind ; y++ ) - { - if (word[0]) { - add_local_alias(var[y], word); + if (word[0] == '\0') + word = NULL; + } - word[0] = *templist++; + while (word) + { + window_display = 0; + for ( y = 0 ; y < ind ; y++ ) + { + if (word) { + add_local_alias(var[y], word); + + if (doing_fe) { + /* FE */ + word = new_next_arg(templist, &templist); } else { - add_local_alias(var[y], empty_string); + /* FEC */ + word[0] = *templist++; + if (word[0] == '\0') + word = NULL; } + } else { + add_local_alias(var[y], empty_string); } - window_display = old_display; - parse_line(NULL, todo, subargs?subargs:empty_string, 0, 0, 0); - if (continue_exception) - { - continue_exception = 0; - continue; - } - if (break_exception) - { - break_exception = 0; - break; - } - if (return_exception) - break; } + window_display = old_display; + parse_line(NULL, todo, subargs?subargs:empty_string, 0, 0, 0); + if (continue_exception) + { + continue_exception = 0; + continue; + } + if (break_exception) + { + break_exception = 0; + break; + } + if (return_exception) + break; } destroy_local_stack();