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

Patch 7.2.259

Expand Messages
  • Bram Moolenaar
    Patch 7.2.259 Problem: exists() doesn t work properly for an empty aucmd group. Solution: Change how au_exists() handles a missing pattern. Also add a
    Message 1 of 1 , Sep 11, 2009
      Patch 7.2.259
      Problem: exists() doesn't work properly for an empty aucmd group.
      Solution: Change how au_exists() handles a missing pattern. Also add a
      test for this. (Bob Hiestand)
      Files: src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
      src/testdir/test67.ok


      *** ../vim-7.2.258/src/fileio.c 2009-09-11 15:04:13.000000000 +0200
      --- src/fileio.c 2009-09-11 16:37:08.000000000 +0200
      ***************
      *** 9498,9512 ****
      ap = first_autopat[(int)event];
      if (ap == NULL)
      goto theend;
      - if (pattern == NULL)
      - {
      - retval = TRUE;
      - goto theend;
      - }

      /* if pattern is "<buffer>", special handling is needed which uses curbuf */
      /* for pattern "<buffer=N>, fnamecmp() will work fine */
      ! if (STRICMP(pattern, "<buffer>") == 0)
      buflocal_buf = curbuf;

      /* Check if there is an autocommand with the given pattern. */
      --- 9498,9507 ----
      ap = first_autopat[(int)event];
      if (ap == NULL)
      goto theend;

      /* if pattern is "<buffer>", special handling is needed which uses curbuf */
      /* for pattern "<buffer=N>, fnamecmp() will work fine */
      ! if (pattern != NULL && STRICMP(pattern, "<buffer>") == 0)
      buflocal_buf = curbuf;

      /* Check if there is an autocommand with the given pattern. */
      ***************
      *** 9515,9523 ****
      /* For buffer-local autocommands, fnamecmp() works fine. */
      if (ap->pat != NULL && ap->cmds != NULL
      && (group == AUGROUP_ALL || ap->group == group)
      ! && (buflocal_buf == NULL
      ! ? fnamecmp(ap->pat, pattern) == 0
      ! : ap->buflocal_nr == buflocal_buf->b_fnum))
      {
      retval = TRUE;
      break;
      --- 9510,9519 ----
      /* For buffer-local autocommands, fnamecmp() works fine. */
      if (ap->pat != NULL && ap->cmds != NULL
      && (group == AUGROUP_ALL || ap->group == group)
      ! && (pattern == NULL
      ! || (buflocal_buf == NULL
      ! ? fnamecmp(ap->pat, pattern) == 0
      ! : ap->buflocal_nr == buflocal_buf->b_fnum)))
      {
      retval = TRUE;
      break;
      *** ../vim-7.2.258/src/testdir/Makefile 2009-06-24 18:07:55.000000000 +0200
      --- src/testdir/Makefile 2009-09-11 16:31:33.000000000 +0200
      ***************
      *** 22,28 ****
      test48.out test49.out test51.out test52.out test53.out \
      test54.out test55.out test56.out test57.out test58.out \
      test59.out test60.out test61.out test62.out test63.out \
      ! test64.out test65.out test66.out

      SCRIPTS_GUI = test16.out

      --- 22,28 ----
      test48.out test49.out test51.out test52.out test53.out \
      test54.out test55.out test56.out test57.out test58.out \
      test59.out test60.out test61.out test62.out test63.out \
      ! test64.out test65.out test66.out test67.out

      SCRIPTS_GUI = test16.out

      *** ../vim-7.2.258/src/testdir/test67.in 2009-09-11 17:23:47.000000000 +0200
      --- src/testdir/test67.in 2009-09-11 16:43:11.000000000 +0200
      ***************
      *** 0 ****
      --- 1,33 ----
      + Test that groups and patterns are tested correctly when calling exists() for
      + autocommands.
      +
      + STARTTEST
      + :so small.vim
      + :let results=[]
      + :augroup auexists
      + :augroup END
      + :call add(results, "##BufEnter: " . exists("##BufEnter"))
      + :call add(results, "#BufEnter: " . exists("#BufEnter"))
      + :au BufEnter * let g:entered=1
      + :call add(results, "#BufEnter: " . exists("#BufEnter"))
      + :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
      + :augroup auexists
      + :au BufEnter * let g:entered=1
      + :augroup END
      + :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
      + :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
      + :au BufEnter *.test let g:entered=1
      + :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
      + :edit testfile.test
      + :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
      + :au BufEnter <buffer> let g:entered=1
      + :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
      + :edit testfile2.test
      + :call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
      + :e test.out
      + :call append(0, results)
      + :$d
      + :w
      + :qa!
      + ENDTEST
      +
      *** ../vim-7.2.258/src/testdir/test67.ok 2009-09-11 17:23:47.000000000 +0200
      --- src/testdir/test67.ok 2009-09-11 16:43:15.000000000 +0200
      ***************
      *** 0 ****
      --- 1,10 ----
      + ##BufEnter: 1
      + #BufEnter: 0
      + #BufEnter: 1
      + #auexists#BufEnter: 0
      + #auexists#BufEnter: 1
      + #BufEnter#*.test: 0
      + #BufEnter#*.test: 1
      + #BufEnter#<buffer>: 0
      + #BufEnter#<buffer>: 1
      + #BufEnter#<buffer>: 0
      *** ../vim-7.2.258/src/version.c 2009-09-11 16:48:06.000000000 +0200
      --- src/version.c 2009-09-11 17:23:14.000000000 +0200
      ***************
      *** 678,679 ****
      --- 678,681 ----
      { /* Add new patch number below this line */
      + /**/
      + 259,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      234. You started college as a chemistry major, and walk out four years
      later as an Internet provider.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ download, build and distribute -- http://www.A-A-P.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    Your message has been successfully submitted and would be delivered to recipients shortly.