diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-01-14 21:18:42 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-01-14 21:18:42 +0000 |
commit | 316059c019db0c65a148285a94467bd07d2ae6cc (patch) | |
tree | 6f92423a4f0066887447e71c760b8d58850d2da9 /src | |
parent | ea8bd73212d19769581ae2a8e150b7314f5ba864 (diff) |
updated for version 7.0181
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 12 | ||||
-rw-r--r-- | src/fileio.c | 11 | ||||
-rw-r--r-- | src/os_unix.c | 60 | ||||
-rw-r--r-- | src/po/Makefile | 7 |
4 files changed, 46 insertions, 44 deletions
diff --git a/src/Makefile b/src/Makefile index 5236e9df25..da6137cbba 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1602,7 +1602,6 @@ xxd/xxd$(EXEEXT): xxd/xxd.c # Generate the converted .mo files separately, it's no problem if this fails. languages: @if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ - $(MAKE) language-check; \ cd $(PODIR); \ CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix); \ fi @@ -1610,11 +1609,6 @@ languages: cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix) converted; \ fi -# Separate target to check the po files for valitidy, because it depends on -# ./vim. -language-check: $(VIMTARGET) - cd $(PODIR); $(MAKE) check VIM=../$(VIMTARGET) - # Update the *.po files for changes in the sources. Only run manually. update-po: cd $(PODIR); CC="$(CC)" $(MAKE) prefix=$(DESTDIR)$(prefix) update-po @@ -1706,9 +1700,15 @@ types.vim: $(TAGS_SRC) $(TAGS_INCL) test check: $(MAKE) -f Makefile $(VIMTARGET) cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) + @if test -n "$(MAKEMO)" -a -f $(PODIR)/Makefile; then \ + cd $(PODIR); $(MAKE) -f Makefile check VIM=../$(VIMTARGET); \ + fi testclean: cd testdir; $(MAKE) -f Makefile clean + if test -d $(PODIR); then \ + cd $(PODIR); $(MAKE) checkclean; \ + fi # # Avoid overwriting an existing executable, somebody might be running it and diff --git a/src/fileio.c b/src/fileio.c index c5c9262998..2236bbc1a2 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -6158,7 +6158,8 @@ buf_check_timestamp(buf, focus) { retval = 1; - /* set b_mtime to stop further warnings */ + /* set b_mtime to stop further warnings (e.g., when executing + * FileChangedShell autocmd) */ if (stat_res < 0) { buf->b_mtime = 0; @@ -6341,7 +6342,7 @@ buf_check_timestamp(buf, focus) if (reload) /* Reload the buffer. */ - buf_reload(buf); + buf_reload(buf, orig_mode); #ifdef FEAT_GUI /* restore this in case an autocommand has set it; it would break @@ -6355,16 +6356,18 @@ buf_check_timestamp(buf, focus) /* * Reload a buffer that is already loaded. * Used when the file was changed outside of Vim. + * "orig_mode" is buf->b_orig_mode before the need for reloading was detected. + * buf->b_orig_mode may have been reset already. */ void -buf_reload(buf) +buf_reload(buf, orig_mode) buf_T *buf; + int orig_mode; { exarg_T ea; pos_T old_cursor; linenr_T old_topline; int old_ro = buf->b_p_ro; - int orig_mode = buf->b_orig_mode; buf_T *savebuf; int saved = OK; #ifdef FEAT_AUTOCMD diff --git a/src/os_unix.c b/src/os_unix.c index 73693b632f..faf2847a63 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -4852,6 +4852,8 @@ mch_expandpath(gap, path, flags) # define SEEK_END 2 #endif +#define SHELL_SPECIAL (char_u *)"\t \"&';<>[\\]|" + /* ARGSUSED */ int mch_expand_wildcards(num_pat, pat, num_file, file, flags) @@ -5048,22 +5050,12 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) len += STRLEN(pat[i]) + 3; /* add space and two quotes */ #else ++len; /* add space */ - for (j = 0; pat[i][j] != NUL; ) - if (vim_strchr((char_u *)" ';&<>", pat[i][j]) != NULL) - { - len += 2; /* add two quotes */ - while (pat[i][j] != NUL - && vim_strchr((char_u *)" ';&<>", pat[i][j]) != NULL) - { - ++len; - ++j; - } - } - else - { - ++len; - ++j; - } + for (j = 0; pat[i][j] != NUL; ++j) + { + if (vim_strchr(SHELL_SPECIAL, pat[i][j]) != NULL) + ++len; /* may add a backslash */ + ++len; + } #endif } command = alloc(len); @@ -5084,9 +5076,11 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) */ if (shell_style == STYLE_BT) { - STRCPY(command, pat[0] + 1); /* exclude first backtick */ + /* change `command; command& ` to (command; command ) */ + STRCPY(command, "("); + STRCAT(command, pat[0] + 1); /* exclude first backtick */ p = command + STRLEN(command) - 1; - *p = ' '; /* remove last backtick */ + *p-- = ')'; /* remove last backtick */ while (p > command && vim_iswhite(*p)) --p; if (*p == '&') /* remove trailing '&' */ @@ -5114,8 +5108,8 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) for (i = 0; i < num_pat; ++i) { /* When using system() always add extra quotes, because the shell - * is started twice. Otherwise only put quotes around spaces and - * single quotes. */ + * is started twice. Otherwise put a backslash before special + * characters, except insice ``. */ #ifdef USE_SYSTEM STRCAT(command, " \""); STRCAT(command, pat[i]); @@ -5125,30 +5119,32 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) p = command + STRLEN(command); *p++ = ' '; - for (j = 0; pat[i][j] != NUL; ) + for (j = 0; pat[i][j] != NUL; ++j) { if (pat[i][j] == '`') { intick = !intick; - *p++ = pat[i][j++]; + *p++ = pat[i][j]; } - else if (!intick && vim_strchr((char_u *)" ';&<>", - pat[i][j]) != NULL) + else if (pat[i][j] == '\\' && pat[i][j + 1] != NUL) { - /* Put quotes around special characters, but not when - * inside ``. */ - *p++ = '"'; - while (pat[i][j] != NUL && vim_strchr((char_u *)" ';&<>", + /* Remove a backslash, take char literally. */ + *p++ = pat[i][++j]; + } + else if (!intick && vim_strchr(SHELL_SPECIAL, pat[i][j]) != NULL) - *p++ = pat[i][j++]; - *p++ = '"'; + { + /* Put a backslash before a special character, but not + * when inside ``. */ + *p++ = '\\'; + *p++ = pat[i][j]; } else { /* For a backslash also copy the next character, don't * want to put quotes around it. */ - if ((*p++ = pat[i][j++]) == '\\' && pat[i][j] != NUL) - *p++ = pat[i][j++]; + if ((*p++ = pat[i][j]) == '\\' && pat[i][j + 1] != NUL) + *p++ = pat[i][++j]; } } *p = NUL; diff --git a/src/po/Makefile b/src/po/Makefile index a06488870b..185bc2a023 100644 --- a/src/po/Makefile +++ b/src/po/Makefile @@ -202,11 +202,14 @@ prefixcheck: exit 1; \ fi -clean: - rm -f core core.* *.old.po *.mo *.ck *.pot sjiscorr +clean: checkclean + rm -f core core.* *.old.po *.mo *.pot sjiscorr distclean: clean +checkclean: + rm -f *.ck + # # NOTE: If you get an error for gvimext.cpp not found, you need to unpack the # extra archive. |