Commit 7fe37ca628a3709842d402bbd46cd28d62d09720
1 parent
0c40faba
Exists in
master
and in
3 other branches
Debugging API.
Showing
4 changed files
with
40 additions
and
17 deletions
Show diff stats
src/core/ctlr.c
| @@ -429,14 +429,21 @@ static void ctlr_connect(H3270 *hSession, int GNUC_UNUSED(ignored), void GNUC_UN | @@ -429,14 +429,21 @@ static void ctlr_connect(H3270 *hSession, int GNUC_UNUSED(ignored), void GNUC_UN | ||
| 429 | hSession->crm_nattr = 0; | 429 | hSession->crm_nattr = 0; |
| 430 | } | 430 | } |
| 431 | 431 | ||
| 432 | +/** | ||
| 433 | + * @brief Get field address. | ||
| 434 | + * | ||
| 435 | + * @return Negative on error(sets errno) or field address. | ||
| 436 | + * | ||
| 437 | + */ | ||
| 432 | LIB3270_EXPORT int lib3270_get_field_start(H3270 *hSession, int baddr) | 438 | LIB3270_EXPORT int lib3270_get_field_start(H3270 *hSession, int baddr) |
| 433 | { | 439 | { |
| 434 | int sbaddr; | 440 | int sbaddr; |
| 435 | 441 | ||
| 436 | - CHECK_SESSION_HANDLE(hSession); | 442 | + if(check_online_session(hSession)) |
| 443 | + return - errno; | ||
| 437 | 444 | ||
| 438 | if (!hSession->formatted) | 445 | if (!hSession->formatted) |
| 439 | - return errno = ENOTCONN; | 446 | + return - (errno = ENOTCONN); |
| 440 | 447 | ||
| 441 | if(baddr < 0) | 448 | if(baddr < 0) |
| 442 | baddr = hSession->cursor_addr; | 449 | baddr = hSession->cursor_addr; |
src/core/iocalls.c
| @@ -472,7 +472,7 @@ LIB3270_EXPORT int lib3270_wait(H3270 *hSession, int seconds) | @@ -472,7 +472,7 @@ LIB3270_EXPORT int lib3270_wait(H3270 *hSession, int seconds) | ||
| 472 | return 0; | 472 | return 0; |
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | -LIB3270_EXPORT int wait_for_update(H3270 *hSession, int seconds) | 475 | +LIB3270_EXPORT int lib3270_wait_for_update(H3270 *hSession, int seconds) |
| 476 | { | 476 | { |
| 477 | return errno = ENOTSUP; | 477 | return errno = ENOTSUP; |
| 478 | } | 478 | } |
src/core/paste.c
| @@ -93,9 +93,10 @@ | @@ -93,9 +93,10 @@ | ||
| 93 | 93 | ||
| 94 | /*---[ Implement ]----------------------------------------------------------------------------------------------*/ | 94 | /*---[ Implement ]----------------------------------------------------------------------------------------------*/ |
| 95 | 95 | ||
| 96 | -/* | ||
| 97 | - * Move the cursor back within the legal paste area. | ||
| 98 | - * Returns a Boolean indicating success. | 96 | +/** |
| 97 | + * @brief Move the cursor back within the legal paste area. | ||
| 98 | + * | ||
| 99 | + * @return A Boolean indicating success. | ||
| 99 | */ | 100 | */ |
| 100 | static int remargin(H3270 *hSession, int lmargin) | 101 | static int remargin(H3270 *hSession, int lmargin) |
| 101 | { | 102 | { |
| @@ -234,18 +235,22 @@ static int set_string(H3270 *hSession, const unsigned char *str, int length) | @@ -234,18 +235,22 @@ static int set_string(H3270 *hSession, const unsigned char *str, int length) | ||
| 234 | * @param col Col for the first character. | 235 | * @param col Col for the first character. |
| 235 | * @param str String to set. | 236 | * @param str String to set. |
| 236 | * | 237 | * |
| 237 | - * @return -1 if error (sets errno) or number of processed characters. | 238 | + * @return negative if error (sets errno) or number of processed characters. |
| 238 | * | 239 | * |
| 239 | */ | 240 | */ |
| 240 | LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str) | 241 | LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str) |
| 241 | { | 242 | { |
| 242 | int rc = 0; | 243 | int rc = 0; |
| 243 | 244 | ||
| 244 | - FAIL_IF_NOT_ONLINE(hSession); | 245 | + if(!(str && *str)) |
| 246 | + return 0; | ||
| 247 | + | ||
| 248 | + if(check_online_session(hSession)) | ||
| 249 | + return - errno; | ||
| 245 | 250 | ||
| 246 | // Is Keyboard locked ? | 251 | // Is Keyboard locked ? |
| 247 | if(hSession->kybdlock) | 252 | if(hSession->kybdlock) |
| 248 | - return errno = EPERM; | 253 | + return - (errno = EPERM); |
| 249 | 254 | ||
| 250 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) | 255 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) |
| 251 | lib3270_unselect(hSession); | 256 | lib3270_unselect(hSession); |
| @@ -272,12 +277,19 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | @@ -272,12 +277,19 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | ||
| 272 | { | 277 | { |
| 273 | int rc = -1; | 278 | int rc = -1; |
| 274 | 279 | ||
| 275 | - FAIL_IF_NOT_ONLINE(hSession); | 280 | + if(!(str && *str)) |
| 281 | + return 0; | ||
| 282 | + | ||
| 283 | + if(check_online_session(hSession)) | ||
| 284 | + return - errno; | ||
| 285 | + | ||
| 286 | + if(length < 0) | ||
| 287 | + length = (int) strlen((const char *) str); | ||
| 276 | 288 | ||
| 277 | if(hSession->kybdlock) | 289 | if(hSession->kybdlock) |
| 278 | - return errno = EPERM; | 290 | + return - (errno = EPERM); |
| 279 | 291 | ||
| 280 | - if(lib3270_set_cursor_address(hSession,baddr) < 0) | 292 | + if(baddr >= 0 && lib3270_set_cursor_address(hSession,baddr) < 0) |
| 281 | return -1; | 293 | return -1; |
| 282 | 294 | ||
| 283 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) | 295 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) |
| @@ -296,17 +308,21 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | @@ -296,17 +308,21 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | ||
| 296 | * @param hSession Session handle. | 308 | * @param hSession Session handle. |
| 297 | * @param str String to set | 309 | * @param str String to set |
| 298 | * | 310 | * |
| 299 | - * @return -1 if error (sets errno) or number of processed characters. | 311 | + * @return negative if error (sets errno) or number of processed characters. |
| 300 | * | 312 | * |
| 301 | */ | 313 | */ |
| 302 | LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) | 314 | LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) |
| 303 | { | 315 | { |
| 304 | int rc; | 316 | int rc; |
| 305 | 317 | ||
| 306 | - FAIL_IF_NOT_ONLINE(hSession); | 318 | + if(!(str && *str)) |
| 319 | + return 0; | ||
| 320 | + | ||
| 321 | + if(check_online_session(hSession)) | ||
| 322 | + return - errno; | ||
| 307 | 323 | ||
| 308 | if(hSession->kybdlock) | 324 | if(hSession->kybdlock) |
| 309 | - return errno = EPERM; | 325 | + return - (errno = EPERM); |
| 310 | 326 | ||
| 311 | hSession->cbk.suspend(hSession); | 327 | hSession->cbk.suspend(hSession); |
| 312 | rc = set_string(hSession, str, -1); | 328 | rc = set_string(hSession, str, -1); |
src/include/lib3270.h
| @@ -723,7 +723,7 @@ | @@ -723,7 +723,7 @@ | ||
| 723 | * @brief Set string at defined adress. | 723 | * @brief Set string at defined adress. |
| 724 | * | 724 | * |
| 725 | * @param hSession Session handle. | 725 | * @param hSession Session handle. |
| 726 | - * @param baddr Adress for the first character. | 726 | + * @param baddr Adress for the first character (-1 for cursor position). |
| 727 | * @param str String to set. | 727 | * @param str String to set. |
| 728 | * @param length Length of the string (-1 for auto-detect). | 728 | * @param length Length of the string (-1 for auto-detect). |
| 729 | * | 729 | * |
| @@ -1017,7 +1017,7 @@ | @@ -1017,7 +1017,7 @@ | ||
| 1017 | * @param seconds Number of seconds to wait. | 1017 | * @param seconds Number of seconds to wait. |
| 1018 | * | 1018 | * |
| 1019 | */ | 1019 | */ |
| 1020 | - LIB3270_EXPORT int wait_for_update(H3270 *hSession, int seconds); | 1020 | + LIB3270_EXPORT int lib3270_wait_for_update(H3270 *hSession, int seconds); |
| 1021 | 1021 | ||
| 1022 | /** | 1022 | /** |
| 1023 | * Wait "N" seconds for "ready" state. | 1023 | * Wait "N" seconds for "ready" state. |