Hi Bram,

On 3/1/07, Bram Moolenaar <[EMAIL PROTECTED]> wrote:

Yongwei Wu wrote:

> My main point is that if our purpose is to make Vim novices edit
> Simplified Chinese files (almost always encoded in GBK) without
> troubles in the zh_CN.GB18030 environment, a hack to set encoding to
> CP936 will be enough for all practical purposes. Vim veterans will
> know how to have their way around. My objection to Patch 58 is only
> that it *disabled* Vim veteran's possibility to edit GB18030 files.

So basically you want to set 'encoding' to "cp936", but not use the
alias.  So that most files can be edited without trouble, and conversion
still works for people who need the extra characters.  Thus instead of
falling back to "utf-8" in set_init_1() you would fall back to "cp936".
Then no other options need to be set (hopefully).

Try this patch:

*** ../../vim-7.0.205/src/option.c      Tue Oct 17 18:36:03 2006
--- option.c    Wed Feb 28 21:52:39 2007
***************
*** 3290,3295 ****
--- 3290,3303 ----
         * If not, go back to the default "latin1". */
        save_enc = p_enc;
        p_enc = p;
+       if (STRCMP(p_enc, "gb18030") == 0)
+       {
+           /* We don't support "gb18030", but "cp936" is 99% the same, thus
+            * use that.  It's not an alias to still support conversion
+            * between gb18030 and utf-8. */
+           p_enc = vim_strsave((char_u *)"cp936");
+           vim_free(p);
+       }
        if (mb_init() == NULL)
        {
            opt_idx = findoption((char_u *)"encoding");
*** ../../vim-7.0.205/src/mbyte.c       Tue Dec  5 22:09:02 2006
--- mbyte.c     Tue Feb 27 16:27:44 2007
***************
*** 364,370 ****
      {"949",           IDX_CP949},
      {"936",           IDX_CP936},
      {"gbk",           IDX_CP936},
-     {"gb18030",               IDX_CP936},     /* only 99% the same */
      {"950",           IDX_CP950},
      {"eucjp",         IDX_EUC_JP},
      {"unix-jis",      IDX_EUC_JP},
--- 364,369 ----

Thanks, it works for me. (Hi Edward, would you please test whether it
works for you?)

One minor comment: "is 99% the same" is very vague (it is far from
true if we count the coding points). I would phrase something like:

            /* We don't support "gb18030", but "cp936" is a good substitute
             * for many practical purposes, thus use that.  It's not an
             * alias to still support conversion between gb18030 and utf-8.
             */

Best regards,

Yongwei

--
Wu Yongwei
URL: http://wyw.dcweb.cn/

Reply via email to