diff --git a/.checkpatch.conf b/.checkpatch.conf index e9a2c35f..1ffa80de 100644 --- a/.checkpatch.conf +++ b/.checkpatch.conf @@ -19,6 +19,9 @@ # Don't expect SPDX tag in the first line of a file --ignore SPDX_LICENSE_TAG +# Don't expect Signed-off-by lines in commit messages +--no-signoff + # List of ignored rules # --------------------- diff --git a/.travis.yml b/.travis.yml index 293e030c..4607e17b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,9 @@ compiler: - clang - gcc script: - - ./.travis-checkpatch.sh - - cd test - - ./run-tests.sh + - cd test && ./run-tests.sh +matrix: + include: + - env: _="checkpatch" + script: + - ./.travis-checkpatch.sh diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 64ee0661..f9c3d168 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -75,24 +75,22 @@ copyright and the reference to the MIT License. new warning (but it may be possible to remove some warning checks if it makes the code much easier). -5. Sign off your commits: ``git commit -s`` - -6. Follow the Linux kernel coding style, which can be found in the file +5. Follow the Linux kernel coding style, which can be found in the file ``Documentation/process/coding-style.rst`` in the Linux kernel repository. Note that the coding style isn't writen on stone, if there is a good reason to deviate from it, it should be fine. -7. Download the files ``checkpatch.pl``, ``const_structs.checkpatch`` and +6. Download the files ``checkpatch.pl``, ``const_structs.checkpatch`` and ``spelling.txt`` from the folder ``scripts`` in the Linux kernel repository. -8. To use ``checkpatch.pl`` you can use ``make checkpatch``, which will check +7. To use ``checkpatch.pl`` you can use ``make checkpatch``, which will check the coding style of all patches between the current one and the upstream code. By default, the Makefile expects the script (and associate files) to be located in ``../linux/scripts/``, but you can place them anywhere you like as long as you specify it when executing the command: ``CHECKPATCH=../path/to/folder make checkpatch``. -9. Create a pull request against the branch ``develop``. +8. Create a pull request against the branch ``develop``. -10. Be prepared to get some comments about your code and to modify it. Tip: Use +9. Be prepared to get some comments about your code and to modify it. Tip: Use ``git rebase -i origin/develop`` to modify chains of commits. diff --git a/src/asm/charmap.c b/src/asm/charmap.c index 4d7214a9..95a592a9 100644 --- a/src/asm/charmap.c +++ b/src/asm/charmap.c @@ -32,12 +32,10 @@ int32_t readUTF8Char(char *dest, char *src) dest[i] = src[i]; - i++; if (state == 0) { - dest[i] = '\0'; + dest[++i] = '\0'; return i; } - dest[i] = src[i]; } } diff --git a/src/extern/utf8decoder.c b/src/extern/utf8decoder.c index 86277109..56c44cf2 100644 --- a/src/extern/utf8decoder.c +++ b/src/extern/utf8decoder.c @@ -11,34 +11,31 @@ #include static const uint8_t utf8d[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00..0f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10..1f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20..2f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30..3f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40..4f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50..5f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60..6f */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70..7f */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 80..8f */ - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, /* 90..9f */ - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* a0..af */ - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* b0..bf */ - 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* c0..cf */ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* d0..df */ - 0xa, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, /* e0..e7 */ - 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, /* e8..ef */ - 0xb, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, /* f0..f7 */ - 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, /* f8..ff */ - 0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, /* s0.. */ - 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, /* ..s0 */ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s1 */ - 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, /* s1 */ - 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, /* s3 */ - 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, /* s4 */ - 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, /* s5 */ - 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s6 */ - 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s7 */ - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s8 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00..0f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10..1f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20..2f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30..3f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40..4f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50..5f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60..6f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70..7f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 80..8f */ + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, /* 90..9f */ + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* a0..af */ + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* b0..bf */ + 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* c0..cf */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* d0..df */ + 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, /* e0..ef */ + 11, 6, 6, 6, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, /* f0..ff */ + 0, 1, 2, 3, 5, 8, 7, 1, 1, 1, 4, 6, 1, 1, 1, 1, /* s0 */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s1 */ + 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, /* s1 */ + 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, /* s3 */ + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, /* s4 */ + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, /* s5 */ + 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s6 */ + 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, /* s7 */ + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* s8 */ }; uint32_t decode(uint32_t *state, uint32_t *codep, uint32_t byte) diff --git a/test/asm/test.sh b/test/asm/test.sh index 5d85142f..0cbc38ea 100755 --- a/test/asm/test.sh +++ b/test/asm/test.sh @@ -1,11 +1,23 @@ #!/bin/sh -fname=$(mktemp) +o=$(mktemp) +gb=$(mktemp) +before=$(mktemp) +after=$(mktemp) rc=0 for i in *.asm; do - ../../rgbasm $i >$fname 2>&1 - diff -u $fname ${i%.asm}.out + ../../rgbasm -o $o $i > $after 2>&1 + diff -u ${i%.asm}.out $after rc=$(($? || $rc)) + bin=${i%.asm}.out.bin + if [ -f $bin ]; then + ../../rgblink -o $gb $o > $after 2>&1 + head -c $(wc -c < $bin) $gb > $after 2>&1 + hexdump -C $after > $before && mv $before $after + hexdump -C $bin > $before + diff -u $before $after + rc=$(($? || $rc)) + fi done exit $rc diff --git a/test/asm/utf-8.asm b/test/asm/utf-8.asm new file mode 100644 index 00000000..7758bb8f --- /dev/null +++ b/test/asm/utf-8.asm @@ -0,0 +1,2 @@ +SECTION "sec", ROM0 + db "é" diff --git a/test/asm/utf-8.out b/test/asm/utf-8.out new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/utf-8.out.bin b/test/asm/utf-8.out.bin new file mode 100644 index 00000000..4b04fff5 --- /dev/null +++ b/test/asm/utf-8.out.bin @@ -0,0 +1 @@ +é \ No newline at end of file