Commit 28296b0c6073e25f400d0ad0531c9bf436dcbe70
1 parent
3cfc57fa
Exists in
master
and in
5 other branches
wip
Showing
2 changed files
with
20 additions
and
0 deletions
Show diff stats
src/lib3270/api.h
@@ -91,8 +91,10 @@ | @@ -91,8 +91,10 @@ | ||
91 | /* Debug & log */ | 91 | /* Debug & log */ |
92 | #if defined( DEBUG ) | 92 | #if defined( DEBUG ) |
93 | #define Trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | 93 | #define Trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); |
94 | + #define trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | ||
94 | #else | 95 | #else |
95 | #define Trace( fmt, ... ) /* __VA_ARGS__ */ | 96 | #define Trace( fmt, ... ) /* __VA_ARGS__ */ |
97 | + #define trace( fmt, ... ) /* __VA_ARGS__ */ | ||
96 | #endif | 98 | #endif |
97 | 99 | ||
98 | 100 |
src/lib3270/selection.c
@@ -437,7 +437,25 @@ LIB3270_EXPORT int lib3270_get_selected_addr(H3270 *hSession, int *begin, int *e | @@ -437,7 +437,25 @@ LIB3270_EXPORT int lib3270_get_selected_addr(H3270 *hSession, int *begin, int *e | ||
437 | 437 | ||
438 | LIB3270_EXPORT int lib3270_move_selected_area(H3270 *hSession, int from, int to) | 438 | LIB3270_EXPORT int lib3270_move_selected_area(H3270 *hSession, int from, int to) |
439 | { | 439 | { |
440 | + int step = (to - from); | ||
441 | + int first, last, pos, len; | ||
440 | 442 | ||
443 | + if(lib3270_get_selected_addr(hSession,&first,&last)) | ||
444 | + return from; | ||
445 | + | ||
446 | + len = hSession->rows * hSession->cols; | ||
447 | + | ||
448 | + pos = first+step; | ||
449 | + trace("first=%d pos=%d step=%d",first,pos,step); | ||
450 | + if(pos < 0) | ||
451 | + step -= pos; | ||
452 | + | ||
453 | + pos = last+step; | ||
454 | + if(pos > len) | ||
455 | + step -= (pos - len); | ||
456 | + | ||
457 | + | ||
458 | + trace("%s step=%d",__FUNCTION__,step); | ||
441 | 459 | ||
442 | return from; | 460 | return from; |
443 | } | 461 | } |