Lines Matching defs:piece

361     Piece *piece;
417 piece = FindPiece(src, pos, &start);
419 text->ptr = piece->text + (pos - start);
420 count = piece->used - (pos - start);
530 * If empty and not the only piece then remove it.
546 else { /* We are fully in one piece */
651 Piece *piece;
665 piece = FindPiece(src, position, &first);
666 if (piece->used == 0)
669 ptr = (position - first) + piece->text;
672 lim = piece->text + piece->used;
684 piece = piece->next;
685 if (piece == NULL) /* End of text */
687 ptr = piece->text;
688 lim = piece->text + piece->used;
746 lim = piece->text;
758 piece = piece->prev;
759 if (piece == NULL) /* Beginning of text */
761 ptr = piece->text + piece->used - 1;
762 lim = piece->text;
847 Piece *piece;
860 piece = FindPiece(src, position, &first);
861 ptr = (position - first) + piece->text;
883 if (ptr < piece->text) {
885 cnt = (int)(piece->text - ptr);
886 piece = piece->prev;
887 if (piece == NULL) {
891 ptr = piece->text + piece->used - cnt;
892 } while (ptr < piece->text);
896 if (ptr >= (piece->text + piece->used)) {
898 cnt = (int)(ptr - (piece->text + piece->used));
899 piece = piece->next;
900 if (piece == NULL) {
904 ptr = piece->text + cnt;
905 } while (ptr >= (piece->text + piece->used));
930 if (ptr >= (piece->text + piece->used)) {
932 cnt = (int)(ptr - (piece->text + piece->used));
933 piece = piece->next;
934 if (piece == NULL) {
938 ptr = piece->text + cnt;
939 } while (ptr >= (piece->text + piece->used));
943 if (ptr < piece->text) {
945 cnt = (int)(piece->text - ptr);
946 piece = piece->prev;
947 if (piece == NULL) {
951 ptr = piece->text + piece->used - cnt;
952 } while (ptr < piece->text);
1327 Piece *piece;
1331 piece = src->ascii_src.first_piece;
1332 while (piece) {
1333 int bytes = (int)(src->ascii_src.piece_size - piece->used);
1336 if (bytes > 0 && (tmp = piece->next) != NULL) {
1338 memcpy(piece->text + piece->used, tmp->text, (size_t)bytes);
1340 piece->used += bytes;
1346 piece = piece->next;
1353 for (piece = src->ascii_src.first_piece; piece; piece = piece->next)
1354 if (write(fd, piece->text, (size_t)piece->used) == -1) {
1380 Piece *piece;
1384 for (first = 0, piece = src->ascii_src.first_piece ; piece != NULL;
1385 first += piece->used, piece = piece->next)
1386 memcpy(string + first, piece->text, (unsigned)piece->used);
1520 Piece *piece = NULL;
1536 piece = AllocNewPiece(src, piece);
1537 piece->text = ptr;
1538 piece->used = XawMin(len, src->ascii_src.piece_size);
1539 left += piece->used;
1543 piece = AllocNewPiece(src, NULL);
1544 piece->text = XtMalloc((unsigned)src->ascii_src.piece_size);
1545 piece->used = 0;
1554 piece = AllocNewPiece(src, piece);
1555 piece->used = XawMin(src->ascii_src.length, src->ascii_src.piece_size);
1556 piece->text = src->ascii_src.string;
1563 piece = AllocNewPiece(src, piece);
1565 piece->text = XtMalloc((unsigned)src->ascii_src.piece_size);
1566 piece->used = XawMin(left, src->ascii_src.piece_size);
1567 if (piece->used != 0)
1568 memcpy(piece->text, ptr, (unsigned)piece->used);
1570 left -= piece->used;
1571 ptr += piece->used;
1581 * prev - piece just before this one, or NULL
1584 * Allocates a new piece of memory.
1587 * The allocated piece
1592 Piece *piece = XtNew(Piece);
1595 src->ascii_src.first_piece = piece;
1596 piece->next = NULL;
1600 (prev->next)->prev = piece;
1601 piece->next = prev->next;
1602 prev->next = piece;
1605 piece->prev = prev;
1607 return (piece);
1641 * piece - piece to remove
1644 * Removes a piece from the list.
1647 RemovePiece(AsciiSrcObject src, Piece *piece)
1649 if (piece->prev == NULL)
1650 src->ascii_src.first_piece = piece->next;
1652 piece->prev->next = piece->next;
1654 if (piece->next != NULL)
1655 piece->next->prev = piece->prev;
1658 XtFree(piece->text);
1660 XtFree((char *)piece);
1670 * first - position of the first character in this piece (return)
1673 * Finds the piece containing the position indicated.
1676 * the piece that contains this position
1681 Piece *old_piece, *piece;
1684 for (old_piece = NULL, piece = src->ascii_src.first_piece, temp = 0;
1685 piece; old_piece = piece, piece = piece->next)
1686 if ((temp += piece->used) > position) {
1687 *first = temp - piece->used;
1688 return (piece);
1693 return (old_piece); /* if we run off the end the return the last piece */
1702 * piece - piece to break
1705 * Breaks a full piece into two new pieces.
1709 BreakPiece(AsciiSrcObject src, Piece *piece)
1711 Piece *cnew = AllocNewPiece(src, piece);
1714 memcpy(cnew->text, piece->text + HALF_PIECE,
1716 piece->used = HALF_PIECE;