From d582641b5831e4c44d89a078fcfc8c1bf540345d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 7 Aug 2017 09:31:21 -0300 Subject: [PATCH] Incluindo método para pesquisa dentro do buffer de terminal e opção para obter conteúdo sem quebra de linha. --- locale/pt_BR.po | 38 +++++++++++++++++++++++++------------- locale/pw3270.pot | 37 +++++++++++++++++++++++++++++++++++-- src/include/pw3270cpp.h | 3 ++- src/libpw3270cpp/session.cc | 29 +++++++++++++++++++++++++++-- src/plugins/hllapi/calls.cc | 6 +++++- 5 files changed, 94 insertions(+), 19 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 25d2828..097a256 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-07-28 14:17-0300\n" +"POT-Creation-Date: 2017-08-07 09:30-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 f529906..0512ddb 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-04 14:23-0300\n" +"POT-Creation-Date: 2017-08-07 09:30-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-04 14:23-0300\n" +"POT-Creation-Date: 2017-08-07 09:30-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-07 09:30-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 bd1cabd..d91ac2b 100644 --- a/src/include/pw3270cpp.h +++ b/src/include/pw3270cpp.h @@ -209,7 +209,8 @@ int cmp_string_at(int row, int col, const char *text); int wait_for_string_at(int row, int col, const char *key, int timeout); int input_string(const char *str); - string get_contents(); + string get_contents(bool lf = true); + size_t find_string(const char *str, bool lf = false); inline operator string() { return get_string(); diff --git a/src/libpw3270cpp/session.cc b/src/libpw3270cpp/session.cc index c9b51ab..dfc62ed 100644 --- a/src/libpw3270cpp/session.cc +++ b/src/libpw3270cpp/session.cc @@ -686,7 +686,7 @@ return -1; } - string session::get_contents() + string session::get_contents(bool lf) { string rc = ""; int rows = get_height(); @@ -695,12 +695,37 @@ for(int r = 0; r < rows; r++) { rc += get_string_at(r+1,1,cols).c_str(); - rc += "\n"; + if(lf) { + rc += "\n"; + } } return rc; } + size_t session::find_string(const char *str, bool lf) { + + int rc = 0; + + try + { + size_t pos = get_contents(lf).find(str); + + if(pos != string::npos) { + rc = ((int) pos) + 1; + } + + } + catch(std::exception &e) + { + rc = 0; + } + + return rc; + + } + + string session::get_session_name(void) const { return string(); diff --git a/src/plugins/hllapi/calls.cc b/src/plugins/hllapi/calls.cc index 985eac5..1df84c2 100644 --- a/src/plugins/hllapi/calls.cc +++ b/src/plugins/hllapi/calls.cc @@ -230,11 +230,14 @@ HLLAPI_API_CALL hllapi_find_text(LPSTR text) { + return (int) session::get_default()->find_string((const char *text),false); + + /* int rc = 0; try { - size_t pos = session::get_default()->get_contents().find((const char *) text); + size_t pos = session::get_default()->get_contents(true).find((const char *) text); if(pos != string::npos) { rc = ((int) pos) + 1; @@ -247,6 +250,7 @@ } return rc; + */ } -- libgit2 0.21.2