home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.1295
- 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.3.1295
- Problem: glob() and globpath() do not handle escaped special characters
- properly.
- Solution: Handle escaped characters differently. (Adnan Zafar)
- Files: src/testdir/Makefile, src/testdir/test97.in,
- src/testdir/test97.ok, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, src/fileio.c,
- src/misc1.c
-
-
- *** ../vim-7.3.1294/src/testdir/Makefile 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Makefile 2013-07-03 16:20:47.000000000 +0200
- ***************
- *** 29,35 ****
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out
-
- SCRIPTS_GUI = test16.out
-
- --- 29,35 ----
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out test97.out
-
- SCRIPTS_GUI = test16.out
-
- *** ../vim-7.3.1294/src/testdir/test97.in 2013-07-03 16:52:09.000000000 +0200
- --- src/testdir/test97.in 2013-07-03 16:24:24.000000000 +0200
- ***************
- *** 0 ****
- --- 1,17 ----
- + Test whether glob()/globpath() return correct results with certain escaped
- + characters.
- +
- + STARTTEST
- + :so small.vim
- + :set shell=doesnotexist
- + :e test.out
- + :put =glob('Xxx\{')
- + :put =glob('Xxx\$')
- + :w! Xxx{
- + :w! Xxx\$
- + :put =glob('Xxx\{')
- + :put =glob('Xxx\$')
- + :w
- + :qa!
- + ENDTEST
- +
- *** ../vim-7.3.1294/src/testdir/test97.ok 2013-07-03 16:52:09.000000000 +0200
- --- src/testdir/test97.ok 2013-07-03 16:14:50.000000000 +0200
- ***************
- *** 0 ****
- --- 1,5 ----
- +
- +
- +
- + Xxx{
- + Xxx$
- *** ../vim-7.3.1294/src/testdir/Make_amiga.mak 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Make_amiga.mak 2013-07-03 16:21:39.000000000 +0200
- ***************
- *** 33,39 ****
- test76.out test77.out test78.out test79.out test80.out \
- test81.out test82.out test83.out test84.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out
-
- .SUFFIXES: .in .out
-
- --- 33,39 ----
- test76.out test77.out test78.out test79.out test80.out \
- test81.out test82.out test83.out test84.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out test97.out
-
- .SUFFIXES: .in .out
-
- ***************
- *** 146,148 ****
- --- 146,149 ----
- test94.out: test94.in
- test95.out: test95.in
- test96.out: test96.in
- + test97.out: test97.in
- *** ../vim-7.3.1294/src/testdir/Make_dos.mak 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Make_dos.mak 2013-07-03 16:21:46.000000000 +0200
- ***************
- *** 32,38 ****
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out
-
- SCRIPTS32 = test50.out test70.out
-
- --- 32,38 ----
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out test97.out
-
- SCRIPTS32 = test50.out test70.out
-
- *** ../vim-7.3.1294/src/testdir/Make_ming.mak 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Make_ming.mak 2013-07-03 16:21:49.000000000 +0200
- ***************
- *** 52,58 ****
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out
-
- SCRIPTS32 = test50.out test70.out
-
- --- 52,58 ----
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out test97.out
-
- SCRIPTS32 = test50.out test70.out
-
- *** ../vim-7.3.1294/src/testdir/Make_os2.mak 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Make_os2.mak 2013-07-03 16:21:51.000000000 +0200
- ***************
- *** 33,39 ****
- test76.out test77.out test78.out test79.out test80.out \
- test81.out test82.out test83.out test84.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out
-
- .SUFFIXES: .in .out
-
- --- 33,39 ----
- test76.out test77.out test78.out test79.out test80.out \
- test81.out test82.out test83.out test84.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- ! test94.out test95.out test96.out test97.out
-
- .SUFFIXES: .in .out
-
- *** ../vim-7.3.1294/src/testdir/Make_vms.mms 2013-07-01 21:24:40.000000000 +0200
- --- src/testdir/Make_vms.mms 2013-07-03 16:21:54.000000000 +0200
- ***************
- *** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
- ! # Last change: 2013 Jul 01
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
- --- 4,10 ----
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
- ! # Last change: 2013 Jul 03
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
- ***************
- *** 78,84 ****
- test77.out test78.out test79.out test80.out test81.out \
- test82.out test83.out test84.out test88.out test89.out \
- test90.out test91.out test92.out test93.out test94.out \
- ! test95.out test96.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
- --- 78,84 ----
- test77.out test78.out test79.out test80.out test81.out \
- test82.out test83.out test84.out test88.out test89.out \
- test90.out test91.out test92.out test93.out test94.out \
- ! test95.out test96.out test97.out
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
- *** ../vim-7.3.1294/src/fileio.c 2013-06-26 19:17:58.000000000 +0200
- --- src/fileio.c 2013-07-03 16:27:10.000000000 +0200
- ***************
- *** 10301,10307 ****
- * foo\,bar -> foo,bar
- * foo\ bar -> foo bar
- * Don't unescape \, * and others that are also special in a
- ! * regexp. */
- if (*++p == '?'
- #ifdef BACKSLASH_IN_FILENAME
- && no_bslash
- --- 10301,10310 ----
- * foo\,bar -> foo,bar
- * foo\ bar -> foo bar
- * Don't unescape \, * and others that are also special in a
- ! * regexp.
- ! * An escaped { must be unescaped since we use magic not
- ! * verymagic.
- ! */
- if (*++p == '?'
- #ifdef BACKSLASH_IN_FILENAME
- && no_bslash
- ***************
- *** 10309,10315 ****
- )
- reg_pat[i++] = '?';
- else
- ! if (*p == ',' || *p == '%' || *p == '#' || *p == ' ')
- reg_pat[i++] = *p;
- else
- {
- --- 10312,10319 ----
- )
- reg_pat[i++] = '?';
- else
- ! if (*p == ',' || *p == '%' || *p == '#'
- ! || *p == ' ' || *p == '{')
- reg_pat[i++] = *p;
- else
- {
- *** ../vim-7.3.1294/src/misc1.c 2013-06-17 19:26:29.000000000 +0200
- --- src/misc1.c 2013-07-03 16:39:46.000000000 +0200
- ***************
- *** 10457,10462 ****
- --- 10457,10510 ----
- }
- #endif
-
- + static int has_env_var __ARGS((char_u *p));
- +
- + /*
- + * Return TRUE if "p" contains what looks like an environment variable.
- + * Allowing for escaping.
- + */
- + static int
- + has_env_var(p)
- + char_u *p;
- + {
- + for ( ; *p; mb_ptr_adv(p))
- + {
- + if (*p == '\\' && p[1] != NUL)
- + ++p;
- + else if (vim_strchr((char_u *)
- + #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
- + "$%"
- + #else
- + "$"
- + #endif
- + , *p) != NULL)
- + return TRUE;
- + }
- + return FALSE;
- + }
- +
- + #ifdef SPECIAL_WILDCHAR
- + static int has_special_wildchar __ARGS((char_u *p));
- +
- + /*
- + * Return TRUE if "p" contains a special wildcard character.
- + * Allowing for escaping.
- + */
- + static int
- + has_special_wildchar(p)
- + char_u *p;
- + {
- + for ( ; *p; mb_ptr_adv(p))
- + {
- + if (*p == '\\' && p[1] != NUL)
- + ++p;
- + else if (vim_strchr((char_u *)SPECIAL_WILDCHAR, *p) != NULL)
- + return TRUE;
- + }
- + return FALSE;
- + }
- + #endif
- +
- /*
- * Generic wildcard expansion code.
- *
- ***************
- *** 10507,10513 ****
- */
- for (i = 0; i < num_pat; i++)
- {
- ! if (vim_strpbrk(pat[i], (char_u *)SPECIAL_WILDCHAR) != NULL
- # ifdef VIM_BACKTICK
- && !(vim_backtick(pat[i]) && pat[i][1] == '=')
- # endif
- --- 10555,10561 ----
- */
- for (i = 0; i < num_pat; i++)
- {
- ! if (has_special_wildchar(pat[i])
- # ifdef VIM_BACKTICK
- && !(vim_backtick(pat[i]) && pat[i][1] == '=')
- # endif
- ***************
- *** 10537,10543 ****
- /*
- * First expand environment variables, "~/" and "~user/".
- */
- ! if (vim_strchr(p, '$') != NULL || *p == '~')
- {
- p = expand_env_save_opt(p, TRUE);
- if (p == NULL)
- --- 10585,10591 ----
- /*
- * First expand environment variables, "~/" and "~user/".
- */
- ! if (has_env_var(p) || *p == '~')
- {
- p = expand_env_save_opt(p, TRUE);
- if (p == NULL)
- ***************
- *** 10548,10554 ****
- * variable, use the shell to do that. Discard previously
- * found file names and start all over again.
- */
- ! else if (vim_strchr(p, '$') != NULL || *p == '~')
- {
- vim_free(p);
- ga_clear_strings(&ga);
- --- 10596,10602 ----
- * variable, use the shell to do that. Discard previously
- * found file names and start all over again.
- */
- ! else if (has_env_var(p) || *p == '~')
- {
- vim_free(p);
- ga_clear_strings(&ga);
- *** ../vim-7.3.1294/src/version.c 2013-07-03 15:46:59.000000000 +0200
- --- src/version.c 2013-07-03 15:51:54.000000000 +0200
- ***************
- *** 730,731 ****
- --- 730,733 ----
- { /* Add new patch number below this line */
- + /**/
- + 1295,
- /**/
-
- --
- When I look deep into your eyes, I see JPEG artifacts.
- I can tell by the pixels that we're wrong for each other. (xkcd)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///
-