diff options
7 files changed, 37 insertions, 5 deletions
diff --git a/src/mds-kbdc/compile-layout.c b/src/mds-kbdc/compile-layout.c index 01587c2..75b134d 100644 --- a/src/mds-kbdc/compile-layout.c +++ b/src/mds-kbdc/compile-layout.c @@ -727,11 +727,11 @@ static char32_t* parse_quoted_string(mds_kbdc_tree_t* restrict tree, const char* #define GROW_BUF \ if (buf_ptr == buf_size) \ fail_if (xxrealloc(old_buf, buf, buf_size ? (buf_size <<= 1) : 16, char)) -#define COPY \ - n = string_length(subrc); \ - if (rc_ptr + n > rc_size) \ - fail_if (xxrealloc(old_rc, rc, rc_ptr + n, char32_t)); \ - memcpy(rc + rc_ptr, subrc, n * sizeof(char32_t)); \ +#define COPY \ + n = string_length(subrc); \ + if (rc_ptr + n > rc_size) \ + fail_if (xxrealloc(old_rc, rc, rc_size = rc_ptr + n, char32_t)); \ + memcpy(rc + rc_ptr, subrc, n * sizeof(char32_t)), rc_ptr += n; \ free(subrc), subrc = NULL #define STORE \ GROW_BUF; \ diff --git a/test-files/mds-kbdc/compile-layout/README b/test-files/mds-kbdc/compile-layout/README new file mode 100644 index 0000000..4e7c43c --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/README @@ -0,0 +1,4 @@ +When testing these files it is important to +`goto stop;` after `compile_layout` been called +in `mds-kbdc.c`. + diff --git a/test-files/mds-kbdc/compile-layout/invalid/include_two_variants b/test-files/mds-kbdc/compile-layout/invalid/include_two_variants new file mode 100644 index 0000000..c5bd467 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/invalid/include_two_variants @@ -0,0 +1,2 @@ +include "two-variants" + diff --git a/test-files/mds-kbdc/compile-layout/invalid/three_variants b/test-files/mds-kbdc/compile-layout/invalid/three_variants new file mode 100644 index 0000000..6cef471 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/invalid/three_variants @@ -0,0 +1,6 @@ +information + variant "variant1" + variant "variant2" + variant "variant3" +end information + diff --git a/test-files/mds-kbdc/compile-layout/invalid/two_variants b/test-files/mds-kbdc/compile-layout/invalid/two_variants new file mode 100644 index 0000000..a2b54c0 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/invalid/two_variants @@ -0,0 +1,5 @@ +information + variant "variant1" + variant "variant2" +end information + diff --git a/test-files/mds-kbdc/compile-layout/valid/assumption b/test-files/mds-kbdc/compile-layout/valid/assumption new file mode 100644 index 0000000..cf38db9 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/valid/assumption @@ -0,0 +1,7 @@ +assumption + have <shift> + have " " + have_chars ",.-" + have_range "a" "z" +end assumption + diff --git a/test-files/mds-kbdc/compile-layout/valid/information b/test-files/mds-kbdc/compile-layout/valid/information new file mode 100644 index 0000000..e470ab9 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/valid/information @@ -0,0 +1,8 @@ +information + language "language1" + language "language2" + country "country1" + country "country2" + variant "variant1" +end information + |