Commit 28296b0c6073e25f400d0ad0531c9bf436dcbe70

Authored by perry.werneck@gmail.com
1 parent 3cfc57fa

wip

Showing 2 changed files with 20 additions and 0 deletions   Show diff stats
src/lib3270/api.h
... ... @@ -91,8 +91,10 @@
91 91 /* Debug & log */
92 92 #if defined( DEBUG )
93 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 95 #else
95 96 #define Trace( fmt, ... ) /* __VA_ARGS__ */
  97 + #define trace( fmt, ... ) /* __VA_ARGS__ */
96 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 437  
438 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 460 return from;
443 461 }
... ...