diff options
-rwxr-xr-x | bin/bvr-compose-html | bin | 31984 -> 31984 bytes | |||
-rwxr-xr-x | bin/bvr-compose-single | bin | 31840 -> 31840 bytes | |||
-rw-r--r-- | src/bvrcommands.c | 10 | ||||
-rw-r--r-- | test/tape-test.bvr | 1 | ||||
-rw-r--r-- | tmp/output.htm | 3 |
5 files changed, 10 insertions, 4 deletions
diff --git a/bin/bvr-compose-html b/bin/bvr-compose-html Binary files differindex 505c2ec..2970376 100755 --- a/bin/bvr-compose-html +++ b/bin/bvr-compose-html diff --git a/bin/bvr-compose-single b/bin/bvr-compose-single Binary files differindex 5500b8f..d31f97f 100755 --- a/bin/bvr-compose-single +++ b/bin/bvr-compose-single diff --git a/src/bvrcommands.c b/src/bvrcommands.c index 3468d98..9484e49 100644 --- a/src/bvrcommands.c +++ b/src/bvrcommands.c @@ -287,7 +287,8 @@ int bvr_handle_equals(FILE * input, FILE * output) { int bvr_handle_if(FILE * input, FILE * output) { // ?f 1 <@this is all executed@> // first argument must *POINT* to a string which evaluates to 1, the second argument is the value of the endif string, spaces // are argument delimeters. endif is only used for skipping forward if if should not execute. - char * chars_to_break_value = " "; + + char chars_to_break_value[69] = " "; strlcat(chars_to_break_value, BVR_CHARS_TO_BREAK_VALUE, sizeof(chars_to_break_value)); char * item = bvr_commands_get_value(input, chars_to_break_value); int return_value = 0; @@ -304,8 +305,11 @@ int bvr_handle_if(FILE * input, FILE * output) { // ?f 1 <@this is all executed@ char previous_char = 'a'; int depth = -1; // to increase to 0 after first <@ int we_re_in_a_comment = 0; - while(input_char != BVR_CLOSING_COMMAND_TAG_CHAR_2 && previous_char != BVR_CLOSING_COMMAND_TAG_CHAR_1 && depth == 0 && - we_re_in_a_comment == 0) { + while(1) { + if((input_char == BVR_CLOSING_COMMAND_TAG_CHAR_2 && previous_char == BVR_CLOSING_COMMAND_TAG_CHAR_1 && depth == 0 && + we_re_in_a_comment == 0)) { + break; + } if(previous_char == BVR_OPENING_COMMAND_TAG_CHAR_1 && input_char == BVR_OPENING_COMMAND_TAG_CHAR_2) { depth++; } // this šubidubi doesn't account for <@ and @> in strings. diff --git a/test/tape-test.bvr b/test/tape-test.bvr index a89012c..0b1689e 100644 --- a/test/tape-test.bvr +++ b/test/tape-test.bvr @@ -4,3 +4,4 @@ <@?s branch_name .git/refs/heads/master@> <@?s latest_commit ?u 0 -1 ?i ?g branch_name@> <@?g latest_commit@> +<@?f ?"11" <@?g ?"hello!"@>@> diff --git a/tmp/output.htm b/tmp/output.htm index ebeb0c0..7591237 100644 --- a/tmp/output.htm +++ b/tmp/output.htm @@ -19,4 +19,5 @@ -be2a485d3240007afe26c1335b56a4f3cbb91841 +1006e7fb17e31ea501eca6834253d288c2f6da59 + |