1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware/drivers
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
..
audio surfansf28: Major improvements: 2025-05-05 20:38:18 -04:00
libertas
rtc New WIP port: Echo R1 2025-04-22 20:08:08 -04:00
tuner Remove NVRAM infavor of a separate cfg file 2025-01-21 00:04:32 -05:00
adc-as3514.c
ata-common.c storage: Misc corrections and cleanups 2024-11-26 08:37:55 -05:00
ata.c FS#13560: ATA: Don't check for 80 pin cables on SATA devices. 2025-02-10 09:23:11 -05:00
axp-2101.c erosqnative: hw4 units prefer egauge battery percentage 2025-01-19 17:30:21 -05:00
axp-pmu.c erosqnative hw1/hw2: Check for DAC in bootloader 2024-12-06 11:39:24 -05:00
button.c IAP: First steps towards true multiport state 2025-08-20 07:56:43 -04:00
button_queue.c New port: Anbernic RG Nano 2025-07-29 21:01:53 -04:00
cw2015.c
eeprom_24cxx.c
fat.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
ft6x06.c
generic_i2c.c
i2c-async.c
isp1362.c
isp1583.c
lcd-1bit-vert.c Asan fix warning for 1-bit vert #2 2025-03-11 01:21:05 -04:00
lcd-2bit-horz.c
lcd-2bit-vert.c
lcd-2bit-vi.c
lcd-16bit-common.c Optimize 16 bit lcd_fillrect() 2024-12-21 18:19:38 -05:00
lcd-16bit-vert.c
lcd-16bit.c arm: enable unified assembly syntax in more files 2025-04-18 10:26:02 -04:00
lcd-24bit.c
lcd-bitmap-common.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
lcd-color-common.c
lcd-memframe.c
lcd-remote-1bit-v.c
lcd-remote-2bit-vi.c
lcd-scroll.c [Bugfix] Scroll engine, backwards scrolling causes display corruption 2025-03-09 09:16:07 -04:00
led.c
m5636.c
m66591.c
nand_id.c
pca9555.c
pcf50605.c
pcf50606.c
pcf50635.c
qt1106.c
ramdisk.c
rds.c
sd.c SD: Move sd_parse_csd() into common sdmmc code 2025-08-22 14:48:28 -04:00
serial.c serial: Add serial_tx_raw() function for sending raw bytes to the serial port 2025-01-20 08:17:48 -05:00
sw_i2c.c
synaptics-mep.c
touchpad.c
touchscreen.c
tsc200x.c
tsc2100.c
usb-designware.c New WIP port: Echo R1 2025-04-22 20:08:08 -04:00