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

Patch 7.3.264

Expand Messages
  • Bram Moolenaar
    Patch 7.3.264 Problem: When the current directory name contains wildcard characters, such as foo[with]bar , the tags file can t be found. (Jeremy
    Message 1 of 1 , Jul 27, 2011
    • 0 Attachment
      Patch 7.3.264
      Problem: When the current directory name contains wildcard characters, such
      as "foo[with]bar", the tags file can't be found. (Jeremy
      Erickson)
      Solution: When searching for matching files also match without expanding
      wildcards. This is a bit of a hack.
      Files: src/vim.h, src/misc1.c, src/misc2.c


      *** ../vim-7.3.263/src/vim.h 2011-07-20 15:04:52.000000000 +0200
      --- src/vim.h 2011-07-27 16:21:38.000000000 +0200
      ***************
      *** 816,821 ****
      --- 816,822 ----
      #define EW_PATH 0x80 /* search in 'path' too */
      #define EW_ICASE 0x100 /* ignore case */
      #define EW_NOERROR 0x200 /* no error for bad regexp */
      + #define EW_NOTWILD 0x400 /* add match with literal name if exists */
      /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
      * is used when executing commands and EW_SILENT for interactive expanding. */

      *** ../vim-7.3.263/src/misc1.c 2011-07-20 15:04:52.000000000 +0200
      --- src/misc1.c 2011-07-27 17:24:39.000000000 +0200
      ***************
      *** 9119,9125 ****
      * all entries found with "matchname". */
      if ((p[0] != '.' || starts_with_dot)
      && (matchname == NULL
      ! || vim_regexec(®match, p, (colnr_T)0)))
      {
      #ifdef WIN3264
      STRCPY(s, p);
      --- 9119,9127 ----
      * all entries found with "matchname". */
      if ((p[0] != '.' || starts_with_dot)
      && (matchname == NULL
      ! || vim_regexec(®match, p, (colnr_T)0)
      ! || ((flags & EW_NOTWILD)
      ! && fnamencmp(path + (s - buf), p, e - s) == 0)))
      {
      #ifdef WIN3264
      STRCPY(s, p);
      ***************
      *** 9323,9329 ****
      e = p;
      *e = NUL;

      ! /* now we have one wildcard component between "s" and "e" */
      /* Remove backslashes between "wildoff" and the start of the wildcard
      * component. */
      for (p = buf + wildoff; p < s; ++p)
      --- 9325,9331 ----
      e = p;
      *e = NUL;

      ! /* Now we have one wildcard component between "s" and "e". */
      /* Remove backslashes between "wildoff" and the start of the wildcard
      * component. */
      for (p = buf + wildoff; p < s; ++p)
      ***************
      *** 9390,9396 ****
      if (dp == NULL)
      break;
      if ((dp->d_name[0] != '.' || starts_with_dot)
      ! && vim_regexec(®match, (char_u *)dp->d_name, (colnr_T)0))
      {
      STRCPY(s, dp->d_name);
      len = STRLEN(buf);
      --- 9392,9400 ----
      if (dp == NULL)
      break;
      if ((dp->d_name[0] != '.' || starts_with_dot)
      ! && (vim_regexec(®match, (char_u *)dp->d_name, (colnr_T)0)
      ! || ((flags & EW_NOTWILD)
      ! && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
      {
      STRCPY(s, dp->d_name);
      len = STRLEN(buf);
      *** ../vim-7.3.263/src/misc2.c 2011-07-07 17:15:29.000000000 +0200
      --- src/misc2.c 2011-07-27 17:21:10.000000000 +0200
      ***************
      *** 4653,4661 ****
      {
      if (r_ptr[0] == '\\' && r_ptr[1] == ';')
      {
      ! /* overwrite the escape char,
      ! * use STRLEN(r_ptr) to move the trailing '\0'
      ! */
      STRMOVE(r_ptr, r_ptr + 1);
      r_ptr++;
      }
      --- 4653,4660 ----
      {
      if (r_ptr[0] == '\\' && r_ptr[1] == ';')
      {
      ! /* Overwrite the escape char,
      ! * use STRLEN(r_ptr) to move the trailing '\0'. */
      STRMOVE(r_ptr, r_ptr + 1);
      r_ptr++;
      }
      ***************
      *** 4914,4923 ****
      stackp->ffs_filearray_size = 0;
      }
      else
      expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
      &stackp->ffs_filearray_size,
      &stackp->ffs_filearray,
      ! EW_DIR|EW_ADDSLASH|EW_SILENT);

      stackp->ffs_filearray_cur = 0;
      stackp->ffs_stage = 0;
      --- 4913,4925 ----
      stackp->ffs_filearray_size = 0;
      }
      else
      + /* Add EW_NOTWILD because the expanded path may contain
      + * wildcard characters that are to be taken literally.
      + * This is a bit of a hack. */
      expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
      &stackp->ffs_filearray_size,
      &stackp->ffs_filearray,
      ! EW_DIR|EW_ADDSLASH|EW_SILENT|EW_NOTWILD);

      stackp->ffs_filearray_cur = 0;
      stackp->ffs_stage = 0;
      *** ../vim-7.3.263/src/version.c 2011-07-27 14:15:41.000000000 +0200
      --- src/version.c 2011-07-27 17:25:44.000000000 +0200
      ***************
      *** 711,712 ****
      --- 711,714 ----
      { /* Add new patch number below this line */
      + /**/
      + 264,
      /**/

      --
      CUSTOMER: You're not fooling anyone y'know. Look, isn't there something
      you can do?
      DEAD PERSON: I feel happy... I feel happy.
      [whop]
      CUSTOMER: Ah, thanks very much.
      MORTICIAN: Not at all. See you on Thursday.
      CUSTOMER: Right.
      The Quest for the Holy Grail (Monty Python)

      /// 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
    Your message has been successfully submitted and would be delivered to recipients shortly.