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 ///