Commit f007470aee9bd8b7d0a275122cbaba4c6c5d860d
1 parent
ded9d88d
Exists in
master
and in
3 other branches
Adding "length" parameters in the "set" api calls.
Showing
2 changed files
with
15 additions
and
31 deletions
Show diff stats
src/core/paste.c
| @@ -227,18 +227,8 @@ static int set_string(H3270 *hSession, const unsigned char *str, int length) | @@ -227,18 +227,8 @@ static int set_string(H3270 *hSession, const unsigned char *str, int length) | ||
| 227 | return data.qtd; | 227 | return data.qtd; |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | -/** | ||
| 231 | - * @brief Set string at defined position. | ||
| 232 | - * | ||
| 233 | - * @param hSession Session handle. | ||
| 234 | - * @param row Row for the first character. | ||
| 235 | - * @param col Col for the first character. | ||
| 236 | - * @param str String to set. | ||
| 237 | - * | ||
| 238 | - * @return negative if error (sets errno) or number of processed characters. | ||
| 239 | - * | ||
| 240 | - */ | ||
| 241 | -LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str) | 230 | +/// @brief Set string at defined position. |
| 231 | +LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str, int length) | ||
| 242 | { | 232 | { |
| 243 | int rc = 0; | 233 | int rc = 0; |
| 244 | 234 | ||
| @@ -263,7 +253,7 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsi | @@ -263,7 +253,7 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsi | ||
| 263 | hSession->cbk.suspend(hSession); | 253 | hSession->cbk.suspend(hSession); |
| 264 | 254 | ||
| 265 | hSession->cursor_addr = (row * hSession->cols) + col; | 255 | hSession->cursor_addr = (row * hSession->cols) + col; |
| 266 | - rc += set_string(hSession, str, -1); | 256 | + rc += set_string(hSession, str, length); |
| 267 | 257 | ||
| 268 | hSession->cbk.resume(hSession); | 258 | hSession->cbk.resume(hSession); |
| 269 | } | 259 | } |
| @@ -302,16 +292,8 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | @@ -302,16 +292,8 @@ LIB3270_EXPORT int lib3270_set_string_at_address(H3270 *hSession, int baddr, con | ||
| 302 | return rc; | 292 | return rc; |
| 303 | } | 293 | } |
| 304 | 294 | ||
| 305 | -/** | ||
| 306 | - * @brief Set string at cursor position. | ||
| 307 | - * | ||
| 308 | - * @param hSession Session handle. | ||
| 309 | - * @param str String to set | ||
| 310 | - * | ||
| 311 | - * @return negative if error (sets errno) or number of processed characters. | ||
| 312 | - * | ||
| 313 | - */ | ||
| 314 | -LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) | 295 | +/// @brief Set string at cursor position. |
| 296 | +LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str, int length) | ||
| 315 | { | 297 | { |
| 316 | int rc; | 298 | int rc; |
| 317 | 299 | ||
| @@ -325,7 +307,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) | @@ -325,7 +307,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) | ||
| 325 | return - (errno = EPERM); | 307 | return - (errno = EPERM); |
| 326 | 308 | ||
| 327 | hSession->cbk.suspend(hSession); | 309 | hSession->cbk.suspend(hSession); |
| 328 | - rc = set_string(hSession, str, -1); | 310 | + rc = set_string(hSession, str, length); |
| 329 | hSession->cbk.resume(hSession); | 311 | hSession->cbk.resume(hSession); |
| 330 | 312 | ||
| 331 | return rc; | 313 | return rc; |
| @@ -349,7 +331,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str) | @@ -349,7 +331,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str) | ||
| 349 | h->paste_buffer = NULL; | 331 | h->paste_buffer = NULL; |
| 350 | } | 332 | } |
| 351 | 333 | ||
| 352 | - sz = lib3270_set_string(h,str); | 334 | + sz = lib3270_set_string(h,str,-1); |
| 353 | if(sz < 0) | 335 | if(sz < 0) |
| 354 | { | 336 | { |
| 355 | // Can´t paste | 337 | // Can´t paste |
src/include/lib3270.h
| @@ -696,15 +696,16 @@ | @@ -696,15 +696,16 @@ | ||
| 696 | * Returns are ignored; newlines mean "move to beginning of next line"; | 696 | * Returns are ignored; newlines mean "move to beginning of next line"; |
| 697 | * tabs and formfeeds become spaces. Backslashes are not special | 697 | * tabs and formfeeds become spaces. Backslashes are not special |
| 698 | * | 698 | * |
| 699 | - * @param h Session handle. | ||
| 700 | - * @param s String to input. | 699 | + * @param hSession Session handle. |
| 700 | + * @param text String to input. | ||
| 701 | + * @param length Length of the string (-1 for auto-detect). | ||
| 701 | * | 702 | * |
| 702 | - * @return -1 if error (sets errno) or number of processed characters. | 703 | + * @return Negative if error (sets errno) or number of processed characters. |
| 703 | * | 704 | * |
| 704 | */ | 705 | */ |
| 705 | - LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str); | 706 | + LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *text, int length); |
| 706 | 707 | ||
| 707 | - #define lib3270_set_text_at(h,r,c,t) lib3270_set_string_at(h,r,c,t) | 708 | + #define lib3270_set_text_at(h,r,c,t) lib3270_set_string_at(h,r,c,t,-1) |
| 708 | 709 | ||
| 709 | /** | 710 | /** |
| 710 | * @brief Set string at defined row/column. | 711 | * @brief Set string at defined row/column. |
| @@ -713,11 +714,12 @@ | @@ -713,11 +714,12 @@ | ||
| 713 | * @param row Row for the first character. | 714 | * @param row Row for the first character. |
| 714 | * @param col Col for the first character. | 715 | * @param col Col for the first character. |
| 715 | * @param str String to set. | 716 | * @param str String to set. |
| 717 | + * @param length Length of the string (-1 for auto-detect). | ||
| 716 | * | 718 | * |
| 717 | * @return Negative if error or number of processed characters. | 719 | * @return Negative if error or number of processed characters. |
| 718 | * | 720 | * |
| 719 | */ | 721 | */ |
| 720 | - LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str); | 722 | + LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsigned int col, const unsigned char *str, int length); |
| 721 | 723 | ||
| 722 | /** | 724 | /** |
| 723 | * @brief Set string at defined adress. | 725 | * @brief Set string at defined adress. |