Karsten Hopp 950679
To: vim_dev@googlegroups.com
Karsten Hopp 950679
Subject: Patch 7.4.197
Karsten Hopp 950679
Fcc: outbox
Karsten Hopp 950679
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 950679
Mime-Version: 1.0
Karsten Hopp 950679
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 950679
Content-Transfer-Encoding: 8bit
Karsten Hopp 950679
------------
Karsten Hopp 950679
Karsten Hopp 950679
Patch 7.4.197
Karsten Hopp 950679
Problem:    Various problems on VMS.
Karsten Hopp 950679
Solution:   Fix several VMS problems. (Zoltan Arpadffy)
Karsten Hopp 950679
Files:	    runtime/doc/os_vms.txt, src/Make_vms.mms, src/fileio.c,
Karsten Hopp 950679
	    src/os_unix.c, src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
Karsten Hopp 950679
	    src/proto/os_vms.pro, src/testdir/Make_vms.mms,
Karsten Hopp 950679
	    src/testdir/test72.in, src/testdir/test77a.com,
Karsten Hopp 950679
	    src/testdir/test77a.in, src/testdir/test77a.ok src/undo.c
Karsten Hopp 950679
Karsten Hopp 950679
Karsten Hopp 950679
*** ../vim-7.4.196/runtime/doc/os_vms.txt	2013-08-10 13:24:59.000000000 +0200
Karsten Hopp 950679
--- runtime/doc/os_vms.txt	2014-03-12 15:55:50.196741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 1,4 ****
Karsten Hopp 950679
! *os_vms.txt*    For Vim version 7.4.  Last change: 2011 Aug 14
Karsten Hopp 950679
  
Karsten Hopp 950679
  
Karsten Hopp 950679
  		  VIM REFERENCE MANUAL
Karsten Hopp 950679
--- 1,4 ----
Karsten Hopp 950679
! *os_vms.txt*    For Vim version 7.4.  Last change: 2014 Feb 24
Karsten Hopp 950679
  
Karsten Hopp 950679
  
Karsten Hopp 950679
  		  VIM REFERENCE MANUAL
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 24,30 ****
Karsten Hopp 950679
  
Karsten Hopp 950679
  1. Getting started					*vms-started*
Karsten Hopp 950679
  
Karsten Hopp 950679
! Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
Karsten Hopp 950679
  operating system known to humanity.  Now use Vim on OpenVMS too, in character
Karsten Hopp 950679
  or X/Motif environment.  It is fully featured and absolutely compatible with
Karsten Hopp 950679
  Vim on other operating systems.
Karsten Hopp 950679
--- 24,30 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  1. Getting started					*vms-started*
Karsten Hopp 950679
  
Karsten Hopp 950679
! Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every
Karsten Hopp 950679
  operating system known to humanity.  Now use Vim on OpenVMS too, in character
Karsten Hopp 950679
  or X/Motif environment.  It is fully featured and absolutely compatible with
Karsten Hopp 950679
  Vim on other operating systems.
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 764,769 ****
Karsten Hopp 950679
--- 764,785 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  9. VMS related changes					*vms-changes*
Karsten Hopp 950679
  
Karsten Hopp 950679
+ Version 7.4 
Karsten Hopp 950679
+ - Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name" 
Karsten Hopp 950679
+   add _un_ at the beginning to keep the extension
Karsten Hopp 950679
+ - correct swap file name wildcard handling
Karsten Hopp 950679
+ - handle iconv usage correctly
Karsten Hopp 950679
+ - do not optimize on vax - otherwise it hangs compiling crypto files
Karsten Hopp 950679
+ - fileio.c fix the comment
Karsten Hopp 950679
+ - correct RealWaitForChar 
Karsten Hopp 950679
+ - after 7.4-119 use different functions lib$cvtf_to_internal_time because Alpha and VAX have
Karsten Hopp 950679
+   G_FLOAT but IA64 uses IEEE float otherwise Vim crashes
Karsten Hopp 950679
+ - guard agains crashes that are caused by mixed filenames
Karsten Hopp 950679
+ - [TESTDIR]make_vms.mms changed to see the output files
Karsten Hopp 950679
+ - Improve tests, update known issues
Karsten Hopp 950679
+ - minor compiler warnings fixed
Karsten Hopp 950679
+ - CTAGS 5.8 +regex included
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  Version 7.3
Karsten Hopp 950679
  - CTAGS 5.8 included
Karsten Hopp 950679
  - VMS compile warnings fixed - floating-point overflow warning corrected on VAX
Karsten Hopp 950679
*** ../vim-7.4.196/src/Make_vms.mms	2013-05-06 04:06:04.000000000 +0200
Karsten Hopp 950679
--- src/Make_vms.mms	2014-03-12 15:55:50.196741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 2,8 ****
Karsten Hopp 950679
  # Makefile for Vim on OpenVMS
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
Karsten Hopp 950679
! # Last change:  2008 Aug 16
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
Karsten Hopp 950679
  # with MMS and MMK
Karsten Hopp 950679
--- 2,8 ----
Karsten Hopp 950679
  # Makefile for Vim on OpenVMS
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # Maintainer:   Zoltan Arpadffy <arpadffy@polarhome.com>
Karsten Hopp 950679
! # Last change:  2014 Feb 24
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
Karsten Hopp 950679
  # with MMS and MMK
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 21,29 ****
Karsten Hopp 950679
  ######################################################################
Karsten Hopp 950679
  # Configuration section.
Karsten Hopp 950679
  ######################################################################
Karsten Hopp 950679
- # VMS version
Karsten Hopp 950679
- # Uncomment if you use VMS version 6.2 or older
Karsten Hopp 950679
- # OLD_VMS = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Compiler selection.
Karsten Hopp 950679
  # Comment out if you use the VAXC compiler
Karsten Hopp 950679
--- 21,26 ----
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 60,66 ****
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Uncomment if want a debug version. Resulting executable is DVIM.EXE
Karsten Hopp 950679
  # Development purpose only! Normally, it should not be defined. !!!
Karsten Hopp 950679
! # DEBUG = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Languages support for Perl, Python, TCL etc.
Karsten Hopp 950679
  # If you don't need it really, leave them behind the comment.
Karsten Hopp 950679
--- 57,63 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Uncomment if want a debug version. Resulting executable is DVIM.EXE
Karsten Hopp 950679
  # Development purpose only! Normally, it should not be defined. !!!
Karsten Hopp 950679
! # DEBUG = YES 
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Languages support for Perl, Python, TCL etc.
Karsten Hopp 950679
  # If you don't need it really, leave them behind the comment.
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 87,92 ****
Karsten Hopp 950679
--- 84,92 ----
Karsten Hopp 950679
  # Allow FEATURE_MZSCHEME
Karsten Hopp 950679
  # VIM_MZSCHEME = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
+ # Use ICONV
Karsten Hopp 950679
+ # VIM_ICONV  = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  ######################################################################
Karsten Hopp 950679
  # Directory, library and include files configuration section.
Karsten Hopp 950679
  # Normally you need not to change anything below. !
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 99,123 ****
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF MMSVAX
Karsten Hopp 950679
  .IFDEF DECC	     # VAX with DECC
Karsten Hopp 950679
! CC_DEF  = cc # /decc # some system requires this switch but when it is not required /ver might fail
Karsten Hopp 950679
  PREFIX  = /prefix=all
Karsten Hopp 950679
  .ELSE		     # VAX with VAXC
Karsten Hopp 950679
  CC_DEF	= cc
Karsten Hopp 950679
  PREFIX	=
Karsten Hopp 950679
  CCVER	=
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
! .ELSE		     # AXP wixh DECC
Karsten Hopp 950679
  CC_DEF  = cc
Karsten Hopp 950679
  PREFIX  = /prefix=all
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
  LD_DEF  = link
Karsten Hopp 950679
  C_INC   = [.proto]
Karsten Hopp 950679
  
Karsten Hopp 950679
- .IFDEF OLD_VMS
Karsten Hopp 950679
- VMS_DEF = ,"OLD_VMS"
Karsten Hopp 950679
- .ENDIF
Karsten Hopp 950679
- 
Karsten Hopp 950679
  .IFDEF DEBUG
Karsten Hopp 950679
  DEBUG_DEF = ,"DEBUG"
Karsten Hopp 950679
  TARGET    = dvim.exe
Karsten Hopp 950679
--- 99,123 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF MMSVAX
Karsten Hopp 950679
  .IFDEF DECC	     # VAX with DECC
Karsten Hopp 950679
! CC_DEF  = cc # /decc # some versions require /decc switch but when it is not required /ver might fail
Karsten Hopp 950679
  PREFIX  = /prefix=all
Karsten Hopp 950679
+ OPTIMIZE= /noopt     # do not optimize on VAX. The compiler has hard time with crypto functions
Karsten Hopp 950679
  .ELSE		     # VAX with VAXC
Karsten Hopp 950679
  CC_DEF	= cc
Karsten Hopp 950679
  PREFIX	=
Karsten Hopp 950679
+ OPTIMIZE= /noopt
Karsten Hopp 950679
  CCVER	=
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
! .ELSE		     # AXP and IA64 with DECC
Karsten Hopp 950679
  CC_DEF  = cc
Karsten Hopp 950679
  PREFIX  = /prefix=all
Karsten Hopp 950679
+ OPTIMIZE= /opt
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  LD_DEF  = link
Karsten Hopp 950679
  C_INC   = [.proto]
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF DEBUG
Karsten Hopp 950679
  DEBUG_DEF = ,"DEBUG"
Karsten Hopp 950679
  TARGET    = dvim.exe
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 125,131 ****
Karsten Hopp 950679
  LDFLAGS   = /debug
Karsten Hopp 950679
  .ELSE
Karsten Hopp 950679
  TARGET    = vim.exe
Karsten Hopp 950679
! CFLAGS    = /opt$(PREFIX)
Karsten Hopp 950679
  LDFLAGS   =
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 125,131 ----
Karsten Hopp 950679
  LDFLAGS   = /debug
Karsten Hopp 950679
  .ELSE
Karsten Hopp 950679
  TARGET    = vim.exe
Karsten Hopp 950679
! CFLAGS    = $(OPTIMIZE)$(PREFIX)
Karsten Hopp 950679
  LDFLAGS   =
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 274,279 ****
Karsten Hopp 950679
--- 274,284 ----
Karsten Hopp 950679
  MZSCH_OBJ = if_mzsch.obj
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
+ .IFDEF VIM_ICONV
Karsten Hopp 950679
+ # ICONV related setup
Karsten Hopp 950679
+ ICONV_DEF = ,"USE_ICONV"
Karsten Hopp 950679
+ .ENDIF
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  ######################################################################
Karsten Hopp 950679
  # End of configuration section.
Karsten Hopp 950679
  # Please, do not change anything below without programming experience.
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 287,294 ****
Karsten Hopp 950679
  
Karsten Hopp 950679
  .SUFFIXES : .obj .c
Karsten Hopp 950679
  
Karsten Hopp 950679
! ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(VMS_DEF)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
Karsten Hopp 950679
!  $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)) -
Karsten Hopp 950679
   $(CFLAGS)$(GUI_FLAG) -
Karsten Hopp 950679
   /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(TCL_INC))
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 292,299 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  .SUFFIXES : .obj .c
Karsten Hopp 950679
  
Karsten Hopp 950679
! ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
Karsten Hopp 950679
!  $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) -
Karsten Hopp 950679
   $(CFLAGS)$(GUI_FLAG) -
Karsten Hopp 950679
   /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(TCL_INC))
Karsten Hopp 950679
  
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 296,303 ****
Karsten Hopp 950679
  # It is specially formated for correct display of unix like includes
Karsten Hopp 950679
  # as $(GUI_INC) - replaced with $(GUI_INC_VER)
Karsten Hopp 950679
  # Otherwise should not be any other difference.
Karsten Hopp 950679
! ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(VMS_DEF)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
Karsten Hopp 950679
!  $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)) -
Karsten Hopp 950679
   $(CFLAGS)$(GUI_FLAG) -
Karsten Hopp 950679
   /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(TCL_INC))
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 301,308 ----
Karsten Hopp 950679
  # It is specially formated for correct display of unix like includes
Karsten Hopp 950679
  # as $(GUI_INC) - replaced with $(GUI_INC_VER)
Karsten Hopp 950679
  # Otherwise should not be any other difference.
Karsten Hopp 950679
! ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
Karsten Hopp 950679
!  $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) -
Karsten Hopp 950679
   $(CFLAGS)$(GUI_FLAG) -
Karsten Hopp 950679
   /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(TCL_INC))
Karsten Hopp 950679
  
Karsten Hopp 950679
*** ../vim-7.4.196/src/fileio.c	2014-02-23 22:58:12.072764176 +0100
Karsten Hopp 950679
--- src/fileio.c	2014-03-12 15:55:50.200741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 7559,7565 ****
Karsten Hopp 950679
      p = (char_u *)tempnam("tmp:", (char *)itmp);
Karsten Hopp 950679
      if (p != NULL)
Karsten Hopp 950679
      {
Karsten Hopp 950679
! 	/* VMS will use '.LOG' if we don't explicitly specify an extension,
Karsten Hopp 950679
  	 * and VIM will then be unable to find the file later */
Karsten Hopp 950679
  	STRCPY(itmp, p);
Karsten Hopp 950679
  	STRCAT(itmp, ".txt");
Karsten Hopp 950679
--- 7559,7565 ----
Karsten Hopp 950679
      p = (char_u *)tempnam("tmp:", (char *)itmp);
Karsten Hopp 950679
      if (p != NULL)
Karsten Hopp 950679
      {
Karsten Hopp 950679
! 	/* VMS will use '.LIS' if we don't explicitly specify an extension,
Karsten Hopp 950679
  	 * and VIM will then be unable to find the file later */
Karsten Hopp 950679
  	STRCPY(itmp, p);
Karsten Hopp 950679
  	STRCAT(itmp, ".txt");
Karsten Hopp 950679
*** ../vim-7.4.196/src/os_unix.c	2013-12-11 17:12:32.000000000 +0100
Karsten Hopp 950679
--- src/os_unix.c	2014-03-12 16:25:11.144768271 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 2965,2971 ****
Karsten Hopp 950679
--- 2965,2990 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
      if (stat((char *)name, &st))
Karsten Hopp 950679
  	return 0;
Karsten Hopp 950679
+ #ifdef VMS
Karsten Hopp 950679
+     /* Like on Unix system file can have executable rights but not necessarily
Karsten Hopp 950679
+      * be an executable, but on Unix is not a default for an ordianry file to
Karsten Hopp 950679
+      * have an executable flag - on VMS it is in most cases.
Karsten Hopp 950679
+      * Therefore, this check does not have any sense - let keep us to the
Karsten Hopp 950679
+      * conventions instead:
Karsten Hopp 950679
+      * *.COM and *.EXE files are the executables - the rest are not. This is
Karsten Hopp 950679
+      * not ideal but better then it was.
Karsten Hopp 950679
+      */
Karsten Hopp 950679
+     int vms_executable = 0;
Karsten Hopp 950679
+     if (S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0)
Karsten Hopp 950679
+     {
Karsten Hopp 950679
+ 	if (strstr(vms_tolower((char*)name),".exe") != NULL
Karsten Hopp 950679
+ 		|| strstr(vms_tolower((char*)name),".com")!= NULL)
Karsten Hopp 950679
+ 	    vms_executable = 1;
Karsten Hopp 950679
+     }
Karsten Hopp 950679
+     return vms_executable;
Karsten Hopp 950679
+ #else
Karsten Hopp 950679
      return S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0;
Karsten Hopp 950679
+ #endif
Karsten Hopp 950679
  }
Karsten Hopp 950679
  
Karsten Hopp 950679
  /*
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 2983,2989 ****
Karsten Hopp 950679
--- 3002,3010 ----
Karsten Hopp 950679
      /* If it's an absolute or relative path don't need to use $PATH. */
Karsten Hopp 950679
      if (mch_isFullName(name) || (name[0] == '.' && (name[1] == '/'
Karsten Hopp 950679
  				      || (name[1] == '.' && name[2] == '/'))))
Karsten Hopp 950679
+     {
Karsten Hopp 950679
  	return executable_file(name);
Karsten Hopp 950679
+     }
Karsten Hopp 950679
  
Karsten Hopp 950679
      p = (char_u *)getenv("PATH");
Karsten Hopp 950679
      if (p == NULL || *p == NUL)
Karsten Hopp 950679
*** ../vim-7.4.196/src/os_unix.h	2013-12-11 17:12:32.000000000 +0100
Karsten Hopp 950679
--- src/os_unix.h	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 302,308 ****
Karsten Hopp 950679
  #  define USR_VIMRC_FILE2	"$HOME/vimfiles/vimrc"
Karsten Hopp 950679
  # else
Karsten Hopp 950679
  #  ifdef VMS
Karsten Hopp 950679
! #   define USR_VIMRC_FILE2	"sys$login:vimfiles:vimrc"
Karsten Hopp 950679
  #  else
Karsten Hopp 950679
  #    define USR_VIMRC_FILE2	"~/.vim/vimrc"
Karsten Hopp 950679
  #  endif
Karsten Hopp 950679
--- 302,308 ----
Karsten Hopp 950679
  #  define USR_VIMRC_FILE2	"$HOME/vimfiles/vimrc"
Karsten Hopp 950679
  # else
Karsten Hopp 950679
  #  ifdef VMS
Karsten Hopp 950679
! #   define USR_VIMRC_FILE2	"sys$login:vimfiles/vimrc"
Karsten Hopp 950679
  #  else
Karsten Hopp 950679
  #    define USR_VIMRC_FILE2	"~/.vim/vimrc"
Karsten Hopp 950679
  #  endif
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 329,335 ****
Karsten Hopp 950679
  #  define USR_GVIMRC_FILE2	"$HOME/vimfiles/gvimrc"
Karsten Hopp 950679
  # else
Karsten Hopp 950679
  #  ifdef VMS
Karsten Hopp 950679
! #   define USR_GVIMRC_FILE2	"sys$login:vimfiles:gvimrc"
Karsten Hopp 950679
  #  else
Karsten Hopp 950679
  #   define USR_GVIMRC_FILE2	"~/.vim/gvimrc"
Karsten Hopp 950679
  #  endif
Karsten Hopp 950679
--- 329,335 ----
Karsten Hopp 950679
  #  define USR_GVIMRC_FILE2	"$HOME/vimfiles/gvimrc"
Karsten Hopp 950679
  # else
Karsten Hopp 950679
  #  ifdef VMS
Karsten Hopp 950679
! #   define USR_GVIMRC_FILE2	"sys$login:vimfiles/gvimrc"
Karsten Hopp 950679
  #  else
Karsten Hopp 950679
  #   define USR_GVIMRC_FILE2	"~/.vim/gvimrc"
Karsten Hopp 950679
  #  endif
Karsten Hopp 950679
*** ../vim-7.4.196/src/os_vms.c	2013-12-11 17:12:32.000000000 +0100
Karsten Hopp 950679
--- src/os_vms.c	2014-03-12 16:26:17.544769288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 296,301 ****
Karsten Hopp 950679
--- 296,313 ----
Karsten Hopp 950679
  }
Karsten Hopp 950679
  
Karsten Hopp 950679
  /*
Karsten Hopp 950679
+  * Convert string to lowercase - most often filename
Karsten Hopp 950679
+  */
Karsten Hopp 950679
+     char *
Karsten Hopp 950679
+ vms_tolower( char *name )
Karsten Hopp 950679
+ {
Karsten Hopp 950679
+     int i,nlen = strlen(name);
Karsten Hopp 950679
+     for (i = 0; i < nlen; i++)
Karsten Hopp 950679
+ 	name[i] = TOLOWER_ASC(name[i]);
Karsten Hopp 950679
+     return name;
Karsten Hopp 950679
+ }
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ /*
Karsten Hopp 950679
   * Convert VMS system() or lib$spawn() return code to Unix-like exit value.
Karsten Hopp 950679
   */
Karsten Hopp 950679
      int
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 361,373 ****
Karsten Hopp 950679
  vms_wproc(char *name, int val)
Karsten Hopp 950679
  {
Karsten Hopp 950679
      int i;
Karsten Hopp 950679
-     int nlen;
Karsten Hopp 950679
      static int vms_match_alloced = 0;
Karsten Hopp 950679
  
Karsten Hopp 950679
!     if (val != DECC$K_FILE) /* Directories and foreign non VMS files are not
Karsten Hopp 950679
! 			       counting  */
Karsten Hopp 950679
  	return 1;
Karsten Hopp 950679
  
Karsten Hopp 950679
      if (vms_match_num == 0) {
Karsten Hopp 950679
  	/* first time through, setup some things */
Karsten Hopp 950679
  	if (NULL == vms_fmatch) {
Karsten Hopp 950679
--- 373,384 ----
Karsten Hopp 950679
  vms_wproc(char *name, int val)
Karsten Hopp 950679
  {
Karsten Hopp 950679
      int i;
Karsten Hopp 950679
      static int vms_match_alloced = 0;
Karsten Hopp 950679
  
Karsten Hopp 950679
!     if (val == DECC$K_FOREIGN ) /* foreign non VMS files are not counting */
Karsten Hopp 950679
  	return 1;
Karsten Hopp 950679
  
Karsten Hopp 950679
+     /* accept all DECC$K_FILE and DECC$K_DIRECTORY */
Karsten Hopp 950679
      if (vms_match_num == 0) {
Karsten Hopp 950679
  	/* first time through, setup some things */
Karsten Hopp 950679
  	if (NULL == vms_fmatch) {
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 383,394 ****
Karsten Hopp 950679
  	}
Karsten Hopp 950679
      }
Karsten Hopp 950679
  
Karsten Hopp 950679
      vms_remove_version(name);
Karsten Hopp 950679
! 
Karsten Hopp 950679
!     /* convert filename to lowercase */
Karsten Hopp 950679
!     nlen = strlen(name);
Karsten Hopp 950679
!     for (i = 0; i < nlen; i++)
Karsten Hopp 950679
! 	name[i] = TOLOWER_ASC(name[i]);
Karsten Hopp 950679
  
Karsten Hopp 950679
      /* if name already exists, don't add it */
Karsten Hopp 950679
      for (i = 0; i
Karsten Hopp 950679
--- 394,402 ----
Karsten Hopp 950679
  	}
Karsten Hopp 950679
      }
Karsten Hopp 950679
  
Karsten Hopp 950679
+     /* make matches look uniform */
Karsten Hopp 950679
      vms_remove_version(name);
Karsten Hopp 950679
!     name=vms_tolower(name);
Karsten Hopp 950679
  
Karsten Hopp 950679
      /* if name already exists, don't add it */
Karsten Hopp 950679
      for (i = 0; i
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 428,433 ****
Karsten Hopp 950679
--- 436,442 ----
Karsten Hopp 950679
  {
Karsten Hopp 950679
      int		i, cnt = 0;
Karsten Hopp 950679
      char_u	buf[MAXPATHL];
Karsten Hopp 950679
+     char       *result;
Karsten Hopp 950679
      int		dir;
Karsten Hopp 950679
      int files_alloced, files_free;
Karsten Hopp 950679
  
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 449,456 ****
Karsten Hopp 950679
  	    STRCPY(buf,pat[i]);
Karsten Hopp 950679
  
Karsten Hopp 950679
  	vms_match_num = 0; /* reset collection counter */
Karsten Hopp 950679
! 	cnt = decc$to_vms(decc$translate_vms(vms_fixfilename(buf)), vms_wproc, 1, 0);
Karsten Hopp 950679
! 						      /* allow wild, no dir */
Karsten Hopp 950679
  	if (cnt > 0)
Karsten Hopp 950679
  	    cnt = vms_match_num;
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 458,470 ----
Karsten Hopp 950679
  	    STRCPY(buf,pat[i]);
Karsten Hopp 950679
  
Karsten Hopp 950679
  	vms_match_num = 0; /* reset collection counter */
Karsten Hopp 950679
! 	result = decc$translate_vms(vms_fixfilename(buf));
Karsten Hopp 950679
! 	if ( (int) result == 0 || (int) result == -1  ) {
Karsten Hopp 950679
! 	    cnt = 0;
Karsten Hopp 950679
! 	}
Karsten Hopp 950679
!         else {
Karsten Hopp 950679
! 	    cnt = decc$to_vms(result, vms_wproc, 1 /*allow wild*/ , (flags & EW_DIR ? 0:1 ) /*allow directory*/) ;
Karsten Hopp 950679
! 	}
Karsten Hopp 950679
  	if (cnt > 0)
Karsten Hopp 950679
  	    cnt = vms_match_num;
Karsten Hopp 950679
  
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 497,506 ****
Karsten Hopp 950679
  mch_expandpath(garray_T *gap, char_u *path, int flags)
Karsten Hopp 950679
  {
Karsten Hopp 950679
      int		i,cnt = 0;
Karsten Hopp 950679
!     vms_match_num = 0;
Karsten Hopp 950679
  
Karsten Hopp 950679
!     cnt = decc$to_vms(decc$translate_vms(vms_fixfilename(path)), vms_wproc, 1, 0);
Karsten Hopp 950679
! 						      /* allow wild, no dir */
Karsten Hopp 950679
      if (cnt > 0)
Karsten Hopp 950679
  	cnt = vms_match_num;
Karsten Hopp 950679
      for (i = 0; i < cnt; i++)
Karsten Hopp 950679
--- 511,528 ----
Karsten Hopp 950679
  mch_expandpath(garray_T *gap, char_u *path, int flags)
Karsten Hopp 950679
  {
Karsten Hopp 950679
      int		i,cnt = 0;
Karsten Hopp 950679
!     char       *result;
Karsten Hopp 950679
  
Karsten Hopp 950679
!     vms_match_num = 0;
Karsten Hopp 950679
!     /* the result from the decc$translate_vms needs to be handled */
Karsten Hopp 950679
!     /* otherwise it might create ACCVIO error in decc$to_vms      */
Karsten Hopp 950679
!     result = decc$translate_vms(vms_fixfilename(path));
Karsten Hopp 950679
!     if ( (int) result == 0 || (int) result == -1  ) {
Karsten Hopp 950679
!         cnt = 0;
Karsten Hopp 950679
!     }
Karsten Hopp 950679
!     else {
Karsten Hopp 950679
!         cnt = decc$to_vms(result, vms_wproc, 1 /*allow_wild*/, (flags & EW_DIR ? 0:1 ) /*allow directory*/);
Karsten Hopp 950679
!     }
Karsten Hopp 950679
      if (cnt > 0)
Karsten Hopp 950679
  	cnt = vms_match_num;
Karsten Hopp 950679
      for (i = 0; i < cnt; i++)
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 521,526 ****
Karsten Hopp 950679
--- 543,549 ----
Karsten Hopp 950679
      char *end_of_dir;
Karsten Hopp 950679
      char ch;
Karsten Hopp 950679
      int len;
Karsten Hopp 950679
+     char *out_str=out;
Karsten Hopp 950679
  
Karsten Hopp 950679
      /* copy vms filename portion up to last colon
Karsten Hopp 950679
       * (node and/or disk)
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 602,608 ****
Karsten Hopp 950679
  	*end_of_dir = ']';
Karsten Hopp 950679
  }
Karsten Hopp 950679
  
Karsten Hopp 950679
- 
Karsten Hopp 950679
  /*
Karsten Hopp 950679
   * for decc$to_vms in vms_fixfilename
Karsten Hopp 950679
   */
Karsten Hopp 950679
--- 625,630 ----
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 710,735 ****
Karsten Hopp 950679
      struct _generic_64 time_diff;
Karsten Hopp 950679
      struct _generic_64 time_out;
Karsten Hopp 950679
      unsigned int convert_operation = LIB$K_DELTA_SECONDS_F;
Karsten Hopp 950679
!     float sec = (float) msec / 1000;
Karsten Hopp 950679
  
Karsten Hopp 950679
      /* make sure the iochan is set */
Karsten Hopp 950679
      if (!iochan)
Karsten Hopp 950679
  	get_tty();
Karsten Hopp 950679
  
Karsten Hopp 950679
!     if (msec > 0) {
Karsten Hopp 950679
          /* time-out specified; convert it to absolute time */
Karsten Hopp 950679
  
Karsten Hopp 950679
          /* get current time (number of 100ns ticks since the VMS Epoch) */
Karsten Hopp 950679
          status = sys$gettim(&time_curr);
Karsten Hopp 950679
          if (status != SS$_NORMAL)
Karsten Hopp 950679
              return 0; /* error */
Karsten Hopp 950679
- 
Karsten Hopp 950679
          /* construct the delta time */
Karsten Hopp 950679
!         status = lib$cvtf_to_internal_time(
Karsten Hopp 950679
                  &convert_operation, &sec, &time_diff);
Karsten Hopp 950679
          if (status != LIB$_NORMAL)
Karsten Hopp 950679
              return 0; /* error */
Karsten Hopp 950679
- 
Karsten Hopp 950679
          /* add them up */
Karsten Hopp 950679
          status = lib$add_times(
Karsten Hopp 950679
                  &time_curr,
Karsten Hopp 950679
--- 732,764 ----
Karsten Hopp 950679
      struct _generic_64 time_diff;
Karsten Hopp 950679
      struct _generic_64 time_out;
Karsten Hopp 950679
      unsigned int convert_operation = LIB$K_DELTA_SECONDS_F;
Karsten Hopp 950679
!     float sec =(float) msec/1000;
Karsten Hopp 950679
  
Karsten Hopp 950679
      /* make sure the iochan is set */
Karsten Hopp 950679
      if (!iochan)
Karsten Hopp 950679
  	get_tty();
Karsten Hopp 950679
  
Karsten Hopp 950679
!     if (sec > 0) {
Karsten Hopp 950679
          /* time-out specified; convert it to absolute time */
Karsten Hopp 950679
+ 	/* sec>0 requirement of lib$cvtf_to_internal_time()*/
Karsten Hopp 950679
  
Karsten Hopp 950679
          /* get current time (number of 100ns ticks since the VMS Epoch) */
Karsten Hopp 950679
          status = sys$gettim(&time_curr);
Karsten Hopp 950679
          if (status != SS$_NORMAL)
Karsten Hopp 950679
              return 0; /* error */
Karsten Hopp 950679
          /* construct the delta time */
Karsten Hopp 950679
! #if __G_FLOAT==0
Karsten Hopp 950679
! # ifndef VAX
Karsten Hopp 950679
! 	/* IEEE is default on IA64, but can be used on Alpha too - but not on VAX */
Karsten Hopp 950679
!         status = lib$cvts_to_internal_time(
Karsten Hopp 950679
                  &convert_operation, &sec, &time_diff);
Karsten Hopp 950679
+ # endif
Karsten Hopp 950679
+ #else   /* default on Alpha and VAX  */
Karsten Hopp 950679
+         status = lib$cvtf_to_internal_time(
Karsten Hopp 950679
+ 		&convert_operation, &sec, &time_diff);
Karsten Hopp 950679
+ #endif
Karsten Hopp 950679
          if (status != LIB$_NORMAL)
Karsten Hopp 950679
              return 0; /* error */
Karsten Hopp 950679
          /* add them up */
Karsten Hopp 950679
          status = lib$add_times(
Karsten Hopp 950679
                  &time_curr,
Karsten Hopp 950679
*** ../vim-7.4.196/src/os_vms_conf.h	2014-02-23 22:52:33.372764715 +0100
Karsten Hopp 950679
--- src/os_vms_conf.h	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 166,173 ****
Karsten Hopp 950679
  #undef  HAVE_SYS_TIME_H
Karsten Hopp 950679
  #undef  HAVE_LOCALE_H
Karsten Hopp 950679
  #define BROKEN_LOCALE
Karsten Hopp 950679
- #undef  HAVE_ICONV_H
Karsten Hopp 950679
- #undef  HAVE_ICONV
Karsten Hopp 950679
  #undef  DYNAMIC_ICONV
Karsten Hopp 950679
  #undef	HAVE_STRFTIME
Karsten Hopp 950679
  #else
Karsten Hopp 950679
--- 166,171 ----
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 177,188 ****
Karsten Hopp 950679
  #define HAVE_SYS_TIME_H
Karsten Hopp 950679
  #define HAVE_LOCALE_H
Karsten Hopp 950679
  #define BROKEN_LOCALE
Karsten Hopp 950679
- #undef  HAVE_ICONV_H
Karsten Hopp 950679
- #undef  HAVE_ICONV
Karsten Hopp 950679
  #undef  DYNAMIC_ICONV
Karsten Hopp 950679
  #define	HAVE_STRFTIME
Karsten Hopp 950679
  #endif
Karsten Hopp 950679
  
Karsten Hopp 950679
  /* GUI support defines */
Karsten Hopp 950679
  #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK)
Karsten Hopp 950679
  #define HAVE_X11
Karsten Hopp 950679
--- 175,192 ----
Karsten Hopp 950679
  #define HAVE_SYS_TIME_H
Karsten Hopp 950679
  #define HAVE_LOCALE_H
Karsten Hopp 950679
  #define BROKEN_LOCALE
Karsten Hopp 950679
  #undef  DYNAMIC_ICONV
Karsten Hopp 950679
  #define	HAVE_STRFTIME
Karsten Hopp 950679
  #endif
Karsten Hopp 950679
  
Karsten Hopp 950679
+ #if defined(USE_ICONV)
Karsten Hopp 950679
+ #define HAVE_ICONV_H
Karsten Hopp 950679
+ #define HAVE_ICONV
Karsten Hopp 950679
+ #else
Karsten Hopp 950679
+ #undef HAVE_ICONV_H
Karsten Hopp 950679
+ #undef HAVE_ICONV
Karsten Hopp 950679
+ #endif
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  /* GUI support defines */
Karsten Hopp 950679
  #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK)
Karsten Hopp 950679
  #define HAVE_X11
Karsten Hopp 950679
*** ../vim-7.4.196/src/proto/os_vms.pro	2013-08-10 13:37:40.000000000 +0200
Karsten Hopp 950679
--- src/proto/os_vms.pro	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 7,12 ****
Karsten Hopp 950679
--- 7,13 ----
Karsten Hopp 950679
  int vms_sys __ARGS((char *cmd, char *out, char *inp));
Karsten Hopp 950679
  int vms_sys_status __ARGS((int status));
Karsten Hopp 950679
  int vms_read __ARGS((char *inbuf, size_t nbytes));
Karsten Hopp 950679
+ char *vms_tolower __ARGS((char *name));
Karsten Hopp 950679
  int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
Karsten Hopp 950679
  int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
Karsten Hopp 950679
  void *vms_fixfilename __ARGS((void *instring));
Karsten Hopp 950679
*** ../vim-7.4.196/src/testdir/Make_vms.mms	2014-02-23 23:38:58.812760280 +0100
Karsten Hopp 950679
--- src/testdir/Make_vms.mms	2014-03-12 16:06:22.888750982 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 4,10 ****
Karsten Hopp 950679
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
Karsten Hopp 950679
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # Last change:  2014 Feb 23
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
Karsten Hopp 950679
  # Edit the lines in the Configuration section below to select.
Karsten Hopp 950679
--- 4,10 ----
Karsten Hopp 950679
  # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
Karsten Hopp 950679
  #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # Last change:  2014 Mar 12
Karsten Hopp 950679
  #
Karsten Hopp 950679
  # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
Karsten Hopp 950679
  # Edit the lines in the Configuration section below to select.
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 41,56 ****
Karsten Hopp 950679
  # They fail because VMS does not support file names.
Karsten Hopp 950679
  # WANT_SPELL = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
! # Comment out if you want to run mzschema  tests.
Karsten Hopp 950679
  # It fails because VMS does not support this feature yet.
Karsten Hopp 950679
  # WANT_MZSCH = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Comment out if you have gzip on your system
Karsten Hopp 950679
  # HAVE_GZIP = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Comment out if you have GNU compatible diff on your system
Karsten Hopp 950679
  # HAVE_GDIFF = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  #######################################################################
Karsten Hopp 950679
  # End of configuration section.
Karsten Hopp 950679
  #
Karsten Hopp 950679
--- 41,71 ----
Karsten Hopp 950679
  # They fail because VMS does not support file names.
Karsten Hopp 950679
  # WANT_SPELL = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
! # Comment out if you want to run mzschema tests.
Karsten Hopp 950679
  # It fails because VMS does not support this feature yet.
Karsten Hopp 950679
  # WANT_MZSCH = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
+ # Comment out if you have ODS-5 file system                                                                                                                 
Karsten Hopp 950679
+ # HAVE_ODS5 = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  # Comment out if you have gzip on your system
Karsten Hopp 950679
  # HAVE_GZIP = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Comment out if you have GNU compatible diff on your system
Karsten Hopp 950679
  # HAVE_GDIFF = YES
Karsten Hopp 950679
  
Karsten Hopp 950679
+ # Comment out if you have GNU compatible cksum on your system                                                                                                  
Karsten Hopp 950679
+ # HAVE_CKSUM = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ # Comment out if you have ICONV support                                                                                                  
Karsten Hopp 950679
+ # HAVE_ICONV = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ # Comment out if you have LUA support
Karsten Hopp 950679
+ # HAVE_LUA = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ # Comment out if you have PYTHON support
Karsten Hopp 950679
+ # HAVE_PYTHON = YES
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  #######################################################################
Karsten Hopp 950679
  # End of configuration section.
Karsten Hopp 950679
  #
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 63,99 ****
Karsten Hopp 950679
  
Karsten Hopp 950679
  SCRIPT = test1.out  test2.out  test3.out  test4.out  test5.out  \
Karsten Hopp 950679
  	 test6.out  test7.out  test8.out  test9.out  test10a.out\
Karsten Hopp 950679
! 	 test13.out test14.out test15.out test17.out \
Karsten Hopp 950679
  	 test18.out test19.out test20.out test21.out test22.out \
Karsten Hopp 950679
  	 test23.out test24.out test26.out \
Karsten Hopp 950679
  	 test28.out test29.out test30.out test31.out test32.out \
Karsten Hopp 950679
  	 test33.out test34.out test35.out test36.out test37.out \
Karsten Hopp 950679
  	 test38.out test39.out test40.out test41.out test42.out \
Karsten Hopp 950679
  	 test43.out test44.out test45.out test46.out \
Karsten Hopp 950679
! 	 test48.out test51.out test53.out test54.out test55.out \
Karsten Hopp 950679
! 	 test56.out test57.out test60.out \
Karsten Hopp 950679
  	 test61.out test62.out test63.out test64.out test65.out \
Karsten Hopp 950679
  	 test66.out test67.out test68.out test69.out \
Karsten Hopp 950679
  	 test71.out test72.out test74.out test75.out test76.out \
Karsten Hopp 950679
! 	 test77.out test78.out test79.out test80.out test81.out \
Karsten Hopp 950679
! 	 test82.out test83.out test84.out test88.out test89.out \
Karsten Hopp 950679
  	 test90.out test91.out test92.out test93.out test94.out \
Karsten Hopp 950679
! 	 test95.out test96.out test97.out test98.out test99.out \
Karsten Hopp 950679
! 	 test100.out test101.out test102.out test103.out test104.out \
Karsten Hopp 950679
  	 test105.out
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Known problems:
Karsten Hopp 950679
! # Test 30: a problem around mac format - unknown reason
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # Test 32: VMS is not case sensitive and all filenames are lowercase within Vim
Karsten Hopp 950679
  # (this should be changed in order to preserve the original filename) - should
Karsten Hopp 950679
  # be fixed. VMS allows just one dot in the filename
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # Test 58 and 59: Failed/Hangs - VMS does not support spell files (file names
Karsten Hopp 950679
  # with too many dots).
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # Test 72: unknown reason
Karsten Hopp 950679
! # Test 85: no Lua interface
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_GUI
Karsten Hopp 950679
  SCRIPT_GUI = test16.out
Karsten Hopp 950679
--- 78,121 ----
Karsten Hopp 950679
  
Karsten Hopp 950679
  SCRIPT = test1.out  test2.out  test3.out  test4.out  test5.out  \
Karsten Hopp 950679
  	 test6.out  test7.out  test8.out  test9.out  test10a.out\
Karsten Hopp 950679
! 	 test13.out test14.out test15.out \
Karsten Hopp 950679
  	 test18.out test19.out test20.out test21.out test22.out \
Karsten Hopp 950679
  	 test23.out test24.out test26.out \
Karsten Hopp 950679
  	 test28.out test29.out test30.out test31.out test32.out \
Karsten Hopp 950679
  	 test33.out test34.out test35.out test36.out test37.out \
Karsten Hopp 950679
  	 test38.out test39.out test40.out test41.out test42.out \
Karsten Hopp 950679
  	 test43.out test44.out test45.out test46.out \
Karsten Hopp 950679
! 	 test48.out test49.out test51.out test53.out test54.out \
Karsten Hopp 950679
! 	 test55.out test56.out test57.out test60.out \
Karsten Hopp 950679
  	 test61.out test62.out test63.out test64.out test65.out \
Karsten Hopp 950679
  	 test66.out test67.out test68.out test69.out \
Karsten Hopp 950679
  	 test71.out test72.out test74.out test75.out test76.out \
Karsten Hopp 950679
! 	 test77a.out test78.out test79.out test80.out test81.out \
Karsten Hopp 950679
! 	 test82.out test84.out test88.out test89.out \
Karsten Hopp 950679
  	 test90.out test91.out test92.out test93.out test94.out \
Karsten Hopp 950679
! 	 test95.out test96.out test98.out test99.out \
Karsten Hopp 950679
! 	 test100.out test101.out test103.out test104.out \
Karsten Hopp 950679
  	 test105.out
Karsten Hopp 950679
  
Karsten Hopp 950679
  # Known problems:
Karsten Hopp 950679
! # test17: ?
Karsten Hopp 950679
! #
Karsten Hopp 950679
! # test30: bug, most probably - a problem around mac format
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # test32: VMS is not case sensitive and all filenames are lowercase within Vim
Karsten Hopp 950679
  # (this should be changed in order to preserve the original filename) - should
Karsten Hopp 950679
  # be fixed. VMS allows just one dot in the filename
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # test58, test59: Failed/Hangs - VMS does not support spell files (file names
Karsten Hopp 950679
  # with too many dots).
Karsten Hopp 950679
  #
Karsten Hopp 950679
! # test72: bug - Vim hangs at :rename (while rename works well otherwise)
Karsten Hopp 950679
! # test78: bug - Vim dies at :recover Xtest 
Karsten Hopp 950679
! # test83: ?
Karsten Hopp 950679
! # test85: no Lua interface
Karsten Hopp 950679
! # test89: bug - findfile() does not work on VMS (just in the current directory) 
Karsten Hopp 950679
! # test97, test102: Just ODS-5 supports space and special chars in the filename.
Karsten Hopp 950679
! # On ODS-2 tests fail. 
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_GUI
Karsten Hopp 950679
  SCRIPT_GUI = test16.out
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 101,107 ****
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_UNIX
Karsten Hopp 950679
! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test49.out test73.out
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_WIN
Karsten Hopp 950679
--- 123,129 ----
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_UNIX
Karsten Hopp 950679
! SCRIPT_UNIX = test10.out test12.out test17.out test25.out test27.out test49.out test73.out
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
  .IFDEF WANT_WIN
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 116,121 ****
Karsten Hopp 950679
--- 138,147 ----
Karsten Hopp 950679
  SCRIPT_MZSCH = test70.out 
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
+ .IFDEF HAVE_ODS5                                                                                                                                   
Karsten Hopp 950679
+ SCRIPT_ODS5 = test97.out test102.out                                                                                                   
Karsten Hopp 950679
+ .ENDIF  
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  .IFDEF HAVE_GZIP
Karsten Hopp 950679
  SCRIPT_GZIP = test11.out
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 124,133 ****
Karsten Hopp 950679
--- 150,177 ----
Karsten Hopp 950679
  SCRIPT_GDIFF = test47.out
Karsten Hopp 950679
  .ENDIF
Karsten Hopp 950679
  
Karsten Hopp 950679
+ .IFDEF HAVE_CKSUM
Karsten Hopp 950679
+ SCRIPT_CKSUM = test77.out
Karsten Hopp 950679
+ .ENDIF
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ .IFDEF HAVE_ICONV
Karsten Hopp 950679
+ SCRIPT_ICONV = test83.out
Karsten Hopp 950679
+ .ENDIF
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ .IFDEF HAVE_LUA
Karsten Hopp 950679
+ SCRIPT_LUA = test85.out
Karsten Hopp 950679
+ .ENDIF
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ .IFDEF HAVE_PYTHON
Karsten Hopp 950679
+ SCRIPT_PYTHON = test86.out test87.out
Karsten Hopp 950679
+ .ENDIF
Karsten Hopp 950679
+ 
Karsten Hopp 950679
  .in.out :
Karsten Hopp 950679
  	-@ !clean up before doing the test
Karsten Hopp 950679
  	-@ if "''F$SEARCH("test.out.*")'" .NES. "" then delete/noconfirm/nolog test.out.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("$*.out.*")'"   .NES. "" then delete/noconfirm/nolog $*.out.*
Karsten Hopp 950679
+ 	-@ ! define TMP if not set - some tests use it
Karsten Hopp 950679
+ 	-@ if "''F$TRNLNM("TMP")'" .EQS. "" then define/nolog TMP []
Karsten Hopp 950679
  	-@ write sys$output " "
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ write sys$output "                "$*" "
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 140,148 ****
Karsten Hopp 950679
  	-@ if "''F$SEARCH("$*.out.*")'"   .NES. "" then differences /par $*.out $*.ok;
Karsten Hopp 950679
  	-@ !clean up after the test
Karsten Hopp 950679
  	-@ if "''F$SEARCH("Xdotest.*")'"  .NES. "" then delete/noconfirm/nolog Xdotest.*.*
Karsten Hopp 950679
  
Karsten Hopp 950679
! all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_GZIP) \
Karsten Hopp 950679
!     $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) nolog 
Karsten Hopp 950679
  	-@ write sys$output " "
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ write sys$output "                All done"
Karsten Hopp 950679
--- 184,193 ----
Karsten Hopp 950679
  	-@ if "''F$SEARCH("$*.out.*")'"   .NES. "" then differences /par $*.out $*.ok;
Karsten Hopp 950679
  	-@ !clean up after the test
Karsten Hopp 950679
  	-@ if "''F$SEARCH("Xdotest.*")'"  .NES. "" then delete/noconfirm/nolog Xdotest.*.*
Karsten Hopp 950679
+ 	-@ if "''F$SEARCH("Xtest.*")'"    .NES. "" then delete/noconfirm/nolog Xtest.*.*
Karsten Hopp 950679
  
Karsten Hopp 950679
! all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \
Karsten Hopp 950679
!     $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_CKSUM) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog 
Karsten Hopp 950679
  	-@ write sys$output " "
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ write sys$output "                All done"
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 165,177 ****
Karsten Hopp 950679
  	-@ write sys$output "                Test results:"
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ write sys$output "MAKE_VMS.MMS options:"
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_GUI  = ""$(WANT_GUI)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_UNIX = ""$(WANT_UNIX)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_WIN  = ""$(WANT_WIN)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_SPELL= ""$(WANT_SPELL)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_MZSCH= ""$(WANT_MZSCH)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_GZIP = ""$(HAVE_GZIP)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_GDIFF= ""$(HAVE_GDIFF)"" "
Karsten Hopp 950679
  	-@ write sys$output "Default vimrc file is VMS.VIM:"
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ type VMS.VIM
Karsten Hopp 950679
--- 210,227 ----
Karsten Hopp 950679
  	-@ write sys$output "                Test results:"
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ write sys$output "MAKE_VMS.MMS options:"
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_GUI   = ""$(WANT_GUI)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_UNIX  = ""$(WANT_UNIX)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_WIN   = ""$(WANT_WIN)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_SPELL = ""$(WANT_SPELL)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   WANT_MZSCH = ""$(WANT_MZSCH)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_ODS5  = ""$(HAVE_ODS5)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_GZIP  = ""$(HAVE_GZIP)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_GDIFF = ""$(HAVE_GDIFF)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_CKSUM = ""$(HAVE_CKSUM)"" "	  
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_ICONV = ""$(HAVE_ICONV)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_LUA   = ""$(HAVE_LUA)"" "
Karsten Hopp 950679
! 	-@ write sys$output "   HAVE_PYTHON= ""$(HAVE_PYTHON)"" "
Karsten Hopp 950679
  	-@ write sys$output "Default vimrc file is VMS.VIM:"
Karsten Hopp 950679
  	-@ write sys$output "-----------------------------------------------"
Karsten Hopp 950679
  	-@ type VMS.VIM
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 181,186 ****
Karsten Hopp 950679
--- 231,239 ----
Karsten Hopp 950679
  	-@ if "''F$SEARCH("test.log")'"     .NES. "" then delete/noconfirm/nolog test.log.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("test.ok")'"      .NES. "" then delete/noconfirm/nolog test.ok.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("Xdotest.*")'"    .NES. "" then delete/noconfirm/nolog Xdotest.*.*
Karsten Hopp 950679
+ 	-@ if "''F$SEARCH("Xtest*.*")'"     .NES. "" then delete/noconfirm/nolog Xtest*.*.*
Karsten Hopp 950679
+ 	-@ if "''F$SEARCH("XX*.*")'"        .NES. "" then delete/noconfirm/nolog XX*.*.*
Karsten Hopp 950679
+ 	-@ if "''F$SEARCH("_un_*.*")'"      .NES. "" then delete/noconfirm/nolog _un_*.*.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("*.*_sw*")'"      .NES. "" then delete/noconfirm/nolog *.*_sw*.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("*.failed")'"     .NES. "" then delete/noconfirm/nolog *.failed.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("*.rej")'"        .NES. "" then delete/noconfirm/nolog *.rej.*
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 188,193 ****
Karsten Hopp 950679
  	-@ if "''F$SEARCH("small.vim")'"    .NES. "" then delete/noconfirm/nolog small.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("mbyte.vim")'"    .NES. "" then delete/noconfirm/nolog mbyte.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.*
Karsten Hopp 950679
! 	-@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("viminfo.*")'"    .NES. "" then delete/noconfirm/nolog viminfo.*.*
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 241,246 ----
Karsten Hopp 950679
  	-@ if "''F$SEARCH("small.vim")'"    .NES. "" then delete/noconfirm/nolog small.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("mbyte.vim")'"    .NES. "" then delete/noconfirm/nolog mbyte.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.*
Karsten Hopp 950679
! 	-@ if "''F$SEARCH("lua.vim")'"      .NES. "" then delete/noconfirm/nolog lua.vim.*
Karsten Hopp 950679
  	-@ if "''F$SEARCH("viminfo.*")'"    .NES. "" then delete/noconfirm/nolog viminfo.*.*
Karsten Hopp 950679
  
Karsten Hopp 950679
*** ../vim-7.4.196/src/testdir/test72.in	2012-01-04 19:04:17.000000000 +0100
Karsten Hopp 950679
--- src/testdir/test72.in	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 105,111 ****
Karsten Hopp 950679
  u:.w >>test.out
Karsten Hopp 950679
  :"
Karsten Hopp 950679
  :" Rename the undo file so that it gets cleaned up.
Karsten Hopp 950679
! :call rename(".Xtestfile.un~", "Xtestundo")
Karsten Hopp 950679
  :qa!
Karsten Hopp 950679
  ENDTEST
Karsten Hopp 950679
  
Karsten Hopp 950679
--- 105,115 ----
Karsten Hopp 950679
  u:.w >>test.out
Karsten Hopp 950679
  :"
Karsten Hopp 950679
  :" Rename the undo file so that it gets cleaned up.
Karsten Hopp 950679
! :if has("vms")
Karsten Hopp 950679
! : call rename("_un_Xtestfile", "Xtestundo")
Karsten Hopp 950679
! :else
Karsten Hopp 950679
! : call rename(".Xtestfile.un~", "Xtestundo")
Karsten Hopp 950679
! :endif
Karsten Hopp 950679
  :qa!
Karsten Hopp 950679
  ENDTEST
Karsten Hopp 950679
  
Karsten Hopp 950679
*** ../vim-7.4.196/src/testdir/test77a.com	2014-03-12 16:49:10.740790329 +0100
Karsten Hopp 950679
--- src/testdir/test77a.com	2014-03-12 16:40:04.316781957 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 0 ****
Karsten Hopp 950679
--- 1,8 ----
Karsten Hopp 950679
+ $! test77a - help file creating checksum on VMS
Karsten Hopp 950679
+ $! Created by Zoltan Arpadffy
Karsten Hopp 950679
+ $
Karsten Hopp 950679
+ $ IF P1 .NES. ""
Karsten Hopp 950679
+ $ THEN
Karsten Hopp 950679
+ $    checksum 'P1'
Karsten Hopp 950679
+ $    show symb CHECKSUM$CHECKSUM
Karsten Hopp 950679
+ $ ENDIF
Karsten Hopp 950679
*** ../vim-7.4.196/src/testdir/test77a.in	2014-03-12 16:49:10.748790329 +0100
Karsten Hopp 950679
--- src/testdir/test77a.in	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 0 ****
Karsten Hopp 950679
--- 1,31 ----
Karsten Hopp 950679
+ Inserts 2 million lines with consecutive integers starting from 1
Karsten Hopp 950679
+ (essentially, the output of GNU's seq 1 2000000), writes them to Xtest
Karsten Hopp 950679
+ and writes its cksum to test.out.
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
Karsten Hopp 950679
+ up the lines the checksum would differ.
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ cksum is part of POSIX and so should be available on most Unixes.
Karsten Hopp 950679
+ If it isn't available then the test will be skipped.
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ VMS does not have CKSUM but has a built in CHECKSUM - it should be used
Karsten Hopp 950679
+ STARTTEST
Karsten Hopp 950679
+ :so small.vim
Karsten Hopp 950679
+ :if !has("vms")
Karsten Hopp 950679
+ : e! test.ok
Karsten Hopp 950679
+ : w! test.out
Karsten Hopp 950679
+ : qa!
Karsten Hopp 950679
+ :endif
Karsten Hopp 950679
+ :set fileformat=unix undolevels=-1
Karsten Hopp 950679
+ ggdG
Karsten Hopp 950679
+ :let i = 1
Karsten Hopp 950679
+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
Karsten Hopp 950679
+ ggdd
Karsten Hopp 950679
+ :w! Xtest.
Karsten Hopp 950679
+ :r !@test77a.com Xtest.
Karsten Hopp 950679
+ :s/\s/ /g
Karsten Hopp 950679
+ :set fileformat&
Karsten Hopp 950679
+ :.w! test.out
Karsten Hopp 950679
+ :qa!
Karsten Hopp 950679
+ ENDTEST
Karsten Hopp 950679
+ 
Karsten Hopp 950679
*** ../vim-7.4.196/src/testdir/test77a.ok	2014-03-12 16:49:10.756790330 +0100
Karsten Hopp 950679
--- src/testdir/test77a.ok	2014-03-12 15:55:50.204741288 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 0 ****
Karsten Hopp 950679
--- 1 ----
Karsten Hopp 950679
+   CHECKSUM$CHECKSUM = "844110470"
Karsten Hopp 950679
*** ../vim-7.4.196/src/undo.c	2014-01-23 18:12:44.695676751 +0100
Karsten Hopp 950679
--- src/undo.c	2014-03-12 16:31:52.432774419 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 790,798 ****
Karsten Hopp 950679
--- 790,809 ----
Karsten Hopp 950679
  	    if (undo_file_name == NULL)
Karsten Hopp 950679
  		break;
Karsten Hopp 950679
  	    p = gettail(undo_file_name);
Karsten Hopp 950679
+ #ifdef VMS
Karsten Hopp 950679
+ 	    /* VMS can not handle more than one dot in the filenames
Karsten Hopp 950679
+ 	     * use "dir/name" -> "dir/_un_name" - add _un_
Karsten Hopp 950679
+ 	     * at the beginning to keep the extension */
Karsten Hopp 950679
+ 	    mch_memmove(p + 4,  p, STRLEN(p) + 1);
Karsten Hopp 950679
+ 	    mch_memmove(p, "_un_", 4);
Karsten Hopp 950679
+ 
Karsten Hopp 950679
+ #else
Karsten Hopp 950679
+ 	    /* Use same directory as the ffname,
Karsten Hopp 950679
+ 	     * "dir/name" -> "dir/.name.un~" */
Karsten Hopp 950679
  	    mch_memmove(p + 1, p, STRLEN(p) + 1);
Karsten Hopp 950679
  	    *p = '.';
Karsten Hopp 950679
  	    STRCAT(p, ".un~");
Karsten Hopp 950679
+ #endif
Karsten Hopp 950679
  	}
Karsten Hopp 950679
  	else
Karsten Hopp 950679
  	{
Karsten Hopp 950679
*** ../vim-7.4.196/src/version.c	2014-03-12 15:50:18.472736205 +0100
Karsten Hopp 950679
--- src/version.c	2014-03-12 15:54:26.712740008 +0100
Karsten Hopp 950679
***************
Karsten Hopp 950679
*** 740,741 ****
Karsten Hopp 950679
--- 740,743 ----
Karsten Hopp 950679
  {   /* Add new patch number below this line */
Karsten Hopp 950679
+ /**/
Karsten Hopp 950679
+     197,
Karsten Hopp 950679
  /**/
Karsten Hopp 950679
Karsten Hopp 950679
-- 
Karsten Hopp 950679
Violators can be fined, arrested or jailed for making ugly faces at a dog.
Karsten Hopp 950679
		[real standing law in Oklahoma, United States of America]
Karsten Hopp 950679
Karsten Hopp 950679
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 950679
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 950679
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 950679
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///