Commit 52880afad43651af4cede05fab2df0f49c6a3a8a

Authored by Perry Werneck
1 parent e8f938a2

Updating API calls for the new version.

src/include/lib3270.h
@@ -617,7 +617,7 @@ @@ -617,7 +617,7 @@
617 * @param h Session handle. 617 * @param h Session handle.
618 * @param s String to input. 618 * @param s String to input.
619 * 619 *
620 - * @return Negative if error or number of processed characters. 620 + * @return -1 if error (sets errno) or number of processed characters.
621 * 621 *
622 */ 622 */
623 LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str); 623 LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str);
@@ -625,7 +625,7 @@ @@ -625,7 +625,7 @@
625 #define lib3270_set_text_at(h,r,c,t) lib3270_set_string_at(h,r,c,t) 625 #define lib3270_set_text_at(h,r,c,t) lib3270_set_string_at(h,r,c,t)
626 626
627 /** 627 /**
628 - * @brief Set string at defined position. 628 + * @brief Set string at defined row/column.
629 * 629 *
630 * @param hSession Session handle. 630 * @param hSession Session handle.
631 * @param row Row for the first character. 631 * @param row Row for the first character.
@@ -637,6 +637,18 @@ @@ -637,6 +637,18 @@
637 */ 637 */
638 LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, int row, int col, const unsigned char *str); 638 LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, int row, int col, const unsigned char *str);
639 639
  640 + /**
  641 + * @brief Set string at defined adress.
  642 + *
  643 + * @param hSession Session handle.
  644 + * @param baddr Adress for the first character.
  645 + * @param str String to set.
  646 + *
  647 + * @return Negative if error or number of processed characters.
  648 + *
  649 + */
  650 + LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, const unsigned char *str);
  651 +
640 LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *str); 652 LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *str);
641 653
642 /** 654 /**
@@ -979,7 +991,7 @@ @@ -979,7 +991,7 @@
979 * @return Contents at position if available, or NULL. Release it with lib3270_free() 991 * @return Contents at position if available, or NULL. Release it with lib3270_free()
980 * 992 *
981 */ 993 */
982 - LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf); 994 + LIB3270_EXPORT char * lib3270_get_string_at_address(H3270 *h, int offset, int len, char lf);
983 995
984 /** 996 /**
985 * @brief Get text at requested position 997 * @brief Get text at requested position
@@ -993,7 +1005,7 @@ @@ -993,7 +1005,7 @@
993 * @return Contents at position if available, or NULL. Release it with lib3270_free() 1005 * @return Contents at position if available, or NULL. Release it with lib3270_free()
994 * 1006 *
995 */ 1007 */
996 - LIB3270_EXPORT char * lib3270_get_text_at(H3270 *h, int row, int col, int len, char lf); 1008 + LIB3270_EXPORT char * lib3270_get_string_at(H3270 *h, int row, int col, int len, char lf);
997 1009
998 /** 1010 /**
999 * @brief Check for text at requested position 1011 * @brief Check for text at requested position
src/lib3270++/local/session.cc
@@ -117,7 +117,7 @@ @@ -117,7 +117,7 @@
117 117
118 std::lock_guard<std::mutex> lock(const_cast<Local::Session *>(this)->sync); 118 std::lock_guard<std::mutex> lock(const_cast<Local::Session *>(this)->sync);
119 119
120 - char * text = lib3270_get_text(hSession, baddr, len, lf); 120 + char * text = lib3270_get_string_at_address(hSession, baddr, len, lf);
121 121
122 if(!text) { 122 if(!text) {
123 throw std::runtime_error( _("Can't get screen contents") ); 123 throw std::runtime_error( _("Can't get screen contents") );
@@ -135,7 +135,7 @@ @@ -135,7 +135,7 @@
135 135
136 std::lock_guard<std::mutex> lock(const_cast<Local::Session *>(this)->sync); 136 std::lock_guard<std::mutex> lock(const_cast<Local::Session *>(this)->sync);
137 137
138 - char * text = lib3270_get_text_at(hSession, row, col, sz, lf); 138 + char * text = lib3270_get_string_at(hSession, row, col, sz, lf);
139 139
140 if(!text) { 140 if(!text) {
141 throw std::runtime_error( _("Can't get screen contents") ); 141 throw std::runtime_error( _("Can't get screen contents") );
src/lib3270/macros.c
@@ -103,7 +103,7 @@ @@ -103,7 +103,7 @@
103 switch(argc) 103 switch(argc)
104 { 104 {
105 case 1: // Get entire screen 105 case 1: // Get entire screen
106 - buffer = lib3270_get_text(hSession,0,-1,'\n'); 106 + buffer = lib3270_get_string_at_address(hSession,0,-1,'\n');
107 break; 107 break;
108 108
109 /* 109 /*
src/lib3270/paste.c
@@ -266,24 +266,51 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, int row, int col, cons @@ -266,24 +266,51 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, int row, int col, cons
266 return rc; 266 return rc;
267 } 267 }
268 268
  269 +LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, const unsigned char *str)
  270 +{
  271 + int rc = -1;
  272 +
  273 + FAIL_IF_NOT_ONLINE(hSession);
  274 +
  275 + if(hSession->kybdlock)
  276 + {
  277 + errno = EPERM;
  278 + return -1;
  279 + }
  280 +
  281 + if(lib3270_set_cursor_address(hSession,baddr) < 0)
  282 + return -1;
  283 +
  284 + if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED))
  285 + lib3270_unselect(hSession);
  286 +
  287 + hSession->cbk.suspend(hSession);
  288 + rc = set_string(hSession, str);
  289 + hSession->cbk.resume(hSession);
  290 +
  291 + return rc;
  292 +}
269 293
270 /** 294 /**
271 - * Set string at cursor position. 295 + * @brief Set string at cursor position.
272 * 296 *
273 * @param hSession Session handle. 297 * @param hSession Session handle.
274 * @param str String to set 298 * @param str String to set
275 * 299 *
276 - * @return Number of characters inserted; <0 in case of error. 300 + * @return -1 if error (sets errno) or number of processed characters.
277 * 301 *
278 */ 302 */
279 LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) 303 LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str)
280 { 304 {
281 int rc; 305 int rc;
282 306
283 - CHECK_SESSION_HANDLE(hSession); 307 + FAIL_IF_NOT_ONLINE(hSession);
284 308
285 if(hSession->kybdlock) 309 if(hSession->kybdlock)
286 - return -EINVAL; 310 + {
  311 + errno = EPERM;
  312 + return -1;
  313 + }
287 314
288 hSession->cbk.suspend(hSession); 315 hSession->cbk.suspend(hSession);
289 rc = set_string(hSession, str); 316 rc = set_string(hSession, str);
src/lib3270/screen.c
@@ -363,7 +363,7 @@ void screen_update(H3270 *session, int bstart, int bend) @@ -363,7 +363,7 @@ void screen_update(H3270 *session, int bstart, int bend)
363 363
364 #ifdef DEBUG 364 #ifdef DEBUG
365 { 365 {
366 - char *text = lib3270_get_text(session,0,-1,'\n'); 366 + char *text = lib3270_get_string_at_address(session,0,-1,'\n');
367 trace("First screen:\n%s\n",text); 367 trace("First screen:\n%s\n",text);
368 lib3270_free(text); 368 lib3270_free(text);
369 } 369 }
src/lib3270/selection.c
@@ -473,7 +473,7 @@ LIB3270_EXPORT char * lib3270_get_region(H3270 *h, int start_pos, int end_pos, u @@ -473,7 +473,7 @@ LIB3270_EXPORT char * lib3270_get_region(H3270 *h, int start_pos, int end_pos, u
473 return lib3270_realloc(text,sz); 473 return lib3270_realloc(text,sz);
474 } 474 }
475 475
476 -LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf) 476 +LIB3270_EXPORT char * lib3270_get_string_at_address(H3270 *h, int offset, int len, char lf)
477 { 477 {
478 char * buffer; 478 char * buffer;
479 int maxlen; 479 int maxlen;
@@ -528,10 +528,10 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf) @@ -528,10 +528,10 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf)
528 return buffer; 528 return buffer;
529 } 529 }
530 530
531 -LIB3270_EXPORT char * lib3270_get_text_at(H3270 *h, int row, int col, int len, char lf) 531 +LIB3270_EXPORT char * lib3270_get_string_at(H3270 *h, int row, int col, int len, char lf)
532 { 532 {
533 CHECK_SESSION_HANDLE(h); 533 CHECK_SESSION_HANDLE(h);
534 - return lib3270_get_text(h, ((row-1) * h->cols) + (col-1), len, lf); 534 + return lib3270_get_string_at_address(h, ((row-1) * h->cols) + (col-1), len, lf);
535 } 535 }
536 536
537 LIB3270_EXPORT int lib3270_cmp_text_at(H3270 *h, int row, int col, const char *text, char lf) 537 LIB3270_EXPORT int lib3270_cmp_text_at(H3270 *h, int row, int col, const char *text, char lf)
@@ -540,7 +540,7 @@ LIB3270_EXPORT int lib3270_cmp_text_at(H3270 *h, int row, int col, const char *t @@ -540,7 +540,7 @@ LIB3270_EXPORT int lib3270_cmp_text_at(H3270 *h, int row, int col, const char *t
540 size_t sz = strlen(text); 540 size_t sz = strlen(text);
541 char * contents; 541 char * contents;
542 542
543 - contents = lib3270_get_text_at(h,row,col,sz,lf); 543 + contents = lib3270_get_string_at(h,row,col,sz,lf);
544 if(!contents) 544 if(!contents)
545 return -1; 545 return -1;
546 546
@@ -567,7 +567,7 @@ LIB3270_EXPORT char * lib3270_get_field_text_at(H3270 *session, int baddr) @@ -567,7 +567,7 @@ LIB3270_EXPORT char * lib3270_get_field_text_at(H3270 *session, int baddr)
567 if(first < 0) 567 if(first < 0)
568 return NULL; 568 return NULL;
569 569
570 - return lib3270_get_text(session,first,lib3270_field_length(session,first)+1,0); 570 + return lib3270_get_string_at_address(session,first,lib3270_field_length(session,first)+1,0);
571 } 571 }
572 572
573 LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession) 573 LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession)