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,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 | .name = "program_message", // Property name. | 73 | .name = "program_message", // Property name. |
| 66 | .description = N_( "Latest program message" ), // Property description. | 74 | .description = N_( "Latest program message" ), // Property description. |
| 67 | .get = lib3270_get_program_message_as_int, // Get value. | 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,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 | .name = "width", // Property name. | 106 | .name = "width", // Property name. |
| 115 | .description = N_( "Current screen width in columns" ), // Property description. | 107 | .description = N_( "Current screen width in columns" ), // Property description. |
| 116 | .get = lib3270_get_width, // Get value. | 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,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,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 | FAIL_IF_NOT_ONLINE(hSession); | 451 | FAIL_IF_NOT_ONLINE(hSession); |
| 454 | 452 | ||
| 455 | trace("%s(%d)",__FUNCTION__,baddr); | 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 | return - (errno = EOVERFLOW); | 456 | return - (errno = EOVERFLOW); |
| 459 | 457 | ||
| 460 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) | 458 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) |
src/include/lib3270.h
| @@ -736,7 +736,7 @@ | @@ -736,7 +736,7 @@ | ||
| 736 | * @retval -ENOTCONN Disconnected from host. | 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 | * @brief Set cursor position. | 742 | * @brief Set cursor position. |
| @@ -757,10 +757,14 @@ | @@ -757,10 +757,14 @@ | ||
| 757 | * | 757 | * |
| 758 | * @param hSession Session handle. | 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 | * @brief Move cursor | 770 | * @brief Move cursor |