Common subdirectories: screen-4.0.2/doc and screen-orig/doc
Common subdirectories: screen-4.0.2/etc and screen-orig/etc
diff screen-4.0.2/mark.c screen-orig/mark.c
152,200d151
< static int
< nextchar(int *xp, int *yp, int direction, char target, int num)
< {   /* Set *xp to the num-th occurrence of the target in the line. */
< 
<     /* Return EXIT_FAILURE if the target doesn't appear num times.
<     Caller could use that to emit a warning. */
< 
<     int    width;           /* width of the current window. */
<     int    x;               /* x coordinate of the current cursor position. */
<     int    step;            /* amount to increment x (+1 or -1) */
<     int    adjust;          /* Final adjustment of cursor position. */
<     char  *displayed_line;  /* Line in which search takes place. */
< 
<     debug("nextchar\n");
< 
<     x              = *xp;
<     adjust         = 0;
<     width          = fore->w_width;
<     displayed_line = WIN(*yp) -> image;
< 
<     switch(direction) {
<     case 't': adjust = -1; /* fall through */
<     case 'f': step = 1;    /* fall through */
<         break;
<     case 'T': adjust = 1;  /* fall through */
<     case 'F': step = -1;   /* fall through */
<         break;
<     default:
<         ASSERT(0);
<     }
< 
<     x += step;
< 
<     debug1("ml->image = %s\n", displayed_line);
<     debug2("num = %d, width = %d\n",num, width);
<     debug2("x = %d targe = %c\n", x, target );
< 
<     for ( ;x>=0 && x <= width; x += step) {
<         if (displayed_line[x] == target) {
<             if (--num == 0) {
<                 *xp = x + adjust;
<                 return EXIT_SUCCESS;
<             }
<         }
<     }
<     return EXIT_FAILURE;
< }
< 
< 
586,600d536
< 
<       if (markdata -> char_search[0]) {
<         debug2("searching for %c:%d\n",od,rep_cnt);
<         markdata->char_search[0] = 0;  /* Clear the flag. */
<         markdata->rep_cnt = 0;
< 
<         if (isgraph (od)) {
<           markdata->char_search[1] = od;
<           rep_cnt = (rep_cnt) ? rep_cnt : 1;
<           nextchar(&cx, &cy, markdata->char_search[2], od, rep_cnt );
<           revto(cx, cy);
<           continue;
<         }
<       }
< 
603,634d538
<         case 'f': /* fall through */
<         case 'F': /* fall through */
<         case 't': /* fall through */
<         case 'T': /* fall through */
<             markdata -> char_search[0] = markdata->char_search[2] = od;
<             debug("entering char search\n");
<             continue;
<             /* If we break, rep_cnt will be reset, so we
<             continue instead.  It might be cleaner to
<             store the rep_count in char_search and
<             break here so later followon code will be
<             hit. */
<         case ';':
<                 if (!rep_cnt) rep_cnt = 1;
<                 nextchar(&cx, &cy, markdata->char_search[2], markdata->char_search[1], rep_cnt );
<                 revto(cx, cy);
<                 break;
<         case ',': {
<                 int search_dir;
<                 if (!rep_cnt) rep_cnt = 1;
<                 switch (markdata->char_search[2]) {
<                 case 't': search_dir = 'T'; break;
<                 case 'T': search_dir = 't'; break;
<                 case 'f': search_dir = 'F'; break;
<                 case 'F': search_dir = 'f'; break;
<                 }
<                 nextchar(&cx, &cy, search_dir, markdata->char_search[1], rep_cnt );
< 
<                 revto(cx, cy);
<                 break;
<             }
< 
diff screen-4.0.2/mark.h screen-orig/mark.h
44,48d43
<   int	char_search[3];	/* Used for fFtT,; searches: */
<                         /* [0] is set when a search is initiated. */
<                         /* [1] is the character being sought. */
<                         /* [2] is the search type, used to remember
<                                the most recent search for , and ; */
Common subdirectories: screen-4.0.2/terminfo and screen-orig/terminfo
Common subdirectories: screen-4.0.2/utf8encodings and screen-orig/utf8encodings
