From 886a3106db6d6a60d2d706d2caad3e883dd70b14 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sat, 1 Feb 2014 22:17:36 +0000 Subject: move utf8 local conversion operations to table --- atari/encoding.c | 6 ++++++ atari/encoding.h | 47 ++++++++++++++++++++++++++--------------------- atari/gui.c | 14 +++++++------- atari/plot/font_vdi.c | 2 ++ atari/toolbar.c | 1 + 5 files changed, 42 insertions(+), 28 deletions(-) (limited to 'atari') diff --git a/atari/encoding.c b/atari/encoding.c index 626f57ae8..f57a3d770 100644 --- a/atari/encoding.c +++ b/atari/encoding.c @@ -67,3 +67,9 @@ int atari_to_ucs4(unsigned char atari) } +static struct gui_utf8_table utf8_table = { + .utf8_to_local = utf8_to_local_encoding, + .local_to_utf8 = utf8_from_local_encoding, +}; + +struct gui_utf8_table *atari_utf8_table = &utf8_table; diff --git a/atari/encoding.h b/atari/encoding.h index c85bac9fc..d0289b613 100644 --- a/atari/encoding.h +++ b/atari/encoding.h @@ -1,32 +1,37 @@ -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2012 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef NS_ATARI_ENCODING_H #define NS_ATARI_ENCODING_H -#include -#include +#include +#include #include -#include "css/css.h" +#include "css/css.h" #include "render/font.h" -#include "utils/utf8.h" - +#include "utils/utf8.h" + +struct gui_utf8_table *atari_utf8_table; + +nserror utf8_to_local_encoding(const char *string, size_t len, char **result); +nserror utf8_from_local_encoding(const char *string, size_t len, char **result); + int atari_to_ucs4( unsigned char atarichar); #endif diff --git a/atari/gui.c b/atari/gui.c index af5e1f8ba..afd3be57b 100644 --- a/atari/gui.c +++ b/atari/gui.c @@ -30,6 +30,12 @@ #include #include +#include "utils/schedule.h" +#include "utils/url.h" +#include "utils/log.h" +#include "utils/messages.h" +#include "utils/utils.h" +#include "utils/nsoption.h" #include "content/urldb.h" #include "content/fetch.h" #include "content/fetchers/resource.h" @@ -38,8 +44,6 @@ #include "desktop/local_history.h" #include "desktop/plotters.h" #include "desktop/netsurf.h" - -#include "utils/nsoption.h" #include "desktop/save_complete.h" #include "desktop/textinput.h" #include "desktop/treeview.h" @@ -47,11 +51,6 @@ #include "desktop/browser_private.h" #include "desktop/mouse.h" #include "render/font.h" -#include "utils/schedule.h" -#include "utils/url.h" -#include "utils/log.h" -#include "utils/messages.h" -#include "utils/utils.h" #include "atari/gemtk/gemtk.h" #include "atari/gui.h" @@ -1113,6 +1112,7 @@ int main(int argc, char** argv) .clipboard = &atari_clipboard_table, .download = atari_download_table, .fetch = &atari_fetch_table, + .utf8 = atari_utf8_table, }; /* @todo logging file descriptor update belongs in a nslog_init callback */ diff --git a/atari/plot/font_vdi.c b/atari/plot/font_vdi.c index 0c914b82b..a73300c58 100755 --- a/atari/plot/font_vdi.c +++ b/atari/plot/font_vdi.c @@ -26,6 +26,8 @@ #include "utils/utf8.h" #include "utils/log.h" +#include "atari/encoding.h" + diff --git a/atari/toolbar.c b/atari/toolbar.c index 8044d160d..f40c07a65 100644 --- a/atari/toolbar.c +++ b/atari/toolbar.c @@ -55,6 +55,7 @@ #include "desktop/textarea.h" #include "desktop/textinput.h" #include "content/hlcache.h" +#include "atari/encoding.h" #define TB_BUTTON_WIDTH 32 -- cgit v1.2.3