Merge pull request #294 from yenatch/utf-8

Fix UTF-8 characters with an even number of bytes.
This commit is contained in:
Antonio Niño Díaz
2018-07-02 23:08:25 +01:00
9 changed files with 58 additions and 44 deletions

View File

@@ -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
# ---------------------

View File

@@ -10,7 +10,10 @@ os:
compiler:
- clang
- gcc
script:
- cd test && ./run-tests.sh
matrix:
include:
- env: _="checkpatch"
script:
- ./.travis-checkpatch.sh
- cd test
- ./run-tests.sh

View File

@@ -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.

View File

@@ -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];
}
}

View File

@@ -25,12 +25,9 @@ static const uint8_t utf8d[] = {
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 */
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 */

View File

@@ -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

2
test/asm/utf-8.asm Normal file
View File

@@ -0,0 +1,2 @@
SECTION "sec", ROM0
db "é"

0
test/asm/utf-8.out Normal file
View File

1
test/asm/utf-8.out.bin Normal file
View File

@@ -0,0 +1 @@
é