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 | { | ... | ... |