Hi Yue,

2013/08/19 Mon 10:51:08 UTC+9 WU Yue wrote:
> Hi list,
> 
>    If I :set encoding=utf-8, then the file name completion with Chinese  
> charactors doesn't work.
> 
>    I use utf-8 instead of the default encoding (cp936) on windows, the  
> reason is that, encoding utf-8 can distinguish Chinese punctuations in  
> word motions.
> 
>    Platform: Windows XP.
>    Affected version of vim: all versions
> 
>    How to produce:
>      1. set encoding=utf-8 in vimrc, then restart vim.
>      2. creat a new file with Chinese name:
>         :call mkdir("c:/中文名/中文名2")
>      2. At a vim buffer, insert text: c:/中, then try to complete it with  
> <C-x><C-f>, completion will say: Pattern not found. However, c:/<C-x><C-f>  
> work.

I think attached patch fixes this problem.

Regards,
Ken Takata

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
# HG changeset patch
# Parent 561e223412ae790fc893722a3ae4c1989567fb73
diff --git a/src/edit.c b/src/edit.c
--- a/src/edit.c
+++ b/src/edit.c
@@ -5184,8 +5184,13 @@
 	}
 	else if (ctrl_x_mode == CTRL_X_FILES)
 	{
-	    while (--startcol >= 0 && vim_isfilec(line[startcol]))
-		;
+	    char_u	*p;
+
+	    p = line + startcol;
+	    mb_ptr_back(line, p);
+	    while (vim_isfilec(PTR2CHAR(p)) && p >= line)
+		mb_ptr_back(line, p);
+	    startcol = p - line;
 	    compl_col += ++startcol;
 	    compl_length = (int)curs_col - startcol;
 	    compl_pattern = addstar(line + compl_col, compl_length,

Raspunde prin e-mail lui