Commit 6a81f385f489f922f35d660929caa47aaaeab3ed
1 parent
d1ef560b
Exists in
master
and in
2 other branches
Debugging unexpected response on lib3270_get_cursor_adress().
Showing
4 changed files
with
20 additions
and
18 deletions
Show diff stats
src/core/properties/signed.c
| ... | ... | @@ -62,6 +62,14 @@ |
| 62 | 62 | }, |
| 63 | 63 | |
| 64 | 64 | { |
| 65 | + .name = "cursor_address", // Property name. | |
| 66 | + .group = LIB3270_ACTION_GROUP_ONLINE, // Property group. | |
| 67 | + .description = N_( "Cursor address" ), // Property description. | |
| 68 | + .get = lib3270_get_cursor_address, // Get value. | |
| 69 | + .set = lib3270_set_cursor_address // Set value. | |
| 70 | + }, | |
| 71 | + | |
| 72 | + { | |
| 65 | 73 | .name = "program_message", // Property name. |
| 66 | 74 | .description = N_( "Latest program message" ), // Property description. |
| 67 | 75 | .get = lib3270_get_program_message_as_int, // Get value. | ... | ... |
src/core/properties/unsigned.c
| ... | ... | @@ -103,14 +103,6 @@ static unsigned int lib3270_get_host_type_number(const H3270 *hSession) |
| 103 | 103 | }, |
| 104 | 104 | |
| 105 | 105 | { |
| 106 | - .name = "cursor_address", // Property name. | |
| 107 | - .group = LIB3270_ACTION_GROUP_ONLINE, // Property group. | |
| 108 | - .description = N_( "Cursor address" ), // Property description. | |
| 109 | - .get = lib3270_get_cursor_address, // Get value. | |
| 110 | - .set = lib3270_set_cursor_address // Set value. | |
| 111 | - }, | |
| 112 | - | |
| 113 | - { | |
| 114 | 106 | .name = "width", // Property name. |
| 115 | 107 | .description = N_( "Current screen width in columns" ), // Property description. |
| 116 | 108 | .get = lib3270_get_width, // Get value. | ... | ... |
src/core/screen.c
| ... | ... | @@ -416,12 +416,10 @@ void screen_update(H3270 *session, int bstart, int bend) |
| 416 | 416 | |
| 417 | 417 | } |
| 418 | 418 | |
| 419 | -LIB3270_EXPORT unsigned int lib3270_get_cursor_address(const H3270 *hSession) | |
| 419 | +LIB3270_EXPORT int lib3270_get_cursor_address(const H3270 *hSession) | |
| 420 | 420 | { |
| 421 | - if(check_online_session(hSession)) | |
| 422 | - return 0; | |
| 423 | - | |
| 424 | - return hSession->cursor_addr; | |
| 421 | + int state = check_online_session(hSession); | |
| 422 | + return state ? -state : hSession->cursor_addr; | |
| 425 | 423 | } |
| 426 | 424 | |
| 427 | 425 | /** |
| ... | ... | @@ -448,13 +446,13 @@ LIB3270_EXPORT int lib3270_translate_to_address(const H3270 *hSession, unsigned |
| 448 | 446 | } |
| 449 | 447 | |
| 450 | 448 | |
| 451 | -LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int baddr) | |
| 449 | +LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, int baddr) | |
| 452 | 450 | { |
| 453 | 451 | FAIL_IF_NOT_ONLINE(hSession); |
| 454 | 452 | |
| 455 | 453 | trace("%s(%d)",__FUNCTION__,baddr); |
| 456 | 454 | |
| 457 | - if(baddr > (hSession->view.rows * hSession->view.cols)) | |
| 455 | + if( ((unsigned int) baddr) > (hSession->view.rows * hSession->view.cols)) | |
| 458 | 456 | return - (errno = EOVERFLOW); |
| 459 | 457 | |
| 460 | 458 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -736,7 +736,7 @@ |
| 736 | 736 | * @retval -ENOTCONN Disconnected from host. |
| 737 | 737 | * |
| 738 | 738 | */ |
| 739 | - LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, unsigned int baddr); | |
| 739 | + LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *hSession, int baddr); | |
| 740 | 740 | |
| 741 | 741 | /** |
| 742 | 742 | * @brief Set cursor position. |
| ... | ... | @@ -757,10 +757,14 @@ |
| 757 | 757 | * |
| 758 | 758 | * @param hSession Session handle. |
| 759 | 759 | * |
| 760 | - * @return Cursor address or 0 if invalid (sets errno). | |
| 760 | + * @return Cursor address or negative if invalid (sets errno). | |
| 761 | + * | |
| 762 | + * @retval -ENOTCONN Disconnected from host. | |
| 763 | + * @retval -EINVAL Invalid session handle. | |
| 764 | + * @retval -1 Unexpected error. | |
| 761 | 765 | * |
| 762 | 766 | */ |
| 763 | - LIB3270_EXPORT unsigned int lib3270_get_cursor_address(const H3270 *hSession); | |
| 767 | + LIB3270_EXPORT int lib3270_get_cursor_address(const H3270 *hSession); | |
| 764 | 768 | |
| 765 | 769 | /** |
| 766 | 770 | * @brief Move cursor | ... | ... |