| To: vim-dev@vim.org |
| Subject: Patch 7.2.259 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| 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 |
| |
| |
| |
| |
| |
| *** 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; |
| |
| |
| |
| *** 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 |
| |
| |
| |
| |
| |
| --- 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 |
| + |
| |
| |
| |
| |
| --- 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 |
| |
| |
| |
| *** 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@Moolenaar.net -- 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 /// |