Skip to content

Commit 32098e3

Browse files
committed
updated for version 7.3.836
Problem: Clipboard does not work on Win32 when compiled with Cygwin. Solution: Move the Win32 clipboard code to a separate file and use it when building with os_unix.c. (Frodak Baksik, Ken Takata)
1 parent 00be0d5 commit 32098e3

23 files changed

+904
-767
lines changed

src/Make_bc5.mak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ vimobj = $(vimobj) \
694694

695695
!if ($(OSTYPE)==WIN32)
696696
vimobj = $(vimobj) \
697-
$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj
697+
$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj
698698
!elif ($(OSTYPE)==DOS16)
699699
vimobj = $(vimobj) \
700700
$(OBJDIR)\os_msdos.obj

src/Make_cyg.mak

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@ OBJ = \
547547
$(OUTDIR)/option.o \
548548
$(OUTDIR)/os_win32.o \
549549
$(OUTDIR)/os_mswin.o \
550+
$(OUTDIR)/winclip.o \
550551
$(OUTDIR)/pathdef.o \
551552
$(OUTDIR)/popupmnu.o \
552553
$(OUTDIR)/quickfix.o \

src/Make_ivc.mak

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ LINK32_OBJS= \
241241
"$(INTDIR)/ops.obj" \
242242
"$(INTDIR)/option.obj" \
243243
"$(INTDIR)/os_mswin.obj" \
244+
"$(INTDIR)/winclip.obj" \
244245
"$(INTDIR)/os_win32.obj" \
245246
"$(INTDIR)/popupmnu.obj" \
246247
"$(INTDIR)/quickfix.obj" \
@@ -600,6 +601,10 @@ SOURCE=.\os_mswin.c
600601
# End Source File
601602
# Begin Source File
602603

604+
SOURCE=.\winclip.c
605+
# End Source File
606+
# Begin Source File
607+
603608
SOURCE=.\os_win32.c
604609
# End Source File
605610
# Begin Source File

src/Make_ming.mak

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,7 @@ OBJ = \
523523
$(OUTDIR)/option.o \
524524
$(OUTDIR)/os_win32.o \
525525
$(OUTDIR)/os_mswin.o \
526+
$(OUTDIR)/winclip.o \
526527
$(OUTDIR)/pathdef.o \
527528
$(OUTDIR)/popupmnu.o \
528529
$(OUTDIR)/quickfix.o \

src/Make_mvc.mak

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,7 @@ OBJ = \
543543
$(OUTDIR)\ops.obj \
544544
$(OUTDIR)\option.obj \
545545
$(OUTDIR)\os_mswin.obj \
546+
$(OUTDIR)\winclip.obj \
546547
$(OUTDIR)\os_win32.obj \
547548
$(OUTDIR)\pathdef.obj \
548549
$(OUTDIR)\popupmnu.obj \
@@ -1149,6 +1150,8 @@ $(OUTDIR)/ops.obj: $(OUTDIR) ops.c $(INCL)
11491150

11501151
$(OUTDIR)/os_mswin.obj: $(OUTDIR) os_mswin.c $(INCL)
11511152

1153+
$(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c $(INCL)
1154+
11521155
$(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h
11531156

11541157
$(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL)
@@ -1256,6 +1259,7 @@ proto.h: \
12561259
proto/ops.pro \
12571260
proto/option.pro \
12581261
proto/os_mswin.pro \
1262+
proto/winclip.pro \
12591263
proto/os_win32.pro \
12601264
proto/popupmnu.pro \
12611265
proto/quickfix.pro \

src/Make_w16.mak

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ ObjFiles = \
107107
$(INTDIR)\os_win16.obj\
108108
$(INTDIR)\os_msdos.obj\
109109
$(INTDIR)\os_mswin.obj\
110+
$(INTDIR)\winclip.obj\
110111
$(INTDIR)\popupmnu.obj\
111112
$(INTDIR)\quickfix.obj\
112113
$(INTDIR)\regexp.obj\

src/Makefile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1638,7 +1638,7 @@ PRO_AUTO = \
16381638
RSRC_DIR = os_mac_rsrc
16391639

16401640
PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
1641-
os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO)
1641+
os_mswin.pro winclip.pro os_beos.pro os_vms.pro $(PERL_PRO)
16421642

16431643
# Default target is making the executable and tools
16441644
all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
@@ -1792,6 +1792,10 @@ os_mswin.pro: os_mswin.c
17921792
$(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@
17931793
echo "/* vim: set ft=c : */" >> proto/$@
17941794

1795+
winclip.pro: winclip.c
1796+
$(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@
1797+
echo "/* vim: set ft=c : */" >> proto/$@
1798+
17951799
os_beos.pro: os_beos.c
17961800
$(CPROTO) -D__BEOS__ -UHAVE_CONFIG_H $< > proto/$@
17971801
echo "/* vim: set ft=c : */" >> proto/$@
@@ -2642,6 +2646,12 @@ objects/os_mac_conv.o: os_mac_conv.c
26422646
objects/os_unix.o: os_unix.c
26432647
$(CCC) -o $@ os_unix.c
26442648

2649+
objects/os_mswin.o: os_mswin.c
2650+
$(CCC) -o $@ os_mswin.c
2651+
2652+
objects/winclip.o: winclip.c
2653+
$(CCC) -o $@ winclip.c
2654+
26452655
objects/pathdef.o: auto/pathdef.c
26462656
$(CCC) -o $@ auto/pathdef.c
26472657

@@ -2970,6 +2980,10 @@ objects/version.o: version.c vim.h auto/config.h feature.h os_unix.h auto/osdef.
29702980
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
29712981
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
29722982
arabic.h version.h
2983+
objects/winclip.o: winclip.c vimio.h vim.h auto/config.h feature.h os_unix.h \
2984+
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
2985+
regexp.h gui.h ex_cmds.h proto.h globals.h farsi.h arabic.h \
2986+
proto/winclip.pro
29732987
objects/window.o: window.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
29742988
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
29752989
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \

src/auto/configure

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8846,6 +8846,27 @@ fi
88468846

88478847

88488848

8849+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN environment" >&5
8850+
$as_echo_n "checking for CYGWIN environment... " >&6; }
8851+
case `uname` in
8852+
CYGWIN*) CYGWIN=yes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
8853+
$as_echo "yes" >&6; }
8854+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN clipboard support" >&5
8855+
$as_echo_n "checking for CYGWIN clipboard support... " >&6; }
8856+
if test "x$with_x" = "xno" ; then
8857+
OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o
8858+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
8859+
$as_echo "yes" >&6; }
8860+
$as_echo "#define FEAT_CYGWIN_WIN32_CLIPBOARD 1" >>confdefs.h
8861+
8862+
else
8863+
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no - using X11" >&5
8864+
$as_echo "no - using X11" >&6; }
8865+
fi ;;
8866+
8867+
*) CYGWIN=no; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8868+
$as_echo "no" >&6; };;
8869+
esac
88498870

88508871
if test "$enable_hangulinput" = "yes"; then
88518872
if test "x$GUITYPE" = "xNONE"; then

src/config.h.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,3 +439,6 @@
439439

440440
/* Define if fcntl()'s F_SETFD command knows about FD_CLOEXEC */
441441
#undef HAVE_FD_CLOEXEC
442+
443+
/* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/
444+
#undef FEAT_CYGWIN_WIN32_CLIPBOARD

src/configure.in

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2474,6 +2474,21 @@ dnl ---------------------------------------------------------------------------
24742474
dnl end of GUI-checking
24752475
dnl ---------------------------------------------------------------------------
24762476

2477+
dnl Check for Cygwin, which needs an extra source file if not using X11
2478+
AC_MSG_CHECKING(for CYGWIN environment)
2479+
case `uname` in
2480+
CYGWIN*) CYGWIN=yes; AC_MSG_RESULT(yes)
2481+
AC_MSG_CHECKING(for CYGWIN clipboard support)
2482+
if test "x$with_x" = "xno" ; then
2483+
OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o
2484+
AC_MSG_RESULT(yes)
2485+
AC_DEFINE(FEAT_CYGWIN_WIN32_CLIPBOARD)
2486+
else
2487+
AC_MSG_RESULT(no - using X11)
2488+
fi ;;
2489+
2490+
*) CYGWIN=no; AC_MSG_RESULT(no);;
2491+
esac
24772492

24782493
dnl Only really enable hangul input when GUI and XFONTSET are available
24792494
if test "$enable_hangulinput" = "yes"; then

0 commit comments

Comments
 (0)