Permalink
Browse files

patch 8.0.0742: terminal feature does not work on MS-Windows

Problem:    Terminal feature does not work on MS-Windows.
Solution:   Use libvterm and libwinpty on MS-Windows. (Yasuhiro Matsumoto)
  • Loading branch information...
brammool committed Jul 22, 2017
1 parent 5f7e7bd commit 8f84c3a8666cea04484ec93fa05386bf33f93f5a
Showing with 589 additions and 340 deletions.
  1. +23 −6 src/INSTALLpc.txt
  2. +5 −1 src/Make_cyg_ming.mak
  3. +2 −2 src/channel.c
  4. +2 −0 src/proto/channel.pro
  5. +555 −331 src/terminal.c
  6. +2 −0 src/version.c
View
@@ -29,10 +29,11 @@ Contents:
10. Building with Perl support
11. Building with Ruby support
12. Building with Tcl support
13. Windows 3.1
14. MS-DOS
13. Building with Terminal support
14. Windows 3.1
15. MS-DOS
15. Installing after building from sources
16. Installing after building from sources
The currently preferred method is using the free Visual C++ Toolkit 2008
@@ -702,19 +703,35 @@ Or when using MinGW (as one line):
TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
13. Windows 3.1x
13. Building with Terminal support
==================================
Vim with Terminal support can be built with MinGW or Cygwin.
Terminal support require winpty which provide following two files.
winpty.dll
winpty-agent.dll
You can download following page:
https://github.com/rprichard/winpty
It don't need header files or libraries. Just put them on your PATH.
14. Windows 3.1x
================
The Windows 3.1x support was removed in patch 7.4.1364.
14. MS-DOS
15. MS-DOS
==========
The MS-DOS support was removed in patch 7.4.1399.
15. Installing after building from sources
16. Installing after building from sources
==========================================
[provided by Michael Soyka]
View
@@ -750,6 +750,7 @@ endif
ifeq ($(TERMINAL),yes)
OBJ += $(OUTDIR)/terminal.o
VTERM_LIB = libvterm/.libs/libvterm.a
endif
@@ -849,7 +850,7 @@ uninstal.exe: uninstal.c
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
$(TARGET): $(OUTDIR) $(OBJ)
$(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)
$(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB) $(VTERM_LIB)
upx: exes
upx gvim.exe
@@ -865,6 +866,9 @@ xxd/xxd.exe: xxd/xxd.c
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
$(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE) CXX='$(CXX)' STATIC_STDCPLUS=$(STATIC_STDCPLUS)
libvterm/.libs/libvterm.a :
cd libvterm && $(MAKE) libvterm.la
clean:
-$(DEL) $(OUTDIR)$(DIRSLASH)*.o
-$(DEL) $(OUTDIR)$(DIRSLASH)*.res
View
@@ -4643,7 +4643,7 @@ job_still_useful(job_T *job)
* changed to JOB_ENDED (i.e. after job_status() returned "dead" first or
* mch_detect_ended_job() returned non-NULL).
*/
static void
void
job_cleanup(job_T *job)
{
if (job->jv_status != JOB_ENDED)
@@ -4773,7 +4773,7 @@ free_unused_jobs(int copyID, int mask)
/*
* Allocate a job. Sets the refcount to one and sets options default.
*/
static job_T *
job_T *
job_alloc(void)
{
job_T *job;
View
@@ -55,6 +55,8 @@ void clear_job_options(jobopt_T *opt);
void free_job_options(jobopt_T *opt);
int get_job_options(typval_T *tv, jobopt_T *opt, int supported);
channel_T *get_channel_arg(typval_T *tv, int check_open, int reading, ch_part_T part);
job_T *job_alloc(void);
void job_cleanup(job_T *job);
void job_free_all(void);
int set_ref_in_job(int copyID);
void job_unref(job_T *job);
Oops, something went wrong.

0 comments on commit 8f84c3a

Please sign in to comment.