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