diff --git a/src/core/ctlr.c b/src/core/ctlr.c index 0f5d0b8..a2cb278 100644 --- a/src/core/ctlr.c +++ b/src/core/ctlr.c @@ -2313,12 +2313,10 @@ int ctlr_dbcs_postprocess(H3270 *hSession) */ void ps_process(H3270 *hSession) { - while(run_ta(hSession)) - ; + while(run_ta(hSession)); -// sms_continue(); + screen_update(hSession,0,hSession->view.rows * hSession->view.cols); -#if defined(X3270_FT) /* Process file transfers. */ if (lib3270_get_ft_state(hSession) != LIB3270_FT_STATE_NONE && /* transfer in progress */ hSession->formatted && /* screen is formatted */ @@ -2329,7 +2327,7 @@ void ps_process(H3270 *hSession) { ft_cut_data(hSession); } -#endif + } /* diff --git a/src/core/keyboard/kybd.c b/src/core/keyboard/kybd.c index 7603711..71fb72a 100644 --- a/src/core/keyboard/kybd.c +++ b/src/core/keyboard/kybd.c @@ -935,17 +935,23 @@ LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *st int rc = 0; if(check_online_session(hSession)) + { + trace("%s: %s",__FUNCTION__,strerror(errno)); return errno; + } if(length < 0) length = strlen((char *) str); - if(hSession->kybdlock) - return (errno = EPERM); - int pos; for(pos = 0; pos < length && str[pos] && !rc; pos++) + { + if (KYBDLOCK_IS_OERR(hSession)) + return (errno = EPERM); + rc = key_ACharacter(hSession,(str[pos] & 0xff), KT_STD, IA_KEY, NULL); + trace("%s: key_ACharacter(%c)=%d",__FUNCTION__,str[pos] & 0xff,rc); + } screen_update(hSession,0,hSession->view.rows * hSession->view.cols); diff --git a/src/selection/selection.c b/src/selection/selection.c index 1771f09..875767f 100644 --- a/src/selection/selection.c +++ b/src/selection/selection.c @@ -307,7 +307,7 @@ LIB3270_EXPORT char * lib3270_get_string_at_address(H3270 *h, int offset, int le memset(buffer,0,len+1); - trace("len=%d buffer=%p",len,buffer); + // trace("len=%d buffer=%p",len,buffer); while(len > 0) { -- libgit2 0.21.2