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