Lines Matching refs:fi
1610 forinfo_T *fi; in eval_for_line() local
1619 fi = ALLOC_CLEAR_ONE(forinfo_T); in eval_for_line()
1620 if (fi == NULL) in eval_for_line()
1623 var_list_end = skip_var_list(arg, TRUE, &fi->fi_varcount, in eval_for_line()
1624 &fi->fi_semicolon, FALSE); in eval_for_line()
1626 return fi; in eval_for_line()
1636 return fi; in eval_for_line()
1662 fi->fi_list = l; in eval_for_line()
1663 list_add_watch(l, &fi->fi_lw); in eval_for_line()
1664 fi->fi_lw.lw_item = l->lv_first; in eval_for_line()
1669 fi->fi_bi = 0; in eval_for_line()
1677 fi->fi_blob = btv.vval.v_blob; in eval_for_line()
1683 fi->fi_byte_idx = 0; in eval_for_line()
1684 fi->fi_string = tv.vval.v_string; in eval_for_line()
1686 if (fi->fi_string == NULL) in eval_for_line()
1687 fi->fi_string = vim_strsave((char_u *)""); in eval_for_line()
1698 fi->fi_break_count = evalarg->eval_break_count; in eval_for_line()
1700 return fi; in eval_for_line()
1709 forinfo_T *fi = (forinfo_T *)fi_void; in skip_for_lines() local
1712 for (i = 0; i < fi->fi_break_count; ++i) in skip_for_lines()
1725 forinfo_T *fi = (forinfo_T *)fi_void; in next_for_item() local
1730 | (fi->fi_bi == 0 ? 0 : ASSIGN_DECL) in next_for_item()
1737 if (fi->fi_blob != NULL) in next_for_item()
1741 if (fi->fi_bi >= blob_len(fi->fi_blob)) in next_for_item()
1745 tv.vval.v_number = blob_get(fi->fi_blob, fi->fi_bi); in next_for_item()
1746 ++fi->fi_bi; in next_for_item()
1749 return ex_let_vars(arg, &tv, TRUE, fi->fi_semicolon, in next_for_item()
1750 fi->fi_varcount, flag, NULL) == OK; in next_for_item()
1753 if (fi->fi_string != NULL) in next_for_item()
1758 len = mb_ptr2len(fi->fi_string + fi->fi_byte_idx); in next_for_item()
1763 tv.vval.v_string = vim_strnsave(fi->fi_string + fi->fi_byte_idx, len); in next_for_item()
1764 fi->fi_byte_idx += len; in next_for_item()
1765 ++fi->fi_bi; in next_for_item()
1769 result = ex_let_vars(arg, &tv, TRUE, fi->fi_semicolon, in next_for_item()
1770 fi->fi_varcount, flag, NULL) == OK; in next_for_item()
1775 item = fi->fi_lw.lw_item; in next_for_item()
1780 fi->fi_lw.lw_item = item->li_next; in next_for_item()
1781 ++fi->fi_bi; in next_for_item()
1785 result = (ex_let_vars(arg, &item->li_tv, TRUE, fi->fi_semicolon, in next_for_item()
1786 fi->fi_varcount, flag, NULL) == OK); in next_for_item()
1797 forinfo_T *fi = (forinfo_T *)fi_void; in free_for_info() local
1799 if (fi == NULL) in free_for_info()
1801 if (fi->fi_list != NULL) in free_for_info()
1803 list_rem_watch(fi->fi_list, &fi->fi_lw); in free_for_info()
1804 list_unref(fi->fi_list); in free_for_info()
1806 else if (fi->fi_blob != NULL) in free_for_info()
1807 blob_unref(fi->fi_blob); in free_for_info()
1809 vim_free(fi->fi_string); in free_for_info()
1810 vim_free(fi); in free_for_info()