summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-07-18 21:42:34 +0200
committerBram Moolenaar <Bram@vim.org>2010-07-18 21:42:34 +0200
commit69154f22a69cf421095771f16b12073a1a3bdb6d (patch)
tree9aaf51941f28f8098f39370e1b035ccf781463af
parent607cc1e0154bab3f83f3185d68cdff525e529ceb (diff)
Fixes and improvements for MS-Windows build.
-rw-r--r--runtime/doc/if_perl.txt11
-rw-r--r--runtime/doc/if_ruby.txt12
-rw-r--r--runtime/doc/tags2
-rw-r--r--runtime/doc/todo.txt6
-rw-r--r--runtime/doc/version7.txt42
-rw-r--r--src/Make_mvc.mak4
-rw-r--r--src/Makefile2
-rw-r--r--src/bigvim.bat2
-rw-r--r--src/if_python3.c14
-rw-r--r--src/undo.c83
-rw-r--r--src/version.h4
11 files changed, 108 insertions, 74 deletions
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index 9f87e41ff1..6ff56d87a4 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -272,11 +272,16 @@ This means that Vim will search for the Perl DLL file only when needed. When
you don't use the Perl interface you don't need it, thus you can use Vim
without this DLL file.
-To use the Perl interface the Perl DLL must be in your search path. In a
-console window type "path" to see what directories are used.
+You can download Perl from http://www.perl.org. The one from ActiveState was
+used for building Vim.
+
+To use the Perl interface the Perl DLL must be in your search path.
+If Vim reports it cannot find the perl512.dll, make sure your $PATH includes
+the directory where it is localted. The Perl installer normally does that.
+In a console window type "path" to see what directories are used.
The name of the DLL must match the Perl version Vim was compiled with.
-Currently the name is "perl58.dll". That is for Perl 5.8. To know for
+Currently the name is "perl512.dll". That is for Perl 5.12. To know for
sure edit "gvim.exe" and search for "perl\d*.dll\c".
==============================================================================
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index ba54c1c02b..c2373b9e71 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -194,12 +194,20 @@ This means that Vim will search for the Ruby DLL file only when needed. When
you don't use the Ruby interface you don't need it, thus you can use Vim
without this DLL file.
+You need to install the right version of Ruby for this to work. You can find
+the package to download from:
+http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
+Currently that is ruby-1.9.1-p429-i386-mswin32.zip
+
To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used.
The name of the DLL must match the Ruby version Vim was compiled with.
-Currently the name is "ruby18.dll". That is for Ruby 1.8. To know for sure
-edit "gvim.exe" and search for "ruby\d*.dll\c".
+Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
+for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
+
+If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
+and comment-out the check for _MSC_VER.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index e21888e853..249d66d166 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -585,9 +585,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'norevins' options.txt /*'norevins'*
'nori' options.txt /*'nori'*
'norightleft' options.txt /*'norightleft'*
-'norightleftcmd' options.txt /*'norightleftcmd'*
'norl' options.txt /*'norl'*
-'norlc' options.txt /*'norlc'*
'nornu' options.txt /*'nornu'*
'noro' options.txt /*'noro'*
'nors' options.txt /*'nors'*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 928582d5e8..2a8382b832 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1088,11 +1088,9 @@ Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
Before (beta) release 7.3:
-- Add fixes for 7.2 to version7.txt
-- Add hg history to version7.txt
-- Remove UF_VERSION_CRYPT_PREV and UF_VERSION_PREV.
- Documentation for Python 3 support.
-- Build the MS-Windows version with Python 2.6.5 and 3.1.2?
+- Build the MS-Windows version with Ruby 1.91. How?
+- Build the MS-Windows version with newer Perl version?
Before release 7.3:
- Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 7c03674ed9..74c1d00db7 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -7214,6 +7214,8 @@ the "Edit with Vim" context menu.
The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64
bit version. (mostly by George Reilly)
Made the DOS installer work with more compilers.
+The MS-Windows big gvim is now built with Python 2.7 and 3.1.2, Perl 5.12 and
+Ruby 1.9.1.
The extra and language files are no longer distributed separately.
The source files for all systems are included in one distribution.
@@ -7309,17 +7311,43 @@ Add patch to improve support of z/OS (OS/390). (Ralf Schandl)
Added the helphelp.txt file. Moved text from various.txt to it.
-
New syntax files:
-TODO
+Haskell Cabal build file (Vincent Berthoux)
+ChaiScript (Jason Turner)
+Cucumber (Tim Pope)
+Fantom (Kamil Toman)
+Liquid (Tim Pope)
+Markdown (Tim Pope)
+wavefront's obj file (Vincent Berthoux)
+Perl 6 (Andy Lester)
+SDC - Synopsys Design Constraints (Maurizio Tranchero)
+SVG - Scalable Vector Graphics (Vincent Berthoux)
+task data (John Florian)
+task 42 edit (John Florian)
New filetype plugins:
-TODO
-
-New spell files:
-TODO
-Breton. (Dominique Pelle)
+Cucumber (Tim Pope)
+Liquid (Tim Pope)
+Markdown (Tim Pope)
+Tcl (Robert L Hicks)
+
+New indent plugins:
+ChaiScript (Jason Turner)
+Cucumber (Tim Pope)
+CUDA (Bram Moolenaar)
+LifeLines (Patrick Texier)
+Liquid (Tim Pope)
+Mail (Bram Moolenaar)
+Perl 6 (Andy Lester)
+Other new runtime files:
+Breton spell file (Dominique Pelle)
+Tutor Bairish (Sepp Hell)
+Tutor in Esperanto. (Dominique Pellé)
+Korean translations. (SungHyun Nam)
+Dvorak keymap (Ashish Shukla)
+Serbian menu translations (Aleksandar Jelenak)
+Tetum spell files.
Fixed *fixed-7.3*
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index c0704503c2..9d34633ce0 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -817,7 +817,11 @@ RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
!message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
CFLAGS = $(CFLAGS) -DFEAT_RUBY
RUBY_OBJ = $(OUTDIR)\if_ruby.obj
+!if $(RUBY_VER) >= 190
+RUBY_INC = /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)\$(RUBY_PLATFORM)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)"
+!else
RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
+!endif
RUBY_LIB = $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
# Do we want to load Ruby dynamically?
!if "$(DYNAMIC_RUBY)" == "yes"
diff --git a/src/Makefile b/src/Makefile
index db38f937f6..2211ba0528 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -404,7 +404,7 @@ CClink = $(CC)
# If both python2.x and python3.x are enabled then the linking will be via
# dlopen(), dlsym(), dlclose(), i.e. pythonX.Y.so must be available
#CONF_OPT_PYTHON = --enable-pythoninterp
-#CONF_OPT_PYTHON3 = --enable-python3interp
+CONF_OPT_PYTHON3 = --enable-python3interp
# RUBY
# Uncomment this when you want to include the Ruby interface.
diff --git a/src/bigvim.bat b/src/bigvim.bat
index ded5bc41d6..6ba89e62c5 100644
--- a/src/bigvim.bat
+++ b/src/bigvim.bat
@@ -1,3 +1,3 @@
:: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
-nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl58 DYNAMIC_PERL=yes PERL_VER=58 PYTHON=e:\python24 DYNAMIC_PYTHON=yes PYTHON_VER=24 RUBY=e:\ruby18 DYNAMIC_RUBY=yes RUBY_VER=18 RUBY_VER_LONG=1.8 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
+nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl512 DYNAMIC_PERL=yes PERL_VER=512 PYTHON=e:\python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=e:\python31 DYNAMIC_PYTHON3=yes PYTHON3_VER=31 RUBY=e:\ruby191 DYNAMIC_RUBY=yes RUBY_VER=191 RUBY_VER_LONG=1.9.1 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
diff --git a/src/if_python3.c b/src/if_python3.c
index 5400dc6165..410dc1484f 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -321,6 +321,7 @@ static void end_dynamic_python3(void)
static int py3_runtime_link_init(char *libname, int verbose)
{
int i;
+ void *ucs_from_string, *ucs_from_string_and_size;
if (hinstPy3)
return OK;
@@ -346,11 +347,8 @@ static int py3_runtime_link_init(char *libname, int verbose)
}
}
- /* load unicode functions separately as only the ucs2 or the ucs4 functions
- * will be present in the library
- */
- void *ucs_from_string, *ucs_from_string_and_size;
-
+ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+ * will be present in the library. */
ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
ucs_from_string_and_size = symbol_from_dll(hinstPy3,
"PyUnicodeUCS2_FromStringAndSize");
@@ -438,7 +436,7 @@ static Py_ssize_t RangeEnd;
static void PythonIO_Flush(void);
static int PythonIO_Init(void);
static void PythonIO_Fini(void);
-static PyMODINIT_FUNC Py3Init_vim(void);
+PyMODINIT_FUNC Py3Init_vim(void);
/* Utility functions for the vim/python interface
* ----------------------------------------------
@@ -2222,7 +2220,8 @@ PyDoc_STRVAR(vim_module_doc,"vim python interface\n");
static struct PyModuleDef vimmodule;
-static PyMODINIT_FUNC Py3Init_vim(void)
+#ifndef PROTO
+PyMODINIT_FUNC Py3Init_vim(void)
{
PyObject *mod;
/* The special value is removed from sys.path in Python3_Init(). */
@@ -2255,6 +2254,7 @@ static PyMODINIT_FUNC Py3Init_vim(void)
return mod;
}
+#endif
/*************************************************************************
* 4. Utility functions for handling the interface between Vim and Python.
diff --git a/src/undo.c b/src/undo.c
index 0423094fe4..7abd67b2b3 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -106,7 +106,7 @@ static size_t fwrite_crypt __ARGS((buf_T *buf UNUSED, char_u *ptr, size_t len, F
static char_u *read_string_decrypt __ARGS((buf_T *buf UNUSED, FILE *fd, int len));
static int serialize_header __ARGS((FILE *fp, buf_T *buf, char_u *hash));
static int serialize_uhp __ARGS((FILE *fp, buf_T *buf, u_header_T *uhp));
-static u_header_T *unserialize_uhp __ARGS((FILE *fp, char_u *file_name, int new_version));
+static u_header_T *unserialize_uhp __ARGS((FILE *fp, char_u *file_name));
static int serialize_uep __ARGS((FILE *fp, buf_T *buf, u_entry_T *uep));
static u_entry_T *unserialize_uep __ARGS((FILE *fp, int *error, char_u *file_name));
static void serialize_pos __ARGS((pos_T pos, FILE *fp));
@@ -694,9 +694,7 @@ nomem:
# define UF_HEADER_END_MAGIC 0xe7aa /* magic after last header */
# define UF_ENTRY_MAGIC 0xf518 /* magic at start of entry */
# define UF_ENTRY_END_MAGIC 0x3581 /* magic after last entry */
-# define UF_VERSION_PREV 1 /* 2-byte undofile version number */
# define UF_VERSION 2 /* 2-byte undofile version number */
-# define UF_VERSION_CRYPT_PREV 0x8001 /* idem, encrypted */
# define UF_VERSION_CRYPT 0x8002 /* idem, encrypted */
/* extra fields for header */
@@ -1019,10 +1017,9 @@ serialize_uhp(fp, buf, uhp)
}
static u_header_T *
-unserialize_uhp(fp, file_name, new_version)
+unserialize_uhp(fp, file_name)
FILE *fp;
char_u *file_name;
- int new_version;
{
u_header_T *uhp;
int i;
@@ -1068,26 +1065,25 @@ unserialize_uhp(fp, file_name, new_version)
uhp->uh_time = get8ctime(fp);
/* Optional fields. */
- if (new_version)
- for (;;)
- {
- int len = getc(fp);
- int what;
+ for (;;)
+ {
+ int len = getc(fp);
+ int what;
- if (len == 0)
+ if (len == 0)
+ break;
+ what = getc(fp);
+ switch (what)
+ {
+ case UHP_SAVE_NR:
+ uhp->uh_save_nr = get4c(fp);
break;
- what = getc(fp);
- switch (what)
- {
- case UHP_SAVE_NR:
- uhp->uh_save_nr = get4c(fp);
- break;
- default:
- /* field not supported, skip */
- while (--len >= 0)
- (void)getc(fp);
- }
+ default:
+ /* field not supported, skip */
+ while (--len >= 0)
+ (void)getc(fp);
}
+ }
/* Unserialize the uep list. */
last_uep = NULL;
@@ -1564,7 +1560,6 @@ u_read_undo(name, hash, orig_name)
char_u *file_name;
FILE *fp;
long version, str_len;
- int new_version;
char_u *line_ptr = NULL;
linenr_T line_lnum;
colnr_T line_colnr;
@@ -1645,7 +1640,7 @@ u_read_undo(name, hash, orig_name)
goto error;
}
version = get2c(fp);
- if (version == UF_VERSION_CRYPT || version == UF_VERSION_CRYPT_PREV)
+ if (version == UF_VERSION_CRYPT)
{
#ifdef FEAT_CRYPT
if (*curbuf->b_p_key == NUL)
@@ -1665,12 +1660,11 @@ u_read_undo(name, hash, orig_name)
goto error;
#endif
}
- else if (version != UF_VERSION && version != UF_VERSION_PREV)
+ else if (version != UF_VERSION)
{
EMSG2(_("E824: Incompatible undo file: %s"), file_name);
goto error;
}
- new_version = (version == UF_VERSION || version == UF_VERSION_CRYPT);
if (fread(read_hash, UNDO_HASH_SIZE, 1, fp) != 1)
{
@@ -1716,27 +1710,26 @@ u_read_undo(name, hash, orig_name)
seq_cur = get4c(fp);
seq_time = get8ctime(fp);
- /* Optional header fields, not in previous version. */
- if (new_version)
- for (;;)
- {
- int len = getc(fp);
- int what;
+ /* Optional header fields. */
+ for (;;)
+ {
+ int len = getc(fp);
+ int what;
- if (len == 0 || len == EOF)
+ if (len == 0 || len == EOF)
+ break;
+ what = getc(fp);
+ switch (what)
+ {
+ case UF_LAST_SAVE_NR:
+ last_save_nr = get4c(fp);
break;
- what = getc(fp);
- switch (what)
- {
- case UF_LAST_SAVE_NR:
- last_save_nr = get4c(fp);
- break;
- default:
- /* field not supported, skip */
- while (--len >= 0)
- (void)getc(fp);
- }
+ default:
+ /* field not supported, skip */
+ while (--len >= 0)
+ (void)getc(fp);
}
+ }
/* uhp_table will store the freshly created undo headers we allocate
* until we insert them into curbuf. The table remains sorted by the
@@ -1758,7 +1751,7 @@ u_read_undo(name, hash, orig_name)
goto error;
}
- uhp = unserialize_uhp(fp, file_name, new_version);
+ uhp = unserialize_uhp(fp, file_name);
if (uhp == NULL)
goto error;
uhp_table[num_read_uhps++] = uhp;
diff --git a/src/version.h b/src/version.h
index df420abad0..7dd45890da 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim73a"
#define VIM_VERSION_SHORT "7.3a"
#define VIM_VERSION_MEDIUM "7.3a BETA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.3 BETA (2010 Jul 7)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.3 BETA (2010 Jul 7, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.3a BETA (2010 Jul 18)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.3a BETA (2010 Jul 18, compiled "