home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / old / 5.6.045 < prev    next >
Encoding:
Internet Message Format  |  2000-03-30  |  90.0 KB

  1. To: vim-dev@vim.org
  2. Subject: Patch 5.6.045 (extra) (fixed version)
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. ------------
  6.  
  7. NOTE: This patch was sent before, but with an error at the start of the patch
  8. for src/main.c.  This is a fixed version of the same patch.
  9.  
  10. Patch 5.6.045 (extra) (fixed version)
  11. Problem:    VMS: Various small problems.
  12. Solution:   Many small changes. (Zoltan Arpadffy)
  13.         File name modifier ":h" keeps the path separator.
  14.         File name modifier ":e" also removes version.
  15.         Compile with MAX_FEAT by default.
  16.         When checking for autocommands ignore version in file name.
  17.         Be aware of file names being case insensitive.
  18.         Added vt320 builtin termcap.
  19.         Be prepared for an empty default_vim_dir.
  20. Files:        runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
  21.         runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
  22.         src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
  23.         src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
  24.         src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c
  25.  
  26.  
  27. *** ../vim-5.6.44/runtime/gvimrc_example.vim    Tue Feb  2 21:01:23 1999
  28. --- runtime/gvimrc_example.vim    Wed Mar 29 17:03:29 2000
  29. ***************
  30. *** 2,13 ****
  31.   " The commands in this are executed when the GUI is started.
  32.   "
  33.   " Maintainer:    Bram Moolenaar <Bram@vim.org>
  34. ! " Last change:    1999 Feb 02
  35.   "
  36.   " To use it, copy it to
  37.   "     for Unix and OS/2:  ~/.gvimrc
  38.   "             for Amiga:  s:.gvimrc
  39.   "  for MS-DOS and Win32:  $VIM\_gvimrc
  40.   
  41.   " Make external commands work through a pipe instead of a pseudo-tty
  42.   "set noguipty
  43. --- 2,14 ----
  44.   " The commands in this are executed when the GUI is started.
  45.   "
  46.   " Maintainer:    Bram Moolenaar <Bram@vim.org>
  47. ! " Last change:    2000 Mar 29
  48.   "
  49.   " To use it, copy it to
  50.   "     for Unix and OS/2:  ~/.gvimrc
  51.   "             for Amiga:  s:.gvimrc
  52.   "  for MS-DOS and Win32:  $VIM\_gvimrc
  53. + "           for OpenVMS:  sys$login:.gvimrc
  54.   
  55.   " Make external commands work through a pipe instead of a pseudo-tty
  56.   "set noguipty
  57. *** ../vim-5.6.44/runtime/vimrc_example.vim    Tue Jan 11 18:23:54 2000
  58. --- runtime/vimrc_example.vim    Wed Mar 29 18:58:43 2000
  59. ***************
  60. *** 1,13 ****
  61.   " An example for a vimrc file.
  62.   "
  63.   " Maintainer:    Bram Moolenaar <Bram@vim.org>
  64. ! " Last change:    2000 Jan 06
  65.   "
  66.   " To use it, copy it to
  67.   "     for Unix and OS/2:  ~/.vimrc
  68.   "          for Amiga:  s:.vimrc
  69.   "  for MS-DOS and Win32:  $VIM\_vimrc
  70. ! "        for VMS:  sys$login:.vimrc
  71.   
  72.   " Use Vim settings, rather then Vi settings (much better!).
  73.   " This must be first, because it changes other options as a side effect.
  74. --- 1,13 ----
  75.   " An example for a vimrc file.
  76.   "
  77.   " Maintainer:    Bram Moolenaar <Bram@vim.org>
  78. ! " Last change:    2000 Mar 29
  79.   "
  80.   " To use it, copy it to
  81.   "     for Unix and OS/2:  ~/.vimrc
  82.   "          for Amiga:  s:.vimrc
  83.   "  for MS-DOS and Win32:  $VIM\_vimrc
  84. ! "        for OpenVMS:  sys$login:.vimrc
  85.   
  86.   " Use Vim settings, rather then Vi settings (much better!).
  87.   " This must be first, because it changes other options as a side effect.
  88. ***************
  89. *** 15,21 ****
  90.   
  91.   set bs=2        " allow backspacing over everything in insert mode
  92.   set ai            " always set autoindenting on
  93. ! set backup        " keep a backup file
  94.   set viminfo='20,\"50    " read/write a .viminfo file, don't store more
  95.               " than 50 lines of registers
  96.   set history=50        " keep 50 lines of command line history
  97. --- 15,25 ----
  98.   
  99.   set bs=2        " allow backspacing over everything in insert mode
  100.   set ai            " always set autoindenting on
  101. ! if has("vms")
  102. !   set nobackup        " do not keep a backup file, use versions instead
  103. ! else
  104. !   set backup        " keep a backup file
  105. ! endif
  106.   set viminfo='20,\"50    " read/write a .viminfo file, don't store more
  107.               " than 50 lines of registers
  108.   set history=50        " keep 50 lines of command line history
  109. *** ../vim-5.6.44/runtime/doc/os_vms.txt    Sun Jan 16 14:12:58 2000
  110. --- runtime/doc/os_vms.txt    Fri Mar 31 12:47:05 2000
  111. ***************
  112. *** 1,4 ****
  113. ! *os_vms.txt*    For Vim version 5.6.  Last change: 2000 Jan 12
  114.   
  115.   
  116.             VIM REFERENCE MANUAL
  117. --- 1,4 ----
  118. ! *os_vms.txt*    For Vim version 5.6   Last change: 2000 Mar 31
  119.   
  120.   
  121.             VIM REFERENCE MANUAL
  122. ***************
  123. *** 6,137 ****
  124.   
  125.                               *VMS* *vms*
  126.   This file contains the particularities for the VMS version of Vim.
  127.   
  128. ! 1. Getting started    |vms-started|
  129. ! 2. Download files    |vms-download|
  130. ! 3. Compiling        |vms-compiling|
  131. ! 4. Problems        |vms-problems|
  132. ! 5. Deploy        |vms-deploy|
  133. ! 6. Practical usage    |vms-usage|
  134. ! 7. GUI mode questions    |vms-gui|
  135. ! 8. Useful notes        |vms-notes|
  136. ! 9. Authors         |vms-authors|
  137.   
  138.   ==============================================================================
  139.   1. Getting started                    *vms-started*
  140.   
  141. ! VIM (Vi IMproved) is a vi-compatible text editor that runs on nearly every
  142. ! operating system known to humanity.  Now use Vim on Open VMS too, in character
  143.   or X/Motif environment.  It is fully featured and absolutely compatible with
  144. ! VIM on other operating systems.
  145.   ==============================================================================
  146.   2. Download files                    *vms-download*
  147.   
  148. ! You can download the VIM source code by ftp from the official VIM site:
  149.       ftp://ftp.vim.org/pub/vim/
  150.   Or use one of the mirrors:
  151.       ftp://ftp.vim.org/pub/vim/MIRRORS
  152.   
  153.   You will need both the Unix and Extra archives to build vim.exe for VMS.
  154. ! For using VIM's full power you will need the runtime files as well.
  155.   
  156.   You can download precompiled executables from:
  157.       http://www.polarfox.com/vim/
  158.   
  159.   ==============================================================================
  160.   3. Compiling                        *vms-compiling*
  161.   
  162.   Unpack the Unix and Extra archives together into one directory.  In the <.SRC>
  163.   subdirectory you should find the make file OS_VMS.MMS.  By editing this file
  164. ! you may choose between building the character, GUI and debug version.
  165.   
  166.   You will need either the DECSET mms utility or the freely available clone of
  167. ! it called mmk (VMS has no make utility in the standard distribution).  I found
  168. ! a binary of 'mmk' which worked well.
  169.   
  170.   If you have MSS on your system, the command
  171. ! >    MMS /DESCRIP=OS_VMS.MMS
  172. ! will start building your own customized version of VIM.
  173.   
  174.   ==============================================================================
  175.   4. Problems                        *vms-problems*
  176.   
  177. ! The code has been tested under Open VMS 6.2-7.1 and with the DECC compiler.
  178. ! It should work without bigger problems.  If it happened that your system does
  179. ! not have some include libraries you can tune up in OS_VMS_CONF.H file.
  180. ! Note: Under VAX it should work with DECC compiler without problem, but the
  181. ! code is not compilable with the old VAXC compiler.
  182.   ==============================================================================
  183.   5. Deploy                        *vms-deploy*
  184.   
  185.   Vim uses a special directory structure to hold the document and runtime files:
  186.   
  187.      vim (or wherever)
  188.       |- tmp
  189.       |- vim56
  190.       |----- doc
  191.       |----- syntax
  192.   
  193.   Use:
  194. ! >    assign/nolog dev:[leading-path-here.vim54] vimruntime
  195. ! >    assign/nolog dev:[leading-path-here.vim54.tmp] tmp
  196.   
  197.   to get vim.exe to find its document, filetype, and syntax files, and to
  198. ! specify a directory where temporary files will be located.  Copy the "runtime"
  199.   subdirectory of the vim distribution to vimruntime.
  200.   
  201.   ==============================================================================
  202.   6. Practical usage                    *vms-usage*
  203.   
  204. ! Copy all VIM runtime directory structure to the deployment position.
  205. ! Add the following things to your LOGIN.COM (in SYS$LOGIN directory).
  206.   Set up logical $VIM as:
  207.   
  208. ! >    $ define vim device:<path>
  209.   
  210.   Set up some symbols:
  211.   
  212. ! >    $ ! vi starts vim in chr. mode.
  213.   >    $ vi*m  :== mcr device:<path>VIM.EXE
  214.   
  215. ! >    $ gvi starts vim in GUI mode.
  216.   >    $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g
  217.   
  218. - >    $ ! normal vt300-80 is not defined. let us use ansi instead.
  219. - >    $ define term "ansi"
  220.   Create .vimrc and .gvimrc files in your home directory (SYS$LOGIN).
  221. - The easiest way is just rename example files.  You may leave the menu file
  222. - (MENU.VIM) in the original $VIM directory.
  223.   
  224. ! It should work without any problem. Example LOGIN.COM:
  225.   
  226. ! >    $ vi*m  :== mcr RF10:[UTIL.VIM]VIM.EXE
  227. ! >    $ gv*im :== spawn/nowait mcr RF10:[UTIL.VIM]VIM.EXE -g
  228. ! >    $ define vim RF10:[UTIL.VIM]
  229. ! >    $ define term "ansi"
  230. ! >    $ set disp/create/node=192.168.5.159/trans=tcpip
  231.   
  232.   ==============================================================================
  233.   7. GUI mode questions                    *vms-gui*
  234.   
  235. ! VMS is not a native X window environment so you can not start VIM in GUI mode
  236. ! "just like that".
  237.   1) If you are working on the VMS X console:
  238. !    Start VIM with the command:
  239.   >    $ mc device:<path>VIM.EXE -g
  240. -    or type :gui as a command to the VIM command prompt.
  241.   
  242. ! 2) If you are working on other X window environment
  243. !    Set up display to your host with:
  244. ! >    $ set disp/create/node=<your IP address>/trans=tcpip
  245. !    and start VIM as in point 1.
  246.   
  247.   3) If you are working on MS Windows or other non X window environment
  248. !    You need to set up one X server and run VIM as in point 2.
  249.      For MS Windows there are available free X servers as MIX , Omni X etc.
  250.   
  251.   ==============================================================================
  252.   8. Useful notes                        *vms-notes*
  253.   
  254.   8.1 backspace/delete.
  255. --- 6,229 ----
  256.   
  257.                               *VMS* *vms*
  258.   This file contains the particularities for the VMS version of Vim.
  259. + You can reach this information file by typing :help VMS in Vim command
  260. + prompt.
  261.   
  262. !  1. Getting started    |vms-started|
  263. !  2. Download files      |vms-download|
  264. !  3. Compiling           |vms-compiling|
  265. !  4. Problems            |vms-problems|
  266. !  5. Deploy            |vms-deploy|
  267. !  6. Practical usage     |vms-usage|
  268. !  7. GUI mode questions    |vms-gui|
  269. !  8. Useful notes        |vms-notes|
  270. !  9. Changes             |vms-changes|
  271. ! 10. Authors         |vms-authors|
  272.   
  273.   ==============================================================================
  274.   1. Getting started                    *vms-started*
  275.   
  276. ! Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
  277. ! operating system known to humanity.  Now use Vim on OpenVMS too, in character
  278.   or X/Motif environment.  It is fully featured and absolutely compatible with
  279. ! Vim on other operating systems.
  280.   ==============================================================================
  281.   2. Download files                    *vms-download*
  282.   
  283. ! You can download the Vim source code by ftp from the official Vim site:
  284.       ftp://ftp.vim.org/pub/vim/
  285.   Or use one of the mirrors:
  286.       ftp://ftp.vim.org/pub/vim/MIRRORS
  287.   
  288.   You will need both the Unix and Extra archives to build vim.exe for VMS.
  289. ! For using Vim's full power you will need the runtime files as well.
  290.   
  291.   You can download precompiled executables from:
  292.       http://www.polarfox.com/vim/
  293.   
  294.   ==============================================================================
  295.   3. Compiling                        *vms-compiling*
  296.   
  297.   Unpack the Unix and Extra archives together into one directory.  In the <.SRC>
  298.   subdirectory you should find the make file OS_VMS.MMS.  By editing this file
  299. ! you may choose between building the character, GUI and debug version. There
  300. ! are also additional options for Perl, Python and Tcl support.
  301.   
  302.   You will need either the DECSET mms utility or the freely available clone of
  303. ! it called mmk (VMS has no make utility in the standard distribution). You can
  304. ! download mmk from http://www.openvms.digital.com/freeware/MMK/
  305.   
  306.   If you have MSS on your system, the command
  307. ! >    mms /descrip=os_vms.mms
  308. ! will start building your own customised version of Vim.
  309. ! The adequate command for mmk is:
  310. ! >    mmk /descrip=os_vms.mms
  311.   
  312.   ==============================================================================
  313.   4. Problems                        *vms-problems*
  314.   
  315. ! The code has been tested under Open VMS 6.2 - 7.1 on Alpha and VAX platforms
  316. ! with the DECC compiler. It should work without bigger problems.
  317. ! If it happened that your system does not have some include libraries you can
  318. ! tune up in OS_VMS_CONF.H or GUI_VMS_CONF.H files.
  319. ! If you decided to build Vim with +perl, +python, etc. options, first you need
  320. ! to download OpenVMS distributions of Perl and Python. Build and deploy the
  321. ! libraries and change adequate lines in OS_VMS.MMS file. There should not be
  322. ! problem from Vim side.
  323. ! Note: Under VAX it should work with DEC C compiler without problem, but the
  324. ! code is not compilable with the old VAX C compiler.
  325. ! MMS_VIM.EXE is building together with VIM.EXE, but for CTAGS.EXE and XXD.EXE
  326. ! you should change to subdirectory <.CTAGS> or <.XXD> and build them
  327. ! separately. You have to be prepared that the CTAGS and XXD make files are not
  328. ! always up to date.
  329. ! Advanced users may try some acrobatics in FEATURE.H file also.
  330. ! It is possible to compile with +xfontset +xim options too, but then you have
  331. ! to set up GUI fonts etc. correctly. See. :help xim from Vim command prompt.
  332.   ==============================================================================
  333.   5. Deploy                        *vms-deploy*
  334.   
  335.   Vim uses a special directory structure to hold the document and runtime files:
  336.   
  337.      vim (or wherever)
  338.       |- tmp
  339. +     |- vim55
  340. +     |----- doc
  341. +     |----- syntax
  342.       |- vim56
  343.       |----- doc
  344.       |----- syntax
  345. +     vimrc    (system rc files)
  346. +     gvimrc
  347.   
  348.   Use:
  349. ! >    define/nolog device:[leading-path-here.vim]       vim
  350. ! >    define/nolog device:[leading-path-here.vim.vim56] vimruntime
  351. ! >    define/nolog device:[leading-path-here.tmp]       tmp
  352.   
  353.   to get vim.exe to find its document, filetype, and syntax files, and to
  354. ! specify a directory where temporary files will be located. Copy the "runtime"
  355.   subdirectory of the vim distribution to vimruntime.
  356.   
  357. + Note: Logicals $VIMRUNTIME and $TMP are optional. Read more at :help runtime
  358.   ==============================================================================
  359.   6. Practical usage                    *vms-usage*
  360.   
  361. ! Usually you want to run just one version of Vim on your system, therefore
  362. ! it is enough to dedicate one directory for Vim.
  363. ! Copy all Vim runtime directory structure to the deployment position.
  364. ! Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
  365.   Set up logical $VIM as:
  366.   
  367. ! >    $ define VIM device:<path>
  368.   
  369.   Set up some symbols:
  370.   
  371. ! >    $ ! vi starts Vim in chr. mode.
  372.   >    $ vi*m  :== mcr device:<path>VIM.EXE
  373.   
  374. ! >    $ !gvi starts Vim in GUI mode.
  375.   >    $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g
  376.   
  377.   Create .vimrc and .gvimrc files in your home directory (SYS$LOGIN).
  378.   
  379. ! The easiest way is just rename example files. You may leave the menu file
  380. ! (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
  381. ! be default setup for all users, and for users is enough just to have their
  382. ! own additions or resetting in home directory in files .vimrc and .gvimrc.
  383. ! It should work without problems.
  384. ! Note: Remember, system rc files (default for all users) does not have leading
  385. ! "." So, system rc files are:
  386. ! >       VIM$:vimrc
  387. ! >       VIM$:gvimrc
  388. ! >       VIM$:menu.vim
  389. ! and user's customised rc files are:
  390. ! >       sys$login:.vimrc
  391. ! >       sys$login:.gvimrc
  392. ! You can check that everything is on the right place with the :version command.
  393. ! Example LOGIN.COM:
  394. ! >    $ define/nolog VIM RF10:[UTIL.VIM]
  395. ! >    $ vi*m  :== mcr VIM:VIM.EXE
  396. ! >    $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
  397. ! >    $ set disp/create/node=192.168.5.223/trans=tcpip
  398. ! Note: This set-up should be enough, if you are working on standalone server or
  399. ! clustered environment, but if you want to use Vim as internode editor, it
  400. ! will satiate you as well. You just have to define the "whole" path:
  401.   
  402. ! >       $ define VIM "<server_name>[""user password""]::device:<path>"
  403. ! >       $ vi*m :== "mcr VIM:VIM.EXE"
  404. ! as for example:
  405. ! >       $ define VIM "PLUTO::RF10:[UTIL.VIM]"
  406. ! >       $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
  407. ! You can also use $VIMRUNTIME logical to point to proper version of Vim if you
  408. ! have installed more versions in the same time. If $VIMRUNTIME is not defined
  409. ! Vim will borrow value from $VIM logical. You can find more information about
  410. ! $VIMRUNTIME logical by typing :help runtime as a Vim command.
  411.   
  412.   ==============================================================================
  413.   7. GUI mode questions                    *vms-gui*
  414.   
  415. ! VMS is not a native X window environment, so you can not start Vim in GUI mode
  416. ! "just like that". But anyhow it is not too complicate to get a running Vim.
  417.   1) If you are working on the VMS X console:
  418. !    Start Vim with the command:
  419.   >    $ mc device:<path>VIM.EXE -g
  420.   
  421. !    or type :gui as a command to the Vim command prompt. For more info :help gui
  422. ! 2) If you are working on other X window environment as Unix or some remote X
  423. !    VMS console. Set up display to your host with:
  424. ! >    $ set disp/create/node=<your IP address>/trans=<transport-name>
  425. !    and start Vim as in point 1. You can find more help in VMS documentation or
  426. !    type: help set disp in VMS prompt.
  427. !    Examples:
  428. ! >       $ set disp/create/node=192.168.5.159             ! default trans is DECnet
  429. ! >       $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
  430. ! >       $ set disp/create/node=192.168.5.159/trans=local ! display on the same node
  431. ! Note: you should define just one of these.
  432. ! For more information type $help set disp in VMS prompt.
  433.   
  434.   3) If you are working on MS Windows or other non X window environment
  435. !    You need to set up one X server and run Vim as in point 2.
  436.      For MS Windows there are available free X servers as MIX , Omni X etc.
  437.   
  438.   ==============================================================================
  439.   8. Useful notes                        *vms-notes*
  440.   
  441.   8.1 backspace/delete.
  442. ***************
  443. *** 139,191 ****
  444.   There are backspace/delete key inconsistencies with VMS.
  445.   :fixdel doesn't do the trick, but the solution is:
  446.   
  447. ! >    " for terminal mode
  448. ! >    inoremap ^? ^H
  449. ! >    " for gui mode
  450. ! >    inoremap <Del> ^H
  451.   
  452. ! (Bruce Hunsaker <BNHunsaker@chq.byu.edu> VIM 5.3)
  453.   
  454.   8.2 Filters.
  455.   
  456. ! VIM supports filters; ie. if you have a sort program that can handle
  457.   input/output redirection like Unix (<infile >outfile), you could use
  458.   
  459.   >    map \s 0!'aqsort<CR>
  460.   
  461. ! (Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> VIM 5.4)
  462.   
  463.   8.3 VMS file version numbers.
  464.   
  465. ! If you want VIM to save into a new file with the next higher file version
  466.   number, try these settings.
  467. - >    set nobackup
  468. - >    set nowritebackup
  469.   
  470. ! (Claude Marinier <ClaudeMarinier@xwavesolutions.com> VIM 5.5 )
  471.   
  472.   8.4 Directory conversion.
  473.   
  474. ! VIM will internally convert any unix-style paths and even mixed unix/VMS
  475.   paths into VMS style paths. Some typical conversions resemble:
  476.   
  477.       /abc/def/ghi          -> abc:[def]ghi.
  478.       /abc/def/ghi.j          -> abc:[def]ghi.j
  479. !     /abc/def/ghi/jkl/mno  -> abc:[def.ghi.jkl]mno.
  480. !     abc:[def.ghi]jkl/mno  -> abc:[def.ghi.jkl]mno.
  481. !       ./                -> current directoty
  482. !       ../                -> relative parent directory
  483. !       <.def.ghi>        -> relative child directory
  484.   
  485. ! (David Elins <delins@foliage.com>, Jerom Lauret
  486. ! <JLAURET@mail.chem.sunysb.edu> VIM 5.6 )
  487.   
  488.   ==============================================================================
  489. ! 9. Authors                         *vms-authors*
  490.   
  491.   In alphabetical order:
  492.       Zoltan Arpadffy <arpadffy@altavista.net>
  493.       Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
  494.       Bruce Hunsaker <BNHunsaker@chq.byu.edu>
  495.       Sandor Kopanyi <sandor.kopanyi@altavista.net>
  496. --- 231,434 ----
  497.   There are backspace/delete key inconsistencies with VMS.
  498.   :fixdel doesn't do the trick, but the solution is:
  499.   
  500. ! >    inoremap ^? ^H        " for terminal mode
  501. ! >    inoremap <Del> ^H    " for gui mode
  502.   
  503. ! Read more in ch: 8.6 (Terminal problems).
  504. ! (Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
  505.   
  506.   8.2 Filters.
  507.   
  508. ! Vim supports filters; ie. if you have a sort program that can handle
  509.   input/output redirection like Unix (<infile >outfile), you could use
  510.   
  511.   >    map \s 0!'aqsort<CR>
  512.   
  513. ! (Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)
  514.   
  515.   8.3 VMS file version numbers.
  516.   
  517. ! Vim is saving files into a new file with the next higher file version
  518.   number, try these settings.
  519.   
  520. ! >    set nobackup        " does not create *.*_ backup files
  521. ! >    set nowritebackup   " does not have any purpose on VMS. It's default.
  522. ! Recovery is working perfect as well from the default swap file.
  523. ! Read more with :help swapfile
  524. ! (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
  525. ! Vim 5.6 )
  526.   
  527.   8.4 Directory conversion.
  528.   
  529. ! Vim will internally convert any unix-style paths and even mixed unix/VMS
  530.   paths into VMS style paths. Some typical conversions resemble:
  531.   
  532.       /abc/def/ghi          -> abc:[def]ghi.
  533.       /abc/def/ghi.j          -> abc:[def]ghi.j
  534. !     /abc/def/ghi.j;2        -> abc:[def]ghi.j;2
  535. !         /abc/def/ghi/jkl/mno  -> abc:[def.ghi.jkl]mno.
  536. !     abc:[def.ghi]jkl/mno    -> abc:[def.ghi.jkl]mno.
  537. !       ./                  -> current directoty
  538. !       ../                  -> relative parent directory
  539. !       [.def.ghi]          -> relative child directory
  540. !          ./def/ghi            -> relative child directory
  541. ! Note: You may use <,> brackets as well (device:<path>file.ext;version) as
  542. ! rf10:<user.zay.work>test.c;1
  543. ! (David Elins <delins@foliage.com>, Jerome Lauret
  544. ! <JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
  545. ! 8.5 Remote host invocation
  546. ! It is possible to use Vim as an internode editor.
  547. ! 1. Edit some file from remote node:
  548. ! >       vi "<server>""username passwd""::<device>:<path><filename>;<version>"
  549. ! example:
  550. ! >       vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
  551. ! Note: syntax is very important, otherwise VMS will recognise more parameters
  552. ! instead of one (resulting with: file not found)
  553. ! 2.  Set up Vim as your internode editor. If Vim is not installed on your host,
  554. ! just set up your IP address, full Vim path including the server name and run
  555. ! the command procedure below:
  556. ! >       $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
  557. ! >       $ set disp/create/node=<your_IP_here>/trans=tcpip
  558. ! >       $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
  559. ! >       $  vi*m :== "mcr VIM:VIM.EXE"
  560. ! >       $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
  561. ! >       $ goto end
  562. ! >       $ usage:
  563. ! >       $ write sys$output " Please enter username and password as a parameter."
  564. ! >       $ write sys$output " Example: @SETVIM.COM username passwd"
  565. ! >       $ end:
  566. ! Note: Never use it in clustered environment (you do not need it), and load could
  567. ! be very-very slow, but even faster then a local Emacs. :-)
  568. ! 8.6 Terminal problems
  569. ! If your terminal name is not known to Vim and it is trying to find the default
  570. ! one you will get the following message during start-up:
  571. ! ---
  572. ! Terminal entry not found in termcap
  573. ! 'unknown-terminal' not known. Available built-in terminals are:
  574. !     builtin_gui
  575. !     builtin_riscos
  576. !     builtin_amiga
  577. !     builtin_beos-ansi
  578. !     builtin_ansi
  579. !     builtin_vt320
  580. !     builtin_vt52
  581. !     builtin_pcansi
  582. !     builtin_win32
  583. !     builtin_xterm
  584. !     builtin_iris-ansi
  585. !     builtin_debug
  586. !     builtin_dumb
  587. ! defaulting to 'vt320'
  588. ! ---
  589. ! The solution is to define default terminal name:
  590. ! >       $ ! unknown terminal name. let us use vt320 or ansi instead.
  591. ! >       $ ! Note: it's case sensitive
  592. ! >       $ define term "vt320"
  593. ! Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
  594. ! keyboard mappings. They should work perfect as they are, including arrows,
  595. ! Ins, Del buttons etc. Except Backspace in GUI mode. To solve it, add to
  596. ! .gvimrc:
  597. ! >       inoremap <Del> <BS>
  598. ! Vim will also recognise that they are fast terminals.
  599. ! If you have some annoying line jumping on the screen between windows add to
  600. ! your .vimrc file:
  601. ! >       set ttyfast                 " set fast terminal
  602. ! Note: if you're using Vim on remote host or through very slow connection, it's
  603. ! recommended to avoid fast terminal option with:
  604.   
  605. ! >    set nottyfast
  606. ! (Zoltan Arpadffy, Vim 5.6-3(VMS))
  607.   
  608.   ==============================================================================
  609. ! 9. Changes                         *vms-changes*
  610. ! Version 5.6-4(VMS) (2000 Mar 27)
  611. ! - VMS filename related changes:
  612. !         - version handling (open everything, save to new version)
  613. !         - correct file extension matching for syntax (version problem)
  614. !         - handle <,> characters and passwords in directory definition
  615. !     - handle internode/remote invocation and editing with passwords
  616. !     - OpenVMS files will be treated case insensitive from now
  617. !     - corrected response of expand("%:.") etc path related functions
  618. !     (in one word: VMS directory handling internally)
  619. ! - version command
  620. !     - corrected (+,-) information data
  621. !     - added compiler and OS version
  622. !     - added user and host information
  623. !     - resolving $VIM and $VIMRUNTIME logicals
  624. ! - VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
  625. ! - Updated OS_VMS.MMS file.
  626. !         - maximum features ON is default
  627. !         - Vim is compilable with +perl, +python and +tcl features.
  628. !         - improved MMK compatibility
  629. ! - Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
  630. ! - Defined DEC terminal VT320
  631. !         - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
  632. !       backwards, but not VT340 and newer with colour capability.
  633. !         - VT320 is default terminal for OpenVMS
  634. !         - these new terminals are also fast ttys (default for OpenVMS).
  635. !     - allowed dec_mouse ttym
  636. ! - Updated files vimrc and gvimrc with VMS specific suggestions.
  637. ! - OS_VMS.TXT updated with new features.
  638. ! Version 5.6 (2000 Jan 17)
  639. ! - Popup menu line crash corrected.
  640. ! - Handle full file names with version numbers.
  641. ! - Directory handling (CD command etc.)
  642. ! - Corrected file name conversion VMS to Unix and v.v.
  643. ! - Correct response of expand wildcards
  644. ! - Recovery is working from this version under VMS as well.
  645. ! - Improved terminal and signal handing.
  646. ! - Improved OS_VMS.TXT
  647. ! Version 5.5 (1999 Dec 3)
  648. ! - Cut & paste mismatch corrected.
  649. ! - Motif directories during open and save are corrected.
  650. ! Version 5.4 (1999 Sep 9)
  651. ! - Minor changes in the code
  652. ! - Standard distribution with +GUI option
  653. ! Version 5.3 (1998 Oct 12)
  654. ! - Syntax and DEC C changes in the code
  655. ! - Fixing problems with the /doc subdirectory
  656. ! - Improve OS_VMS.MMS
  657. ! Version 5.1 (1998 Apr 21)
  658. ! Version 4.5 (1996 Dec 16)
  659. ! - First VMS port by Henk Elbers <henk@xs4all.nl>
  660. ! ==============================================================================
  661. ! 10. Authors                         *vms-authors*
  662.   
  663.   In alphabetical order:
  664.       Zoltan Arpadffy <arpadffy@altavista.net>
  665.       Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
  666.       Bruce Hunsaker <BNHunsaker@chq.byu.edu>
  667.       Sandor Kopanyi <sandor.kopanyi@altavista.net>
  668. *** ../vim-5.6.44/src/eval.c    Sat Mar 25 21:34:04 2000
  669. --- src/eval.c    Wed Mar 29 16:02:19 2000
  670. ***************
  671. *** 2999,3005 ****
  672.   #ifdef USE_MOUSE
  673.       "mouse",
  674.   #endif
  675. ! #ifdef UNIX
  676.   # ifdef DEC_MOUSE
  677.       "mouse_dec",
  678.   # endif
  679. --- 2999,3005 ----
  680.   #ifdef USE_MOUSE
  681.       "mouse",
  682.   #endif
  683. ! #if defined(UNIX) || defined(VMS)
  684.   # ifdef DEC_MOUSE
  685.       "mouse_dec",
  686.   # endif
  687. ***************
  688. *** 5618,5623 ****
  689. --- 5622,5631 ----
  690.       while (tail > s && vim_ispathsep(tail[-1]))
  691.           --tail;
  692.       *fnamelen = tail - *fnamep;
  693. + #ifdef VMS
  694. +     if (*fnamelen > 0)
  695. +         *fnamelen += 1; /* the path separator is part of the path */
  696. + #endif
  697.       while (tail > s && !vim_ispathsep(tail[-1]))
  698.           --tail;
  699.       }
  700. ***************
  701. *** 5652,5657 ****
  702. --- 5660,5674 ----
  703.           {
  704.           *fnamelen += *fnamep - (s + 1);
  705.           *fnamep = s + 1;
  706. + #ifdef VMS
  707. +         /* cut version from the extension */
  708. +         s = *fnamep + *fnamelen - 1;
  709. +         for ( ; s > *fnamep; --s)
  710. +             if (s[0] == ';')
  711. +             break;
  712. +         if (s > *fnamep)
  713. +             *fnamelen = s - *fnamep;
  714. + #endif
  715.           }
  716.           else if (*fnamep <= tail)
  717.           *fnamelen = 0;
  718. *** ../vim-5.6.44/src/feature.h    Sun Jan  9 19:59:08 2000
  719. --- src/feature.h    Wed Mar 29 16:10:34 2000
  720. ***************
  721. *** 38,50 ****
  722.    * default        A selection of features enabled.
  723.    *
  724.    * These executables are made available with MAX_FEAT defined, because they
  725. !  * are supposed to have enough RAM: Win32 (console & GUI), dos32 and OS/2.
  726.    * The dos16 version has very little RAM available, use MIN_FEAT.
  727.    */
  728.   #if !defined(MIN_FEAT) && !defined(MAX_FEAT)
  729.   /* #define MIN_FEAT */
  730.   /* #define MAX_FEAT */
  731. ! # if defined(MSWIN) || defined(DJGPP) || defined(OS2)
  732.   #  define MAX_FEAT
  733.   # else
  734.   #  ifdef MSDOS
  735. --- 38,50 ----
  736.    * default        A selection of features enabled.
  737.    *
  738.    * These executables are made available with MAX_FEAT defined, because they
  739. !  * are supposed to have enough RAM: Win32 (console & GUI), dos32, OS/2 and VMS.
  740.    * The dos16 version has very little RAM available, use MIN_FEAT.
  741.    */
  742.   #if !defined(MIN_FEAT) && !defined(MAX_FEAT)
  743.   /* #define MIN_FEAT */
  744.   /* #define MAX_FEAT */
  745. ! # if defined(MSWIN) || defined(DJGPP) || defined(OS2) || defined(VMS)
  746.   #  define MAX_FEAT
  747.   # else
  748.   #  ifdef MSDOS
  749. ***************
  750. *** 436,442 ****
  751.    *            chinese and Japanese.
  752.    * +hangul_input    Internal Hangul input method.  Must be included
  753.    *            through configure: "--enable-hangulin"
  754. !  * Both are for Unix only.
  755.    */
  756.   #ifndef USE_XIM
  757.   /* #define USE_XIM */
  758. --- 436,442 ----
  759.    *            chinese and Japanese.
  760.    * +hangul_input    Internal Hangul input method.  Must be included
  761.    *            through configure: "--enable-hangulin"
  762. !  * Both are for Unix only.  Works for VMS too.
  763.    */
  764.   #ifndef USE_XIM
  765.   /* #define USE_XIM */
  766. ***************
  767. *** 539,546 ****
  768.    *            is strongly discouraged: You can loose all your
  769.    *            changes when the computer crashes while writing the
  770.    *            file.
  771.    */
  772. ! #ifndef VMS        /* doesn't work on VMS */
  773.   # define WRITEBACKUP
  774.   #endif
  775.   
  776. --- 539,549 ----
  777.    *            is strongly discouraged: You can loose all your
  778.    *            changes when the computer crashes while writing the
  779.    *            file.
  780. +  *            VMS note: It does work on VMS as well, but because of
  781. +  *            version handling it does not have any purpose.
  782. +  *            Overwrite will write to the new version.
  783.    */
  784. ! #ifndef VMS
  785.   # define WRITEBACKUP
  786.   #endif
  787.   
  788. *** ../vim-5.6.44/src/fileio.c    Wed Dec 15 13:28:21 1999
  789. --- src/fileio.c    Wed Mar 29 16:43:37 2000
  790. ***************
  791. *** 1128,1134 ****
  792.       int            made_writable = FALSE;  /* 'w' bit has been set */
  793.   #endif
  794.   #ifdef VMS
  795. !     char_u        *cp, nfname[MAXPATHL];
  796.   #endif
  797.                           /* writing everything */
  798.       int            whole = (start == 1 && end == buf->b_ml.ml_line_count);
  799. --- 1128,1134 ----
  800.       int            made_writable = FALSE;  /* 'w' bit has been set */
  801.   #endif
  802.   #ifdef VMS
  803. !     char_u        nfname[MAXPATHL];
  804.   #endif
  805.                           /* writing everything */
  806.       int            whole = (start == 1 && end == buf->b_ml.ml_line_count);
  807. ***************
  808. *** 1731,1750 ****
  809.        */
  810.   #ifdef VMS
  811.       STRCPY(nfname, fname);
  812. !     if ((cp = vim_strchr(nfname, ';')) != NULL) /* remove version */
  813. !     *cp = '\0';
  814. !     vms_fixfilename(nfname);
  815.   #endif
  816.   
  817. !     while ((fd = open((char *)
  818. ! #ifdef VMS
  819. !             nfname,
  820. ! #else
  821. !             fname,
  822. ! #endif
  823. !               O_WRONLY | O_EXTRA | (append ?
  824. !             (forceit ? (O_APPEND | O_CREAT) : O_APPEND) :
  825. !             (O_CREAT | O_TRUNC))
  826.   #ifndef macintosh
  827.               , 0666
  828.   #endif
  829. --- 1731,1743 ----
  830.        */
  831.   #ifdef VMS
  832.       STRCPY(nfname, fname);
  833. !     vms_remove_version(nfname); /* remove version */
  834. !     fname = nfname;
  835.   #endif
  836.   
  837. !     while ((fd = open((char *)fname, O_WRONLY | O_EXTRA | (append
  838. !             ? (forceit ? (O_APPEND | O_CREAT) : O_APPEND)
  839. !             : (O_CREAT | O_TRUNC))
  840.   #ifndef macintosh
  841.               , 0666
  842.   #endif
  843. ***************
  844. *** 2021,2027 ****
  845. --- 2014,2026 ----
  846.       --no_wait_return;        /* may wait for return now */
  847.   
  848.   #ifndef UNIX
  849. + # ifdef VMS
  850. +     STRCPY(nfname, sfname);
  851. +     vms_remove_version(nfname); /* remove version */
  852. +     fname = nfname;
  853. + # else
  854.       fname = sfname;        /* use shortname now, for the messages */
  855. + # endif
  856.   #endif
  857.       if (!filtering)
  858.       {
  859. ***************
  860. *** 2402,2409 ****
  861. --- 2401,2410 ----
  862.       {
  863.           if (vim_ispathsep(*p))
  864.           ++p;
  865. + #ifndef VMS   /* the path separator is always part of the path */
  866.           else
  867.           p = NULL;
  868. + #endif
  869.       }
  870.       }
  871.   #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
  872. ***************
  873. *** 2532,2540 ****
  874.           return NULL;
  875.       STRCPY(retval, fname);
  876.   #ifdef VMS
  877. !     ptr = (char_u *)strrchr((char *)retval, ';');
  878. !     if (ptr != NULL)
  879. !         *ptr = '\0';
  880.   #endif
  881.       }
  882.   
  883. --- 2533,2540 ----
  884.           return NULL;
  885.       STRCPY(retval, fname);
  886.   #ifdef VMS
  887. !     vms_remove_version(retval); /* we do not need versions here */
  888. !     fnamelen = STRLEN(retval);  /* it can be shorter*/
  889.   #endif
  890.       }
  891.   
  892. ***************
  893. *** 4320,4325 ****
  894. --- 4320,4332 ----
  895.           if (*p == '\\')
  896.           *p = '/';
  897.       }
  898. + #endif
  899. + #ifdef VMS
  900. +     /* remove version for correct match */
  901. +     if (sfname != NULL)
  902. +     vms_remove_version(sfname);
  903. +     vms_remove_version(fname);
  904.   #endif
  905.   
  906.       /*
  907. *** ../vim-5.6.44/src/gui_motif.c    Thu Mar 30 16:51:36 2000
  908. --- src/gui_motif.c    Thu Mar 30 13:44:50 2000
  909. ***************
  910. *** 861,871 ****
  911.       dflt = (char_u *)"";
  912.       if (initdir == NULL || *initdir == NUL)
  913.       {
  914. - #ifdef VMS
  915. -     mch_dirname_vms(dirbuf, MAXPATHL);
  916. - #else
  917.       mch_dirname(dirbuf, MAXPATHL);
  918. - #endif
  919.       initdir = dirbuf;
  920.       }
  921.   
  922. --- 861,867 ----
  923. *** ../vim-5.6.44/src/gui_vms_conf.h    Wed May 20 21:17:48 1998
  924. --- src/gui_vms_conf.h    Wed Mar 29 16:55:56 2000
  925. ***************
  926. *** 1,4 ****
  927. ! /* os_vms_conf.h.  Replaces config.h for VMS with GUI */
  928.   
  929.   /* Define unless no X support found */
  930.   #define HAVE_X11 1
  931. --- 1,7 ----
  932. ! /* gui_vms_conf.h.  Replaces config.h for VMS with GUI */
  933. ! /* Open VMS is case insensitive */
  934. ! #define CASE_INSENSITIVE_FILENAME 1
  935.   
  936.   /* Define unless no X support found */
  937.   #define HAVE_X11 1
  938. ***************
  939. *** 179,185 ****
  940.   #define HAVE_SYS_TIME_H 1
  941.   
  942.   /* Define if you have the <termio.h> header file.  */
  943. ! #define HAVE_TERMIO_H 1
  944.   
  945.   /* Define if you have the <unistd.h> header file.  */
  946.   #define HAVE_UNISTD_H 1
  947. --- 182,188 ----
  948.   #define HAVE_SYS_TIME_H 1
  949.   
  950.   /* Define if you have the <termio.h> header file.  */
  951. ! /* #define HAVE_TERMIO_H 1 */
  952.   
  953.   /* Define if you have the <unistd.h> header file.  */
  954.   #define HAVE_UNISTD_H 1
  955. *** ../vim-5.6.44/src/main.c    Sat Mar 25 20:32:21 2000
  956. --- src/main.c    Wed Mar 29 17:04:12 2000
  957. ***************
  958. *** 53,59 ****
  959.       "Too many \"+command\" or \"-c command\" arguments",
  960.       };
  961.   
  962. ! #if defined(UNIX) || defined(__EMX__)
  963.       reset_signals();        /* kill us with CTRL-C here, if you like */
  964.   #endif
  965.   
  966. --- 54,60 ----
  967.       "Too many \"+command\" or \"-c command\" arguments",
  968.       };
  969.   
  970. ! #if defined(UNIX) || defined(__EMX__) || defined(VMS)
  971.       reset_signals();        /* kill us with CTRL-C here, if you like */
  972.   #endif
  973.   
  974. ***************
  975. *** 97,103 ****
  976.   #endif
  977.       };
  978.   
  979. ! #if defined(UNIX) || defined(__EMX__)
  980.       reset_signals();        /* kill us with CTRL-C here, if you like */
  981.   #endif
  982.   
  983. --- 98,104 ----
  984.   #endif
  985.       };
  986.   
  987. ! #if defined(UNIX) || defined(__EMX__) || defined(VMS)
  988.       reset_signals();        /* kill us with CTRL-C here, if you like */
  989.   #endif
  990.   
  991. *** ../vim-5.6.44/src/memline.c    Wed Jan 12 11:36:22 2000
  992. --- src/memline.c    Wed Mar 29 17:15:00 2000
  993. ***************
  994. *** 885,897 ****
  995.       }
  996.   
  997.       home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
  998. !     smsg((char_u *)"Using swap file \"%s\"", NameBuff);
  999.   
  1000.       if (curbuf->b_ffname == NULL)
  1001.       STRCPY(NameBuff, "No File");
  1002.       else
  1003.       home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
  1004. !     smsg((char_u *)"Original file \"%s\"", NameBuff);
  1005.       msg_putchar('\n');
  1006.   
  1007.   /*
  1008. --- 885,909 ----
  1009.       }
  1010.   
  1011.       home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
  1012. !     smsg((char_u *)"Using swap file \"%s\"",
  1013. ! #ifdef VMS
  1014. !         vms_fixfilename(NameBuff)
  1015. ! #else
  1016. !         NameBuff
  1017. ! #endif
  1018. !         );
  1019.   
  1020.       if (curbuf->b_ffname == NULL)
  1021.       STRCPY(NameBuff, "No File");
  1022.       else
  1023.       home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
  1024. !     smsg((char_u *)"Original file \"%s\"",
  1025. ! #ifdef VMS
  1026. !         vms_fixfilename(NameBuff)
  1027. ! #else
  1028. !         NameBuff
  1029. ! #endif
  1030. !         );
  1031.       msg_putchar('\n');
  1032.   
  1033.   /*
  1034. ***************
  1035. *** 1196,1205 ****
  1036.       {
  1037.           if (fname == NULL || *fname == NULL)
  1038.           {
  1039. ! #if defined(VMS) || defined(RISCOS)
  1040. !         names[0] = vim_strsave((char_u *)"*_sw#");
  1041.   #else
  1042.           names[0] = vim_strsave((char_u *)"*.sw?");
  1043.   #endif
  1044.   #ifdef UNIX
  1045.           /* for Unix names starting with a dot are special */
  1046. --- 1208,1221 ----
  1047.       {
  1048.           if (fname == NULL || *fname == NULL)
  1049.           {
  1050. ! #ifdef VMS
  1051. !         names[0] = vim_strsave((char_u *)"*_sw%");
  1052.   #else
  1053. + # ifdef RISCOS
  1054. +         names[0] = vim_strsave((char_u *)"*_sw#");
  1055. + # else
  1056.           names[0] = vim_strsave((char_u *)"*.sw?");
  1057. + # endif
  1058.   #endif
  1059.   #ifdef UNIX
  1060.           /* for Unix names starting with a dot are special */
  1061. ***************
  1062. *** 1222,1231 ****
  1063.       {
  1064.           if (fname == NULL || *fname == NULL)
  1065.           {
  1066. ! #ifdef RISCOS
  1067. !         names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
  1068.   #else
  1069.           names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
  1070.   #endif
  1071.   #ifdef UNIX
  1072.           /* for Unix names starting with a dot are special */
  1073. --- 1238,1251 ----
  1074.       {
  1075.           if (fname == NULL || *fname == NULL)
  1076.           {
  1077. ! #ifdef VMS
  1078. !         names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
  1079.   #else
  1080. + # ifdef RISCOS
  1081. +         names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
  1082. + # else
  1083.           names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
  1084. + # endif
  1085.   #endif
  1086.   #ifdef UNIX
  1087.           /* for Unix names starting with a dot are special */
  1088. ***************
  1089. *** 1233,1244 ****
  1090.           names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE);
  1091.           num_names = 3;
  1092.   #else
  1093. ! #ifdef VMS
  1094. !         names[1] = concat_fnames(dir_name, (char_u *)".*_sw?", TRUE);
  1095.           num_names = 2;
  1096. ! #else
  1097.           num_names = 1;
  1098. ! #endif
  1099.   #endif
  1100.           }
  1101.           else
  1102. --- 1253,1264 ----
  1103.           names[2] = concat_fnames(dir_name, (char_u *)".sw?", TRUE);
  1104.           num_names = 3;
  1105.   #else
  1106. ! # ifdef VMS
  1107. !         names[1] = concat_fnames(dir_name, (char_u *)".*_sw%", TRUE);
  1108.           num_names = 2;
  1109. ! # else
  1110.           num_names = 1;
  1111. ! # endif
  1112.   #endif
  1113.           }
  1114.           else
  1115. ***************
  1116. *** 1472,1478 ****
  1117.           if (b0.b0_fname[0] == NUL)
  1118.               MSG_PUTS("[No File]");
  1119.           else
  1120. !             msg_outtrans(b0.b0_fname);
  1121.   
  1122.           MSG_PUTS("\n          modified: ");
  1123.           MSG_PUTS(b0.b0_dirty ? "YES" : "no");
  1124. --- 1492,1504 ----
  1125.           if (b0.b0_fname[0] == NUL)
  1126.               MSG_PUTS("[No File]");
  1127.           else
  1128. !             msg_outtrans(
  1129. ! #ifdef VMS
  1130. !                 vms_fixfilename(b0.b0_fname)
  1131. ! #else
  1132. !                 b0.b0_fname
  1133. ! #endif
  1134. !                 );
  1135.   
  1136.           MSG_PUTS("\n          modified: ");
  1137.           MSG_PUTS(b0.b0_dirty ? "YES" : "no");
  1138. ***************
  1139. *** 1601,1610 ****
  1140.        * Also try with 'shortname' set, in case the file is on a DOS filesystem.
  1141.        */
  1142.       curbuf->b_shortname = TRUE;
  1143. ! #ifdef RISCOS
  1144. !     names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
  1145.   #else
  1146.       names[num_names] = modname(path, (char_u *)".sw?", FALSE);
  1147.   #endif
  1148.       if (names[num_names] == NULL)
  1149.       goto end;
  1150. --- 1627,1640 ----
  1151.        * Also try with 'shortname' set, in case the file is on a DOS filesystem.
  1152.        */
  1153.       curbuf->b_shortname = TRUE;
  1154. ! #ifdef VMS
  1155. !     names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
  1156.   #else
  1157. + # ifdef RISCOS
  1158. +     names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
  1159. + # else
  1160.       names[num_names] = modname(path, (char_u *)".sw?", FALSE);
  1161. + # endif
  1162.   #endif
  1163.       if (names[num_names] == NULL)
  1164.       goto end;
  1165. *** ../vim-5.6.44/src/misc1.c    Mon Mar 27 21:52:25 2000
  1166. --- src/misc1.c    Fri Mar 31 13:35:12 2000
  1167. ***************
  1168. *** 2522,2528 ****
  1169.       {
  1170.           *mustfree = TRUE;
  1171.       }
  1172. !     else
  1173.       {
  1174.           p = default_vim_dir;
  1175.           *mustfree = FALSE;
  1176. --- 2522,2528 ----
  1177.       {
  1178.           *mustfree = TRUE;
  1179.       }
  1180. !     else if (*default_vim_dir != NUL)
  1181.       {
  1182.           p = default_vim_dir;
  1183.           *mustfree = FALSE;
  1184. ***************
  1185. *** 2917,2923 ****
  1186.       return (c == ':' || c == '/' || c == '\\');
  1187.   #  else
  1188.   #   ifdef VMS
  1189. !     return (c == ':' || c == '[' || c == ']' || c == '/');
  1190.   #   else
  1191.   #    ifdef COLON_AS_PATHSEP
  1192.       return (c == ':');
  1193. --- 2917,2925 ----
  1194.       return (c == ':' || c == '/' || c == '\\');
  1195.   #  else
  1196.   #   ifdef VMS
  1197. !     /* server"user passwd"::device:[full.path.name]fname.extension;version" */
  1198. !     return (c == ':' || c == '[' || c == ']' || c == '/'
  1199. !         || c == '<' || c == '>' || c == '"' );
  1200.   #   else
  1201.   #    ifdef COLON_AS_PATHSEP
  1202.       return (c == ':');
  1203. ***************
  1204. *** 5277,5282 ****
  1205. --- 5279,5287 ----
  1206.           if (ffname == NULL)        /* out of memory */
  1207.           break;
  1208.           tail = gettail((*file)[i]);
  1209. + #ifdef VMS
  1210. +         vms_remove_version(ffname);
  1211. + #endif
  1212.   
  1213.           /* try all patterns in 'wildignore' */
  1214.           p = p_wig;
  1215. *** ../vim-5.6.44/src/option.c    Mon Dec 27 12:58:12 1999
  1216. --- src/option.c    Wed Mar 29 17:19:01 2000
  1217. ***************
  1218. *** 1466,1472 ****
  1219.   static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
  1220.   static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
  1221.   static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
  1222. ! #if defined(USE_MOUSE) && defined(UNIX)
  1223.   static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", NULL};
  1224.   #endif
  1225.   static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
  1226. --- 1466,1472 ----
  1227.   static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
  1228.   static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
  1229.   static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
  1230. ! #if defined(USE_MOUSE) && (defined(UNIX) || defined(VMS))
  1231.   static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", NULL};
  1232.   #endif
  1233.   static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
  1234. ***************
  1235. *** 3448,3454 ****
  1236.       gui_init_which_components(oldval);
  1237.   #endif
  1238.   
  1239. ! #if defined(USE_MOUSE) && defined(UNIX)
  1240.       /* 'ttymouse' */
  1241.       else if (varp == &p_ttym)
  1242.       {
  1243. --- 3448,3454 ----
  1244.       gui_init_which_components(oldval);
  1245.   #endif
  1246.   
  1247. ! #if defined(USE_MOUSE) && (defined(UNIX) || defined(VMS))
  1248.       /* 'ttymouse' */
  1249.       else if (varp == &p_ttym)
  1250.       {
  1251. *** ../vim-5.6.44/src/os_vms_conf.h    Wed May 20 21:17:29 1998
  1252. --- src/os_vms_conf.h    Wed Mar 29 16:52:21 2000
  1253. ***************
  1254. *** 1,5 ****
  1255. --- 1,8 ----
  1256.   /* os_vms_conf.h.  Replaces config.h for VMS */
  1257.   
  1258. + /* Open VMS is case insensitive */
  1259. + #define CASE_INSENSITIVE_FILENAME 1
  1260.   /* Define unless no X support found */
  1261.   /*#define HAVE_X11 1*/
  1262.   
  1263. *** ../vim-5.6.44/src/os_vms.c    Sun Jan 16 15:53:57 2000
  1264. --- src/os_vms.c    Thu Mar 30 16:55:38 2000
  1265. ***************
  1266. *** 31,37 ****
  1267.   static int    vms_inchar(int wtime);
  1268.   static int    vms_sys(char *cmd, char *log, char *inp);
  1269.   
  1270. ! char    ibuf[16 /*1*/];            /* Input buffer */
  1271.   
  1272.   #define NOTIM    0
  1273.   #define TIM_0    1
  1274. --- 31,37 ----
  1275.   static int    vms_inchar(int wtime);
  1276.   static int    vms_sys(char *cmd, char *log, char *inp);
  1277.   
  1278. ! char    ibuf[16];            /* Input buffer */
  1279.   
  1280.   #define NOTIM    0
  1281.   #define TIM_0    1
  1282. ***************
  1283. *** 1022,1027 ****
  1284. --- 1022,1039 ----
  1285.           || STRCMP(name, "builtin_iris-ansi") == 0);
  1286.   }
  1287.   
  1288. +     int
  1289. + vim_is_vt300(name)
  1290. +     char_u  *name;
  1291. + {
  1292. +     if (name == NULL)
  1293. +         return FALSE;       /* actually all ANSI comp. terminals should be here  */
  1294. +     return (STRNICMP(name, "vt3", 3) == 0  /* it will cover all from VT100-VT300 */
  1295. +          || STRNICMP(name, "vt2", 3) == 0  /* Note: from VT340 can hanle colors  */
  1296. +          || STRNICMP(name, "vt1", 3) == 0  
  1297. +          || STRCMP(name, "builtin_vt320") == 0);
  1298. + }
  1299.   
  1300.   /*
  1301.    * Return TRUE if "name" is a terminal for which 'ttyfast' should be set.
  1302. ***************
  1303. *** 1033,1039 ****
  1304.   {
  1305.       if (name == NULL)
  1306.       return FALSE;
  1307. !     if (vim_is_xterm(name) || vim_is_iris(name))
  1308.       return TRUE;
  1309.       return (   STRNICMP(name, "hpterm", 6) == 0
  1310.           || STRNICMP(name, "sun-cmd", 7) == 0
  1311. --- 1045,1051 ----
  1312.   {
  1313.       if (name == NULL)
  1314.       return FALSE;
  1315. !     if (vim_is_vt300(name) || vim_is_xterm(name) || vim_is_iris(name) )
  1316.       return TRUE;
  1317.       return (   STRNICMP(name, "hpterm", 6) == 0
  1318.           || STRNICMP(name, "sun-cmd", 7) == 0
  1319. ***************
  1320. *** 1110,1138 ****
  1321.       STRCPY(buf, strerror(errno));
  1322.       return FAIL;
  1323.       }
  1324. !     /* tranlate from VMS to UNIX format */
  1325.       STRNCPY(buf, decc$translate_vms((char *)buf), len);
  1326. !     STRCAT(buf, "/");
  1327. !     return OK;
  1328. ! }
  1329.   
  1330. - /*
  1331. -  * Get name of current directory into buffer 'buf' of length 'len' bytes.
  1332. -  * In VMS format
  1333. -  * Return OK for success, FAIL for failure.
  1334. -  */
  1335. -     int
  1336. - mch_dirname_vms(char_u *buf, int len)
  1337. - {
  1338. -     if (!getcwd((char *)buf, len))
  1339. -     {
  1340. -     STRCPY(buf, strerror(errno));
  1341. -     return FAIL;
  1342. -     }
  1343.       return OK;
  1344.   }
  1345.   
  1346.   /*
  1347.    *    mch_FullName    get absolute filename into buffer 'buf' of
  1348.    *            length 'len' bytes, return FAIL for failure,
  1349. --- 1122,1141 ----
  1350.       STRCPY(buf, strerror(errno));
  1351.       return FAIL;
  1352.       }
  1353. !     /********************************************* 
  1354. !     If we want tranlate from VMS to UNIX format, but
  1355. !     it is much more useful to use native VMS path
  1356. !     internally as well.  
  1357.       STRNCPY(buf, decc$translate_vms((char *)buf), len);
  1358. !     STRCAT(buf, "/"); 
  1359. !     **********************************************/
  1360.   
  1361.       return OK;
  1362.   }
  1363.   
  1364.   /*
  1365.    *    mch_FullName    get absolute filename into buffer 'buf' of
  1366.    *            length 'len' bytes, return FAIL for failure,
  1367. ***************
  1368. *** 1202,1208 ****
  1369.       int
  1370.   mch_isFullName(char_u *fname)
  1371.   {
  1372. !     if (fname[0] == '/' || strchr((char *)fname, ':') || strchr((char *)fname,'[') || strchr((char *)fname,'>') )
  1373.       return 1;
  1374.       else
  1375.       return 0;
  1376. --- 1205,1211 ----
  1377.       int
  1378.   mch_isFullName(char_u *fname)
  1379.   {
  1380. !     if (fname[0] == '/' || strchr((char *)fname, ':') || strchr((char *)fname,'[') || strchr((char *)fname,']') || strchr((char *)fname,'<') || strchr((char *)fname,'>') )
  1381.       return 1;
  1382.       else
  1383.       return 0;
  1384. ***************
  1385. *** 1276,1281 ****
  1386. --- 1279,1289 ----
  1387.       mch_restore_title(3);   /* restore xterm title and icon name */
  1388.   #endif
  1389.       stoptermcap();
  1390. +     /* Cursor may have been switched off without calling starttermcap()
  1391. +      * when doing "vim -u vimrc" and vimrc contains ":q". */
  1392. +     if (full_screen)
  1393. +         cursor_on();
  1394.       }
  1395.       vms_flushbuf();
  1396.       ml_close_all(TRUE);            /* remove all memfiles */
  1397. ***************
  1398. *** 1516,1521 ****
  1399. --- 1524,1585 ----
  1400.       }
  1401.       ison = on;
  1402.   }
  1403. + /*
  1404. +  * Set the mouse termcode, depending on the 'term' and 'ttymouse' options.
  1405. +  */
  1406. +     void
  1407. + check_mouse_termcode()
  1408. + {
  1409. + # ifdef XTERM_MOUSE
  1410. +     if (use_xterm_mouse())
  1411. +     {
  1412. +         set_mouse_termcode(KS_MOUSE, (char_u *)"\033[M");
  1413. +         if (*p_mouse != NUL)
  1414. +         {
  1415. +             /* force mouse off and maybe on to send possibly new mouse
  1416. +              * activation sequence to the xterm, with(out) drag tracing. */
  1417. +             mch_setmouse(FALSE);
  1418. +             setmouse();
  1419. +         }
  1420. +     }
  1421. +     else
  1422. +         del_mouse_termcode(KS_MOUSE);
  1423. + # endif
  1424. + # ifdef GPM_MOUSE
  1425. +     if (!use_xterm_mouse())
  1426. +         set_mouse_termcode(KS_MOUSE, (char_u *)"\033MG");
  1427. + # endif
  1428. + # ifdef NETTERM_MOUSE
  1429. +     /* can be added always, there is no conflict */
  1430. +     set_mouse_termcode(KS_NETTERM_MOUSE, (char_u *)"\033}");
  1431. + # endif
  1432. + # ifdef DEC_MOUSE
  1433. +     /* conflicts with xterm mouse: "\033[" and "\033[M" */
  1434. +     if (!use_xterm_mouse())
  1435. +         set_mouse_termcode(KS_DEC_MOUSE, (char_u *)"\033[");
  1436. +     else
  1437. +         del_mouse_termcode(KS_DEC_MOUSE);
  1438. + # endif
  1439. + }
  1440. + /*
  1441. +  * Return non-zero when using an xterm mouse, according to 'ttymouse'.
  1442. +  * Return 1 for "xterm".
  1443. +  * Return 2 for "xterm2".
  1444. +  */
  1445. +     int
  1446. + use_xterm_mouse()
  1447. + {
  1448. +     if (STRNICMP(p_ttym, "xterm", 5) == 0)
  1449. +     {
  1450. +         if (isdigit(p_ttym[5]))
  1451. +             return atoi((char *)&p_ttym[5]);
  1452. +         return 1;
  1453. +     }
  1454. +     return 0;
  1455. + }
  1456.   #endif
  1457.   
  1458.   /*
  1459. ***************
  1460. *** 1832,1838 ****
  1461.           /* files should exist if expanding interactively */
  1462.           if (!(flags & EW_NOTFOUND) && mch_getperm(vms_fmatch[i]) < 0)
  1463.           continue;
  1464. !         /* check if this entry should be included */
  1465.           dir = (mch_isdir(vms_fmatch[i]));
  1466.           if (( dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE)))
  1467.           continue;
  1468. --- 1896,1902 ----
  1469.           /* files should exist if expanding interactively */
  1470.           if (!(flags & EW_NOTFOUND) && mch_getperm(vms_fmatch[i]) < 0)
  1471.           continue;
  1472. !         /* do not include directories */
  1473.           dir = (mch_isdir(vms_fmatch[i]));
  1474.           if (( dir && !(flags & EW_DIR)) || (!dir && !(flags & EW_FILE)))
  1475.           continue;
  1476. ***************
  1477. *** 1850,1856 ****
  1478.           }
  1479.           files_free = EXPL_ALLOC_INC;
  1480.           }
  1481. -         /* need to append '/' on directories here?? */
  1482.   
  1483.           (*file)[*num_file++] = vms_fmatch[i];
  1484.       }
  1485. --- 1914,1919 ----
  1486. ***************
  1487. *** 2142,2148 ****
  1488.   
  1489.       /* start of directory portion */
  1490.       ch = *in;
  1491. !     if ((ch == '[') || (ch == '/')) {    /* start of directory(s) ? */
  1492.       ch = '[';
  1493.       SKIP_FOLLOWING_SLASHES(in);
  1494.       } else if (EQN(in, "../", 3)) { /* Unix parent directory? */
  1495. --- 2205,2211 ----
  1496.   
  1497.       /* start of directory portion */
  1498.       ch = *in;
  1499. !     if ((ch == '[') || (ch == '/') || (ch == '<') ) {    /* start of directory(s) ? */
  1500.       ch = '[';
  1501.       SKIP_FOLLOWING_SLASHES(in);
  1502.       } else if (EQN(in, "../", 3)) { /* Unix parent directory? */
  1503. ***************
  1504. *** 2175,2181 ****
  1505.   
  1506.       while (*in != '\0') {
  1507.       ch = *in;
  1508. !     if ((ch == ']') || (ch == '/')) {    /* end of (sub)directory ? */
  1509.           end_of_dir = out;
  1510.           ch = '.';
  1511.           SKIP_FOLLOWING_SLASHES(in);
  1512. --- 2238,2244 ----
  1513.   
  1514.       while (*in != '\0') {
  1515.       ch = *in;
  1516. !     if ((ch == ']') || (ch == '/') || (ch == '>') ) {    /* end of (sub)directory ? */
  1517.           end_of_dir = out;
  1518.           ch = '.';
  1519.           SKIP_FOLLOWING_SLASHES(in);
  1520. ***************
  1521. *** 2241,2251 ****
  1522.        * else translate mixed unix-vms file specs to pure vms
  1523.        */
  1524.   
  1525. !     Fspec_Rms = buf;    /* for decc$to_vms */
  1526.       if (strchr(instring,'/') == NULL)
  1527. !     strcpy(buf, instring);  /* already a vms file spec */
  1528. !     else if (decc$to_vms(instring, vms_fspec_proc, 0, 0) <= 0)
  1529. !     vms_unix_mixed_filespec(instring, buf);
  1530.   
  1531.       return buf;
  1532.   }
  1533. --- 2304,2335 ----
  1534.        * else translate mixed unix-vms file specs to pure vms
  1535.        */
  1536.   
  1537. !     Fspec_Rms = buf;                            /* for decc$to_vms              */
  1538.       if (strchr(instring,'/') == NULL)
  1539. !     strcpy(buf, instring);                  /* already a vms file spec      */
  1540. !     else if (strchr(instring,'"') == NULL){     /* regular file                 */
  1541. !     if (decc$to_vms(instring, vms_fspec_proc, 0, 0) <= 0)
  1542. !         vms_unix_mixed_filespec(instring, buf);
  1543. !         }
  1544. !     else 
  1545. !     vms_unix_mixed_filespec(instring, buf); /* we have a passwd in the path */    
  1546.   
  1547.       return buf;
  1548.   }
  1549. + /*
  1550. +  * Remove version number from file name
  1551. +  * we need it in some special cases as:
  1552. +  * creating swap file name and writing new file 
  1553. +  */
  1554. + void *
  1555. + vms_remove_version(void * fname)
  1556. + {
  1557. +     char_u          *cp;
  1558. +     if ((cp = vim_strchr( fname, ';')) != NULL) /* remove version */
  1559. +         *cp = '\0';
  1560. +     vms_fixfilename(fname);
  1561. +     return fname;
  1562. + }
  1563. *** ../vim-5.6.44/src/os_vms.h    Tue Jan 11 17:54:26 2000
  1564. --- src/os_vms.h    Tue Feb 15 13:46:00 2000
  1565. ***************
  1566. *** 212,226 ****
  1567.   #endif
  1568.   
  1569.   #ifndef VIM_HLP
  1570. ! /*
  1571. !  * If the line with $VIMRUNTIME doesn't work for you (":help" doesn't find the
  1572. !  * help files), then change the zero into a one and try again.
  1573. !  */
  1574. ! # if 0
  1575. ! #  define VIM_HLP        "$VIM_DOC:help.txt"
  1576. ! # else
  1577. ! #  define VIM_HLP        "$VIMRUNTIME/doc/help.txt"
  1578. ! # endif
  1579.   #endif
  1580.   
  1581.   #ifndef SYNTAX_FNAME
  1582. --- 212,218 ----
  1583.   #endif
  1584.   
  1585.   #ifndef VIM_HLP
  1586. ! # define VIM_HLP        "$VIMRUNTIME/doc/help.txt"
  1587.   #endif
  1588.   
  1589.   #ifndef SYNTAX_FNAME
  1590. ***************
  1591. *** 234,244 ****
  1592.   #endif /* VIMINFO */
  1593.   
  1594.   #ifndef DEF_BDIR
  1595. ! # define DEF_BDIR        "./,sys$disk:[],tmp:,sys$login:"    /* default for 'backupdir' */
  1596.   #endif
  1597.   
  1598.   #ifndef DEF_DIR
  1599. ! # define DEF_DIR        "./,sys$disk:[],tmp:,sys$login:"    /* default for 'directory' */
  1600.   #endif
  1601.   
  1602.   #define TEMPNAME        "tmp:v?XXXXXX.txt"
  1603. --- 226,236 ----
  1604.   #endif /* VIMINFO */
  1605.   
  1606.   #ifndef DEF_BDIR
  1607. ! # define DEF_BDIR        "./,tmp:,sys$login:"    /* default for 'backupdir' */
  1608.   #endif
  1609.   
  1610.   #ifndef DEF_DIR
  1611. ! # define DEF_DIR        "./,tmp:,sys$login:"    /* default for 'directory' */
  1612.   #endif
  1613.   
  1614.   #define TEMPNAME        "tmp:v?XXXXXX.txt"
  1615. *** ../vim-5.6.44/src/os_vms.mms    Sat Sep 11 16:27:29 1999
  1616. --- src/os_vms.mms    Fri Mar 31 13:27:55 2000
  1617. ***************
  1618. *** 1,121 ****
  1619.   #
  1620. ! # Makefile for Vim on VMS
  1621.   #
  1622. ! # This has only been tested on VMS 7.1 on DEC Alpha hardware.
  1623.   # The following will be built:
  1624.   #    vim.exe:    standard
  1625. ! #        or
  1626.   #    dvim.exe:    debug
  1627.   #
  1628.   # Edit the lines in the Configuration section below to select.
  1629.   #
  1630.   # To build: use the following command line:
  1631.   #
  1632. - #   mmk/descrip=os_vms.mms
  1633. - #        or
  1634.   #    mms/descrip=os_vms.mms
  1635.   #
  1636.   
  1637. ! #######################################################################
  1638.   # Configuration section.
  1639. ! #######################################################################
  1640.   
  1641.   # Comment out if you want just the character terminal mode only.
  1642.   GUI = YES
  1643.   
  1644. ! # Uncomment if want a debug version.
  1645.   # DEBUG = YES
  1646.   
  1647.   
  1648.   .IFDEF GUI
  1649. ! #######################################################################
  1650.   # X/Motif executable  (also works in terminal mode )
  1651. ! #######################################################################
  1652. ! DEFS    = /def=("HAVE_CONFIG_H","USE_GUI_MOTIF")
  1653. ! LIBS    = ,OS_VMS.OPT/OPT
  1654.   CONFIG_H = gui_vms_conf.h
  1655. ! GUI_INC_LOC = decw$include:
  1656. ! GUI_LIB_LOC = sys$library:
  1657. ! GUI_SRC = gui.c gui_motif.c gui_x11.c
  1658. ! GUI_OBJ = gui.obj gui_motif.obj gui_x11.obj
  1659.   
  1660.   # These may need to be defined if things are not in standard locations:
  1661. ! X_LIBS_DIR =
  1662. ! X_PRE_LIBS =
  1663. ! X_EXTRA_LIBS =
  1664. ! X_LIBS =
  1665. ! #######################################################################
  1666.   .ELSE
  1667. ! #######################################################################
  1668.   # Character terminal only executable
  1669. ! #######################################################################
  1670. ! DEFS    = /def=("HAVE_CONFIG_H")
  1671. ! LIBS    =
  1672.   CONFIG_H = os_vms_conf.h
  1673. - #######################################################################
  1674. - # End of configuration section
  1675. - #######################################################################
  1676.   .ENDIF
  1677. ! #######################################################################
  1678.   
  1679.   CC    = cc/decc
  1680.   LD    = link
  1681.   
  1682.   .IFDEF DEBUG
  1683. ! TARGET = dvim.exe
  1684.   CFLAGS    = /debug/noopt/prefix=all/include=[.proto]
  1685. ! LDFLAGS    =  /debug
  1686.   .ELSE
  1687. ! TARGET = vim.exe
  1688.   CFLAGS    = /opt/prefix=all/include=[.proto]
  1689.   LDFLAGS    =
  1690.   .ENDIF
  1691.   
  1692.   
  1693.   ### These go into pathdef.c
  1694. ! VIMLOC = $VIM
  1695. ! VIM_HLP = $VIM_DOC:help.txt
  1696.   
  1697.   ###
  1698.   ### GRAPHICAL USER INTERFACE (GUI).
  1699.   
  1700.   
  1701. ! .SUFFIXES :
  1702. ! .SUFFIXES : .c .obj .pro
  1703.   
  1704. ! ALL_CFLAGS = $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CFLAGS)
  1705.   
  1706. ! ALL_LIBS = $(GUI_LIBS_DIR) $(X_LIBS_DIR) $(X_PRE_LIBS) $(GUI_LIBS) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS) $(EXTRA_LIBS)
  1707. ! INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_unix.h \
  1708.       unixunix.h structs.h proto.h osdef.h config.h \
  1709. !     $(GUI_INCL)
  1710.   
  1711.   SRC =    buffer.c charset.c digraph.c edit.c eval.c ex_cmds.c ex_docmd.c \
  1712. !     ex_getln.c fileio.c getchar.c \
  1713. !     main.c mark.c menu.c\
  1714.       memfile.c memline.c message.c misc1.c misc2.c normal.c ops.c option.c \
  1715.       pty.c quickfix.c regexp.c search.c syntax.c tag.c term.c termlib.c \
  1716.       ui.c undo.c version.c screen.c window.c os_vms.c pathdef.c \
  1717. !     $(GUI_SRC)
  1718.   
  1719.   OBJ =    buffer.obj charset.obj digraph.obj edit.obj eval.obj ex_cmds.obj \
  1720.       ex_docmd.obj ex_getln.obj fileio.obj getchar.obj \
  1721.       main.obj mark.obj menu.obj memfile.obj memline.obj message.obj misc1.obj \
  1722. !     misc2.obj normal.obj ops.obj option.obj pty.obj quickfix.obj \
  1723.       regexp.obj search.obj syntax.obj tag.obj term.obj termlib.obj ui.obj \
  1724.       undo.obj screen.obj window.obj os_vms.obj pathdef.obj \
  1725. !     $(GUI_OBJ)
  1726.   
  1727.   # Default target is making the executable
  1728.   all : $(TARGET) mms_vim
  1729.       ! $@
  1730.   
  1731. ! config.h :    $(CONFIG_H)
  1732.       copy $(CONFIG_H) config.h
  1733.   
  1734. ! osdef.h :    os_vms_osdef.h
  1735.       copy os_vms_osdef.h osdef.h
  1736.   
  1737.   # Re-execute this os_vms.mms to include the new config.mk produced by
  1738. --- 1,197 ----
  1739.   #
  1740. ! # Makefile for Vim on OpenVMS
  1741.   #
  1742. ! # Maintainer:   Zoltan Arpadffy <arpadffy@altavista.net>
  1743. ! # Last change:  2000 Feb 28
  1744. ! # 
  1745. ! # This has been tested on VMS 6.2 to 7.1 on DEC Alpha and VAX.
  1746.   # The following will be built:
  1747.   #    vim.exe:    standard
  1748. ! #          or
  1749.   #    dvim.exe:    debug
  1750.   #
  1751.   # Edit the lines in the Configuration section below to select.
  1752.   #
  1753.   # To build: use the following command line:
  1754.   #
  1755.   #    mms/descrip=os_vms.mms
  1756. + #       or if you use mmk
  1757. + #    mmk/descrip=os_vms.mms
  1758.   #
  1759.   
  1760. ! ######################################################################
  1761.   # Configuration section.
  1762. ! ######################################################################
  1763.   
  1764.   # Comment out if you want just the character terminal mode only.
  1765.   GUI = YES
  1766.   
  1767. ! ######################################################################
  1768. ! # Comment out if you want the compiler version with :ver command.
  1769. ! # NOTE: This part can make some complications if you're using some 
  1770. ! # predefined symbols/flags for your compiler. If does, just leave behind
  1771. ! # the comment varialbe CCVER.
  1772. ! ######################################################################
  1773. ! CCVER = YES
  1774. ! ######################################################################
  1775. ! # Used to fix some dependecies problem during development.
  1776. ! # Normally, it should not be defined. !!!
  1777. ! ######################################################################
  1778. ! DEVELOPMENT = YES
  1779. ! ######################################################################
  1780. ! # Uncomment if want a debug version. Resulting executable is DVIM.EXE
  1781. ! ######################################################################
  1782.   # DEBUG = YES
  1783.   
  1784. + ######################################################################
  1785. + # Languages support as Perl, Python, TCL etc.
  1786. + # If you don't need it really, leave them behind the comment.
  1787. + # You will need special libs etc.
  1788. + ######################################################################
  1789. + # VIM_TCL    = YES
  1790. + # VIM_PERL   = YES
  1791. + # VIM_SNIFF  = YES
  1792. + # VIM_PYTHON = YES
  1793.   
  1794.   .IFDEF GUI
  1795. ! ######################################################################
  1796.   # X/Motif executable  (also works in terminal mode )
  1797. ! ######################################################################
  1798. ! DEFS     = "HAVE_CONFIG_H","USE_GUI_MOTIF"
  1799. ! LIBS     = ,OS_VMS.OPT/OPT
  1800.   CONFIG_H = gui_vms_conf.h
  1801. ! GUI_SRC  = gui.c gui_motif.c gui_x11.c
  1802. ! GUI_OBJ  = gui.obj gui_motif.obj gui_x11.obj
  1803. ! GUI_INC  = gui.h
  1804.   
  1805.   # These may need to be defined if things are not in standard locations:
  1806. ! # GUI_INC_DIR = decw$include:
  1807. ! # GUI_LIB_DIR = sys$library:
  1808. ! # X_LIB_DIR   =
  1809. ! # X_LIB       =
  1810. ! # EXTRA_LIB   =
  1811.   .ELSE
  1812. ! ######################################################################
  1813.   # Character terminal only executable
  1814. ! ######################################################################
  1815. ! DEFS     = "HAVE_CONFIG_H"
  1816. ! LIBS     =
  1817.   CONFIG_H = os_vms_conf.h
  1818.   .ENDIF
  1819. ! .IFDEF VIM_PERL
  1820. ! ######################################################################
  1821. ! # Perl related setup.
  1822. ! ######################################################################
  1823. ! PERL_DEF = ,"HAVE_PERL_INTERP"
  1824. ! PERL_SRC = if_perlsfio.c if_perl.xs
  1825. ! PERL_OBJ = if_perlsfio.obj if_perl.obj
  1826. ! PERL_LIB = 
  1827. ! .ENDIF
  1828. ! .IFDEF VIM_PYTHON
  1829. ! ######################################################################
  1830. ! # Python related setup. 
  1831. ! ######################################################################
  1832. ! PYTHON_DEF = ,"HAVE_PYTHON"
  1833. ! PYTHON_SRC = if_python.c
  1834. ! PYTHON_OBJ = if_python.obj
  1835. ! PYTHON_LIB =
  1836. ! .ENDIF
  1837. ! .IFDEF VIM_TCL
  1838. ! ######################################################################
  1839. ! # TCL related setup. 
  1840. ! ######################################################################
  1841. ! TCL_DEF = ,"HAVE_TCL"
  1842. ! TCL_SRC = if_tcl.c
  1843. ! TCL_OBJ = if_tcl.obj
  1844. ! TCL_LIB =
  1845. ! .ENDIF
  1846. ! .IFDEF VIM_SNIFF
  1847. ! ######################################################################
  1848. ! # SNIFF related setup. 
  1849. ! ######################################################################
  1850. ! SNIFF_DEF = ,"USE_SNIFF"
  1851. ! SNIFF_SRC = if_sniff.c
  1852. ! SNIFF_OBJ = if_sniff.obj
  1853. ! SNIFF_LIB = 
  1854. ! .ENDIF
  1855. ! ######################################################################
  1856. ! # End of configuration section.
  1857. ! #
  1858. ! # Please, do not change anything below without programming experience.
  1859. ! ######################################################################
  1860.   
  1861.   CC    = cc/decc
  1862.   LD    = link
  1863.   
  1864.   .IFDEF DEBUG
  1865. ! TARGET  = dvim.exe
  1866.   CFLAGS    = /debug/noopt/prefix=all/include=[.proto]
  1867. ! LDFLAGS    = /debug
  1868.   .ELSE
  1869. ! TARGET  = vim.exe
  1870.   CFLAGS    = /opt/prefix=all/include=[.proto]
  1871.   LDFLAGS    =
  1872.   .ENDIF
  1873.   
  1874.   
  1875.   ### These go into pathdef.c
  1876. ! VIMLOC  = ""
  1877. ! VIMRUN  = ""
  1878. ! VIMUSER = "''f$extract(f$locate(",",f$user())+1,f$length(f$user())-f$locate(",",f$user())-2,f$user())'"
  1879. ! 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")')"
  1880.   
  1881. +     
  1882.   ###
  1883.   ### GRAPHICAL USER INTERFACE (GUI).
  1884.   
  1885. + .SUFFIXES : .obj .c .pro .xs
  1886.   
  1887. ! ALL_CFLAGS = /def=($(DEFS) $(PERL_DEF) $(PYTHON_DEF) $(TCL_DEF) $(SNIFF_DEF)) $(CFLAGS)
  1888.   
  1889. ! ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(X_LIB_DIR) $(GUI_LIB) $(X_LIB) $(EXTRA_LIB)\
  1890. !        $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(SNIFF_LIB)
  1891.   
  1892. ! INCL =  vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_unix.h \
  1893.       unixunix.h structs.h proto.h osdef.h config.h \
  1894. !     $(GUI_INC)
  1895.   
  1896.   SRC =    buffer.c charset.c digraph.c edit.c eval.c ex_cmds.c ex_docmd.c \
  1897. !     ex_getln.c fileio.c getchar.c main.c mark.c menu.c multbyte.c \
  1898.       memfile.c memline.c message.c misc1.c misc2.c normal.c ops.c option.c \
  1899.       pty.c quickfix.c regexp.c search.c syntax.c tag.c term.c termlib.c \
  1900.       ui.c undo.c version.c screen.c window.c os_vms.c pathdef.c \
  1901. !     $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(SNIFF_SRC)
  1902.   
  1903.   OBJ =    buffer.obj charset.obj digraph.obj edit.obj eval.obj ex_cmds.obj \
  1904.       ex_docmd.obj ex_getln.obj fileio.obj getchar.obj \
  1905.       main.obj mark.obj menu.obj memfile.obj memline.obj message.obj misc1.obj \
  1906. !     misc2.obj multbyte.obj normal.obj ops.obj option.obj pty.obj quickfix.obj \
  1907.       regexp.obj search.obj syntax.obj tag.obj term.obj termlib.obj ui.obj \
  1908.       undo.obj screen.obj window.obj os_vms.obj pathdef.obj \
  1909. !     $(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) $(SNIFF_OBJ)
  1910.   
  1911.   # Default target is making the executable
  1912.   all : $(TARGET) mms_vim
  1913.       ! $@
  1914.   
  1915. ! .IFDEF DEVELOPMENT
  1916. ! config.h : $(CONFIG_H)
  1917. !     copy $(CONFIG_H) config.h
  1918. ! .ELSE
  1919. ! config.h : os_vms.mms $(CONFIG_H)
  1920.       copy $(CONFIG_H) config.h
  1921. + .ENDIF
  1922.   
  1923. ! osdef.h : os_vms_osdef.h
  1924.       copy os_vms_osdef.h osdef.h
  1925.   
  1926.   # Re-execute this os_vms.mms to include the new config.mk produced by
  1927. ***************
  1928. *** 140,145 ****
  1929. --- 216,250 ----
  1930.   .c.obj :
  1931.       $(CC) $(ALL_CFLAGS) $<
  1932.   
  1933. + .IFDEF CCVER
  1934. + #########################################################################
  1935. + # This part can make come complications if you're using some predefined
  1936. + # symbols/flags for your compiler. If does, just comment out _CCVER_ variable
  1937. + ##########################################################################
  1938. + pathdef.c : os_vms.mms $(CONFIG_H)
  1939. +     -@ define sys$output cc_ver.tmp
  1940. +     -@ cc/version
  1941. +     -@ deass sys$output
  1942. +     -@ open/read file cc_ver.tmp
  1943. +     -@ read file CC_VERSION
  1944. +     -@ close file
  1945. +     -@ del cc_ver.tmp.*
  1946. +     -@ write sys$output "creating pathdef.c (CCVER = YES)"
  1947. +     -@ open/write pd pathdef.c
  1948. +     -@ write pd "/* pathdef.c -- DO NOT EDIT! */"
  1949. +     -@ write pd "/* This file is automatically created by os_vms.mms"
  1950. +     -@ write pd " * Change the file os_vms.mms only. */"
  1951. +     -@ write pd "#include ""vim.h"""
  1952. +     -@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
  1953. +     -@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
  1954. +     -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)\nCompiler: ''CC_VERSION'"";"
  1955. +     -@ write pd "char_u *all_lflags = (char_u *)""$(LD) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)"";"
  1956. +     -@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";" 
  1957. +     -@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";"
  1958. +     -@ close pd
  1959. + .ELSE
  1960.   pathdef.c : os_vms.mms
  1961.       -@ write sys$output "creating pathdef.c"
  1962.       -@ open/write pd pathdef.c
  1963. ***************
  1964. *** 147,160 ****
  1965.       -@ write pd "/* This file is automatically created by os_vms.mms"
  1966.       -@ write pd " * Change the file os_vms.mms only. */"
  1967.       -@ write pd "#include ""vim.h"""
  1968. !     -@ write pd "char_u *default_vim_dir = (char_u *)""$(VIMLOC)"";"
  1969. !     -@ write pd "char_u *default_vimruntime_dir = (char_u *)"""";"
  1970.       -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)"";"
  1971.       -@ write pd "char_u *all_lflags = (char_u *)""$(LD) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)"";"
  1972.       -@ close pd
  1973.   
  1974.   os_vms.mms :
  1975. !     @ write sys$output "The name of the makefile MUST be <os_vms.mms> !!!!"
  1976.   
  1977.   cmdtab.h : cmdtab.tab mkcmdtab.exe
  1978.       mkcmdtab :== $sys$disk:[]mkcmdtab
  1979. --- 252,268 ----
  1980.       -@ write pd "/* This file is automatically created by os_vms.mms"
  1981.       -@ write pd " * Change the file os_vms.mms only. */"
  1982.       -@ write pd "#include ""vim.h"""
  1983. !     -@ write pd "char_u *default_vim_dir = (char_u *)"$(VIMLOC)";"
  1984. !     -@ write pd "char_u *default_vimruntime_dir = (char_u *)"$(VIMRUN)";"
  1985.       -@ write pd "char_u *all_cflags = (char_u *)""$(CC) /incl=[] $(ALL_CFLAGS)"";"
  1986.       -@ write pd "char_u *all_lflags = (char_u *)""$(LD) $(LDFLAGS) /exe=$(TARGET) $+ $(ALL_LIBS)"";"
  1987. +     -@ write pd "char_u *compiled_user = (char_u *) "$(VIMUSER)";"
  1988. +     -@ write pd "char_u *compiled_sys = (char_u *) "$(VIMHOST)";"
  1989.       -@ close pd
  1990. + .ENDIF
  1991.   
  1992.   os_vms.mms :
  1993. !     @ write sys$output "The name of the makefile MUST be <OS_VMS.MMS> !!!!"
  1994.   
  1995.   cmdtab.h : cmdtab.tab mkcmdtab.exe
  1996.       mkcmdtab :== $sys$disk:[]mkcmdtab
  1997. ***************
  1998. *** 166,313 ****
  1999.       $(CC) $(ALL_CFLAGS) mkcmdtab.c
  2000.   
  2001.   ###############################################################################
  2002. ! ui.obj :    ui.c vim.h
  2003.       $(CC) $(ALL_CFLAGS) $<
  2004. ! syntax.obj :    syntax.c vim.h
  2005.       $(CC) $(ALL_CFLAGS) $<
  2006. ! misc1.obj :    misc1.c vim.h
  2007.       $(CC) $(ALL_CFLAGS) $<
  2008. ! misc2.obj :    misc2.c vim.h
  2009.       $(CC) $(ALL_CFLAGS) $<
  2010. ! ex_getln.obj :    ex_getln.c vim.h
  2011.       $(CC) $(ALL_CFLAGS) $<
  2012. ! ex_docmd.obj :    ex_docmd.c vim.h ex_cmds.h
  2013.       $(CC) $(ALL_CFLAGS) $<
  2014. ! ex_cmds.obj :    ex_cmds.c vim.h
  2015.       $(CC) $(ALL_CFLAGS) $<
  2016. ! alloc.obj :    alloc.c vim.h config.h feature.h os_unix.h osdef.h \
  2017. !         ascii.h keymap.h term.h macros.h structs.h gui.h \
  2018. !         globals.h proto.h regexp.h
  2019.       $(CC) $(ALL_CFLAGS) $<
  2020. ! buffer.obj :    buffer.c vim.h config.h feature.h os_unix.h osdef.h \
  2021. !         ascii.h keymap.h term.h macros.h structs.h gui.h \
  2022. !         globals.h proto.h regexp.h option.h
  2023.       $(CC) $(ALL_CFLAGS) $<
  2024. ! charset.obj :    charset.c vim.h config.h feature.h os_unix.h osdef.h \
  2025. !         ascii.h keymap.h term.h macros.h structs.h gui.h \
  2026. !         globals.h proto.h regexp.h option.h
  2027.       $(CC) $(ALL_CFLAGS) $<
  2028.   cmdcmds.obj : cmdcmds.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2029. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2030.       $(CC) $(ALL_CFLAGS) $<
  2031.   cmdline.obj : cmdline.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2032. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h cmdtab.h
  2033.       $(CC) $(ALL_CFLAGS) $<
  2034.   csearch.obj : csearch.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2035. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2036.       $(CC) $(ALL_CFLAGS) $<
  2037.   digraph.obj : digraph.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2038. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2039.       $(CC) $(ALL_CFLAGS) $<
  2040. ! edit.obj :    edit.c vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2041. !         keymap.h term.h macros.h structs.h gui.h globals.h proto.h \
  2042. !         regexp.h option.h
  2043.       $(CC) $(ALL_CFLAGS) $<
  2044.   fileio.obj : fileio.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2045. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2046.       $(CC) $(ALL_CFLAGS) $<
  2047.   getchar.obj : getchar.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2048. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2049.       $(CC) $(ALL_CFLAGS) $<
  2050.   help.obj : help.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2051. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2052.       $(CC) $(ALL_CFLAGS) $<
  2053.   linefunc.obj : linefunc.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2054. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h
  2055.       $(CC) $(ALL_CFLAGS) $<
  2056.   main.obj : main.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2057. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2058.       $(CC) $(ALL_CFLAGS) $<
  2059.   mark.obj : mark.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2060. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2061.       $(CC) $(ALL_CFLAGS) $<
  2062.   menu.obj : menu.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2063. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2064.       $(CC) $(ALL_CFLAGS) $<
  2065.   memfile.obj : memfile.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2066. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2067.       $(CC) $(ALL_CFLAGS) $<
  2068.   memline.obj : memline.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2069. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2070.       $(CC) $(ALL_CFLAGS) $<
  2071.   message.obj : message.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2072. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2073.       $(CC) $(ALL_CFLAGS) $<
  2074.   misccmds.obj : misccmds.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2075. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2076.       $(CC) $(ALL_CFLAGS) $<
  2077.   normal.obj : normal.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2078. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2079.       $(CC) $(ALL_CFLAGS) $<
  2080.   ops.obj : ops.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2081. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2082.       $(CC) $(ALL_CFLAGS) $<
  2083.   option.obj : option.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2084. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2085.       $(CC) $(ALL_CFLAGS) $<
  2086.   pathdef.obj : pathdef.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2087. !   term.h macros.h structs.h gui.h
  2088.       $(CC) $(ALL_CFLAGS) $<
  2089.   eval.obj : eval.c vim.h
  2090.       $(CC) $(ALL_CFLAGS) $<
  2091.   quickfix.obj : quickfix.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2092. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2093.       $(CC) $(ALL_CFLAGS) $<
  2094.   regexp.obj : regexp.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2095. !          term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2096.       $(CC) $(ALL_CFLAGS) $<
  2097.   regsub.obj : regsub.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2098. !          term.h macros.h structs.h gui.h globals.h proto.h regexp.h
  2099.       $(CC) $(ALL_CFLAGS) $<
  2100.   screen.obj : screen.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2101. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2102.       $(CC) $(ALL_CFLAGS) $<
  2103.   search.obj : search.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2104. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2105.       $(CC) $(ALL_CFLAGS) $<
  2106.   tables.obj : tables.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2107. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2108.       $(CC) $(ALL_CFLAGS) $<
  2109.   tag.obj : tag.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2110. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2111.       $(CC) $(ALL_CFLAGS) $<
  2112.   term.obj : term.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2113. !        term.h macros.h structs.h gui.h globals.h option.h proto.h regexp.h
  2114.       $(CC) $(ALL_CFLAGS) $<
  2115. ! termlib.obj : termlib.c vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2116. !           keymap.h term.h macros.h structs.h gui.h globals.h option.h \
  2117. !           proto.h regexp.h [.proto]termlib.pro
  2118.       $(CC) $(ALL_CFLAGS) $<
  2119. ! undo.obj :    undo.c vim.h config.h feature.h os_unix.h osdef.h \
  2120. !         ascii.h keymap.h term.h macros.h structs.h gui.h \
  2121. !         globals.h proto.h regexp.h option.h
  2122.       $(CC) $(ALL_CFLAGS) $<
  2123. ! os_vms.obj :    os_vms.c vim.h globals.h option.h proto.h
  2124.       $(CC) $(ALL_CFLAGS) $<
  2125. ! window.obj :    window.c vim.h config.h feature.h os_unix.h osdef.h \
  2126. !         ascii.h keymap.h term.h macros.h structs.h gui.h \
  2127. !         globals.h proto.h regexp.h option.h
  2128.       $(CC) $(ALL_CFLAGS) $<
  2129. ! version.obj :    version.c version.h vim.h config.h feature.h os_unix.h \
  2130. !         osdef.h ascii.h keymap.h term.h macros.h structs.h gui.h
  2131.       $(CC) $(ALL_CFLAGS) $<
  2132.   gui.obj : gui.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2133. !   macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2134.       $(CC) $(ALL_CFLAGS) $<
  2135.   gui_motif.obj : gui_motif.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2136. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2137.       $(CC) $(ALL_CFLAGS) $<
  2138.   gui_x11.obj : gui_x11.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2139. !   term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2140.       $(CC) $(ALL_CFLAGS) $<
  2141. ! pty.obj :    pty.c vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2142. !             keymap.h term.h macros.h structs.h gui.h proto.h regexp.h
  2143.       $(CC) $(ALL_CFLAGS) $<
  2144.   mms_vim :    mms_vim.exe
  2145.       !
  2146. --- 274,432 ----
  2147.       $(CC) $(ALL_CFLAGS) mkcmdtab.c
  2148.   
  2149.   ###############################################################################
  2150. ! ui.obj : ui.c vim.h
  2151.       $(CC) $(ALL_CFLAGS) $<
  2152. ! syntax.obj : syntax.c vim.h
  2153.       $(CC) $(ALL_CFLAGS) $<
  2154. ! misc1.obj : misc1.c vim.h
  2155.       $(CC) $(ALL_CFLAGS) $<
  2156. ! misc2.obj : misc2.c vim.h
  2157.       $(CC) $(ALL_CFLAGS) $<
  2158. ! ex_getln.obj : ex_getln.c vim.h
  2159.       $(CC) $(ALL_CFLAGS) $<
  2160. ! ex_docmd.obj : ex_docmd.c vim.h ex_cmds.h
  2161.       $(CC) $(ALL_CFLAGS) $<
  2162. ! ex_cmds.obj : ex_cmds.c vim.h
  2163.       $(CC) $(ALL_CFLAGS) $<
  2164. ! alloc.obj : alloc.c vim.h config.h feature.h os_unix.h osdef.h \
  2165. !     ascii.h keymap.h term.h macros.h structs.h gui.h globals.h proto.h regexp.h
  2166.       $(CC) $(ALL_CFLAGS) $<
  2167. ! buffer.obj : buffer.c vim.h config.h feature.h os_unix.h osdef.h \
  2168. !     ascii.h keymap.h term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2169.       $(CC) $(ALL_CFLAGS) $<
  2170. ! charset.obj : charset.c vim.h config.h feature.h os_unix.h osdef.h \
  2171. !     ascii.h keymap.h term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2172.       $(CC) $(ALL_CFLAGS) $<
  2173.   cmdcmds.obj : cmdcmds.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2174. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2175.       $(CC) $(ALL_CFLAGS) $<
  2176.   cmdline.obj : cmdline.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2177. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h cmdtab.h
  2178.       $(CC) $(ALL_CFLAGS) $<
  2179.   csearch.obj : csearch.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2180. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2181.       $(CC) $(ALL_CFLAGS) $<
  2182.   digraph.obj : digraph.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2183. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2184.       $(CC) $(ALL_CFLAGS) $<
  2185. ! edit.obj : edit.c vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2186. !     keymap.h term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2187.       $(CC) $(ALL_CFLAGS) $<
  2188.   fileio.obj : fileio.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2189. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2190.       $(CC) $(ALL_CFLAGS) $<
  2191.   getchar.obj : getchar.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2192. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2193.       $(CC) $(ALL_CFLAGS) $<
  2194.   help.obj : help.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2195. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2196.       $(CC) $(ALL_CFLAGS) $<
  2197.   linefunc.obj : linefunc.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2198. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h
  2199.       $(CC) $(ALL_CFLAGS) $<
  2200.   main.obj : main.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2201. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2202.       $(CC) $(ALL_CFLAGS) $<
  2203.   mark.obj : mark.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2204. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2205.       $(CC) $(ALL_CFLAGS) $<
  2206.   menu.obj : menu.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2207. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2208.       $(CC) $(ALL_CFLAGS) $<
  2209.   memfile.obj : memfile.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2210. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2211.       $(CC) $(ALL_CFLAGS) $<
  2212.   memline.obj : memline.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2213. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2214.       $(CC) $(ALL_CFLAGS) $<
  2215.   message.obj : message.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2216. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2217.       $(CC) $(ALL_CFLAGS) $<
  2218.   misccmds.obj : misccmds.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2219. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2220. !     $(CC) $(ALL_CFLAGS) $<
  2221. ! multbyte.obj : multbyte.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2222. !     term.h macros.h regexp.h structs.h gui.h globals.h farsi.h option.h ex_cmds.h proto.h
  2223.       $(CC) $(ALL_CFLAGS) $<
  2224.   normal.obj : normal.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2225. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2226.       $(CC) $(ALL_CFLAGS) $<
  2227.   ops.obj : ops.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2228. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2229.       $(CC) $(ALL_CFLAGS) $<
  2230.   option.obj : option.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2231. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2232.       $(CC) $(ALL_CFLAGS) $<
  2233.   pathdef.obj : pathdef.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2234. !     term.h macros.h structs.h gui.h
  2235.       $(CC) $(ALL_CFLAGS) $<
  2236.   eval.obj : eval.c vim.h
  2237.       $(CC) $(ALL_CFLAGS) $<
  2238. + if_perl.obj : if_perl.xs vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2239. +     macros.h regexp.h structs.h gui.h globals.h farsi.h option.h ex_cmds.h proto.h
  2240. +     $(CC) $(ALL_CFLAGS) $<
  2241. + if_perlsfio.obj : if_perlsfio.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2242. +     term.h macros.h regexp.h structs.h gui.h globals.h farsi.h option.h ex_cmds.h proto.h
  2243. +     $(CC) $(ALL_CFLAGS) $<
  2244. + if_python.obj : if_python.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \ 
  2245. +     term.h macros.h regexp.h structs.h gui.h globals.h farsi.h option.h ex_cmds.h proto.h
  2246. +     $(CC) $(ALL_CFLAGS) $<
  2247. + if_tcl.obj : if_tcl.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2248. +     macros.h regexp.h structs.h gui.h globals.h farsi.h option.h ex_cmds.h proto.h
  2249. +     $(CC) $(ALL_CFLAGS) $<
  2250. + if_sniff.obj : if_sniff.c if_sniff.h vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2251. +     keymap.h term.h macros.h regexp.h structs.h gui.h globals.h farsi.h option.h \
  2252. +     ex_cmds.h proto.h
  2253. +     $(CC) $(ALL_CFLAGS) $<
  2254.   quickfix.obj : quickfix.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2255. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2256.       $(CC) $(ALL_CFLAGS) $<
  2257.   regexp.obj : regexp.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2258. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2259.       $(CC) $(ALL_CFLAGS) $<
  2260.   regsub.obj : regsub.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2261. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h
  2262.       $(CC) $(ALL_CFLAGS) $<
  2263.   screen.obj : screen.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2264. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2265.       $(CC) $(ALL_CFLAGS) $<
  2266.   search.obj : search.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2267. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2268.       $(CC) $(ALL_CFLAGS) $<
  2269.   tables.obj : tables.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2270. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2271.       $(CC) $(ALL_CFLAGS) $<
  2272.   tag.obj : tag.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2273. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2274.       $(CC) $(ALL_CFLAGS) $<
  2275.   term.obj : term.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2276. !     term.h macros.h structs.h gui.h globals.h option.h proto.h regexp.h
  2277.       $(CC) $(ALL_CFLAGS) $<
  2278. ! termlib.obj : termlib.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2279. !     macros.h structs.h gui.h globals.h option.h proto.h regexp.h [.proto]termlib.pro
  2280.       $(CC) $(ALL_CFLAGS) $<
  2281. ! undo.obj : undo.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2282. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2283.       $(CC) $(ALL_CFLAGS) $<
  2284. ! os_vms.obj : os_vms.c vim.h globals.h option.h proto.h
  2285.       $(CC) $(ALL_CFLAGS) $<
  2286. ! window.obj : window.c vim.h config.h feature.h os_unix.h osdef.h \
  2287. !     ascii.h keymap.h term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2288.       $(CC) $(ALL_CFLAGS) $<
  2289. ! version.obj : version.c version.h vim.h config.h feature.h os_unix.h \
  2290. !     osdef.h ascii.h keymap.h term.h macros.h structs.h gui.h
  2291.       $(CC) $(ALL_CFLAGS) $<
  2292.   gui.obj : gui.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h term.h \
  2293. !     macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2294.       $(CC) $(ALL_CFLAGS) $<
  2295.   gui_motif.obj : gui_motif.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2296. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2297.       $(CC) $(ALL_CFLAGS) $<
  2298.   gui_x11.obj : gui_x11.c vim.h config.h feature.h os_unix.h osdef.h ascii.h keymap.h \
  2299. !     term.h macros.h structs.h gui.h globals.h proto.h regexp.h option.h
  2300.       $(CC) $(ALL_CFLAGS) $<
  2301. ! pty.obj : pty.c vim.h config.h feature.h os_unix.h osdef.h ascii.h \
  2302. !     keymap.h term.h macros.h structs.h gui.h proto.h regexp.h
  2303.       $(CC) $(ALL_CFLAGS) $<
  2304.   mms_vim :    mms_vim.exe
  2305.       !
  2306. *** ../vim-5.6.44/src/tag.c    Thu Jan 13 14:14:32 2000
  2307. --- src/tag.c    Wed Mar 29 18:38:32 2000
  2308. ***************
  2309. *** 2614,2628 ****
  2310.       {
  2311.       /* At this point "p" is pointing to the char following a "/". */
  2312.   #ifdef VMS
  2313. !     /* VMS allows disk:[directory - don't strip the [ in directory */
  2314. !     if (*p == '[' && p > filename && p[-1] == ':')
  2315.       {
  2316. !         ++components;        /* vms directory component */
  2317.           p = getnextcomp(p + 1);
  2318.       }
  2319.       else
  2320.   #endif
  2321. !     if (vim_ispathsep(*p))
  2322.           movetail(p, p + 1);        /* remove duplicate "/" */
  2323.       else if (p[0] == '.' && vim_ispathsep(p[1]))
  2324.           movetail(p, p + 2);        /* strip "./" */
  2325. --- 2613,2636 ----
  2326.       {
  2327.       /* At this point "p" is pointing to the char following a "/". */
  2328.   #ifdef VMS
  2329. !     /* VMS allows device:[path] - don't strip the [ in directory  */
  2330. !     if ((*p == '[' || *p == '<') && p > filename && p[-1] == ':')
  2331.       {
  2332. !         /* :[ or :< composition: vms directory component */
  2333. !         ++components;
  2334.           p = getnextcomp(p + 1);
  2335.       }
  2336. +     /* allow remote calls as host"user passwd"::device:[path]        */
  2337. +     else if (p[0] == ':' && p[1] == ':' && p > filename && p[-1] == '"' )
  2338. +     {
  2339. +         /* ":: composition: vms host/passwd component */
  2340. +         ++components;
  2341. +         p = getnextcomp(p + 2);
  2342. +     }
  2343.       else
  2344.   #endif
  2345. !       if (vim_ispathsep(*p))
  2346.           movetail(p, p + 1);        /* remove duplicate "/" */
  2347.       else if (p[0] == '.' && vim_ispathsep(p[1]))
  2348.           movetail(p, p + 2);        /* strip "./" */
  2349. *** ../vim-5.6.44/src/term.c    Tue Mar 28 17:54:16 2000
  2350. --- src/term.c    Thu Mar 30 16:13:58 2000
  2351. ***************
  2352. *** 701,706 ****
  2353. --- 701,776 ----
  2354.       {K_KMULTIPLY,    "\3167"},
  2355.   # endif
  2356.   
  2357. + # if defined(VMS) || defined(ALL_BUILTIN_TCAPS)
  2358. + /*
  2359. +  * VT320 is working as an ANSI terminal compatible DEC terminal.
  2360. +  * (it covers VT1x0, VT2x0 and VT3x0 up to VT320 on VMS as well)
  2361. +  * Note: K_F1...K_F5 are for internal use, should not be defined.
  2362. +  * TODO:- rewrite ESC[ codes to CSI
  2363. +  *      - keyboard languages (CSI ? 26 n)
  2364. +  */
  2365. +     {(int)KS_NAME,    "vt320"},
  2366. +     {(int)KS_CE,    "\033[K"},
  2367. +     {(int)KS_AL,    "\033[L"},
  2368. + #  ifdef TERMINFO
  2369. +     {(int)KS_CAL,    "\033[%p1%dL"},
  2370. + #  else
  2371. +     {(int)KS_CAL,    "\033[%dL"},
  2372. + #  endif
  2373. +     {(int)KS_DL,    "\033[M"},
  2374. + #  ifdef TERMINFO
  2375. +     {(int)KS_CDL,    "\033[%p1%dM"},
  2376. + #  else
  2377. +     {(int)KS_CDL,    "\033[%dM"},
  2378. + #  endif
  2379. +     {(int)KS_CL,    "\033[H\033[2J"},
  2380. +     {(int)KS_ME,    "\033[0m"},
  2381. +     {(int)KS_MR,    "\033[7m"},
  2382. +     {(int)KS_MS,    "y"},
  2383. +     {(int)KS_LE,    "\010"},
  2384. + #  ifdef TERMINFO
  2385. +     {(int)KS_CM,    "\033[%i%p1%d;%p2%dH"},
  2386. + #  else
  2387. +     {(int)KS_CM,    "\033[%i%d;%dH"},
  2388. + #  endif
  2389. + #  ifdef TERMINFO
  2390. +     {(int)KS_CRI,    "\033[%p1%dC"},
  2391. + #  else
  2392. +     {(int)KS_CRI,    "\033[%dC"},
  2393. + #  endif
  2394. +     {K_UP,        "\033[A"},
  2395. +     {K_DOWN,        "\033[B"},
  2396. +     {K_RIGHT,        "\033[C"},
  2397. +     {K_LEFT,        "\033[D"},
  2398. +     {K_F6,        "\033[17~"},
  2399. +     {K_F7,        "\033[18~"},
  2400. +     {K_F8,        "\033[19~"},
  2401. +     {K_F9,        "\033[20~"},
  2402. +     {K_F10,        "\033[21~"},
  2403. + /*  {K_F11,        "\033[23~"},   (ESC) should not define, sometimes does not work */
  2404. +     {K_F12,        "\033[24~"},
  2405. +     {K_F13,        "\033[25~"},
  2406. +     {K_F14,        "\033[26~"},
  2407. +     {K_F15,        "\033[28~"},    /* Help */
  2408. +     {K_F16,        "\033[29~"},    /* Select */
  2409. +     {K_F17,        "\033[31~"},
  2410. +     {K_F18,        "\033[32~"},
  2411. +     {K_F19,        "\033[33~"},
  2412. +     {K_F20,        "\033[34~"},
  2413. +     {K_INS,        "\033[2~"},
  2414. +     {K_DEL,        "\033[3~"},
  2415. +     {K_HOME,        "\033[1~"},
  2416. +     {K_END,        "\033[4~"},
  2417. +     {K_PAGEUP,        "\033[5~"},
  2418. +     {K_PAGEDOWN,    "\033[6~"},
  2419. +     {K_KPLUS,        "\033Ok"},    /* keypad plus */
  2420. +     {K_KMINUS,        "\033Om"},    /* keypad minus */
  2421. +     {K_KDIVIDE,        "\033Oo"},    /* keypad / */
  2422. +     {K_KMULTIPLY,    "\033Oj"},    /* keypad * */
  2423. +     {K_KENTER,        "\033OM"},    /* keypad Enter */
  2424. +     {K_BS,        "\x7f"},    /* for some reason 0177 doesn't work */
  2425. + # endif
  2426.   # if defined(ALL_BUILTIN_TCAPS) || defined(__MINT__)
  2427.   /*
  2428.    * Ordinary vt52
  2429. ***************
  2430. *** 1197,1203 ****
  2431.   #endif
  2432.   
  2433.   #ifdef VMS
  2434. ! # define DEFAULT_TERM    (char_u *)"ansi"
  2435.   #endif
  2436.   
  2437.   #ifdef __BEOS__
  2438. --- 1267,1273 ----
  2439.   #endif
  2440.   
  2441.   #ifdef VMS
  2442. ! # define DEFAULT_TERM    (char_u *)"vt320"
  2443.   #endif
  2444.   
  2445.   #ifdef __BEOS__
  2446. ***************
  2447. *** 1237,1243 ****
  2448.           return p;
  2449.           else
  2450.   #endif
  2451. !         if (STRCMP(term, p->bt_string) == 0)
  2452.               return p;
  2453.       }
  2454.       ++p;
  2455. --- 1307,1318 ----
  2456.           return p;
  2457.           else
  2458.   #endif
  2459. ! #ifdef VMS
  2460. !         if (STRCMP(p->bt_string, "vt320") == 0 && vim_is_vt300(term))
  2461. !             return p;
  2462. !         else
  2463. ! #endif
  2464. !           if (STRCMP(term, p->bt_string) == 0)
  2465.               return p;
  2466.       }
  2467.       ++p;
  2468. ***************
  2469. *** 1610,1616 ****
  2470.       }
  2471.   
  2472.   #ifdef USE_MOUSE
  2473. ! # ifdef UNIX
  2474.       /*
  2475.        * For Unix, set the 'ttymouse' option to the type of mouse to be used.
  2476.        * The termcode for the mouse is added as a side effect in option.c.
  2477. --- 1685,1691 ----
  2478.       }
  2479.   
  2480.   #ifdef USE_MOUSE
  2481. ! # if defined(UNIX) || defined(VMS)
  2482.       /*
  2483.        * For Unix, set the 'ttymouse' option to the type of mouse to be used.
  2484.        * The termcode for the mouse is added as a side effect in option.c.
  2485. ***************
  2486. *** 1676,1682 ****
  2487.       }
  2488.   #endif
  2489.   
  2490. ! #ifdef UNIX
  2491.   /*
  2492.    * 'ttyfast' is default on for xterm, iris-ansi and a few others.
  2493.    */
  2494. --- 1751,1757 ----
  2495.       }
  2496.   #endif
  2497.   
  2498. ! #if defined(UNIX) || defined(VMS)
  2499.   /*
  2500.    * 'ttyfast' is default on for xterm, iris-ansi and a few others.
  2501.    */
  2502. ***************
  2503. *** 1791,1797 ****
  2504.   }
  2505.   # endif
  2506.   
  2507. ! # if ((defined(UNIX) || defined(OS2)) && (defined(XTERM_MOUSE) \
  2508.           || defined(DEC_MOUSE) || defined(GPM_MOUSE))) || defined(PROTO)
  2509.       void
  2510.   del_mouse_termcode(n)
  2511. --- 1866,1872 ----
  2512.   }
  2513.   # endif
  2514.   
  2515. ! # if ((defined(UNIX) || defined(VMS) || defined(OS2)) && (defined(XTERM_MOUSE) \
  2516.           || defined(DEC_MOUSE) || defined(GPM_MOUSE))) || defined(PROTO)
  2517.       void
  2518.   del_mouse_termcode(n)
  2519. ***************
  2520. *** 2746,2752 ****
  2521.   
  2522.   #ifdef HAVE_TGETENT
  2523.       /* Request version string (for xterm) just after switching to raw mode
  2524. !      * (otherwise the result will be echoed).  The result it caught in
  2525.        * check_termcode(). */
  2526.       if (cur_tmode == TMODE_RAW && need_get_crv && *T_CRV)
  2527.       {
  2528. --- 2821,2827 ----
  2529.   
  2530.   #ifdef HAVE_TGETENT
  2531.       /* Request version string (for xterm) just after switching to raw mode
  2532. !      * (otherwise the result will be echoed).  The result is caught in
  2533.        * check_termcode(). */
  2534.       if (cur_tmode == TMODE_RAW && need_get_crv && *T_CRV)
  2535.       {
  2536. *** ../vim-5.6.44/src/version.c    Fri Mar 31 10:58:32 2000
  2537. --- src/version.c    Fri Mar 31 14:09:14 2000
  2538. ***************
  2539. *** 156,162 ****
  2540.   #if !defined(USE_SYSTEM) && defined(UNIX)
  2541.       "+fork()",
  2542.   #endif
  2543. ! #ifdef UNIX
  2544.   # ifdef USE_GUI_GTK
  2545.       "+GUI_GTK",
  2546.   # else
  2547. --- 156,162 ----
  2548.   #if !defined(USE_SYSTEM) && defined(UNIX)
  2549.       "+fork()",
  2550.   #endif
  2551. ! #if defined(UNIX) || defined(VMS)
  2552.   # ifdef USE_GUI_GTK
  2553.       "+GUI_GTK",
  2554.   # else
  2555. ***************
  2556. *** 220,236 ****
  2557.   # else
  2558.       "-mouse",
  2559.   #endif
  2560. ! #ifdef UNIX
  2561.   # ifdef DEC_MOUSE
  2562.       "+mouse_dec",
  2563.   # else
  2564.       "-mouse_dec",
  2565.   # endif
  2566. ! #ifdef GPM_MOUSE
  2567.       "+mouse_gpm",
  2568. ! #else
  2569.       "-mouse_gpm",
  2570. ! #endif
  2571.   # ifdef NETTERM_MOUSE
  2572.       "+mouse_netterm",
  2573.   # else
  2574. --- 220,236 ----
  2575.   # else
  2576.       "-mouse",
  2577.   #endif
  2578. ! #if defined(UNIX) || defined(VMS)
  2579.   # ifdef DEC_MOUSE
  2580.       "+mouse_dec",
  2581.   # else
  2582.       "-mouse_dec",
  2583.   # endif
  2584. ! # ifdef GPM_MOUSE
  2585.       "+mouse_gpm",
  2586. ! # else
  2587.       "-mouse_gpm",
  2588. ! # endif
  2589.   # ifdef NETTERM_MOUSE
  2590.       "+mouse_netterm",
  2591.   # else
  2592. ***************
  2593. *** 381,387 ****
  2594.   #else
  2595.       "-writebackup",
  2596.   #endif
  2597. ! #ifdef UNIX
  2598.   # if defined(WANT_X11) && defined(HAVE_X11)
  2599.       "+X11",
  2600.   # else
  2601. --- 381,387 ----
  2602.   #else
  2603.       "-writebackup",
  2604.   #endif
  2605. ! #if defined(UNIX) || defined(VMS)
  2606.   # if defined(WANT_X11) && defined(HAVE_X11)
  2607.       "+X11",
  2608.   # else
  2609. ***************
  2610. *** 420,421 ****
  2611. --- 420,423 ----
  2612.   {   /* Add new patch number below this line */
  2613. + /**/
  2614. +     45,
  2615.   /**/
  2616. ***************
  2617. *** 609,615 ****
  2618.       }
  2619.       }
  2620.   
  2621. ! #ifdef UNIX
  2622.       MSG_PUTS("\nCompiled by ");
  2623.       MSG_PUTS(compiled_user);
  2624.       MSG_PUTS("@");
  2625. --- 611,617 ----
  2626.       }
  2627.       }
  2628.   
  2629. ! #if defined(UNIX) || defined(VMS)
  2630.       MSG_PUTS("\nCompiled by ");
  2631.       MSG_PUTS(compiled_user);
  2632.       MSG_PUTS("@");
  2633. ***************
  2634. *** 686,697 ****
  2635.   # endif
  2636.   #endif
  2637.   #ifdef HAVE_PATHDEF
  2638. !     version_msg("  fall-back for $VIM: \"");
  2639. !     version_msg((char *)default_vim_dir);
  2640. !     MSG_PUTS("\"\n");
  2641.       if (*default_vimruntime_dir != NUL)
  2642.       {
  2643. !     version_msg(" and for $VIMRUNTIME: \"");
  2644.       version_msg((char *)default_vimruntime_dir);
  2645.       MSG_PUTS("\"\n");
  2646.       }
  2647. --- 688,702 ----
  2648.   # endif
  2649.   #endif
  2650.   #ifdef HAVE_PATHDEF
  2651. !     if (*default_vim_dir != NUL)
  2652. !     {
  2653. !     version_msg("  fall-back for $VIM: \"");
  2654. !     version_msg((char *)default_vim_dir);
  2655. !     MSG_PUTS("\"\n");
  2656. !     }
  2657.       if (*default_vimruntime_dir != NUL)
  2658.       {
  2659. !     version_msg(" f-b for $VIMRUNTIME: \"");
  2660.       version_msg((char *)default_vimruntime_dir);
  2661.       MSG_PUTS("\"\n");
  2662.       }
  2663.  
  2664. -- 
  2665. ROBIN:  The what?
  2666. ARTHUR: The Holy Hand Grenade of Antioch.  'Tis one of the sacred relics
  2667.         Brother Maynard always carries with him.
  2668. ALL:    Yes. Of course.
  2669. ARTHUR: (shouting) Bring up the Holy Hand Grenade!
  2670.                  "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
  2671.  
  2672. /-/-- Bram Moolenaar --- Bram@moolenaar.net --- http://www.moolenaar.net --\-\
  2673. \-\-- Vim: http://www.vim.org ---- ICCF Holland: http://www.vim.org/iccf --/-/
  2674.