The text can then be read via the usual file input utilities, or the file itself can be passed off to
another routine or program.
It is, however, useful to be able to directly examine the text in the text subwindow. You can
do this using the TEXTSW_CONTENTS attribute. The code fragment below illustrates how to
use TEXTSW_CONTENTS to get a span of characters from the text subwindow. It gets 1000
characters beginning at position 500 out of the text subwindow and places them into a NULL-
terminated string.
#define TO_READ 1000
char buf[TO_READ+1];
Textsw_index next_pos;
next_pos = (Textsw_index) xv_get(textsw, TEXTSW_CONTENTS, 500,
buf, TO_READ);
if (next_pos != 500+TO_READ) {
/* handle error case */
} else
buf[TO_READ] = ’\0’;
8.4.5 Deleting Text
You can delete a contiguous span of characters from a text subwindow by calling:
Textsw_index
textsw_delete(textsw, first, last_plus_one)
Textsw textsw;
Textsw_index first, last_plus_one;
first specifies the first character of the span that will be deleted; last_plus_one speci-
fies the first character after the span that will not be deleted. first should be less than or
equal to last_plus_one. To delete to the end of the text, pass the special value
TEXTSW_INFINITY for last_plus_one.
The return value is the number of characters deleted or:
last_plus_one - first
unless the specified span is read-only. If the insertion point is in the span being deleted, it
will be left at first.
A side effect of calling textsw_delete() is that the deleted characters become the con-
tents ...