/* text.c */ #include #include #include "globaldefs.h" #include "text.h" /* returns position'th character in text---undefined results (probably seg faults) for out-of-boundary requests */ char TextGetChar(scrolledtext, position) Widget scrolledtext; XmTextPosition position ; { TextUserData *textu = GetUserData(scrolledtext) ; if (textu->filtered) return (textu->filtered[position]) ; else/* if (textu->original)*/ return (textu->original[position]) ; /* else return (' ') ;*/ } TextUserData *GetUserData(scrolledtext) Widget scrolledtext ; { TextUserData *textu ; XtVaGetValues(scrolledtext, XmNuserData, &textu, NULL) ; return (textu) ; } /* Show position pos+n in scrolledtext. If there is a newline between pos and pos+n, stop there. */ void ShowNext(scrolledtext, pos, n) Widget scrolledtext ; XmTextPosition pos ; int n ; { int i ; if (pos+n > XmTextGetLastPosition(scrolledtext)) n = XmTextGetLastPosition(scrolledtext) - pos ; for (i = 0 ; i <= n ; i++) if (TextGetChar(scrolledtext, pos+i) == '\n') { break ; } XmTextShowPosition(scrolledtext, pos) ; XmTextShowPosition(scrolledtext, pos+i) ; }