To: [email protected]
Subject: Patch 6.1a.022
Fcc: outbox
From: Bram Moolenaar <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 6.1a.022
Problem:    A tags file might be used twice on case insensitive systems.
           (Rick Swanton)
Solution:   Don't use the same file name twice in the default for the 'tags'
           option.  Ignore case when comparing names of already visited
           files.
Files:      src/misc2.c, src/option.c


*** ../vim61a.021/src/misc2.c   Thu Feb 21 19:07:01 2002
--- src/misc2.c Sun Mar  3 16:34:38 2002
***************
*** 4189,4195 ****
           {
               for (i = ctx->ffs_filearray_cur; i < ctx->ffs_filearray_size; ++i)
               {
!                   if (STRCMP(ctx->ffs_filearray[i], ctx->ffs_fix_path) == 0)
                       continue; /* don't repush same directory */
                   if (!mch_isdir(ctx->ffs_filearray[i]))
                       continue;   /* not a directory */
--- 4189,4195 ----
           {
               for (i = ctx->ffs_filearray_cur; i < ctx->ffs_filearray_size; ++i)
               {
!                   if (fnamecmp(ctx->ffs_filearray[i], ctx->ffs_fix_path) == 0)
                       continue; /* don't repush same directory */
                   if (!mch_isdir(ctx->ffs_filearray[i]))
                       continue;   /* not a directory */
***************
*** 4311,4317 ****
       retptr = ff_search_ctx->ffsc_visited_lists_list;
       while (retptr != NULL)
       {
!           if (0 == STRCMP(filename, retptr->ffvl_filename))
           {
 #ifdef FF_VERBOSE
               if (p_verbose >= 5)
--- 4311,4317 ----
       retptr = ff_search_ctx->ffsc_visited_lists_list;
       while (retptr != NULL)
       {
!           if (fnamecmp(filename, retptr->ffvl_filename) == 0)
           {
 #ifdef FF_VERBOSE
               if (p_verbose >= 5)
***************
*** 4366,4374 ****

 #ifdef FEAT_PATH_EXTRA
 /*
!  * check if two wildcard pathes are equal. Returns TRUE or FALSE.
  * They are equal if:
!  *  - both pathes are NULL
  *  - they have the same length
  *  - char by char comparison is OK
  *  - the only differences are in the counters behind a '**', so
--- 4366,4374 ----

 #ifdef FEAT_PATH_EXTRA
 /*
!  * check if two wildcard paths are equal. Returns TRUE or FALSE.
  * They are equal if:
!  *  - both paths are NULL
  *  - they have the same length
  *  - char by char comparison is OK
  *  - the only differences are in the counters behind a '**', so
***************
*** 4392,4398 ****

     for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
     {
!       if (s1[i] != s2[i])
       {
           if (i >= 2)
               if (s1[i-1] == '*' && s1[i-2] == '*')
--- 4392,4402 ----

     for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
     {
!       if (s1[i] != s2[i]
! #ifdef CASE_INSENSITIVE_FILENAME
!               && TO_UPPER(s1[i]) != TO_UPPER(s2[i])
! #endif
!               )
       {
           if (i >= 2)
               if (s1[i-1] == '*' && s1[i-2] == '*')
***************
*** 4693,4705 ****
            * '/home/rks'. Check for PATHSEP in stopdirs_v[i], else
            * '/home/r' would also match '/home/rks'
            */
!           if (STRNCMP(stopdirs_v[i], path, path_len) == 0
                   && stopdirs_v[i][path_len] == PATHSEP)
               return TRUE;
       }
       else
       {
!           if (STRCMP(stopdirs_v[i], path) == 0)
               return TRUE;
       }
     }
--- 4697,4709 ----
            * '/home/rks'. Check for PATHSEP in stopdirs_v[i], else
            * '/home/r' would also match '/home/rks'
            */
!           if (fnamencmp(stopdirs_v[i], path, path_len) == 0
                   && stopdirs_v[i][path_len] == PATHSEP)
               return TRUE;
       }
       else
       {
!           if (fnamecmp(stopdirs_v[i], path) == 0)
               return TRUE;
       }
     }
*** ../vim61a.021/src/option.c  Thu Feb 28 20:52:13 2002
--- src/option.c        Sun Mar  3 15:41:58 2002
***************
*** 1911,1917 ****
     {"tags",      "tag",  P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
                           (char_u *)&p_tags, OPT_BOTH(PV_TAGS),
                           {
! #ifdef FEAT_EMACS_TAGS
                           (char_u *)"./tags,./TAGS,tags,TAGS",
 #else
                           (char_u *)"./tags,tags",
--- 1911,1917 ----
     {"tags",      "tag",  P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
                           (char_u *)&p_tags, OPT_BOTH(PV_TAGS),
                           {
! #if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME)
                           (char_u *)"./tags,./TAGS,tags,TAGS",
 #else
                           (char_u *)"./tags,tags",
*** ../vim61a.021/src/version.c Sun Mar  3 12:43:35 2002
--- src/version.c       Sun Mar  3 16:38:02 2002
***************
*** 608,609 ****
--- 608,611 ----
 {   /* Add new patch number below this line */
+ /**/
+     22,
 /**/

--
hundred-and-one symptoms of being an internet addict:
108. While reading a magazine, you look for the Zoom icon for a better
    look at a photograph.

///  Bram Moolenaar -- [email protected] -- http://www.moolenaar.net  \\\
///   Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim   \\\
\\\           Project leader for A-A-P -- http://www.a-a-p.org           ///
\\\  Help me helping AIDS orphans in Uganda - http://iccf-holland.org  ///