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 | 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 | 233 | int rc = 0; |
| 244 | 234 | |
| ... | ... | @@ -263,7 +253,7 @@ LIB3270_EXPORT int lib3270_set_string_at(H3270 *hSession, unsigned int row, unsi |
| 263 | 253 | hSession->cbk.suspend(hSession); |
| 264 | 254 | |
| 265 | 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 | 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 | 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 | 298 | int rc; |
| 317 | 299 | |
| ... | ... | @@ -325,7 +307,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str) |
| 325 | 307 | return - (errno = EPERM); |
| 326 | 308 | |
| 327 | 309 | hSession->cbk.suspend(hSession); |
| 328 | - rc = set_string(hSession, str, -1); | |
| 310 | + rc = set_string(hSession, str, length); | |
| 329 | 311 | hSession->cbk.resume(hSession); |
| 330 | 312 | |
| 331 | 313 | return rc; |
| ... | ... | @@ -349,7 +331,7 @@ LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str) |
| 349 | 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 | 335 | if(sz < 0) |
| 354 | 336 | { |
| 355 | 337 | // Can´t paste | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -696,15 +696,16 @@ |
| 696 | 696 | * Returns are ignored; newlines mean "move to beginning of next line"; |
| 697 | 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 | 711 | * @brief Set string at defined row/column. |
| ... | ... | @@ -713,11 +714,12 @@ |
| 713 | 714 | * @param row Row for the first character. |
| 714 | 715 | * @param col Col for the first character. |
| 715 | 716 | * @param str String to set. |
| 717 | + * @param length Length of the string (-1 for auto-detect). | |
| 716 | 718 | * |
| 717 | 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 | 725 | * @brief Set string at defined adress. | ... | ... |