Commit fc25275fa30ef776634b21cd6fb8b49227945237
1 parent
d118d990
Exists in
master
and in
5 other branches
Extendendo tratamento de charset para a classe base para implementação de extens…
…ões, incluindo novos métodos no plugin rexx
Showing
29 changed files
with
216 additions
and
56 deletions
Show diff stats
android/jni/misc.cpp
@@ -42,7 +42,7 @@ JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getRevision(JNIEnv *env, | @@ -42,7 +42,7 @@ JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getRevision(JNIEnv *env, | ||
42 | 42 | ||
43 | JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getEncoding(JNIEnv *env, jobject obj) | 43 | JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getEncoding(JNIEnv *env, jobject obj) |
44 | { | 44 | { |
45 | - return env->NewStringUTF(lib3270_get_charset(lib3270_get_default_session_handle())); | 45 | + return env->NewStringUTF(lib3270_get_display_charset(lib3270_get_default_session_handle())); |
46 | } | 46 | } |
47 | 47 | ||
48 | JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setToggle(JNIEnv *env, jobject obj, jstring name, jboolean state) | 48 | JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setToggle(JNIEnv *env, jobject obj, jstring name, jboolean state) |
pw3270.cbp
@@ -71,6 +71,7 @@ | @@ -71,6 +71,7 @@ | ||
71 | <Unit filename="src/include/lib3270.h" /> | 71 | <Unit filename="src/include/lib3270.h" /> |
72 | <Unit filename="src/include/lib3270/action_table.h" /> | 72 | <Unit filename="src/include/lib3270/action_table.h" /> |
73 | <Unit filename="src/include/lib3270/actions.h" /> | 73 | <Unit filename="src/include/lib3270/actions.h" /> |
74 | + <Unit filename="src/include/lib3270/charset.h" /> | ||
74 | <Unit filename="src/include/lib3270/config.h.in" /> | 75 | <Unit filename="src/include/lib3270/config.h.in" /> |
75 | <Unit filename="src/include/lib3270/filetransfer.h" /> | 76 | <Unit filename="src/include/lib3270/filetransfer.h" /> |
76 | <Unit filename="src/include/lib3270/html.h" /> | 77 | <Unit filename="src/include/lib3270/html.h" /> |
@@ -298,6 +299,7 @@ | @@ -298,6 +299,7 @@ | ||
298 | <Unit filename="src/plugins/rx3270/rx3270.cls" /> | 299 | <Unit filename="src/plugins/rx3270/rx3270.cls" /> |
299 | <Unit filename="src/plugins/rx3270/rx3270.h" /> | 300 | <Unit filename="src/plugins/rx3270/rx3270.h" /> |
300 | <Unit filename="src/plugins/rx3270/rxapimain.cc" /> | 301 | <Unit filename="src/plugins/rx3270/rxapimain.cc" /> |
302 | + <Unit filename="src/plugins/rx3270/sample/charset.rex" /> | ||
301 | <Unit filename="src/plugins/rx3270/sample/clipboard.rex" /> | 303 | <Unit filename="src/plugins/rx3270/sample/clipboard.rex" /> |
302 | <Unit filename="src/plugins/rx3270/sample/object.rex" /> | 304 | <Unit filename="src/plugins/rx3270/sample/object.rex" /> |
303 | <Unit filename="src/plugins/rx3270/sample/remote.rex" /> | 305 | <Unit filename="src/plugins/rx3270/sample/remote.rex" /> |
src/classlib/local.cc
@@ -302,7 +302,9 @@ | @@ -302,7 +302,9 @@ | ||
302 | int (*_get_next_unprotected)(H3270 *hSession, int baddr0); | 302 | int (*_get_next_unprotected)(H3270 *hSession, int baddr0); |
303 | void (*_popup_va)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list); | 303 | void (*_popup_va)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list); |
304 | void * (*_free)(void *); | 304 | void * (*_free)(void *); |
305 | - const char * (*_get_charset)(H3270 *hSession); | 305 | + const char * (*_get_display_charset)(H3270 *hSession); |
306 | + int (*_set_host_charset)(H3270 *hSession, const char *name); | ||
307 | + const char * (*_get_host_charset)(H3270 *hSession); | ||
306 | 308 | ||
307 | public: | 309 | public: |
308 | 310 | ||
@@ -349,7 +351,9 @@ | @@ -349,7 +351,9 @@ | ||
349 | { (void **) & _get_next_unprotected, "lib3270_get_next_unprotected" }, | 351 | { (void **) & _get_next_unprotected, "lib3270_get_next_unprotected" }, |
350 | { (void **) & _popup_va, "lib3270_popup_va" }, | 352 | { (void **) & _popup_va, "lib3270_popup_va" }, |
351 | { (void **) & _free, "lib3270_free" }, | 353 | { (void **) & _free, "lib3270_free" }, |
352 | - { (void **) & _get_charset, "lib3270_get_charset" }, | 354 | + { (void **) & _get_display_charset, "lib3270_get_display_charset" }, |
355 | + { (void **) & _set_host_charset, "lib3270_set_host_charset" }, | ||
356 | + { (void **) & _get_host_charset, "lib3270_get_host_charset" }, | ||
353 | 357 | ||
354 | }; | 358 | }; |
355 | 359 | ||
@@ -371,7 +375,7 @@ | @@ -371,7 +375,7 @@ | ||
371 | set_trace_handler(tracehandler); | 375 | set_trace_handler(tracehandler); |
372 | this->hSession = lib3270_new(""); | 376 | this->hSession = lib3270_new(""); |
373 | 377 | ||
374 | - set_charset(); | 378 | + set_display_charset(); |
375 | 379 | ||
376 | } | 380 | } |
377 | 381 | ||
@@ -542,9 +546,19 @@ | @@ -542,9 +546,19 @@ | ||
542 | return 0; | 546 | return 0; |
543 | } | 547 | } |
544 | 548 | ||
545 | - const char * get_charset(void) | 549 | + string * get_display_charset(void) |
546 | { | 550 | { |
547 | - return _get_charset(hSession); | 551 | + return new string(_get_display_charset(hSession)); |
552 | + } | ||
553 | + | ||
554 | + int set_host_charset(const char *charset) | ||
555 | + { | ||
556 | + return _set_host_charset(hSession,charset); | ||
557 | + } | ||
558 | + | ||
559 | + string * get_host_charset(void) | ||
560 | + { | ||
561 | + return new string(_get_host_charset(hSession)); | ||
548 | } | 562 | } |
549 | 563 | ||
550 | }; | 564 | }; |
src/classlib/remote.cc
@@ -997,6 +997,21 @@ | @@ -997,6 +997,21 @@ | ||
997 | return query_intval("setClipboard", DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | 997 | return query_intval("setClipboard", DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); |
998 | } | 998 | } |
999 | 999 | ||
1000 | + int set_host_charset(const char *charset) | ||
1001 | + { | ||
1002 | + return query_intval("setHostCharset", DBUS_TYPE_STRING, &charset, DBUS_TYPE_INVALID); | ||
1003 | + } | ||
1004 | + | ||
1005 | + string * get_host_charset(void) | ||
1006 | + { | ||
1007 | + return query_string("getHostCharset"); | ||
1008 | + } | ||
1009 | + | ||
1010 | + string * get_display_charset(void) | ||
1011 | + { | ||
1012 | + return query_string("getDisplayCharset"); | ||
1013 | + } | ||
1014 | + | ||
1000 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) | 1015 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) |
1001 | { | 1016 | { |
1002 | DBusMessage * msg = dbus_message_new_method_call( this->dest, // Destination | 1017 | DBusMessage * msg = dbus_message_new_method_call( this->dest, // Destination |
src/classlib/session.cc
@@ -121,9 +121,10 @@ | @@ -121,9 +121,10 @@ | ||
121 | } | 121 | } |
122 | 122 | ||
123 | // Object settings | 123 | // Object settings |
124 | - void session::set_charset(const char *remote, const char *local) | 124 | + void session::set_display_charset(const char *remote, const char *local) |
125 | { | 125 | { |
126 | #ifdef HAVE_ICONV | 126 | #ifdef HAVE_ICONV |
127 | + string *display_charset = this->get_display_charset(); | ||
127 | 128 | ||
128 | if(this->conv2Local != (iconv_t) (-1)) | 129 | if(this->conv2Local != (iconv_t) (-1)) |
129 | iconv_close(this->conv2Local); | 130 | iconv_close(this->conv2Local); |
@@ -132,7 +133,7 @@ | @@ -132,7 +133,7 @@ | ||
132 | iconv_close(this->conv2Host); | 133 | iconv_close(this->conv2Host); |
133 | 134 | ||
134 | if(!remote) | 135 | if(!remote) |
135 | - remote = this->get_charset(); | 136 | + remote = display_charset->c_str(); |
136 | 137 | ||
137 | if(strcmp(local,remote)) | 138 | if(strcmp(local,remote)) |
138 | { | 139 | { |
@@ -144,22 +145,24 @@ | @@ -144,22 +145,24 @@ | ||
144 | { | 145 | { |
145 | conv2Local = conv2Host = (iconv_t)(-1); | 146 | conv2Local = conv2Host = (iconv_t)(-1); |
146 | } | 147 | } |
148 | + | ||
149 | + delete display_charset; | ||
147 | #endif | 150 | #endif |
148 | 151 | ||
149 | } | 152 | } |
150 | 153 | ||
151 | - const char * session::get_charset(void) | 154 | + string * session::get_display_charset(void) |
152 | { | 155 | { |
153 | - return "ISO-8859-1"; | 156 | + return new string("ISO-8859-1"); |
154 | } | 157 | } |
155 | 158 | ||
156 | // 3270 methods | 159 | // 3270 methods |
157 | - string session::get_version(void) | 160 | + const string session::get_version(void) |
158 | { | 161 | { |
159 | return string(PACKAGE_VERSION); | 162 | return string(PACKAGE_VERSION); |
160 | } | 163 | } |
161 | 164 | ||
162 | - string session::get_revision(void) | 165 | + const string session::get_revision(void) |
163 | { | 166 | { |
164 | return string(PACKAGE_REVISION); | 167 | return string(PACKAGE_REVISION); |
165 | } | 168 | } |
src/classlib/testprogram.cc
@@ -37,7 +37,8 @@ | @@ -37,7 +37,8 @@ | ||
37 | 37 | ||
38 | int main(int numpar, char *param[]) | 38 | int main(int numpar, char *param[]) |
39 | { | 39 | { |
40 | - session *session = session::start(); | 40 | + string *s; |
41 | + session *session = session::start("pw3270:a"); | ||
41 | 42 | ||
42 | cout << "pw3270 version: " << session->get_version() << endl; | 43 | cout << "pw3270 version: " << session->get_version() << endl; |
43 | cout << "pw3270 revision: " << session->get_revision() << endl << endl; | 44 | cout << "pw3270 revision: " << session->get_revision() << endl << endl; |
@@ -47,8 +48,15 @@ | @@ -47,8 +48,15 @@ | ||
47 | else | 48 | else |
48 | cout << "\tDisconnected" << endl; | 49 | cout << "\tDisconnected" << endl; |
49 | 50 | ||
50 | - cout << "\tSession state: " << session->get_cstate() << endl; | ||
51 | - cout << "\tCharset: " << session->get_charset() << endl; | 51 | + cout << "\tSession state: " << session->get_cstate() << endl; |
52 | + | ||
53 | + s = session->get_display_charset(); | ||
54 | + cout << "\tDisplay charset: " << s->c_str() << endl; | ||
55 | + delete s; | ||
56 | + | ||
57 | + s = session->get_host_charset(); | ||
58 | + cout << "\tHost charset: " << s->c_str() << endl; | ||
59 | + delete s; | ||
52 | 60 | ||
53 | delete session; | 61 | delete session; |
54 | return 0; | 62 | return 0; |
src/include/lib3270.h
@@ -788,7 +788,9 @@ | @@ -788,7 +788,9 @@ | ||
788 | * @return String with current encoding. | 788 | * @return String with current encoding. |
789 | * | 789 | * |
790 | */ | 790 | */ |
791 | - LIB3270_EXPORT const char * lib3270_get_charset(H3270 *session); | 791 | + LIB3270_EXPORT const char * lib3270_get_display_charset(H3270 *session); |
792 | + | ||
793 | + #define lib3270_get_charset(s) lib3270_get_display_charset(s) | ||
792 | 794 | ||
793 | LIB3270_EXPORT const char * lib3270_get_default_charset(void); | 795 | LIB3270_EXPORT const char * lib3270_get_default_charset(void); |
794 | 796 |
src/include/lib3270/charset.h
@@ -56,7 +56,8 @@ | @@ -56,7 +56,8 @@ | ||
56 | BOTH | 56 | BOTH |
57 | } lib3270_remap_scope; | 57 | } lib3270_remap_scope; |
58 | 58 | ||
59 | - LIB3270_EXPORT int lib3270_set_host_charset(H3270 *hSession, const char *name); | ||
60 | - LIB3270_EXPORT void lib3270_remap(H3270 *hSession, unsigned short ebc, unsigned short iso, lib3270_remap_scope scope, unsigned char one_way); | 59 | + LIB3270_EXPORT int lib3270_set_host_charset(H3270 *hSession, const char *name); |
60 | + LIB3270_EXPORT const char * lib3270_get_host_charset(H3270 *hSession); | ||
61 | + LIB3270_EXPORT void lib3270_remap(H3270 *hSession, unsigned short ebc, unsigned short iso, lib3270_remap_scope scope, unsigned char one_way); | ||
61 | 62 | ||
62 | #endif // LIB3270_CHARSET_H_INCLUDED | 63 | #endif // LIB3270_CHARSET_H_INCLUDED |
src/include/pw3270/class.h
@@ -101,28 +101,30 @@ | @@ -101,28 +101,30 @@ | ||
101 | static session * get_default(void); | 101 | static session * get_default(void); |
102 | static void set_plugin(session * (*factory)(const char *name)); | 102 | static void set_plugin(session * (*factory)(const char *name)); |
103 | 103 | ||
104 | -#ifdef WIN32 | ||
105 | - void set_charset(const char *remote = 0, const char *local = "CP1252"); | ||
106 | -#else | ||
107 | - void set_charset(const char *remote = 0, const char *local = "UTF-8"); | ||
108 | -#endif // WIN32 | ||
109 | - | ||
110 | - | ||
111 | - | ||
112 | // Log management | 104 | // Log management |
113 | void log(const char *fmt, ...); | 105 | void log(const char *fmt, ...); |
114 | void logva(const char *fmt, va_list args); | 106 | void logva(const char *fmt, va_list args); |
115 | 107 | ||
116 | // Information | 108 | // Information |
117 | - virtual string get_version(void); | ||
118 | - virtual string get_revision(void); | ||
119 | - virtual const char * get_charset(void); | 109 | + virtual const string get_version(void); |
110 | + virtual const string get_revision(void); | ||
120 | 111 | ||
121 | virtual bool is_connected(void) = 0; | 112 | virtual bool is_connected(void) = 0; |
122 | virtual bool is_ready(void) = 0; | 113 | virtual bool is_ready(void) = 0; |
123 | 114 | ||
124 | virtual LIB3270_CSTATE get_cstate(void) = 0; | 115 | virtual LIB3270_CSTATE get_cstate(void) = 0; |
125 | 116 | ||
117 | + // charset | ||
118 | +#ifdef WIN32 | ||
119 | + void set_display_charset(const char *remote = 0, const char *local = "CP1252"); | ||
120 | +#else | ||
121 | + void set_display_charset(const char *remote = 0, const char *local = "UTF-8"); | ||
122 | +#endif // WIN32 | ||
123 | + | ||
124 | + virtual int set_host_charset(const char *charset) = 0; | ||
125 | + virtual string * get_host_charset(void) = 0; | ||
126 | + virtual string * get_display_charset(void); | ||
127 | + | ||
126 | // Connection & Network | 128 | // Connection & Network |
127 | virtual int connect(const char *uri, bool wait = true) = 0; | 129 | virtual int connect(const char *uri, bool wait = true) = 0; |
128 | virtual int disconnect(void) = 0; | 130 | virtual int disconnect(void) = 0; |
src/lib3270/charset.c
@@ -300,12 +300,18 @@ LIB3270_EXPORT const char * lib3270_get_default_charset(void) | @@ -300,12 +300,18 @@ LIB3270_EXPORT const char * lib3270_get_default_charset(void) | ||
300 | return "ISO-8859-1"; | 300 | return "ISO-8859-1"; |
301 | } | 301 | } |
302 | 302 | ||
303 | -LIB3270_EXPORT const char * lib3270_get_charset(H3270 *hSession) | 303 | +LIB3270_EXPORT const char * lib3270_get_display_charset(H3270 *hSession) |
304 | { | 304 | { |
305 | CHECK_SESSION_HANDLE(hSession); | 305 | CHECK_SESSION_HANDLE(hSession); |
306 | return hSession->charset.display ? hSession->charset.display : "ISO-8859-1"; | 306 | return hSession->charset.display ? hSession->charset.display : "ISO-8859-1"; |
307 | } | 307 | } |
308 | 308 | ||
309 | +LIB3270_EXPORT const char * lib3270_get_host_charset(H3270 *hSession) | ||
310 | +{ | ||
311 | + CHECK_SESSION_HANDLE(hSession); | ||
312 | + return hSession->charset.host; | ||
313 | +} | ||
314 | + | ||
309 | LIB3270_ACTION( charsettable ) | 315 | LIB3270_ACTION( charsettable ) |
310 | { | 316 | { |
311 | static const char * hChars = "0123456789ABCDEF"; | 317 | static const char * hChars = "0123456789ABCDEF"; |
src/lib3270/html.c
@@ -244,7 +244,7 @@ | @@ -244,7 +244,7 @@ | ||
244 | 244 | ||
245 | if(option & LIB3270_HTML_OPTION_HEADERS) | 245 | if(option & LIB3270_HTML_OPTION_HEADERS) |
246 | { | 246 | { |
247 | - char *txt = xs_buffer(element_text[HTML_ELEMENT_HEADER],lib3270_get_charset(session),html_color[0]); | 247 | + char *txt = xs_buffer(element_text[HTML_ELEMENT_HEADER],lib3270_get_display_charset(session),html_color[0]); |
248 | append_string(&info,txt); | 248 | append_string(&info,txt); |
249 | lib3270_free(txt); | 249 | lib3270_free(txt); |
250 | } | 250 | } |
src/lib3270/macros.c
src/plugins/dbus3270/gobject.c
@@ -44,6 +44,7 @@ | @@ -44,6 +44,7 @@ | ||
44 | #include <pw3270.h> | 44 | #include <pw3270.h> |
45 | #include <pw3270/v3270.h> | 45 | #include <pw3270/v3270.h> |
46 | #include <lib3270/actions.h> | 46 | #include <lib3270/actions.h> |
47 | +#include <lib3270/charset.h> | ||
47 | 48 | ||
48 | #include "service.h" | 49 | #include "service.h" |
49 | 50 | ||
@@ -191,7 +192,7 @@ void pw3270_dbus_get_screen_contents(PW3270Dbus *object, DBusGMethodInvocation * | @@ -191,7 +192,7 @@ void pw3270_dbus_get_screen_contents(PW3270Dbus *object, DBusGMethodInvocation * | ||
191 | 192 | ||
192 | text = lib3270_get_text(hSession,0,-1); | 193 | text = lib3270_get_text(hSession,0,-1); |
193 | 194 | ||
194 | - utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_charset(hSession),"?",NULL,NULL,NULL); | 195 | + utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL); |
195 | 196 | ||
196 | lib3270_free(text); | 197 | lib3270_free(text); |
197 | 198 | ||
@@ -218,7 +219,7 @@ void pw3270_dbus_set_text_at(PW3270Dbus *object, int row, int col, const gchar * | @@ -218,7 +219,7 @@ void pw3270_dbus_set_text_at(PW3270Dbus *object, int row, int col, const gchar * | ||
218 | if(pw3270_dbus_check_valid_state(object,context)) | 219 | if(pw3270_dbus_check_valid_state(object,context)) |
219 | return; | 220 | return; |
220 | 221 | ||
221 | - text = g_convert_with_fallback(utftext,-1,lib3270_get_charset(hSession),"UTF-8","?",NULL,NULL,NULL); | 222 | + text = g_convert_with_fallback(utftext,-1,lib3270_get_display_charset(hSession),"UTF-8","?",NULL,NULL,NULL); |
222 | 223 | ||
223 | dbus_g_method_return(context,lib3270_set_string_at(hSession,row,col,(const unsigned char *) text)); | 224 | dbus_g_method_return(context,lib3270_set_string_at(hSession,row,col,(const unsigned char *) text)); |
224 | 225 | ||
@@ -234,7 +235,7 @@ void pw3270_dbus_input(PW3270Dbus *object, const gchar *utftext, DBusGMethodInvo | @@ -234,7 +235,7 @@ void pw3270_dbus_input(PW3270Dbus *object, const gchar *utftext, DBusGMethodInvo | ||
234 | if(pw3270_dbus_check_valid_state(object,context)) | 235 | if(pw3270_dbus_check_valid_state(object,context)) |
235 | return; | 236 | return; |
236 | 237 | ||
237 | - text = g_convert_with_fallback(utftext,-1,lib3270_get_charset(hSession),"UTF-8","?",NULL,NULL,NULL); | 238 | + text = g_convert_with_fallback(utftext,-1,lib3270_get_display_charset(hSession),"UTF-8","?",NULL,NULL,NULL); |
238 | 239 | ||
239 | dbus_g_method_return(context,lib3270_emulate_input(hSession,(const char *) text,-1,1)); | 240 | dbus_g_method_return(context,lib3270_emulate_input(hSession,(const char *) text,-1,1)); |
240 | 241 | ||
@@ -260,7 +261,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | @@ -260,7 +261,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | ||
260 | } | 261 | } |
261 | else | 262 | else |
262 | { | 263 | { |
263 | - gchar * utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_charset(hSession),"?",NULL,NULL,NULL); | 264 | + gchar * utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL); |
264 | 265 | ||
265 | lib3270_free(text); | 266 | lib3270_free(text); |
266 | 267 | ||
@@ -288,7 +289,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | @@ -288,7 +289,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | ||
288 | } | 289 | } |
289 | else | 290 | else |
290 | { | 291 | { |
291 | - gchar * utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_charset(hSession),"?",NULL,NULL,NULL); | 292 | + gchar * utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL); |
292 | 293 | ||
293 | lib3270_free(text); | 294 | lib3270_free(text); |
294 | 295 | ||
@@ -356,7 +357,7 @@ void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar * | @@ -356,7 +357,7 @@ void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar * | ||
356 | if(pw3270_dbus_check_valid_state(object,context)) | 357 | if(pw3270_dbus_check_valid_state(object,context)) |
357 | return; | 358 | return; |
358 | 359 | ||
359 | - text = g_convert_with_fallback(utftext,-1,lib3270_get_charset(hSession),"UTF-8","?",NULL,NULL,NULL); | 360 | + text = g_convert_with_fallback(utftext,-1,lib3270_get_display_charset(hSession),"UTF-8","?",NULL,NULL,NULL); |
360 | 361 | ||
361 | dbus_g_method_return(context,lib3270_cmp_text_at(hSession,row,col,text)); | 362 | dbus_g_method_return(context,lib3270_cmp_text_at(hSession,row,col,text)); |
362 | 363 | ||
@@ -452,3 +453,18 @@ void pw3270_dbus_show_popup(PW3270Dbus *object, int id, const gchar *title, cons | @@ -452,3 +453,18 @@ void pw3270_dbus_show_popup(PW3270Dbus *object, int id, const gchar *title, cons | ||
452 | lib3270_popup_dialog(pw3270_dbus_get_session_handle(object), (LIB3270_NOTIFY) id , title, msg, "%s", text); | 453 | lib3270_popup_dialog(pw3270_dbus_get_session_handle(object), (LIB3270_NOTIFY) id , title, msg, "%s", text); |
453 | dbus_g_method_return(context,0); | 454 | dbus_g_method_return(context,0); |
454 | } | 455 | } |
456 | + | ||
457 | +void pw3270_dbus_get_host_charset(PW3270Dbus *object, DBusGMethodInvocation *context) | ||
458 | +{ | ||
459 | + dbus_g_method_return(context,lib3270_get_host_charset(pw3270_dbus_get_session_handle(object))); | ||
460 | +} | ||
461 | + | ||
462 | +void pw3270_dbus_get_display_charset(PW3270Dbus *object, DBusGMethodInvocation *context) | ||
463 | +{ | ||
464 | + dbus_g_method_return(context,lib3270_get_display_charset(pw3270_dbus_get_session_handle(object))); | ||
465 | +} | ||
466 | + | ||
467 | +void pw3270_dbus_set_host_charset(PW3270Dbus *object, const gchar *charset, DBusGMethodInvocation *context) | ||
468 | +{ | ||
469 | + dbus_g_method_return(context,lib3270_set_host_charset(pw3270_dbus_get_session_handle(object),charset)); | ||
470 | +} |
src/plugins/dbus3270/pw3270dbus.xml
@@ -149,6 +149,20 @@ | @@ -149,6 +149,20 @@ | ||
149 | <arg type="s" name="msg" direction="in" /> | 149 | <arg type="s" name="msg" direction="in" /> |
150 | <arg type="s" name="text" direction="in" /> | 150 | <arg type="s" name="text" direction="in" /> |
151 | </method> | 151 | </method> |
152 | + <method name="getHostCharset"> | ||
153 | + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> | ||
154 | + <arg type="s" name="charset" direction="out" /> | ||
155 | + </method> | ||
156 | + <method name="getDisplayCharset"> | ||
157 | + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> | ||
158 | + <arg type="s" name="charset" direction="out" /> | ||
159 | + </method> | ||
160 | + <method name="setHostCharset"> | ||
161 | + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> | ||
162 | + <arg type="s" name="charset" direction="in" /> | ||
163 | + <arg type="i" name="result" direction="out" /> | ||
164 | + </method> | ||
165 | + | ||
152 | </interface> | 166 | </interface> |
153 | 167 | ||
154 | </node> | 168 | </node> |
src/plugins/dbus3270/service.h
@@ -106,6 +106,10 @@ | @@ -106,6 +106,10 @@ | ||
106 | void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context); | 106 | void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context); |
107 | void pw3270_dbus_get_clipboard(PW3270Dbus *object, DBusGMethodInvocation *context); | 107 | void pw3270_dbus_get_clipboard(PW3270Dbus *object, DBusGMethodInvocation *context); |
108 | 108 | ||
109 | + void pw3270_dbus_get_display_charset(PW3270Dbus *object, DBusGMethodInvocation *context); | ||
110 | + void pw3270_dbus_get_host_charset(PW3270Dbus *object, DBusGMethodInvocation *context); | ||
111 | + void pw3270_dbus_set_host_charset(PW3270Dbus *object, const gchar *charset, DBusGMethodInvocation *context); | ||
112 | + | ||
109 | G_END_DECLS | 113 | G_END_DECLS |
110 | 114 | ||
111 | #endif // _PW3270_DBUS_SERVICE_H | 115 | #endif // _PW3270_DBUS_SERVICE_H |
src/plugins/dbus3270/test.sh
@@ -45,6 +45,15 @@ run_command() | @@ -45,6 +45,15 @@ run_command() | ||
45 | dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.isConnected | 45 | dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.isConnected |
46 | ;; | 46 | ;; |
47 | 47 | ||
48 | + hostcharset) | ||
49 | + dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.getHostCharset | ||
50 | + ;; | ||
51 | + | ||
52 | + displaycharset) | ||
53 | + dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.getDisplayCharset | ||
54 | + ;; | ||
55 | + | ||
56 | + | ||
48 | *) | 57 | *) |
49 | echo "Comando $1 desconhecido" | 58 | echo "Comando $1 desconhecido" |
50 | ;; | 59 | ;; |
src/plugins/rx3270/pluginmain.cc
@@ -49,6 +49,7 @@ | @@ -49,6 +49,7 @@ | ||
49 | #include <lib3270/actions.h> | 49 | #include <lib3270/actions.h> |
50 | #include <lib3270/log.h> | 50 | #include <lib3270/log.h> |
51 | #include <lib3270/trace.h> | 51 | #include <lib3270/trace.h> |
52 | + #include <lib3270/charset.h> | ||
52 | #include <pw3270/class.h> | 53 | #include <pw3270/class.h> |
53 | 54 | ||
54 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ | 55 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
@@ -84,7 +85,7 @@ | @@ -84,7 +85,7 @@ | ||
84 | 85 | ||
85 | void free(void *ptr); | 86 | void free(void *ptr); |
86 | 87 | ||
87 | - string get_version(void); | 88 | + const string get_version(void); |
88 | LIB3270_CSTATE get_cstate(void); | 89 | LIB3270_CSTATE get_cstate(void); |
89 | int disconnect(void); | 90 | int disconnect(void); |
90 | int connect(const char *uri, bool wait = true); | 91 | int connect(const char *uri, bool wait = true); |
@@ -126,6 +127,10 @@ | @@ -126,6 +127,10 @@ | ||
126 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | 127 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); |
127 | string * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | 128 | string * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); |
128 | 129 | ||
130 | + int set_host_charset(const char *charset); | ||
131 | + string * get_host_charset(void); | ||
132 | + string * get_display_charset(void); | ||
133 | + | ||
129 | int quit(void); | 134 | int quit(void); |
130 | 135 | ||
131 | protected: | 136 | protected: |
@@ -502,7 +507,7 @@ extern "C" | @@ -502,7 +507,7 @@ extern "C" | ||
502 | } | 507 | } |
503 | 508 | ||
504 | 509 | ||
505 | - string plugin::get_version(void) | 510 | + const string plugin::get_version(void) |
506 | { | 511 | { |
507 | return string(lib3270_get_version()); | 512 | return string(lib3270_get_version()); |
508 | } | 513 | } |
@@ -723,3 +728,18 @@ int plugin::quit(void) | @@ -723,3 +728,18 @@ int plugin::quit(void) | ||
723 | gtk_main_quit(); | 728 | gtk_main_quit(); |
724 | return 0; | 729 | return 0; |
725 | } | 730 | } |
731 | + | ||
732 | +int plugin::set_host_charset(const char *charset) | ||
733 | +{ | ||
734 | + return lib3270_set_host_charset(hSession,charset); | ||
735 | +} | ||
736 | + | ||
737 | +string * plugin::get_host_charset(void) | ||
738 | +{ | ||
739 | + return new string(lib3270_get_host_charset(hSession)); | ||
740 | +} | ||
741 | + | ||
742 | +string * plugin::get_display_charset(void) | ||
743 | +{ | ||
744 | + return new string(lib3270_get_display_charset(hSession)); | ||
745 | +} |
src/plugins/rx3270/rexx_methods.cc
@@ -578,3 +578,24 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | @@ -578,3 +578,24 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | ||
578 | return context->String(""); | 578 | return context->String(""); |
579 | } | 579 | } |
580 | 580 | ||
581 | +RexxMethod2(int, rx3270_method_set_host_charset, CSELF, sessionPtr, CSTRING, text) | ||
582 | +{ | ||
583 | + return ((session *) sessionPtr)->set_host_charset(text); | ||
584 | +} | ||
585 | + | ||
586 | +RexxMethod1(RexxStringObject, rx3270_method_get_host_charset, CSELF, sessionPtr) | ||
587 | +{ | ||
588 | + string * ret = ((session *) sessionPtr)->get_host_charset(); | ||
589 | + RexxStringObject obj = context->String(ret->c_str()); | ||
590 | + delete ret; | ||
591 | + return obj; | ||
592 | +} | ||
593 | + | ||
594 | +RexxMethod1(RexxStringObject, rx3270_method_get_display_charset, CSELF, sessionPtr) | ||
595 | +{ | ||
596 | + string * ret = ((session *) sessionPtr)->get_display_charset(); | ||
597 | + RexxStringObject obj = context->String(ret->c_str()); | ||
598 | + delete ret; | ||
599 | + return obj; | ||
600 | +} | ||
601 | + |
src/plugins/rx3270/rx3270.cls
@@ -87,6 +87,10 @@ | @@ -87,6 +87,10 @@ | ||
87 | ::METHOD POPUP EXTERNAL "LIBRARY rx3270 rx3270_method_popup" | 87 | ::METHOD POPUP EXTERNAL "LIBRARY rx3270 rx3270_method_popup" |
88 | ::METHOD GETFILENAME EXTERNAL "LIBRARY rx3270 rx3270_method_get_filename" | 88 | ::METHOD GETFILENAME EXTERNAL "LIBRARY rx3270 rx3270_method_get_filename" |
89 | 89 | ||
90 | +::METHOD GETDISPLAYCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_get_display_charset" | ||
91 | +::METHOD GETHOSTCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_get_host_charset" | ||
92 | +::METHOD SETHOSTCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_set_host_charset" | ||
93 | + | ||
90 | ::method waitForStringAt | 94 | ::method waitForStringAt |
91 | use arg row, col, key, timeout | 95 | use arg row, col, key, timeout |
92 | if datatype(timeout) <> "NUM" | 96 | if datatype(timeout) <> "NUM" |
src/plugins/rx3270/rx3270.h
@@ -124,6 +124,9 @@ | @@ -124,6 +124,9 @@ | ||
124 | REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr); | 124 | REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr); |
125 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr); | 125 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr); |
126 | REXX_METHOD_PROTOTYPE(rx3270_method_input_text); | 126 | REXX_METHOD_PROTOTYPE(rx3270_method_input_text); |
127 | + REXX_METHOD_PROTOTYPE(rx3270_method_get_display_charset); | ||
128 | + REXX_METHOD_PROTOTYPE(rx3270_method_get_host_charset); | ||
129 | + REXX_METHOD_PROTOTYPE(rx3270_method_set_host_charset); | ||
127 | 130 | ||
128 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ | 131 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ |
129 | 132 |
src/plugins/rx3270/rxapimain.cc
@@ -164,6 +164,10 @@ RexxMethodEntry rx3270_methods[] = | @@ -164,6 +164,10 @@ RexxMethodEntry rx3270_methods[] = | ||
164 | REXX_METHOD(rx3270_method_set_cursor_addr, rx3270_method_set_cursor_addr ), | 164 | REXX_METHOD(rx3270_method_set_cursor_addr, rx3270_method_set_cursor_addr ), |
165 | REXX_METHOD(rx3270_method_input_text, rx3270_method_input_text ), | 165 | REXX_METHOD(rx3270_method_input_text, rx3270_method_input_text ), |
166 | 166 | ||
167 | + REXX_METHOD(rx3270_method_get_display_charset, rx3270_method_get_display_charset ), | ||
168 | + REXX_METHOD(rx3270_method_get_host_charset, rx3270_method_get_host_charset ), | ||
169 | + REXX_METHOD(rx3270_method_set_host_charset, rx3270_method_set_host_charset ), | ||
170 | + | ||
167 | REXX_LAST_METHOD() | 171 | REXX_LAST_METHOD() |
168 | }; | 172 | }; |
169 | 173 |
src/pw3270/actions.c
@@ -219,7 +219,7 @@ static void copy_as_html_action(GtkAction *action, GtkWidget *widget) | @@ -219,7 +219,7 @@ static void copy_as_html_action(GtkAction *action, GtkWidget *widget) | ||
219 | trace_action(action,widget); | 219 | trace_action(action,widget); |
220 | 220 | ||
221 | text = lib3270_get_as_html(session,LIB3270_HTML_OPTION_ALL|LIB3270_HTML_OPTION_FORM); | 221 | text = lib3270_get_as_html(session,LIB3270_HTML_OPTION_ALL|LIB3270_HTML_OPTION_FORM); |
222 | - utf = g_convert(text, -1, "UTF-8", lib3270_get_charset(session), NULL, NULL, NULL); | 222 | + utf = g_convert(text, -1, "UTF-8", lib3270_get_display_charset(session), NULL, NULL, NULL); |
223 | lib3270_free(text); | 223 | lib3270_free(text); |
224 | 224 | ||
225 | gtk_clipboard_set_text(clipboard,utf,-1); | 225 | gtk_clipboard_set_text(clipboard,utf,-1); |
src/pw3270/main.c
@@ -308,7 +308,7 @@ static void g_trace(H3270 *hSession, const char *fmt, va_list args) | @@ -308,7 +308,7 @@ static void g_trace(H3270 *hSession, const char *fmt, va_list args) | ||
308 | else | 308 | else |
309 | { | 309 | { |
310 | // No trace file, open standard window | 310 | // No trace file, open standard window |
311 | - gchar * utftext = g_convert_with_fallback(ptr,-1,"UTF-8",lib3270_get_charset(hSession),"?",NULL,NULL,NULL); | 311 | + gchar * utftext = g_convert_with_fallback(ptr,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL); |
312 | 312 | ||
313 | if(!trace_window) | 313 | if(!trace_window) |
314 | { | 314 | { |
src/pw3270/v3270/accessible.c
@@ -195,7 +195,7 @@ static gunichar v3270_accessible_get_character_at_offset(AtkText *atk_text, gint | @@ -195,7 +195,7 @@ static gunichar v3270_accessible_get_character_at_offset(AtkText *atk_text, gint | ||
195 | gchar * utfstring = g_convert_with_fallback( text, | 195 | gchar * utfstring = g_convert_with_fallback( text, |
196 | -1, | 196 | -1, |
197 | "UTF-8", | 197 | "UTF-8", |
198 | - lib3270_get_charset(host), | 198 | + lib3270_get_display_charset(host), |
199 | " ", | 199 | " ", |
200 | NULL, | 200 | NULL, |
201 | &bytes_written, | 201 | &bytes_written, |
@@ -390,7 +390,7 @@ static gchar * v3270_accessible_get_text_at_offset(AtkText *atk_text, gint offse | @@ -390,7 +390,7 @@ static gchar * v3270_accessible_get_text_at_offset(AtkText *atk_text, gint offse | ||
390 | gchar * utfchar = g_convert_with_fallback( text, | 390 | gchar * utfchar = g_convert_with_fallback( text, |
391 | -1, | 391 | -1, |
392 | "UTF-8", | 392 | "UTF-8", |
393 | - lib3270_get_charset(host), | 393 | + lib3270_get_display_charset(host), |
394 | " ", | 394 | " ", |
395 | NULL, | 395 | NULL, |
396 | &bytes_written, | 396 | &bytes_written, |
@@ -433,7 +433,7 @@ static gchar * v3270_accessible_get_text(AtkText *atk_text, gint start_pos, gint | @@ -433,7 +433,7 @@ static gchar * v3270_accessible_get_text(AtkText *atk_text, gint start_pos, gint | ||
433 | gsize bytes_written; | 433 | gsize bytes_written; |
434 | GError * error = NULL; | 434 | GError * error = NULL; |
435 | 435 | ||
436 | - utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_charset(host)," ",NULL,&bytes_written, &error); | 436 | + utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_display_charset(host)," ",NULL,&bytes_written, &error); |
437 | 437 | ||
438 | if(error) | 438 | if(error) |
439 | { | 439 | { |
src/pw3270/v3270/draw.c
@@ -275,7 +275,7 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 | @@ -275,7 +275,7 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 | ||
275 | } | 275 | } |
276 | else if(chr) | 276 | else if(chr) |
277 | { | 277 | { |
278 | - gchar *utf = g_convert((char *) &chr, 1, "UTF-8", lib3270_get_charset(session), NULL, NULL, NULL); | 278 | + gchar *utf = g_convert((char *) &chr, 1, "UTF-8", lib3270_get_display_charset(session), NULL, NULL, NULL); |
279 | 279 | ||
280 | if(utf) | 280 | if(utf) |
281 | { | 281 | { |
src/pw3270/v3270/keyboard.c
@@ -247,7 +247,7 @@ | @@ -247,7 +247,7 @@ | ||
247 | 247 | ||
248 | host = GTK_V3270(widget)->host; | 248 | host = GTK_V3270(widget)->host; |
249 | 249 | ||
250 | - utf = g_convert((char *) str, -1, lib3270_get_charset(host), "UTF-8", NULL, NULL, NULL); | 250 | + utf = g_convert((char *) str, -1, lib3270_get_display_charset(host), "UTF-8", NULL, NULL, NULL); |
251 | 251 | ||
252 | if(utf) | 252 | if(utf) |
253 | { | 253 | { |
@@ -259,7 +259,7 @@ | @@ -259,7 +259,7 @@ | ||
259 | 259 | ||
260 | void v3270_key_commit(GtkIMContext *imcontext, gchar *str, v3270 *widget) | 260 | void v3270_key_commit(GtkIMContext *imcontext, gchar *str, v3270 *widget) |
261 | { | 261 | { |
262 | - gchar *utf = g_convert((char *) str, -1, lib3270_get_charset(widget->host), "UTF-8", NULL, NULL, NULL); | 262 | + gchar *utf = g_convert((char *) str, -1, lib3270_get_display_charset(widget->host), "UTF-8", NULL, NULL, NULL); |
263 | 263 | ||
264 | if(utf) | 264 | if(utf) |
265 | { | 265 | { |
src/pw3270/v3270/selection.c
@@ -70,7 +70,7 @@ static void clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection, | @@ -70,7 +70,7 @@ static void clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection, | ||
70 | } | 70 | } |
71 | else | 71 | else |
72 | { | 72 | { |
73 | - gchar * text = g_convert(widget->selection.text, -1, "UTF-8", lib3270_get_charset(widget->host), NULL, NULL, NULL); | 73 | + gchar * text = g_convert(widget->selection.text, -1, "UTF-8", lib3270_get_display_charset(widget->host), NULL, NULL, NULL); |
74 | gtk_selection_data_set_text(selection,text,-1); | 74 | gtk_selection_data_set_text(selection,text,-1); |
75 | g_free(text); | 75 | g_free(text); |
76 | } | 76 | } |
@@ -104,7 +104,7 @@ gchar * v3270_get_text(GtkWidget *widget, int offset, int len) | @@ -104,7 +104,7 @@ gchar * v3270_get_text(GtkWidget *widget, int offset, int len) | ||
104 | if(!str) | 104 | if(!str) |
105 | return NULL; | 105 | return NULL; |
106 | 106 | ||
107 | - text = g_convert(str, -1, "UTF-8", lib3270_get_charset(terminal->host), NULL, NULL, NULL); | 107 | + text = g_convert(str, -1, "UTF-8", lib3270_get_display_charset(terminal->host), NULL, NULL, NULL); |
108 | 108 | ||
109 | lib3270_free(str); | 109 | lib3270_free(str); |
110 | return text; | 110 | return text; |
@@ -226,7 +226,7 @@ gchar * v3270_get_selected(GtkWidget *widget, gboolean cut) | @@ -226,7 +226,7 @@ gchar * v3270_get_selected(GtkWidget *widget, gboolean cut) | ||
226 | text = update_selected_text(widget,cut); | 226 | text = update_selected_text(widget,cut); |
227 | 227 | ||
228 | if(text) | 228 | if(text) |
229 | - return g_convert(text, -1, "UTF-8", lib3270_get_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); | 229 | + return g_convert(text, -1, "UTF-8", lib3270_get_display_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); |
230 | 230 | ||
231 | return NULL; | 231 | return NULL; |
232 | } | 232 | } |
@@ -242,7 +242,7 @@ gchar * v3270_get_copy(GtkWidget *widget) | @@ -242,7 +242,7 @@ gchar * v3270_get_copy(GtkWidget *widget) | ||
242 | text = update_selected_text(widget,FALSE); | 242 | text = update_selected_text(widget,FALSE); |
243 | 243 | ||
244 | if(text) | 244 | if(text) |
245 | - return g_convert(text, -1, "UTF-8", lib3270_get_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); | 245 | + return g_convert(text, -1, "UTF-8", lib3270_get_display_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); |
246 | 246 | ||
247 | return NULL; | 247 | return NULL; |
248 | } | 248 | } |
@@ -266,7 +266,7 @@ void v3270_set_copy(GtkWidget *widget, const gchar *text) | @@ -266,7 +266,7 @@ void v3270_set_copy(GtkWidget *widget, const gchar *text) | ||
266 | 266 | ||
267 | /* Received text, replace the selection buffer */ | 267 | /* Received text, replace the selection buffer */ |
268 | terminal->table = 0; | 268 | terminal->table = 0; |
269 | - isotext = g_convert(text, -1, lib3270_get_charset(terminal->host), "UTF-8", NULL, NULL, NULL); | 269 | + isotext = g_convert(text, -1, lib3270_get_display_charset(terminal->host), "UTF-8", NULL, NULL, NULL); |
270 | 270 | ||
271 | if(!isotext) | 271 | if(!isotext) |
272 | { | 272 | { |
@@ -350,7 +350,7 @@ void v3270_paste_string(GtkWidget *widget, const gchar *text, const gchar *encod | @@ -350,7 +350,7 @@ void v3270_paste_string(GtkWidget *widget, const gchar *text, const gchar *encod | ||
350 | { | 350 | { |
351 | gchar * buffer = NULL; | 351 | gchar * buffer = NULL; |
352 | H3270 * session = v3270_get_session(widget); | 352 | H3270 * session = v3270_get_session(widget); |
353 | - const gchar * charset = lib3270_get_charset(session); | 353 | + const gchar * charset = lib3270_get_display_charset(session); |
354 | gboolean next; | 354 | gboolean next; |
355 | 355 | ||
356 | if(!text) | 356 | if(!text) |
@@ -504,7 +504,7 @@ gchar * v3270_get_region(GtkWidget *widget, gint start_pos, gint end_pos, gboole | @@ -504,7 +504,7 @@ gchar * v3270_get_region(GtkWidget *widget, gint start_pos, gint end_pos, gboole | ||
504 | if(!str) | 504 | if(!str) |
505 | return NULL; | 505 | return NULL; |
506 | 506 | ||
507 | - utftext = g_convert(str, -1, "UTF-8", lib3270_get_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); | 507 | + utftext = g_convert(str, -1, "UTF-8", lib3270_get_display_charset(GTK_V3270(widget)->host), NULL, NULL, NULL); |
508 | 508 | ||
509 | lib3270_free(str); | 509 | lib3270_free(str); |
510 | 510 |
src/pw3270/v3270/widget.c
@@ -765,7 +765,7 @@ static void changed(H3270 *session, int offset, int len) | @@ -765,7 +765,7 @@ static void changed(H3270 *session, int offset, int len) | ||
765 | gchar * utfchar = g_convert_with_fallback( text, | 765 | gchar * utfchar = g_convert_with_fallback( text, |
766 | -1, | 766 | -1, |
767 | "UTF-8", | 767 | "UTF-8", |
768 | - lib3270_get_charset(session), | 768 | + lib3270_get_display_charset(session), |
769 | " ", | 769 | " ", |
770 | NULL, | 770 | NULL, |
771 | &bytes_written, | 771 | &bytes_written, |