patch 8.1.1306: Borland support is outdated and doesn't work

Problem:    Borland support is outdated and doesn't work.
Solution:   Remove Borland support, there are other (free) compilers
            available. (Thomas Dziedzic, Ken Takata, closes #4364)
diff --git a/.gitignore b/.gitignore
index 5767bae..188636c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,14 +43,6 @@
 runtime/doc/uganda.nsis.txt
 nsis/icons/*
 
-# Borland C++
-bcc.cfg
-*.ilc
-*.ild
-*.ilf
-*.ils
-*.tds
-
 # NetBeans
 nbproject/*
 
diff --git a/.hgignore b/.hgignore
index 8b5c5ed..a48b3b9 100644
--- a/.hgignore
+++ b/.hgignore
@@ -45,14 +45,6 @@
 runtime/doc/uganda.nsis.txt
 nsis/icons/*
 
-# Borland C++
-bcc.cfg
-*.ilc
-*.ild
-*.ilf
-*.ils
-*.tds
-
 # NetBeans
 nbproject/*
 
diff --git a/Filelist b/Filelist
index 046a9a7..4f73cc7 100644
--- a/Filelist
+++ b/Filelist
@@ -421,7 +421,6 @@
 		src/GvimExt/uninst.bat \
 		README_srcdos.txt \
 		src/INSTALLpc.txt \
-		src/Make_bc5.mak \
 		src/Make_cyg.mak \
 		src/Make_cyg_ming.mak \
 		src/Make_ming.mak \
@@ -474,7 +473,6 @@
 		src/xpm_w32.c \
 		src/xpm_w32.h \
 		src/tee/Make_mvc.mak \
-		src/xxd/Make_bc5.mak \
 		src/xxd/Make_ming.mak \
 		src/xxd/Make_mvc.mak \
 		nsis/gvim.nsi \
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 37a5772..4564565 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -80,9 +80,8 @@
 
 If you have Visual Studio, use that instead of the VC Toolkit and WinDbg.
 
-For other compilers, you should always use the corresponding debugger: TD for
-a Vim executable compiled with the Borland compiler; gdb (see above
-|debug-gcc|) for the Cygwin and MinGW compilers.
+For other compilers, you should always use the corresponding debugger: gdb
+(see above |debug-gcc|) for the Cygwin and MinGW compilers.
 
 
 								*debug-vs2005*
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 2d0cc22..9c7867c 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -278,7 +278,6 @@
 index		shadows global declaration
 time		shadows global declaration
 new		C++ reserved keyword
-try		Borland C++ doesn't like it to be used as a variable.
 
 clear		Mac curses.h
 echo		Mac curses.h
diff --git a/runtime/doc/usr_90.txt b/runtime/doc/usr_90.txt
index a5b4292..087de8f 100644
--- a/runtime/doc/usr_90.txt
+++ b/runtime/doc/usr_90.txt
@@ -281,9 +281,8 @@
 In case you are not satisfied with the features included in the supplied
 binaries, you could try compiling Vim yourself.  Get the source archive from
 the same location as where the binaries are.  You need a compiler for which a
-makefile exists.  Microsoft Visual C works, but is expensive.  The Free
-Borland command-line compiler 5.5 can be used, as well as the free MingW and
-Cygwin compilers.  Check the file src/INSTALLpc.txt for hints.
+makefile exists.  Microsoft Visual C works, but is expensive.  The free MinGW
+and Cygwin compilers can be used.  Check the file src/INSTALLpc.txt for hints.
 
 ==============================================================================
 *90.3*	Upgrading
diff --git a/src/GvimExt/Make_bc5.mak b/src/GvimExt/Make_bc5.mak
deleted file mode 100644
index 363c6d6..0000000
--- a/src/GvimExt/Make_bc5.mak
+++ /dev/null
@@ -1,43 +0,0 @@
-### USEDLL  no for statically linked version of run-time, yes for DLL runtime
-### BOR	    path to root of Borland C install (c:\bc5)
-
-### (requires cc3250.dll be available in %PATH%)
-!if ("$(USEDLL)"=="")
-USEDLL = no
-!endif
-
-### BOR: root of the BC installation
-!if ("$(BOR)"=="")
-BOR = c:\bc5
-!endif
-
-CC	= $(BOR)\bin\Bcc32
-BRC	= $(BOR)\bin\brc32
-LINK	= $(BOR)\BIN\ILink32
-INCLUDE = $(BOR)\include;.
-LIB	= $(BOR)\lib
-
-!if ("$(USEDLL)"=="yes")
-RT_DEF = -D_RTLDLL
-RT_LIB = cw32i.lib
-!else
-RT_DEF =
-RT_LIB = cw32.lib
-!endif
-
-
-all : gvimext.dll
-
-gvimext.obj : gvimext.cpp gvimext.h
-	$(CC) -tWD -I$(INCLUDE) -c -DFEAT_GETTEXT $(RT_DEF) -w- gvimext.cpp
-
-gvimext.res : gvimext.rc
-	$(BRC) -r gvimext.rc
-
-gvimext.dll : gvimext.obj gvimext.res
-	$(LINK) -L$(LIB) -aa gvimext.obj, gvimext.dll, , c0d32.obj $(RT_LIB) import32.lib, gvimext.def, gvimext.res
-
-clean :
-	-@del gvimext.obj
-	-@del gvimext.res
-	-@del gvimext.dll
diff --git a/src/GvimExt/gvimext.cpp b/src/GvimExt/gvimext.cpp
index b9d9d91..53d96df 100644
--- a/src/GvimExt/gvimext.cpp
+++ b/src/GvimExt/gvimext.cpp
@@ -16,14 +16,7 @@
 
 #include "gvimext.h"
 
-#ifdef __BORLANDC__
-# include <dir.h>
-# ifndef _strnicmp
-#  define _strnicmp(a, b, c) strnicmp((a), (b), (c))
-# endif
-#else
 static char *searchpath(char *name);
-#endif
 
 // Always get an error while putting the following stuff to the
 // gvimext.h file as class protected variables, give up and
@@ -917,7 +910,6 @@
 	return TRUE;
 }
 
-#ifndef __BORLANDC__
     static char *
 searchpath(char *name)
 {
@@ -937,7 +929,6 @@
     }
     return (char *)"";
 }
-#endif
 
 STDMETHODIMP CShellExt::InvokeGvim(HWND hParent,
 				   LPCSTR  /* pszWorkingDir */,
diff --git a/src/GvimExt/gvimext.rc b/src/GvimExt/gvimext.rc
index 22102db..10476da 100644
--- a/src/GvimExt/gvimext.rc
+++ b/src/GvimExt/gvimext.rc
@@ -7,9 +7,7 @@
 //
 // Generated from the TEXTINCLUDE 2 resource.
 //
-#ifndef __BORLANDC__
-# include "winresrc.h"
-#endif
+#include "winresrc.h"
 
 /////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt
index 0c276fa..c72875a 100644
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -25,21 +25,20 @@
 2. Using MSYS2 with MinGW
 3. Using MinGW
 4. Cygwin
-5. Borland
-6. Cross compiling for Win32 from a Linux machine
-7. Building with Python support
-8. Building with Python3 support
-9. Building with Racket or MzScheme support
-10. Building with Lua support
-11. Building with Perl support
-12. Building with Ruby support
-13. Building with Tcl support
-14. Building with Terminal support
-15. Building with DirectX (DirectWrite) support
-16. Windows 3.1
-17. MS-DOS
+5. Cross compiling for Win32 from a Linux machine
+6. Building with Python support
+7. Building with Python3 support
+8. Building with Racket or MzScheme support
+9. Building with Lua support
+10. Building with Perl support
+11. Building with Ruby support
+12. Building with Tcl support
+13. Building with Terminal support
+14. Building with DirectX (DirectWrite) support
+15. Windows 3.1
+16. MS-DOS
 
-18. Installing after building from sources
+17. Installing after building from sources
 
 
 The currently recommended way (that means it has been verified to work) is
@@ -451,14 +450,7 @@
 with the other makefiles).
 
 
-5. Borland
-===========
-
-Use Make_bc5.mak with Borland C++ 5.x. See
-    http://users.skynet.be/antoine.mechelynck/vim/compile.htm
-
-
-6. Cross compiling for Win32 from a Linux machine
+5. Cross compiling for Win32 from a Linux machine
 =================================================
 
 [Update of 1) needs to be verified]
@@ -478,7 +470,7 @@
 Now you have created the Windows binary from your Linux box!  Have fun...
 
 
-7. Building with Python support
+6. Building with Python support
 ===============================
 
 For building with MSVC 2008 the "Windows Installer" from www.python.org
@@ -539,7 +531,7 @@
 You will end up with a Python-enabled, Win32 version. Enjoy!
 
 
-8. Building with Python3 support
+7. Building with Python3 support
 ================================
 
 For building with MSVC 2008 the "Windows Installer" from www.python.org
@@ -576,7 +568,7 @@
 libstdc++-6.dll.)
 
 
-9. Building with Racket or MzScheme support
+8. Building with Racket or MzScheme support
 ========================================
 
 1) Building with Racket support (newest)
@@ -666,7 +658,7 @@
 
 
 
-10. Building with Lua support
+9. Building with Lua support
 ============================
 
 Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin).
@@ -721,7 +713,7 @@
         LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
 
 
-11. Building with Perl support
+10. Building with Perl support
 ==============================
 
 Vim with Perl support can be built with either MSVC or MinGW (or Cygwin).
@@ -747,7 +739,7 @@
         PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522
 
 
-12. Building with Ruby support
+11. Building with Ruby support
 ==============================
 
 Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
@@ -855,7 +847,7 @@
 
 
 
-13. Building with Tcl support
+12. Building with Tcl support
 =============================
 
 Vim with Tcl support can be built with either MSVC or MinGW (or Cygwin).
@@ -894,7 +886,7 @@
         TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
 
 
-14. Building with Terminal support
+13. Building with Terminal support
 ==================================
 
 Vim with Terminal support can be built with either MSVC, MinGW or Cygwin.
@@ -910,7 +902,7 @@
     mingw32-make -f Make_ming.mak TERMINAL=yes
 
 
-15. Building with DirectX (DirectWrite) support
+14. Building with DirectX (DirectWrite) support
 ===============================================
 
 Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW.
@@ -944,20 +936,20 @@
     mingw32-make -f Make_ming.mak DIRECTX=yes
 
 
-16. Windows 3.1x
+15. Windows 3.1x
 ================
 
 The Windows 3.1x support was removed in patch 7.4.1364.
 
 
-17. MS-DOS
+16. MS-DOS
 ==========
 
 The MS-DOS support was removed in patch 7.4.1399.  Only very old Vim versions
 work on MS-DOS because of the limited amount of memory available.
 
 
-18. Installing after building from sources
+17. Installing after building from sources
 ==========================================
 
 [provided by Michael Soyka, updated by Ken Takata]
diff --git a/src/Make_bc5.mak b/src/Make_bc5.mak
deleted file mode 100644
index a6b4bc9..0000000
--- a/src/Make_bc5.mak
+++ /dev/null
@@ -1,983 +0,0 @@
-#
-# Makefile for Vim.
-# Compiler: Borland C++ 5.0 and later 32-bit compiler
-#  Targets: Win32 (Windows NT and Windows 95) (with/without GUI)
-#
-# NOTE: THIS IS OLD AND PROBABLY NO LONGER WORKS.
-#
-# Contributed by Ben Singer.
-# Updated 4/1997 by Ron Aaron
-#	2016: removed support for 16 bit DOS
-#	6/1997 - added support for 16 bit DOS
-#	Note: this has been tested, and works, for BC5.  Your mileage may vary.
-#	Has been reported NOT to work with BC 4.52.  Maybe it can be fixed?
-#	10/1997 - ron - fixed bugs w/ BC 5.02
-#	8/1998 - ron - updated with new targets, fixed some stuff
-#	3/2000 - Bram: Made it work with BC 5.5 free command line compiler,
-#			cleaned up variables.
-#	6/2001 - Dan - Added support for compiling Python and TCL
-#	7/2001 - Dan - Added support for compiling Ruby
-#
-# It builds on Windows 95 and NT-Intel, producing the same binary in either
-# case.  To build using Microsoft Visual C++, use Make_mvc.mak.
-#
-# This should work with the free Borland command line compiler, version 5.5.
-# You need at least sp1 (service pack 1).  With sp2 it compiles faster.
-# Use a command like this:
-# <path>\bin\make /f Make_bc5.mak BOR=<path>
-#
-
-# let the make utility do the hard work:
-.AUTODEPEND
-.CACHEAUTODEPEND
-
-# VARIABLES:
-# name		value (default)
-#
-# BOR		path to root of Borland C install (c:\bc5)
-# LINK		name of the linker ($(BOR)\bin\ilink32)
-# GUI		no or yes: set to yes if you want the GUI version (yes)
-# LUA     define to path to Lua dir to get Lua support (not defined)
-#   LUA_VER	  define to version of Lua being used (51)
-#   DYNAMIC_LUA  no or yes: set to yes to load the Lua DLL dynamically (no)
-# PERL		define to path to Perl dir to get Perl support (not defined)
-#   PERL_VER	  define to version of Perl being used (56)
-#   DYNAMIC_PERL  no or yes: set to yes to load the Perl DLL dynamically (no)
-# PYTHON	define to path to Python dir to get PYTHON support (not defined)
-#   PYTHON_VER	    define to version of Python being used (22)
-#   DYNAMIC_PYTHON  no or yes: use yes to load the Python DLL dynamically (no)
-# PYTHON3	define to path to Python3 dir to get PYTHON3 support (not defined)
-#   PYTHON3_VER	    define to version of Python3 being used (31)
-#   DYNAMIC_PYTHON3  no or yes: use yes to load the Python3 DLL dynamically (no)
-# TCL		define to path to TCL dir to get TCL support (not defined)
-#   TCL_VER	define to version of TCL being used (83)
-#   DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (no)
-# RUBY		define to path to Ruby dir to get Ruby support (not defined)
-#		NOTE: You may have to remove the defines for uid_t and gid_t
-#		from the Ruby config.h header file.
-#   RUBY_VER	define to version of Ruby being used (16)
-#		NOTE: compilation on WinNT/2K/XP requires
-#		at least version 1.6.5 of Ruby.  Earlier versions
-#		of Ruby will cause a compile error on these systems.
-#   RUBY_VER_LONG  same, but in format with dot. (1.6)
-#   DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no)
-# IME		no or yes: set to yes for multi-byte IME support (yes)
-#   DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
-# GETTEXT	no or yes: set to yes for multi-language support (yes)
-# ICONV		no or yes: set to yes for dynamic iconv support (yes)
-# OLE		no or yes: set to yes to make OLE gvim (no)
-# DEBUG		no or yes: set to yes if you wish a DEBUGging build (no)
-# CODEGUARD	no or yes: set to yes if you want to use CODEGUARD (no)
-# CPUNR		1 through 6: select -CPU argument to compile with (3)
-#		3 for 386, 4 for 486, 5 for pentium, 6 for pentium pro.
-# USEDLL	no or yes: set to yes to use the Runtime library DLL (no)
-#		For USEDLL=yes the cc3250.dll is required to run Vim.
-# ALIGN		1, 2 or 4: Alignment to use (4 for Win32)
-# FASTCALL	no or yes: set to yes to use register-based function protocol (yes)
-# OPTIMIZE	SPACE, SPEED, or MAXSPEED: type of optimization (MAXSPEED)
-# POSTSCRIPT	no or yes: set to yes for PostScript printing
-# FEATURES	TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32)
-# WINVER	0x0400 or 0x0500: minimum Win32 version to support (0x0400)
-# CSCOPE	no or yes: include support for Cscope interface (yes)
-# NETBEANS	no or yes: include support for Netbeans interface; also
-#		requires CHANNEL (yes if GUI
-#		is yes)
-# NBDEBUG	no or yes: include support for debugging Netbeans interface (no)
-# CHANNEL	no or yes: include support for inter process communication (yes
-#		if GUI is yes)
-# XPM		define to path to XPM dir to get support for loading XPM images.
-
-### BOR: root of the BC installation
-!if ("$(BOR)"=="")
-BOR = c:\bc5
-!endif
-
-### LINK: Name of the linker: ilink32 (this is below)
-
-### GUI: yes for GUI version, no for console version
-!if ("$(GUI)"=="")
-GUI = yes
-!endif
-
-### IME: yes for multibyte support, no to disable it.
-!if ("$(IME)"=="")
-IME = yes
-!endif
-!if ("$(DYNAMIC_IME)"=="")
-DYNAMIC_IME = yes
-!endif
-
-### GETTEXT: yes for multilanguage support, no to disable it.
-!if ("$(GETTEXT)"=="")
-GETTEXT = yes
-!endif
-
-### ICONV: yes to enable dynamic-iconv support, no to disable it
-!if ("$(ICONV)"=="")
-ICONV = yes
-!endif
-
-### CSCOPE: yes to enable Cscope support, no to disable it
-!if ("$(CSCOPE)"=="")
-CSCOPE = yes
-!endif
-
-### NETBEANS: yes to enable NetBeans interface support, no to disable it
-!if ("$(NETBEANS)"=="") && ("$(GUI)"=="yes")
-NETBEANS = yes
-!endif
-
-### CHANNEL: yes to enable inter process communication, no to disable it
-!if ("$(CHANNEL)"=="") && ("$(GUI)"=="yes")
-CHANNEL = yes
-!endif
-
-### LUA: uncomment this line if you want lua support in vim
-# LUA=c:\lua
-
-### PERL: uncomment this line if you want perl support in vim
-# PERL=c:\perl
-
-### PYTHON: uncomment this line if you want python support in vim
-# PYTHON=c:\python22
-
-### PYTHON3: uncomment this line if you want python3 support in vim
-# PYTHON3=c:\python31
-
-### RUBY: uncomment this line if you want ruby support in vim
-# RUBY=c:\ruby
-
-### TCL: uncomment this line if you want tcl support in vim
-# TCL=c:\tcl
-
-### OLE: no for normal gvim, yes for OLE-capable gvim (only works with GUI)
-#OLE = yes
-
-### DEBUG: Uncomment to make an executable for debugging
-# DEBUG = yes
-!if ("$(DEBUG)"=="yes")
-DEBUG_FLAG = -v
-!endif
-
-### CODEGUARD: Uncomment to use the CODEGUARD stuff (BC 5.0 or later):
-# CODEGUARD = yes
-!if ("$(CODEGUARD)"=="yes")
-CODEGUARD_FLAG = -vG
-!endif
-
-### CPUNR: set your target processor (3 to 6)
-!if ("$(CPUNR)" == "i386") || ("$(CPUNR)" == "3")
-CPUNR = 3
-!elif ("$(CPUNR)" == "i486") || ("$(CPUNR)" == "4")
-CPUNR = 4
-!elif ("$(CPUNR)" == "i586") || ("$(CPUNR)" == "5")
-CPUNR = 5
-!elif ("$(CPUNR)" == "i686") || ("$(CPUNR)" == "6")
-CPUNR = 6
-!else
-CPUNR = 3
-!endif
-
-### Comment out to use precompiled headers (faster, but uses lots of disk!)
-HEADERS = -H -H=vim.csm -Hc
-
-### USEDLL: no for statically linked version of run-time, yes for DLL runtime
-!if ("$(USEDLL)"=="")
-USEDLL = no
-!endif
-
-### ALIGN: alignment you desire: (1,2 or 4: s/b 4 for Win32)
-!if ("$(ALIGN)"=="")
-ALIGN = 4
-!endif
-
-### FASTCALL: yes to use FASTCALL calling convention (RECOMMENDED!), no otherwise
-#   Incompatible when calling external functions (like MSVC-compiled DLLs), so
-#   don't use FASTCALL when linking with external libs.
-!if ("$(FASTCALL)"=="") && \
-	("$(LUA)"=="") && \
-	("$(PYTHON)"=="") && \
-	("$(PYTHON3)"=="") && \
-	("$(PERL)"=="") && \
-	("$(TCL)"=="") && \
-	("$(RUBY)"=="") && \
-	("$(ICONV)"!="yes") && \
-	("$(IME)"!="yes") && \
-	("$(XPM)"=="")
-FASTCALL = yes
-!endif
-
-### OPTIMIZE: SPEED to optimize for speed, SPACE otherwise (SPEED RECOMMENDED)
-!if ("$(OPTIMIZE)"=="")
-OPTIMIZE = MAXSPEED
-!endif
-
-### FEATURES: TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32)
-!if ("$(FEATURES)"=="")
-FEATURES = BIG
-!endif
-
-### POSTSCRIPT: uncomment this line if you want PostScript printing
-#POSTSCRIPT = yes
-
-###
-# If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
-# default, use these lines.
-#VIMRCLOC = somewhere
-#VIMRUNTIMEDIR = somewhere
-
-### Set the default $(WINVER) to make it work with Bcc 5.5.
-!ifndef WINVER
-WINVER = 0x0400
-!endif
-
-#
-# Sanity checks for the above options:
-#
-
-OSTYPE = WIN32
-
-#
-# Optimizations: change as desired (RECOMMENDATION: Don't change!):
-#
-!if ("$(DEBUG)"=="yes")
-OPT = -Od -N
-!else
-!if ("$(OPTIMIZE)"=="SPACE")
-OPT = -O1 -f- -d
-!elif ("$(OPTIMIZE)"=="MAXSPEED")
-OPT = -O2 -f- -d -Ocavi -O
-!else
-OPT = -O2 -f- -d -Oc -O
-!endif
-!if ("$(FASTCALL)"=="yes")
-OPT = $(OPT) -pr
-!endif
-!if ("$(CODEGUARD)"!="yes")
-OPT = $(OPT) -vi-
-!endif
-!endif
-# shouldn't have to change:
-LIB = $(BOR)\lib
-INCLUDE = $(BOR)\include;.;proto
-DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DHAVE_PATHDEF \
-	  -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
-
-!ifdef LUA
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_LUA
-INCLUDE = $(LUA)\include;$(INCLUDE)
-!  ifndef LUA_VER
-LUA_VER = 51
-!  endif
-!  if ("$(DYNAMIC_LUA)" == "yes")
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\"
-LUA_LIB_FLAG = /nodefaultlib:
-!  endif
-!endif
-
-!ifdef PERL
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PERL
-INCLUDE = $(PERL)\lib\core;$(INCLUDE)
-!  ifndef PERL_VER
-PERL_VER = 56
-!  endif
-!  if ("$(DYNAMIC_PERL)" == "yes")
-!    if ($(PERL_VER) > 55)
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
-PERL_LIB_FLAG = /nodefaultlib:
-!    else
-!      message "Cannot dynamically load Perl versions less than 5.6.  Loading statically..."
-!    endif
-!  endif
-!endif
-
-!ifdef PYTHON
-!ifdef PYTHON3
-DYNAMIC_PYTHON=yes
-DYNAMIC_PYTHON3=yes
-!endif
-!endif
-
-!ifdef PYTHON
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON
-!ifndef PYTHON_VER
-PYTHON_VER = 22
-!endif
-!if "$(DYNAMIC_PYTHON)" == "yes"
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
-PYTHON_LIB_FLAG = /nodefaultlib:
-!endif
-!endif
-
-!ifdef PYTHON3
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON3
-!ifndef PYTHON3_VER
-PYTHON3_VER = 31
-!endif
-!if "$(DYNAMIC_PYTHON3)" == "yes"
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\"
-PYTHON3_LIB_FLAG = /nodefaultlib:
-!endif
-!endif
-
-
-!ifdef RUBY
-!ifndef RUBY_VER
-RUBY_VER = 16
-!endif
-!ifndef RUBY_VER_LONG
-RUBY_VER_LONG = 1.6
-!endif
-
-!if "$(RUBY_VER)" == "16"
-!ifndef RUBY_PLATFORM
-RUBY_PLATFORM = i586-mswin32
-!endif
-!ifndef RUBY_INSTALL_NAME
-RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
-!endif
-!else
-!ifndef RUBY_PLATFORM
-RUBY_PLATFORM = i386-mswin32
-!endif
-!ifndef RUBY_INSTALL_NAME
-RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
-!endif
-!endif
-
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_RUBY
-INCLUDE = $(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM);$(INCLUDE)
-
-!if "$(DYNAMIC_RUBY)" == "yes"
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY_VER=$(RUBY_VER)
-RUBY_LIB_FLAG = /nodefaultlib:
-!endif
-!endif
-
-!ifdef TCL
-INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_TCL
-INCLUDE = $(TCL)\include;$(INCLUDE)
-!ifndef TCL_VER
-TCL_VER = 83
-!endif
-TCL_LIB = $(TCL)\lib\tcl$(TCL_VER).lib
-TCL_LIB_FLAG =
-!if "$(DYNAMIC_TCL)" == "yes"
-INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
-TCL_LIB = tclstub$(TCL_VER)-bor.lib
-TCL_LIB_FLAG =
-!endif
-!endif
-#
-# DO NOT change below:
-#
-CPUARG = -$(CPUNR)
-ALIGNARG = -a$(ALIGN)
-#
-!if ("$(DEBUG)"=="yes")
-DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
-!endif
-#
-!if ("$(OLE)"=="yes")
-DEFINES = $(DEFINES) -DFEAT_OLE
-!endif
-#
-!if ("$(IME)"=="yes")
-MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME
-!if ("$(DYNAMIC_IME)" == "yes")
-MBDEFINES = $(MBDEFINES) -DDYNAMIC_IME
-!endif
-!endif
-!if ("$(ICONV)"=="yes")
-MBDEFINES = $(MBDEFINES) -DDYNAMIC_ICONV
-!endif
-!if ("$(GETTEXT)"=="yes")
-MBDEFINES = $(MBDEFINES) -DDYNAMIC_GETTEXT
-!endif
-
-!if ("$(CSCOPE)"=="yes")
-DEFINES = $(DEFINES) -DFEAT_CSCOPE
-!endif
-
-!if ("$(GUI)"=="yes")
-DEFINES = $(DEFINES) -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD
-!if ("$(DEBUG)"=="yes")
-TARGET = gvimd.exe
-!else
-TARGET = gvim.exe
-!endif
-EXETYPE=-W
-STARTUPOBJ = c0w32.obj
-LINK2 = -aa
-RESFILE = vim.res
-!else
-!undef NETBEANS
-!undef CHANNEL
-!undef XPM
-!if ("$(DEBUG)"=="yes")
-TARGET = vimd.exe
-!else
-# for now, anyway: VIMDLL is only for the GUI version
-TARGET = vim.exe
-!endif
-EXETYPE=-WC
-STARTUPOBJ = c0x32.obj
-LINK2 = -ap -OS -o -P
-RESFILE = vim.res
-!endif
-
-!if ("$(NETBEANS)"=="yes")
-!if ("$(CHANNEL)"!="yes")
-# cannot use Netbeans without CHANNEL
-NETBEANS = no
-!else
-DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG
-!if ("$(NBDEBUG)"=="yes")
-DEFINES = $(DEFINES) -DNBDEBUG
-NBDEBUG_DEP = nbdebug.h nbdebug.c
-!endif
-!endif
-!endif
-
-!if ("$(CHANNEL)"=="yes")
-DEFINES = $(DEFINES) -DFEAT_JOB_CHANNEL
-!endif
-
-!ifdef XPM
-!if ("$(GUI)"=="yes")
-DEFINES = $(DEFINES) -DFEAT_XPM_W32
-INCLUDE = $(XPM)\include;$(INCLUDE)
-!endif
-!endif
-
-!if ("$(USEDLL)"=="yes")
-DEFINES = $(DEFINES) -D_RTLDLL
-!endif
-
-!if ("$(DEBUG)"=="yes")
-OBJDIR	= $(OSTYPE)\objdbg
-!else
-!if ("$(GUI)"=="yes")
-!if ("$(OLE)"=="yes")
-OBJDIR	= $(OSTYPE)\oleobj
-!else
-OBJDIR	= $(OSTYPE)\gobj
-!endif
-!else
-OBJDIR	= $(OSTYPE)\obj
-!endif
-!endif
-
-!if ("$(POSTSCRIPT)"=="yes")
-DEFINES = $(DEFINES) -DMSWINPS
-!endif
-
-##### BASE COMPILER/TOOLS RULES #####
-MAKE = $(BOR)\bin\make
-CFLAGS = -w-aus -w-par -w-pch -w-ngu -w-csu -I$(INCLUDE)
-BRC = $(BOR)\BIN\brc32
-!if ("$(LINK)"=="")
-LINK	= $(BOR)\BIN\ILink32
-!endif
-CC   = $(BOR)\BIN\Bcc32
-LFLAGS	= -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
-LFLAGSDLL  = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
-CFLAGS = $(CFLAGS) -d -RT- -k- -Oi $(HEADERS) -f-
-
-CC1 = -c
-CC2 = -o
-CCARG = +$(OBJDIR)\bcc.cfg
-
-# implicit rules:
-
-# Without the following, the implicit rule in BUILTINS.MAK is picked up
-# for a rule for .c.obj rather than the local implicit rule
-.SUFFIXES
-.SUFFIXES .c .obj
-.path.c = .
-
-{.}.c{$(OBJDIR)}.obj:
-	$(CC) $(CCARG) $(CC1) -n$(OBJDIR)\ {$< }
-
-.cpp.obj:
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ $*.cpp
-
-vimmain = \
-	$(OBJDIR)\os_w32exe.obj
-vimwinmain = \
-	$(OBJDIR)\os_w32exe.obj
-
-vimobj =  \
-	$(OBJDIR)\arabic.obj \
-	$(OBJDIR)\autocmd.obj \
-	$(OBJDIR)\blowfish.obj \
-	$(OBJDIR)\buffer.obj \
-	$(OBJDIR)\charset.obj \
-	$(OBJDIR)\crypt.obj \
-	$(OBJDIR)\crypt_zip.obj \
-	$(OBJDIR)\debugger.obj \
-	$(OBJDIR)\dict.obj \
-	$(OBJDIR)\diff.obj \
-	$(OBJDIR)\digraph.obj \
-	$(OBJDIR)\edit.obj \
-	$(OBJDIR)\eval.obj \
-	$(OBJDIR)\evalfunc.obj \
-	$(OBJDIR)\ex_cmds.obj \
-	$(OBJDIR)\ex_cmds2.obj \
-	$(OBJDIR)\ex_docmd.obj \
-	$(OBJDIR)\ex_eval.obj \
-	$(OBJDIR)\ex_getln.obj \
-	$(OBJDIR)\fileio.obj \
-	$(OBJDIR)\findfile.obj \
-	$(OBJDIR)\fold.obj \
-	$(OBJDIR)\getchar.obj \
-	$(OBJDIR)\hardcopy.obj \
-	$(OBJDIR)\hashtab.obj \
-	$(OBJDIR)\indent.obj \
-	$(OBJDIR)\insexpand.obj \
-	$(OBJDIR)\json.obj \
-	$(OBJDIR)\list.obj \
-	$(OBJDIR)\main.obj \
-	$(OBJDIR)\mark.obj \
-	$(OBJDIR)\memfile.obj \
-	$(OBJDIR)\memline.obj \
-	$(OBJDIR)\menu.obj \
-	$(OBJDIR)\message.obj \
-	$(OBJDIR)\misc1.obj \
-	$(OBJDIR)\misc2.obj \
-	$(OBJDIR)\move.obj \
-	$(OBJDIR)\mbyte.obj \
-	$(OBJDIR)\normal.obj \
-	$(OBJDIR)\ops.obj \
-	$(OBJDIR)\option.obj \
-	$(OBJDIR)\popupmnu.obj \
-	$(OBJDIR)\quickfix.obj \
-	$(OBJDIR)\regexp.obj \
-	$(OBJDIR)\screen.obj \
-	$(OBJDIR)\search.obj \
-	$(OBJDIR)\sha256.obj \
-	$(OBJDIR)\sign.obj \
-	$(OBJDIR)\spell.obj \
-	$(OBJDIR)\spellfile.obj \
-	$(OBJDIR)\syntax.obj \
-	$(OBJDIR)\tag.obj \
-	$(OBJDIR)\term.obj \
-	$(OBJDIR)\ui.obj \
-	$(OBJDIR)\undo.obj \
-	$(OBJDIR)\usercmd.obj \
-	$(OBJDIR)\userfunc.obj \
-	$(OBJDIR)\version.obj \
-	$(OBJDIR)\window.obj \
-	$(OBJDIR)\pathdef.obj
-
-!if ("$(OLE)"=="yes")
-vimobj = $(vimobj) \
-	$(OBJDIR)\if_ole.obj
-!endif
-
-!ifdef LUA
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_lua.obj
-!endif
-
-!ifdef PERL
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_perl.obj
-!endif
-
-!ifdef PYTHON
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_python.obj
-!endif
-
-!ifdef PYTHON3
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_python3.obj
-!endif
-
-!ifdef RUBY
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_ruby.obj
-!endif
-
-!ifdef TCL
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_tcl.obj
-!endif
-
-!if ("$(CSCOPE)"=="yes")
-vimobj = $(vimobj) \
-    $(OBJDIR)\if_cscope.obj
-!endif
-
-!if ("$(NETBEANS)"=="yes")
-vimobj = $(vimobj) \
-    $(OBJDIR)\netbeans.obj
-!endif
-
-!if ("$(CHANNEL)"=="yes")
-vimobj = $(vimobj) \
-    $(OBJDIR)\channel.obj
-!endif
-
-!ifdef XPM
-vimobj = $(vimobj) \
-    $(OBJDIR)\xpm_w32.obj
-!endif
-
-!if ("$(GUI)"=="yes")
-vimobj = $(vimobj) \
-	$(vimwinmain) \
-	$(OBJDIR)\gui.obj \
-	$(OBJDIR)\gui_beval.obj \
-	$(OBJDIR)\gui_w32.obj
-!endif
-
-vimobj = $(vimobj) \
-	$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj
-# Blab what we are going to do:
-MSG = Compiling $(OSTYPE) $(TARGET) $(OLETARGET), with:
-!if ("$(GUI)"=="yes")
-MSG = $(MSG) GUI
-!endif
-!if ("$(OLE)"=="yes")
-MSG = $(MSG) OLE
-!endif
-!if ("$(USEDLL)"=="yes")
-MSG = $(MSG) USEDLL
-!endif
-!if ("$(FASTCALL)"=="yes")
-MSG = $(MSG) FASTCALL
-!endif
-!if ("$(IME)"=="yes")
-MSG = $(MSG) IME
-! if "$(DYNAMIC_IME)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!if ("$(GETTEXT)"=="yes")
-MSG = $(MSG) GETTEXT
-!endif
-!if ("$(ICONV)"=="yes")
-MSG = $(MSG) ICONV
-!endif
-!if ("$(DEBUG)"=="yes")
-MSG = $(MSG) DEBUG
-!endif
-!if ("$(CODEGUARD)"=="yes")
-MSG = $(MSG) CODEGUARD
-!endif
-!if ("$(CSCOPE)"=="yes")
-MSG = $(MSG) CSCOPE
-!endif
-!if ("$(NETBEANS)"=="yes")
-MSG = $(MSG) NETBEANS
-!endif
-!if ("$(CHANNEL)"=="yes")
-MSG = $(MSG) CHANNEL
-!endif
-!ifdef XPM
-MSG = $(MSG) XPM
-!endif
-!ifdef LUA
-MSG = $(MSG) LUA
-! if "$(DYNAMIC_LUA)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!ifdef PERL
-MSG = $(MSG) PERL
-! if "$(DYNAMIC_PERL)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!ifdef PYTHON
-MSG = $(MSG) PYTHON
-! if "$(DYNAMIC_PYTHON)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!ifdef PYTHON3
-MSG = $(MSG) PYTHON3
-! if "$(DYNAMIC_PYTHON3)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!ifdef RUBY
-MSG = $(MSG) RUBY
-! if "$(DYNAMIC_RUBY)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-!ifdef TCL
-MSG = $(MSG) TCL
-! if "$(DYNAMIC_TCL)" == "yes"
-MSG = $(MSG)(dynamic)
-! endif
-!endif
-MSG = $(MSG) cpu=$(CPUARG)
-MSG = $(MSG) Align=$(ALIGNARG)
-
-!message $(MSG)
-
-TARGETS = $(TARGETS) $(TARGET)
-
-# Targets:
-all: vim vimrun.exe install.exe xxd uninstal.exe GvimExt/gvimext.dll
-
-vim: $(OSTYPE) $(OBJDIR) $(OBJDIR)\bcc.cfg $(TARGETS)
-	@if exist $(OBJDIR)\version.obj del $(OBJDIR)\version.obj
-	@if exist auto\pathdef.c del auto\pathdef.c
-
-$(OSTYPE):
-	-@md $(OSTYPE)
-
-$(OBJDIR):
-	-@md $(OBJDIR)
-
-xxd:
-	@cd xxd
-	$(MAKE) /f Make_bc5.mak BOR="$(BOR)" BCC="$(CC)"
-	@cd ..
-
-GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
-	cd GvimExt
-	$(MAKE) /f Make_bc5.mak USEDLL=$(USEDLL) BOR=$(BOR)
-	cd ..
-
-install.exe: dosinst.c $(OBJDIR)\bcc.cfg
-	$(CC) $(CCARG) -WC -DWIN32 -einstall dosinst.c
-
-uninstal.exe: uninstal.c $(OBJDIR)\bcc.cfg
-	$(CC) $(CCARG) -WC -DWIN32 -O2 -euninstal uninstal.c
-
-clean:
-!if "$(OS)" == "Windows_NT"
-	# For Windows NT/2000, doesn't work on Windows 95/98...
-	# $(COMSPEC) needed to ensure rmdir.exe is not run
-	-@$(COMSPEC) /C rmdir /Q /S $(OBJDIR)
-!else
-	# For Windows 95/98, doesn't work on Windows NT/2000...
-	-@deltree /y $(OBJDIR)
-!endif
-	-@del *.res
-	-@del vim32*.dll
-	-@del vim32*.lib
-	-@del *vim*.exe
-	-@del *install*.exe
-	-@del *.csm
-	-@del *.map
-	-@del *.ilc
-	-@del *.ild
-	-@del *.ilf
-	-@del *.ils
-	-@del *.tds
-!ifdef LUA
-	-@del lua.lib
-!endif
-!ifdef PERL
-	-@del perl.lib
-	-@del if_perl.c
-	-@del auto\if_perl.c
-!endif
-!ifdef PYTHON
-	-@del python.lib
-!endif
-!ifdef PYTHON3
-	-@del python3.lib
-!endif
-!ifdef RUBY
-	-@del ruby.lib
-!endif
-!ifdef TCL
-	-@del tcl.lib
-!endif
-!ifdef XPM
-	-@del xpm.lib
-!endif
-	cd xxd
-	$(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
-	cd ..
-	cd GvimExt
-	$(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
-	cd ..
-
-
-$(TARGET): $(OBJDIR) $(vimobj) $(OBJDIR)\$(RESFILE)
-  $(LINK) @&&|
-	$(LFLAGS) +
-	$(STARTUPOBJ) +
-	$(vimobj)
-	$<,$*
-!if ("$(CODEGUARD)"=="yes")
-	cg32.lib+
-!endif
-# $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE
-	ole2w32.lib +
-	import32.lib+
-!ifdef LUA
-	$(LUA_LIB_FLAG)lua.lib+
-!endif
-!ifdef PERL
-	$(PERL_LIB_FLAG)perl.lib+
-!endif
-!ifdef PYTHON
-	$(PYTHON_LIB_FLAG)python.lib+
-!endif
-!ifdef PYTHON3
-	$(PYTHON3_LIB_FLAG)python3.lib+
-!endif
-!ifdef RUBY
-	$(RUBY_LIB_FLAG)ruby.lib+
-!endif
-!ifdef TCL
-	$(TCL_LIB_FLAG)tcl.lib+
-!endif
-!ifdef XPM
-	xpm.lib+
-!endif
-!if ("$(USEDLL)"=="yes")
-	cw32i.lib
-!else
-	cw32.lib
-!endif
-
-	$(OBJDIR)\$(RESFILE)
-|
-
-test:
-	cd testdir
-	$(MAKE) /NOLOGO -f Make_dos.mak win32
-	cd ..
-
-$(OBJDIR)\ex_docmd.obj:  ex_docmd.c ex_cmds.h
-
-$(OBJDIR)\ex_eval.obj:  ex_eval.c ex_cmds.h
-
-$(OBJDIR)\if_ole.obj: if_ole.cpp
-
-$(OBJDIR)\if_lua.obj: if_lua.c lua.lib
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_lua.c
-
-$(OBJDIR)\if_perl.obj: auto/if_perl.c perl.lib
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc auto/if_perl.c
-
-auto/if_perl.c: if_perl.xs typemap
-	$(PERL)\bin\perl.exe $(PERL)\lib\ExtUtils\xsubpp -prototypes -typemap \
-	    $(PERL)\lib\ExtUtils\typemap if_perl.xs -output $@
-
-$(OBJDIR)\if_python.obj: if_python.c if_py_both.h python.lib
-	$(CC) -I$(PYTHON)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python.c
-
-$(OBJDIR)\if_python3.obj: if_python3.c if_py_both.h python3.lib
-	$(CC) -I$(PYTHON3)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python3.c
-
-$(OBJDIR)\if_ruby.obj: if_ruby.c ruby.lib
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_ruby.c
-
-$(OBJDIR)\if_tcl.obj: if_tcl.c tcl.lib
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_tcl.c
-
-$(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ -pc xpm_w32.c
-
-$(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP)
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c
-
-$(OBJDIR)\channel.obj: channel.c
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ channel.c
-
-$(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \
-		vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
-	$(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&|
-	$(DEFINES)
-|
-
-$(OBJDIR)\pathdef.obj:	auto\pathdef.c
-	$(CC) $(CCARG) $(CC1) $(CC2)$@ auto\pathdef.c
-
-
-# Need to escape both quotes and backslashes in $INTERP_DEFINES
-INTERP_DEFINES_ESC_BKS=$(INTERP_DEFINES:\=\\)
-INTERP_DEFINES_ESC=$(INTERP_DEFINES_ESC_BKS:"=\")
-
-# Note:  the silly /*"*/ below are there to trick make into accepting
-# the # character as something other than a comment without messing up
-# the preprocessor directive.
-auto\pathdef.c::
-	-@md auto
-	@echo creating auto/pathdef.c
-	@copy /y &&|
-/* pathdef.c */
-/*"*/#include "vim.h"/*"*/
-
-char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)";
-char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)";
-char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS:\=\\) $(DEFINES) $(MBDEFINES) $(INTERP_DEFINES_ESC) $(OPT) $(EXETYPE) $(CPUARG) $(ALIGNARG) $(DEBUG_FLAG) $(CODEGUARD_FLAG)";
-char_u *all_lflags = (char_u *)"$(LINK:\=\\) $(LFLAGS:\=\\)";
-char_u *compiled_user = (char_u *)"$(USERNAME)";
-char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";
-| auto\pathdef.c
-
-lua.lib: $(LUA)\lib\lua$(LUA_VER).lib
-	coff2omf $(LUA)\lib\lua$(LUA_VER).lib $@
-
-perl.lib: $(PERL)\lib\CORE\perl$(PERL_VER).lib
-	coff2omf $(PERL)\lib\CORE\perl$(PERL_VER).lib $@
-
-python.lib: $(PYTHON)\libs\python$(PYTHON_VER).lib
-	coff2omf $(PYTHON)\libs\python$(PYTHON_VER).lib $@
-
-python3.lib: $(PYTHON3)\libs\python$(PYTHON3_VER).lib
-	coff2omf $(PYTHON3)\libs\python$(PYTHON3_VER).lib $@
-
-ruby.lib: $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
-	coff2omf $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib $@
-
-# For some reason, the coff2omf method doesn't work on libXpm.lib, so
-# we have to manually generate an import library straight from the DLL.
-xpm.lib: $(XPM)\lib\libXpm.lib
-	implib -a $@ $(XPM)\bin\libXpm.dll
-
-tcl.lib: $(TCL_LIB)
-!if ("$(DYNAMIC_TCL)" == "yes")
-	copy $(TCL_LIB) $@
-!else
-	coff2omf $(TCL_LIB) $@
-!endif
-
-!if ("$(DYNAMIC_TCL)" == "yes")
-tclstub$(TCL_VER)-bor.lib:
-	-@IF NOT EXIST $@ ECHO You must download tclstub$(TCL_VER)-bor.lib separately and\
-	place it in the src directory in order to compile a dynamic TCL-enabled\
-	(g)vim with the Borland compiler.  You can get the tclstub$(TCL_VER)-bor.lib file\
-	at http://mywebpage.netscape.com/sharppeople/vim/tclstub$(TCL_VER)-bor.lib
-!endif
-
-# vimrun.exe:
-vimrun.exe: vimrun.c
-!if ("$(USEDLL)"=="yes")
-	$(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) -D_RTLDLL vimrun.c cw32mti.lib
-!else
-	$(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) vimrun.c
-!endif
-
-# The dependency on $(OBJDIR) is to have bcc.cfg generated each time.
-$(OBJDIR)\bcc.cfg: Make_bc5.mak $(OBJDIR)
-  copy /y &&|
-	$(CFLAGS)
-	-L$(LIB)
-	$(DEFINES)
-	$(MBDEFINES)
-	$(INTERP_DEFINES)
-	$(EXETYPE)
-	$(DEBUG_FLAG)
-	$(OPT)
-	$(CODEGUARD_FLAG)
-	$(CPUARG)
-	$(ALIGNARG)
-| $@
-
-# vi:set sts=4 sw=4:
-
diff --git a/src/dosinst.c b/src/dosinst.c
index ca74758..b975ff8 100644
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -10,7 +10,7 @@
 /*
  * dosinst.c: Install program for Vim on MS-DOS and MS-Windows
  *
- * Compile with Make_mvc.mak, Make_bc3.mak, Make_bc5.mak or Make_djg.mak.
+ * Compile with Make_mvc.mak, Make_cyg.mak or Make_ming.mak.
  */
 
 /*
diff --git a/src/dosinst.h b/src/dosinst.h
index 7f30e90..7cb4139 100644
--- a/src/dosinst.h
+++ b/src/dosinst.h
@@ -47,11 +47,7 @@
 #if defined(UNIX_LINT)
 # define vim_mkdir(x, y) mkdir((char *)(x), y)
 #else
-# ifndef __BORLANDC__
-#  define vim_mkdir(x, y) _mkdir((char *)(x))
-# else
-#  define vim_mkdir(x, y) mkdir((char *)(x))
-# endif
+# define vim_mkdir(x, y) _mkdir((char *)(x))
 #endif
 
 #define sleep(n) Sleep((n) * 1000)
@@ -150,10 +146,6 @@
 #endif
 }
 
-#ifdef __BORLANDC__
-/* Borland defines its own searchpath() in dir.h */
-# include <dir.h>
-#else
     static char *
 searchpath(char *name)
 {
@@ -173,7 +165,6 @@
     }
     return NULL;
 }
-#endif
 
 /*
  * Call searchpath() and save the result in allocated memory, or return NULL.
@@ -463,12 +454,6 @@
 /*
  * Expand the executable name into a full path name.
  */
-#if defined(__BORLANDC__)
-
-/* Only Borland C++ has this. */
-# define my_fullpath(b, n, l) _fullpath(b, n, l)
-
-#else
     static char *
 my_fullpath(char *buf, char *fname, int len)
 {
@@ -478,7 +463,6 @@
 
     return (len_read > 0 && len_read < (DWORD)len) ? buf : NULL;
 }
-#endif
 
 /*
  * Remove the tail from a file or directory name.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 2676832..f3b1faf 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -12500,16 +12500,8 @@
 }
 #endif
 
-static int
-#ifdef __BORLANDC__
-    _RTLENTRYF
-#endif
-	item_compare(const void *s1, const void *s2);
-static int
-#ifdef __BORLANDC__
-    _RTLENTRYF
-#endif
-	item_compare2(const void *s1, const void *s2);
+static int item_compare(const void *s1, const void *s2);
+static int item_compare2(const void *s1, const void *s2);
 
 /* struct used in the array that's given to qsort() */
 typedef struct
@@ -12540,9 +12532,6 @@
  * Compare functions for f_sort() and f_uniq() below.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 item_compare(const void *s1, const void *s2)
 {
     sortItem_T  *si1, *si2;
@@ -12627,9 +12616,6 @@
 }
 
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 item_compare2(const void *s1, const void *s2)
 {
     sortItem_T  *si1, *si2;
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index ebfcf54..8da5dfd 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -29,11 +29,7 @@
 
 static int check_readonly(int *forceit, buf_T *buf);
 static void delbuf_msg(char_u *name);
-static int
-#ifdef __BORLANDC__
-    _RTLENTRYF
-#endif
-	help_compare(const void *s1, const void *s2);
+static int help_compare(const void *s1, const void *s2);
 static void prepare_help_buffer(void);
 
 /*
@@ -314,16 +310,9 @@
     } st_u;
 } sorti_T;
 
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-sort_compare(const void *s1, const void *s2);
+static int sort_compare(const void *s1, const void *s2);
 
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 sort_compare(const void *s1, const void *s2)
 {
     sorti_T	l1 = *(sorti_T *)s1;
@@ -6580,9 +6569,6 @@
  * that has been put after the tagname by find_tags().
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 help_compare(const void *s1, const void *s2)
 {
     char    *p1;
diff --git a/src/ex_getln.c b/src/ex_getln.c
index b2b6f53..f1c30a2 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -125,11 +125,7 @@
 #endif
 
 #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-sort_func_compare(const void *s1, const void *s2);
+static int	sort_func_compare(const void *s1, const void *s2);
 #endif
 
 
@@ -3803,9 +3799,6 @@
 
 #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 sort_func_compare(const void *s1, const void *s2)
 {
     char_u *p1 = *(char_u **)s1;
@@ -6855,9 +6848,6 @@
 
 #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 sort_hist(const void *s1, const void *s2)
 {
     histentry_T *p1 = *(histentry_T **)s1;
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 8d28148..5961830 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -1303,9 +1303,6 @@
     int
 gui_mch_open(void)
 {
-#ifndef SW_SHOWDEFAULT
-# define SW_SHOWDEFAULT 10	/* Borland 5.0 doesn't have it */
-#endif
     /* Actually open the window, if not already visible
      * (may be done already in gui_mch_set_shellsize) */
     if (!IsWindowVisible(s_hwnd))
@@ -3799,9 +3796,6 @@
  * Add a lot of missing defines.
  * They are not always missing, we need the #ifndef's.
  */
-# ifndef _cdecl
-#  define _cdecl
-# endif
 # ifndef IsMinimized
 #  define     IsMinimized(hwnd)		IsIconic(hwnd)
 # endif
@@ -5521,7 +5515,7 @@
  * First static functions (no prototypes generated).
  */
 # ifdef _MSC_VER
-#  include <ime.h>   /* Apparently not needed for Cygwin, MingW or Borland. */
+#  include <ime.h>   /* Apparently not needed for Cygwin or MinGW. */
 # endif
 # include <imm.h>
 
@@ -6272,15 +6266,6 @@
     void
 gui_mch_flush(void)
 {
-#   if defined(__BORLANDC__)
-    /*
-     * The GdiFlush declaration (in Borland C 5.01 <wingdi.h>) is not a
-     * prototype declaration.
-     * The compiler complains if __stdcall is not used in both declarations.
-     */
-    BOOL  __stdcall GdiFlush(void);
-#   endif
-
 #if defined(FEAT_DIRECTX)
     if (IS_ENABLE_DIRECTX())
 	DWriteContext_Flush(s_dwc);
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index 8780847..e52f5ec 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -12,24 +12,14 @@
  *
  * See os_mswin.c for the client side.
  */
-
-/*
- * We have some trouble with order of includes here.  For Borland it needs to
- * be different from MSVC...
- */
-#ifndef __BORLANDC__
 extern "C" {
 # include "vim.h"
 }
-#endif
 
 #include <windows.h>
 #include <oleauto.h>
 
 extern "C" {
-#ifdef __BORLANDC__
-# include "vim.h"
-#endif
 extern HWND s_hwnd;
 extern HWND vim_parent_hwnd;
 }
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 498972d..4e1a42a 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -13,11 +13,6 @@
  * Common code for if_python.c and if_python3.c.
  */
 
-#ifdef __BORLANDC__
-/* Disable Warning W8060: Possibly incorrect assignment in function ... */
-# pragma warn -8060
-#endif
-
 static char_u e_py_systemexit[]	= "E880: Can't handle SystemExit of %s exception in vim";
 
 #if PY_VERSION_HEX < 0x02050000
diff --git a/src/main.c b/src/main.c
index 6d30143..d01cf9b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -98,9 +98,6 @@
 # endif
     int
 # ifdef MSWIN
-#  ifdef __BORLANDC__
-_cdecl
-#  endif
 VimMain
 # else
 main
diff --git a/src/mark.c b/src/mark.c
index 1b34c20..eb36541 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1950,9 +1950,6 @@
  * Compare functions for qsort() below, that compares b_last_used.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 buf_compare(const void *s1, const void *s2)
 {
     buf_T *buf1 = *(buf_T **)s1;
diff --git a/src/message.c b/src/message.c
index 7c25658..0ddff8b 100644
--- a/src/message.c
+++ b/src/message.c
@@ -357,9 +357,6 @@
 int vim_snprintf(char *str, size_t str_m, const char *fmt, ...);
 
     int
-# ifdef __BORLANDC__
-_RTLENTRYF
-# endif
 smsg(const char *s, ...)
 {
     va_list arglist;
@@ -371,9 +368,6 @@
 }
 
     int
-# ifdef __BORLANDC__
-_RTLENTRYF
-# endif
 smsg_attr(int attr, const char *s, ...)
 {
     va_list arglist;
@@ -385,9 +379,6 @@
 }
 
     int
-# ifdef __BORLANDC__
-_RTLENTRYF
-# endif
 smsg_attr_keep(int attr, const char *s, ...)
 {
     va_list arglist;
@@ -3091,7 +3082,7 @@
 	    (isatty(2) && strcmp("/dev/console", ttyname(2)) != 0)
 #  else
 	    isatty(2)
-#   endif
+#  endif
 #  ifdef FEAT_GUI
 	    ||
 #  endif
diff --git a/src/misc1.c b/src/misc1.c
index 3797094..a1c9a82 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -5626,18 +5626,11 @@
  * File name expansion code for MS-DOS, Win16 and Win32.  It's here because
  * it's shared between these systems.
  */
-# if defined(PROTO)
-#  define _cdecl
-# else
-#  ifdef __BORLANDC__
-#   define _cdecl _RTLENTRYF
-#  endif
-# endif
 
 /*
  * comparison function for qsort in dos_expandpath()
  */
-    static int _cdecl
+    static int
 pstrcmp(const void *a, const void *b)
 {
     return (pathcmp(*(char **)a, *(char **)b, -1));
diff --git a/src/misc2.c b/src/misc2.c
index 3ef7c94..f9f6bf5 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -3912,16 +3912,9 @@
 /*
  * Sort an array of strings.
  */
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-sort_compare(const void *s1, const void *s2);
+static int sort_compare(const void *s1, const void *s2);
 
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 sort_compare(const void *s1, const void *s2)
 {
     return STRCMP(*(char **)s1, *(char **)s2);
diff --git a/src/normal.c b/src/normal.c
index 8d4cf09..e297a2e 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -27,11 +27,7 @@
 #ifdef FEAT_EVAL
 static void	set_vcount_ca(cmdarg_T *cap, int *set_prevcount);
 #endif
-static int
-#ifdef __BORLANDC__
-    _RTLENTRYF
-#endif
-		nv_compare(const void *s1, const void *s2);
+static int	nv_compare(const void *s1, const void *s2);
 static void	op_colon(oparg_T *oap);
 static void	op_function(oparg_T *oap);
 #if defined(FEAT_MOUSE)
@@ -422,9 +418,6 @@
  * through the index in nv_cmd_idx[].
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 nv_compare(const void *s1, const void *s2)
 {
     int		c1, c2;
diff --git a/src/option.c b/src/option.c
index 657c011..a9b9780 100644
--- a/src/option.c
+++ b/src/option.c
@@ -12561,11 +12561,6 @@
 
 #ifdef FEAT_LINEBREAK
 
-# if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
-   /* Borland C++ screws up loop optimisation here (negri) */
-  #pragma option -O-l
-# endif
-
 /*
  * fill_breakat_flags() -- called when 'breakat' changes value.
  */
@@ -12582,11 +12577,6 @@
 	for (p = p_breakat; *p; p++)
 	    breakat_flags[*p] = TRUE;
 }
-
-# if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
-  #pragma option -O.l
-# endif
-
 #endif
 
 /*
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 9179e9b..fc6806d 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -172,26 +172,6 @@
     return !SetCurrentDirectory(temp);
 }
 # endif
-#else
-# ifdef __BORLANDC__
-/* being a more ANSI compliant compiler, BorlandC doesn't define _stricoll:
- * but it does in BC 5.02! */
-#  if __BORLANDC__ < 0x502
-int _stricoll(char *a, char *b)
-{
-#   if 1
-    // this is fast but not correct:
-    return stricmp(a, b);
-#   else
-    // the ANSI-ish correct way is to use strxfrm():
-    char a_buff[512], b_buff[512];  // file names, so this is enough on Win32
-    strxfrm(a_buff, a, 512);
-    strxfrm(b_buff, b, 512);
-    return strcoll(a_buff, b_buff);
-#   endif
-}
-#  endif
-# endif
 #endif
 
 
@@ -374,30 +354,22 @@
     int		force UNUSED)
 {
     int		nResult = FAIL;
+    WCHAR	*wname;
+    WCHAR	wbuf[MAX_PATH];
+    char_u	*cname = NULL;
 
-#ifdef __BORLANDC__
-    if (*fname == NUL) /* Borland behaves badly here - make it consistent */
-	nResult = mch_dirname(buf, len);
-    else
-#endif
+    wname = enc_to_utf16(fname, NULL);
+    if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH) != NULL)
     {
-	WCHAR	*wname;
-	WCHAR	wbuf[MAX_PATH];
-	char_u	*cname = NULL;
-
-	wname = enc_to_utf16(fname, NULL);
-	if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH) != NULL)
+	cname = utf16_to_enc((short_u *)wbuf, NULL);
+	if (cname != NULL)
 	{
-	    cname = utf16_to_enc((short_u *)wbuf, NULL);
-	    if (cname != NULL)
-	    {
-		vim_strncpy(buf, cname, len - 1);
-		nResult = OK;
-	    }
+	    vim_strncpy(buf, cname, len - 1);
+	    nResult = OK;
 	}
-	vim_free(wname);
-	vim_free(cname);
     }
+    vim_free(wname);
+    vim_free(cname);
 
 #ifdef USE_FNAME_CASE
     fname_case(buf, len);
@@ -2044,9 +2016,6 @@
  * Clean up on exit. This destroys the hidden message window.
  */
     static void
-#ifdef __BORLANDC__
-    _RTLENTRYF
-#endif
 CleanUpMessaging(void)
 {
     if (message_window != 0)
diff --git a/src/os_w32exe.c b/src/os_w32exe.c
index efdbc96..c4f0294 100644
--- a/src/os_w32exe.c
+++ b/src/os_w32exe.c
@@ -15,19 +15,13 @@
  */
 #include "vim.h"
 
-#ifdef __MINGW32__
-# ifndef _cdecl
-#  define _cdecl
-# endif
-#endif
-
 // cproto doesn't create a prototype for VimMain()
 #ifdef VIMDLL
 __declspec(dllimport)
 #endif
-int _cdecl VimMain(int argc, char **argv);
+int VimMain(int argc, char **argv);
 #ifndef VIMDLL
-void _cdecl SaveInst(HINSTANCE hInst);
+void SaveInst(HINSTANCE hInst);
 #endif
 
 #ifndef PROTO
diff --git a/src/os_win32.c b/src/os_win32.c
index cbb09af..54ca4de 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -146,11 +146,6 @@
 # define __stdcall /* empty */
 #endif
 
-#if defined(__BORLANDC__)
-/* Strangely Borland uses a non-standard name. */
-# define wcsicmp(a, b) wcscmpi((a), (b))
-#endif
-
 #if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
 /* Win32 Console handles for input and output */
 static HANDLE g_hConIn  = INVALID_HANDLE_VALUE;
@@ -941,9 +936,6 @@
 
 /* The return code indicates key code size. */
     static int
-#ifdef __BORLANDC__
-    __stdcall
-#endif
 win32_kbd_patch_key(
     KEY_EVENT_RECORD *pker)
 {
@@ -6695,8 +6687,6 @@
     int
 mch_open(const char *name, int flags, int mode)
 {
-    /* _wopen() does not work with Borland C 5.5: creates a read-only file. */
-#ifndef __BORLANDC__
     WCHAR	*wn;
     int		f;
 
@@ -6707,16 +6697,6 @@
     f = _wopen(wn, flags, mode);
     vim_free(wn);
     return f;
-#else
-    /* open() can open a file which name is longer than _MAX_PATH bytes
-     * and shorter than _MAX_PATH characters successfully, but sometimes it
-     * causes unexpected error in another part. We make it an error explicitly
-     * here. */
-    if (strlen(name) >= _MAX_PATH)
-	return -1;
-
-    return open(name, flags, mode);
-#endif
 }
 
 /*
diff --git a/src/os_win32.h b/src/os_win32.h
index ea10182..2169bd3 100644
--- a/src/os_win32.h
+++ b/src/os_win32.h
@@ -53,12 +53,10 @@
 
 #define FEAT_SHORTCUT		/* resolve shortcuts */
 
-#if (!defined(__BORLANDC__) || __BORLANDC__ >= 0x550) \
-	&& (!defined(_MSC_VER) || _MSC_VER > 1020)
+#if (!defined(_MSC_VER) || _MSC_VER > 1020)
 /*
  * Access Control List (actually security info).
- * Borland has the acl stuff only in version 5.5 and later.
- * MSVC in 5.0, not in 4.2, don't know about 4.3.
+ * MSVC has acl stuff only in 5.0, not in 4.2, don't know about 4.3.
  */
 # define HAVE_ACL
 #endif
@@ -142,8 +140,8 @@
 # define IO_REPARSE_TAG_SYMLINK		0xA000000C
 #endif
 
-#if defined(_MSC_VER) || defined(__BORLANDC__)
-    /* Support for __try / __except.  All versions of MSVC and Borland C are
+#if defined(_MSC_VER)
+    /* Support for __try / __except.  All versions of MSVC are
      * expected to have this.  Any other compilers that support it? */
 # define HAVE_TRY_EXCEPT 1
 # include <malloc.h>		/* for _resetstkoflw() */
@@ -206,11 +204,7 @@
 # define HAVE_SETENV
 #endif
 #define mch_getenv(x) (char_u *)getenv((char *)(x))
-#ifdef __BORLANDC__
-# define vim_mkdir(x, y) mkdir(x)
-#else
-# define vim_mkdir(x, y) mch_mkdir(x)
-#endif
+#define vim_mkdir(x, y) mch_mkdir(x)
 
 /* Enable common dialogs input unicode from IME if possible. */
 #define pDispatchMessage DispatchMessageW
diff --git a/src/proto.h b/src/proto.h
index e34af85..8027232 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -42,8 +42,7 @@
 #  include "os_win32.pro"
 #  include "os_mswin.pro"
 #  include "winclip.pro"
-#  if (defined(__GNUC__) && !defined(__MINGW32__)) \
-	|| (defined(__BORLANDC__) && __BORLANDC__ < 0x502)
+#  if (defined(__GNUC__) && !defined(__MINGW32__))
 extern int _stricoll(char *a, char *b);
 #  endif
 # endif
@@ -108,73 +107,45 @@
 # endif
 
 /* These prototypes cannot be produced automatically. */
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-smsg(const char *, ...)
+int smsg(const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 1, 0)))
 #endif
     ;
 
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-smsg_attr(int, const char *, ...)
+int smsg_attr(int, const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 2, 3)))
 #endif
     ;
 
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-smsg_attr_keep(int, const char *, ...)
+int smsg_attr_keep(int, const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 2, 3)))
 #endif
     ;
 
 /* These prototypes cannot be produced automatically. */
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-semsg(const char *, ...)
+int semsg(const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 1, 0)))
 #endif
     ;
 
 /* These prototypes cannot be produced automatically. */
-void
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-siemsg(const char *, ...)
+void siemsg(const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 1, 0)))
 #endif
     ;
 
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-vim_snprintf_add(char *, size_t, const char *, ...)
+int vim_snprintf_add(char *, size_t, const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 3, 4)))
 #endif
     ;
 
-int
-#  ifdef __BORLANDC__
-_RTLENTRYF
-#  endif
-vim_snprintf(char *, size_t, const char *, ...)
+int vim_snprintf(char *, size_t, const char *, ...)
 #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
     __attribute__((format(printf, 3, 4)))
 #endif
@@ -209,7 +180,7 @@
 # endif
 # include "search.pro"
 # ifdef FEAT_SIGNS
-# include "sign.pro"
+#  include "sign.pro"
 # endif
 # include "spell.pro"
 # include "spellfile.pro"
@@ -337,13 +308,7 @@
  */
 #if defined(FEAT_PERL) && !defined(IN_PERL_FILE)
 # define CV void
-# ifdef __BORLANDC__
-  #pragma option -pc
-# endif
 # include "if_perl.pro"
-# ifdef __BORLANDC__
-  #pragma option -p.
-# endif
 # include "if_perlsfio.pro"
 #endif
 
@@ -357,8 +322,4 @@
 void clip_mch_request_selection(VimClipboard *cbd);
 void clip_mch_set_selection(VimClipboard *cbd);
 #endif
-
-#ifdef __BORLANDC__
-# define _PROTO_H
-#endif
 #endif /* !PROTO && !NOPROTO */
diff --git a/src/screen.c b/src/screen.c
index e56d2bc..3ebc244 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2945,9 +2945,6 @@
 static buf_T		*current_buf = NULL;
 
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 text_prop_compare(const void *s1, const void *s2)
 {
     int  idx1, idx2;
diff --git a/src/spell.c b/src/spell.c
index 947bee5..8f32fd7 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -6760,20 +6760,13 @@
     }
 }
 
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-sug_compare(const void *s1, const void *s2);
+static int sug_compare(const void *s1, const void *s2);
 
 /*
  * Function given to qsort() to sort the suggestions on st_score.
  * First on "st_score", then "st_altscore" then alphabetically.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 sug_compare(const void *s1, const void *s2)
 {
     suggest_T	*p1 = (suggest_T *)s1;
diff --git a/src/spellfile.c b/src/spellfile.c
index 00f6b7c..2616afb 100644
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -4802,19 +4802,12 @@
     return p1 == NULL && p2 == NULL;
 }
 
-static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
-rep_compare(const void *s1, const void *s2);
+static int rep_compare(const void *s1, const void *s2);
 
 /*
  * Function given to qsort() to sort the REP items on "from" string.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 rep_compare(const void *s1, const void *s2)
 {
     fromto_T	*p1 = (fromto_T *)s1;
diff --git a/src/syntax.c b/src/syntax.c
index b492505..537794a 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -5348,9 +5348,6 @@
  * A simple syntax group ID comparison function suitable for use in qsort()
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 syn_compare_stub(const void *v1, const void *v2)
 {
     const short	*s1 = v1;
@@ -6703,9 +6700,6 @@
 } time_entry_T;
 
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 syn_compare_syntime(const void *v1, const void *v2)
 {
     const time_entry_T	*s1 = v1;
diff --git a/src/userfunc.c b/src/userfunc.c
index bd7d2f7..28cf8b8 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -55,16 +55,8 @@
 static void func_do_profile(ufunc_T *fp);
 static void prof_sort_list(FILE *fd, ufunc_T **sorttab, int st_len, char *title, int prefer_self);
 static void prof_func_line(FILE *fd, int count, proftime_T *total, proftime_T *self, int prefer_self);
-static int
-# ifdef __BORLANDC__
-    _RTLENTRYF
-# endif
-	prof_total_cmp(const void *s1, const void *s2);
-static int
-# ifdef __BORLANDC__
-    _RTLENTRYF
-# endif
-	prof_self_cmp(const void *s1, const void *s2);
+static int prof_total_cmp(const void *s1, const void *s2);
+static int prof_self_cmp(const void *s1, const void *s2);
 #endif
 static void funccal_unref(funccall_T *fc, ufunc_T *fp, int force);
 
@@ -2794,9 +2786,6 @@
  * Compare function for total time sorting.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 prof_total_cmp(const void *s1, const void *s2)
 {
     ufunc_T	*p1, *p2;
@@ -2810,9 +2799,6 @@
  * Compare function for self time sorting.
  */
     static int
-#ifdef __BORLANDC__
-_RTLENTRYF
-#endif
 prof_self_cmp(const void *s1, const void *s2)
 {
     ufunc_T	*p1, *p2;
diff --git a/src/version.c b/src/version.c
index 182a43a..3b9ef32 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1306,
+/**/
     1305,
 /**/
     1304,
diff --git a/src/vim.h b/src/vim.h
index 2c9149b..05ad07f 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -17,24 +17,6 @@
 # define MSWIN
 #endif
 
-// use fastcall for Borland, when compiling for MS-Windows
-#if defined(__BORLANDC__) && defined(MSWIN) && !defined(DEBUG)
-#if defined(FEAT_PERL) || \
-    defined(FEAT_PYTHON) || \
-    defined(FEAT_PYTHON3) || \
-    defined(FEAT_RUBY) || \
-    defined(FEAT_TCL) || \
-    defined(FEAT_MZSCHEME) || \
-    defined(DYNAMIC_GETTEXT) || \
-    defined(DYNAMIC_ICONV) || \
-    defined(DYNAMIC_IME) || \
-    defined(XPM)
-  #pragma option -pc
-# else
-  #pragma option -pr
-# endif
-#endif
-
 #ifdef MSWIN
 # include "vimio.h"
 #endif
@@ -2163,11 +2145,6 @@
 # define BROWSE_DIR 2	    /* flag for do_browse() */
 #endif
 
-/* stop using fastcall for Borland */
-#if defined(__BORLANDC__) && defined(MSWIN) && !defined(DEBUG)
- #pragma option -p.
-#endif
-
 #ifdef _MSC_VER
 /* Avoid useless warning "conversion from X to Y of greater size". */
  #pragma warning(disable : 4312)
@@ -2344,9 +2321,6 @@
 # undef FF
 # undef OP_DELETE
 # undef OP_JOIN
-# ifdef __BORLANDC__
-#  define NOPROTO 1
-# endif
   /* remove MAX and MIN, included by glib.h, redefined by sys/param.h */
 # ifdef MAX
 #  undef MAX
@@ -2374,10 +2348,6 @@
 #  undef bool
 # endif
 
-# ifdef __BORLANDC__
-  /* Borland has the structure stati64 but not _stati64 */
-#  define _stati64 stati64
-# endif
 #endif
 
 /* values for vim_handle_signal() that are not a signal */
diff --git a/src/vim.rc b/src/vim.rc
index 195536c..726cb96 100644
--- a/src/vim.rc
+++ b/src/vim.rc
@@ -12,11 +12,7 @@
 #include <winver.h>
 #include "version.h"
 #include "gui_w32_rc.h"
-// #if defined(__BORLANDC__) || defined(__CYGWIN32__) || defined(__MINGW32__)
-# include <winresrc.h>
-// #else
-// # include <winres.h>
-// #endif
+#include <winresrc.h>
 
 //
 // Icons
diff --git a/src/vimrun.c b/src/vimrun.c
index 13efd91..ece20f8 100644
--- a/src/vimrun.c
+++ b/src/vimrun.c
@@ -23,11 +23,6 @@
 #endif
 #include <windows.h>
 
-#ifdef __BORLANDC__
-# define _kbhit kbhit
-# define _getch getch
-#endif
-
     int
 main(void)
 {
diff --git a/src/xxd/Make_bc5.mak b/src/xxd/Make_bc5.mak
deleted file mode 100644
index 4f44622..0000000
--- a/src/xxd/Make_bc5.mak
+++ /dev/null
@@ -1,18 +0,0 @@
-# The most simplistic Makefile for Win32 (NT and Windows 95).
-# Used for Borland C++.
-
-!if ("$(BOR)"=="")
-BOR = c:\bc5
-!endif
-!if ("$(BCC)"=="")
-BCC = bcc32
-!endif
-
-xxd: xxd.exe
-
-xxd.exe: xxd.c
-	$(BCC) -I$(BOR)\include -L$(BOR)\lib -DWIN32 xxd.c $(BOR)\lib\wildargs.obj
-
-clean:
-	- del xxd.obj
-	- del xxd.exe
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index b9f6041..f2192cf 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -81,7 +81,7 @@
 #else
 # include <fcntl.h>
 #endif
-#if defined(WIN32) || defined(__BORLANDC__) || defined(CYGWIN)
+#if defined(WIN32) || defined(CYGWIN)
 # include <io.h>	/* for setmode() */
 #else
 # ifdef UNIX
@@ -96,12 +96,6 @@
 # include <unix.h>	/* for fdopen() on MAC */
 #endif
 
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x0410 && !defined(fileno)
-/* Missing define and prototype grabbed from the BC 4.0 <stdio.h> */
-# define fileno(f)       ((f)->fd)
-FILE   _FAR *_Cdecl _FARFUNC fdopen(int __handle, char _FAR *__type);
-#endif
-
 
 /*  This corrects the problem of missing prototypes for certain functions
  *  in some GNU installations (e.g. SunOS 4.1.x).
@@ -190,7 +184,7 @@
 #endif
 
 #ifndef __P
-# if defined(__STDC__) || defined(WIN32) || defined(__BORLANDC__)
+# if defined(__STDC__) || defined(WIN32)
 #  define __P(a) a
 # else
 #  define __P(a) ()