Mercurial > vim
diff src/screen.c @ 29:ac33b7c03fac v7.0018
updated for version 7.0018
author | vimboss |
---|---|
date | Mon, 11 Oct 2004 10:16:09 +0000 |
parents | 404aac550f35 |
children | f6033dcbaf31 |
line wrap: on
line diff
--- a/src/screen.c +++ b/src/screen.c @@ -2020,9 +2020,8 @@ fold_line(wp, fold_count, foldinfo, lnum linenr_T lnume = lnum + fold_count - 1; int len; char_u *p; - char_u *text = NULL; + char_u *text; int fdc; - int level; int col; int txtcol; int off = (int)(current_ScreenLine - ScreenLines); @@ -2139,71 +2138,7 @@ fold_line(wp, fold_count, foldinfo, lnum /* * 4. Compose the folded-line string with 'foldtext', if set. */ -#ifdef FEAT_EVAL - if (*wp->w_p_fdt != NUL) - { - char_u dashes[51]; - win_T *save_curwin; - - /* Set "v:foldstart" and "v:foldend". */ - set_vim_var_nr(VV_FOLDSTART, lnum); - set_vim_var_nr(VV_FOLDEND, lnume); - - /* Set "v:folddashes" to a string of "level" dashes. */ - /* Set "v:foldlevel" to "level". */ - level = foldinfo->fi_level; - if (level > 50) - level = 50; - vim_memset(dashes, '-', (size_t)level); - dashes[level] = NUL; - set_vim_var_string(VV_FOLDDASHES, dashes, -1); - set_vim_var_nr(VV_FOLDLEVEL, (long)level); - save_curwin = curwin; - curwin = wp; - curbuf = wp->w_buffer; - - ++emsg_off; - text = eval_to_string_safe(wp->w_p_fdt, NULL); - --emsg_off; - - curwin = save_curwin; - curbuf = curwin->w_buffer; - set_vim_var_string(VV_FOLDDASHES, NULL, -1); - - if (text != NULL) - { - /* Replace unprintable characters, if there are any. But - * replace a TAB with a space. */ - for (p = text; *p != NUL; ++p) - { -#ifdef FEAT_MBYTE - if (has_mbyte && (len = (*mb_ptr2len_check)(p)) > 1) - { - if (!vim_isprintc((*mb_ptr2char)(p))) - break; - p += len - 1; - } - else -#endif - if (*p == TAB) - *p = ' '; - else if (ptr2cells(p) > 1) - break; - } - if (*p != NUL) - { - p = transstr(text); - vim_free(text); - text = p; - } - } - } - if (text == NULL) -#endif - { - sprintf((char *)buf, _("+--%3ld lines folded "), fold_count); - text = buf; - } + text = get_foldtext(wp, lnum, lnume, foldinfo, buf); txtcol = col; /* remember where text starts */