Loading ...
Sorry, an error occurred while loading the content.
 

Patch 5.6.045 (extra) (fixed version)

Expand Messages
  • Bram Moolenaar
    NOTE: This patch was sent before, but with an error at the start of the patch for src/main.c. This is a fixed version of the same patch. Patch 5.6.045 (extra)
    Message 1 of 1 , Mar 31, 2000
      NOTE: This patch was sent before, but with an error at the start of the patch
      for src/main.c. This is a fixed version of the same patch.

      Patch 5.6.045 (extra) (fixed version)
      Problem: VMS: Various small problems.
      Solution: Many small changes. (Zoltan Arpadffy)
      File name modifier ":h" keeps the path separator.
      File name modifier ":e" also removes version.
      Compile with MAX_FEAT by default.
      When checking for autocommands ignore version in file name.
      Be aware of file names being case insensitive.
      Added vt320 builtin termcap.
      Be prepared for an empty default_vim_dir.
      Files: runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
      runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
      src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
      src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
      src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c


      *** ../vim-5.6.44/runtime/gvimrc_example.vim Tue Feb 2 21:01:23 1999
      --- runtime/gvimrc_example.vim Wed Mar 29 17:03:29 2000
      ***************
      *** 2,13 ****
      " The commands in this are executed when the GUI is started.
      "
      " Maintainer: Bram Moolenaar <Bram@...>
      ! " Last change: 1999 Feb 02
      "
      " To use it, copy it to
      " for Unix and OS/2: ~/.gvimrc
      " for Amiga: s:.gvimrc
      " for MS-DOS and Win32: $VIM\_gvimrc

      " Make external commands work through a pipe instead of a pseudo-tty
      "set noguipty
      --- 2,14 ----
      " The commands in this are executed when the GUI is started.
      "
      " Maintainer: Bram Moolenaar <Bram@...>
      ! " Last change: 2000 Mar 29
      "
      " To use it, copy it to
      " for Unix and OS/2: ~/.gvimrc
      " for Amiga: s:.gvimrc
      " for MS-DOS and Win32: $VIM\_gvimrc
      + " for OpenVMS: sys$login:.gvimrc

      " Make external commands work through a pipe instead of a pseudo-tty
      "set noguipty
      *** ../vim-5.6.44/runtime/vimrc_example.vim Tue Jan 11 18:23:54 2000
      --- runtime/vimrc_example.vim Wed Mar 29 18:58:43 2000
      ***************
      *** 1,13 ****
      " An example for a vimrc file.
      "
      " Maintainer: Bram Moolenaar <Bram@...>
      ! " Last change: 2000 Jan 06
      "
      " To use it, copy it to
      " for Unix and OS/2: ~/.vimrc
      " for Amiga: s:.vimrc
      " for MS-DOS and Win32: $VIM\_vimrc
      ! " for VMS: sys$login:.vimrc

      " Use Vim settings, rather then Vi settings (much better!).
      " This must be first, because it changes other options as a side effect.
      --- 1,13 ----
      " An example for a vimrc file.
      "
      " Maintainer: Bram Moolenaar <Bram@...>
      ! " Last change: 2000 Mar 29
      "
      " To use it, copy it to
      " for Unix and OS/2: ~/.vimrc
      " for Amiga: s:.vimrc
      " for MS-DOS and Win32: $VIM\_vimrc
      ! " for OpenVMS: sys$login:.vimrc

      " Use Vim settings, rather then Vi settings (much better!).
      " This must be first, because it changes other options as a side effect.
      ***************
      *** 15,21 ****

      set bs=2 " allow backspacing over everything in insert mode
      set ai " always set autoindenting on
      ! set backup " keep a backup file
      set viminfo='20,\"50 " read/write a .viminfo file, don't store more
      " than 50 lines of registers
      set history=50 " keep 50 lines of command line history
      --- 15,25 ----

      set bs=2 " allow backspacing over everything in insert mode
      set ai " always set autoindenting on
      ! if has("vms")
      ! set nobackup " do not keep a backup file, use versions instead
      ! else
      ! set backup " keep a backup file
      ! endif
      set viminfo='20,\"50 " read/write a .viminfo file, don't store more
      " than 50 lines of registers
      set history=50 " keep 50 lines of command line history
      *** ../vim-5.6.44/runtime/doc/os_vms.txt Sun Jan 16 14:12:58 2000
      --- runtime/doc/os_vms.txt Fri Mar 31 12:47:05 2000
      ***************
      *** 1,4 ****
      ! *os_vms.txt* For Vim version 5.6. Last change: 2000 Jan 12


      VIM REFERENCE MANUAL
      --- 1,4 ----
      ! *os_vms.txt* For Vim version 5.6 Last change: 2000 Mar 31


      VIM REFERENCE MANUAL
      ***************
      *** 6,137 ****

      *VMS* *vms*
      This file contains the particularities for the VMS version of Vim.

      ! 1. Getting started |vms-started|
      ! 2. Download files |vms-download|
      ! 3. Compiling |vms-compiling|
      ! 4. Problems |vms-problems|
      ! 5. Deploy |vms-deploy|
      ! 6. Practical usage |vms-usage|
      ! 7. GUI mode questions |vms-gui|
      ! 8. Useful notes |vms-notes|
      ! 9. Authors |vms-authors|

      ==============================================================================
      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 Open VMS too, in character
      or X/Motif environment. It is fully featured and absolutely compatible with
      ! VIM on other operating systems.
      ==============================================================================
      2. Download files *vms-download*

      ! You can download the VIM source code by ftp from the official VIM site:
      ftp://ftp.vim.org/pub/vim/
      Or use one of the mirrors:
      ftp://ftp.vim.org/pub/vim/MIRRORS

      You will need both the Unix and Extra archives to build vim.exe for VMS.
      ! For using VIM's full power you will need the runtime files as well.

      You can download precompiled executables from:
      http://www.polarfox.com/vim/

      ==============================================================================
      3. Compiling *vms-compiling*

      Unpack the Unix and Extra archives together into one directory. In the <.SRC>
      subdirectory you should find the make file OS_VMS.MMS. By editing this file
      ! you may choose between building the character, GUI and debug version.

      You will need either the DECSET mms utility or the freely available clone of
      ! it called mmk (VMS has no make utility in the standard distribution). I found
      ! a binary of 'mmk' which worked well.

      If you have MSS on your system, the command
      ! > MMS /DESCRIP=OS_VMS.MMS
      ! will start building your own customized version of VIM.

      ==============================================================================
      4. Problems *vms-problems*

      ! The code has been tested under Open VMS 6.2-7.1 and with the DECC compiler.
      ! It should work without bigger problems. If it happened that your system does
      ! not have some include libraries you can tune up in OS_VMS_CONF.H file.
      ! Note: Under VAX it should work with DECC compiler without problem, but the
      ! code is not compilable with the old VAXC compiler.
      ==============================================================================
      5. Deploy *vms-deploy*

      Vim uses a special directory structure to hold the document and runtime files:

      vim (or wherever)
      |- tmp
      |- vim56
      |----- doc
      |----- syntax

      Use:
      ! > assign/nolog dev:[leading-path-here.vim54] vimruntime
      ! > assign/nolog dev:[leading-path-here.vim54.tmp] tmp

      to get vim.exe to find its document, filetype, and syntax files, and to
      ! specify a directory where temporary files will be located. Copy the "runtime"
      subdirectory of the vim distribution to vimruntime.

      ==============================================================================
      6. Practical usage *vms-usage*

      ! Copy all VIM runtime directory structure to the deployment position.
      ! Add the following things to your LOGIN.COM (in SYS$LOGIN directory).
      Set up logical $VIM as:

      ! > $ define vim device:<path>

      Set up some symbols:

      ! > $ ! vi starts vim in chr. mode.
      > $ vi*m :== mcr device:<path>VIM.EXE

      ! > $ gvi starts vim in GUI mode.
      > $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g

      - > $ ! normal vt300-80 is not defined. let us use ansi instead.
      - > $ define term "ansi"
      -
      Create .vimrc and .gvimrc files in your home directory (SYS$LOGIN).
      - The easiest way is just rename example files. You may leave the menu file
      - (MENU.VIM) in the original $VIM directory.

      ! It should work without any problem. Example LOGIN.COM:

      ! > $ vi*m :== mcr RF10:[UTIL.VIM]VIM.EXE
      ! > $ gv*im :== spawn/nowait mcr RF10:[UTIL.VIM]VIM.EXE -g
      ! > $ define vim RF10:[UTIL.VIM]
      ! > $ define term "ansi"
      ! > $ set disp/create/node=192.168.5.159/trans=tcpip

      ==============================================================================
      7. GUI mode questions *vms-gui*

      ! VMS is not a native X window environment so you can not start VIM in GUI mode
      ! "just like that".
      1) If you are working on the VMS X console:
      ! Start VIM with the command:
      > $ mc device:<path>VIM.EXE -g
      - or type :gui as a command to the VIM command prompt.

      ! 2) If you are working on other X window environment
      ! Set up display to your host with:
      ! > $ set disp/create/node=<your IP address>/trans=tcpip
      ! and start VIM as in point 1.

      3) If you are working on MS Windows or other non X window environment
      ! You need to set up one X server and run VIM as in point 2.
      For MS Windows there are available free X servers as MIX , Omni X etc.

      ==============================================================================
      8. Useful notes *vms-notes*

      8.1 backspace/delete.
      --- 6,229 ----

      *VMS* *vms*
      This file contains the particularities for the VMS version of Vim.
      + You can reach this information file by typing :help VMS in Vim command
      + prompt.

      ! 1. Getting started |vms-started|
      ! 2. Download files |vms-download|
      ! 3. Compiling |vms-compiling|
      ! 4. Problems |vms-problems|
      ! 5. Deploy |vms-deploy|
      ! 6. Practical usage |vms-usage|
      ! 7. GUI mode questions |vms-gui|
      ! 8. Useful notes |vms-notes|
      ! 9. Changes |vms-changes|
      ! 10. Authors |vms-authors|

      ==============================================================================
      +
      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.
      !
      ==============================================================================
      +
      2. Download files *vms-download*

      ! You can download the Vim source code by ftp from the official Vim site:
      ftp://ftp.vim.org/pub/vim/
      Or use one of the mirrors:
      ftp://ftp.vim.org/pub/vim/MIRRORS

      You will need both the Unix and Extra archives to build vim.exe for VMS.
      ! For using Vim's full power you will need the runtime files as well.

      You can download precompiled executables from:
      http://www.polarfox.com/vim/

      ==============================================================================
      +
      3. Compiling *vms-compiling*

      Unpack the Unix and Extra archives together into one directory. In the <.SRC>
      subdirectory you should find the make file OS_VMS.MMS. By editing this file
      ! you may choose between building the character, GUI and debug version. There
      ! are also additional options for Perl, Python and Tcl support.

      You will need either the DECSET mms utility or the freely available clone of
      ! it called mmk (VMS has no make utility in the standard distribution). You can
      ! download mmk from http://www.openvms.digital.com/freeware/MMK/

      If you have MSS on your system, the command
      !
      ! > mms /descrip=os_vms.mms
      !
      ! will start building your own customised version of Vim.
      ! The adequate command for mmk is:
      !
      ! > mmk /descrip=os_vms.mms

      ==============================================================================
      +
      4. Problems *vms-problems*

      ! The code has been tested under Open VMS 6.2 - 7.1 on Alpha and VAX platforms
      ! with the DECC compiler. It should work without bigger problems.
      ! If it happened that your system does not have some include libraries you can
      ! tune up in OS_VMS_CONF.H or GUI_VMS_CONF.H files.
      !
      ! If you decided to build Vim with +perl, +python, etc. options, first you need
      ! to download OpenVMS distributions of Perl and Python. Build and deploy the
      ! libraries and change adequate lines in OS_VMS.MMS file. There should not be
      ! problem from Vim side.
      !
      ! Note: Under VAX it should work with DEC C compiler without problem, but the
      ! code is not compilable with the old VAX C compiler.
      !
      ! MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and XXD.EXE
      ! you should change to subdirectory <.CTAGS> or <.XXD> and build them
      ! separately. You have to be prepared that the CTAGS and XXD make files are not
      ! always up to date.
      !
      ! Advanced users may try some acrobatics in FEATURE.H file also.
      !
      ! It is possible to compile with +xfontset +xim options too, but then you have
      ! to set up GUI fonts etc. correctly. See. :help xim from Vim command prompt.
      !
      ==============================================================================
      +
      5. Deploy *vms-deploy*

      Vim uses a special directory structure to hold the document and runtime files:

      vim (or wherever)
      |- tmp
      + |- vim55
      + |----- doc
      + |----- syntax
      |- vim56
      |----- doc
      |----- syntax
      + vimrc (system rc files)
      + gvimrc

      Use:
      !
      ! > define/nolog device:[leading-path-here.vim] vim
      ! > define/nolog device:[leading-path-here.vim.vim56] vimruntime
      ! > define/nolog device:[leading-path-here.tmp] tmp

      to get vim.exe to find its document, filetype, and syntax files, and to
      ! specify a directory where temporary files will be located. Copy the "runtime"
      subdirectory of the vim distribution to vimruntime.

      + Note: Logicals $VIMRUNTIME and $TMP are optional. Read more at :help runtime
      +
      ==============================================================================
      +
      6. Practical usage *vms-usage*

      ! Usually you want to run just one version of Vim on your system, therefore
      ! it is enough to dedicate one directory for Vim.
      ! Copy all Vim runtime directory structure to the deployment position.
      ! Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
      Set up logical $VIM as:

      ! > $ define VIM device:<path>

      Set up some symbols:

      ! > $ ! vi starts Vim in chr. mode.
      > $ vi*m :== mcr device:<path>VIM.EXE

      ! > $ !gvi starts Vim in GUI mode.
      > $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g

      Create .vimrc and .gvimrc files in your home directory (SYS$LOGIN).

      ! The easiest way is just rename example files. You may leave the menu file
      ! (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
      ! be default setup for all users, and for users is enough just to have their
      ! own additions or resetting in home directory in files .vimrc and .gvimrc.
      ! It should work without problems.
      !
      ! Note: Remember, system rc files (default for all users) does not have leading
      ! "." So, system rc files are:
      !
      ! > VIM$:vimrc
      ! > VIM$:gvimrc
      ! > VIM$:menu.vim
      !
      ! and user's customised rc files are:
      !
      ! > sys$login:.vimrc
      ! > sys$login:.gvimrc
      !
      ! You can check that everything is on the right place with the :version command.
      !
      ! Example LOGIN.COM:
      !
      ! > $ define/nolog VIM RF10:[UTIL.VIM]
      ! > $ vi*m :== mcr VIM:VIM.EXE
      ! > $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
      ! > $ set disp/create/node=192.168.5.223/trans=tcpip
      !
      ! Note: This set-up should be enough, if you are working on standalone server or
      ! clustered environment, but if you want to use Vim as internode editor, it
      ! will satiate you as well. You just have to define the "whole" path:

      ! > $ define VIM "<server_name>[""user password""]::device:<path>"
      ! > $ vi*m :== "mcr VIM:VIM.EXE"
      !
      ! as for example:
      !
      ! > $ define VIM "PLUTO::RF10:[UTIL.VIM]"
      ! > $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
      !
      ! You can also use $VIMRUNTIME logical to point to proper version of Vim if you
      ! have installed more versions in the same time. If $VIMRUNTIME is not defined
      ! Vim will borrow value from $VIM logical. You can find more information about
      ! $VIMRUNTIME logical by typing :help runtime as a Vim command.

      ==============================================================================
      +
      7. GUI mode questions *vms-gui*

      ! VMS is not a native X window environment, so you can not start Vim in GUI mode
      ! "just like that". But anyhow it is not too complicate to get a running Vim.
      !
      1) If you are working on the VMS X console:
      ! Start Vim with the command:
      !
      > $ mc device:<path>VIM.EXE -g

      ! or type :gui as a command to the Vim command prompt. For more info :help gui
      !
      ! 2) If you are working on other X window environment as Unix or some remote X
      ! VMS console. Set up display to your host with:
      !
      ! > $ set disp/create/node=<your IP address>/trans=<transport-name>
      !
      ! and start Vim as in point 1. You can find more help in VMS documentation or
      ! type: help set disp in VMS prompt.
      ! Examples:
      !
      ! > $ set disp/create/node=192.168.5.159 ! default trans is DECnet
      ! > $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
      ! > $ set disp/create/node=192.168.5.159/trans=local ! display on the same node
      !
      ! Note: you should define just one of these.
      ! For more information type $help set disp in VMS prompt.

      3) If you are working on MS Windows or other non X window environment
      ! You need to set up one X server and run Vim as in point 2.
      For MS Windows there are available free X servers as MIX , Omni X etc.

      ==============================================================================
      +
      8. Useful notes *vms-notes*

      8.1 backspace/delete.
      ***************
      *** 139,191 ****
      There are backspace/delete key inconsistencies with VMS.
      :fixdel doesn't do the trick, but the solution is:

      ! > " for terminal mode
      ! > inoremap ^? ^H
      !
      ! > " for gui mode
      ! > inoremap <Del> ^H

      ! (Bruce Hunsaker <BNHunsaker@...> VIM 5.3)

      8.2 Filters.

      ! VIM supports filters; ie. if you have a sort program that can handle
      input/output redirection like Unix (<infile >outfile), you could use

      > map \s 0!'aqsort<CR>

      ! (Charles E. Campbell, Jr. <cec@...> VIM 5.4)

      8.3 VMS file version numbers.

      ! If you want VIM to save into a new file with the next higher file version
      number, try these settings.
      - > set nobackup
      - > set nowritebackup

      ! (Claude Marinier <ClaudeMarinier@...> VIM 5.5 )

      8.4 Directory conversion.

      ! VIM will internally convert any unix-style paths and even mixed unix/VMS
      paths into VMS style paths. Some typical conversions resemble:

      /abc/def/ghi -> abc:[def]ghi.
      /abc/def/ghi.j -> abc:[def]ghi.j
      ! /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno.
      ! abc:[def.ghi]jkl/mno -> abc:[def.ghi.jkl]mno.
      ! ./ -> current directoty
      ! ../ -> relative parent directory
      ! <.def.ghi> -> relative child directory

      ! (David Elins <delins@...>, Jerom Lauret
      ! <JLAURET@...> VIM 5.6 )

      ==============================================================================
      ! 9. Authors *vms-authors*

      In alphabetical order:
      Zoltan Arpadffy <arpadffy@...>
      Charles E. Campbell, Jr. <cec@...>
      Bruce Hunsaker <BNHunsaker@...>
      Sandor Kopanyi <sandor.kopanyi@...>
      --- 231,434 ----
      There are backspace/delete key inconsistencies with VMS.
      :fixdel doesn't do the trick, but the solution is:

      ! > inoremap ^? ^H " for terminal mode
      ! > inoremap <Del> ^H " for gui mode

      ! Read more in ch: 8.6 (Terminal problems).
      ! (Bruce Hunsaker <BNHunsaker@...> Vim 5.3)

      8.2 Filters.

      ! Vim supports filters; ie. if you have a sort program that can handle
      input/output redirection like Unix (<infile >outfile), you could use

      > map \s 0!'aqsort<CR>

      ! (Charles E. Campbell, Jr. <cec@...> Vim 5.4)

      8.3 VMS file version numbers.

      ! Vim is saving files into a new file with the next higher file version
      number, try these settings.

      ! > set nobackup " does not create *.*_ backup files
      ! > set nowritebackup " does not have any purpose on VMS. It's default.
      !
      ! Recovery is working perfect as well from the default swap file.
      ! Read more with :help swapfile
      !
      ! (Claude Marinier <ClaudeMarinier@...> Vim 5.5, Zoltan Arpadffy
      ! Vim 5.6 )

      8.4 Directory conversion.

      ! Vim will internally convert any unix-style paths and even mixed unix/VMS
      paths into VMS style paths. Some typical conversions resemble:

      /abc/def/ghi -> abc:[def]ghi.
      /abc/def/ghi.j -> abc:[def]ghi.j
      ! /abc/def/ghi.j;2 -> abc:[def]ghi.j;2
      ! /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno.
      ! abc:[def.ghi]jkl/mno -> abc:[def.ghi.jkl]mno.
      ! ./ -> current directoty
      ! ../ -> relative parent directory
      ! [.def.ghi] -> relative child directory
      ! ./def/ghi -> relative child directory
      !
      ! Note: You may use <,> brackets as well (device:<path>file.ext;version) as
      ! rf10:<user.zay.work>test.c;1
      !
      ! (David Elins <delins@...>, Jerome Lauret
      ! <JLAURET@...> Vim 5.6 )
      !
      ! 8.5 Remote host invocation
      !
      ! It is possible to use Vim as an internode editor.
      ! 1. Edit some file from remote node:
      !
      ! > vi "<server>""username passwd""::<device>:<path><filename>;<version>"
      !
      ! example:
      ! > vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
      !
      ! Note: syntax is very important, otherwise VMS will recognise more parameters
      ! instead of one (resulting with: file not found)
      !
      ! 2. Set up Vim as your internode editor. If Vim is not installed on your host,
      ! just set up your IP address, full Vim path including the server name and run
      ! the command procedure below:
      !
      ! > $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
      ! > $ set disp/create/node=<your_IP_here>/trans=tcpip
      ! > $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
      ! > $ vi*m :== "mcr VIM:VIM.EXE"
      ! > $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
      ! > $ goto end
      ! > $ usage:
      ! > $ write sys$output " Please enter username and password as a parameter."
      ! > $ write sys$output " Example: @... username passwd"
      ! > $ end:
      !
      ! Note: Never use it in clustered environment (you do not need it), and load could
      ! be very-very slow, but even faster then a local Emacs. :-)
      !
      ! 8.6 Terminal problems
      !
      ! If your terminal name is not known to Vim and it is trying to find the default
      ! one you will get the following message during start-up:
      ! ---
      ! Terminal entry not found in termcap
      ! 'unknown-terminal' not known. Available built-in terminals are:
      ! builtin_gui
      ! builtin_riscos
      ! builtin_amiga
      ! builtin_beos-ansi
      ! builtin_ansi
      ! builtin_vt320
      ! builtin_vt52
      ! builtin_pcansi
      ! builtin_win32
      ! builtin_xterm
      ! builtin_iris-ansi
      ! builtin_debug
      ! builtin_dumb
      ! defaulting to 'vt320'
      ! ---
      ! The solution is to define default terminal name:
      !
      ! > $ ! unknown terminal name. let us use vt320 or ansi instead.
      ! > $ ! Note: it's case sensitive
      ! > $ define term "vt320"
      !
      ! Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
      ! keyboard mappings. They should work perfect as they are, including arrows,
      ! Ins, Del buttons etc. Except Backspace in GUI mode. To solve it, add to
      ! .gvimrc:
      !
      ! > inoremap <Del> <BS>
      !
      ! Vim will also recognise that they are fast terminals.
      !
      ! If you have some annoying line jumping on the screen between windows add to
      ! your .vimrc file:
      !
      ! > set ttyfast " set fast terminal
      !
      ! Note: if you're using Vim on remote host or through very slow connection, it's
      ! recommended to avoid fast terminal option with:

      ! > set nottyfast
      !
      ! (Zoltan Arpadffy, Vim 5.6-3(VMS))

      ==============================================================================
      !
      ! 9. Changes *vms-changes*
      !
      ! Version 5.6-4(VMS) (2000 Mar 27)
      ! - VMS filename related changes:
      ! - version handling (open everything, save to new version)
      ! - correct file extension matching for syntax (version problem)
      ! - handle <,> characters and passwords in directory definition
      ! - handle internode/remote invocation and editing with passwords
      ! - OpenVMS files will be treated case insensitive from now
      ! - corrected response of expand("%:.") etc path related functions
      ! (in one word: VMS directory handling internally)
      ! - version command
      ! - corrected (+,-) information data
      ! - added compiler and OS version
      ! - added user and host information
      ! - resolving $VIM and $VIMRUNTIME logicals
      ! - VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
      ! - Updated OS_VMS.MMS file.
      ! - maximum features ON is default
      ! - Vim is compilable with +perl, +python and +tcl features.
      ! - improved MMK compatibility
      ! - Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
      ! - Defined DEC terminal VT320
      ! - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
      ! backwards, but not VT340 and newer with colour capability.
      ! - VT320 is default terminal for OpenVMS
      ! - these new terminals are also fast ttys (default for OpenVMS).
      ! - allowed dec_mouse ttym
      ! - Updated files vimrc and gvimrc with VMS specific suggestions.
      ! - OS_VMS.TXT updated with new features.
      !
      ! Version 5.6 (2000 Jan 17)
      ! - Popup menu line crash corrected.
      ! - Handle full file names with version numbers.
      ! - Directory handling (CD command etc.)
      ! - Corrected file name conversion VMS to Unix and v.v.
      ! - Correct response of expand wildcards
      ! - Recovery is working from this version under VMS as well.
      ! - Improved terminal and signal handing.
      ! - Improved OS_VMS.TXT
      !
      ! Version 5.5 (1999 Dec 3)
      ! - Cut & paste mismatch corrected.
      ! - Motif directories during open and save are corrected.
      !
      ! Version 5.4 (1999 Sep 9)
      ! - Minor changes in the code
      ! - Standard distribution with +GUI option
      !
      ! Version 5.3 (1998 Oct 12)
      ! - Syntax and DEC C changes in the code
      ! - Fixing problems with the /doc subdirectory
      ! - Improve OS_VMS.MMS
      !
      ! Version 5.1 (1998 Apr 21)
      !
      ! Version 4.5 (1996 Dec 16)
      ! - First VMS port by Henk Elbers <henk@...>
      !
      ! ==============================================================================
      !
      ! 10. Authors *vms-authors*

      In alphabetical order:
      Zoltan Arpadffy <arpadffy@...>
      Charles E. Campbell, Jr. <cec@...>
      Bruce Hunsaker <BNHunsaker@...>
      Sandor Kopanyi <sandor.kopanyi@...>
      +
      *** ../vim-5.6.44/src/eval.c Sat Mar 25 21:34:04 2000
      --- src/eval.c Wed Mar 29 16:02:19 2000
      ***************
      *** 2999,3005 ****
      #ifdef USE_MOUSE
      "mouse",
      #endif
      ! #ifdef UNIX
      # ifdef DEC_MOUSE
      "mouse_dec",
      # endif
      --- 2999,3005 ----
      #ifdef USE_MOUSE
      "mouse",
      #endif
      ! #if defined(UNIX) || defined(VMS)
      # ifdef DEC_MOUSE
      "mouse_dec",
      # endif
      ***************
      *** 5618,5623 ****
      --- 5622,5631 ----
      while (tail > s && vim_ispathsep(tail[-1]))
      --tail;
      *fnamelen = tail - *fnamep;
      + #ifdef VMS
      + if (*fnamelen > 0)
      + *fnamelen += 1; /* the path separator is part of the path */
      + #endif
      while (tail > s && !vim_ispathsep(tail[-1]))
      --tail;
      }
      ***************
      *** 5652,5657 ****
      --- 5660,5674 ----
      {
      *fnamelen += *fnamep - (s + 1);
      *fnamep = s + 1;
      + #ifdef VMS
      + /* cut version from the extension */
      + s = *fnamep + *fnamelen - 1;
      + for ( ; s > *fnamep; --s)
      + if (s[0] == ';')
      + break;
      + if (s > *fnamep)
      + *fnamelen = s - *fnamep;
      + #endif
      }
      else if (*fnamep <= tail)
      *fnamelen = 0;
      *** ../vim-5.6.44/src/feature.h Sun Jan 9 19:59:08 2000
      --- src/feature.h Wed Mar 29 16:10:34 2000
      ***************
      *** 38,50 ****
      * default A selection of features enabled.
      *
      * These executables are made available with MAX_FEAT defined, because they
      ! * are supposed to have enough RAM: Win32 (console & GUI), dos32 and OS/2.
      * The dos16 version has very little RAM available, use MIN_FEAT.
      */
      #if !defined(MIN_FEAT) && !defined(MAX_FEAT)
      /* #define MIN_FEAT */
      /* #define MAX_FEAT */
      ! # if defined(MSWIN) || defined(DJGPP) || defined(OS2)
      # define MAX_FEAT
      # else
      # ifdef MSDOS
      --- 38,50 ----
      * default A selection of features enabled.
      *
      * These executables are made available with MAX_FEAT defined, because they
      ! * are supposed to have enough RAM: Win32 (console & GUI), dos32, OS/2 and VMS.
      * The dos16 version has very little RAM available, use MIN_FEAT.
      */
      #if !defined(MIN_FEAT) && !defined(MAX_FEAT)
      /* #define MIN_FEAT */
      /* #define MAX_FEAT */
      ! # if defined(MSWIN) || defined(DJGPP) || defined(OS2) || defined(VMS)
      # define MAX_FEAT
      # else
      # ifdef MSDOS
      ***************
      *** 436,442 ****
      * chinese and Japanese.
      * +hangul_input Internal Hangul input method. Must be included
      * through configure: "--enable-hangulin"
      ! * Both are for Unix only.
      */
      #ifndef USE_XIM
      /* #define USE_XIM */
      --- 436,442 ----
      * chinese and Japanese.
      * +hangul_input Internal Hangul input method. Must be included
      * through configure: "--enable-hangulin"
      ! * Both are for Unix only. Works for VMS too.
      */
      #ifndef USE_XIM
      /* #define USE_XIM */
      ***************
      *** 539,546 ****
      * is strongly discouraged: You can loose all your
      * changes when the computer crashes while writing the
      * file.
      */
      ! #ifndef VMS /* doesn't work on VMS */
      # define WRITEBACKUP
      #endif

      --- 539,549 ----
      * is strongly discouraged: You can loose all your
      * changes when the computer crashes while writing the
      * file.
      + * VMS note: It does work on VMS as well, but because of
      + * version handling it does not have any purpose.
      + * Overwrite will write to the new version.
      */
      ! #ifndef VMS
      # define WRITEBACKUP
      #endif

      *** ../vim-5.6.44/src/fileio.c Wed Dec 15 13:28:21 1999
      --- src/fileio.c Wed Mar 29 16:43:37 2000
      ***************
      *** 1128,1134 ****
      int made_writable = FALSE; /* 'w' bit has been set */
      #endif
      #ifdef VMS
      ! char_u *cp, nfname[MAXPATHL];
      #endif
      /* writing everything */
      int whole = (start == 1 && end == buf->b_ml.ml_line_count);
      --- 1128,1134 ----
      int made_writable = FALSE; /* 'w' bit has been set */
      #endif
      #ifdef VMS
      ! char_u nfname[MAXPATHL];
      #endif
      /* writing everything */
      int whole = (start == 1 && end == buf->b_ml.ml_line_count);
      ***************
      *** 1731,1750 ****
      */
      #ifdef VMS
      STRCPY(nfname, fname);
      ! if ((cp = vim_strchr(nfname, ';')) != NULL) /* remove version */
      ! *cp = '\0';
      ! vms_fixfilename(nfname);
      #endif

      ! while ((fd = open((char *)
      ! #ifdef VMS
      ! nfname,
      ! #else
      ! fname,
      ! #endif
      ! O_WRONLY | O_EXTRA | (append ?
      ! (forceit ? (O_APPEND | O_CREAT) : O_APPEND) :
      ! (O_CREAT | O_TRUNC))
      #ifndef macintosh
      , 0666
      #endif
      --- 1731,1743 ----
      */
      #ifdef VMS
      STRCPY(nfname, fname);
      ! vms_remove_version(nfname); /* remove version */
      ! fname = nfname;
      #endif

      ! while ((fd = open((char *)fname, O_WRONLY | O_EXTRA | (append
      ! ? (forceit ? (O_APPEND | O_CREAT) : O_APPEND)
      ! : (O_CREAT | O_TRUNC))
      #ifndef macintosh
      , 0666
      #endif
      ***************
      *** 2021,2027 ****
      --- 2014,2026 ----
      --no_wait_return; /* may wait for return now */

      #ifndef UNIX
      + # ifdef VMS
      + STRCPY(nfname, sfname);
      + vms_remove_version(nfname); /* remove version */
      + fname = nfname;
      + # else
      fname = sfname; /* use shortname now, for the messages */
      + # endif
      #endif
      if (!filtering)
      {
      ***************
      *** 2402,2409 ****
      --- 2401,2410 ----
      {
      if (vim_ispathsep(*p))
      ++p;
      + #ifndef VMS /* the path separator is always part of the path */
      else
      p = NULL;
      + #endif
      }
      }
      #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
      ***************
      *** 2532,2540 ****
      return NULL;
      STRCPY(retval, fname);
      #ifdef VMS
      ! ptr = (char_u *)strrchr((char *)retval, ';');
      ! if (ptr != NULL)
      ! *ptr = '\0';
      #endif
      }

      --- 2533,2540 ----
      return NULL;
      STRCPY(retval, fname);
      #ifdef VMS
      ! vms_remove_version(retval); /* we do not need versions here */
      ! fnamelen = STRLEN(retval); /* it can be shorter*/
      #endif
      }

      ***************
      *** 4320,4325 ****
      --- 4320,4332 ----
      if (*p == '\\')
      *p = '/';
      }
      + #endif
      +
      + #ifdef VMS
      + /* remove version for correct match */
      + if (sfname != NULL)
      + vms_remove_version(sfname);
      + vms_remove_version(fname);
      #endif

      /*
      *** ../vim-5.6.44/src/gui_motif.c Thu Mar 30 16:51:36 2000
      --- src/gui_motif.c Thu Mar 30 13:44:50 2000
      ***************
      *** 861,871 ****
      dflt = (char_u *)"";
      if (initdir == NULL || *initdir == NUL)
      {
      - #ifdef VMS
      - mch_dirname_vms(dirbuf, MAXPATHL);
      - #else
      mch_dirname(dirbuf, MAXPATHL);
      - #endif
      initdir = dirbuf;
      }

      --- 861,867 ----
      *** ../vim-5.6.44/src/gui_vms_conf.h Wed May 20 21:17:48 1998
      --- src/gui_vms_conf.h Wed Mar 29 16:55:56 2000
      ***************
      *** 1,4 ****
      ! /* os_vms_conf.h. Replaces config.h for VMS with GUI */

      /* Define unless no X support found */
      #define HAVE_X11 1
      --- 1,7 ----
      ! /* gui_vms_conf.h. Replaces config.h for VMS with GUI */
      !
      ! /* Open VMS is case insensitive */
      ! #define CASE_INSENSITIVE_FILENAME 1

      /* Define unless no X support found */
      #define HAVE_X11 1
      ***************
      *** 179,185 ****
      #define HAVE_SYS_TIME_H 1

      /* Define if you have the <termio.h> header file. */
      ! #define HAVE_TERMIO_H 1

      /* Define if you have the <unistd.h> header file. */
      #define HAVE_UNISTD_H 1
      --- 182,188 ----
      #define HAVE_SYS_TIME_H 1

      /* Define if you have the <termio.h> header file. */
      ! /* #define HAVE_TERMIO_H 1 */

      /* Define if you have the <unistd.h> header file. */
      #define HAVE_UNISTD_H 1
      *** ../vim-5.6.44/src/main.c Sat Mar 25 20:32:21 2000
      --- src/main.c Wed Mar 29 17:04:12 2000
      ***************
      *** 53,59 ****
      "Too many \"+command\" or \"-c command\" arguments",
      };

      ! #if defined(UNIX) || defined(__EMX__)
      reset_signals(); /* kill us with CTRL-C here, if you like */
      #endif

      --- 54,60 ----
      "Too many \"+command\" or \"-c command\" arguments",
      };

      ! #if defined(UNIX) || defined(__EMX__) || defined(VMS)
      reset_signals(); /* kill us with CTRL-C here, if you like */
      #endif

      ***************
      *** 97,103 ****
      #endif
      };

      ! #if defined(UNIX) || defined(__EMX__)
      reset_signals(); /* kill us with CTRL-C here, if you like */
      #endif

      --- 98,104 ----
      #endif
      };

      ! #if defined(UNIX) || defined(__EMX__) || defined(VMS)
      reset_signals(); /* kill us with CTRL-C here, if you like */
      #endif

      *** ../vim-5.6.44/src/memline.c Wed Jan 12 11:36:22 2000
      --- src/memline.c Wed Mar 29 17:15:00 2000
      ***************
      *** 885,897 ****
      }

      home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
      ! smsg((char_u *)"Using swap file \"%s\"", NameBuff);

      if (curbuf->b_ffname == NULL)
      STRCPY(NameBuff, "No File");
      else
      home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
      ! smsg((char_u *)"Original file \"%s\"", NameBuff);
      msg_putchar('\n');

      /*
      --- 885,909 ----
      }

      home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
      ! smsg((char_u *)"Using swap file \"%s\"",
      ! #ifdef VMS
      ! vms_fixfilename(NameBuff)
      ! #else
      ! NameBuff
      ! #endif
      ! );

      if (curbuf->b_ffname == NULL)
      STRCPY(NameBuff, "No File");
      else
      home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
      ! smsg((char_u *)"Original file \"%s\"",
      ! #ifdef VMS
      ! vms_fixfilename(NameBuff)
      ! #else
      ! NameBuff
      ! #endif
      ! );
      msg_putchar('\n');

      /*
      ***************
      *** 1196,1205 ****
      {
      if (fname == NULL || *fname == NULL)
      {
      ! #if defined(VMS) || defined(RISCOS)
      ! names[0] = vim_strsave((char_u *)"*_sw#");
      #else
      names[0] = vim_strsave((char_u *)"*.sw?");
      #endif
      #ifdef UNIX
      /* for Unix names starting with a dot are special */
      --- 1208,1221 ----
      {
      if (fname == NULL || *fname == NULL)
      {
      ! #ifdef VMS
      ! names[0] = vim_strsave((char_u *)"*_sw%");
      #else
      + # ifdef RISCOS
      + names[0] = vim_strsave((char_u *)"*_sw#");
      + # else
      names[0] = vim_strsave((char_u *)"*.sw?");
      + # endif
      #endif
      #ifdef UNIX
      /* for Unix names starting with a dot are special */
      ***************
      *** 1222,1231 ****
      {
      if (fname == NULL || *fname == NULL)
      {
      ! #ifdef RISCOS
      ! names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
      #else
      names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
      #endif
      #ifdef UNIX
      /* for Unix names starting with a dot are special */
      --- 1238,1251 ----
      {
      if (fname == NULL || *fname == NULL)
      {
      ! #ifdef VMS
      ! names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
      #else
      + # ifdef RISCOS
      + names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
      + # else
      names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
      + # endif
      #endif
      #ifdef UNIX
      /* for Unix names starting with a dot are special */
      ***************
      *** 1233,1244 ****
      names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE);
      num_names = 3;
      #else
      ! #ifdef VMS
      ! names[1] = concat_fnames(dir_name, (char_u *)".*_sw?", TRUE);
      num_names = 2;
      ! #else
      num_names = 1;
      ! #endif
      #endif
      }
      else
      --- 1253,1264 ----
      names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE);
      num_names = 3;
      #else
      ! # ifdef VMS
      ! names[1] = concat_fnames(dir_name, (char_u *)".*_sw%", TRUE);
      num_names = 2;
      ! # else
      num_names = 1;
      ! # endif
      #endif
      }
      else
      ***************
      *** 1472,1478 ****
      if (b0.b0_fname[0] == NUL)
      MSG_PUTS("[No File]");
      else
      ! msg_outtrans(b0.b0_fname);

      MSG_PUTS("\n modified: ");
      MSG_PUTS(b0.b0_dirty ? "YES" : "no");
      --- 1492,1504 ----
      if (b0.b0_fname[0] == NUL)
      MSG_PUTS("[No File]");
      else
      ! msg_outtrans(
      ! #ifdef VMS
      ! vms_fixfilename(b0.b0_fname)
      ! #else
      ! b0.b0_fname
      ! #endif
      ! );

      MSG_PUTS("\n modified: ");
      MSG_PUTS(b0.b0_dirty ? "YES" : "no");
      ***************
      *** 1601,1610 ****
      * Also try with 'shortname' set, in case the file is on a DOS filesystem.
      */
      curbuf->b_shortname = TRUE;
      ! #ifdef RISCOS
      ! names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
      #else
      names[num_names] = modname(path, (char_u *)".sw?", FALSE);
      #endif
      if (names[num_names] == NULL)
      goto end;
      --- 1627,1640 ----
      * Also try with 'shortname' set, in case the file is on a DOS filesystem.
      */
      curbuf->b_shortname = TRUE;
      ! #ifdef VMS
      ! names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
      #else
      + # ifdef RISCOS
      + names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
      + # else
      names[num_names] = modname(path, (char_u *)".sw?", FALSE);
      + # endif
      #endif
      if (names[num_names] == NULL)
      goto end;
      *** ../vim-5.6.44/src/misc1.c Mon Mar 27 21:52:25 2000
      --- src/misc1.c Fri Mar 31 13:35:12 2000
      ***************
      *** 2522,2528 ****
      {
      *mustfree = TRUE;
      }
      ! else
      {
      p = default_vim_dir;
      *mustfree = FALSE;
      --- 2522,2528 ----
      {
      *mustfree = TRUE;
      }
      ! else if (*default_vim_dir != NUL)
      {
      p = default_vim_dir;
      *mustfree = FALSE;
      ***************
      *** 2917,2923 ****
      return (c == ':' || c == '/' || c == '\\');
      # else
      # ifdef VMS
      ! return (c == ':' || c == '[' || c == ']' || c == '/');
      # else
      # ifdef COLON_AS_PATHSEP
      return (c == ':');
      --- 2917,2925 ----
      return (c == ':' || c == '/' || c == '\\');
      # else
      # ifdef VMS
      ! /* server"user passwd"::device:[full.path.name]fname.extension;version" */
      ! return (c == ':' || c == '[' || c == ']' || c == '/'
      ! || c == '<' || c == '>' || c == '"' );
      # else
      # ifdef COLON_AS_PATHSEP
      return (c == ':');
      ***************
      *** 5277,5282 ****
      --- 5279,5287 ----
      if (ffname == NULL) /* out of memory */
      break;
      tail = gettail((*file)[i]);
      + #ifdef VMS
      + vms_remove_version(ffname);
      + #endif

      /* try all patterns in 'wildignore' */
      p = p_wig;
      *** ../vim-5.6.44/src/option.c Mon Dec 27 12:58:12 1999
      --- src/option.c Wed Mar 29 17:19:01 2000
      ***************
      *** 1466,1472 ****
      static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
      static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
      static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
      ! #if defined(USE_MOUSE) && defined(UNIX)
      static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", NULL};
      #endif
      static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
      --- 1466,1472 ----
      static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
      static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
      static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
      ! #if defined(USE_MOUSE) && (defined(UNIX) || defined(VMS))
      static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", NULL};
      #endif
      static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
      ***************
      *** 3448,3454 ****
      gui_init_which_components(oldval);
      #endif

      ! #if defined(USE_MOUSE) && defined(UNIX)
      /* 'ttymouse' */
      else if (varp == &p_ttym)
      {
      --- 3448,3454 ----
      gui_init_which_components(oldval);
      #endif

      ! #if defined(USE_MOUSE) && (defined(UNIX) || defined(VMS))
      /* 'ttymouse' */
      else if (varp == &p_ttym)
      {
      *** ../vim-5.6.44/src/os_vms_conf.h Wed May 20 21:17:29 1998
      --- src/os_vms_conf.h Wed Mar 29 16:52:21 2000
      ***************
      *** 1,5 ****
      --- 1,8 ----
      /* os_vms_conf.h. Replaces config.h for VMS */

      + /* Open VMS is case insensitive */
      + #define CASE_INSENSITIVE_FILENAME 1
      +
      /* Define unless no X support found */
      /*#define HAVE_X11 1*/

      *** ../vim-5.6.44/src/os_vms.c Sun Jan 16 15:53:57 2000
      --- src/os_vms.c Thu Mar 30 16:55:38 2000
      ***************
      *** 31,37 ****
      static int vms_inchar(int wtime);
      static int vms_sys(char *cmd, char *log, char *inp);

      ! char ibuf[16 /*1*/]; /* Input buffer */

      #define NOTIM 0
      #define TIM_0 1
      --- 31,37 ----
      static int vms_inchar(int wtime);
      static int vms_sys(char *cmd, char *log, char *inp);

      ! char ibuf[16]; /* Input buffer */

      #define NOTIM 0
      #define TIM_0 1
      ***************
      *** 1022,1027 ****
      --- 1022,1039 ----
      || STRCMP(name, "builtin_iris-ansi") == 0);
      }

      + int
      + vim_is_vt300(name)
      + char_u *name;
      + {
      + if (name == NULL)
      + return FALSE; /* actually all ANSI comp. terminals should be here */
      + return (STRNICMP(name, "vt3", 3) == 0 /* it will cover all from VT100-VT300 */
      + || STRNICMP(name, "vt2", 3) == 0 /* Note: from VT340 can hanle colors */
      + || STRNICMP(name, "vt1", 3) == 0
      + || STRCMP(name, "builtin_vt320") == 0);
      + }
      +

      /*
      * Return TRUE if "name" is a terminal for which 'ttyfast' should be set.
      ***************
      *** 1033,1039 ****
      {
      if (name == NULL)
      return FALSE;
      ! if (vim_is_xterm(name) || vim_is_iris(name))
      return TRUE;
      return ( STRNICMP(name, "hpterm", 6) == 0
      || STRNICMP(name, "sun-cmd", 7) == 0
      --- 1045,1051 ----
      {
      if (name == NULL)
      return FALSE;
      ! if (vim_is_vt300(name) || vim_is_xterm(name) || vim_is_iris(name) )
      return TRUE;
      return ( STRNICMP(name, "hpterm", 6) == 0
      || STRNICMP(name, "sun-cmd", 7) == 0
      ***************
      *** 1110,1138 ****
      STRCPY(buf, strerror(errno));
      return FAIL;
      }
      ! /* tranlate from VMS to UNIX format */
      STRNCPY(buf, decc$translate_vms((char *)buf), len);
      ! STRCAT(buf, "/");
      ! return OK;
      ! }

      - /*
      - * Get name of current directory into buffer 'buf' of length 'len' bytes.
      - * In VMS format
      - * Return OK for success, FAIL for failure.
      - */
      - int
      - mch_dirname_vms(char_u *buf, int len)
      - {
      - if (!getcwd((char *)buf, len))
      - {
      - STRCPY(buf, strerror(errno));
      - return FAIL;
      - }
      return OK;
      }

      -
      /*
      * mch_FullName get absolute filename into buffer 'buf' of
      * length 'len' bytes, return FAIL for failure,
      --- 1122,1141 ----
      STRCPY(buf, strerror(errno));
      return FAIL;
      }
      !
      ! /*********************************************
      ! If we want tranlate from VMS to UNIX format, but
      ! it is much more useful to use native VMS path
      ! internally as well.
      !
      STRNCPY(buf, decc$translate_vms((char *)buf), len);
      ! STRCAT(buf, "/");
      !
      ! **********************************************/

      return OK;
      }

      /*
      * mch_FullName get absolute filename into buffer 'buf' of
      * length 'len' bytes, return FAIL for failure,
      ***************
      *** 1202,1208 ****
      int
      mch_isFullName(char_u *fname)
      {
      ! if (fname[0] == '/' || strchr((char *)fname, ':') || strchr((char *)fname,'[') || strchr((char *)fname,'>') )
      return 1;
      else
      return 0;
      --- 1205,1211 ----
      int
      mch_isFullName(char_u *fname)
      {
      ! if (fname[0] == '/' || strchr((char *)fname, ':') || strchr((char *)fname,'[') || strchr((char *)fname,']') || strchr((char *)fname,'<') || strchr((char *)fname,'>') )
      return 1;
      else
      return 0;
      ***************
      *** 1276,1281 ****
      --- 1279,1289 ----
      mch_restore_title(3); /* restore xterm title and icon name */
      #endif
      stoptermcap();
      +
      + /* Cursor may have been switched off without calling starttermcap()
      + * when doing "vim -u vimrc" and vimrc contains ":q". */
      + if (full_screen)
      + cursor_on();
      }
      vms_flushbuf();
      ml_close_all(TRUE); /* remove all memfiles */
      ***************
      *** 1516,1521 ****
      --- 1524,1585 ----
      }
      ison = on;
      }
      +
      + /*
      + * Set the mouse termcode, depending on the 'term' and 'ttymouse' options.
      + */
      + void
      + check_mouse_termcode()
      + {
      + # ifdef XTERM_MOUSE
      + if (use_xterm_mouse())
      + {
      + set_mouse_termcode(KS_MOUSE, (char_u *)"\033[M");
      + if (*p_mouse != NUL)
      + {
      + /* force mouse off and maybe on to send possibly new mouse
      + * activation sequence to the xterm, with(out) drag tracing. */
      + mch_setmouse(FALSE);
      + setmouse();
      + }
      + }
      + else
      + del_mouse_termcode(KS_MOUSE);
      + # endif
      + # ifdef GPM_MOUSE
      + if (!use_xterm_mouse())
      + set_mouse_termcode(KS_MOUSE, (char_u *)"\033MG");
      + # endif
      + # ifdef NETTERM_MOUSE
      + /* can be added always, there is no conflict */
      + set_mouse_termcode(KS_NETTERM_MOUSE, (char_u *)"\033}");
      + # endif
      + # ifdef DEC_MOUSE
      + /* conflicts with xterm mouse: "\033[" and "\033[M" */
      + if (!use_xterm_mouse())
      + set_mouse_termcode(KS_DEC_MOUSE, (char_u *)"\033[");
      + else
      + del_mouse_termcode(KS_DEC_MOUSE);
      + # endif
      + }
      +
      + /*
      + * Return non-zero when using an xterm mouse, according to 'ttymouse'.
      + * Return 1 for "xterm".
      + * Return 2 for "xterm2".
      + */
      + int
      + use_xterm_mouse()
      + {
      + if (STRNICMP(p_ttym, "xterm", 5) == 0)
      + {
      + if (isdigit(p_ttym[5]))
      + return atoi((char *)&p_ttym[5]);
      + return 1;
      + }
      + return 0;
      + }
      +
      #endif

      /*
      ***************
      *** 1832,1838 ****
      /* files should exist if expanding interactively */
      if (!(flags & EW_NOTFOUND) && mch_getperm(vms_fmatch[i]) < 0)
      continue;
      ! /* check if this entry should be included */
      dir = (mch_isdir(vms_fmatch[i]));
      if (( dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE)))
      continue;
      --- 1896,1902 ----
      /* files should exist if expanding interactively */
      if (!(flags & EW_NOTFOUND) && mch_getperm(vms_fmatch[i]) < 0)
      continue;
      ! /* do not include directories */
      dir = (mch_isdir(vms_fmatch[i]));
      if (( dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE)))
      continue;
      ***************
      *** 1850,1856 ****
      }
      files_free = EXPL_ALLOC_INC;
      }
      - /* need to append '/' on directories here?? */

      (*file)[*num_file++] = vms_fmatch[i];
      }
      --- 1914,1919 ----
      ***************
      *** 2142,2148 ****

      /* start of directory portion */
      ch = *in;
      ! if ((ch == '[') || (ch == '/')) { /* start of directory(s) ? */
      ch = '[';
      SKIP_FOLLOWING_SLASHES(in);
      } else if (EQN(in, "../", 3)) { /* Unix parent directory? */
      --- 2205,2211 ----

      /* start of directory portion */
      ch = *in;
      ! if ((ch == '[') || (ch == '/') || (ch == '<') ) { /* start of directory(s) ? */
      ch = '[';
      SKIP_FOLLOWING_SLASHES(in);
      } else if (EQN(in, "../", 3)) { /* Unix parent directory? */
      ***************
      *** 2175,2181 ****

      while (*in != '\0') {
      ch = *in;
      ! if ((ch == ']') || (ch == '/')) { /* end of (sub)directory ? */
      end_of_dir = out;
      ch = '.';
      SKIP_FOLLOWING_SLASHES(in);
      --- 2238,2244 ----

      while (*in != '\0') {
      ch = *in;
      ! if ((ch == ']') || (ch == '/') || (ch == '>') ) { /* end of (sub)directory ? */
      end_of_dir = out;
      ch = '.';
      SKIP_FOLLOWING_SLASHES(in);
      ***************
      *** 2241,2251 ****
      * else translate mixed unix-vms file specs to pure vms
      */

      ! Fspec_Rms = buf; /* for decc$to_vms */
      if (strchr(instring,'/') == NULL)
      ! strcpy(buf, instring); /* already a vms file spec */
      ! else if (decc$to_vms(instring, vms_fspec_proc, 0, 0) <= 0)
      ! vms_unix_mixed_filespec(instring, buf);

      return buf;
      }
      --- 2304,2335 ----
      * else translate mixed unix-vms file specs to pure vms
      */

      ! Fspec_Rms = buf; /* for decc$to_vms */
      if (strchr(instring,'/') == NULL)
      ! strcpy(buf, instring); /* already a vms file spec */
      ! else if (strchr(instring,'"') == NULL){ /* regular file */
      ! if (decc$to_vms(instring, vms_fspec_proc, 0, 0) <= 0)
      ! vms_unix_mixed_filespec(instring, buf);
      ! }
      ! else
      ! vms_unix_mixed_filespec(instring, buf); /* we have a passwd in the path */

      return buf;
      }
      + /*
      + * Remove version number from file name
      + * we need it in some special cases as:
      + * creating swap file name and writing new file
      + */
      +
      + void *
      + vms_remove_version(void * fname)
      + {
      + char_u *cp;
      +
      + if ((cp = vim_strchr( fname, ';')) != NULL) /* remove version */
      + *cp = '\0';
      + vms_fixfilename(fname);
      + return fname;
      + }
      +
      *** ../vim-5.6.44/src/os_vms.h Tue Jan 11 17:54:26 2000
      --- src/os_vms.h Tue Feb 15 13:46:00 2000
      ***************
      *** 212,226 ****
      #endif

      #ifndef VIM_HLP
      ! /*
      ! * If the line with $VIMRUNTIME doesn't work for you (":help" doesn't find the
      ! * help files), then change the zero into a one and try again.
      ! */
      ! # if 0
      ! # define VIM_HLP "$VIM_DOC:help.txt"
      ! # else
      ! # define VIM_HLP "$VIMRUNTIME/doc/help.txt"
      ! # endif
      #endif

      #ifndef SYNTAX_FNAME
      --- 212,218 ----
      #endif

      #ifndef VIM_HLP
      ! # define VIM_HLP "$VIMRUNTIME/doc/help.txt"
      #endif

      #ifndef SYNTAX_FNAME
      ***************
      *** 234,244 ****
      #endif /* VIMINFO */

      #ifndef DEF_BDIR
      ! # define DEF_BDIR "./,sys$disk:[],tmp:,sys$login:" /* default for 'backupdir' */
      #endif

      #ifndef DEF_DIR
      ! # define DEF_DIR "./,sys$disk:[],tmp:,sys$login:" /* default for 'directory' */
      #endif

      #define TEMPNAME "tmp:v?XXXXXX.txt"
      --- 226,236 ----
      #endif /* VIMINFO */

      #ifndef DEF_BDIR
      ! # define DEF_BDIR "./,tmp:,sys$login:" /* default for 'backupdir' */
      #endif

      #ifndef DEF_DIR
      ! # define DEF_DIR "./,tmp:,sys$login:" /* default for 'directory' */
      #endif

      #define TEMPNAME "tmp:v?XXXXXX.txt"
      *** ../vim-5.6.44/src/os_vms.mms Sat Sep 11 16:27:29 1999
      --- src/os_vms.mms Fri Mar 31 13:27:55 2000
      ***************
      *** 1,121 ****
      #
      ! # Makefile for Vim on VMS
      #
      ! # This has only been tested on VMS 7.1 on DEC Alpha hardware.
      # The following will be built:
      # vim.exe: standard
      ! # or
      # dvim.exe: debug
      #
      # Edit the lines in the Configuration section below to select.
      #
      # To build: use the following command line:
      #
      - # mmk/descrip=os_vms.mms
      - # or
      # mms/descrip=os_vms.mms
      #

      ! #######################################################################
      # Configuration section.
      ! #######################################################################

      # Comment out if you want just the character terminal mode only.
      GUI = YES

      ! # Uncomment if want a debug version.
      # DEBUG = YES


      .IFDEF GUI
      ! #######################################################################
      # X/Motif executable (also works in terminal mode )
      ! #######################################################################
      ! DEFS = /def=("HAVE_CONFIG_H","USE_GUI_MOTIF")
      ! LIBS = ,OS_VMS.OPT/OPT
      CONFIG_H = gui_vms_conf.h
      ! GUI_INC_LOC = decw$include:
      ! GUI_LIB_LOC = sys$library:
      ! GUI_SRC = gui.c gui_motif.c gui_x11.c
      ! GUI_OBJ = gui.obj gui_motif.obj gui_x11.obj

      # These may need to be defined if things are not in standard locations:
      ! X_LIBS_DIR =
      ! X_PRE_LIBS =
      ! X_EXTRA_LIBS =
      ! X_LIBS =
      ! #######################################################################
      .ELSE
      ! #######################################################################
      # Character terminal only executable
      ! #######################################################################
      ! DEFS = /def=("HAVE_CONFIG_H")
      ! LIBS =
      CONFIG_H = os_vms_conf.h
      - #######################################################################
      - # End of configuration section
      - #######################################################################
      .ENDIF
      ! #######################################################################

      CC = cc/decc
      LD = link

      .IFDEF DEBUG
      ! TARGET = dvim.exe
      CFLAGS = /debug/noopt/prefix=all/include=[.proto]
      ! LDFLAGS = /debug
      .ELSE
      ! TARGET = vim.exe
      CFLAGS = /opt/prefix=all/include=[.proto]
      LDFLAGS =
      .ENDIF


      ### These go into pathdef.c
      ! VIMLOC = $VIM
      ! VIM_HLP = $VIM_DOC:help.txt
      !

      ###
      ### GRAPHICAL USER INTERFACE (GUI).


      ! .SUFFIXES :
      ! .SUFFIXES : .c .obj .pro

      ! ALL_CFLAGS = $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CFLAGS)

      ! ALL_LIBS = $(GUI_LIBS_DIR) $(X_LIBS_DIR) $(X_PRE_LIBS) $(GUI_LIBS) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS) $(EXTRA_LIBS)
      !
      ! INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_unix.h \
      unixunix.h structs.h proto.h osdef.h config.h \
      ! $(GUI_INCL)

      SRC = buffer.c charset.c digraph.c edit.c eval.c ex_cmds.c ex_docmd.c \
      ! ex_getln.c fileio.c getchar.c \
      ! main.c mark.c menu.c\
      memfile.c memline.c message.c misc1.c misc2.c normal.c ops.c option.c \
      pty.c quickfix.c regexp.c search.c syntax.c tag.c term.c termlib.c \
      ui.c undo.c version.c screen.c window.c os_vms.c pathdef.c \
      ! $(GUI_SRC)

      OBJ = buffer.obj charset.obj digraph.obj edit.obj eval.obj ex_cmds.obj \
      ex_docmd.obj ex_getln.obj fileio.obj getchar.obj \
      main.obj mark.obj menu.obj memfile.obj memline.obj message.obj misc1.obj \
      ! misc2.obj normal.obj ops.obj option.obj pty.obj quickfix.obj \
      regexp.obj search.obj syntax.obj tag.obj term.obj termlib.obj ui.obj \
      undo.obj screen.obj window.obj os_vms.obj pathdef.obj \
      ! $(GUI_OBJ)

      # Default target is making the executable
      all : $(TARGET) mms_vim
      ! $@

      ! config.h : $(CONFIG_H)
      copy $(CONFIG_H) config.h

      ! osdef.h : os_vms_osdef.h
      copy os_vms_osdef.h osdef.h

      # Re-execute this os_vms.mms to include the new config.mk produced by
      --- 1,197 ----
      #
      ! # Makefile for Vim on OpenVMS
      #
      ! # Maintainer: Zoltan Arpadffy <arpadffy@...>
      ! # Last change: 2000 Feb 28
      ! #
      ! # This has been tested on VMS 6.2 to 7.1 on DEC Alpha and VAX.
      # The following will be built:
      # vim.exe: standard
      ! # or
      # dvim.exe: debug
      #
      # Edit the lines in the Configuration section below to select.
      #
      # To build: use the following command line:
      #
      # mms/descrip=os_vms.mms
      + # or if you use mmk
      + # mmk/descrip=os_vms.mms
      #

      ! ######################################################################
      # Configuration section.
      ! ######################################################################

      # Comment out if you want just the character terminal mode only.
      GUI = YES

      ! ######################################################################
      ! # Comment out if you want the compiler version with :ver command.
      ! # NOTE: This part can make some complications if you're using some
      ! # predefined symbols/flags for your compiler. If does, just leave behind
      ! # the comment varialbe CCVER.
      ! ######################################################################
      ! CCVER = YES
      !
      ! ######################################################################
      ! # Used to fix some dependecies problem during development.
      ! # Normally, it should not be defined. !!!
      ! ######################################################################
      ! DEVELOPMENT = YES
      !
      ! ######################################################################
      ! # Uncomment if want a debug version. Resulting executable is DVIM.EXE
      ! ######################################################################
      # DEBUG = YES

      + ######################################################################
      + # Languages support as Perl, Python, TCL etc.
      + # If you don't need it really, leave them behind the comment.
      + # You will need special libs etc.
      + ######################################################################
      + # VIM_TCL = YES
      + # VIM_PERL = YES
      + # VIM_SNIFF = YES
      + # VIM_PYTHON = YES

      .IFDEF GUI
      ! ######################################################################
      # X/Motif executable (also works in terminal mode )
      ! ######################################################################
      ! DEFS = "HAVE_CONFIG_H","USE_GUI_MOTIF"
      ! LIBS = ,OS_VMS.OPT/OPT
      CONFIG_H = gui_vms_conf.h
      ! GUI_SRC = gui.c gui_motif.c gui_x11.c
      ! GUI_OBJ = gui.obj gui_motif.obj gui_x11.obj
      ! GUI_INC = gui.h

      # These may need to be defined if things are not in standard locations:
      !
      ! # GUI_INC_DIR = decw$include:
      ! # GUI_LIB_DIR = sys$library:
      ! # X_LIB_DIR =
      ! # X_LIB =
      ! # EXTRA_LIB =
      !
      .ELSE
      ! ######################################################################
      # Character terminal only executable
      ! ######################################################################
      ! DEFS = "HAVE_CONFIG_H"
      ! LIBS =
      CONFIG_H = os_vms_conf.h
      .ENDIF
      !
      ! .IFDEF VIM_PERL
      ! ######################################################################
      ! # Perl related setup.
      ! ######################################################################
      ! PERL_DEF = ,"HAVE_PERL_INTERP"
      ! PERL_SRC = if_perlsfio.c if_perl.xs
      ! PERL_OBJ = if_perlsfio.obj if_perl.obj
      ! PERL_LIB =
      ! .ENDIF
      !
      ! .IFDEF VIM_PYTHON
      ! ######################################################################
      ! # Python related setup.
      ! ######################################################################
      ! PYTHON_DEF = ,"HAVE_PYTHON"
      ! PYTHON_SRC = if_python.c
      ! PYTHON_OBJ = if_python.obj
      ! PYTHON_LIB =
      ! .ENDIF
      !
      ! .IFDEF VIM_TCL
      ! ######################################################################
      ! # TCL related setup.
      ! ######################################################################
      ! TCL_DEF = ,"HAVE_TCL"
      ! TCL_SRC = if_tcl.c
      ! TCL_OBJ = if_tcl.obj
      ! TCL_LIB =
      ! .ENDIF
      !
      ! .IFDEF VIM_SNIFF
      ! ######################################################################
      ! # SNIFF related setup.
      ! ######################################################################
      ! SNIFF_DEF = ,"USE_SNIFF"
      ! SNIFF_SRC = if_sniff.c
      ! SNIFF_OBJ = if_sniff.obj
      ! SNIFF_LIB =
      ! .ENDIF
      !
      ! ######################################################################
      ! # End of configuration section.
      ! #
      ! # Please, do not change anything below without programming experience.
      ! ######################################################################

      CC = cc/decc
      LD = link

      .IFDEF DEBUG
      ! TARGET = dvim.exe
      CFLAGS = /debug/noopt/prefix=all/include=[.proto]
      ! LDFLAGS = /debug
      .ELSE
      ! TARGET = vim.exe
      CFLAGS = /opt/prefix=all/include=[.proto]
      LDFLAGS =
      .ENDIF


      ### These go into pathdef.c
      ! VIMLOC = ""
      ! VIMRUN = ""
      ! VIMUSER = "''f$extract(f$locate(",",f$user())+1,f$length(f$user())-f$locate(",",f$user())-2,f$user())'"
      ! VIMHOST = "''f$extract(0,f$length(f$trnlnm("sys$node"))-2,f$trnlnm("sys$node"))' (''f$trnlnm("ucx$inet_host")'.''f$trnlnm("ucx$inet_domain")')"

      +
      ###
      ### GRAPHICAL USER INTERFACE (GUI).

      + .SUFFIXES : .obj .c .pro .xs

      ! ALL_CFLAGS = /def=($(DEFS) $(PERL_DEF) $(PYTHON_DEF) $(TCL_DEF) $(SNIFF_DEF)) $(CFLAGS)

      ! ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(X_LIB_DIR) $(GUI_LIB) $(X_LIB) $(EXTRA_LIB)\
      ! $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(SNIFF_LIB)

      ! INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_unix.h \
      unixunix.h structs.h proto.h osdef.h config.h \
      ! $(GUI_INC)

      SRC = buffer.c charset.c digraph.c edit.c eval.c ex_cmds.c ex_docmd.c \
      ! ex_getln.c fileio.c getchar.c main.c mark.c menu.c multbyte.c \
      memfile.c memline.c message.c misc1.c misc2.c normal.c ops.c option.c \
      pty.c quickfix.c regexp.c search.c syntax.c tag.c term.c termlib.c \
      ui.c undo.c version.c screen.c window.c os_vms.c pathdef.c \
      ! $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(SNIFF_SRC)

      OBJ = buffer.obj charset.obj digraph.obj edit.obj eval.obj ex_cmds.obj \
      ex_docmd.obj ex_getln.obj fileio.obj getchar.obj \
      main.obj mark.obj menu.obj memfile.obj memline.obj message.obj misc1.obj \
      ! misc2.obj multbyte.obj normal.obj ops.obj option.obj pty.obj quickfix.obj \
      regexp.obj search.obj syntax.obj tag.obj term.obj termlib.obj ui.obj \
      undo.obj screen.obj window.obj os_vms.obj pathdef.obj \
      ! $(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) $(SNIFF_OBJ)

      # Default target is making the executable
      all : $(TARGET) mms_vim
      ! $@

      ! .IFDEF DEVELOPMENT
      ! config.h : $(CONFIG_H)
      ! copy $(CONFIG_H) config.h
      ! .ELSE
      ! config.h : os_vms.mms $(CONFIG_H)
      copy $(CONFIG_H) config.h
      + .ENDIF

      ! osdef.h : os_vms_osdef.h
      copy os_vms_osdef.h osdef.h

      # Re-execute this os_vms.mms to include the new config.mk produced by
      ***************
      *** 140,145 ****
      --- 216,250 ----
      .c.obj :
      $(CC) $(ALL_CFLAGS) $<

      +
      + .IFDEF CCVER
      + #########################################################################
      + # This part can make come complications if you're using some predefined
      + # symbols/flags for your compiler. If does, just comment out _CCVER_ variable
      + ##########################################################################
      +
      + pathdef.c : os_vms.mms $(CONFIG_H)
      + -@ define sys$output cc_ver.tmp
      + -@ cc/version
      + -@ deass sys$output
      + -@ open/read file cc_ver.tmp
      + -@ read file CC_VERSION
      + -@ close file
      + -@ del cc_ver.tmp.*
      + -@ write sys$output "creating pathdef.c (CCVER = YES)"
      + -@ open/write pd pathdef.c
      + -@ write pd "/* pathdef.c -- DO NOT EDIT! */"
      + -@ write pd "/* This file is automatically created by os_vms.mms"
      + -@ write pd " * Change the file os_vms.mms only. */"
      + -@ write pd "#include ""vim.h"""
      + -@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
      + -@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
      + -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)\nCompiler: ''CC_VERSION'"";"
      + -@ write pd "char_u *all_lflags = (char_u *)""$(LD) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)"";"
      + -@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";"
      + -@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";"
      + -@ close pd
      + .ELSE
      pathdef.c : os_vms.mms
      -@ write sys$output "creating pathdef.c"
      -@ open/write pd pathdef.c
      ***************
      *** 147,160 ****
      -@ write pd "/* This file is automatically created by os_vms.mms"
      -@ write pd " * Change the file os_vms.mms only. */"
      -@ write pd "#include ""vim.h"""
      ! -@ write pd "char_u *default_vim_dir = (char_u *)""$(VIMLOC)"";"
      ! -@ write pd "char_u *default_vimruntime_dir = (char_u *)"""";"
      -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)"";"
      -@ write pd "char_u *all_lflags = (char_u *)""$(LD) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)"";"
      -@ close pd

      os_vms.mms :
      ! @ write sys$output "The name of the makefile MUST be <os_vms.mms> !!!!"

      cmdtab.h : cmdtab.tab mkcmdtab.exe
      mkcmdtab :== $sys$disk:[]mkcmdtab
      --- 252,268 ----
      -@ write pd "/* This file is automatically created by os_vms.mms"
      -@ write pd " * Change the file os_vms.mms only. */"
      -@ write pd "#include ""vim.h"""
      ! -@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
      ! -@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
      -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)"";"
      -@ write pd "char_u *all_lflags = (char_u<br/><br/>(Message over 64 KB, truncated)
    Your message has been successfully submitted and would be delivered to recipients shortly.