Skip to content

Commit 529b4d4

Browse files
committed
Merge branch 'vim-kaoriya' into kaoriya-work2
Conflicts: src/Make_mvc.mak src/fileio.c src/gui_w32.c src/mbyte.c
2 parents cc3bc15 + c5fd670 commit 529b4d4

38 files changed

+2504
-63
lines changed

src/Make_cyg.mak

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
# Cygwin application use the Makefile (just like on Unix).
99
#
1010
# GUI no or yes: set to yes if you want the GUI version (yes)
11+
# DIRECTX no or yes: set to yes if you want use DirectWrite (no)
1112
# PERL define to path to Perl dir to get Perl support (not defined)
1213
# PERL_VER define to version of Perl being used (56)
1314
# DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (yes)
@@ -88,6 +89,10 @@ ifndef ARCH
8889
ARCH = i386
8990
endif
9091

92+
ifndef DIRECTX
93+
DIRECTX = no
94+
endif
95+
9196
ifndef WINVER
9297
WINVER = 0x0500
9398
endif
@@ -468,6 +473,15 @@ endif
468473

469474
endif
470475

476+
##############################
477+
ifeq (yes, $(DIRECTX))
478+
# Only allow DIRECTX for a GUI build.
479+
DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
480+
EXTRA_OBJS += $(OUTDIR)/gui_dwrite.o
481+
EXTRA_LIBS += -ld2d1 -ldwrite
482+
USE_STDCPLUS = yes
483+
endif
484+
471485
##############################
472486
ifdef XPM
473487
# Only allow XPM for a GUI build.
@@ -494,11 +508,7 @@ ifeq (yes, $(OLE))
494508
DEFINES += -DFEAT_OLE
495509
EXTRA_OBJS += $(OUTDIR)/if_ole.o
496510
EXTRA_LIBS += -loleaut32
497-
ifeq (yes, $(STATIC_STDCPLUS))
498-
EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
499-
else
500-
EXTRA_LIBS += -lstdc++
501-
endif
511+
USE_STDCPLUS = yes
502512
endif
503513

504514
##############################
@@ -512,6 +522,15 @@ MKDIR = mkdir
512522
DIRSLASH = \\
513523
endif
514524

525+
##############################
526+
ifeq (yes, $(USE_STDCPLUS))
527+
ifeq (yes, $(STATIC_STDCPLUS))
528+
EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
529+
else
530+
EXTRA_LIBS += -lstdc++
531+
endif
532+
endif
533+
515534
#>>>>> end of choices
516535
###########################################################################
517536

@@ -642,6 +661,9 @@ $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
642661
$(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL)
643662
$(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
644663

664+
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
665+
$(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
666+
645667
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
646668
$(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
647669

src/Make_ming.mak

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ DEBUG=no
3131
OPTIMIZE=MAXSPEED
3232
# set to yes to make gvim, no for vim
3333
GUI=yes
34+
# set to yes if you want to use DirectWrite (DirectX)
35+
DIRECTX=no
3436
# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
3537
# Set to TINY to make minimal version (few features).
3638
FEATURES=BIG
@@ -451,6 +453,14 @@ endif
451453
endif
452454
endif
453455

456+
# DirectWrite (DirectX)
457+
ifeq ($(DIRECTX),yes)
458+
# Only allow DirectWrite for a GUI build.
459+
ifeq (yes, $(GUI))
460+
DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
461+
endif
462+
endif
463+
454464
# Only allow XPM for a GUI build.
455465
ifeq (yes, $(GUI))
456466

@@ -588,6 +598,14 @@ OBJ += $(OUTDIR)/netbeans.o
588598
LIB += -lwsock32
589599
endif
590600
endif
601+
ifeq ($(DIRECTX),yes)
602+
# Only allow DIRECTX for a GUI build.
603+
ifeq (yes, $(GUI))
604+
OBJ += $(OUTDIR)/gui_dwrite.o
605+
LIB += -ld2d1 -ldwrite
606+
USE_STDCPLUS = yes
607+
endif
608+
endif
591609
ifdef XPM
592610
# Only allow XPM for a GUI build.
593611
ifeq (yes, $(GUI))
@@ -645,11 +663,7 @@ endif
645663
ifeq (yes, $(OLE))
646664
LIB += -loleaut32
647665
OBJ += $(OUTDIR)/if_ole.o
648-
ifeq (yes, $(STATIC_STDCPLUS))
649-
LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
650-
else
651-
LIB += -lstdc++
652-
endif
666+
USE_STDCPLUS = yes
653667
endif
654668

655669
ifeq (yes, $(MBYTE))
@@ -673,6 +687,14 @@ endif
673687
DEFINES+=-DDYNAMIC_ICONV
674688
endif
675689

690+
ifeq (yes, $(USE_STDCPLUS))
691+
ifeq (yes, $(STATIC_STDCPLUS))
692+
LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
693+
else
694+
LIB += -lstdc++
695+
endif
696+
endif
697+
676698
all: $(TARGET) vimrun.exe xxd/xxd.exe install.exe uninstal.exe GvimExt/gvimext.dll
677699

678700
vimrun.exe: vimrun.c
@@ -746,6 +768,9 @@ $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
746768
$(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL)
747769
$(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
748770

771+
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
772+
$(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
773+
749774
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
750775
$(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
751776

src/Make_mvc.mak

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
#
2525
# GUI interface: GUI=yes (default is no)
2626
#
27+
# GUI with DirectWrite(DirectX): DIRECTX=yes
28+
# (default is no, requires GUI=yes)
29+
#
2730
# OLE interface: OLE=yes (usually with GUI=yes)
2831
#
2932
# Multibyte support: MBYTE=yes (default is no)
@@ -168,6 +171,9 @@ OBJDIR = .\Obj\G
168171
!else
169172
OBJDIR = .\Obj\C
170173
!endif
174+
!if "$(DIRECTX)" == "yes"
175+
OBJDIR = $(OBJDIR)X
176+
!endif
171177
!if "$(OLE)" == "yes"
172178
OBJDIR = $(OBJDIR)O
173179
!endif
@@ -295,6 +301,13 @@ NBDEBUG_SRC = nbdebug.c
295301
NETBEANS_LIB = WSock32.lib
296302
!endif
297303

304+
# DirectWrite(DirectX)
305+
!if "$(DIRECTX)" == "yes"
306+
DIRECTX_DEFS = -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
307+
DIRECTX_INCL = gui_dwrite.h
308+
DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
309+
!endif
310+
298311
!ifndef XPM
299312
# XPM is not set, use the included xpm files, depending on the architecture.
300313
!if "$(CPU)" == "AMD64"
@@ -545,6 +558,7 @@ OBJ = \
545558
$(OUTDIR)\getchar.obj \
546559
$(OUTDIR)\hardcopy.obj \
547560
$(OUTDIR)\hashtab.obj \
561+
$(OUTDIR)\job.obj \
548562
$(OUTDIR)\main.obj \
549563
$(OUTDIR)\mark.obj \
550564
$(OUTDIR)\mbyte.obj \
@@ -639,6 +653,12 @@ GUI_LIB = \
639653
SUBSYSTEM = console
640654
!endif
641655

656+
!if "$(GUI)" == "yes" && "$(DIRECTX)" == "yes"
657+
CFLAGS = $(CFLAGS) $(DIRECTX_DEFS)
658+
GUI_INCL = $(GUI_INCL) $(DIRECTX_INCL)
659+
GUI_OBJ = $(GUI_OBJ) $(DIRECTX_OBJ)
660+
!endif
661+
642662
# iconv.dll library (dynamically loaded)
643663
!ifndef ICONV
644664
ICONV = yes
@@ -1017,7 +1037,6 @@ clean:
10171037
- if exist *.obj del *.obj
10181038
- if exist $(VIM).exe del $(VIM).exe
10191039
- if exist $(VIM).exe.manifest del $(VIM).exe.manifest
1020-
- if exist $(VIM).lib del $(VIM).lib
10211040
- if exist $(VIM).ilk del $(VIM).ilk
10221041
- if exist $(VIM).pdb del $(VIM).pdb
10231042
- if exist $(VIM).map del $(VIM).map
@@ -1106,12 +1125,16 @@ $(OUTDIR)/hardcopy.obj: $(OUTDIR) hardcopy.c $(INCL)
11061125

11071126
$(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c $(INCL)
11081127

1128+
$(OUTDIR)/job.obj: $(OUTDIR) job.c $(INCL)
1129+
11091130
$(OUTDIR)/gui.obj: $(OUTDIR) gui.c $(INCL) $(GUI_INCL)
11101131

11111132
$(OUTDIR)/gui_beval.obj: $(OUTDIR) gui_beval.c $(INCL) $(GUI_INCL)
11121133

11131134
$(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c gui_w48.c $(INCL) $(GUI_INCL)
11141135

1136+
$(OUTDIR)/gui_dwrite.obj: $(OUTDIR) gui_dwrite.cpp $(INCL) $(GUI_INCL)
1137+
11151138
$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
11161139

11171140
$(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
@@ -1275,6 +1298,7 @@ proto.h: \
12751298
proto/getchar.pro \
12761299
proto/hardcopy.pro \
12771300
proto/hashtab.pro \
1301+
proto/job.pro \
12781302
proto/main.pro \
12791303
proto/mark.pro \
12801304
proto/memfile.pro \

src/buffer.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,8 @@ buf_clear_file(buf)
564564
#endif
565565
buf->b_p_eol = TRUE;
566566
buf->b_start_eol = TRUE;
567+
buf->b_p_lasteol = TRUE;
568+
buf->b_start_lasteol = TRUE;
567569
#ifdef FEAT_MBYTE
568570
buf->b_p_bomb = FALSE;
569571
buf->b_start_bomb = FALSE;
@@ -716,6 +718,9 @@ free_buffer_stuff(buf, free_options)
716718
ga_clear(&buf->b_s.b_langp);
717719
#endif
718720
}
721+
#ifdef FEAT_EVAL
722+
emarklist_cleanup(&buf->b_emarklist);
723+
#endif
719724
#ifdef FEAT_EVAL
720725
vars_clear(&buf->b_vars->dv_hashtab); /* free all internal variables */
721726
hash_init(&buf->b_vars->dv_hashtab);
@@ -2666,6 +2671,9 @@ get_winopts(buf)
26662671
if (p_fdls >= 0)
26672672
curwin->w_p_fdl = p_fdls;
26682673
#endif
2674+
#ifdef FEAT_EVAL
2675+
emarklist_init(&buf->b_emarklist);
2676+
#endif
26692677
#ifdef FEAT_SYN_HL
26702678
check_colorcolumn(curwin);
26712679
#endif

0 commit comments

Comments
 (0)