Loading ...
Sorry, an error occurred while loading the content.

14849Re: Vim can't use filename having MBYTE

Expand Messages
  • mattn@mail.goo.ne.jp
    Jul 31, 2000
      Bram@... wrote:
      > This function is very tricky. It was tuned carefully to remove
      > backslashes where wanted, and keep them where needed.
      >
      > It looks like this patch doesn't work when "has_mbyte" is not set.

      Oh, misstake.
      ------------------------------- (ex_docmd.c around3454)
      #ifdef BACKSLASH_IN_FILENAME
      return (str[0] == '\\'
      #ifdef FEAT_MBYTE
      && (!has_mbyte || (has_mbyte && (mb_ptr2len_check(str+1) == 1)))
      #endif
      && (str[1] == ' '
      || (str[1] != NUL
      && str[1] != '*'
      && str[1] != '?'
      && !vim_isfilec(str[1]))));
      #else
      return (str[0] == '\\' && str[1] != NUL);
      -----------------------------------
      > Can you please explain what your change intends to do? I believe all
      > multi-byte characters are already marked as filename characters. Thus when a
      > multi-byte character is preceded with a backslash the backslash should be
      > kept, since a file name can start with a multi-byte character, right?

      Seem, It is my misunderstanding.
      This problem is not in the part only.
      The cause is that calling "expand_wildcard" before
      calling "set_init_3".This mean that no initializing
      multi-byte table.
      Thus, when analysing file-name arguments,
      it can't judge multi-byte right.

      I attach diff-file on this mail.
      (change order of calling function)
      But this is not certain.
      I want any one's suggestion.
      -------------------------------------
      Yasuhiro Matsumoto
    • Show all 10 messages in this topic