Lines Matching refs:fp
58 static int check_closed(win_T *win, fold_T *fp, int *use_levelp, int level, int *maybe_smallp, line…
59 static void checkSmall(win_T *wp, fold_T *fp, linenr_T lnum_off);
63 static void deleteFoldMarkers(fold_T *fp, int recursive, linenr_T lnum_off);
150 fold_T *fp; in hasFoldingWin() local
192 if (!foldFind(gap, lnum_rel, &fp)) in hasFoldingWin()
196 if (lnum_rel == fp->fd_top && low_level == 0) in hasFoldingWin()
199 first += fp->fd_top; in hasFoldingWin()
200 last += fp->fd_top; in hasFoldingWin()
203 had_folded = check_closed(win, fp, &use_level, level, in hasFoldingWin()
208 last += fp->fd_len - 1; in hasFoldingWin()
214 gap = &fp->fd_nested; in hasFoldingWin()
215 lnum_rel -= fp->fd_top; in hasFoldingWin()
494 fold_T *fp; in newFoldLevelWin() local
503 fp = (fold_T *)wp->w_folds.ga_data; in newFoldLevelWin()
505 fp[i].fd_flags = FD_LEVEL; in newFoldLevelWin()
531 fold_T *fp; in checkCloseRec() local
535 fp = (fold_T *)gap->ga_data; in checkCloseRec()
539 if (fp[i].fd_flags == FD_OPEN) in checkCloseRec()
541 if (level <= 0 && (lnum < fp[i].fd_top in checkCloseRec()
542 || lnum >= fp[i].fd_top + fp[i].fd_len)) in checkCloseRec()
544 fp[i].fd_flags = FD_LEVEL; in checkCloseRec()
548 retval |= checkCloseRec(&fp[i].fd_nested, lnum - fp[i].fd_top, in checkCloseRec()
580 fold_T *fp; in foldCreate() local
617 if (!foldFind(gap, start_rel, &fp)) in foldCreate()
619 if (fp->fd_top + fp->fd_len > end_rel) in foldCreate()
623 gap = &fp->fd_nested; in foldCreate()
624 start_rel -= fp->fd_top; in foldCreate()
625 end_rel -= fp->fd_top; in foldCreate()
626 if (use_level || fp->fd_flags == FD_LEVEL) in foldCreate()
632 else if (fp->fd_flags == FD_CLOSED) in foldCreate()
646 i = (int)(fp - (fold_T *)gap->ga_data); in foldCreate()
651 fp = (fold_T *)gap->ga_data + i; in foldCreate()
656 if (fp[cont].fd_top > end_rel) in foldCreate()
662 if (start_rel > fp->fd_top) in foldCreate()
663 start_rel = fp->fd_top; in foldCreate()
667 if (end_rel < fp[cont - 1].fd_top + fp[cont - 1].fd_len - 1) in foldCreate()
668 end_rel = fp[cont - 1].fd_top + fp[cont - 1].fd_len - 1; in foldCreate()
670 mch_memmove(fold_ga.ga_data, fp, sizeof(fold_T) * cont); in foldCreate()
681 mch_memmove(fp + 1, (fold_T *)gap->ga_data + i, in foldCreate()
686 fp->fd_nested = fold_ga; in foldCreate()
687 fp->fd_top = start_rel; in foldCreate()
688 fp->fd_len = end_rel - start_rel + 1; in foldCreate()
696 fp->fd_flags = FD_CLOSED; in foldCreate()
697 fp->fd_small = MAYBE; in foldCreate()
718 fold_T *fp; in deleteFold() local
742 if (!foldFind(gap, lnum - lnum_off, &fp)) in deleteFold()
746 found_fp = fp; in deleteFold()
750 if (check_closed(curwin, fp, &use_level, level, in deleteFold()
755 gap = &fp->fd_nested; in deleteFold()
756 lnum_off += fp->fd_top; in deleteFold()
822 fold_T *fp; in foldUpdate() local
835 (void)foldFind(&wp->w_folds, top, &fp); in foldUpdate()
836 while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len in foldUpdate()
837 && fp->fd_top < bot) in foldUpdate()
839 fp->fd_small = MAYBE; in foldUpdate()
840 ++fp; in foldUpdate()
895 fold_T *fp; in foldMoveTo() local
917 if (!foldFind(gap, curwin->w_cursor.lnum - lnum_off, &fp)) in foldMoveTo()
926 if (fp - (fold_T *)gap->ga_data >= gap->ga_len) in foldMoveTo()
928 --fp; in foldMoveTo()
932 if (fp == (fold_T *)gap->ga_data) in foldMoveTo()
943 if (check_closed(curwin, fp, &use_level, level, in foldMoveTo()
957 if (fp + 1 - (fold_T *)gap->ga_data < gap->ga_len) in foldMoveTo()
959 lnum = fp[1].fd_top + lnum_off; in foldMoveTo()
967 if (fp > (fold_T *)gap->ga_data) in foldMoveTo()
969 lnum = fp[-1].fd_top + lnum_off + fp[-1].fd_len - 1; in foldMoveTo()
981 lnum = fp->fd_top + lnum_off + fp->fd_len - 1; in foldMoveTo()
987 lnum = fp->fd_top + lnum_off; in foldMoveTo()
997 gap = &fp->fd_nested; in foldMoveTo()
998 lnum_off += fp->fd_top; in foldMoveTo()
1141 fold_T *fp; in foldFind() local
1155 fp = (fold_T *)gap->ga_data; in foldFind()
1161 if (fp[i].fd_top > lnum) in foldFind()
1164 else if (fp[i].fd_top + fp[i].fd_len <= lnum) in foldFind()
1170 *fpp = fp + i; in foldFind()
1174 *fpp = fp + low; in foldFind()
1185 fold_T *fp; in foldLevelWin() local
1194 if (!foldFind(gap, lnum_rel, &fp)) in foldLevelWin()
1197 gap = &fp->fd_nested; in foldLevelWin()
1198 lnum_rel -= fp->fd_top; in foldLevelWin()
1299 fold_T *fp; in setManualFoldWin() local
1319 if (!foldFind(gap, lnum, &fp)) in setManualFoldWin()
1322 if (fp != NULL && fp < (fold_T *)gap->ga_data + gap->ga_len) in setManualFoldWin()
1323 next = fp->fd_top + off; in setManualFoldWin()
1331 if (fp + 1 < (fold_T *)gap->ga_data + gap->ga_len) in setManualFoldWin()
1332 next = fp[1].fd_top + off; in setManualFoldWin()
1335 if (use_level || fp->fd_flags == FD_LEVEL) in setManualFoldWin()
1339 fp->fd_flags = FD_CLOSED; in setManualFoldWin()
1341 fp->fd_flags = FD_OPEN; in setManualFoldWin()
1342 fp2 = (fold_T *)fp->fd_nested.ga_data; in setManualFoldWin()
1343 for (j = 0; j < fp->fd_nested.ga_len; ++j) in setManualFoldWin()
1350 if (fp->fd_flags != FD_CLOSED) in setManualFoldWin()
1353 fp->fd_flags = FD_CLOSED; in setManualFoldWin()
1356 else if (fp->fd_flags == FD_CLOSED) in setManualFoldWin()
1361 fp->fd_flags = FD_OPEN; in setManualFoldWin()
1364 foldOpenNested(fp); in setManualFoldWin()
1370 found = fp; in setManualFoldWin()
1371 gap = &fp->fd_nested; in setManualFoldWin()
1372 lnum -= fp->fd_top; in setManualFoldWin()
1373 off += fp->fd_top; in setManualFoldWin()
1406 fold_T *fp; in foldOpenNested() local
1408 fp = (fold_T *)fpr->fd_nested.ga_data; in foldOpenNested()
1411 foldOpenNested(&fp[i]); in foldOpenNested()
1412 fp[i].fd_flags = FD_OPEN; in foldOpenNested()
1425 fold_T *fp; in deleteFoldEntry() local
1430 fp = (fold_T *)gap->ga_data + idx; in deleteFoldEntry()
1431 if (recursive || fp->fd_nested.ga_len == 0) in deleteFoldEntry()
1434 deleteFoldRecurse(&fp->fd_nested); in deleteFoldEntry()
1437 mch_memmove(fp, fp + 1, sizeof(fold_T) * (gap->ga_len - idx)); in deleteFoldEntry()
1443 moved = fp->fd_nested.ga_len; in deleteFoldEntry()
1447 fp = (fold_T *)gap->ga_data + idx; in deleteFoldEntry()
1450 nfp = (fold_T *)fp->fd_nested.ga_data; in deleteFoldEntry()
1453 nfp[i].fd_top += fp->fd_top; in deleteFoldEntry()
1454 if (fp->fd_flags == FD_LEVEL) in deleteFoldEntry()
1456 if (fp->fd_small == MAYBE) in deleteFoldEntry()
1462 mch_memmove(fp + moved, fp + 1, in deleteFoldEntry()
1465 mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved)); in deleteFoldEntry()
1518 fold_T *fp; in foldMarkAdjustRecurse() local
1534 (void)foldFind(gap, line1, &fp); in foldMarkAdjustRecurse()
1539 for (i = (int)(fp - (fold_T *)gap->ga_data); i < gap->ga_len; ++i, ++fp) in foldMarkAdjustRecurse()
1553 last = fp->fd_top + fp->fd_len - 1; // last line of fold in foldMarkAdjustRecurse()
1560 if (fp->fd_top > line2) in foldMarkAdjustRecurse()
1564 fp->fd_top += amount_after; in foldMarkAdjustRecurse()
1568 if (fp->fd_top >= top && last <= line2) in foldMarkAdjustRecurse()
1576 --fp; in foldMarkAdjustRecurse()
1579 fp->fd_top += amount; in foldMarkAdjustRecurse()
1583 if (fp->fd_top < top) in foldMarkAdjustRecurse()
1586 foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top, in foldMarkAdjustRecurse()
1587 line2 - fp->fd_top, amount, amount_after); in foldMarkAdjustRecurse()
1592 fp->fd_len = line1 - fp->fd_top; in foldMarkAdjustRecurse()
1594 fp->fd_len += amount; in foldMarkAdjustRecurse()
1599 fp->fd_len += amount_after; in foldMarkAdjustRecurse()
1608 foldMarkAdjustRecurse(&fp->fd_nested, in foldMarkAdjustRecurse()
1609 line1 - fp->fd_top, in foldMarkAdjustRecurse()
1610 line2 - fp->fd_top, in foldMarkAdjustRecurse()
1612 amount_after + (fp->fd_top - top)); in foldMarkAdjustRecurse()
1613 fp->fd_len -= line2 - fp->fd_top + 1; in foldMarkAdjustRecurse()
1614 fp->fd_top = line1; in foldMarkAdjustRecurse()
1618 foldMarkAdjustRecurse(&fp->fd_nested, in foldMarkAdjustRecurse()
1619 line1 - fp->fd_top, in foldMarkAdjustRecurse()
1620 line2 - fp->fd_top, in foldMarkAdjustRecurse()
1623 fp->fd_len += amount_after - amount; in foldMarkAdjustRecurse()
1624 fp->fd_top += amount; in foldMarkAdjustRecurse()
1650 fold_T *fp; in getDeepestNestingRecurse() local
1652 fp = (fold_T *)gap->ga_data; in getDeepestNestingRecurse()
1655 level = getDeepestNestingRecurse(&fp[i].fd_nested) + 1; in getDeepestNestingRecurse()
1670 fold_T *fp, in check_closed() argument
1680 if (*use_levelp || fp->fd_flags == FD_LEVEL) in check_closed()
1686 else if (fp->fd_flags == FD_CLOSED) in check_closed()
1690 if (fp->fd_small == MAYBE) in check_closed()
1695 fp->fd_small = MAYBE; in check_closed()
1696 checkSmall(win, fp, lnum_off); in check_closed()
1697 if (fp->fd_small == TRUE) in check_closed()
1710 fold_T *fp, in checkSmall() argument
1716 if (fp->fd_small == MAYBE) in checkSmall()
1719 setSmallMaybe(&fp->fd_nested); in checkSmall()
1721 if (fp->fd_len > curwin->w_p_fml) in checkSmall()
1722 fp->fd_small = FALSE; in checkSmall()
1726 for (n = 0; n < fp->fd_len; ++n) in checkSmall()
1728 count += plines_win_nofold(wp, fp->fd_top + lnum_off + n); in checkSmall()
1731 fp->fd_small = FALSE; in checkSmall()
1735 fp->fd_small = TRUE; in checkSmall()
1748 fold_T *fp; in setSmallMaybe() local
1750 fp = (fold_T *)gap->ga_data; in setSmallMaybe()
1752 fp[i].fd_small = MAYBE; in setSmallMaybe()
1824 fold_T *fp, in deleteFoldMarkers() argument
1831 for (i = 0; i < fp->fd_nested.ga_len; ++i) in deleteFoldMarkers()
1832 deleteFoldMarkers((fold_T *)fp->fd_nested.ga_data + i, TRUE, in deleteFoldMarkers()
1833 lnum_off + fp->fd_top); in deleteFoldMarkers()
1834 foldDelMarker(fp->fd_top + lnum_off, curwin->w_p_fmr, foldstartmarkerlen); in deleteFoldMarkers()
1835 foldDelMarker(fp->fd_top + lnum_off + fp->fd_len - 1, in deleteFoldMarkers()
2154 fold_T *fp; in foldUpdateIEMS() local
2319 && foldFind(&wp->w_folds, end, &fp) in foldUpdateIEMS()
2320 && fp->fd_top + fp->fd_len - 1 > end) in foldUpdateIEMS()
2322 && foldFind(&wp->w_folds, fline.lnum, &fp) in foldUpdateIEMS()
2323 && fp->fd_top < fline.lnum)) in foldUpdateIEMS()
2324 end = fp->fd_top + fp->fd_len - 1; in foldUpdateIEMS()
2410 fold_T *fp = NULL; in foldUpdateIEMSRecurse() local
2429 (void)foldFind(gap, startlnum - 1, &fp); in foldUpdateIEMSRecurse()
2430 if (fp != NULL && (fp >= ((fold_T *)gap->ga_data) + gap->ga_len in foldUpdateIEMSRecurse()
2431 || fp->fd_top >= startlnum)) in foldUpdateIEMSRecurse()
2432 fp = NULL; in foldUpdateIEMSRecurse()
2463 if (flp->lnum > bot && !finish && fp != NULL) in foldUpdateIEMSRecurse()
2475 fp2 = fp; in foldUpdateIEMSRecurse()
2481 ll = flp->lnum - fp->fd_top; in foldUpdateIEMSRecurse()
2490 (void)foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); in foldUpdateIEMSRecurse()
2492 bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top; in foldUpdateIEMSRecurse()
2494 else if (fp->fd_top + fp->fd_len <= flp->lnum && lvl >= level) in foldUpdateIEMSRecurse()
2503 if (fp == NULL in foldUpdateIEMSRecurse()
2526 if (gap->ga_len > 0 && (foldFind(gap, startlnum, &fp) in foldUpdateIEMSRecurse()
2527 || (fp < ((fold_T *)gap->ga_data) + gap->ga_len in foldUpdateIEMSRecurse()
2528 && fp->fd_top <= firstlnum) in foldUpdateIEMSRecurse()
2529 || foldFind(gap, firstlnum - concat, &fp) in foldUpdateIEMSRecurse()
2530 || (fp < ((fold_T *)gap->ga_data) + gap->ga_len in foldUpdateIEMSRecurse()
2531 && ((lvl < level && fp->fd_top < flp->lnum) in foldUpdateIEMSRecurse()
2533 && fp->fd_top <= flp->lnum_save))))) in foldUpdateIEMSRecurse()
2535 if (fp->fd_top + fp->fd_len + concat > firstlnum) in foldUpdateIEMSRecurse()
2541 if (fp->fd_top == firstlnum) in foldUpdateIEMSRecurse()
2545 else if (fp->fd_top >= startlnum) in foldUpdateIEMSRecurse()
2547 if (fp->fd_top > firstlnum) in foldUpdateIEMSRecurse()
2549 foldMarkAdjustRecurse(&fp->fd_nested, in foldUpdateIEMSRecurse()
2551 (long)(fp->fd_top - firstlnum), 0L); in foldUpdateIEMSRecurse()
2554 foldMarkAdjustRecurse(&fp->fd_nested, in foldUpdateIEMSRecurse()
2556 (long)(firstlnum - fp->fd_top - 1), in foldUpdateIEMSRecurse()
2558 (long)(fp->fd_top - firstlnum)); in foldUpdateIEMSRecurse()
2559 fp->fd_len += fp->fd_top - firstlnum; in foldUpdateIEMSRecurse()
2560 fp->fd_top = firstlnum; in foldUpdateIEMSRecurse()
2595 foldRemove(&fp->fd_nested, breakstart - fp->fd_top, in foldUpdateIEMSRecurse()
2596 breakend - fp->fd_top); in foldUpdateIEMSRecurse()
2597 i = (int)(fp - (fold_T *)gap->ga_data); in foldUpdateIEMSRecurse()
2599 fp = (fold_T *)gap->ga_data + i + 1; in foldUpdateIEMSRecurse()
2610 if (fp->fd_top == startlnum && concat) in foldUpdateIEMSRecurse()
2612 i = (int)(fp - (fold_T *)gap->ga_data); in foldUpdateIEMSRecurse()
2615 fp2 = fp - 1; in foldUpdateIEMSRecurse()
2616 if (fp2->fd_top + fp2->fd_len == fp->fd_top) in foldUpdateIEMSRecurse()
2618 foldMerge(fp2, gap, fp); in foldUpdateIEMSRecurse()
2619 fp = fp2; in foldUpdateIEMSRecurse()
2625 if (fp->fd_top >= startlnum) in foldUpdateIEMSRecurse()
2631 (int)(fp - (fold_T *)gap->ga_data), TRUE); in foldUpdateIEMSRecurse()
2637 fp->fd_len = startlnum - fp->fd_top; in foldUpdateIEMSRecurse()
2638 foldMarkAdjustRecurse(&fp->fd_nested, in foldUpdateIEMSRecurse()
2639 (linenr_T)fp->fd_len, (linenr_T)MAXLNUM, in foldUpdateIEMSRecurse()
2651 i = (int)(fp - (fold_T *)gap->ga_data); in foldUpdateIEMSRecurse()
2654 fp = (fold_T *)gap->ga_data + i; in foldUpdateIEMSRecurse()
2657 fp->fd_top = firstlnum; in foldUpdateIEMSRecurse()
2658 fp->fd_len = bot - firstlnum + 1; in foldUpdateIEMSRecurse()
2665 fp->fd_flags = FD_OPEN; in foldUpdateIEMSRecurse()
2669 fp->fd_flags = topflags; in foldUpdateIEMSRecurse()
2674 fp->fd_flags = (fp - 1)->fd_flags; in foldUpdateIEMSRecurse()
2675 fp->fd_small = MAYBE; in foldUpdateIEMSRecurse()
2701 if (lvl > level && fp != NULL) in foldUpdateIEMSRecurse()
2712 flp->lnum = flp->lnum_save - fp->fd_top; in foldUpdateIEMSRecurse()
2713 flp->off += fp->fd_top; in foldUpdateIEMSRecurse()
2714 i = (int)(fp - (fold_T *)gap->ga_data); in foldUpdateIEMSRecurse()
2715 bot = foldUpdateIEMSRecurse(&fp->fd_nested, level + 1, in foldUpdateIEMSRecurse()
2716 startlnum2 - fp->fd_top, flp, getlevel, in foldUpdateIEMSRecurse()
2717 bot - fp->fd_top, fp->fd_flags); in foldUpdateIEMSRecurse()
2718 fp = (fold_T *)gap->ga_data + i; in foldUpdateIEMSRecurse()
2719 flp->lnum += fp->fd_top; in foldUpdateIEMSRecurse()
2720 flp->lnum_save += fp->fd_top; in foldUpdateIEMSRecurse()
2721 flp->off -= fp->fd_top; in foldUpdateIEMSRecurse()
2722 bot += fp->fd_top; in foldUpdateIEMSRecurse()
2761 if (fp == NULL) // only happens when got_int is set in foldUpdateIEMSRecurse()
2771 if (fp->fd_len < flp->lnum - fp->fd_top) in foldUpdateIEMSRecurse()
2773 fp->fd_len = flp->lnum - fp->fd_top; in foldUpdateIEMSRecurse()
2774 fp->fd_small = MAYBE; in foldUpdateIEMSRecurse()
2777 else if (fp->fd_top + fp->fd_len > linecount) in foldUpdateIEMSRecurse()
2779 fp->fd_len = linecount - fp->fd_top + 1; in foldUpdateIEMSRecurse()
2783 foldRemove(&fp->fd_nested, startlnum2 - fp->fd_top, in foldUpdateIEMSRecurse()
2784 flp->lnum - 1 - fp->fd_top); in foldUpdateIEMSRecurse()
2789 if (fp->fd_len != flp->lnum - fp->fd_top) in foldUpdateIEMSRecurse()
2791 if (fp->fd_top + fp->fd_len - 1 > bot) in foldUpdateIEMSRecurse()
2800 bot = fp->fd_top + fp->fd_len - 1; in foldUpdateIEMSRecurse()
2801 fp->fd_len = flp->lnum - fp->fd_top; in foldUpdateIEMSRecurse()
2807 i = (int)(fp - (fold_T *)gap->ga_data); in foldUpdateIEMSRecurse()
2809 fp = (fold_T *)gap->ga_data + i; in foldUpdateIEMSRecurse()
2813 fp->fd_len = flp->lnum - fp->fd_top; in foldUpdateIEMSRecurse()
2821 fp2 = fp + 1; in foldUpdateIEMSRecurse()
2841 foldMerge(fp, gap, fp2); in foldUpdateIEMSRecurse()
2865 fold_T *fp; in foldInsert() local
2869 fp = (fold_T *)gap->ga_data + i; in foldInsert()
2871 mch_memmove(fp + 1, fp, sizeof(fold_T) * (gap->ga_len - i)); in foldInsert()
2873 ga_init2(&fp->fd_nested, (int)sizeof(fold_T), 10); in foldInsert()
2892 fold_T *fp; in foldSplit() local
2902 fp = (fold_T *)gap->ga_data + i; in foldSplit()
2903 fp[1].fd_top = bot + 1; in foldSplit()
2904 fp[1].fd_len = fp->fd_len - (fp[1].fd_top - fp->fd_top); in foldSplit()
2905 fp[1].fd_flags = fp->fd_flags; in foldSplit()
2906 fp[1].fd_small = MAYBE; in foldSplit()
2907 fp->fd_small = MAYBE; in foldSplit()
2911 gap1 = &fp->fd_nested; in foldSplit()
2912 gap2 = &fp[1].fd_nested; in foldSplit()
2913 if (foldFind(gap1, bot + 1 - fp->fd_top, &fp2)) in foldSplit()
2922 -= fp[1].fd_top - fp->fd_top; in foldSplit()
2928 fp->fd_len = top - fp->fd_top; in foldSplit()
2954 fold_T *fp = NULL; in foldRemove() local
2962 if (foldFind(gap, top, &fp) && fp->fd_top < top) in foldRemove()
2965 foldRemove(&fp->fd_nested, top - fp->fd_top, bot - fp->fd_top); in foldRemove()
2966 if (fp->fd_top + fp->fd_len - 1 > bot) in foldRemove()
2969 foldSplit(gap, (int)(fp - (fold_T *)gap->ga_data), top, bot); in foldRemove()
2974 fp->fd_len = top - fp->fd_top; in foldRemove()
2979 if (fp >= (fold_T *)(gap->ga_data) + gap->ga_len in foldRemove()
2980 || fp->fd_top > bot) in foldRemove()
2985 if (fp->fd_top >= top) in foldRemove()
2989 if (fp->fd_top + fp->fd_len - 1 > bot) in foldRemove()
2992 foldMarkAdjustRecurse(&fp->fd_nested, in foldRemove()
2993 (linenr_T)0, (long)(bot - fp->fd_top), in foldRemove()
2994 (linenr_T)MAXLNUM, (long)(fp->fd_top - bot - 1)); in foldRemove()
2995 fp->fd_len -= bot - fp->fd_top + 1; in foldRemove()
2996 fp->fd_top = bot + 1; in foldRemove()
3001 deleteFoldEntry(gap, (int)(fp - (fold_T *)gap->ga_data), TRUE); in foldRemove()
3059 truncate_fold(fold_T *fp, linenr_T end) in truncate_fold() argument
3062 foldRemove(&fp->fd_nested, end - fp->fd_top, MAXLNUM); in truncate_fold()
3063 fp->fd_len = end - fp->fd_top; in truncate_fold()
3066 #define fold_end(fp) ((fp)->fd_top + (fp)->fd_len - 1) argument
3067 #define valid_fold(fp, gap) ((gap)->ga_len > 0 && (fp) < ((fold_T *)(gap)->ga_data + (gap)->ga_len)) argument
3068 #define fold_index(fp, gap) ((size_t)(fp - ((fold_T *)(gap)->ga_data))) argument
3073 fold_T *fp; in foldMoveRange() local
3076 int at_start = foldFind(gap, line1 - 1, &fp); in foldMoveRange()
3081 if (fold_end(fp) > dest) in foldMoveRange()
3085 foldMoveRange(&fp->fd_nested, line1 - fp->fd_top, line2 - in foldMoveRange()
3086 fp->fd_top, dest - fp->fd_top); in foldMoveRange()
3089 else if (fold_end(fp) > line2) in foldMoveRange()
3095 foldMarkAdjustRecurse(&fp->fd_nested, line1 - fp->fd_top, line2 - in foldMoveRange()
3096 fp->fd_top, MAXLNUM, -range_len); in foldMoveRange()
3097 fp->fd_len -= range_len; in foldMoveRange()
3101 truncate_fold(fp, line1 - 1); in foldMoveRange()
3105 fp = fp + 1; in foldMoveRange()
3108 if (!valid_fold(fp, gap) || fp->fd_top > dest) in foldMoveRange()
3114 else if (fp->fd_top > line2) in foldMoveRange()
3116 for (; valid_fold(fp, gap) && fold_end(fp) <= dest; fp++) in foldMoveRange()
3118 fp->fd_top -= range_len; in foldMoveRange()
3120 if (valid_fold(fp, gap) && fp->fd_top <= dest) in foldMoveRange()
3123 truncate_fold(fp, dest); in foldMoveRange()
3124 fp->fd_top -= range_len; in foldMoveRange()
3128 else if (fold_end(fp) > dest) in foldMoveRange()
3131 foldMarkAdjustRecurse(&fp->fd_nested, line2 + 1 - fp->fd_top, dest - in foldMoveRange()
3132 fp->fd_top, MAXLNUM, -move_len); in foldMoveRange()
3133 fp->fd_len -= move_len; in foldMoveRange()
3134 fp->fd_top += move_len; in foldMoveRange()
3141 move_start = fold_index(fp, gap); in foldMoveRange()
3143 for (; valid_fold(fp, gap) && fp->fd_top <= dest; fp++) in foldMoveRange()
3145 if (fp->fd_top <= line2) in foldMoveRange()
3148 if (fold_end(fp) > line2) in foldMoveRange()
3150 truncate_fold(fp, line2); in foldMoveRange()
3152 fp->fd_top += move_len; in foldMoveRange()
3158 move_end = fold_index(fp, gap); in foldMoveRange()
3160 if (fold_end(fp) > dest) in foldMoveRange()
3161 truncate_fold(fp, dest); in foldMoveRange()
3163 fp->fd_top -= range_len; in foldMoveRange()
3166 dest_index = fold_index(fp, gap); in foldMoveRange()
3517 static int put_fold_open_close(FILE *fd, fold_T *fp, linenr_T off);
3550 fold_T *fp; in put_folds_recurse() local
3552 fp = (fold_T *)gap->ga_data; in put_folds_recurse()
3556 if (put_folds_recurse(fd, &fp->fd_nested, off + fp->fd_top) == FAIL) in put_folds_recurse()
3558 if (fprintf(fd, "%ld,%ldfold", fp->fd_top + off, in put_folds_recurse()
3559 fp->fd_top + off + fp->fd_len - 1) < 0 in put_folds_recurse()
3562 ++fp; in put_folds_recurse()
3581 fold_T *fp; in put_foldopen_recurse() local
3583 fp = (fold_T *)gap->ga_data; in put_foldopen_recurse()
3586 if (fp->fd_flags != FD_LEVEL) in put_foldopen_recurse()
3588 if (fp->fd_nested.ga_len > 0) in put_foldopen_recurse()
3591 if (fprintf(fd, "%ld", fp->fd_top + off) < 0 in put_foldopen_recurse()
3595 if (put_foldopen_recurse(fd, wp, &fp->fd_nested, in put_foldopen_recurse()
3596 off + fp->fd_top) in put_foldopen_recurse()
3600 if (fp->fd_flags == FD_CLOSED) in put_foldopen_recurse()
3602 if (put_fold_open_close(fd, fp, off) == FAIL) in put_foldopen_recurse()
3611 level = foldLevelWin(wp, off + fp->fd_top); in put_foldopen_recurse()
3612 if ((fp->fd_flags == FD_CLOSED && wp->w_p_fdl >= level) in put_foldopen_recurse()
3613 || (fp->fd_flags != FD_CLOSED && wp->w_p_fdl < level)) in put_foldopen_recurse()
3614 if (put_fold_open_close(fd, fp, off) == FAIL) in put_foldopen_recurse()
3618 ++fp; in put_foldopen_recurse()
3630 put_fold_open_close(FILE *fd, fold_T *fp, linenr_T off) in put_fold_open_close() argument
3632 if (fprintf(fd, "%ld", fp->fd_top + off) < 0 in put_fold_open_close()
3635 fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0 in put_fold_open_close()