Commit bf50c2f22ba7f2f84eaf3deccfad43081376df9a
1 parent
579ad177
Exists in
master
and in
5 other branches
Implementando metodos rexx
Showing
13 changed files
with
89 additions
and
34 deletions
Show diff stats
src/include/lib3270.h
@@ -571,9 +571,9 @@ | @@ -571,9 +571,9 @@ | ||
571 | * @param h Session handle. | 571 | * @param h Session handle. |
572 | * @param ix Toggle id. | 572 | * @param ix Toggle id. |
573 | * @param value New toggle state (non zero for true). | 573 | * @param value New toggle state (non zero for true). |
574 | - * | 574 | + * * @returns 0 if the toggle is already at the state, 1 if the toggle was changed; < 0 on invalid toggle id |
575 | */ | 575 | */ |
576 | - LIB3270_EXPORT void lib3270_set_toggle(H3270 *h, LIB3270_TOGGLE ix, int value); | 576 | + LIB3270_EXPORT int lib3270_set_toggle(H3270 *h, LIB3270_TOGGLE ix, int value); |
577 | 577 | ||
578 | /** | 578 | /** |
579 | * Translate a string toggle name to the corresponding value. | 579 | * Translate a string toggle name to the corresponding value. |
src/include/pw3270/ipcpackets.h
@@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
49 | HLLAPI_PACKET_ERASE_EOF, | 49 | HLLAPI_PACKET_ERASE_EOF, |
50 | HLLAPI_PACKET_PRINT, | 50 | HLLAPI_PACKET_PRINT, |
51 | HLLAPI_PACKET_GET_CSTATE, | 51 | HLLAPI_PACKET_GET_CSTATE, |
52 | - HLLAPI_PACKET_IS_READY, | 52 | + HLLAPI_PACKET_IS_READY, HLLAPI_PACKET_SET_TOGGLE, |
53 | 53 | ||
54 | HLLAPI_PACKET_INVALID | 54 | HLLAPI_PACKET_INVALID |
55 | 55 | ||
@@ -149,6 +149,11 @@ struct hllapi_packet_emulate_input | @@ -149,6 +149,11 @@ struct hllapi_packet_emulate_input | ||
149 | unsigned char pasting; | 149 | unsigned char pasting; |
150 | char text[1]; | 150 | char text[1]; |
151 | }; | 151 | }; |
152 | + struct hllapi_packet_set | ||
153 | +{ | ||
154 | + unsigned char packet_id; | ||
155 | + unsigned short id; unsigned short value; | ||
156 | +}; | ||
152 | 157 | ||
153 | 158 | ||
154 | #pragma pack() | 159 | #pragma pack() |
src/lib3270/toggles.c
@@ -105,25 +105,22 @@ static void toggle_notify(H3270 *session, struct lib3270_toggle *t, LIB3270_TOGG | @@ -105,25 +105,22 @@ static void toggle_notify(H3270 *session, struct lib3270_toggle *t, LIB3270_TOGG | ||
105 | session->update_toggle(session,ix,t->value,TT_INTERACTIVE,toggle_names[ix]); | 105 | session->update_toggle(session,ix,t->value,TT_INTERACTIVE,toggle_names[ix]); |
106 | 106 | ||
107 | } | 107 | } |
108 | - | ||
109 | -LIB3270_EXPORT void lib3270_set_toggle(H3270 *session, LIB3270_TOGGLE ix, int value) | 108 | + LIB3270_EXPORT int lib3270_set_toggle(H3270 *session, LIB3270_TOGGLE ix, int value) |
110 | { | 109 | { |
111 | - char v = value ? True : False; | ||
112 | - struct lib3270_toggle * t; | 110 | + char v = value ? True : False; struct lib3270_toggle * t; |
113 | 111 | ||
114 | CHECK_SESSION_HANDLE(session); | 112 | CHECK_SESSION_HANDLE(session); |
115 | 113 | ||
116 | if(ix < 0 || ix >= LIB3270_TOGGLE_COUNT) | 114 | if(ix < 0 || ix >= LIB3270_TOGGLE_COUNT) |
117 | - return; | 115 | + return -EINVAL; |
118 | 116 | ||
119 | t = &session->toggle[ix]; | 117 | t = &session->toggle[ix]; |
120 | 118 | ||
121 | if(v == t->value) | 119 | if(v == t->value) |
122 | - return; | ||
123 | - | ||
124 | - t->value = v; | 120 | + return 0; |
121 | + t->value = v; | ||
125 | 122 | ||
126 | - toggle_notify(session,t,ix); | 123 | + toggle_notify(session,t,ix); return 1; |
127 | } | 124 | } |
128 | 125 | ||
129 | LIB3270_EXPORT int lib3270_toggle(H3270 *session, LIB3270_TOGGLE ix) | 126 | LIB3270_EXPORT int lib3270_toggle(H3270 *session, LIB3270_TOGGLE ix) |
src/plugins/dbus3270/gobject.c
@@ -279,8 +279,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | @@ -279,8 +279,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus | ||
279 | void pw3270_dbus_set_toggle(PW3270Dbus *object, int id, int value, DBusGMethodInvocation *context) | 279 | void pw3270_dbus_set_toggle(PW3270Dbus *object, int id, int value, DBusGMethodInvocation *context) |
280 | { | 280 | { |
281 | trace("%s object=%p context=%p",__FUNCTION__,object,context); | 281 | trace("%s object=%p context=%p",__FUNCTION__,object,context); |
282 | - lib3270_set_toggle(pw3270_dbus_get_session_handle(object),id,value); | ||
283 | - dbus_g_method_return(context,0); | 282 | + dbus_g_method_return(context,lib3270_set_toggle(pw3270_dbus_get_session_handle(object),id,value)); |
284 | } | 283 | } |
285 | 284 | ||
286 | void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *utftext, DBusGMethodInvocation *context) | 285 | void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *utftext, DBusGMethodInvocation *context) |
src/plugins/hllapi/pluginmain.c
@@ -274,7 +274,9 @@ | @@ -274,7 +274,9 @@ | ||
274 | case HLLAPI_PACKET_GET_CSTATE: | 274 | case HLLAPI_PACKET_GET_CSTATE: |
275 | send_result(source,lib3270_get_connection_state(lib3270_get_default_session_handle())); | 275 | send_result(source,lib3270_get_connection_state(lib3270_get_default_session_handle())); |
276 | break; | 276 | break; |
277 | - | 277 | + case HLLAPI_PACKET_SET_TOGGLE: |
278 | + send_result(source,lib3270_set_toggle(lib3270_get_default_session_handle(), | ||
279 | + ((struct hllapi_packet_set *) source->buffer)->id, ((struct hllapi_packet_set *) source->buffer)->value)); break; | ||
278 | default: | 280 | default: |
279 | send_result(source, EINVAL); | 281 | send_result(source, EINVAL); |
280 | g_message("Invalid remote request (id=%d)",source->buffer[0]); | 282 | g_message("Invalid remote request (id=%d)",source->buffer[0]); |
src/plugins/rx3270/local.cc
@@ -68,13 +68,14 @@ | @@ -68,13 +68,14 @@ | ||
68 | int wait(int seconds); | 68 | int wait(int seconds); |
69 | int wait_for_ready(int seconds); | 69 | int wait_for_ready(int seconds); |
70 | 70 | ||
71 | + char * get_text(int baddr, size_t len); | ||
71 | char * get_text_at(int row, int col, size_t sz); | 72 | char * get_text_at(int row, int col, size_t sz); |
72 | int cmp_text_at(int row, int col, const char *text); | 73 | int cmp_text_at(int row, int col, const char *text); |
73 | int set_text_at(int row, int col, const char *str); | 74 | int set_text_at(int row, int col, const char *str); |
74 | 75 | ||
75 | int set_cursor_position(int row, int col); | 76 | int set_cursor_position(int row, int col); |
76 | 77 | ||
77 | - void set_toggle(LIB3270_TOGGLE ix, bool value); | 78 | + int set_toggle(LIB3270_TOGGLE ix, bool value); |
78 | 79 | ||
79 | int enter(void); | 80 | int enter(void); |
80 | int pfkey(int key); | 81 | int pfkey(int key); |
@@ -93,12 +94,13 @@ | @@ -93,12 +94,13 @@ | ||
93 | int (*_pfkey)(H3270 *hSession, int key); | 94 | int (*_pfkey)(H3270 *hSession, int key); |
94 | int (*_pakey)(H3270 *hSession, int key); | 95 | int (*_pakey)(H3270 *hSession, int key); |
95 | int (*_wait_for_ready)(H3270 *hSession, int seconds); | 96 | int (*_wait_for_ready)(H3270 *hSession, int seconds); |
97 | + char * (*_get_text)(H3270 *h, int offset, int len); | ||
96 | char * (*_get_text_at)(H3270 *h, int row, int col, int len); | 98 | char * (*_get_text_at)(H3270 *h, int row, int col, int len); |
97 | int (*_cmp_text_at)(H3270 *h, int row, int col, const char *text); | 99 | int (*_cmp_text_at)(H3270 *h, int row, int col, const char *text); |
98 | int (*_set_text_at)(H3270 *h, int row, int col, const unsigned char *str); | 100 | int (*_set_text_at)(H3270 *h, int row, int col, const unsigned char *str); |
99 | int (*_is_ready)(H3270 *h); | 101 | int (*_is_ready)(H3270 *h); |
100 | int (*_set_cursor_position)(H3270 *h, int row, int col); | 102 | int (*_set_cursor_position)(H3270 *h, int row, int col); |
101 | - void (*_set_toggle)(H3270 *h, LIB3270_TOGGLE ix, int value); | 103 | + int (*_set_toggle)(H3270 *h, LIB3270_TOGGLE ix, int value); |
102 | 104 | ||
103 | #ifdef WIN32 | 105 | #ifdef WIN32 |
104 | HMODULE hModule; | 106 | HMODULE hModule; |
@@ -283,6 +285,7 @@ dynamic::dynamic() | @@ -283,6 +285,7 @@ dynamic::dynamic() | ||
283 | { (void **) & _pfkey, "lib3270_pfkey" }, | 285 | { (void **) & _pfkey, "lib3270_pfkey" }, |
284 | { (void **) & _pakey, "lib3270_pakey" }, | 286 | { (void **) & _pakey, "lib3270_pakey" }, |
285 | { (void **) & _wait_for_ready, "lib3270_wait_for_ready" }, | 287 | { (void **) & _wait_for_ready, "lib3270_wait_for_ready" }, |
288 | + { (void **) & _get_text, "lib3270_get_text" }, | ||
286 | { (void **) & _get_text_at, "lib3270_get_text_at" }, | 289 | { (void **) & _get_text_at, "lib3270_get_text_at" }, |
287 | { (void **) & _cmp_text_at, "lib3270_cmp_text_at" }, | 290 | { (void **) & _cmp_text_at, "lib3270_cmp_text_at" }, |
288 | { (void **) & _set_text_at, "lib3270_set_string_at" }, | 291 | { (void **) & _set_text_at, "lib3270_set_string_at" }, |
@@ -505,6 +508,13 @@ int dynamic::wait_for_ready(int seconds) | @@ -505,6 +508,13 @@ int dynamic::wait_for_ready(int seconds) | ||
505 | return _wait_for_ready(hSession,seconds); | 508 | return _wait_for_ready(hSession,seconds); |
506 | } | 509 | } |
507 | 510 | ||
511 | +char * dynamic::get_text(int offset, size_t len) | ||
512 | +{ | ||
513 | + if(!hModule) | ||
514 | + return NULL; | ||
515 | + return _get_text(hSession,offset,len); | ||
516 | +} | ||
517 | + | ||
508 | char * dynamic::get_text_at(int row, int col, size_t sz) | 518 | char * dynamic::get_text_at(int row, int col, size_t sz) |
509 | { | 519 | { |
510 | if(!hModule) | 520 | if(!hModule) |
@@ -554,8 +564,9 @@ int dynamic::pakey(int key) | @@ -554,8 +564,9 @@ int dynamic::pakey(int key) | ||
554 | return _pakey(hSession,key); | 564 | return _pakey(hSession,key); |
555 | } | 565 | } |
556 | 566 | ||
557 | -void dynamic::set_toggle(LIB3270_TOGGLE ix, bool value) | 567 | +int dynamic::set_toggle(LIB3270_TOGGLE ix, bool value) |
558 | { | 568 | { |
559 | if(hModule) | 569 | if(hModule) |
560 | - _set_toggle(hSession,ix,(int) value); | 570 | + return _set_toggle(hSession,ix,(int) value); |
571 | + return -1; | ||
561 | } | 572 | } |
src/plugins/rx3270/pluginmain.cc
@@ -53,13 +53,14 @@ | @@ -53,13 +53,14 @@ | ||
53 | int wait(int seconds); | 53 | int wait(int seconds); |
54 | int wait_for_ready(int seconds); | 54 | int wait_for_ready(int seconds); |
55 | 55 | ||
56 | + char * get_text(int baddr, size_t len); | ||
56 | char * get_text_at(int row, int col, size_t sz); | 57 | char * get_text_at(int row, int col, size_t sz); |
57 | int cmp_text_at(int row, int col, const char *text); | 58 | int cmp_text_at(int row, int col, const char *text); |
58 | int set_text_at(int row, int col, const char *str); | 59 | int set_text_at(int row, int col, const char *str); |
59 | 60 | ||
60 | int set_cursor_position(int row, int col); | 61 | int set_cursor_position(int row, int col); |
61 | 62 | ||
62 | - void set_toggle(LIB3270_TOGGLE ix, bool value); | 63 | + int set_toggle(LIB3270_TOGGLE ix, bool value); |
63 | 64 | ||
64 | int enter(void); | 65 | int enter(void); |
65 | int pfkey(int key); | 66 | int pfkey(int key); |
@@ -183,12 +184,17 @@ | @@ -183,12 +184,17 @@ | ||
183 | return lib3270_set_cursor_position(hSession,row,col); | 184 | return lib3270_set_cursor_position(hSession,row,col); |
184 | } | 185 | } |
185 | 186 | ||
186 | - void plugin::set_toggle(LIB3270_TOGGLE ix, bool value) | 187 | + int plugin::set_toggle(LIB3270_TOGGLE ix, bool value) |
187 | { | 188 | { |
188 | - lib3270_set_toggle(hSession,ix,(int) value); | 189 | + return lib3270_set_toggle(hSession,ix,(int) value); |
189 | } | 190 | } |
190 | 191 | ||
191 | void plugin::logva(const char *fmt, va_list args) | 192 | void plugin::logva(const char *fmt, va_list args) |
192 | { | 193 | { |
193 | lib3270_write_va_log(hSession,"REXX",fmt,args); | 194 | lib3270_write_va_log(hSession,"REXX",fmt,args); |
194 | } | 195 | } |
196 | + | ||
197 | + char * plugin::get_text(int baddr, size_t len) | ||
198 | + { | ||
199 | + return lib3270_get_text(hSession,baddr,len); | ||
200 | + } |
src/plugins/rx3270/remote.cc
@@ -61,6 +61,7 @@ | @@ -61,6 +61,7 @@ | ||
61 | int wait(int seconds); | 61 | int wait(int seconds); |
62 | int wait_for_ready(int seconds); | 62 | int wait_for_ready(int seconds); |
63 | 63 | ||
64 | + char * get_text(int baddr, size_t len); | ||
64 | char * get_text_at(int row, int col, size_t sz); | 65 | char * get_text_at(int row, int col, size_t sz); |
65 | int cmp_text_at(int row, int col, const char *text); | 66 | int cmp_text_at(int row, int col, const char *text); |
66 | int set_text_at(int row, int col, const char *str); | 67 | int set_text_at(int row, int col, const char *str); |
@@ -69,7 +70,7 @@ | @@ -69,7 +70,7 @@ | ||
69 | 70 | ||
70 | int set_cursor_position(int row, int col); | 71 | int set_cursor_position(int row, int col); |
71 | 72 | ||
72 | - void set_toggle(LIB3270_TOGGLE ix, bool value); | 73 | + int set_toggle(LIB3270_TOGGLE ix, bool value); |
73 | 74 | ||
74 | int enter(void); | 75 | int enter(void); |
75 | int pfkey(int key); | 76 | int pfkey(int key); |
@@ -910,13 +911,17 @@ int remote::pakey(int key) | @@ -910,13 +911,17 @@ int remote::pakey(int key) | ||
910 | return -1; | 911 | return -1; |
911 | } | 912 | } |
912 | 913 | ||
913 | -void remote::set_toggle(LIB3270_TOGGLE ix, bool value) | 914 | +int remote::set_toggle(LIB3270_TOGGLE ix, bool value) |
914 | { | 915 | { |
915 | #if defined(WIN32) | 916 | #if defined(WIN32) |
916 | 917 | ||
917 | if(hPipe != INVALID_HANDLE_VALUE) | 918 | if(hPipe != INVALID_HANDLE_VALUE) |
918 | { | 919 | { |
919 | - #warning Implementar | 920 | + struct hllapi_packet_set query = { HLLAPI_PACKET_SET_TOGGLE, (unsigned short) ix, (unsigned short) value }; |
921 | + struct hllapi_packet_result response; | ||
922 | + DWORD cbSize = sizeof(query); | ||
923 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
924 | + return response.rc; | ||
920 | } | 925 | } |
921 | 926 | ||
922 | #elif defined(HAVE_DBUS) | 927 | #elif defined(HAVE_DBUS) |
@@ -928,12 +933,12 @@ void remote::set_toggle(LIB3270_TOGGLE ix, bool value) | @@ -928,12 +933,12 @@ void remote::set_toggle(LIB3270_TOGGLE ix, bool value) | ||
928 | if(msg) | 933 | if(msg) |
929 | { | 934 | { |
930 | dbus_message_append_args(msg, DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); | 935 | dbus_message_append_args(msg, DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); |
931 | - get_intval(call(msg)); | 936 | + return get_intval(call(msg)); |
932 | } | 937 | } |
933 | 938 | ||
934 | - | ||
935 | #endif | 939 | #endif |
936 | 940 | ||
941 | + return -1; | ||
937 | } | 942 | } |
938 | 943 | ||
939 | int remote::wait_for_text_at(int row, int col, const char *key, int timeout) | 944 | int remote::wait_for_text_at(int row, int col, const char *key, int timeout) |
@@ -957,3 +962,9 @@ int remote::wait_for_text_at(int row, int col, const char *key, int timeout) | @@ -957,3 +962,9 @@ int remote::wait_for_text_at(int row, int col, const char *key, int timeout) | ||
957 | 962 | ||
958 | return ETIMEDOUT; | 963 | return ETIMEDOUT; |
959 | } | 964 | } |
965 | + | ||
966 | +char * remote::get_text(int baddr, size_t len) | ||
967 | +{ | ||
968 | + #warning IMPLEMENTAR | ||
969 | + return NULL; | ||
970 | +} |
src/plugins/rx3270/rexx_methods.cc
@@ -338,3 +338,22 @@ RexxMethod5(int, rx3270_method_wait_for_text_at, CSELF, sessionPtr, int, row, in | @@ -338,3 +338,22 @@ RexxMethod5(int, rx3270_method_wait_for_text_at, CSELF, sessionPtr, int, row, in | ||
338 | return -1; | 338 | return -1; |
339 | } | 339 | } |
340 | 340 | ||
341 | +RexxMethod3(RexxStringObject, rx3270_method_get_text, CSELF, sessionPtr, OPTIONAL_int, baddr, OPTIONAL_int, sz) | ||
342 | +{ | ||
343 | + rx3270 * hSession = (rx3270 *) sessionPtr; | ||
344 | + | ||
345 | + if(hSession) | ||
346 | + { | ||
347 | + char *str = hSession->get_text(baddr,sz > 0 ? sz : -1); | ||
348 | + if(str) | ||
349 | + { | ||
350 | + char * text = hSession->get_local_string(str); | ||
351 | + RexxStringObject ret = context->String((CSTRING) text); | ||
352 | + free(str); | ||
353 | + free(text); | ||
354 | + return ret; | ||
355 | + } | ||
356 | + } | ||
357 | + | ||
358 | + return context->String(""); | ||
359 | +} |
src/plugins/rx3270/rx3270.cls
@@ -64,25 +64,28 @@ | @@ -64,25 +64,28 @@ | ||
64 | ::METHOD GETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_get_text_at" | 64 | ::METHOD GETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_get_text_at" |
65 | ::METHOD SETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_set_text_at" | 65 | ::METHOD SETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_set_text_at" |
66 | ::METHOD CMPTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_cmp_text_at" | 66 | ::METHOD CMPTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_cmp_text_at" |
67 | +::METHOD GET EXTERNAL "LIBRARY rx3270 rx3270_method_get_text" | ||
67 | ::METHOD WAITFORTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_wait_for_text_at" | 68 | ::METHOD WAITFORTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_wait_for_text_at" |
68 | ::METHOD TEST EXTERNAL "LIBRARY rx3270 rx3270_method_test" | 69 | ::METHOD TEST EXTERNAL "LIBRARY rx3270 rx3270_method_test" |
69 | 70 | ||
70 | /* | 71 | /* |
71 | getConnectionState | 72 | getConnectionState |
72 | waitForEvents | 73 | waitForEvents |
73 | -getScreenContent | ||
74 | RunMode | 74 | RunMode |
75 | 75 | ||
76 | ::method isConnected | 76 | ::method isConnected |
77 | return self~getConnectionState() = "CONNECTED_TN3270E" | 77 | return self~getConnectionState() = "CONNECTED_TN3270E" |
78 | 78 | ||
79 | +*/ | ||
80 | + | ||
79 | ::method waitForStringAt | 81 | ::method waitForStringAt |
80 | use arg row, col, key, timeout | 82 | use arg row, col, key, timeout |
81 | if datatype(timeout) <> "NUM" | 83 | if datatype(timeout) <> "NUM" |
82 | then timeout = 60 | 84 | then timeout = 60 |
83 | return self~WaitForTextAt(row,col,key,timeout) | 85 | return self~WaitForTextAt(row,col,key,timeout) |
84 | 86 | ||
85 | -*/ | 87 | +::method getScreenContent |
88 | +return self~get() | ||
86 | 89 | ||
87 | ::method queryStringAt | 90 | ::method queryStringAt |
88 | use arg row, col, key | 91 | use arg row, col, key |
@@ -104,7 +107,7 @@ return self~SetTextAt(row,col,str) | @@ -104,7 +107,7 @@ return self~SetTextAt(row,col,str) | ||
104 | return self~GetTextAt(row,col,size) | 107 | return self~GetTextAt(row,col,size) |
105 | 108 | ||
106 | ::method sendEnterKey | 109 | ::method sendEnterKey |
107 | -return self~Enter() | 110 | +return self~enter() |
108 | 111 | ||
109 | ::method sendPFKey | 112 | ::method sendPFKey |
110 | use arg key | 113 | use arg key |
src/plugins/rx3270/rx3270.h
@@ -95,7 +95,7 @@ | @@ -95,7 +95,7 @@ | ||
95 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor); | 95 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor); |
96 | REXX_METHOD_PROTOTYPE(rx3270_method_enter); | 96 | REXX_METHOD_PROTOTYPE(rx3270_method_enter); |
97 | REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); | 97 | REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); |
98 | - REXX_METHOD_PROTOTYPE(rx3270_method_pakey); | 98 | + REXX_METHOD_PROTOTYPE(rx3270_method_pakey); REXX_METHOD_PROTOTYPE(rx3270_method_get_text); |
99 | REXX_METHOD_PROTOTYPE(rx3270_method_get_text_at); | 99 | REXX_METHOD_PROTOTYPE(rx3270_method_get_text_at); |
100 | REXX_METHOD_PROTOTYPE(rx3270_method_set_text_at); | 100 | REXX_METHOD_PROTOTYPE(rx3270_method_set_text_at); |
101 | REXX_METHOD_PROTOTYPE(rx3270_method_cmp_text_at); | 101 | REXX_METHOD_PROTOTYPE(rx3270_method_cmp_text_at); |
@@ -157,13 +157,13 @@ | @@ -157,13 +157,13 @@ | ||
157 | virtual int wait_for_ready(int seconds) = 0; | 157 | virtual int wait_for_ready(int seconds) = 0; |
158 | virtual int wait_for_text_at(int row, int col, const char *key, int timeout); | 158 | virtual int wait_for_text_at(int row, int col, const char *key, int timeout); |
159 | virtual int set_cursor_position(int row, int col) = 0; | 159 | virtual int set_cursor_position(int row, int col) = 0; |
160 | - virtual void set_toggle(LIB3270_TOGGLE ix, bool value) = 0; | 160 | + virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; |
161 | 161 | ||
162 | virtual int enter(void) = 0; | 162 | virtual int enter(void) = 0; |
163 | virtual int pfkey(int key) = 0; | 163 | virtual int pfkey(int key) = 0; |
164 | virtual int pakey(int key) = 0; | 164 | virtual int pakey(int key) = 0; |
165 | 165 | ||
166 | - virtual char * get_text_at(int row, int col, size_t sz) = 0; | 166 | + virtual char * get_text_at(int row, int col, size_t sz) = 0; virtual char * get_text(int baddr, size_t len) = 0; |
167 | virtual int cmp_text_at(int row, int col, const char *text) = 0; | 167 | virtual int cmp_text_at(int row, int col, const char *text) = 0; |
168 | virtual int set_text_at(int row, int col, const char *str) = 0; | 168 | virtual int set_text_at(int row, int col, const char *str) = 0; |
169 | 169 |
src/plugins/rx3270/rxapimain.cc
@@ -36,6 +36,7 @@ | @@ -36,6 +36,7 @@ | ||
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include "rx3270.h" | 38 | #include "rx3270.h" |
39 | + #include <time.h> | ||
39 | #include <lib3270/actions.h> | 40 | #include <lib3270/actions.h> |
40 | 41 | ||
41 | #ifdef HAVE_SYSLOG | 42 | #ifdef HAVE_SYSLOG |
@@ -131,6 +132,7 @@ RexxMethodEntry rx3270_methods[] = | @@ -131,6 +132,7 @@ RexxMethodEntry rx3270_methods[] = | ||
131 | REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), | 132 | REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), |
132 | REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), | 133 | REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), |
133 | REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), | 134 | REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), |
135 | + REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), | ||
134 | REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), | 136 | REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), |
135 | REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), | 137 | REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), |
136 | REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), | 138 | REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), |
src/plugins/rx3270/text.cc
@@ -43,7 +43,7 @@ char * rx3270::get_3270_string(const char *str) | @@ -43,7 +43,7 @@ char * rx3270::get_3270_string(const char *str) | ||
43 | size_t out = (in << 1); | 43 | size_t out = (in << 1); |
44 | char *ptr; | 44 | char *ptr; |
45 | char *buffer = (char *) malloc(out); | 45 | char *buffer = (char *) malloc(out); |
46 | - char *ret; | 46 | + char *ret; |
47 | 47 | ||
48 | memset(ptr=buffer,0,out); | 48 | memset(ptr=buffer,0,out); |
49 | 49 |