Mercurial > vim
changeset 119:e8f07016e34d
updated for version 7.0042
author | vimboss |
---|---|
date | Wed, 19 Jan 2005 22:18:32 +0000 |
parents | 45fd0ec37cf3 |
children | 34423a71d203 |
files | Filelist runtime/doc/eval.txt runtime/syntax/sh.vim runtime/syntax/vim.vim src/Make_bc3.mak src/Make_bc5.mak src/Make_cyg.mak src/Make_dice.mak src/Make_ivc.mak src/Make_ming.mak src/Make_mpw.mak src/Make_mvc.mak src/Make_os2.mak src/Make_ro.mak src/Make_sas.mak src/Make_vms.mms src/Makefile src/globals.h src/main.aap src/misc2.c src/move.c src/proto.h src/proto/gui_gtk.pro src/proto/gui_photon.pro src/quickfix.c src/screen.c src/structs.h src/testdir/Make_amiga.mak src/testdir/Make_dos.mak src/testdir/Make_os2.mak src/testdir/test49.vim src/testdir/test55.in src/testdir/test55.ok src/version.h |
diffstat | 34 files changed, 463 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/Filelist +++ b/Filelist @@ -30,6 +30,7 @@ SRC_ALL1 = \ src/gui.h \ src/gui_beval.c \ src/gui_beval.h \ + src/hashtable.c \ src/keymap.h \ src/macros.h \ src/main.c \ @@ -92,6 +93,7 @@ SRC_ALL2 = \ src/proto/getchar.pro \ src/proto/gui.pro \ src/proto/gui_beval.pro \ + src/proto/hashtable.pro \ src/proto/main.pro \ src/proto/mark.pro \ src/proto/mbyte.pro \
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2005 Jan 17 +*eval.txt* For Vim version 7.0aa. Last change: 2005 Jan 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -118,11 +118,11 @@ A Funcref can also be used with the |:ca :call dict.init() The name of the referenced function can be obtained with |string()|. > - :let func = string(Myfunc) + :let func = string(Fn) You can use |call()| to invoke a Funcref and use a list variable for the arguments: > - :let r = call(Myfunc, mylist) + :let r = call(Fn, mylist) 1.3 Lists ~ @@ -170,6 +170,7 @@ List concatenation ~ Two lists can be concatenated with the "+" operator: > :let longlist = mylist + [5, 6] + :let mylist += [7, 8] To prepend or append an item turn the item into a list by putting [] around it. To change a list in-place see |list-modification| below. @@ -439,6 +440,9 @@ Merging a Dictionary with another is don :call extend(adict, bdict) This extends adict with all entries from bdict. Duplicate keys cause entries in adict to be overwritten. An optional third argument can change this. +Note that the order of entries in a Dictionary is irrelevant, thus don't +expect ":echo adict" to show the items from bdict after the older entries in +adict. Weeding out entries from a Dictionary can be done with |filter()|: > :call filter(dict 'v:val =~ "x"') @@ -2119,7 +2123,7 @@ extend({expr1}, {expr2} [, {expr3}]) * used to decide what to do: {expr3} = "keep": keep the value of {expr1} {expr3} = "force": use the value of {expr2} - {expr3} = "error": give an error message + {expr3} = "error": give an error message *E737* When {expr3} is omitted then "force" is assumed. {expr1} is changed when {expr2} is not empty. If necessary @@ -3075,7 +3079,7 @@ nr2char({expr}) *nr2char()* < Note that a NUL character in the file is specified with nr2char(10), because NULs are represented with newline characters. nr2char(0) is a real NUL and terminates the - string, thus isn't very useful. + string, thus results in an empty string. prevnonblank({lnum}) *prevnonblank()* Return the line number of the first line at or above {lnum} @@ -3230,7 +3234,7 @@ reverse({list}) Reverse the order of ite search({pattern} [, {flags}]) *search()* Search for regexp pattern {pattern}. The search starts at the - cursor position. + cursor position (you can use |cursor()| to set it). {flags} is a String, which can contain these character flags: 'b' search backward instead of forward 'n' do Not move the cursor @@ -4302,6 +4306,7 @@ 7. Commands *expression-commands* When the selected range of items is partly past the end of the list, items will be added. + *:let+=* *:let-=* *:let.=* :let {var} += {expr1} Like ":let {var} = {var} + {expr1}". :let {var} -= {expr1} Like ":let {var} = {var} - {expr1}". :let {var} .= {expr1} Like ":let {var} = {var} . {expr1}".
--- a/runtime/syntax/sh.vim +++ b/runtime/syntax/sh.vim @@ -2,8 +2,8 @@ " Language: shell (sh) Korn shell (ksh) bash (sh) " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> -" Last Change: Oct 17, 2004 -" Version: 70 +" Last Change: Dec 28, 2004 +" Version: 71 " URL: http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax " " Using the following VIM variables: {{{1 @@ -66,21 +66,21 @@ syn case match syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseSingleQuote,shCaseDoubleQuote,shSpecial syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,bkshFunction,shSpecial syn cluster shColonList contains=@shCaseList -syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shSpecial,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias +syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shNumber,shOperator,shPosnParm,shSpecial,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shSpecial,shPosnParm syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shSingleQuote,shDoubleQuote,shSpecial syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shSingleQuote,shDoubleQuote,shSpecial,shExpr,shDblBrace,shDeref,shDerefSimple -syn cluster shExprList2 contains=@shExprList1,@shCaseList +syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest syn cluster shFunctionList contains=@shCaseList,shOperator syn cluster shHereBeginList contains=@shCommandSubList syn cluster shHereList contains=shBeginHere,shHerePayload syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shIdWhiteSpace,shDeref,shDerefSimple,shSpecial,shRedir,shSingleQuote,shDoubleQuote,shExpr -syn cluster shLoopList contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac +syn cluster shLoopList contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest syn cluster shSubShList contains=@shCaseList -syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shSingleQuote,shSpecial,shTestOpr +syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shSingleQuote,shSpecial,shTestOpr,shTest " Echo: {{{1 @@ -135,7 +135,7 @@ syn region shSubSh transparent matchgrou "======= "syn region shExpr transparent matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList -syn region shExpr transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1 +syn region shTest transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1 syn match shTestOpr contained "<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!=<>]" if exists("b:is_kornshell") || exists("b:is_bash") syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\\\\\|\\$+ end="\]\]" contains=@shTestList @@ -285,6 +285,9 @@ else syn region shHereDoc start="\(<<-\s*\\\_$\_s*'\z(\S*\)'\)\@=" matchgroup=shRedir end="^\s*\z1$" contains=@shHereList keepend syn region shHereDoc start="\(<<-\s*\\\_$\_s*\z(\S*\)\)\@=" matchgroup=shRedir end="^\s*\z1$" contains=@shHereList keepend syn region shHereDoc start="\(<<-\s*\\\_$\_s*\"\z(\S*\)\"\)\@=" matchgroup=shRedir end="^\s*\z1$" contains=@shHereList keepend + syn match shHerePayload "^.*$" contained skipnl nextgroup=shHerePayload contains=@shDblQuoteList + syn match shBeginLine ".*$" contained skipnl nextgroup=shHerePayload contains=@shCommandSubList + syn match shBeginHere "<<-\=\s*\S\+" contained nextgroup=shBeginLine else syn region shHereDoc matchgroup=shRedir start="<<\s*\\\=\z(\S*\)" matchgroup=shRedir end="^\z1$" contains=@shDblQuoteList syn region shHereDoc matchgroup=shRedir start="<<\s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1$" @@ -299,11 +302,6 @@ else syn region shHereDoc matchgroup=shRedir start="<<\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\z1$" syn region shHereDoc matchgroup=shRedir start="<<-\s*\\\_$\_s*\"\z(\S*\)\"" matchgroup=shRedir end="^\s*\z1$" endif - if v:version > 602 || (v:version == 602 && has("patch219")) - syn match shHerePayload "^.*$" contained skipnl nextgroup=shHerePayload contains=@shDblQuoteList - syn match shBeginLine ".*$" contained skipnl nextgroup=shHerePayload contains=@shCommandSubList - syn match shBeginHere "<<-\=\s*\S\+" contained nextgroup=shBeginLine - endif endif " Here Strings: {{{1 @@ -318,15 +316,15 @@ syn match shVariable "\<\([bwglsav]:\)\ syn match shIdWhiteSpace contained "\s" syn match shSetIdentifier contained "=" nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shSingleQuote if exists("b:is_bash") - syn region shSetList matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>[^/]"me=e-1 end="$" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="#\|="me=e-1 contains=@shIdList - syn region shSetList matchgroup=shSet start="\<set\>[^/]"me=e-1 end="$" end="[|)]"me=e-1 matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList + syn region shSetList matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="#\|="me=e-1 contains=@shIdList + syn region shSetList matchgroup=shSet start="\<set\>[^/]"me=e-1 end="$" end="\\ze[|)]" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList syn match shSet "\<\(declare\|typeset\|local\|export\|set\|unset\)$" elseif exists("b:is_kornshell") - syn region shSetList matchgroup=shSet start="\<\(typeset\|export\|unset\)\>[^/]"me=e-1 end="$" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList - syn region shSetList matchgroup=shSet start="\<set\>[^/]"me=e-1 end="$" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList + syn region shSetList matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList + syn region shSetList matchgroup=shSet start="\<set\>\ze[^/]" end="$\|\ze[})]" matchgroup=shOperator end="[;&]"me=e-1 matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList syn match shSet "\<\(typeset\|set\|export\|unset\)$" else - syn region shSetList matchgroup=shSet start="\<\(set\|export\|unset\)\>[^/]"me=e-1 end="$" end="[)|]"me=e-1 matchgroup=shOperator end="[;&]" matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList + syn region shSetList matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$\|\ze[|)]" matchgroup=shOperator end="[;&]" matchgroup=NONE end="[#=]"me=e-1 contains=@shIdList syn match shStatement "\<\(set\|export\|unset\)$" endif
--- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: Vim 7.0 script " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> -" Last Change: December 07, 2004 -" Version: 7.0-02 NOT RELEASED +" Last Change: January 19, 2005 +" Version: 7.0-2 " Automatically generated keyword lists: {{{1 " Quit when a syntax file was already loaded {{{2 @@ -16,11 +16,11 @@ syn keyword vimTodo contained COMBAK NOT syn cluster vimCommentGroup contains=vimTodo " regular vim commands {{{2 -syn keyword vimCommand contained ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cal[l] cat[ch] cc ccl[ose] cd ce[nter] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] sandbox sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] sf[ind] sfir[st sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] so[urce] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] v[global] vie[w] vi[sual] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] winpos* win[size] wn[ext] wN[ext] wp[revous] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] +syn keyword vimCommand contained ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] lan[guage] la[st] lc[d] lch[dir] le[ft] lefta[bove] l[ist] lm[ap] lmapc[lear] ln[oremap] lo[adview] loc[kmarks] ls lu[nmap] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] sandbox sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] sf[ind] sfir[st sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] so[urce] sp[lit] spr[evious] sre[wind] sta[g] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] unh[ide] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] winpos* win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] y[ank] syn match vimCommand contained "\<z[-+^.=]" " vimOptions are caught only when contained in a vimSet {{{2 -syn keyword vimOption contained : acd ai akm al aleph allowrevins altkeymap ambiwidth ambw anti antialias ar arab arabic arabicshape ari arshape autochdir autoindent autoread autowrite autowriteall aw awa background backspace backup backupcopy backupdir backupext backupskip balloondelay ballooneval bdir bdlay beval bex bg bh bin binary biosk bioskey bk bkc bl bomb breakat brk browsedir bs bsdir bsk bt bufhidden buflisted buftype casemap cb ccv cd cdpath cedit cf cfu ch charconvert ci cin cindent cink cinkeys cino cinoptions cinw cinwords clipboard cmdheight cmdwinheight cmp cms co columns com comments commentstring compatible complete completefunc confirm consk conskey copyindent cp cpo cpoptions cpt cscopepathcomp cscopeprg cscopequickfix cscopetag cscopetagorder cscopeverbose cspc csprg csqf cst csto csverb cwh debug deco def define delcombine dex dg dict dictionary diff diffexpr diffopt digraph dip dir directory display dy ea ead eadirection eb ed edcompatible ef efm ei ek enc encoding endofline eol ep equalalways equalprg errorbells errorfile errorformat esckeys et eventignore ex expandtab exrc fcl fcs fdc fde fdi fdl fdls fdm fdn fdo fdt fen fenc fencs ff ffs fileencoding fileencodings fileformat fileformats filetype fillchars fk fkmap fml fmr fo foldclose foldcolumn foldenable foldexpr foldignore foldlevel foldlevelstart foldmarker foldmethod foldminlines foldnestmax foldopen foldtext formatoptions formatprg fp ft gcr gd gdefault gfm gfn gfs gfw ghr go gp grepformat grepprg guicursor guifont guifontset guifontwide guiheadroom guioptions guipty helpfile helpheight helplang hf hh hi hid hidden highlight history hk hkmap hkmapp hkp hl hlg hls hlsearch ic icon iconstring ignorecase im imactivatekey imak imc imcmdline imd imdisable imi iminsert ims imsearch inc include includeexpr incsearch inde indentexpr indentkeys indk inex inf infercase insertmode is isf isfname isi isident isk iskeyword isp isprint joinspaces js key keymap keymodel keywordprg km kmp kp langmap langmenu laststatus lazyredraw lbr lcs linebreak lines linespace lisp lispwords list listchars lm lmap loadplugins lpl ls lsp lw lz ma magic makeef makeprg mat matchpairs matchtime maxfuncdepth maxmapdepth maxmem maxmemtot mef menuitems mfd mh mis ml mls mm mmd mmt mod modeline modelines modifiable modified more mouse mousef mousefocus mousehide mousem mousemodel mouses mouseshape mouset mousetime mp mps mzq mzquantum nf nrformats nu number numberwidth nuw oft osfiletype pa para paragraphs paste pastetoggle patchexpr patchmode path pdev penc pex pexpr pfn pheader pi pm pmbcs pmbfn popt preserveindent previewheight previewwindow printdevice printencoding printexpr printfont printheader printmbcharset printmbfont printoptions pt pvh pvw qe quoteescape readonly remap report restorescreen revins ri rightleft rightleftcmd rl rlc ro rs rtp ru ruf ruler rulerformat runtimepath sb sbo sbr sc scb scr scroll scrollbind scrolljump scrolloff scrollopt scs sect sections secure sel selection selectmode sessionoptions sft sh shcf shell shellcmdflag shellpipe shellquote shellredir shellslash shelltype shellxquote shiftround shiftwidth shm shortmess shortname showbreak showcmd showfulltag showmatch showmode shq si sidescroll sidescrolloff siso sj slm sm smartcase smartindent smarttab smd sn so softtabstop sol sp splitbelow splitright spr sr srr ss ssl ssop st sta startofline statusline stl sts su sua suffixes suffixesadd sw swapfile swapsync swb swf switchbuf sws sxq syn syntax ta tabstop tag tagbsearch taglength tagrelative tags tagstack tb tbi tbidi tbis tbs tenc term termbidi termencoding terse textauto textmode textwidth tf tgst thesaurus tildeop timeout timeoutlen title titlelen titleold titlestring tl tm to toolbar toolbariconsize top tr ts tsl tsr ttimeout ttimeoutlen ttm tty ttybuiltin ttyfast ttym ttymouse ttyscroll ttytype tw tx uc ul undolevels updatecount updatetime ut vb vbs vdir ve verbose vi viewdir viewoptions viminfo virtualedit visualbell vop wa wak warn wb wc wcm wd weirdinvert wfh wh whichwrap wig wildchar wildcharm wildignore wildmenu wildmode wim winaltkeys winfixheight winheight winminheight winminwidth winwidth wiv wiw wm wmh wmnu wmw wrap wrapmargin wrapscan write writeany writebackup writedelay ws ww +syn keyword vimOption contained : acd ai akm al aleph allowrevins altkeymap ambiwidth ambw anti antialias ar arab arabic arabicshape ari arshape autochdir autoindent autoread autowrite autowriteall aw awa background backspace backup backupcopy backupdir backupext backupskip balloondelay ballooneval bdir bdlay beval bex bg bh bin binary biosk bioskey bk bkc bl bomb breakat brk browsedir bs bsdir bsk bt bufhidden buflisted buftype casemap cb ccv cd cdpath cedit cf cfu ch charconvert ci cin cindent cink cinkeys cino cinoptions cinw cinwords clipboard cmdheight cmdwinheight cmp cms co columns com comments commentstring compatible complete completefunc confirm consk conskey copyindent cp cpo cpoptions cpt cscopepathcomp cscopeprg cscopequickfix cscopetag cscopetagorder cscopeverbose cspc csprg csqf cst csto csverb cwh debug deco def define delcombine dex dg dict dictionary diff diffexpr diffopt digraph dip dir directory display dy ea ead eadirection eb ed edcompatible ef efm ei ek enc encoding endofline eol ep equalalways equalprg errorbells errorfile errorformat esckeys et eventignore ex expandtab exrc fcl fcs fdc fde fdi fdl fdls fdm fdn fdo fdt fen fenc fencs ff ffs fileencoding fileencodings fileformat fileformats filetype fillchars fk fkmap flp fml fmr fo foldclose foldcolumn foldenable foldexpr foldignore foldlevel foldlevelstart foldmarker foldmethod foldminlines foldnestmax foldopen foldtext formatlistpat formatoptions formatprg fp fs fsync ft gcr gd gdefault gfm gfn gfs gfw ghr go gp grepformat grepprg guicursor guifont guifontset guifontwide guiheadroom guioptions guipty helpfile helpheight helplang hf hh hi hid hidden highlight history hk hkmap hkmapp hkp hl hlg hls hlsearch ic icon iconstring ignorecase im imactivatekey imak imc imcmdline imd imdisable imi iminsert ims imsearch inc include includeexpr incsearch inde indentexpr indentkeys indk inex inf infercase insertmode is isf isfname isi isident isk iskeyword isp isprint joinspaces js key keymap keymodel keywordprg km kmp kp langmap langmenu laststatus lazyredraw lbr lcs linebreak lines linespace lisp lispwords list listchars lm lmap loadplugins lpl ls lsp lw lz ma magic makeef makeprg mat matchpairs matchtime maxfuncdepth maxmapdepth maxmem maxmemtot mef menuitems mfd mh mis ml mls mm mmd mmt mod modeline modelines modifiable modified more mouse mousef mousefocus mousehide mousem mousemodel mouses mouseshape mouset mousetime mp mps mzq mzquantum nf nrformats nu number numberwidth nuw oft osfiletype pa para paragraphs paste pastetoggle patchexpr patchmode path pdev penc pex pexpr pfn pheader pi pm pmbcs pmbfn popt preserveindent previewheight previewwindow printdevice printencoding printexpr printfont printheader printmbcharset printmbfont printoptions pt pvh pvw qe quoteescape readonly remap report restorescreen revins ri rightleft rightleftcmd rl rlc ro rs rtp ru ruf ruler rulerformat runtimepath sb sbo sbr sc scb scr scroll scrollbind scrolljump scrolloff scrollopt scs sect sections secure sel selection selectmode sessionoptions sft sh shcf shell shellcmdflag shellpipe shellquote shellredir shellslash shelltype shellxquote shiftround shiftwidth shm shortmess shortname showbreak showcmd showfulltag showmatch showmode shq si sidescroll sidescrolloff siso sj slm sm smartcase smartindent smarttab smd sn so softtabstop sol sp splitbelow splitright spr sr srr ss ssl ssop st sta startofline statusline stl sts su sua suffixes suffixesadd sw swapfile swapsync swb swf switchbuf sws sxq syn syntax ta tabstop tag tagbsearch taglength tagrelative tags tagstack tb tbi tbidi tbis tbs tenc term termbidi termencoding terse textauto textmode textwidth tf tgst thesaurus tildeop timeout timeoutlen title titlelen titleold titlestring tl tm to toolbar toolbariconsize top tr ts tsl tsr ttimeout ttimeoutlen ttm tty ttybuiltin ttyfast ttym ttymouse ttyscroll ttytype tw tx uc ul undolevels updatecount updatetime ut vb vbs vdir ve verbose vi viewdir viewoptions viminfo virtualedit visualbell vop wa wak warn wb wc wcm wd weirdinvert wfh wh whichwrap wig wildchar wildcharm wildignore wildmenu wildmode wildoptions wim winaltkeys winfixheight winheight winminheight winminwidth winwidth wiv wiw wm wmh wmnu wmw wop wrap wrapmargin wrapscan write writeany writebackup writedelay ws ww " vimOptions: These are the turn-off setting variants {{{2 syn keyword vimOption contained noacd noai noakm noallowrevins noaltkeymap noanti noantialias noar noarab noarabic noarabicshape noari noarshape noautochdir noautoindent noautoread noautowrite noautowriteall noaw noawa nobackup noballooneval nobeval nobin nobinary nobiosk nobioskey nobk nobl nobomb nobuflisted nocf noci nocin nocindent nocompatible noconfirm noconsk noconskey nocopyindent nocp nocscopetag nocscopeverbose nocst nocsverb nodeco nodelcombine nodg nodiff nodigraph nodisable noea noeb noed noedcompatible noek noendofline noeol noequalalways noerrorbells noesckeys noet noex noexpandtab noexrc nofen nofk nofkmap nofoldenable nogd nogdefault noguipty nohid nohidden nohk nohkmap nohkmapp nohkp nohls nohlsearch noic noicon noignorecase noim noimc noimcmdline noimd noincsearch noinf noinfercase noinsertmode nois nojoinspaces nojs nolazyredraw nolbr nolinebreak nolisp nolist noloadplugins nolpl nolz noma nomagic nomh noml nomod nomodeline nomodifiable nomodified nomore nomousef nomousefocus nomousehide nonu nonumber nopaste nopi nopreserveindent nopreviewwindow nopvw noreadonly noremap norestorescreen norevins nori norightleft norightleftcmd norl norlc noro nors noru noruler nosb nosc noscb noscrollbind noscs nosecure nosft noshellslash noshiftround noshortname noshowcmd noshowfulltag noshowmatch noshowmode nosi nosm nosmartcase nosmartindent nosmarttab nosmd nosn nosol nosplitbelow nosplitright nospr nosr nossl nosta nostartofline noswapfile noswf nota notagbsearch notagrelative notagstack notbi notbidi notbs notermbidi noterse notextauto notextmode notf notgst notildeop notimeout notitle noto notop notr nottimeout nottybuiltin nottyfast notx novb novisualbell nowa nowarn nowb noweirdinvert nowfh nowildmenu nowinfixheight nowiv nowmnu nowrap nowrapscan nowrite nowriteany nowritebackup nows @@ -29,7 +29,7 @@ syn keyword vimOption contained noacd no syn keyword vimOption contained invacd invai invakm invallowrevins invaltkeymap invanti invantialias invar invarab invarabic invarabicshape invari invarshape invautochdir invautoindent invautoread invautowrite invautowriteall invaw invawa invbackup invballooneval invbeval invbin invbinary invbiosk invbioskey invbk invbl invbomb invbuflisted invcf invci invcin invcindent invcompatible invconfirm invconsk invconskey invcopyindent invcp invcscopetag invcscopeverbose invcst invcsverb invdeco invdelcombine invdg invdiff invdigraph invdisable invea inveb inved invedcompatible invek invendofline inveol invequalalways inverrorbells invesckeys invet invex invexpandtab invexrc invfen invfk invfkmap invfoldenable invgd invgdefault invguipty invhid invhidden invhk invhkmap invhkmapp invhkp invhls invhlsearch invic invicon invignorecase invim invimc invimcmdline invimd invincsearch invinf invinfercase invinsertmode invis invjoinspaces invjs invlazyredraw invlbr invlinebreak invlisp invlist invloadplugins invlpl invlz invma invmagic invmh invml invmod invmodeline invmodifiable invmodified invmore invmousef invmousefocus invmousehide invnu invnumber invpaste invpi invpreserveindent invpreviewwindow invpvw invreadonly invremap invrestorescreen invrevins invri invrightleft invrightleftcmd invrl invrlc invro invrs invru invruler invsb invsc invscb invscrollbind invscs invsecure invsft invshellslash invshiftround invshortname invshowcmd invshowfulltag invshowmatch invshowmode invsi invsm invsmartcase invsmartindent invsmarttab invsmd invsn invsol invsplitbelow invsplitright invspr invsr invssl invsta invstartofline invswapfile invswf invta invtagbsearch invtagrelative invtagstack invtbi invtbidi invtbs invtermbidi invterse invtextauto invtextmode invtf invtgst invtildeop invtimeout invtitle invto invtop invtr invttimeout invttybuiltin invttyfast invtx invvb invvisualbell invwa invwarn invwb invweirdinvert invwfh invwildmenu invwinfixheight invwiv invwmnu invwrap invwrapscan invwrite invwriteany invwritebackup invws " termcap codes (which can also be set) {{{2 -syn keyword vimOption contained t_AB t_AF t_al t_AL t_bc t_cd t_ce t_cl t_cm t_Co t_cs t_CS t_CV t_da t_db t_dl t_DL t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RI t_RV t_Sb t_se t_Sf t_so t_sr t_te t_ti t_ts t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR +syn keyword vimOption contained t_AB t_AF t_al t_AL t_bc t_cd t_ce t_cl t_cm t_Co t_cs t_CS t_CV t_da t_db t_dl t_DL t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'* t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RI t_RV t_Sb t_se t_Sf t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* t_so t_sr t_te t_ti t_ts t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR syn match vimOption contained "t_%1" syn match vimOption contained "t_#2" syn match vimOption contained "t_#4" @@ -55,10 +55,9 @@ syn match vimHLGroup contained "Conceal" syn case match " Function Names {{{2 -syn keyword vimFuncName contained append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx char2nr cindent col confirm cscope_connection cursor delete did_filetype diff_filler diff_hlID escape eventhandler executable exists expand filereadable filewritable finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function getbufvar getchar getcharmod getcmdline getcmdpos getcwd getfperm getfsize getftime getftype getline getreg getregtype getwinposx getwinposy getwinvar glob globpath has hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent input inputdialog inputrestore inputsave inputsecret isdirectory libcall libcallnr line line2byte lispindent localtime maparg mapcheck match matchend matchstr mode nextnonblank nr2char prevnonblank remote_expr remote_foreground remote_peek remote_read remote_send rename repeat resolve search searchpair server2client serverlist setbufvar setcmdpos setline setreg setwinvar simplify strftime stridx strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tempname tolower toupper tr type virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winwidth +syn keyword vimFuncName contained add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call char2nr cindent col confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function get getbufvar getchar getcharmod getcmdline getcmdpos getcwd getfontname getfperm getfsize getftime getftype getline getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputrestore inputsave inputsecret insert isdirectory join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchstr max min mode nextnonblank nr2char prevnonblank range remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchpair server2client serverlist setbufvar setcmdpos setline setreg setwinvar simplify sort split strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tempname tolower toupper tr type virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winwidth "--- syntax above generated by mkvimvim --- -"--- syntax above generated by mkvimvim --- " Special Vim Highlighting (not automatic) {{{1 " Numbers {{{2 @@ -186,11 +185,12 @@ syn match vimEnvvar "\${\I\i*}" " In-String Specials: {{{2 " Try to catch strings, if nothing else matches (therefore it must precede the others!) " vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside []) +" COMBAK: I don't know why the \ze is needed in vimPatSepZone syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\^\=\]\=" skip="\\\\\|\\\]" end="\]"me=e-1 syn match vimPatSepErr contained "\\)" syn match vimPatSep contained "\\|" -syn region vimPatSepZone oneline contained matchgroup=vimPatSep start="\\%\=(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup -syn region vimPatRegion contained transparent matchgroup=vimPatSep start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline +syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup +syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline syn match vimNotPatSep contained "\\\\" syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone syn region vimString oneline keepend start=+[^:a-zA-Z>!\\]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup @@ -537,7 +537,6 @@ hi def link vimSubst1 vimSubst hi def link vimBehaveModel vimBehave if !exists("g:vimsyntax_noerror") -" hi def link vimAugroupError vimError hi def link vimBehaveError vimError hi def link vimCollClassErr vimError hi def link vimErrSetting vimError @@ -594,6 +593,8 @@ hi def link vimMenuNameMore vimMenuName hi def link vimMtchComment vimComment hi def link vimNotFunc vimCommand hi def link vimNotPatSep vimString +hi def link vimPatSepR vimPatSep +hi def link vimPatSepZ vimPatSep hi def link vimPatSepErr vimPatSep hi def link vimPatSepZone vimString hi def link vimPlainMark vimMark
--- a/src/Make_bc3.mak +++ b/src/Make_bc3.mak @@ -65,6 +65,7 @@ EXE_dependencies = \ fileio.obj \ fold.obj \ getchar.obj \ + hashtable.obj \ main.obj \ mark.obj \ memfile.obj \
--- a/src/Make_bc5.mak +++ b/src/Make_bc5.mak @@ -546,6 +546,7 @@ vimobj = \ $(OBJDIR)\fileio.obj \ $(OBJDIR)\fold.obj \ $(OBJDIR)\getchar.obj \ + $(OBJDIR)\hashtable.obj \ $(OBJDIR)\main.obj \ $(OBJDIR)\mark.obj \ $(OBJDIR)\memfile.obj \
--- a/src/Make_cyg.mak +++ b/src/Make_cyg.mak @@ -1,6 +1,6 @@ # # Makefile for VIM on Win32, using Cygnus gcc -# Last updated by Dan Sharp. Last Change: 2005 Jan 16 +# Last updated by Dan Sharp. Last Change: 2005 Jan 19 # # This compiles Vim as a Windows application. If you want Vim to run as a # Cygwin application use the Makefile (just like on Unix). @@ -370,6 +370,7 @@ OBJ = \ $(OUTDIR)/fileio.o \ $(OUTDIR)/fold.o \ $(OUTDIR)/getchar.o \ + $(OUTDIR)/hashtable.o \ $(OUTDIR)/main.o \ $(OUTDIR)/mark.o \ $(OUTDIR)/memfile.o \
--- a/src/Make_dice.mak +++ b/src/Make_dice.mak @@ -40,6 +40,7 @@ SRC = \ fileio.c \ fold.c \ getchar.c \ + hashtable.c \ main.c \ mark.c \ memfile.c \ @@ -80,6 +81,7 @@ OBJ = o/buffer.o \ o/fileio.o \ o/fold.o \ o/getchar.o \ + o/hashtable.o \ o/main.o \ o/mark.o \ o/memfile.o \ @@ -153,6 +155,8 @@ o/fold.o: fold.c $(SYMS) o/getchar.o: getchar.c $(SYMS) +o/hashtable.o: hashtable.c $(SYMS) + o/main.o: main.c $(SYMS) o/mark.o: mark.c $(SYMS)
--- a/src/Make_ivc.mak +++ b/src/Make_ivc.mak @@ -224,6 +224,7 @@ LINK32_OBJS= \ "$(INTDIR)/fileio.obj" \ "$(INTDIR)/fold.obj" \ "$(INTDIR)/getchar.obj" \ + "$(INTDIR)/hashtable.obj" \ "$(INTDIR)/main.obj" \ "$(INTDIR)/mark.obj" \ "$(INTDIR)/mbyte.obj" \ @@ -376,6 +377,10 @@ SOURCE=.\getchar.c # End Source File # Begin Source File +SOURCE=.\hashtable.c +# End Source File +# Begin Source File + SOURCE=.\gui.c !IF "$(CFG)" == "Vim - Win32 Release vim"
--- a/src/Make_ming.mak +++ b/src/Make_ming.mak @@ -360,6 +360,7 @@ OBJ = \ $(OUTDIR)/fileio.o \ $(OUTDIR)/fold.o \ $(OUTDIR)/getchar.o \ + $(OUTDIR)/hashtable.o \ $(OUTDIR)/main.o \ $(OUTDIR)/mark.o \ $(OUTDIR)/memfile.o \
--- a/src/Make_mpw.mak +++ b/src/Make_mpw.mak @@ -32,6 +32,7 @@ SrcFiles = ¶ :src:fileio.c ¶ :src:fold.c ¶ :src:getchar.c ¶ + :src:hashtable.c ¶ :src:gui.c ¶ :src:gui_mac.c ¶ :src:if_cscope.c ¶ @@ -82,6 +83,7 @@ ObjFiles-PPC = ¶ "{ObjDir}fileio.c.x" ¶ "{ObjDir}fold.c.x" ¶ "{ObjDir}getchar.c.x" ¶ + "{ObjDir}hashtable.c.x" ¶ "{ObjDir}gui.c.x" ¶ "{ObjDir}gui_mac.c.x" ¶ "{ObjDir}if_cscope.c.x" ¶ @@ -163,6 +165,7 @@ VIm ÄÄ {ObjFiles-PPC} {LibFiles-PPC} {¥MondoBuild¥} "{ObjDir}fileio.c.x" Ä :src:fileio.c "{ObjDir}fold.c.x" Ä :src:fold.c "{ObjDir}getchar.c.x" Ä :src:getchar.c +"{ObjDir}hashtable.c.x" Ä :src:hashtable.c "{ObjDir}gui.c.x" Ä :src:gui.c "{ObjDir}gui_mac.c.x" Ä :src:gui_mac.c "{ObjDir}if_cscope.c.x" Ä :src:if_cscope.c @@ -251,6 +254,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -331,6 +335,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -411,6 +416,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -491,6 +497,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -571,6 +578,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -652,6 +660,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -732,6 +741,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -812,6 +822,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -892,6 +903,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -972,6 +984,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1052,6 +1065,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1132,6 +1146,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1212,6 +1227,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1333,6 +1349,87 @@ Dependencies Ä $OutOfDate :src:proto:if_perl.pro ¶ :src:proto:if_perlsfio.pro +:obj:hashtable.c.x Ä ¶ + :src:hashtable.c ¶ + :src:vim.h ¶ + :src:auto:config.h ¶ + :src:feature.h ¶ + :src:os_unix.h ¶ + :src:os_mac.h ¶ + :src:workshop.h ¶ + :src:ascii.h ¶ + :src:keymap.h ¶ + :src:term.h ¶ + :src:macros.h ¶ + :src:structs.h ¶ + :src:globals.h ¶ + :src:option.h ¶ + :src:ex_cmds.h ¶ + :src:proto.h ¶ + :src:integration.h ¶ + :src:wsdebug.h ¶ + :src:regexp.h ¶ + :src:gui.h ¶ + :src:farsi.h ¶ + :src:proto:os_unix.pro ¶ + :src:proto:os_mac.pro ¶ + :src:proto:buffer.pro ¶ + :src:proto:charset.pro ¶ + :src:proto:if_cscope.pro ¶ + :src:proto:diff.pro ¶ + :src:proto:digraph.pro ¶ + :src:proto:edit.pro ¶ + :src:proto:eval.pro ¶ + :src:proto:ex_cmds.pro ¶ + :src:proto:ex_cmds2.pro ¶ + :src:proto:ex_docmd.pro ¶ + :src:proto:ex_eval.pro ¶ + :src:proto:ex_getln.pro ¶ + :src:proto:fileio.pro ¶ + :src:proto:fold.pro ¶ + :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ + :src:proto:hangulin.pro ¶ + :src:proto:main.pro ¶ + :src:proto:mark.pro ¶ + :src:proto:memfile.pro ¶ + :src:proto:memline.pro ¶ + :src:proto:menu.pro ¶ + :src:proto:message.pro ¶ + :src:proto:misc1.pro ¶ + :src:proto:misc2.pro ¶ + :src:proto:move.pro ¶ + :src:proto:multibyte.pro ¶ + :src:proto:normal.pro ¶ + :src:proto:ops.pro ¶ + :src:proto:option.pro ¶ + :src:proto:quickfix.pro ¶ + :src:proto:regexp.pro ¶ + :src:proto:screen.pro ¶ + :src:proto:search.pro ¶ + :src:proto:syntax.pro ¶ + :src:proto:tag.pro ¶ + :src:proto:term.pro ¶ + :src:proto:termlib.pro ¶ + :src:proto:ui.pro ¶ + :src:proto:undo.pro ¶ + :src:proto:version.pro ¶ + :src:proto:window.pro ¶ + :src:proto:if_python.pro ¶ + :src:proto:if_tcl.pro ¶ + :src:proto:if_ruby.pro ¶ + :src:proto:gui.pro ¶ + :src:proto:pty.pro ¶ + :src:proto:gui_gtk.pro ¶ + :src:proto:gui_gtk_x11.pro ¶ + :src:proto:gui_motif.pro ¶ + :src:proto:gui_athena.pro ¶ + :src:proto:gui_mac.pro ¶ + :src:proto:gui_x11.pro ¶ + :src:proto:workshop.pro ¶ + :src:proto:if_perl.pro ¶ + :src:proto:if_perlsfio.pro + :obj:gui.c.x Ä ¶ :src:gui.c ¶ :src:vim.h ¶ @@ -1372,6 +1469,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1452,6 +1550,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1558,6 +1657,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1639,6 +1739,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1719,6 +1820,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1799,6 +1901,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1879,6 +1982,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -1959,6 +2063,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2039,6 +2144,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2120,6 +2226,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2200,6 +2307,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2280,6 +2388,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2360,6 +2469,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2440,6 +2550,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2520,6 +2631,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2600,6 +2712,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2680,6 +2793,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2760,6 +2874,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2840,6 +2955,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -2920,6 +3036,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3000,6 +3117,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3080,6 +3198,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3160,6 +3279,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3240,6 +3360,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3320,6 +3441,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3401,6 +3523,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3480,6 +3603,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3560,6 +3684,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3641,6 +3766,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3721,6 +3847,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶ @@ -3801,6 +3928,7 @@ Dependencies Ä $OutOfDate :src:proto:fileio.pro ¶ :src:proto:fold.pro ¶ :src:proto:getchar.pro ¶ + :src:proto:hashtable.pro ¶ :src:proto:hangulin.pro ¶ :src:proto:main.pro ¶ :src:proto:mark.pro ¶
--- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -347,6 +347,7 @@ OBJ = \ $(OUTDIR)\fileio.obj \ $(OUTDIR)\fold.obj \ $(OUTDIR)\getchar.obj \ + $(OUTDIR)\hashtable.obj \ $(OUTDIR)\main.obj \ $(OUTDIR)\mark.obj \ $(OUTDIR)\mbyte.obj \ @@ -754,6 +755,8 @@ testclean: $(OUTDIR)/getchar.obj: $(OUTDIR) getchar.c $(INCL) +$(OUTDIR)/hashtable.obj: $(OUTDIR) hashtable.c $(INCL) + $(OUTDIR)/gui.obj: $(OUTDIR) gui.c $(INCL) $(GUI_INCL) $(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c gui_w48.c $(INCL) $(GUI_INCL) @@ -892,6 +895,7 @@ proto.h: \ proto/ex_getln.pro \ proto/fileio.pro \ proto/getchar.pro \ + proto/hashtable.pro \ proto/main.pro \ proto/mark.pro \ proto/memfile.pro \
--- a/src/Make_os2.mak +++ b/src/Make_os2.mak @@ -53,6 +53,7 @@ OBJ = \ fileio.o \ fold.o \ getchar.o \ + hashtable.o \ main.o \ mark.o \ memfile.o \ @@ -122,6 +123,7 @@ ex_getln.o: ex_getln.c $(INCL) fileio.o: fileio.c $(INCL) fold.o: fold.c $(INCL) getchar.o: getchar.c $(INCL) +hashtable.o: hashtable.c $(INCL) main.o: main.c $(INCL) mark.o: mark.c $(INCL) memfile.o: memfile.c $(INCL)
--- a/src/Make_ro.mak +++ b/src/Make_ro.mak @@ -12,7 +12,7 @@ TERMFLAG = -DUP_BC_PC_EXTERN ASMFLAGS = -throwback -objasm -gcc OBJS = o.buffer o.charset o.diff o.digraph o.edit o.eval o.ex_cmds o.ex_cmds2 \ - o.ex_docmd o.ex_eval o.ex_getln o.fileio o.fold o.getchar o.main o.mark o.mbyte \ + o.ex_docmd o.ex_eval o.ex_getln o.fileio o.fold o.getchar o.hashtable o.main o.mark o.mbyte \ o.memfile o.memline o.menu o.message o.misc1 o.misc2 o.move \ o.normal o.ops o.option o.quickfix o.regexp o.screen o.search \ o.syntax o.tag o.term o.termlib o.ui o.undo o.version o.window \ @@ -65,6 +65,8 @@ o.fold: c.fold o.getchar: c.getchar +o.hashtable: c.hashtable + o.gui: c.gui o.gui_riscos: c.gui_riscos
--- a/src/Make_sas.mak +++ b/src/Make_sas.mak @@ -103,6 +103,7 @@ SRC = \ fileio.c \ fold.c \ getchar.c \ + hashtable.c \ main.c \ mark.c \ memfile.c \ @@ -144,6 +145,7 @@ OBJ = \ fileio.o \ fold.o \ getchar.o \ + hashtable.o \ main.o \ mark.o \ memfile.o \ @@ -185,6 +187,7 @@ PRO = \ proto/fileio.pro \ proto/fold.pro \ proto/getchar.pro \ + proto/hashtable.pro \ proto/main.pro \ proto/mark.pro \ proto/memfile.pro \ @@ -294,6 +297,8 @@ fold.o: fold.c proto/fold.pro: fold.c getchar.o: getchar.c proto/getchar.pro: getchar.c +hashtable.o: hashtable.c +proto/hashtable.pro: hashtable.c main.o: main.c proto/main.pro: main.c mark.o: mark.c
--- a/src/Make_vms.mms +++ b/src/Make_vms.mms @@ -2,7 +2,7 @@ # Makefile for Vim on OpenVMS # # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com> -# Last change: 2004 Dec 16 +# Last change: 2005 Jan 19 # # This has script been tested on VMS 6.2 to 7.3 on DEC Alpha, VAX and IA64 # with MMS and MMK @@ -274,7 +274,7 @@ ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_ SRC = buffer.c charset.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c \ ex_docmd.c ex_eval.c ex_getln.c if_xcmdsrv.c fileio.c fold.c getchar.c \ - main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \ + hashtable.c, main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \ misc2.c move.c normal.c ops.c option.c quickfix.c regexp.c search.c \ syntax.c tag.c term.c termlib.c ui.c undo.c version.c screen.c \ window.c os_unix.c os_vms.c pathdef.c \ @@ -283,7 +283,7 @@ SRC = buffer.c charset.c diff.c digraph. OBJ = buffer.obj charset.obj diff.obj digraph.obj edit.obj eval.obj \ ex_cmds.obj ex_cmds2.obj ex_docmd.obj ex_eval.obj ex_getln.obj \ - if_xcmdsrv.obj fileio.obj fold.obj getchar.obj main.obj mark.obj \ + if_xcmdsrv.obj fileio.obj fold.obj getchar.obj hashtable.obj main.obj mark.obj \ menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \ move.obj mbyte.obj normal.obj ops.obj option.obj quickfix.obj \ regexp.obj search.obj syntax.obj tag.obj term.obj termlib.obj \ @@ -510,6 +510,10 @@ getchar.obj : getchar.c vim.h [.auto]con ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ globals.h farsi.h arabic.h +hashtable.obj : hashtable.c vim.h [.auto]config.h feature.h os_unix.h \ + ascii.h keymap.h term.h macros.h structs.h regexp.h \ + gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ + globals.h farsi.h arabic.h if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
--- a/src/Makefile +++ b/src/Makefile @@ -1298,6 +1298,7 @@ BASIC_SRC = \ fileio.c \ fold.c \ getchar.c \ + hashtable.c \ if_cscope.c \ if_xcmdsrv.c \ main.c \ @@ -1364,6 +1365,7 @@ OBJ = \ objects/fileio.o \ objects/fold.o \ objects/getchar.o \ + objects/hashtable.o \ $(HANGULIN_OBJ) \ objects/if_cscope.o \ objects/if_xcmdsrv.o \ @@ -1419,6 +1421,7 @@ PRO_AUTO = \ fileio.pro \ fold.pro \ getchar.pro \ + hashtable.pro \ hangulin.pro \ if_cscope.pro \ if_xcmdsrv.pro \ @@ -2153,6 +2156,9 @@ objects/fold.o: fold.c objects/getchar.o: getchar.c $(CCC) -o $@ getchar.c +objects/hashtable.o: hashtable.c + $(CCC) -o $@ hashtable.c + objects/gui.o: gui.c $(CCC) -o $@ gui.c @@ -2492,6 +2498,10 @@ objects/getchar.o: getchar.c vim.h auto/ auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h \ globals.h farsi.h arabic.h +objects/hashtable.o: hashtable.c vim.h auto/config.h feature.h os_unix.h \ + auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h \ + gui.h gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h \ + globals.h farsi.h arabic.h objects/if_cscope.o: if_cscope.c vim.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h proto/gui_beval.pro option.h ex_cmds.h proto.h \
--- a/src/globals.h +++ b/src/globals.h @@ -279,6 +279,12 @@ EXTERN scid_T current_SID INIT(= 0); was sourced to define the current function. */ #endif + +/* Magic number used for hashitem "hi_key" value indicating a deleted item. + * Only the address is used. */ +EXTERN char_u hash_removed; + + EXTERN int scroll_region INIT(= FALSE); /* term supports scroll region */ EXTERN int t_colors INIT(= 0); /* int value of T_CCO */ @@ -1390,6 +1396,9 @@ EXTERN char_u e_invexprmsg[] INIT(=N_("E EXTERN char_u e_guarded[] INIT(=N_("E463: Region is guarded, cannot modify")); EXTERN char_u e_nbreadonly[] INIT(=N_("E680: NetBeans does not allow changes in read-only files")); #endif +EXTERN char_u e_intern2[] INIT(=N_("E685: Internal error: %s")); + + #ifdef MACOS_X_UNIX EXTERN short disallow_gui INIT(= FALSE); #endif
--- a/src/main.aap +++ b/src/main.aap @@ -247,6 +247,7 @@ Source = fileio.c fold.c getchar.c + hashtable.c if_cscope.c if_xcmdsrv.c main.c
--- a/src/misc2.c +++ b/src/misc2.c @@ -1488,7 +1488,7 @@ vim_isspace(x) } /************************************************************************ - * Functions for hanlding growing arrays. + * Functions for handling growing arrays. */ /*
--- a/src/move.c +++ b/src/move.c @@ -871,10 +871,7 @@ validate_cursor_col() /* long line wrapping, adjust curwin->w_wrow */ if (curwin->w_p_wrap && col >= (colnr_T)W_WIDTH(curwin) -#ifdef FEAT_VERTSPLIT - && curwin->w_width != 0 -#endif - ) + && W_WIDTH(curwin) - off + curwin_col_off2() > 0) { col -= W_WIDTH(curwin); col = col % (W_WIDTH(curwin) - off + curwin_col_off2());
--- a/src/proto.h +++ b/src/proto.h @@ -92,6 +92,7 @@ extern int _stricoll __ARGS((char *a, ch # ifdef FEAT_HANGULIN # include "hangulin.pro" # endif +# include "hashtable.pro" # include "main.pro" # include "mark.pro" # if !defined MESSAGE_FILE || defined(HAVE_STDARG_H)
--- a/src/proto/gui_gtk.pro +++ b/src/proto/gui_gtk.pro @@ -14,7 +14,6 @@ void gui_mch_destroy_scrollbar __ARGS((s char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter)); char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir)); int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield)); -int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield)); void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu)); void gui_make_popup __ARGS((char_u *path_name)); void gui_mch_find_dialog __ARGS((exarg_T *eap));
--- a/src/proto/gui_photon.pro +++ b/src/proto/gui_photon.pro @@ -23,7 +23,7 @@ void gui_mch_enable_scrollbar __ARGS((sc void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb)); void mch_set_mouse_shape __ARGS((int shape)); void gui_mch_mousehide __ARGS((int hide)); -int gui_mch_getmouse __ARGS((int *x, int *y)); +void gui_mch_getmouse __ARGS((int *x, int *y)); void gui_mch_setmouse __ARGS((int x, int y)); long_u gui_mch_get_rgb __ARGS((guicolor_T pixel)); void gui_mch_new_colors __ARGS((void));
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -1775,8 +1775,10 @@ ex_copen(eap) else if (buf != curbuf) set_curbuf(buf, DOBUF_GOTO); +#ifdef FEAT_VERTSPLIT /* Only set the height when there is no window to the side. */ if (curwin->w_width == Columns) +#endif win_setheight(height); curwin->w_p_wfh = TRUE; /* set 'winfixheight' */ if (win_valid(win))
--- a/src/screen.c +++ b/src/screen.c @@ -1924,8 +1924,8 @@ win_draw_end(wp, c1, c2, row, endrow, hl if (n > 0) { /* draw the fold column at the right */ - if (n > wp->w_width) - n = wp->w_width; + if (n > W_WIDTH(wp)) + n = W_WIDTH(wp); screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, W_ENDCOL(wp) - n, (int)W_ENDCOL(wp), ' ', ' ', hl_attr(HLF_FC)); @@ -1937,8 +1937,8 @@ win_draw_end(wp, c1, c2, row, endrow, hl int nn = n + 2; /* draw the sign column left of the fold column */ - if (nn > wp->w_width) - nn = wp->w_width; + if (nn > W_WIDTH(wp)) + nn = W_WIDTH(wp); screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, W_ENDCOL(wp) - nn, (int)W_ENDCOL(wp) - n, ' ', ' ', hl_attr(HLF_SC));
--- a/src/structs.h +++ b/src/structs.h @@ -1929,3 +1929,38 @@ typedef struct } prt_settings_T; #define PRINT_NUMBER_WIDTH 8 + +/* Item for a hashtable. "hi_key" can be one of three values: + * NULL: Never been used + * HI_KEY_REMOVED: Entry was removed + * Otherwise: Used item, pointer to the actual key; this usually is + * inside the item, subtract an offset to locate the item. + * This reduces the size of hashitem by 1/3. + */ +typedef struct hashitem_S +{ + long_u hi_hash; /* cached hash number of hi_key */ + char_u *hi_key; +} hashitem; + +/* The address of "hash_removed" is used as a magic number for hi_key to + * indicate a removed item. */ +#define HI_KEY_REMOVED &hash_removed +#define HASHITEM_EMPTY(hi) ((hi)->hi_key == NULL || (hi)->hi_key == &hash_removed) + +/* Initial size for a hashtable. Our items are relatively small and growing + * is expensive, thus use 16 as a start. Must be a power of 2. */ +#define HT_INIT_SIZE 16 + +typedef struct hashtable_S +{ + long_u ht_mask; /* mask used for hash value (nr of items in + * array is "ht_mask" + 1) */ + int ht_used; /* number of items used */ + int ht_filled; /* number of items used + removed */ + int ht_error; /* when set growing failed, can't add more + items before growing works */ + hashitem *ht_array; /* points to the array, allocated when it's + not "ht_smallarray" */ + hashitem ht_smallarray[HT_INIT_SIZE]; /* initial array */ +} hashtable;
--- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -23,7 +23,7 @@ SCRIPTS = test1.out test3.out test4.out test33.out test34.out test35.out test36.out test37.out \ test38.out test39.out test40.out test41.out test42.out \ test43.out test44.out test45.out test46.out test47.out \ - test48.out test51.out test53.out test54.out + test48.out test51.out test53.out test54.out test55.out .SUFFIXES: .in .out @@ -97,3 +97,4 @@ test48.out: test48.in test51.out: test51.in test53.out: test53.in test54.out: test54.in +test55.out: test55.in
--- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -17,7 +17,7 @@ SCRIPTS16 = test1.out test19.out test20. test23.out test24.out test28.out test29.out \ test35.out test36.out test43.out \ test44.out test45.out test46.out test47.out \ - test48.out test51.out test53.out test54.out + test48.out test51.out test53.out test54.out test55.out SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ test8.out test9.out test11.out test13.out test14.out \
--- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -23,7 +23,7 @@ SCRIPTS = test1.out test3.out test4.out test33.out test34.out test35.out test36.out test37.out \ test38.out test39.out test40.out test41.out test42.out \ test43.out test44.out test45.out test46.out test47.out \ - test48.out test51.out test53.out test54.out + test48.out test51.out test53.out test54.out test55.out .SUFFIXES: .in .out
--- a/src/testdir/test49.vim +++ b/src/testdir/test49.vim @@ -1,6 +1,6 @@ " Vim script language tests " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com> -" Last Change: 2005 Jan 16 +" Last Change: 2005 Jan 18 "------------------------------------------------------------------------------- " Test environment {{{1 @@ -8314,6 +8314,7 @@ if ExtraVim() else let v:errmsg = escape(v:errmsg, '"') Xout "Expr" a:n.": Unexpected message:" v:errmsg + Xout "Expected: " . a:enr . ': ' . a:emsg let g:taken = g:taken . "X" endif endif @@ -8377,7 +8378,7 @@ if ExtraVim() call MSG(t, 'E15', "Invalid expression") endif else - if t == 2 || t == 4 + if t <= 2 || t == 4 || t == 5 || t == 6 || t == 8 call MSG(t, 'E475', 'Invalid argument\>') else call MSG(t, 'E121', "Undefined variable")
new file mode 100644 --- /dev/null +++ b/src/testdir/test55.in @@ -0,0 +1,156 @@ +Tests for List and Dictionary types. vim: set ft=vim : + +STARTTEST +:so small.vim +:fun Test() +:" Creating List directly with different types +:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] +:$put =string(l) +:$put =string(l[-1]) +:$put =string(l[-4]) +:try +: $put =string(l[-5]) +:catch +: $put =v:exception[:14] +:endtry +:" +:" List identity +:let ll = l +:let lx = copy(l) +:try +: $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l isnot lx) +:catch +: $put =v:exception +:endtry +:" +:" Creating Dictionary directly with different types +:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},} +:$put =string(d) . d.1 +:$put =string(sort(keys(d))) +:$put =string(values(d)) +:for [key, val] in items(d) +: $put =key . ':' . string(val) +: unlet key val +:endfor +:call extend(d, {3:33, 1:99}) +:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep") +:try +: call extend(d, {3:333,4:444}, "error") +:catch +: $put =v:exception[:15] . v:exception[-1:-1] +:endtry +:$put =string(d) +:call filter(d, 'v:key =~ ''[ac391]''') +:$put =string(d) +:" +:" Dictionary identity +:let dd = d +:let dx = copy(d) +:try +: $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d isnot dx) +:catch +: $put =v:exception +:endtry +:" +:" Changing var type should fail +:try +: let d = [] +:catch +: $put =v:exception[:14] . v:exception[-1:-1] +:endtry +:try +: let l = {} +:catch +: $put =v:exception[:14] . v:exception[-1:-1] +:endtry +:" +:" removing items with :unlet +:unlet l[2] +:$put =string(l) +:let l = range(8) +:unlet l[:3] +:unlet l[1:] +:$put =string(l) +:" +:unlet d.c +:unlet d[-1] +:$put =string(d) +:" +:" manipulating a big Dictionary +:let d = {} +:for i in range(15000) +: let d[i] = 30000 - i +:endfor +:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[14000] . ' ' . d[14999] +:try +: let n = d[15000] +:catch +: $put =v:exception[:14] . v:exception[-5:-1] +:endtry +:" lookup each items +:for i in range(15000) +: if d[i] != 30000 - i +: $put =d[i] +: endif +:endfor +: let i += 1 +:" delete even items +:while i >= 2 +: let i -= 2 +: unlet d[i] +:endwhile +:$put =get(d, 15000 - 100, 'NONE') . ' ' . d[1] +:" delete odd items, checking value, one intentionally wrong +:let d[33] = 999 +:let i = 1 +:while i < 15000 +: if d[i] != 30000 - i +: $put =i . '=' . d[i] +: else +: unlet d[i] +: endif +: let i += 2 +:endwhile +:$put =string(d) " must be almost empty now +:unlet d +:" +:" Dictionary function +:let dict = {} +:func dict.func(a) dict +: $put =a:a . len(self.data) +:endfunc +:let dict.data = [1,2,3] +:call dict.func("len: ") +:echo dict.func("again: ") +:try +: let Fn = dict.func +: call Fn('xxx') +:catch +: $put =v:exception[:15] +:endtry +:sleep 5 +:" +:" Nasty: remove func from Dict that's being called (works) +:let d = {1:1} +:func d.func(a) +: return "a:". a:a +:endfunc +:$put = d.func(string(remove(d, 'func'))) +:" +:" Nasty: deepcopy() dict that refers to itself (fails) +:let d = {1:1, 2:2} +:let l = [4, d, 6] +:let d[3] = l +:try +: let x = deepcopy(d) +:catch +: $put =v:exception[:14] +:endtry +:" +:endfun +:call Test() +:" +:/^start:/,$wq! test.out +ENDTEST + +start:
new file mode 100644 --- /dev/null +++ b/src/testdir/test55.ok @@ -0,0 +1,31 @@ +start: +[1, 'as''d', [1, 2, function('strlen')], {'a': 1}] +{'a': 1} +1 +Vim(put):E684: +101101 +{'1': 'asd', 'b': [1, 2, function('strlen')], '-1': {'a': 1}}asd +['-1', '1', 'b'] +['asd', [1, 2, function('strlen')], {'a': 1}] +1:'asd' +b:[1, 2, function('strlen')] +-1:{'a': 1} +Vim(call):E737: 3 +{'c': 'ccc', '1': 99, 'b': [1, 2, function('strlen')], '3': 33, '-1': {'a': 1}} +{'c': 'ccc', '1': 99, '3': 33, '-1': {'a': 1}} +101101 +Vim(let):E706: d +Vim(let):E706: l +[1, 'as''d', {'a': 1}] +[4] +{'1': 99, '3': 33} +30000 29900 29001 16000 15001 +Vim(let):E716: 15000 +NONE 29999 +33=999 +{'33': 999} +len: 3 +again: 3 +Vim(call):E725: +a:function('2') +Vim(let):E698:
--- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 17)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 17, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 19)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 19, compiled "