1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins/frotz
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
..
buffer.c
dumb_frotz.h
dumb_init.c
dumb_output.c
err.c
fastmem.c misc: Correct various -Wunterminated-string-initialization warnings 2025-04-21 16:39:00 -04:00
files.c Make open() posix compliant api-wise. A few calls (those with O_CREAT) need the additional optional mode parameter so add it. Impact for the core is almost zero, as open() is a wrapper macro for the real open function which doesn't take the variable parameter. 2010-05-06 17:35:13 +00:00
frotz.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
frotz.h Introduce NORETURN_ATTR wrapper for __attribute__((noreturn)), using this and a bit further cleanup in main gets rid of a warning when compiling for android. 2010-08-12 13:38:25 +00:00
frotz.make
frotzplugin.h Make the sim buildable with mingw again 2010-05-14 22:57:52 +00:00
hotkey.c
input.c
main.c
math.c
object.c
process.c
quetzal.c
random.c
redirect.c
screen.c
setup.h
sound.c
SOURCES
STATUS
stream.c
table.c
text.c
variable.c