diff --git a/7.4.564 b/7.4.564 new file mode 100644 index 0000000..16f5e75 --- /dev/null +++ b/7.4.564 @@ -0,0 +1,246 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.564 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.564 +Problem: FEAT_OSFILETYPE is used even though it's never defined. +Solution: Remove the code. (Christian Brabandt) +Files: src/fileio.c + + +*** ../vim-7.4.563/src/fileio.c 2014-11-19 16:38:01.516679915 +0100 +--- src/fileio.c 2015-01-07 14:40:04.731344734 +0100 +*************** +*** 10049,10105 **** + { + regmatch_T regmatch; + int result = FALSE; +- #ifdef FEAT_OSFILETYPE +- int no_pattern = FALSE; /* TRUE if check is filetype only */ +- char_u *type_start; +- char_u c; +- int match = FALSE; +- #endif + + regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */ +! #ifdef FEAT_OSFILETYPE +! if (*pattern == '<') +! { +! /* There is a filetype condition specified with this pattern. +! * Check the filetype matches first. If not, don't bother with the +! * pattern (set regprog to NULL). +! * Always use magic for the regexp. +! */ +! +! for (type_start = pattern + 1; (c = *pattern); pattern++) +! { +! if ((c == ';' || c == '>') && match == FALSE) +! { +! *pattern = NUL; /* Terminate the string */ +! /* TODO: match with 'filetype' of buffer that "fname" comes +! * from. */ +! match = mch_check_filetype(fname, type_start); +! *pattern = c; /* Restore the terminator */ +! type_start = pattern + 1; +! } +! if (c == '>') +! break; +! } +! +! /* (c should never be NUL, but check anyway) */ +! if (match == FALSE || c == NUL) +! regmatch.regprog = NULL; /* Doesn't match - don't check pat. */ +! else if (*pattern == NUL) +! { +! regmatch.regprog = NULL; /* Vim will try to free regprog later */ +! no_pattern = TRUE; /* Always matches - don't check pat. */ +! } +! else +! regmatch.regprog = vim_regcomp(pattern + 1, RE_MAGIC); +! } + else +! #endif +! { +! if (prog != NULL) +! regmatch.regprog = *prog; +! else +! regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); +! } + + /* + * Try for a match with the pattern with: +--- 10049,10060 ---- + { + regmatch_T regmatch; + int result = FALSE; + + regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */ +! if (prog != NULL) +! regmatch.regprog = *prog; + else +! regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); + + /* + * Try for a match with the pattern with: +*************** +*** 10107,10125 **** + * 2. the short file name, when the pattern has a '/'. + * 3. the tail of the file name, when the pattern has no '/'. + */ +! if ( +! #ifdef FEAT_OSFILETYPE +! /* If the check is for a filetype only and we don't care +! * about the path then skip all the regexp stuff. +! */ +! no_pattern || +! #endif +! (regmatch.regprog != NULL + && ((allow_dirs + && (vim_regexec(®match, fname, (colnr_T)0) + || (sfname != NULL + && vim_regexec(®match, sfname, (colnr_T)0)))) +! || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0))))) + result = TRUE; + + if (prog != NULL) +--- 10062,10073 ---- + * 2. the short file name, when the pattern has a '/'. + * 3. the tail of the file name, when the pattern has no '/'. + */ +! if (regmatch.regprog != NULL + && ((allow_dirs + && (vim_regexec(®match, fname, (colnr_T)0) + || (sfname != NULL + && vim_regexec(®match, sfname, (colnr_T)0)))) +! || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0)))) + result = TRUE; + + if (prog != NULL) +*************** +*** 10176,10184 **** + * allow_dirs, otherwise FALSE is put there -- webb. + * Handle backslashes before special characters, like "\*" and "\ ". + * +- * If FEAT_OSFILETYPE defined then pass initial through unchanged. Eg: +- * 'myfile' becomes '^myfile$' -- leonard. +- * + * Returns NULL when out of memory. + */ + char_u * +--- 10124,10129 ---- +*************** +*** 10188,10241 **** + char *allow_dirs; /* Result passed back out in here */ + int no_bslash UNUSED; /* Don't use a backward slash as pathsep */ + { +! int size; + char_u *endp; + char_u *reg_pat; + char_u *p; + int i; + int nested = 0; + int add_dollar = TRUE; +- #ifdef FEAT_OSFILETYPE +- int check_length = 0; +- #endif + + if (allow_dirs != NULL) + *allow_dirs = FALSE; + if (pat_end == NULL) + pat_end = pat + STRLEN(pat); + +- #ifdef FEAT_OSFILETYPE +- /* Find out how much of the string is the filetype check */ +- if (*pat == '<') +- { +- /* Count chars until the next '>' */ +- for (p = pat + 1; p < pat_end && *p != '>'; p++) +- ; +- if (p < pat_end) +- { +- /* Pattern is of the form <.*>.* */ +- check_length = p - pat + 1; +- if (p + 1 >= pat_end) +- { +- /* The 'pattern' is a filetype check ONLY */ +- reg_pat = (char_u *)alloc(check_length + 1); +- if (reg_pat != NULL) +- { +- mch_memmove(reg_pat, pat, (size_t)check_length); +- reg_pat[check_length] = NUL; +- } +- return reg_pat; +- } +- } +- /* else: there was no closing '>' - assume it was a normal pattern */ +- +- } +- pat += check_length; +- size = 2 + check_length; +- #else +- size = 2; /* '^' at start, '$' at end */ +- #endif +- + for (p = pat; p < pat_end; p++) + { + switch (*p) +--- 10133,10151 ---- + char *allow_dirs; /* Result passed back out in here */ + int no_bslash UNUSED; /* Don't use a backward slash as pathsep */ + { +! int size = 2; /* '^' at start, '$' at end */ + char_u *endp; + char_u *reg_pat; + char_u *p; + int i; + int nested = 0; + int add_dollar = TRUE; + + if (allow_dirs != NULL) + *allow_dirs = FALSE; + if (pat_end == NULL) + pat_end = pat + STRLEN(pat); + + for (p = pat; p < pat_end; p++) + { + switch (*p) +*************** +*** 10270,10283 **** + if (reg_pat == NULL) + return NULL; + +- #ifdef FEAT_OSFILETYPE +- /* Copy the type check in to the start. */ +- if (check_length) +- mch_memmove(reg_pat, pat - check_length, (size_t)check_length); +- i = check_length; +- #else + i = 0; +- #endif + + if (pat[0] == '*') + while (pat[0] == '*' && pat < pat_end - 1) +--- 10180,10186 ---- +*** ../vim-7.4.563/src/version.c 2015-01-07 14:02:47.609220508 +0100 +--- src/version.c 2015-01-07 14:32:36.464539801 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 564, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +55. You ask your doctor to implant a gig in your brain. + + /// 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 ///