comparison liboctave/wrappers/iconv-wrappers.c @ 32049:1c99c8f020f7

gui: Show encodings available with iconv in file editor preferences. * liboctave/wrappers/iconv-wrappers.h, liboctave/wrappers/iconv-wrappers.c (octave_iconvlist_wrapper, octave_iconv_canonicalize_wrapper): Add wrappers for libiconv functions. * liboctave/util/oct-string.h, liboctave/util/oct-string.cc (octave::string::get_encoding_list): Add new function that returns an ordered list of canonicalized encoding names that are available from libiconv. Use list of encoding identifiers as fallback on platforms without the required funcions. * libgui/src/gui-settings.cc, libgui/src/gui-settings.h (octave::gui_settings::get_codecs): Remove function. (octave::gui_settings::combo_encoding): Show list of encoding names that are actually available to the interpreter instead of a list of encodings available in Qt. * libgui/src/qt-interpreter-events.cc (octave::qt_interpreter_events::gui_preference_adjust): Remove logic for mapping between Qt encoding names and iconv encoding names. * libgui/src/settings-dialog.cc: Remove unused header. * m4/acinclude.m4 (OCTAVE_CHECK_ICONVLIST, OCTAVE_CHECK_ICONV_CANONICALIZE): Add checks for functions from libiconv that are not available on all platforms. * configure.ac: Call new functions.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 22 Apr 2023 19:01:35 +0200
parents 8d30584b7525
children c409e2eeb9c7
comparison
equal deleted inserted replaced
32048:61db3c9377fb 32049:1c99c8f020f7
40 int 40 int
41 octave_iconv_close_wrapper (void *cd) 41 octave_iconv_close_wrapper (void *cd)
42 { 42 {
43 return iconv_close ((iconv_t) cd); 43 return iconv_close ((iconv_t) cd);
44 } 44 }
45
46 void
47 octave_iconvlist_wrapper (int (*do_one) (unsigned int namescount,
48 const char * const *names,
49 void *data),
50 void *data)
51 {
52 #if defined (HAVE_ICONVLIST)
53 iconvlist (do_one, data);
54 #endif
55
56 return;
57 }
58
59 const char *
60 octave_iconv_canonicalize_wrapper (const char *name)
61 {
62 #if defined (HAVE_ICONV_CANONICALIZE)
63 return iconv_canonicalize (name);
64 #else
65 return name;
66 #endif
67 }