From 2a3185b845c956658a3db159ec3258c8fdcc50b8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 10 Aug 2017 10:19:42 -0300 Subject: [PATCH] função hllapi_get_text não deve considerar as quebras de linha. --- locale/pt_BR.po | 38 +++++++++++++++++++++++++------------- locale/pw3270.pot | 37 +++++++++++++++++++++++++++++++++++-- src/include/pw3270cpp.h | 12 ++++++------ src/libpw3270cpp/local.cc | 4 ++-- src/libpw3270cpp/remote.cc | 6 +++--- src/libpw3270cpp/service.cc | 12 +++++++----- src/libpw3270cpp/session.cc | 4 ++-- src/plugins/hllapi/calls.cc | 7 ++++--- src/plugins/hllapi/hllapi.cbp | 1 + 9 files changed, 85 insertions(+), 36 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 2d2cbf3..e8e65e1 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-07 09:47-0300\n" +"POT-Creation-Date: 2017-08-10 10:12-0300\n" "PO-Revision-Date: 2017-02-15 17:08-0200\n" "Last-Translator: Perry Werneck \n" "Language-Team: Português \n" @@ -419,6 +419,11 @@ msgstr "Não foi possível conectar a %s" msgid "Can't connect to %s:%s" msgstr "Não foi possível conectar a %s:%s" +#: main.c:70 +#, fuzzy +msgid "Can't connect to DBUS server" +msgstr "Não foi possível conectar a %s" + #: selection.c:425 #, c-format msgid "Can't convert line %d from %s to %s" @@ -433,6 +438,10 @@ msgstr "Recortar não permitido em seleção retangular" msgid "Can't determine value for environment variable \"%s\" " msgstr "Não consigo determinar o valor da variável de ambiente \"%s\" " +#: main.c:115 +msgid "Can't get DBUS object name" +msgstr "" + #: ft.c:413 msgid "Can't get file size" msgstr "Não foi possível obter o tamanho do arquivo" @@ -654,6 +663,11 @@ msgstr "Configurar host" msgid "Connect on startup" msgstr "Conectar ao iniciar" +#: gobject.c:205 +#, fuzzy +msgid "Connecting to host" +msgstr "Não foi possível conectar ao servidor" + #: connect.c:215 connect.c:311 connect.c:320 connect.c:382 connect.c:397 #: connect.c:413 connect.c:427 connect.c:447 connect.c:461 connect.c:477 #: connect.c:573 @@ -1913,6 +1927,11 @@ msgstr "Iniciar transferência de arquivo" msgid "Starting" msgstr "Iniciando" +#: gobject.c:193 +#, c-format +msgid "State %04d can't accept requests" +msgstr "" + #: security.c:237 msgid "Subject issuer mismatch" msgstr "Divergência na identidade do emissor" @@ -2398,6 +2417,11 @@ msgstr "Valor de cor inválido ou inesperado: \"%s\"" msgid "Unexpected or unknown security status" msgstr "Estado de segurança inesperado ou desconhecido." +#: gobject.c:208 +#, fuzzy, c-format +msgid "Unexpected state %04d" +msgstr "Alvo inesperado \"%s\"" + #: actions.c:391 #, c-format msgid "Unexpected target \"%s\"" @@ -2802,10 +2826,6 @@ msgstr "translator-credits" #~ "32768. Valores maiores trazem maior performance, porem, nem todos os " #~ "hosts podem suportá-los." -#, fuzzy -#~ msgid "Can't connect to DBUS server" -#~ msgstr "Não foi possível conectar a %s" - #~ msgid "Can't start download." #~ msgstr "Não foi possível iniciar o download." @@ -2842,10 +2862,6 @@ msgstr "translator-credits" #~ msgid "Complete" #~ msgstr "Completo" -#, fuzzy -#~ msgid "Connecting to host" -#~ msgstr "Não foi possível conectar ao servidor" - #~ msgid "Copiar tudo" #~ msgstr "Copiar tudo" @@ -3208,10 +3224,6 @@ msgstr "translator-credits" #~ msgid "Unexpected element <%s>" #~ msgstr "Elemento <%s> inesperado" -#, fuzzy -#~ msgid "Unexpected state %04d" -#~ msgstr "Alvo inesperado \"%s\"" - #~ msgid "" #~ "Unknown host:\n" #~ "%s" diff --git a/locale/pw3270.pot b/locale/pw3270.pot index 8bedcbd..9476c8e 100644 --- a/locale/pw3270.pot +++ b/locale/pw3270.pot @@ -9,7 +9,7 @@ msgstr "" "#-#-#-#-# lib3270.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-09 10:33-0300\n" +"POT-Creation-Date: 2017-08-10 10:12-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" "#-#-#-#-# pw3270.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-09 10:33-0300\n" +"POT-Creation-Date: 2017-08-10 10:12-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,6 +39,17 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# dbus3270.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-10 10:12-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" #: window.c:329 #, c-format @@ -424,6 +435,10 @@ msgstr "" msgid "Can't connect to %s:%s" msgstr "" +#: main.c:70 +msgid "Can't connect to DBUS server" +msgstr "" + #: selection.c:425 #, c-format msgid "Can't convert line %d from %s to %s" @@ -438,6 +453,10 @@ msgstr "" msgid "Can't determine value for environment variable \"%s\" " msgstr "" +#: main.c:115 +msgid "Can't get DBUS object name" +msgstr "" + #: ft.c:413 msgid "Can't get file size" msgstr "" @@ -647,6 +666,10 @@ msgstr "" msgid "Connect on startup" msgstr "" +#: gobject.c:205 +msgid "Connecting to host" +msgstr "" + #: connect.c:215 connect.c:311 connect.c:320 connect.c:382 connect.c:397 #: connect.c:413 connect.c:427 connect.c:447 connect.c:461 connect.c:477 #: connect.c:573 @@ -1861,6 +1884,11 @@ msgstr "" msgid "Starting" msgstr "" +#: gobject.c:193 +#, c-format +msgid "State %04d can't accept requests" +msgstr "" + #: security.c:237 msgid "Subject issuer mismatch" msgstr "" @@ -2292,6 +2320,11 @@ msgstr "" msgid "Unexpected or unknown security status" msgstr "" +#: gobject.c:208 +#, c-format +msgid "Unexpected state %04d" +msgstr "" + #: actions.c:391 #, c-format msgid "Unexpected target \"%s\"" diff --git a/src/include/pw3270cpp.h b/src/include/pw3270cpp.h index d91ac2b..7c4cc21 100644 --- a/src/include/pw3270cpp.h +++ b/src/include/pw3270cpp.h @@ -203,7 +203,7 @@ string ebc2asc(string &str); // Get/Set/Text with charset translation - string get_string(int baddr = 0, size_t len = -1); + string get_string(int baddr = 0, size_t len = -1, bool lf = false); string get_string_at(int row, int col, size_t sz); int set_string_at(int row, int col, const char *str); int cmp_string_at(int row, int col, const char *text); @@ -274,12 +274,12 @@ session(); // Get/Set/Test without charset translation - virtual string get_text(int baddr = 0, size_t len = 1) = 0; - virtual string get_text_at(int row, int col, size_t sz) = 0; - virtual int set_text_at(int row, int col, const char *str) = 0; - virtual int cmp_text_at(int row, int col, const char *text) = 0; + virtual string get_text(int baddr = 0, size_t len = 1, bool lf = false) = 0; + virtual string get_text_at(int row, int col, size_t sz) = 0; + virtual int set_text_at(int row, int col, const char *str) = 0; + virtual int cmp_text_at(int row, int col, const char *text) = 0; + virtual int emulate_input(const char *str) = 0; virtual int wait_for_text_at(int row, int col, const char *key, int timeout); - virtual int emulate_input(const char *str) = 0; private: diff --git a/src/libpw3270cpp/local.cc b/src/libpw3270cpp/local.cc index 648d124..4da465c 100644 --- a/src/libpw3270cpp/local.cc +++ b/src/libpw3270cpp/local.cc @@ -377,10 +377,10 @@ return _cmp_text_at(hSession,row,col,text); } - string get_text(int offset, size_t len) + string get_text(int offset, size_t len, bool lf) { string rc; - char * ptr = _get_text(hSession,offset,len,'\n'); + char * ptr = _get_text(hSession,offset,len,lf ? '\n' : 0); if(ptr) { diff --git a/src/libpw3270cpp/remote.cc b/src/libpw3270cpp/remote.cc index 7234638..326bdf5 100644 --- a/src/libpw3270cpp/remote.cc +++ b/src/libpw3270cpp/remote.cc @@ -1148,18 +1148,18 @@ return ETIMEDOUT; } - string get_text(int baddr, size_t len) + string get_text(int baddr, size_t len, bool lf) { #if defined(WIN32) - struct hllapi_packet_query_offset query = { HLLAPI_PACKET_GET_TEXT_AT_OFFSET, (unsigned short) baddr, (unsigned short) len, '\n' }; + struct hllapi_packet_query_offset query = { HLLAPI_PACKET_GET_TEXT_AT_OFFSET, (unsigned short) baddr, (unsigned short) len, lf ? '\n' : 0 }; return query_string(&query,sizeof(query),len); #elif defined(HAVE_DBUS) dbus_int32_t b = (dbus_int32_t) baddr; dbus_int32_t l = (dbus_int32_t) len; - unsigned char d = '\n'; + unsigned char d = lf ? '\n' : 0; DBusMessage * msg = create_message("getText"); if(!msg) diff --git a/src/libpw3270cpp/service.cc b/src/libpw3270cpp/service.cc index 5d3962d..c6bfa23 100644 --- a/src/libpw3270cpp/service.cc +++ b/src/libpw3270cpp/service.cc @@ -198,15 +198,17 @@ protected: - virtual string get_text(int baddr = 0, size_t len = 1) + virtual string get_text(int baddr = 0, size_t len = 1, bool lf = true) { - dbus_int32_t a = (dbus_int32_t) baddr; - dbus_int32_t s = (dbus_int32_t) len; + dbus_int32_t a = (dbus_int32_t) baddr; + dbus_int32_t s = (dbus_int32_t) len; + char c = lf ? '\n' : 0; return getString( "getText", DBUS_TYPE_STRING, &this->id, - DBUS_TYPE_INT32, &a, - DBUS_TYPE_INT32, &s, + DBUS_TYPE_INT32, &a, + DBUS_TYPE_INT32, &s, + DBUS_TYPE_BYTE, &c, DBUS_TYPE_INVALID); } diff --git a/src/libpw3270cpp/session.cc b/src/libpw3270cpp/session.cc index dfc62ed..7a8ee12 100644 --- a/src/libpw3270cpp/session.cc +++ b/src/libpw3270cpp/session.cc @@ -588,9 +588,9 @@ return wait_for_text_at(row,col,get_3270_text(key).c_str(),timeout); } - string session::get_string(int baddr, size_t len) + string session::get_string(int baddr, size_t len, bool lf) { - return get_local_text(get_text(baddr,len).c_str()); + return get_local_text(get_text(baddr,len,lf).c_str()); } string session::asc2ebc(string &str) diff --git a/src/plugins/hllapi/calls.cc b/src/plugins/hllapi/calls.cc index 45f5f7e..35bfbee 100644 --- a/src/plugins/hllapi/calls.cc +++ b/src/plugins/hllapi/calls.cc @@ -318,8 +318,9 @@ return HLLAPI_STATUS_DISCONNECTED; } - if(!(buffer && *buffer)) - return rc; + if(!(buffer && *buffer)) { + return HLLAPI_STATUS_BAD_PARAMETER; + } try { @@ -336,7 +337,7 @@ memset(buffer,' ',szBuffer); - string str = session::get_default()->get_string(offset,szBuffer); + string str = session::get_default()->get_string(offset,szBuffer,false); strncpy(buffer,str.c_str(),szBuffer); rc = HLLAPI_STATUS_SUCCESS; } diff --git a/src/plugins/hllapi/hllapi.cbp b/src/plugins/hllapi/hllapi.cbp index 1295df4..f30461a 100644 --- a/src/plugins/hllapi/hllapi.cbp +++ b/src/plugins/hllapi/hllapi.cbp @@ -64,6 +64,7 @@ + -- libgit2 0.21.2