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 | 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 | 438 | LIB3270_EXPORT int lib3270_get_field_start(H3270 *hSession, int baddr) |
433 | 439 | { |
434 | 440 | int sbaddr; |
435 | 441 | |
436 | - CHECK_SESSION_HANDLE(hSession); | |
442 | + if(check_online_session(hSession)) | |
443 | + return - errno; | |
437 | 444 | |
438 | 445 | if (!hSession->formatted) |
439 | - return errno = ENOTCONN; | |
446 | + return - (errno = ENOTCONN); | |
440 | 447 | |
441 | 448 | if(baddr < 0) |
442 | 449 | baddr = hSession->cursor_addr; | ... | ... |
src/core/iocalls.c
... | ... | @@ -472,7 +472,7 @@ LIB3270_EXPORT int lib3270_wait(H3270 *hSession, int seconds) |
472 | 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 | 477 | return errno = ENOTSUP; |
478 | 478 | } | ... | ... |
src/core/paste.c
... | ... | @@ -93,9 +93,10 @@ |
93 | 93 | |
94 | 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 | 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 | 235 | * @param col Col for the first character. |
235 | 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 | 241 | LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str) |
241 | 242 | { |
242 | 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 | 251 | // Is Keyboard locked ? |
247 | 252 | if(hSession->kybdlock) |
248 | - return errno = EPERM; | |
253 | + return - (errno = EPERM); | |
249 | 254 | |
250 | 255 | if(hSession->selected && !lib3270_get_toggle(hSession,LIB3270_TOGGLE_KEEP_SELECTED)) |
251 | 256 | lib3270_unselect(hSession); |
... | ... | @@ -272,12 +277,19 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con |
272 | 277 | { |
273 | 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 | 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 | 293 | return -1; |
282 | 294 | |
283 | 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 | 308 | * @param hSession Session handle. |
297 | 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 | 314 | LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) |
303 | 315 | { |
304 | 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 | 324 | if(hSession->kybdlock) |
309 | - return errno = EPERM; | |
325 | + return - (errno = EPERM); | |
310 | 326 | |
311 | 327 | hSession->cbk.suspend(hSession); |
312 | 328 | rc = set_string(hSession, str, -1); | ... | ... |
src/include/lib3270.h
... | ... | @@ -723,7 +723,7 @@ |
723 | 723 | * @brief Set string at defined adress. |
724 | 724 | * |
725 | 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 | 727 | * @param str String to set. |
728 | 728 | * @param length Length of the string (-1 for auto-detect). |
729 | 729 | * |
... | ... | @@ -1017,7 +1017,7 @@ |
1017 | 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 | 1023 | * Wait "N" seconds for "ready" state. | ... | ... |