rockbox/firmware/include
Solomon Peachy a2c10f6189 unicode: Support characters beyond the first unicode plane
We used 16-bit variables to store the 'character code' everywhere but
this won't let us represent anything beyond U+FFFF.

This patch changes those variables to a custom type that can be 32 or 16
bits depending on the build, and adjusts numerous internal APIs and
datastructures to match.  This includes:

 * utf8decode() and friends
 * font manipulation, caching, rendering, and generation
 * on-screen keyboard
 * FAT filesystem (parsing and generating utf16 LFNs)
 * WIN32 simulator platform code

Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.

Appears to work on:

  * hosted linux, native, linux simulator in both 16/32-bit modes.

Needs testing on:

  * windows and macos simulator (16bit+32bit)

Change-Id: Iba111b27d2433019b6bff937cf1ebd2c4353a0e8
2025-09-12 09:24:30 -04:00
..
_ansi.h Move some gcc extensions to new gcc_extensions.h header 2010-07-25 14:44:29 +00:00
adler32.h adler32: import adapted implementation from tinf/zlib 2021-07-30 23:11:49 +00:00
ap_int.h Add proper float formatting to vuprintf 2019-07-19 22:07:41 -04:00
assert.h strncpy.c / assert.h : need to include _ansi.h 2010-07-25 14:53:06 +00:00
bitarray.h Agptek Rocker: Initial commit 2018-06-12 10:31:14 +02:00
buflib.h buflib: Add pinned get/put data functions 2023-01-15 11:06:27 +00:00
buflib_malloc.h buflib: Add pinned get/put data functions 2023-01-15 11:06:27 +00:00
buflib_mempool.h buflib: Add pinned get/put data functions 2023-01-15 11:06:27 +00:00
checksum.h rockbox: move firmware checksum algorithms into a common header 2020-11-22 05:12:04 +00:00
chunk_alloc.h chunk alloc add buflib_get_pinned and chunk caching 2023-01-19 00:04:25 -05:00
core_alloc.h Add core_get_data_pinned(), use it where possible 2023-01-15 08:57:45 -05:00
crc32-rkw.h Add RKW firmware file format loader 2012-03-04 00:34:26 +01:00
crc32.h rockbox: add a crc32 reverse polynomial function 2021-06-21 03:37:17 +00:00
dbgcheck.h Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently). 2010-06-21 16:53:00 +00:00
diacritic.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
dir.h limits: define PATH_MAX in only one place. 2025-08-25 10:10:38 -04:00
dircache.h Restore dircache hookup in the database ramcache. 2017-02-10 05:05:23 -05:00
dircache_redirect.h Add verification to multiboot redirect 2024-08-20 00:34:03 -04:00
disk_cache.h storage: 64-bit sector offsets 2024-08-12 14:23:44 -04:00
file.h limits: define PATH_MAX in only one place. 2025-08-25 10:10:38 -04:00
file_internal.h filestr_cache: Some more 64-bit sector_t fixes 2024-11-11 10:38:58 -05:00
fileobj_mgr.h [RESTORED!] Allow mounting of any directory as the root directory. 2022-03-03 18:58:07 -05:00
filesystem-native.h file/fat: rework utime function as modtime extension 2021-07-08 17:47:51 +00:00
font_cache.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
fs_attr.h limits: define PATH_MAX in only one place. 2025-08-25 10:10:38 -04:00
fs_defines.h Revert "storage: Disk Cache buffer size may need to be larger than SECTOR_SIZE" 2024-11-24 00:57:57 -05:00
gcc_extensions.h Fix sea of errors introduced in cde144233b 2025-05-17 18:40:47 -04:00
inflate.h inflate: Add helper for getting decompressed data size 2022-03-04 08:44:56 -05:00
linked_list.h linked list: add lld_insert_prev/next() 2022-10-16 16:10:24 +01:00
loader_strerror.h Move load_firmware() to separate file 2013-06-27 13:50:11 +02:00
lru.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
memset16.h Move memset6() declaration to string-extra.h, kills a warning compiling for android since it ships a memory.h. 2010-08-12 13:55:01 +00:00
rb-loader.h multiboot: Refactor duplicated functions to a separate file 2022-03-11 10:58:20 -05:00
rb_namespace.h [BugFix] Multiboot Database duplicate files 2024-03-23 01:03:33 -04:00
rbendian.h Make simulator compile on MacOS 2024-11-30 22:19:02 -05:00
rbunicode.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
strcasecmp.h Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes). 2010-05-06 21:04:40 +00:00
strcasestr.h Fix tabs in .c and .h files in firmware/ 2011-05-08 11:37:18 +00:00
string-extra.h [BugFix] itoa conflicts with mingw rename to itoa_buf 2025-02-18 10:41:18 -05:00
strlcat.h Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes). 2010-05-06 21:04:40 +00:00
strlcpy.h Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes). 2010-05-06 21:04:40 +00:00
strmemccpy.h replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
strnatcmp.h Commit FS#8314. This adds strnat[case]cmp written by Martin Pool, which respects numbers within strings, and gives a more intuitive 2009-03-01 17:55:59 +00:00
strptokspn_r.h make splash split on control characters 2022-11-12 06:22:16 -05:00
strtok_r.h Make the sim buildable with mingw again 2010-05-14 22:57:52 +00:00
timefuncs.h timefuncs: add dostime_localtime function 2021-07-07 17:31:00 +00:00
version.h Prevent spurious recompiles on account of changed version. 2014-08-28 15:48:56 +02:00
vuprintf.h Implement a much more capable vuprintf() 2017-11-21 05:00:27 -05:00
zip.h zip: implement zip extraction support 2021-07-11 05:14:20 +00:00