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 617 * @param h Session handle.
618 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 623 LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str);
... ... @@ -625,7 +625,7 @@
625 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 630 * @param hSession Session handle.
631 631 * @param row Row for the first character.
... ... @@ -637,6 +637,18 @@
637 637 */
638 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 652 LIB3270_EXPORT int lib3270_input_string(H3270 *hSession, const unsigned char *str);
641 653  
642 654 /**
... ... @@ -979,7 +991,7 @@
979 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 997 * @brief Get text at requested position
... ... @@ -993,7 +1005,7 @@
993 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 1011 * @brief Check for text at requested position
... ...
src/lib3270++/local/session.cc
... ... @@ -117,7 +117,7 @@
117 117  
118 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 122 if(!text) {
123 123 throw std::runtime_error( _("Can't get screen contents") );
... ... @@ -135,7 +135,7 @@
135 135  
136 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 140 if(!text) {
141 141 throw std::runtime_error( _("Can't get screen contents") );
... ...
src/lib3270/macros.c
... ... @@ -103,7 +103,7 @@
103 103 switch(argc)
104 104 {
105 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 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 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 297 * @param hSession Session handle.
274 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 303 LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str)
280 304 {
281 305 int rc;
282 306  
283   - CHECK_SESSION_HANDLE(hSession);
  307 + FAIL_IF_NOT_ONLINE(hSession);
284 308  
285 309 if(hSession->kybdlock)
286   - return -EINVAL;
  310 + {
  311 + errno = EPERM;
  312 + return -1;
  313 + }
287 314  
288 315 hSession->cbk.suspend(hSession);
289 316 rc = set_string(hSession, str);
... ...
src/lib3270/screen.c
... ... @@ -363,7 +363,7 @@ void screen_update(H3270 *session, int bstart, int bend)
363 363  
364 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 367 trace("First screen:\n%s\n",text);
368 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 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 478 char * buffer;
479 479 int maxlen;
... ... @@ -528,10 +528,10 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len, char lf)
528 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 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 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 540 size_t sz = strlen(text);
541 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 544 if(!contents)
545 545 return -1;
546 546  
... ... @@ -567,7 +567,7 @@ LIB3270_EXPORT char * lib3270_get_field_text_at(H3270 *session, int baddr)
567 567 if(first < 0)
568 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 573 LIB3270_EXPORT int lib3270_has_selection(H3270 *hSession)
... ...