diff --git a/src/plugins/rx3270/rexx_methods.cc b/src/plugins/rx3270/rexx_methods.cc index 297f53f..0041e44 100644 --- a/src/plugins/rx3270/rexx_methods.cc +++ b/src/plugins/rx3270/rexx_methods.cc @@ -619,3 +619,21 @@ RexxMethod1(RexxStringObject, rx3270_method_get_display_charset, CSELF, sessionP return context->String(ret.c_str()); } +RexxMethod2(int, rx3270_method_set_unlock_delay, CSELF, sessionPtr, int, delay) +{ + session *hSession = (session *) sessionPtr; + + if(!hSession) + return -1; + + try + { + hSession->set_unlock_delay((unsigned short) delay); + } + catch(std::exception &e) + { + context->RaiseException1(Rexx_Error_Application_error,context->NewStringFromAsciiz(e.what())); + } + + return 0; +} diff --git a/src/plugins/rx3270/rx3270.cls b/src/plugins/rx3270/rx3270.cls index c388a42..040c744 100644 --- a/src/plugins/rx3270/rx3270.cls +++ b/src/plugins/rx3270/rx3270.cls @@ -97,6 +97,7 @@ ::METHOD GETDISPLAYCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_get_display_charset" ::METHOD GETHOSTCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_get_host_charset" ::METHOD SETHOSTCHARSET EXTERNAL "LIBRARY rx3270 rx3270_method_set_host_charset" +::METHOD SETUNLOCKDELAY EXTERNAL "LIBRARY rx3270 rx3270_method_set_unlock_delay" ::method waitForStringAt use arg row, col, key, timeout diff --git a/src/plugins/rx3270/rx3270.h b/src/plugins/rx3270/rx3270.h index 7968ae0..c61d73c 100644 --- a/src/plugins/rx3270/rx3270.h +++ b/src/plugins/rx3270/rx3270.h @@ -93,6 +93,7 @@ REXX_TYPED_ROUTINE_PROTOTYPE(rx3270IsProtected); REXX_TYPED_ROUTINE_PROTOTYPE(rx3270IsProtectedAt); + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270SetUnlockDelay); REXX_METHOD_PROTOTYPE(rx3270_method_version); REXX_METHOD_PROTOTYPE(rx3270_method_revision); @@ -141,6 +142,7 @@ REXX_METHOD_PROTOTYPE(rx3270_method_get_display_charset); REXX_METHOD_PROTOTYPE(rx3270_method_get_host_charset); REXX_METHOD_PROTOTYPE(rx3270_method_set_host_charset); + REXX_METHOD_PROTOTYPE(rx3270_method_set_unlock_delay); /*---[ Globals ]---------------------------------------------------------------------------------------------*/ diff --git a/src/plugins/rx3270/rxapimain.cc b/src/plugins/rx3270/rxapimain.cc index d1dfb9c..1951aab 100644 --- a/src/plugins/rx3270/rxapimain.cc +++ b/src/plugins/rx3270/rxapimain.cc @@ -75,8 +75,9 @@ RexxRoutineEntry rx3270_functions[] = REXX_TYPED_ROUTINE(rx3270EraseEOL, rx3270EraseEOL), REXX_TYPED_ROUTINE(rx3270EraseInput, rx3270EraseInput), - REXX_TYPED_ROUTINE(rx3270Erase, rx3270IsProtected), - REXX_TYPED_ROUTINE(rx3270Erase, rx3270IsProtectedAt), + REXX_TYPED_ROUTINE(rx3270IsProtected, rx3270IsProtected), + REXX_TYPED_ROUTINE(rx3270IsProtectedAt, rx3270IsProtectedAt), + REXX_TYPED_ROUTINE(rx3270SetUnlockDelay, rx3270SetUnlockDelay), REXX_TYPED_ROUTINE(ebc2asc, ebc2asc), REXX_TYPED_ROUTINE(asc2ebc, asc2ebc), @@ -88,65 +89,67 @@ RexxRoutineEntry rx3270_functions[] = RexxMethodEntry rx3270_methods[] = { - REXX_METHOD(rx3270_method_version, rx3270_method_version ), - REXX_METHOD(rx3270_method_revision, rx3270_method_revision ), - REXX_METHOD(rx3270_method_init, rx3270_method_init ), - REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ), - REXX_METHOD(rx3270_method_connect, rx3270_method_connect ), - REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ), - REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ), - REXX_METHOD(rx3270_method_is_connected, rx3270_method_is_connected ), - REXX_METHOD(rx3270_method_is_ready, rx3270_method_is_ready ), - REXX_METHOD(rx3270_method_wait_for_ready, rx3270_method_wait_for_ready ), - REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor ), - REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ), - REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ), - REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), - REXX_METHOD(rx3270_method_enter, rx3270_method_erase ), - REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eof ), - REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eol ), - REXX_METHOD(rx3270_method_enter, rx3270_method_erase_input ), - REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), - REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), - REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), - REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), - REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), - REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), - REXX_METHOD(rx3270_method_event_trace, rx3270_method_event_trace ), - REXX_METHOD(rx3270_method_screen_trace, rx3270_method_screen_trace ), - REXX_METHOD(rx3270_method_ds_trace, rx3270_method_ds_trace ), - REXX_METHOD(rx3270_method_set_option, rx3270_method_set_option ), - REXX_METHOD(rx3270_method_test, rx3270_method_test ), - REXX_METHOD(rx3270_method_wait_for_text_at, rx3270_method_wait_for_text_at ), - - REXX_METHOD(rx3270_method_get_field_len, rx3270_method_get_field_len ), - REXX_METHOD(rx3270_method_get_field_start, rx3270_method_get_field_start ), - REXX_METHOD(rx3270_method_get_next_unprotected, rx3270_method_get_next_unprotected ), - - REXX_METHOD(rx3270_method_get_is_protected, rx3270_method_get_is_protected ), - REXX_METHOD(rx3270_method_get_is_protected_at, rx3270_method_get_is_protected_at ), - - REXX_METHOD(rx3270_method_get_selection, rx3270_method_get_selection ), - REXX_METHOD(rx3270_method_set_selection, rx3270_method_set_selection ), - REXX_METHOD(rx3270_method_get_clipboard, rx3270_method_get_clipboard ), - REXX_METHOD(rx3270_method_set_clipboard, rx3270_method_set_clipboard ), - - REXX_METHOD(rx3270_method_erase, rx3270_method_erase ), - REXX_METHOD(rx3270_method_erase_eof, rx3270_method_erase_eof ), - REXX_METHOD(rx3270_method_erase_eol, rx3270_method_erase_eol ), - REXX_METHOD(rx3270_method_erase_input, rx3270_method_erase_input ), - - REXX_METHOD(rx3270_method_popup, rx3270_method_popup ), - REXX_METHOD(rx3270_method_get_filename, rx3270_method_get_filename ), - - REXX_METHOD(rx3270_method_get_cursor_addr, rx3270_method_get_cursor_addr ), - REXX_METHOD(rx3270_method_set_cursor_addr, rx3270_method_set_cursor_addr ), - REXX_METHOD(rx3270_method_input_text, rx3270_method_input_text ), + REXX_METHOD(rx3270_method_version, rx3270_method_version ), + REXX_METHOD(rx3270_method_revision, rx3270_method_revision ), + REXX_METHOD(rx3270_method_init, rx3270_method_init ), + REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ), + REXX_METHOD(rx3270_method_connect, rx3270_method_connect ), + REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ), + REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ), + REXX_METHOD(rx3270_method_is_connected, rx3270_method_is_connected ), + REXX_METHOD(rx3270_method_is_ready, rx3270_method_is_ready ), + REXX_METHOD(rx3270_method_wait_for_ready, rx3270_method_wait_for_ready ), + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor ), + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ), + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ), + REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), + REXX_METHOD(rx3270_method_enter, rx3270_method_erase ), + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eof ), + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eol ), + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_input ), + REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), + REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), + REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), + REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), + REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), + REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), + REXX_METHOD(rx3270_method_event_trace, rx3270_method_event_trace ), + REXX_METHOD(rx3270_method_screen_trace, rx3270_method_screen_trace ), + REXX_METHOD(rx3270_method_ds_trace, rx3270_method_ds_trace ), + REXX_METHOD(rx3270_method_set_option, rx3270_method_set_option ), + REXX_METHOD(rx3270_method_test, rx3270_method_test ), + REXX_METHOD(rx3270_method_wait_for_text_at, rx3270_method_wait_for_text_at ), + + REXX_METHOD(rx3270_method_get_field_len, rx3270_method_get_field_len ), + REXX_METHOD(rx3270_method_get_field_start, rx3270_method_get_field_start ), + REXX_METHOD(rx3270_method_get_next_unprotected, rx3270_method_get_next_unprotected ), + + REXX_METHOD(rx3270_method_get_is_protected, rx3270_method_get_is_protected ), + REXX_METHOD(rx3270_method_get_is_protected_at, rx3270_method_get_is_protected_at ), + + REXX_METHOD(rx3270_method_get_selection, rx3270_method_get_selection ), + REXX_METHOD(rx3270_method_set_selection, rx3270_method_set_selection ), + REXX_METHOD(rx3270_method_get_clipboard, rx3270_method_get_clipboard ), + REXX_METHOD(rx3270_method_set_clipboard, rx3270_method_set_clipboard ), + + REXX_METHOD(rx3270_method_erase, rx3270_method_erase ), + REXX_METHOD(rx3270_method_erase_eof, rx3270_method_erase_eof ), + REXX_METHOD(rx3270_method_erase_eol, rx3270_method_erase_eol ), + REXX_METHOD(rx3270_method_erase_input, rx3270_method_erase_input ), + + REXX_METHOD(rx3270_method_popup, rx3270_method_popup ), + REXX_METHOD(rx3270_method_get_filename, rx3270_method_get_filename ), + + REXX_METHOD(rx3270_method_get_cursor_addr, rx3270_method_get_cursor_addr ), + REXX_METHOD(rx3270_method_set_cursor_addr, rx3270_method_set_cursor_addr ), + REXX_METHOD(rx3270_method_input_text, rx3270_method_input_text ), REXX_METHOD(rx3270_method_get_display_charset, rx3270_method_get_display_charset ), REXX_METHOD(rx3270_method_get_host_charset, rx3270_method_get_host_charset ), REXX_METHOD(rx3270_method_set_host_charset, rx3270_method_set_host_charset ), + REXX_METHOD(rx3270_method_set_unlock_delay, rx3270_method_set_unlock_delay ), + REXX_LAST_METHOD() }; diff --git a/src/plugins/rx3270/typed_routines.cc b/src/plugins/rx3270/typed_routines.cc index 6b2dc04..1089fa8 100644 --- a/src/plugins/rx3270/typed_routines.cc +++ b/src/plugins/rx3270/typed_routines.cc @@ -306,3 +306,18 @@ RexxRoutine2(int, rx3270IsProtectedAt, int, row, int, col) return -1; } + +RexxRoutine1(int, rx3270SetUnlockDelay, int, delay) +{ + try + { + session::get_default()->set_unlock_delay((unsigned short) delay); + } + catch(std::exception &e) + { + context->RaiseException1(Rexx_Error_Application_error,context->NewStringFromAsciiz(e.what())); + } + + return 0; +} + -- libgit2 0.21.2