Commit f731fcdfbab33937bc642f420c426eaab99e18df
1 parent
df26bc3c
Exists in
master
and in
5 other branches
Incluindo opção para definir o delimitador de linha ao carregar o conteúdo da tela.
Showing
11 changed files
with
21 additions
and
20 deletions
Show diff stats
android/jni/main.cpp
| ... | ... | @@ -78,7 +78,7 @@ static void changed(H3270 *session, int offset, int len) |
| 78 | 78 | trace("%s: offset=%d len=%d",__FUNCTION__,offset,len); |
| 79 | 79 | |
| 80 | 80 | { |
| 81 | - char *text = lib3270_get_text(PW3270_SESSION,0,-1); | |
| 81 | + char *text = lib3270_get_text(PW3270_SESSION,0,-1,'\n'); | |
| 82 | 82 | if(text) |
| 83 | 83 | { |
| 84 | 84 | char *strtok_r(char *str, const char *delim, char **saveptr); | ... | ... |
android/jni/text.cpp
| ... | ... | @@ -76,7 +76,7 @@ JNIEXPORT jbyteArray JNICALL Java_br_com_bb_pw3270_lib3270_getText(JNIEnv *env, |
| 76 | 76 | |
| 77 | 77 | // trace("%s starts",__FUNCTION__); |
| 78 | 78 | |
| 79 | - char *text = lib3270_get_text(PW3270_SESSION,0,-1); | |
| 79 | + char *text = lib3270_get_text(PW3270_SESSION,0,-1,'\n'); | |
| 80 | 80 | |
| 81 | 81 | if(text) |
| 82 | 82 | { | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -907,11 +907,12 @@ |
| 907 | 907 | * @param h Session Handle. |
| 908 | 908 | * @param offset Start position. |
| 909 | 909 | * @param len Text length or -1 to all text. |
| 910 | + * @param lf Line break char (0 to disable line breaks). | |
| 910 | 911 | * |
| 911 | 912 | * @return Contents at position if available, or NULL. Release it with lib3270_free() |
| 912 | 913 | * |
| 913 | 914 | */ |
| 914 | - LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len); | |
| 915 | + LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf); | |
| 915 | 916 | |
| 916 | 917 | /** |
| 917 | 918 | * Get text at requested position | ... | ... |
src/lib3270/macros.c
src/lib3270/screen.c
| ... | ... | @@ -374,7 +374,7 @@ void screen_update(H3270 *session, int bstart, int bend) |
| 374 | 374 | |
| 375 | 375 | #ifdef DEBUG |
| 376 | 376 | { |
| 377 | - char *text = lib3270_get_text(session,0,-1); | |
| 377 | + char *text = lib3270_get_text(session,0,-1,'\n'); | |
| 378 | 378 | trace("First screen:\n%s\n",text); |
| 379 | 379 | lib3270_free(text); |
| 380 | 380 | } | ... | ... |
src/lib3270/selection.c
| ... | ... | @@ -475,7 +475,7 @@ LIB3270_EXPORT char * lib3270_get_region(H3270 *h, int start_pos, int end_pos, u |
| 475 | 475 | return lib3270_realloc(text,sz); |
| 476 | 476 | } |
| 477 | 477 | |
| 478 | -LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len) | |
| 478 | +LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf) | |
| 479 | 479 | { |
| 480 | 480 | char * buffer; |
| 481 | 481 | int maxlen; |
| ... | ... | @@ -517,9 +517,9 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len) |
| 517 | 517 | offset++; |
| 518 | 518 | len--; |
| 519 | 519 | |
| 520 | - if((offset%h->cols) == 0 && len > 0) | |
| 520 | + if(lf && (offset%h->cols) == 0 && len > 0) | |
| 521 | 521 | { |
| 522 | - *(ptr++) = '\n'; | |
| 522 | + *(ptr++) = lf; | |
| 523 | 523 | len--; |
| 524 | 524 | } |
| 525 | 525 | } |
| ... | ... | @@ -533,7 +533,7 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len) |
| 533 | 533 | LIB3270_EXPORT char * lib3270_get_text_at(H3270 *h, int row, int col, int len) |
| 534 | 534 | { |
| 535 | 535 | CHECK_SESSION_HANDLE(h); |
| 536 | - return lib3270_get_text(h, ((row-1) * h->cols) + (col-1), len); | |
| 536 | + return lib3270_get_text(h, ((row-1) * h->cols) + (col-1), len, '\n'); | |
| 537 | 537 | } |
| 538 | 538 | |
| 539 | 539 | LIB3270_EXPORT int lib3270_cmp_text_at(H3270 *h, int row, int col, const char *text) |
| ... | ... | @@ -569,7 +569,7 @@ LIB3270_EXPORT char * lib3270_get_field_at(H3270 *session, int baddr) |
| 569 | 569 | if(first < 0) |
| 570 | 570 | return NULL; |
| 571 | 571 | |
| 572 | - return lib3270_get_text(session,first,lib3270_field_length(session,first)+1); | |
| 572 | + return lib3270_get_text(session,first,lib3270_field_length(session,first)+1,0); | |
| 573 | 573 | } |
| 574 | 574 | |
| 575 | 575 | LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession) | ... | ... |
src/libpw3270cpp/local.cc
| ... | ... | @@ -137,7 +137,7 @@ |
| 137 | 137 | int (*_pfkey)(H3270 *hSession, int key); |
| 138 | 138 | int (*_pakey)(H3270 *hSession, int key); |
| 139 | 139 | int (*_wait_for_ready)(H3270 *hSession, int seconds); |
| 140 | - char * (*_get_text)(H3270 *h, int offset, int len); | |
| 140 | + char * (*_get_text)(H3270 *h, int offset, int len, char lf); | |
| 141 | 141 | char * (*_get_text_at)(H3270 *h, int row, int col, int len); |
| 142 | 142 | int (*_cmp_text_at)(H3270 *h, int row, int col, const char *text); |
| 143 | 143 | int (*_set_text_at)(H3270 *h, int row, int col, const unsigned char *str); |
| ... | ... | @@ -380,7 +380,7 @@ |
| 380 | 380 | string get_text(int offset, size_t len) |
| 381 | 381 | { |
| 382 | 382 | string rc; |
| 383 | - char * ptr = _get_text(hSession,offset,len); | |
| 383 | + char * ptr = _get_text(hSession,offset,len,'\n'); | |
| 384 | 384 | |
| 385 | 385 | if(ptr) |
| 386 | 386 | { | ... | ... |
src/plugins/dbus3270/gobject.c
| ... | ... | @@ -230,7 +230,7 @@ void pw3270_dbus_get_screen_contents(PW3270Dbus *object, DBusGMethodInvocation * |
| 230 | 230 | if(pw3270_dbus_check_valid_state(object,context)) |
| 231 | 231 | return; |
| 232 | 232 | |
| 233 | - text = lib3270_get_text(hSession,0,-1); | |
| 233 | + text = lib3270_get_text(hSession,0,-1,'\n'); | |
| 234 | 234 | |
| 235 | 235 | utftext = g_convert_with_fallback(text,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL); |
| 236 | 236 | |
| ... | ... | @@ -323,7 +323,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBus |
| 323 | 323 | if(pw3270_dbus_check_valid_state(object,context)) |
| 324 | 324 | return; |
| 325 | 325 | |
| 326 | - text = lib3270_get_text(hSession,offset,len); | |
| 326 | + text = lib3270_get_text(hSession,offset,len,'\n'); | |
| 327 | 327 | if(!text) |
| 328 | 328 | { |
| 329 | 329 | GError *error = pw3270_dbus_get_error_from_errno(errno); | ... | ... |
src/pw3270/v3270/accessible.c
| ... | ... | @@ -185,7 +185,7 @@ static gunichar v3270_accessible_get_character_at_offset(AtkText *atk_text, gint |
| 185 | 185 | if(widget == NULL) |
| 186 | 186 | { |
| 187 | 187 | H3270 * host = v3270_get_session(widget); |
| 188 | - gchar * text = lib3270_get_text(host,offset,1); | |
| 188 | + gchar * text = lib3270_get_text(host,offset,1,'\n'); | |
| 189 | 189 | |
| 190 | 190 | if(text) |
| 191 | 191 | { |
| ... | ... | @@ -346,7 +346,7 @@ static gchar * v3270_accessible_get_text_at_offset(AtkText *atk_text, gint offse |
| 346 | 346 | case ATK_TEXT_BOUNDARY_CHAR: // Boundary is the boundary between characters |
| 347 | 347 | // (including non-printing characters) |
| 348 | 348 | |
| 349 | - text = lib3270_get_text(host,offset,1); | |
| 349 | + text = lib3270_get_text(host,offset,1,'\n'); | |
| 350 | 350 | break; |
| 351 | 351 | |
| 352 | 352 | case ATK_TEXT_BOUNDARY_WORD_START: // Boundary is the start (i.e. first character) of a word. |
| ... | ... | @@ -373,7 +373,7 @@ static gchar * v3270_accessible_get_text_at_offset(AtkText *atk_text, gint offse |
| 373 | 373 | pos = (offset/cols)*cols; |
| 374 | 374 | if(pos == offset) |
| 375 | 375 | offset++; |
| 376 | - text = lib3270_get_text(host,pos,(offset-pos)); | |
| 376 | + text = lib3270_get_text(host,pos,(offset-pos),'\n'); | |
| 377 | 377 | break; |
| 378 | 378 | |
| 379 | 379 | |
| ... | ... | @@ -426,7 +426,7 @@ static gchar * v3270_accessible_get_text(AtkText *atk_text, gint start_pos, gint |
| 426 | 426 | if(!lib3270_connected(host)) |
| 427 | 427 | return g_strdup( "" ); |
| 428 | 428 | |
| 429 | - text = lib3270_get_text(host,start_pos,end_pos < start_pos ? -1 : (end_pos - start_pos)); | |
| 429 | + text = lib3270_get_text(host,start_pos,end_pos < start_pos ? -1 : (end_pos - start_pos),'\n'); | |
| 430 | 430 | |
| 431 | 431 | if(text) |
| 432 | 432 | { | ... | ... |
src/pw3270/v3270/selection.c
| ... | ... | @@ -99,7 +99,7 @@ gchar * v3270_get_text(GtkWidget *widget, int offset, int len) |
| 99 | 99 | |
| 100 | 100 | terminal = GTK_V3270(widget); |
| 101 | 101 | |
| 102 | - str = lib3270_get_text(terminal->host, offset, len); | |
| 102 | + str = lib3270_get_text(terminal->host, offset, len, '\n'); | |
| 103 | 103 | |
| 104 | 104 | if(!str) |
| 105 | 105 | return NULL; | ... | ... |
src/pw3270/v3270/widget.c
| ... | ... | @@ -826,7 +826,7 @@ static void changed(H3270 *session, int offset, int len) |
| 826 | 826 | { |
| 827 | 827 | // Get new text, notify atk |
| 828 | 828 | gsize bytes_written = 0; |
| 829 | - char * text = lib3270_get_text(session,offset,len); | |
| 829 | + char * text = lib3270_get_text(session,offset,len,'\n'); | |
| 830 | 830 | |
| 831 | 831 | if(text) |
| 832 | 832 | { | ... | ... |