ref: adea89f3eb5c274ced47ad138fe0973003a3ee5b
parent: 33c984e456fe1069beb4e2269dd38c92b291a24e
parent: 361015497c1284f00dcdacb3d962c620cbfc0cab
author: Antonio Niño Díaz <antonio_nd@outlook.com>
date: Mon Jul 2 19:08:25 EDT 2018
Merge pull request #294 from yenatch/utf-8 Fix UTF-8 characters with an even number of bytes.
--- 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
# ---------------------
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,9 @@
- clang
- gcc
script:
- - ./.travis-checkpatch.sh
- - cd test
- - ./run-tests.sh
+ - cd test && ./run-tests.sh
+matrix:
+ include:
+ - env: _="checkpatch"
+ script:
+ - ./.travis-checkpatch.sh
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -75,17 +75,15 @@
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
@@ -92,7 +90,7 @@
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.
--- a/src/asm/charmap.c
+++ b/src/asm/charmap.c
@@ -32,12 +32,10 @@
dest[i] = src[i];
- i++;
if (state == 0) {
- dest[i] = '\0';
+ dest[++i] = '\0';
return i;
}
- dest[i] = src[i];
}
}
--- a/src/extern/utf8decoder.c
+++ b/src/extern/utf8decoder.c
@@ -11,34 +11,31 @@
#include <stdint.h>
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)
--- 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
--- /dev/null
+++ b/test/asm/utf-8.asm
@@ -1,0 +1,2 @@
+SECTION "sec", ROM0
+ db "é"
--- /dev/null
+++ b/test/asm/utf-8.out.bin
@@ -1,0 +1,1 @@
+é
\ No newline at end of file