diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Make_bc3.mak | 1 | ||||
-rw-r--r-- | src/Make_bc5.mak | 1 | ||||
-rw-r--r-- | src/Make_cyg.mak | 3 | ||||
-rw-r--r-- | src/Make_dice.mak | 4 | ||||
-rw-r--r-- | src/Make_ivc.mak | 5 | ||||
-rw-r--r-- | src/Make_ming.mak | 1 | ||||
-rw-r--r-- | src/Make_mpw.mak | 128 | ||||
-rw-r--r-- | src/Make_mvc.mak | 4 | ||||
-rw-r--r-- | src/Make_os2.mak | 2 | ||||
-rw-r--r-- | src/Make_ro.mak | 4 | ||||
-rw-r--r-- | src/Make_sas.mak | 5 | ||||
-rw-r--r-- | src/Make_vms.mms | 10 | ||||
-rw-r--r-- | src/Makefile | 10 | ||||
-rw-r--r-- | src/globals.h | 9 | ||||
-rw-r--r-- | src/main.aap | 1 | ||||
-rw-r--r-- | src/misc2.c | 2 | ||||
-rw-r--r-- | src/move.c | 5 | ||||
-rw-r--r-- | src/proto.h | 1 | ||||
-rw-r--r-- | src/proto/gui_gtk.pro | 1 | ||||
-rw-r--r-- | src/proto/gui_photon.pro | 2 | ||||
-rw-r--r-- | src/quickfix.c | 2 | ||||
-rw-r--r-- | src/screen.c | 8 | ||||
-rw-r--r-- | src/structs.h | 35 | ||||
-rw-r--r-- | src/testdir/Make_amiga.mak | 3 | ||||
-rw-r--r-- | src/testdir/Make_dos.mak | 2 | ||||
-rw-r--r-- | src/testdir/Make_os2.mak | 2 | ||||
-rw-r--r-- | src/testdir/test49.vim | 5 | ||||
-rw-r--r-- | src/testdir/test55.in | 156 | ||||
-rw-r--r-- | src/testdir/test55.ok | 31 | ||||
-rw-r--r-- | src/version.h | 4 |
30 files changed, 424 insertions, 23 deletions
diff --git a/src/Make_bc3.mak b/src/Make_bc3.mak index 1d27081a1..df219ba60 100644 --- 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 \ diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak index 75b0f1d05..d05d83694 100644 --- 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 \ diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak index 4687ef1d3..962e22e6b 100644 --- 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 \ diff --git a/src/Make_dice.mak b/src/Make_dice.mak index 77f6cba22..f2b090749 100644 --- 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) diff --git a/src/Make_ivc.mak b/src/Make_ivc.mak index 94a153060..0c32793f2 100644 --- 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" diff --git a/src/Make_ming.mak b/src/Make_ming.mak index b90cf79fb..2d8bbaf5c 100644 --- 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 \ diff --git a/src/Make_mpw.mak b/src/Make_mpw.mak index 8a98d68a0..cd366e47f 100644 --- 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 ¶ diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak index 62e875650..5cc0a92f5 100644 --- 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 @@ $(OUTDIR)/fold.obj: $(OUTDIR) fold.c $(INCL) $(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 \ diff --git a/src/Make_os2.mak b/src/Make_os2.mak index 4d21dc620..1750e71f2 100644 --- 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) diff --git a/src/Make_ro.mak b/src/Make_ro.mak index 82708f41f..65f176cd4 100644 --- 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 diff --git a/src/Make_sas.mak b/src/Make_sas.mak index 827903bbc..1751d8ae8 100644 --- 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 diff --git a/src/Make_vms.mms b/src/Make_vms.mms index 53793539b..b44855247 100644 --- 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_LIB) \ 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.c edit.c eval.c ex_cmds.c ex_cmds2.c \ 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]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 +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 \ diff --git a/src/Makefile b/src/Makefile index ecaafb0bb..8c949b5e4 100644 --- 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/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/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 \ diff --git a/src/globals.h b/src/globals.h index cf4bc58a3..effb4e2b1 100644 --- a/src/globals.h +++ b/src/globals.h @@ -279,6 +279,12 @@ EXTERN scid_T current_SID INIT(= 0); /* ID of script being sourced or 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_("E449: Invalid expression received")); 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 diff --git a/src/main.aap b/src/main.aap index 3b785795e..9356dd9e8 100644 --- 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 diff --git a/src/misc2.c b/src/misc2.c index 1633b2ae3..d647fc7ac 100644 --- 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. */ /* diff --git a/src/move.c b/src/move.c index d1eb0257c..2fc226056 100644 --- 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()); diff --git a/src/proto.h b/src/proto.h index ed1625848..f8920dae0 100644 --- a/src/proto.h +++ b/src/proto.h @@ -92,6 +92,7 @@ extern int _stricoll __ARGS((char *a, char *b)); # ifdef FEAT_HANGULIN # include "hangulin.pro" # endif +# include "hashtable.pro" # include "main.pro" # include "mark.pro" # if !defined MESSAGE_FILE || defined(HAVE_STDARG_H) diff --git a/src/proto/gui_gtk.pro b/src/proto/gui_gtk.pro index 882587e55..afe38dc2b 100644 --- a/src/proto/gui_gtk.pro +++ b/src/proto/gui_gtk.pro @@ -14,7 +14,6 @@ void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb)); 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)); diff --git a/src/proto/gui_photon.pro b/src/proto/gui_photon.pro index 47ffc54bd..af33ef5ce 100644 --- a/src/proto/gui_photon.pro +++ b/src/proto/gui_photon.pro @@ -23,7 +23,7 @@ void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag)); 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)); diff --git a/src/quickfix.c b/src/quickfix.c index 625d19d0c..8bb2bbe76 100644 --- 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)) diff --git a/src/screen.c b/src/screen.c index ef7a87f9d..0435eb57b 100644 --- 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)); diff --git a/src/structs.h b/src/structs.h index 4ceb0ce4f..051eb2df0 100644 --- 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; diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak index 01304c0e7..5b1473993 100644 --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -23,7 +23,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.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 diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak index 8678b5dad..d961e0a45 100644 --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -17,7 +17,7 @@ SCRIPTS16 = test1.out test19.out test20.out test22.out \ 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 \ diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak index e1ca8dcb3..235e1477a 100644 --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -23,7 +23,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.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 diff --git a/src/testdir/test49.vim b/src/testdir/test49.vim index 24c287357..97db66d33 100644 --- 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") diff --git a/src/testdir/test55.in b/src/testdir/test55.in new file mode 100644 index 000000000..a757dae12 --- /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: diff --git a/src/testdir/test55.ok b/src/testdir/test55.ok new file mode 100644 index 000000000..407b7a1b5 --- /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: diff --git a/src/version.h b/src/version.h index 84e377cb8..18f33b7d4 100644 --- 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 " |