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/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) ()