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

Patch 7.3.872

Expand Messages
  • Bram Moolenaar
    Patch 7.3.872 Problem: On some systems case of file names is always ignored, on others never. Solution: Add the fileignorecase option to control this at
    Message 1 of 7 , Mar 19, 2013
      Patch 7.3.872
      Problem: On some systems case of file names is always ignored, on others
      never.
      Solution: Add the 'fileignorecase' option to control this at runtime.
      Implies 'wildignorecase'.
      Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
      src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
      src/option.h, src/vim.h, runtime/doc/options.txt


      *** ../vim-7.3.871/src/buffer.c 2013-03-19 14:25:50.000000000 +0100
      --- src/buffer.c 2013-03-19 16:03:42.000000000 +0100
      ***************
      *** 2401,2412 ****
      if (name != NULL)
      {
      regmatch.regprog = prog;
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! regmatch.rm_ic = TRUE; /* Always ignore case */
      ! #else
      ! regmatch.rm_ic = FALSE; /* Never ignore case */
      ! #endif
      !
      if (vim_regexec(®match, name, (colnr_T)0))
      match = name;
      else
      --- 2401,2407 ----
      if (name != NULL)
      {
      regmatch.regprog = prog;
      ! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
      if (vim_regexec(®match, name, (colnr_T)0))
      match = name;
      else
      *** ../vim-7.3.871/src/edit.c 2013-03-19 13:33:18.000000000 +0100
      --- src/edit.c 2013-03-19 15:43:19.000000000 +0100
      ***************
      *** 4336,4348 ****

      /* May change home directory back to "~". */
      tilde_replace(compl_pattern, num_matches, matches);
      ! ins_compl_add_matches(num_matches, matches,
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! TRUE
      ! #else
      ! FALSE
      ! #endif
      ! );
      }
      break;

      --- 4336,4342 ----

      /* May change home directory back to "~". */
      tilde_replace(compl_pattern, num_matches, matches);
      ! ins_compl_add_matches(num_matches, matches, p_fic || p_wic);
      }
      break;

      *** ../vim-7.3.871/src/ex_cmds2.c 2012-10-03 18:24:55.000000000 +0200
      --- src/ex_cmds2.c 2013-03-19 16:03:50.000000000 +0100
      ***************
      *** 1926,1936 ****
      * Delete the items: use each item as a regexp and find a match in the
      * argument list.
      */
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! regmatch.rm_ic = TRUE; /* Always ignore case */
      ! #else
      ! regmatch.rm_ic = FALSE; /* Never ignore case */
      ! #endif
      for (i = 0; i < new_ga.ga_len && !got_int; ++i)
      {
      p = ((char_u **)new_ga.ga_data)[i];
      --- 1926,1932 ----
      * Delete the items: use each item as a regexp and find a match in the
      * argument list.
      */
      ! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
      for (i = 0; i < new_ga.ga_len && !got_int; ++i)
      {
      p = ((char_u **)new_ga.ga_data)[i];
      *** ../vim-7.3.871/src/ex_getln.c 2012-11-28 16:49:53.000000000 +0100
      --- src/ex_getln.c 2013-03-19 16:03:53.000000000 +0100
      ***************
      *** 3653,3671 ****
      {
      for (i = 0; i < xp->xp_numfiles; ++i)
      {
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! if (xp->xp_context == EXPAND_DIRECTORIES
      || xp->xp_context == EXPAND_FILES
      || xp->xp_context == EXPAND_SHELLCMD
      ! || xp->xp_context == EXPAND_BUFFERS)
      {
      if (TOLOWER_LOC(xp->xp_files[i][len]) !=
      TOLOWER_LOC(xp->xp_files[0][len]))
      break;
      }
      ! else
      ! #endif
      ! if (xp->xp_files[i][len] != xp->xp_files[0][len])
      break;
      }
      if (i < xp->xp_numfiles)
      --- 3653,3668 ----
      {
      for (i = 0; i < xp->xp_numfiles; ++i)
      {
      ! if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
      || xp->xp_context == EXPAND_FILES
      || xp->xp_context == EXPAND_SHELLCMD
      ! || xp->xp_context == EXPAND_BUFFERS))
      {
      if (TOLOWER_LOC(xp->xp_files[i][len]) !=
      TOLOWER_LOC(xp->xp_files[0][len]))
      break;
      }
      ! else if (xp->xp_files[i][len] != xp->xp_files[0][len])
      break;
      }
      if (i < xp->xp_numfiles)
      *** ../vim-7.3.871/src/fileio.c 2013-03-19 13:33:18.000000000 +0100
      --- src/fileio.c 2013-03-19 15:49:28.000000000 +0100
      ***************
      *** 6485,6493 ****
      #ifdef HAVE_ACL
      vim_acl_T acl; /* ACL from original file */
      #endif
      - #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
      int use_tmp_file = FALSE;
      - #endif

      /*
      * When the names are identical, there is nothing to do. When they refer
      --- 6485,6491 ----
      ***************
      *** 6496,6506 ****
      */
      if (fnamecmp(from, to) == 0)
      {
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! if (STRCMP(gettail(from), gettail(to)) != 0)
      use_tmp_file = TRUE;
      else
      - #endif
      return 0;
      }

      --- 6494,6502 ----
      */
      if (fnamecmp(from, to) == 0)
      {
      ! if (p_fic && STRCMP(gettail(from), gettail(to)) != 0)
      use_tmp_file = TRUE;
      else
      return 0;
      }

      ***************
      *** 6539,6545 ****
      }
      #endif

      - #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
      if (use_tmp_file)
      {
      char tempname[MAXPATHL + 1];
      --- 6535,6540 ----
      ***************
      *** 6572,6578 ****
      }
      return -1;
      }
      - #endif

      /*
      * Delete the "to" file, this is required on some systems to make the
      --- 6567,6572 ----
      ***************
      *** 10007,10017 ****
      int match = FALSE;
      #endif

      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! regmatch.rm_ic = TRUE; /* Always ignore case */
      ! #else
      ! regmatch.rm_ic = FALSE; /* Don't ever ignore case */
      ! #endif
      #ifdef FEAT_OSFILETYPE
      if (*pattern == '<')
      {
      --- 10001,10007 ----
      int match = FALSE;
      #endif

      ! regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */
      #ifdef FEAT_OSFILETYPE
      if (*pattern == '<')
      {
      *** ../vim-7.3.871/src/misc1.c 2013-03-16 21:35:28.000000000 +0100
      --- src/misc1.c 2013-03-19 16:16:24.000000000 +0100
      ***************
      *** 5026,5041 ****
      return retval;
      }

      - #if (defined(CASE_INSENSITIVE_FILENAME) && defined(BACKSLASH_IN_FILENAME)) \
      - || defined(PROTO)
      /*
      ! * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally.
      */
      int
      vim_fnamecmp(x, y)
      char_u *x, *y;
      {
      return vim_fnamencmp(x, y, MAXPATHL);
      }

      int
      --- 5026,5046 ----
      return retval;
      }

      /*
      ! * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally
      ! * and deal with 'fileignorecase'.
      */
      int
      vim_fnamecmp(x, y)
      char_u *x, *y;
      {
      + #ifdef BACKSLASH_IN_FILENAME
      return vim_fnamencmp(x, y, MAXPATHL);
      + #else
      + if (p_fic)
      + return MB_STRICMP(x, y);
      + return STRCMP(x, y);
      + #endif
      }

      int
      ***************
      *** 5043,5051 ****
      char_u *x, *y;
      size_t len;
      {
      while (len > 0 && *x && *y)
      {
      ! if (TOLOWER_LOC(*x) != TOLOWER_LOC(*y)
      && !(*x == '/' && *y == '\\')
      && !(*x == '\\' && *y == '/'))
      break;
      --- 5048,5058 ----
      char_u *x, *y;
      size_t len;
      {
      + #ifdef BACKSLASH_IN_FILENAME
      + /* TODO: multi-byte characters. */
      while (len > 0 && *x && *y)
      {
      ! if ((p_fic ? TOLOWER_LOC(*x) != TOLOWER_LOC(*y) : *x != *y)
      && !(*x == '/' && *y == '\\')
      && !(*x == '\\' && *y == '/'))
      break;
      ***************
      *** 5056,5063 ****
      if (len == 0)
      return 0;
      return (*x - *y);
      ! }
      #endif

      /*
      * Concatenate file names fname1 and fname2 into allocated memory.
      --- 5063,5074 ----
      if (len == 0)
      return 0;
      return (*x - *y);
      ! #else
      ! if (p_fic)
      ! return MB_STRNICMP(x, y, len);
      ! return STRNCMP(x, y, len);
      #endif
      + }

      /*
      * Concatenate file names fname1 and fname2 into allocated memory.
      ***************
      *** 9835,9845 ****
      }
      else if (path_end >= path + wildoff
      && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
      ! #ifndef CASE_INSENSITIVE_FILENAME
      ! || ((flags & EW_ICASE)
      ! && isalpha(PTR2CHAR(path_end)))
      ! #endif
      ! ))
      e = p;
      #ifdef FEAT_MBYTE
      if (has_mbyte)
      --- 9846,9853 ----
      }
      else if (path_end >= path + wildoff
      && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
      ! || (!p_fic && (flags & EW_ICASE)
      ! && isalpha(PTR2CHAR(path_end)))))
      e = p;
      #ifdef FEAT_MBYTE
      if (has_mbyte)
      ***************
      *** 9882,9895 ****
      }

      /* compile the regexp into a program */
      - #ifdef CASE_INSENSITIVE_FILENAME
      - regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
      - #else
      if (flags & EW_ICASE)
      regmatch.rm_ic = TRUE; /* 'wildignorecase' set */
      else
      ! regmatch.rm_ic = FALSE; /* Don't ignore case */
      ! #endif
      if (flags & (EW_NOERROR | EW_NOTWILD))
      ++emsg_silent;
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
      --- 9890,9899 ----
      }

      /* compile the regexp into a program */
      if (flags & EW_ICASE)
      regmatch.rm_ic = TRUE; /* 'wildignorecase' set */
      else
      ! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
      if (flags & (EW_NOERROR | EW_NOTWILD))
      ++emsg_silent;
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
      *** ../vim-7.3.871/src/misc2.c 2012-11-28 18:31:49.000000000 +0100
      --- src/misc2.c 2013-03-19 16:39:56.000000000 +0100
      ***************
      *** 5362,5374 ****
      if (STRLEN(s1) != STRLEN(s2))
      return FAIL;

      for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
      {
      if (s1[i] != s2[i]
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! && TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i])
      ! #endif
      ! )
      {
      if (i >= 2)
      if (s1[i-1] == '*' && s1[i-2] == '*')
      --- 5362,5372 ----
      if (STRLEN(s1) != STRLEN(s2))
      return FAIL;

      + /* TODO: handle multi-byte characters. */
      for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
      {
      if (s1[i] != s2[i]
      ! && (!p_fic || TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i])))
      {
      if (i >= 2)
      if (s1[i-1] == '*' && s1[i-2] == '*')
      ***************
      *** 6123,6134 ****
      break;
      }

      ! if (
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i])
      ! #else
      ! p[i] != q[i]
      ! #endif
      #ifdef BACKSLASH_IN_FILENAME
      /* consider '/' and '\\' to be equal */
      && !((p[i] == '/' && q[i] == '\\')
      --- 6121,6127 ----
      break;
      }

      ! if ((p_fic ? TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i]) : p[i] != q[i])
      #ifdef BACKSLASH_IN_FILENAME
      /* consider '/' and '\\' to be equal */
      && !((p[i] == '/' && q[i] == '\\')
      *** ../vim-7.3.871/src/option.c 2013-03-13 20:42:28.000000000 +0100
      --- src/option.c 2013-03-19 15:40:25.000000000 +0100
      ***************
      *** 1108,1113 ****
      --- 1108,1122 ----
      (char_u *)&p_ffs, PV_NONE,
      {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
      SCRIPTID_INIT},
      + {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
      + (char_u *)&p_fic, PV_NONE,
      + {
      + #ifdef CASE_INSENSITIVE_FILENAME
      + (char_u *)TRUE,
      + #else
      + (char_u *)FALSE,
      + #endif
      + (char_u *)0L} SCRIPTID_INIT},
      {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
      #ifdef FEAT_AUTOCMD
      (char_u *)&p_ft, PV_FT,
      *** ../vim-7.3.871/src/option.h 2012-08-15 16:20:59.000000000 +0200
      --- src/option.h 2013-03-19 15:42:24.000000000 +0100
      ***************
      *** 453,458 ****
      --- 453,459 ----
      EXTERN char_u *p_fencs; /* 'fileencodings' */
      #endif
      EXTERN char_u *p_ffs; /* 'fileformats' */
      + EXTERN long p_fic; /* 'fileignorecase' */
      #ifdef FEAT_FOLDING
      EXTERN char_u *p_fcl; /* 'foldclose' */
      EXTERN long p_fdls; /* 'foldlevelstart' */
      *** ../vim-7.3.871/src/vim.h 2013-03-19 13:33:18.000000000 +0100
      --- src/vim.h 2013-03-19 16:14:29.000000000 +0100
      ***************
      *** 1627,1644 ****
      * (this does not account for maximum name lengths and things like "../dir",
      * thus it is not 100% accurate!)
      */
      ! #ifdef CASE_INSENSITIVE_FILENAME
      ! # ifdef BACKSLASH_IN_FILENAME
      ! # define fnamecmp(x, y) vim_fnamecmp((x), (y))
      ! # define fnamencmp(x, y, n) vim_fnamencmp((x), (y), (size_t)(n))
      ! # else
      ! # define fnamecmp(x, y) MB_STRICMP((x), (y))
      ! # define fnamencmp(x, y, n) MB_STRNICMP((x), (y), (n))
      ! # endif
      ! #else
      ! # define fnamecmp(x, y) strcmp((char *)(x), (char *)(y))
      ! # define fnamencmp(x, y, n) strncmp((char *)(x), (char *)(y), (size_t)(n))
      ! #endif

      #ifdef HAVE_MEMSET
      # define vim_memset(ptr, c, size) memset((ptr), (c), (size))
      --- 1627,1634 ----
      * (this does not account for maximum name lengths and things like "../dir",
      * thus it is not 100% accurate!)
      */
      ! #define fnamecmp(x, y) vim_fnamecmp((char_u *)(x), (char_u *)(y))
      ! #define fnamencmp(x, y, n) vim_fnamencmp((char_u *)(x), (char_u *)(y), (size_t)(n))

      #ifdef HAVE_MEMSET
      # define vim_memset(ptr, c, size) memset((ptr), (c), (size))
      *** ../vim-7.3.871/runtime/doc/options.txt 2013-01-23 18:37:31.000000000 +0100
      --- runtime/doc/options.txt 2013-03-19 16:25:49.000000000 +0100
      ***************
      *** 2895,2900 ****
      --- 2941,2954 ----
      NOTE: This option is set to the Vi default value when 'compatible' is
      set and to the Vim default value when 'compatible' is reset.

      + *'fileignorecase'* *'wic'* *'nofileignorecase'* *'nowic'*
      + 'fileignorecase' 'wic' boolean (default on for systems where case in file
      + names is normally ignored.
      + global
      + {not in Vi}
      + When set case is ignored when using file names and directories.
      + See 'wildignorecase' for only ignoring case when doing completion.
      +
      *'filetype'* *'ft'*
      'filetype' 'ft' string (default: "")
      local to buffer
      ***************
      *** 7832,7843 ****
      uses another default.


      ! *'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
      'wildignorecase' 'wic' boolean (default off)
      global
      {not in Vi}
      When set case is ignored when completing file names and directories.
      ! Has no effect on systems where file name case is generally ignored.
      Does not apply when the shell is used to expand wildcards, which
      happens when there are special characters.

      --- 7906,7917 ----
      uses another default.


      ! *'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
      'wildignorecase' 'wic' boolean (default off)
      global
      {not in Vi}
      When set case is ignored when completing file names and directories.
      ! Has no effect when 'fileignorecase' is set.
      Does not apply when the shell is used to expand wildcards, which
      happens when there are special characters.

      *** ../vim-7.3.871/src/version.c 2013-03-19 15:27:43.000000000 +0100
      --- src/version.c 2013-03-19 16:22:46.000000000 +0100
      ***************
      *** 730,731 ****
      --- 730,733 ----
      { /* Add new patch number below this line */
      + /**/
      + 872,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      76. Your ISP regards you as a business partner rather than as a customer.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ an exciting new programming language -- http://www.Zimbu.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --
      --
      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+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Ingo Karkat
      ... Typo: In the help, the abbrevation wic is mistakenly (re-)used instead of fic : diff -r c2bf5b221b1d runtime/doc/options.txt ... +++
      Message 2 of 7 , Mar 19, 2013
        On 19-Mar-13 16:49:37 +0100, Bram Moolenaar wrote:

        > Patch 7.3.872
        > Problem: On some systems case of file names is always ignored, on others
        > never.
        > Solution: Add the 'fileignorecase' option to control this at runtime.
        > Implies 'wildignorecase'.
        > Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
        > src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
        > src/option.h, src/vim.h, runtime/doc/options.txt

        Typo: In the help, the abbrevation 'wic' is mistakenly (re-)used instead of 'fic':

        diff -r c2bf5b221b1d runtime/doc/options.txt
        --- a/runtime/doc/options.txt Tue Mar 19 16:49:16 2013 +0100
        +++ b/runtime/doc/options.txt Tue Mar 19 17:20:49 2013 +0100
        @@ -2941,8 +2941,8 @@
        NOTE: This option is set to the Vi default value when 'compatible' is
        set and to the Vim default value when 'compatible' is reset.

        - *'fileignorecase'* *'wic'* *'nofileignorecase'* *'nowic'*
        -'fileignorecase' 'wic' boolean (default on for systems where case in file
        + *'fileignorecase'* *'fic'* *'nofileignorecase'* *'nofic'*
        +'fileignorecase' 'fic' boolean (default on for systems where case in file
        names is normally ignored.
        global
        {not in Vi}

        -- regards, ingo

        --
        --
        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+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • Bram Moolenaar
        ... Thanks for noticing that mistake. -- hundred-and-one symptoms of being an internet addict: 79. All of your most erotic dreams have a scrollbar at the right
        Message 3 of 7 , Mar 19, 2013
          Ingo Karkat wrote:

          > On 19-Mar-13 16:49:37 +0100, Bram Moolenaar wrote:
          >
          > > Patch 7.3.872
          > > Problem: On some systems case of file names is always ignored, on others
          > > never.
          > > Solution: Add the 'fileignorecase' option to control this at runtime.
          > > Implies 'wildignorecase'.
          > > Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
          > > src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
          > > src/option.h, src/vim.h, runtime/doc/options.txt
          >
          > Typo: In the help, the abbrevation 'wic' is mistakenly (re-)used
          > instead of 'fic':

          Thanks for noticing that mistake.

          --
          hundred-and-one symptoms of being an internet addict:
          79. All of your most erotic dreams have a scrollbar at the right side.

          /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
          /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
          \\\ an exciting new programming language -- http://www.Zimbu.org ///
          \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

          --
          --
          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+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
        • Ben Fritz
          ... Another typo: no closing parenthesis for description of default value. -- -- You received this message from the vim_dev maillist. Do not top-post! Type
          Message 4 of 7 , Mar 19, 2013
            On Tuesday, March 19, 2013 10:49:37 AM UTC-5, Bram Moolenaar wrote:
            > + *'fileignorecase'* *'wic'* *'nofileignorecase'* *'nowic'*
            > + 'fileignorecase' 'wic' boolean (default on for systems where case in file
            > + names is normally ignored.
            > + global
            > + {not in Vi}
            > + When set case is ignored when using file names and directories.
            > + See 'wildignorecase' for only ignoring case when doing completion.
            > +

            Another typo: no closing parenthesis for description of default value.

            --
            --
            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+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.
          • h_east
            Hi Bram, ... When set fic on linux, file name completion order is strange. It s different for both case-sensitive and case-insensitive. How to reproduce (on
            Message 5 of 7 , Mar 20, 2013
              Hi Bram,

              2013/3/20(Wed) 0:49:37 UTC+9 Bram Moolenaar:
              > Patch 7.3.872
              >
              > Problem: On some systems case of file names is always ignored, on others
              >
              > never.
              >
              > Solution: Add the 'fileignorecase' option to control this at runtime.
              >
              > Implies 'wildignorecase'.
              >
              > Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
              >
              > src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
              >
              > src/option.h, src/vim.h, runtime/doc/options.txt

              When 'set fic' on linux, file name completion order is strange.
              It's different for both case-sensitive and case-insensitive.

              How to reproduce (on fedora17)
              $ mkdir test_fic
              $ cd !$
              $ touch I1.txt I2.txt J3.txt J4.txt i1.txt j3.txt
              (Necessary: same file name (without case-sensitive) exist.)
              $ vim -N -u NONE -i NONE --noplugin -c "set fic"
              input i<C-X><C-F>

              Actual result
              (popup menu list items)
              I1.txt
              I2.txt
              j3.txt
              J3.txt
              J4.txt
              i1.txt

              Expect result (like this)
              I1.txt
              i1.txt
              I2.txt
              j3.txt
              J3.txt
              J4.txt

              Patch attached. (Thanks for advice from Yukihiro Nakadaira)
              Please check.

              Best Regards,
              Hirohito Higashi

              --
              --
              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+unsubscribe@....
              For more options, visit https://groups.google.com/groups/opt_out.
            • Bram Moolenaar
              ... Thanks, I ll look into it later. -- From know your smileys : y:-) Bad toupee /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net
              Message 6 of 7 , Mar 20, 2013
                h_east wrote:

                > 2013/3/20(Wed) 0:49:37 UTC+9 Bram Moolenaar:
                > > Patch 7.3.872
                > >
                > > Problem: On some systems case of file names is always ignored, on others
                > >
                > > never.
                > >
                > > Solution: Add the 'fileignorecase' option to control this at runtime.
                > >
                > > Implies 'wildignorecase'.
                > >
                > > Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
                > >
                > > src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
                > >
                > > src/option.h, src/vim.h, runtime/doc/options.txt
                >
                > When 'set fic' on linux, file name completion order is strange.
                > It's different for both case-sensitive and case-insensitive.
                >
                > How to reproduce (on fedora17)
                > $ mkdir test_fic
                > $ cd !$
                > $ touch I1.txt I2.txt J3.txt J4.txt i1.txt j3.txt
                > (Necessary: same file name (without case-sensitive) exist.)
                > $ vim -N -u NONE -i NONE --noplugin -c "set fic"
                > input i<C-X><C-F>
                >
                > Actual result
                > (popup menu list items)
                > I1.txt
                > I2.txt
                > j3.txt
                > J3.txt
                > J4.txt
                > i1.txt
                >
                > Expect result (like this)
                > I1.txt
                > i1.txt
                > I2.txt
                > j3.txt
                > J3.txt
                > J4.txt
                >
                > Patch attached. (Thanks for advice from Yukihiro Nakadaira)
                > Please check.

                Thanks, I'll look into it later.


                --
                From "know your smileys":
                y:-) Bad toupee

                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                \\\ an exciting new programming language -- http://www.Zimbu.org ///
                \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                --
                --
                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+unsubscribe@....
                For more options, visit https://groups.google.com/groups/opt_out.
              • h_east
                Hi Bram, ... Sorry, It s doubt. This condition was not necessary. I report again below. How to reproduce (on linux) $ mkdir test_fic $ cd !$ $ touch i1.txt
                Message 7 of 7 , Mar 24, 2013
                  Hi Bram,

                  2013/3/21(Thu) 5:24:00 UTC+9 Bram Moolenaar:
                  > h_east wrote:
                  > > 2013/3/20(Wed) 0:49:37 UTC+9 Bram Moolenaar:
                  > > > Patch 7.3.872
                  > > >
                  > > > Problem: On some systems case of file names is always ignored, on others
                  > > >
                  > > > never.
                  > > >
                  > > > Solution: Add the 'fileignorecase' option to control this at runtime.
                  > > >
                  > > > Implies 'wildignorecase'.
                  > > >
                  > > > Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
                  > > >
                  > > > src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
                  > > >
                  > > > src/option.h, src/vim.h, runtime/doc/options.txt
                  > >
                  > > When 'set fic' on linux, file name completion order is strange.
                  > > It's different for both case-sensitive and case-insensitive.
                  > >
                  > > How to reproduce (on fedora17)
                  > > $ mkdir test_fic
                  > > $ cd !$
                  > > $ touch I1.txt I2.txt J3.txt J4.txt i1.txt j3.txt
                  > > (Necessary: same file name (without case-sensitive) exist.)
                  Sorry, It's doubt.
                  This condition was not necessary.

                  I report again below.

                  How to reproduce (on linux)
                  $ mkdir test_fic
                  $ cd !$
                  $ touch i1.txt I2.txt J3.txt j4.txt

                  $ vim -N -u NONE -i NONE --noplugin -c "set fic"
                  input i<C-X><C-F>

                  Actual result
                  (popup menu list items)
                  I2.txt
                  J3.txt
                  i1.txt
                  j4.txt

                  Expect result
                  i1.txt
                  I2.txt
                  J3.txt
                  j4.txt

                  I update a patch. (against multi-byte).
                  Please check.

                  Best Regards,
                  Hirohito Higashi

                  --
                  --
                  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+unsubscribe@....
                  For more options, visit https://groups.google.com/groups/opt_out.
                Your message has been successfully submitted and would be delivered to recipients shortly.