mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	patch 8.2.0003: Build file dependencies are incomplete
Problem: Build file dependencies are incomplete. Solution: Fix the dependencies. (Ken Takata, closes #5356)
This commit is contained in:
		
							
								
								
									
										73
									
								
								runtime/autoload/dist/ft.vim
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								runtime/autoload/dist/ft.vim
									
									
									
									
										vendored
									
									
								
							| @@ -107,6 +107,25 @@ export def BindzoneCheck(default = '') | |||||||
|   endif |   endif | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
|  | # Returns true if file content looks like RAPID | ||||||
|  | def IsRapid(sChkExt: string = ""): bool | ||||||
|  |   if sChkExt == "cfg" | ||||||
|  |     return getline(1) =~? '\v^%(EIO|MMC|MOC|PROC|SIO|SYS):CFG' | ||||||
|  |   endif | ||||||
|  |   # called from FTmod, FTprg or FTsys | ||||||
|  |   return getline(nextnonblank(1)) =~? '\v^\s*%(\%{3}|module\s+\k+\s*%(\(|$))' | ||||||
|  | enddef | ||||||
|  |  | ||||||
|  | export def FTcfg() | ||||||
|  |   if exists("g:filetype_cfg") | ||||||
|  |     exe "setf " .. g:filetype_cfg | ||||||
|  |   elseif IsRapid("cfg") | ||||||
|  |     setf rapid | ||||||
|  |   else | ||||||
|  |     setf cfg | ||||||
|  |   endif | ||||||
|  | enddef | ||||||
|  |  | ||||||
| export def FTlpc() | export def FTlpc() | ||||||
|   if exists("g:lpc_syntax_for_c") |   if exists("g:lpc_syntax_for_c") | ||||||
|     var lnum = 1 |     var lnum = 1 | ||||||
| @@ -168,7 +187,7 @@ enddef | |||||||
|  |  | ||||||
| export def FTent() | export def FTent() | ||||||
|   # This function checks for valid cl syntax in the first five lines. |   # This function checks for valid cl syntax in the first five lines. | ||||||
|   # Look for either an opening comment, '#', or a block start, '{". |   # Look for either an opening comment, '#', or a block start, '{'. | ||||||
|   # If not found, assume SGML. |   # If not found, assume SGML. | ||||||
|   var lnum = 1 |   var lnum = 1 | ||||||
|   while lnum < 6 |   while lnum < 6 | ||||||
| @@ -410,6 +429,36 @@ export def FTmm() | |||||||
|   setf nroff |   setf nroff | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
|  | # Returns true if file content looks like LambdaProlog | ||||||
|  | def IsLProlog(): bool | ||||||
|  |   # skip apparent comments and blank lines, what looks like  | ||||||
|  |   # LambdaProlog comment may be RAPID header | ||||||
|  |   var l: number = nextnonblank(1) | ||||||
|  |   while l > 0 && l < line('$') && getline(l) =~ '^\s*%' # LambdaProlog comment | ||||||
|  |     l = nextnonblank(l + 1) | ||||||
|  |   endwhile | ||||||
|  |   # this pattern must not catch a go.mod file | ||||||
|  |   return getline(l) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)' | ||||||
|  | enddef | ||||||
|  |  | ||||||
|  | # Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod | ||||||
|  | export def FTmod() | ||||||
|  |   if exists("g:filetype_mod") | ||||||
|  |     exe "setf " .. g:filetype_mod | ||||||
|  |   elseif IsLProlog() | ||||||
|  |     setf lprolog | ||||||
|  |   elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)' | ||||||
|  |     setf modula2 | ||||||
|  |   elseif IsRapid() | ||||||
|  |     setf rapid | ||||||
|  |   elseif expand("<afile>") =~ '\<go.mod$' | ||||||
|  |     setf gomod | ||||||
|  |   else | ||||||
|  |     # Nothing recognized, assume modsim3 | ||||||
|  |     setf modsim3 | ||||||
|  |   endif | ||||||
|  | enddef | ||||||
|  |  | ||||||
| export def FTpl() | export def FTpl() | ||||||
|   if exists("g:filetype_pl") |   if exists("g:filetype_pl") | ||||||
|     exe "setf " .. g:filetype_pl |     exe "setf " .. g:filetype_pl | ||||||
| @@ -526,6 +575,18 @@ export def FTpp() | |||||||
|   endif |   endif | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
|  | # Determine if *.prg is ABB RAPID. Can also be Clipper, FoxPro or eviews | ||||||
|  | export def FTprg() | ||||||
|  |   if exists("g:filetype_prg") | ||||||
|  |     exe "setf " .. g:filetype_prg | ||||||
|  |   elseif IsRapid() | ||||||
|  |     setf rapid | ||||||
|  |   else | ||||||
|  |     # Nothing recognized, assume Clipper | ||||||
|  |     setf clipper | ||||||
|  |   endif | ||||||
|  | enddef | ||||||
|  |  | ||||||
| export def FTr() | export def FTr() | ||||||
|   var max = line("$") > 50 ? 50 : line("$") |   var max = line("$") > 50 ? 50 : line("$") | ||||||
|  |  | ||||||
| @@ -572,7 +633,7 @@ export def McSetf() | |||||||
|       return |       return | ||||||
|     endif |     endif | ||||||
|   endfor |   endfor | ||||||
|   setf m4  " Default: Sendmail .mc file |   setf m4  # Default: Sendmail .mc file | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
| # Called from filetype.vim and scripts.vim. | # Called from filetype.vim and scripts.vim. | ||||||
| @@ -735,6 +796,14 @@ export def FTperl(): number | |||||||
|   return 0 |   return 0 | ||||||
| enddef | enddef | ||||||
|  |  | ||||||
|  | export def FTsys() | ||||||
|  |   if IsRapid() | ||||||
|  |     setf rapid | ||||||
|  |   else | ||||||
|  |     setf bat | ||||||
|  |   endif | ||||||
|  | enddef | ||||||
|  |  | ||||||
| # Choose context, plaintex, or tex (LaTeX) based on these rules: | # Choose context, plaintex, or tex (LaTeX) based on these rules: | ||||||
| # 1. Check the first line of the file for "%&<format>". | # 1. Check the first line of the file for "%&<format>". | ||||||
| # 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords. | # 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords. | ||||||
|   | |||||||
| @@ -148,6 +148,7 @@ variables can be used to overrule the filetype used for certain extensions: | |||||||
| 	*.i		g:filetype_i	|ft-progress-syntax| | 	*.i		g:filetype_i	|ft-progress-syntax| | ||||||
| 	*.inc		g:filetype_inc | 	*.inc		g:filetype_inc | ||||||
| 	*.m		g:filetype_m	|ft-mathematica-syntax| | 	*.m		g:filetype_m	|ft-mathematica-syntax| | ||||||
|  | 	*.mod		g:filetype_mod | ||||||
| 	*.p		g:filetype_p	|ft-pascal-syntax| | 	*.p		g:filetype_p	|ft-pascal-syntax| | ||||||
| 	*.pl		g:filetype_pl | 	*.pl		g:filetype_pl | ||||||
| 	*.pp		g:filetype_pp	|ft-pascal-syntax| | 	*.pp		g:filetype_pp	|ft-pascal-syntax| | ||||||
|   | |||||||
| @@ -205,11 +205,13 @@ au BufNewFile,BufRead *.iba,*.ibi		setf ibasic | |||||||
| " FreeBasic file (similar to QBasic) | " FreeBasic file (similar to QBasic) | ||||||
| au BufNewFile,BufRead *.fb			setf freebasic | au BufNewFile,BufRead *.fb			setf freebasic | ||||||
|  |  | ||||||
| " Batch file for MSDOS. | " Batch file for MSDOS. See dist#ft#FTsys for *.sys | ||||||
| au BufNewFile,BufRead *.bat,*.sys		setf dosbatch | au BufNewFile,BufRead *.bat 			setf dosbatch | ||||||
| " *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. | " *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. | ||||||
| au BufNewFile,BufRead *.cmd | au BufNewFile,BufRead *.cmd | ||||||
| 	\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif | 	\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif | ||||||
|  | " ABB RAPID or Batch file for MSDOS. | ||||||
|  | au BufNewFile,BufRead *.sys\c 			call dist#ft#FTsys() | ||||||
|  |  | ||||||
| " Batch file for 4DOS | " Batch file for 4DOS | ||||||
| au BufNewFile,BufRead *.btm			call dist#ft#FTbtm() | au BufNewFile,BufRead *.btm			call dist#ft#FTbtm() | ||||||
| @@ -360,13 +362,8 @@ au BufNewFile,BufRead *.eni			setf cl | |||||||
| " Clever or dtd | " Clever or dtd | ||||||
| au BufNewFile,BufRead *.ent			call dist#ft#FTent() | au BufNewFile,BufRead *.ent			call dist#ft#FTent() | ||||||
|  |  | ||||||
| " Clipper (or FoxPro; could also be eviews) | " Clipper, FoxPro, ABB RAPID or eviews | ||||||
| au BufNewFile,BufRead *.prg | au BufNewFile,BufRead *.prg\c			call dist#ft#FTprg() | ||||||
| 	\ if exists("g:filetype_prg") | |  | ||||||
| 	\   exe "setf " . g:filetype_prg | |  | ||||||
| 	\ else | |  | ||||||
| 	\   setf clipper | |  | ||||||
| 	\ endif |  | ||||||
|  |  | ||||||
| " Clojure | " Clojure | ||||||
| au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc		setf clojure | au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc		setf clojure | ||||||
| @@ -444,7 +441,7 @@ au BufNewFile,BufRead *quake[1-3]/*.cfg			setf quake | |||||||
| au BufNewFile,BufRead *.qc			setf c | au BufNewFile,BufRead *.qc			setf c | ||||||
|  |  | ||||||
| " Configure files | " Configure files | ||||||
| au BufNewFile,BufRead *.cfg			setf cfg | au BufNewFile,BufRead *.cfg\c			call dist#ft#FTcfg() | ||||||
|  |  | ||||||
| " Cucumber | " Cucumber | ||||||
| au BufNewFile,BufRead *.feature			setf cucumber | au BufNewFile,BufRead *.feature			setf cucumber | ||||||
| @@ -980,7 +977,7 @@ au BufNewFile,BufRead *.latte,*.lte		setf latte | |||||||
| " Limits | " Limits | ||||||
| au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf	setf limits | au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf	setf limits | ||||||
|  |  | ||||||
| " LambdaProlog (*.mod too, see Modsim) | " LambdaProlog (see dist#ft#FTmod for *.mod) | ||||||
| au BufNewFile,BufRead *.sig			setf lprolog | au BufNewFile,BufRead *.sig			setf lprolog | ||||||
|  |  | ||||||
| " LDAP LDIF | " LDAP LDIF | ||||||
| @@ -1143,18 +1140,11 @@ au BufNewFile,BufRead *.mms			call dist#ft#FTmms() | |||||||
| " Symbian meta-makefile definition (MMP) | " Symbian meta-makefile definition (MMP) | ||||||
| au BufNewFile,BufRead *.mmp			setf mmp | au BufNewFile,BufRead *.mmp			setf mmp | ||||||
|  |  | ||||||
| " Modsim III (or LambdaProlog) | " ABB Rapid, Modula-2, Modsim III or LambdaProlog | ||||||
| au BufNewFile,BufRead *.mod | au BufNewFile,BufRead *.mod\c 			call dist#ft#FTmod() | ||||||
| 	\ if expand("<afile>") =~ '\<go.mod$' | |  | ||||||
| 	\   setf gomod | |  | ||||||
| 	\ elseif getline(1) =~ '\<module\>' | |  | ||||||
| 	\   setf lprolog | |  | ||||||
| 	\ else | |  | ||||||
| 	\   setf modsim3 | |  | ||||||
| 	\ endif |  | ||||||
|  |  | ||||||
| " Modula-2  (.md removed in favor of Markdown) | " Modula-2  (.md removed in favor of Markdown, see dist#ft#FTmod for *.MOD) | ||||||
| au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi	setf modula2 | au BufNewFile,BufRead *.m2,*.DEF,*.mi		setf modula2 | ||||||
|  |  | ||||||
| " Modula-3 (.m3, .i3, .mg, .ig) | " Modula-3 (.m3, .i3, .mg, .ig) | ||||||
| au BufNewFile,BufRead *.[mi][3g]		setf modula3 | au BufNewFile,BufRead *.[mi][3g]		setf modula3 | ||||||
|   | |||||||
| @@ -99,7 +99,7 @@ let s:filename_checks = { | |||||||
|     \ 'cdrtoc': ['file.toc'], |     \ 'cdrtoc': ['file.toc'], | ||||||
|     \ 'cf': ['file.cfm', 'file.cfi', 'file.cfc'], |     \ 'cf': ['file.cfm', 'file.cfi', 'file.cfc'], | ||||||
|     \ 'cfengine': ['cfengine.conf'], |     \ 'cfengine': ['cfengine.conf'], | ||||||
|     \ 'cfg': ['file.cfg', 'file.hgrc', 'filehgrc', 'hgrc', 'some-hgrc'], |     \ 'cfg': ['file.hgrc', 'filehgrc', 'hgrc', 'some-hgrc'], | ||||||
|     \ 'ch': ['file.chf'], |     \ 'ch': ['file.chf'], | ||||||
|     \ 'chaiscript': ['file.chai'], |     \ 'chaiscript': ['file.chai'], | ||||||
|     \ 'chaskell': ['file.chs'], |     \ 'chaskell': ['file.chs'], | ||||||
| @@ -150,7 +150,7 @@ let s:filename_checks = { | |||||||
|     \ 'dircolors': ['.dir_colors', '.dircolors', '/etc/DIR_COLORS', 'any/etc/DIR_COLORS'], |     \ 'dircolors': ['.dir_colors', '.dircolors', '/etc/DIR_COLORS', 'any/etc/DIR_COLORS'], | ||||||
|     \ 'dnsmasq': ['/etc/dnsmasq.conf', '/etc/dnsmasq.d/file', 'any/etc/dnsmasq.conf', 'any/etc/dnsmasq.d/file'], |     \ 'dnsmasq': ['/etc/dnsmasq.conf', '/etc/dnsmasq.d/file', 'any/etc/dnsmasq.conf', 'any/etc/dnsmasq.d/file'], | ||||||
|     \ 'dockerfile': ['Containerfile', 'Dockerfile', 'file.Dockerfile', 'Dockerfile.debian', 'Containerfile.something'], |     \ 'dockerfile': ['Containerfile', 'Dockerfile', 'file.Dockerfile', 'Dockerfile.debian', 'Containerfile.something'], | ||||||
|     \ 'dosbatch': ['file.bat', 'file.sys'], |     \ 'dosbatch': ['file.bat'], | ||||||
|     \ 'dosini': ['.editorconfig', '/etc/pacman.conf', '/etc/yum.conf', 'file.ini', 'npmrc', '.npmrc', 'php.ini', 'php.ini-5', 'php.ini-file', '/etc/yum.repos.d/file', 'any/etc/pacman.conf', 'any/etc/yum.conf', 'any/etc/yum.repos.d/file', 'file.wrap'], |     \ 'dosini': ['.editorconfig', '/etc/pacman.conf', '/etc/yum.conf', 'file.ini', 'npmrc', '.npmrc', 'php.ini', 'php.ini-5', 'php.ini-file', '/etc/yum.repos.d/file', 'any/etc/pacman.conf', 'any/etc/yum.conf', 'any/etc/yum.repos.d/file', 'file.wrap'], | ||||||
|     \ 'dot': ['file.dot', 'file.gv'], |     \ 'dot': ['file.dot', 'file.gv'], | ||||||
|     \ 'dracula': ['file.drac', 'file.drc', 'filelvs', 'filelpe', 'drac.file', 'lpe', 'lvs', 'some-lpe', 'some-lvs'], |     \ 'dracula': ['file.drac', 'file.drc', 'filelvs', 'filelpe', 'drac.file', 'lpe', 'lvs', 'some-lpe', 'some-lvs'], | ||||||
| @@ -616,7 +616,7 @@ let s:filename_checks = { | |||||||
|     \ } |     \ } | ||||||
|  |  | ||||||
| let s:filename_case_checks = { | let s:filename_case_checks = { | ||||||
|     \ 'modula2': ['file.DEF', 'file.MOD'], |     \ 'modula2': ['file.DEF'], | ||||||
|     \ 'bzl': ['file.BUILD', 'BUILD'], |     \ 'bzl': ['file.BUILD', 'BUILD'], | ||||||
|     \ } |     \ } | ||||||
|  |  | ||||||
| @@ -832,6 +832,36 @@ func Test_bas_file() | |||||||
|   filetype off |   filetype off | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
|  | " Test dist#ft#FTcfg() | ||||||
|  | func Test_cfg_file() | ||||||
|  |   filetype on | ||||||
|  |  | ||||||
|  |   " *.cfg defaults to cfg | ||||||
|  |   call writefile(['looks like cfg'], 'cfgfile.cfg') | ||||||
|  |   split cfgfile.cfg | ||||||
|  |   call assert_equal('cfg', &filetype) | ||||||
|  |  | ||||||
|  |   let g:filetype_cfg = 'other' | ||||||
|  |   edit | ||||||
|  |   call assert_equal('other', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   unlet g:filetype_cfg | ||||||
|  |  | ||||||
|  |   " RAPID cfg | ||||||
|  |   let ext = 'cfg' | ||||||
|  |   for i in ['EIO', 'MMC', 'MOC', 'PROC', 'SIO', 'SYS'] | ||||||
|  |     call writefile([i .. ':CFG'], 'cfgfile.' .. ext) | ||||||
|  |     execute "split cfgfile." .. ext | ||||||
|  |     call assert_equal('rapid', &filetype) | ||||||
|  |     bwipe! | ||||||
|  |     call delete('cfgfile.' .. ext) | ||||||
|  |     " check different case of file extension | ||||||
|  |     let ext = substitute(ext, '\(\l\)', '\u\1', '') | ||||||
|  |   endfor | ||||||
|  |  | ||||||
|  |   filetype off | ||||||
|  | endfunc | ||||||
|  |  | ||||||
| func Test_d_file() | func Test_d_file() | ||||||
|   filetype on |   filetype on | ||||||
|  |  | ||||||
| @@ -1278,6 +1308,81 @@ func Test_m_file() | |||||||
|   filetype off |   filetype off | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
|  | func Test_mod_file() | ||||||
|  |   filetype on | ||||||
|  |  | ||||||
|  |   " *.mod defaults to Modsim III | ||||||
|  |   call writefile(['locks like Modsim III'], 'modfile.mod') | ||||||
|  |   split modfile.mod | ||||||
|  |   call assert_equal('modsim3', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " Users preference set by g:filetype_mod | ||||||
|  |   let g:filetype_mod = 'lprolog' | ||||||
|  |   split modfile.mod | ||||||
|  |   call assert_equal('lprolog', &filetype) | ||||||
|  |   unlet g:filetype_mod | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " RAPID header start with a line containing only "%%%",  | ||||||
|  |   " but is not always present. | ||||||
|  |   call writefile(['%%%'], 'modfile.mod') | ||||||
|  |   split modfile.mod | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('modfile.mod') | ||||||
|  |  | ||||||
|  |   " RAPID supports umlauts in module names, leading spaces, | ||||||
|  |   " the .mod extension is not case sensitive. | ||||||
|  |   call writefile(['  module ÜmlautModule'], 'modfile.Mod') | ||||||
|  |   split modfile.Mod | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('modfile.Mod') | ||||||
|  |  | ||||||
|  |   " RAPID is not case sensitive, embedded spaces, sysmodule,  | ||||||
|  |   " file starts with empty line(s). | ||||||
|  |   call writefile(['', 'MODULE  rapidmödüle  (SYSMODULE,NOSTEPIN)'], 'modfile.MOD') | ||||||
|  |   split modfile.MOD | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " Modula-2 MODULE not start of line | ||||||
|  |   call writefile(['IMPLEMENTATION MODULE Module2Mod;'], 'modfile.MOD') | ||||||
|  |   split modfile.MOD | ||||||
|  |   call assert_equal('modula2', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " Modula-2 with comment and empty lines prior MODULE | ||||||
|  |   call writefile(['', '(* with',  ' comment *)', '', 'MODULE Module2Mod;'], 'modfile.MOD') | ||||||
|  |   split modfile.MOD | ||||||
|  |   call assert_equal('modula2', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('modfile.MOD') | ||||||
|  |  | ||||||
|  |   " LambdaProlog module | ||||||
|  |   call writefile(['module lpromod.'], 'modfile.mod') | ||||||
|  |   split modfile.mod | ||||||
|  |   call assert_equal('lprolog', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " LambdaProlog with comment and empty lines prior module | ||||||
|  |   call writefile(['', '% with',  '% comment', '', 'module lpromod.'], 'modfile.mod') | ||||||
|  |   split modfile.mod | ||||||
|  |   call assert_equal('lprolog', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('modfile.mod') | ||||||
|  |  | ||||||
|  |   " go.mod | ||||||
|  |   call writefile(['module example.com/M'], 'go.mod') | ||||||
|  |   split go.mod | ||||||
|  |   call assert_equal('gomod', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('go.mod') | ||||||
|  |  | ||||||
|  |   filetype off | ||||||
|  | endfunc | ||||||
|  |  | ||||||
| func Test_patch_file() | func Test_patch_file() | ||||||
|   filetype on |   filetype on | ||||||
|  |  | ||||||
| @@ -1346,6 +1451,50 @@ func Test_pp_file() | |||||||
|   filetype off |   filetype off | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
|  | " Test dist#ft#FTprg() | ||||||
|  | func Test_prg_file() | ||||||
|  |   filetype on | ||||||
|  |  | ||||||
|  |   " *.prg defaults to clipper | ||||||
|  |   call writefile(['looks like clipper'], 'prgfile.prg') | ||||||
|  |   split prgfile.prg | ||||||
|  |   call assert_equal('clipper', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " Users preference set by g:filetype_prg | ||||||
|  |   let g:filetype_prg = 'eviews' | ||||||
|  |   split prgfile.prg | ||||||
|  |   call assert_equal('eviews', &filetype) | ||||||
|  |   unlet g:filetype_prg | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " RAPID header start with a line containing only "%%%",  | ||||||
|  |   " but is not always present. | ||||||
|  |   call writefile(['%%%'], 'prgfile.prg') | ||||||
|  |   split prgfile.prg | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('prgfile.prg') | ||||||
|  |  | ||||||
|  |   " RAPID supports umlauts in module names, leading spaces, | ||||||
|  |   " the .prg extension is not case sensitive. | ||||||
|  |   call writefile(['  module ÜmlautModule'], 'prgfile.Prg') | ||||||
|  |   split prgfile.Prg | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('prgfile.Prg') | ||||||
|  |  | ||||||
|  |   " RAPID is not case sensitive, embedded spaces, sysmodule,  | ||||||
|  |   " file starts with empty line(s). | ||||||
|  |   call writefile(['', 'MODULE  rapidmödüle  (SYSMODULE,NOSTEPIN)'], 'prgfile.PRG') | ||||||
|  |   split prgfile.PRG | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('prgfile.PRG') | ||||||
|  |  | ||||||
|  |   filetype off | ||||||
|  | endfunc | ||||||
|  |  | ||||||
| func Test_src_file() | func Test_src_file() | ||||||
|   filetype on |   filetype on | ||||||
|  |  | ||||||
| @@ -1379,6 +1528,42 @@ func Test_src_file() | |||||||
|   filetype off |   filetype off | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
|  | func Test_sys_file() | ||||||
|  |   filetype on | ||||||
|  |  | ||||||
|  |   " *.sys defaults to Batch file for MSDOS | ||||||
|  |   call writefile(['looks like dos batch'], 'sysfile.sys') | ||||||
|  |   split sysfile.sys | ||||||
|  |   call assert_equal('bat', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |  | ||||||
|  |   " RAPID header start with a line containing only "%%%",  | ||||||
|  |   " but is not always present. | ||||||
|  |   call writefile(['%%%'], 'sysfile.sys') | ||||||
|  |   split sysfile.sys | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('sysfile.sys') | ||||||
|  |  | ||||||
|  |   " RAPID supports umlauts in module names, leading spaces, | ||||||
|  |   " the .sys extension is not case sensitive. | ||||||
|  |   call writefile(['  module ÜmlautModule'], 'sysfile.Sys') | ||||||
|  |   split sysfile.Sys | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('sysfile.Sys') | ||||||
|  |  | ||||||
|  |   " RAPID is not case sensitive, embedded spaces, sysmodule,  | ||||||
|  |   " file starts with empty line(s). | ||||||
|  |   call writefile(['', 'MODULE  rapidmödüle  (SYSMODULE,NOSTEPIN)'], 'sysfile.SYS') | ||||||
|  |   split sysfile.SYS | ||||||
|  |   call assert_equal('rapid', &filetype) | ||||||
|  |   bwipe! | ||||||
|  |   call delete('sysfile.SYS') | ||||||
|  |  | ||||||
|  |   filetype off | ||||||
|  | endfunc | ||||||
|  |  | ||||||
| func Test_tex_file() | func Test_tex_file() | ||||||
|   filetype on |   filetype on | ||||||
|  |  | ||||||
|   | |||||||
| @@ -746,6 +746,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     4720, | ||||||
| /**/ | /**/ | ||||||
|     4719, |     4719, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user