Commit 9831013c authored by Samuel Thibault's avatar Samuel Thibault Committed by Greg Kroah-Hartman

speakup: convert screen reading to 16bit characters

This adds 16bit character support to most of the screen reading by
extending characters to u16 throughout the code.

Non-latin1 characters are assumed to be alphabetic type for now.

non-latin1 vt_notifier_call-provided characters are not ignored any
more, and the 16bit character returned by get_char is not truncated any
more. For simplicity, speak_char still only supports latin1 characters.
Its direct mode however does support 16bit characters, so in practice
this will not be a limitation, non-latin1 languages will be handled by
the synthesizer. spelling words does not support direct mode yet, for
simplicity for now it will ignore 16bit characters.

For simplicity again, speakup messages are left in latin1 for now.

Some coding style is fixed along the way.
Signed-off-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
Reviewed-by: default avatarOkash Khawaja <okash.khawaja@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 89fc2ae8
This diff is collapsed.
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#define B_SYM 0x0800 #define B_SYM 0x0800
#define B_CAPSYM (B_CAP|B_SYM) #define B_CAPSYM (B_CAP|B_SYM)
/* FIXME: u16 */
#define IS_WDLM(x) (spk_chartab[((u_char)x)]&B_WDLM) #define IS_WDLM(x) (spk_chartab[((u_char)x)]&B_WDLM)
#define IS_CHAR(x, type) (spk_chartab[((u_char)x)]&type) #define IS_CHAR(x, type) (spk_chartab[((u_char)x)]&type)
#define IS_TYPE(x, type) ((spk_chartab[((u_char)x)]&type) == type) #define IS_TYPE(x, type) ((spk_chartab[((u_char)x)]&type) == type)
......
...@@ -55,7 +55,7 @@ struct spk_highlight_color_track { ...@@ -55,7 +55,7 @@ struct spk_highlight_color_track {
/* Count of each background color */ /* Count of each background color */
unsigned int bgcount[8]; unsigned int bgcount[8];
/* Buffer for characters drawn with each background color */ /* Buffer for characters drawn with each background color */
char highbuf[8][COLOR_BUFFER_SIZE]; u16 highbuf[8][COLOR_BUFFER_SIZE];
/* Current index into highbuf */ /* Current index into highbuf */
unsigned int highsize[8]; unsigned int highsize[8];
/* Reading Position for each color */ /* Reading Position for each color */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment