]> git.pld-linux.org Git - packages/vim.git/blame - 6.2.107
- use new bonobo patch (20040115)
[packages/vim.git] / 6.2.107
CommitLineData
5f6937f1
AM
1To: vim-dev@vim.org
2Subject: Patch 6.2.107 (extra)
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=ISO-8859-1
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 6.2.107 (extra)
11Problem: The NetBeans interface cannot be used on Win32.
12Solution: Add support for the NetBeans for Win32. Add support for reading
13 XPM files on Win32. Also fixes that a sign icon with a space in
14 the file name did not work through the NetBeans interface.
15 (Sergey Khorev)
16 Also: avoid repeating error messages when the connection is lost.
17Files: Makefile, runtime/doc/netbeans.txt, src/Make_bc5.mak,
18 src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
19 src/bigvim.bat, src/feature.h, src/gui_beval.c, src/gui_beval.h,
20 src/gui_w32.c, src/gui_w48.c, src/menu.c, src/nbdebug.c,
21 src/nbdebug.h, src/netbeans.c, src/os_mswin.c, src/os_win32.h,
22 src/proto/gui_beval.pro, src/proto/gui_w32.pro,
23 src/proto/netbeans.pro, src/proto.h, src/version.c, src/vim.h,
24 src/xpm_w32.c, src/xpm_w32.h
25
26
27*** ../vim-6.2.106/Makefile Sun Jun 1 12:07:20 2003
28--- Makefile Sun Oct 12 12:19:02 2003
29***************
30*** 438,443 ****
31--- 438,445 ----
32 src/vim16.rc \
33 src/vimrun.c \
34 src/vimtbar.h \
35+ src/xpm_w32.c \
36+ src/xpm_w32.h \
37 src/xxd/Make_bc3.mak \
38 src/xxd/Make_bc5.mak \
39 src/xxd/Make_cyg.mak \
40***************
41*** 564,569 ****
42--- 566,572 ----
43 src/gui_riscos.h \
44 src/if_sniff.c \
45 src/if_sniff.h \
46+ src/infplist.xml \
47 src/link.390 \
48 src/os_beos.c \
49 src/os_beos.h \
50*** ../vim-6.2.106/runtime/doc/netbeans.txt Sun Jun 1 16:04:00 2003
51--- runtime/doc/netbeans.txt Fri Sep 12 21:37:19 2003
52***************
53*** 1,4 ****
54! *netbeans.txt* For Vim version 6.2. Last change: 2003 Jun 01
55
56
57 VIM REFERENCE MANUAL by Gordon Prieur
58--- 1,4 ----
59! *netbeans.txt* For Vim version 6.2. Last change: 2003 Sep 12
60
61
62 VIM REFERENCE MANUAL by Gordon Prieur
63***************
64*** 67,72 ****
65--- 67,77 ----
66 ==============================================================================
67 3. Configuring Vim for NetBeans *netbeans-configure*
68
69+ For more help installing vim, please read |usr_90.txt| in the Vim User Manual.
70+
71+
72+ On Unix
73+
74 When running configure without arguments the NetBeans interface should be
75 included. That is, if the configure check to find out if your system supports
76 the required features succeeds.
77***************
78*** 81,87 ****
79 If Motif support is required the user must supply XPM libraries. See
80 |workshop-xpm| for details on obtaining the latest version of XPM.
81
82! For more help installing vim, please read |usr_90.txt| in the Vim User Manual.
83
84 ==============================================================================
85 4. Downloading NetBeans *netbeans-download*
86--- 86,99 ----
87 If Motif support is required the user must supply XPM libraries. See
88 |workshop-xpm| for details on obtaining the latest version of XPM.
89
90!
91! On MS-Windows
92!
93! The Win32 support is now in beta stage.
94!
95! To use XPM signs on Win32 (e.g. when using with Netbeans) you can compile
96! XPM by yourself or use precompiled libraries from http://iamphet.nm.ru/xpm
97! (for MS Visual C++) or http://gnuwin32.sourceforge.net (for MinGW).
98
99 ==============================================================================
100 4. Downloading NetBeans *netbeans-download*
101***************
102*** 391,397 ****
103 Not implemented.
104
105 setDot off Make the buffer the current buffer and set the cursor at the
106! specified position.
107 In version 2.1 "lnum/col" can be used instead of "off".
108
109 setExitDelay seconds
110--- 411,418 ----
111 Not implemented.
112
113 setDot off Make the buffer the current buffer and set the cursor at the
114! specified position. If there are folds they are opened to
115! make the cursor line visible.
116 In version 2.1 "lnum/col" can be used instead of "off".
117
118 setExitDelay seconds
119*** ../vim-6.2.106/src/Make_bc5.mak Tue May 13 20:21:37 2003
120--- src/Make_bc5.mak Fri Sep 12 21:42:02 2003
121***************
122*** 72,77 ****
123--- 72,80 ----
124 # (BIG for WIN32, SMALL for DOS16)
125 # WINVER 0x400 or 0x500: minimum Win32 version to support (0x400)
126 # CSCOPE no or yes: include support for Cscope interface (yes)
127+ # NETBEANS no or yes: include support for Netbeans interface (yes if GUI
128+ # is yes)
129+ # XPM define to path to XPM dir to get support for loading XPM images.
130
131 ### BOR: root of the BC installation
132 !if ("$(BOR)"=="")
133***************
134*** 114,119 ****
135--- 117,127 ----
136 CSCOPE = yes
137 !endif
138
139+ ### NETBEANS: yes to enable NetBeans interface support, no to disable it
140+ !if ("$(NETBEANS)"=="") && ("$(GUI)"=="yes")
141+ NETBEANS = yes
142+ !endif
143+
144 ### PERL: uncomment this line if you want perl support in vim
145 # PERL=c:\perl
146
147***************
148*** 190,196 ****
149 ("$(RUBY)"=="") && \
150 ("$(ICONV)"!="yes") && \
151 ("$(IME)"!="yes") && \
152! ("$(MBYTE)"!="yes")
153 FASTCALL = yes
154 !endif
155
156--- 198,205 ----
157 ("$(RUBY)"=="") && \
158 ("$(ICONV)"!="yes") && \
159 ("$(IME)"!="yes") && \
160! ("$(MBYTE)"!="yes") && \
161! ("$(XPM)"=="")
162 FASTCALL = yes
163 !endif
164
165***************
166*** 372,377 ****
167--- 381,399 ----
168 DEFINES = $(DEFINES) -DFEAT_CSCOPE
169 !endif
170
171+ !if ("$(NETBEANS)"=="yes")
172+ DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG
173+ !if ("$(DEBUG)"=="yes")
174+ DEFINES = $(DEFINES) -DNBDEBUG
175+ NBDEBUG_DEP = nbdebug.h nbdebug.c
176+ !endif
177+ !endif
178+
179+ !ifdef XPM
180+ DEFINES = $(DEFINES) -DFEAT_XPM_W32
181+ INCLUDE = $(XPM)\include;$(INCLUDE)
182+ !endif
183+
184 !if ("$(GUI)"=="yes")
185 DEFINES = $(DEFINES) -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
186 !if ("$(DEBUG)"=="yes")
187***************
188*** 448,454 ****
189 LINK = $(BOR)\BIN\ILink32
190 !endif
191 CC = $(BOR)\BIN\Bcc32
192! LFLAGS = -OS -r -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
193 LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
194 CFLAGS = -w-aus -w-par -w-pch -I$(INCLUDE) -d -x- -RT- -k- -Oi $(HEADERS) -f-
195 !endif
196--- 470,476 ----
197 LINK = $(BOR)\BIN\ILink32
198 !endif
199 CC = $(BOR)\BIN\Bcc32
200! LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
201 LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
202 CFLAGS = -w-aus -w-par -w-pch -I$(INCLUDE) -d -x- -RT- -k- -Oi $(HEADERS) -f-
203 !endif
204***************
205*** 512,518 ****
206 $(OBJDIR)\normal.obj \
207 $(OBJDIR)\ops.obj \
208 $(OBJDIR)\option.obj \
209- $(OBJDIR)\pathdef.obj \
210 $(OBJDIR)\quickfix.obj \
211 $(OBJDIR)\regexp.obj \
212 $(OBJDIR)\screen.obj \
213--- 534,539 ----
214***************
215*** 523,529 ****
216 $(OBJDIR)\ui.obj \
217 $(OBJDIR)\undo.obj \
218 $(OBJDIR)\version.obj \
219! $(OBJDIR)\window.obj
220
221 !if ("$(OLE)"=="yes")
222 vimobj = $(vimobj) \
223--- 544,551 ----
224 $(OBJDIR)\ui.obj \
225 $(OBJDIR)\undo.obj \
226 $(OBJDIR)\version.obj \
227! $(OBJDIR)\window.obj \
228! $(OBJDIR)\pathdef.obj
229
230 !if ("$(OLE)"=="yes")
231 vimobj = $(vimobj) \
232***************
233*** 550,560 ****
234 $(OBJDIR)\if_tcl.obj
235 !endif
236
237! !ifdef CSCOPE
238 vimobj = $(vimobj) \
239 $(OBJDIR)\if_cscope.obj
240 !endif
241
242 !if ("$(VIMDLL)"=="yes")
243 vimdllobj = $(vimobj)
244 !if ("$(DEBUG)"=="yes")
245--- 572,592 ----
246 $(OBJDIR)\if_tcl.obj
247 !endif
248
249! !if ("$(CSCOPE)"=="yes")
250 vimobj = $(vimobj) \
251 $(OBJDIR)\if_cscope.obj
252 !endif
253
254+ !if ("$(NETBEANS)"=="yes")
255+ vimobj = $(vimobj) \
256+ $(OBJDIR)\netbeans.obj $(OBJDIR)\gui_beval.obj
257+ !endif
258+
259+ !ifdef XPM
260+ vimobj = $(vimobj) \
261+ $(OBJDIR)\xpm_w32.obj
262+ !endif
263+
264 !if ("$(VIMDLL)"=="yes")
265 vimdllobj = $(vimobj)
266 !if ("$(DEBUG)"=="yes")
267***************
268*** 620,625 ****
269--- 652,663 ----
270 !if ("$(CSCOPE)"=="yes")
271 MSG = $(MSG) CSCOPE
272 !endif
273+ !if ("$(NETBEANS)"=="yes")
274+ MSG = $(MSG) NETBEANS
275+ !endif
276+ !ifdef XPM
277+ MSG = $(MSG) XPM
278+ !endif
279 !ifdef PERL
280 MSG = $(MSG) PERL
281 ! if "$(DYNAMIC_PERL)" == "yes"
282***************
283*** 728,733 ****
284--- 766,774 ----
285 !ifdef TCL
286 -@del tcl.lib
287 !endif
288+ !ifdef XPM
289+ -@del xpm.lib
290+ !endif
291 cd xxd
292 $(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
293 cd ..
294***************
295*** 762,767 ****
296--- 803,811 ----
297 !ifdef TCL
298 $(TCL_LIB_FLAG)tcl.lib+
299 !endif
300+ !ifdef XPM
301+ xpm.lib+
302+ !endif
303 !if ("$(USEDLL)"=="yes")
304 cw32i.lib
305 !else
306***************
307*** 808,813 ****
308--- 852,860 ----
309 !ifdef TCL
310 $(TCL_LIB_FLAG)tcl.lib+
311 !endif
312+ !ifdef XPM
313+ xpm.lib+
314+ !endif
315 !if ("$(USEDLL)"=="yes")
316 cw32i.lib
317 !else
318***************
319*** 842,847 ****
320--- 889,900 ----
321 $(OBJDIR)\if_tcl.obj: if_tcl.c tcl.lib
322 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_tcl.c
323
324+ $(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib
325+ $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc xpm_w32.c
326+
327+ $(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP)
328+ $(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c
329+
330 $(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \
331 vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
332 $(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&|
333***************
334*** 876,881 ****
335--- 929,939 ----
336
337 ruby.lib: $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
338 coff2omf $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib $@
339+
340+ # For some reason, the coff2omf method doesn't work on libXpm.lib, so
341+ # we have to manually generate an import library straight from the DLL.
342+ xpm.lib: $(XPM)\lib\libXpm.lib
343+ implib -a $@ $(XPM)\bin\libXpm.dll
344
345 tcl.lib: $(TCL_LIB)
346 !if ("$(DYNAMIC_TCL)" == "yes")
347*** ../vim-6.2.106/src/Make_cyg.mak Sun Jul 27 13:40:24 2003
348--- src/Make_cyg.mak Fri Sep 12 21:52:50 2003
349***************
350*** 4,10 ****
351 # This compiles Vim as a Windows application. If you want Vim to run as a
352 # Cygwin application use the Makefile (just like on Unix).
353 #
354! # Last updated by Dan Sharp. Last Change: 2003 Jun 22
355 #
356 # GUI no or yes: set to yes if you want the GUI version (yes)
357 # PERL define to path to Perl dir to get Perl support (not defined)
358--- 4,10 ----
359 # This compiles Vim as a Windows application. If you want Vim to run as a
360 # Cygwin application use the Makefile (just like on Unix).
361 #
362! # Last updated by Dan Sharp. Last Change: 2003 Sep 12
363 #
364 # GUI no or yes: set to yes if you want the GUI version (yes)
365 # PERL define to path to Perl dir to get Perl support (not defined)
366***************
367*** 35,40 ****
368--- 35,43 ----
369 # WINVER Lowest Win32 version to support. (0x400)
370 # CSCOPE no or yes: to include cscope interface support (yes)
371 # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
372+ # NETBEANS no or yes: to include netbeans interface support (yes when GUI
373+ # is yes)
374+ # XPM define to path to XPM dir to get XPM image support (not defined)
375 #>>>>> choose options:
376 ifndef GUI
377 GUI=yes
378***************
379*** 76,81 ****
380--- 79,90 ----
381 CSCOPE = yes
382 endif
383
384+ ifndef NETBEANS
385+ ifeq ($(GUI),yes)
386+ NETBEANS = yes
387+ endif
388+ endif
389+
390 ifndef OPTIMIZE
391 OPTIMIZE = MAXSPEED
392 endif
393***************
394*** 266,271 ****
395--- 275,301 ----
396 endif
397
398 ##############################
399+ ifeq (yes, $(NETBEANS))
400+ DEFINES += -DFEAT_NETBEANS_INTG
401+ EXTRA_OBJS += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
402+ EXTRA_LIBS += -lws2_32
403+
404+ ifeq (yes, $(DEBUG))
405+ DEFINES += -DNBDEBUG
406+ NBDEBUG_DEP = nbdebug.h nbdebug.c
407+ endif
408+
409+ endif
410+
411+ ##############################
412+ ifdef XPM
413+ DEFINES += -DFEAT_XPM_W32
414+ INCLUDES += -I$(XPM)/include
415+ EXTRA_OBJS += $(OUTDIR)/xpm_w32.o
416+ EXTRA_LIBS += -L$(XPM)/lib -lXpm
417+ endif
418+
419+ ##############################
420 ifeq (yes, $(OLE))
421 DEFINES += -DFEAT_OLE
422 EXTRA_OBJS += $(OUTDIR)/if_ole.o
423***************
424*** 417,422 ****
425--- 447,455 ----
426
427 $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
428 $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o
429+
430+ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP)
431+ $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
432
433 $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
434 $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o
435*** ../vim-6.2.106/src/Make_ming.mak Tue May 27 21:15:20 2003
436--- src/Make_ming.mak Fri Sep 12 22:03:17 2003
437***************
438*** 52,59 ****
439 OLE=no
440 # Set the default $(WINVER) to make it work with pre-Win2k
441 WINVER = 0x0400
442! #set to yes to enable Cscope support
443 CSCOPE=yes
444
445 # If the user doesn't want gettext, undefine it.
446 ifeq (no, $(GETTEXT))
447--- 52,62 ----
448 OLE=no
449 # Set the default $(WINVER) to make it work with pre-Win2k
450 WINVER = 0x0400
451! # Set to yes to enable Cscope support
452 CSCOPE=yes
453+ # Set to yes to enable Netbeans support
454+ NETBEANS=$(GUI)
455+
456
457 # If the user doesn't want gettext, undefine it.
458 ifeq (no, $(GETTEXT))
459***************
460*** 270,275 ****
461--- 273,291 ----
462 DEFINES += -DFEAT_CSCOPE
463 endif
464
465+ ifeq ($(NETBEANS),yes)
466+ DEFINES += -DFEAT_NETBEANS_INTG
467+ ifeq ($(DEBUG), yes)
468+ DEFINES += -DNBDEBUG
469+ NBDEBUG_INCL = nbdebug.h
470+ NBDEBUG_SRC = nbdebug.c
471+ endif
472+ endif
473+
474+ ifdef XPM
475+ CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include
476+ endif
477+
478 ifeq ($(DEBUG),yes)
479 CFLAGS += -g -fstack-check
480 DEBUG_SUFFIX=d
481***************
482*** 348,353 ****
483--- 364,378 ----
484 ifeq ($(CSCOPE),yes)
485 OBJ += $(OUTDIR)/if_cscope.o
486 endif
487+ ifeq ($(NETBEANS),yes)
488+ OBJ += $(OUTDIR)/netbeans.o $(OUTDIR)/gui_beval.o
489+ LIB += -lws2_32
490+ endif
491+ ifdef XPM
492+ OBJ += $(OUTDIR)/xpm_w32.o
493+ # You'll need libXpm.a from http://gnuwin32.sf.net
494+ LIB += -L $(XPM)/lib -lXpm
495+ endif
496
497
498 ifeq ($(GUI),yes)
499***************
500*** 487,492 ****
501--- 512,520 ----
502 if_perl.c: if_perl.xs typemap
503 perl $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
504 $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
505+
506+ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
507+ $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
508
509 pathdef.c: $(INCL)
510 ifneq (sh.exe, $(SHELL))
511*** ../vim-6.2.106/src/Make_mvc.mak Sun Aug 10 22:37:55 2003
512--- src/Make_mvc.mak Fri Sep 12 22:07:37 2003
513***************
514*** 12,18 ****
515 # nmake -f Make_mvc.mak
516 # This will build the console version of vim with no additional interfaces.
517 # To add interfaces, define any of the following:
518! # GUI interface: GUI=yes
519 # OLE interface: OLE=yes (usually with GUI=yes)
520 # Multibyte support: MBYTE=yes
521 # IME support: IME=yes (requires GUI=yes)
522--- 12,18 ----
523 # nmake -f Make_mvc.mak
524 # This will build the console version of vim with no additional interfaces.
525 # To add interfaces, define any of the following:
526! # GUI interface: GUI=yes (default is no)
527 # OLE interface: OLE=yes (usually with GUI=yes)
528 # Multibyte support: MBYTE=yes
529 # IME support: IME=yes (requires GUI=yes)
530***************
531*** 39,52 ****
532 # TCL_VER=[Tcl version, e.g. 80, 83] (default is 83)
533 # TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.3)
534 # You must set TCL_VER_LONG when you set TCL_VER.
535- # Cscope support: CSCOPE=yes
536 # Debug version: DEBUG=yes
537 # Mapfile: MAP=[no, yes or lines] (default is yes)
538 # no: Don't write a mapfile.
539 # yes: Write a normal mapfile.
540 # lines: Write a mapfile with line numbers (only for VC6 and later)
541 # SNiFF+ interface: SNIFF=yes
542! # Cscope interface: CSCOPE=yes
543 # Iconv library support (always dynamically loaded):
544 # ICONV=[yes or no] (default is yes)
545 # Intl library support (always dynamically loaded):
546--- 39,51 ----
547 # TCL_VER=[Tcl version, e.g. 80, 83] (default is 83)
548 # TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.3)
549 # You must set TCL_VER_LONG when you set TCL_VER.
550 # Debug version: DEBUG=yes
551 # Mapfile: MAP=[no, yes or lines] (default is yes)
552 # no: Don't write a mapfile.
553 # yes: Write a normal mapfile.
554 # lines: Write a mapfile with line numbers (only for VC6 and later)
555 # SNiFF+ interface: SNIFF=yes
556! # Cscope support: CSCOPE=yes
557 # Iconv library support (always dynamically loaded):
558 # ICONV=[yes or no] (default is yes)
559 # Intl library support (always dynamically loaded):
560***************
561*** 57,62 ****
562--- 56,63 ----
563 # Version Support: WINVER=[0x400, 0x500] (default is 0x400)
564 # Processor Version: CPUNR=[i386, i486, i586, i686] (default is i386)
565 # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
566+ # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
567+ # XPM Image Support: XPM=[path to XPM directory]
568 #
569 # You can combine any of these interfaces
570 #
571***************
572*** 173,178 ****
573--- 174,183 ----
574 MULTITHREADED = yes
575 !endif
576
577+ !ifndef CSCOPE
578+ CSCOPE = yes
579+ !endif
580+
581 !if "$(CSCOPE)" == "yes"
582 # CSCOPE - Include support for Cscope
583 CSCOPE_INCL = if_cscope.h
584***************
585*** 180,185 ****
586--- 185,216 ----
587 CSCOPE_DEFS = -DFEAT_CSCOPE
588 !endif
589
590+ !ifndef NETBEANS
591+ NETBEANS = $(GUI)
592+ !endif
593+
594+ !if "$(NETBEANS)" == "yes"
595+ # NETBEANS - Include support for Netbeans integration
596+ NETBEANS_PRO = proto/netbeans.pro
597+ NETBEANS_OBJ = $(OBJDIR)/netbeans.obj $(OBJDIR)/gui_beval.obj
598+ NETBEANS_DEFS = -DFEAT_NETBEANS_INTG
599+ !if "$(DEBUG)" == "yes"
600+ NBDEBUG_DEFS = -DNBDEBUG
601+ NBDEBUG_INCL = nbdebug.h
602+ NBDEBUG_SRC = nbdebug.c
603+ !endif
604+ NETBEANS_LIB = Ws2_32.lib
605+ !endif
606+
607+ !ifdef XPM
608+ # XPM - Include support for XPM signs
609+ # you can get xpm.lib from http://iamphet.nm.ru/xpm or create it yourself
610+ XPM_OBJ = $(OBJDIR)/xpm_w32.obj
611+ XPM_DEFS = -DFEAT_XPM_W32
612+ XPM_LIB = $(XPM)\lib\libXpm.lib
613+ XPM_INC = -I $(XPM)\include
614+ !endif
615+
616 !if defined(USE_MSVCRT)
617 CVARS = $(cvarsdll)
618 !elseif defined(MULTITHREADED)
619***************
620*** 208,215 ****
621 #VIMRUNTIMEDIR = somewhere
622
623 CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
624! $(SNIFF_DEFS) $(CSCOPE_DEFS) $(DEFINES) \
625! -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
626
627 #>>>>> end of choices
628 ###########################################################################
629--- 239,247 ----
630 #VIMRUNTIMEDIR = somewhere
631
632 CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
633! $(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) \
634! $(NBDEBUG_DEFS) $(XPM_DEFS) \
635! $(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
636
637 #>>>>> end of choices
638 ###########################################################################
639***************
640*** 285,291 ****
641 !endif # DEBUG
642
643 INCL = vim.h os_win32.h ascii.h feature.h globals.h keymap.h macros.h \
644! proto.h option.h structs.h term.h $(SNIFF_INCL) $(CSCOPE_INCL)
645
646 OBJ = \
647 $(OUTDIR)\buffer.obj \
648--- 317,324 ----
649 !endif # DEBUG
650
651 INCL = vim.h os_win32.h ascii.h feature.h globals.h keymap.h macros.h \
652! proto.h option.h structs.h term.h $(SNIFF_INCL) $(CSCOPE_INCL) \
653! $(NBDEBUG_INCL)
654
655 OBJ = \
656 $(OUTDIR)\buffer.obj \
657***************
658*** 568,581 ****
659
660 LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc
661 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
662! $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) $(TCL_LIB) $(LINK_PDB)
663
664 all: $(VIM) vimrun.exe install.exe uninstal.exe xxd/xxd.exe GvimExt/gvimext.dll
665
666! $(VIM): $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) version.c version.h
667 $(CC) $(CFLAGS) version.c /Fo$(OUTDIR)/version.obj $(PDB)
668 $(link) $(LINKARGS1) -out:$*.exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
669! $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) \
670 $(OUTDIR)\version.obj $(LINKARGS2)
671
672 $(VIM).exe: $(VIM)
673--- 601,616 ----
674
675 LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc
676 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
677! $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) $(TCL_LIB) \
678! $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
679
680 all: $(VIM) vimrun.exe install.exe uninstal.exe xxd/xxd.exe GvimExt/gvimext.dll
681
682! $(VIM): $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) version.c version.h
683 $(CC) $(CFLAGS) version.c /Fo$(OUTDIR)/version.obj $(PDB)
684 $(link) $(LINKARGS1) -out:$*.exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
685! $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \
686! $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) \
687 $(OUTDIR)\version.obj $(LINKARGS2)
688
689 $(VIM).exe: $(VIM)
690***************
691*** 695,700 ****
692--- 730,737 ----
693
694 $(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c gui_w48.c $(INCL) $(GUI_INCL)
695
696+ $(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
697+
698 if_perl.c : if_perl.xs typemap
699 $(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) -typemap typemap if_perl.xs > if_perl.c
700
701***************
702*** 738,743 ****
703--- 775,782 ----
704
705 $(OUTDIR)/mbyte.obj: $(OUTDIR) mbyte.c $(INCL)
706
707+ $(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL)
708+
709 $(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL)
710
711 $(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL)
712***************
713*** 773,778 ****
714--- 812,820 ----
715
716 $(OUTDIR)/window.obj: $(OUTDIR) window.c $(INCL)
717
718+ $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c
719+ $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c /Fo$(OUTDIR)/xpm_w32.obj $(PDB)
720+
721 $(OUTDIR)/vim.res: $(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
722 $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
723
724***************
725*** 839,844 ****
726 proto/term.pro \
727 proto/ui.pro \
728 proto/undo.pro \
729! proto/window.pro
730
731 # vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
732--- 881,887 ----
733 proto/term.pro \
734 proto/ui.pro \
735 proto/undo.pro \
736! proto/window.pro \
737! $(NETBEANS_PRO)
738
739 # vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
740*** ../vim-6.2.106/src/bigvim.bat Mon Apr 28 21:30:10 2003
741--- src/bigvim.bat Fri Sep 12 22:08:59 2003
742***************
743*** 1,3 ****
744 :: command to build big Vim with OLE, Perl, Python and Tcl
745! nmake -f make_mvc.mak GUI=yes OLE=yes PERL=E:\perl DYNAMIC_PERL=yes PERL_VER=56 PYTHON=e:\python21 DYNAMIC_PYTHON=yes PYTHON_VER=21 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
746
747--- 1,3 ----
748 :: command to build big Vim with OLE, Perl, Python and Tcl
749! nmake -f make_mvc.mak GUI=yes OLE=yes PERL=E:\perl DYNAMIC_PERL=yes PERL_VER=56 PYTHON=e:\python21 DYNAMIC_PYTHON=yes PYTHON_VER=21 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
750
751*** ../vim-6.2.106/src/feature.h Mon Jun 30 22:18:22 2003
752--- src/feature.h Fri Sep 12 22:14:26 2003
753***************
754*** 1109,1118 ****
755 #endif
756
757 /*
758! * The Netbeans features currently only work with Motif and GTK.
759 * It also requires +listcmds and +eval.
760 */
761! #if ((!defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK)) \
762 || !defined(FEAT_LISTCMDS) || !defined(FEAT_EVAL)) \
763 && defined(FEAT_NETBEANS_INTG)
764 # undef FEAT_NETBEANS_INTG
765--- 1109,1118 ----
766 #endif
767
768 /*
769! * The Netbeans features currently only work with Motif and GTK and Win32.
770 * It also requires +listcmds and +eval.
771 */
772! #if ((!defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)) \
773 || !defined(FEAT_LISTCMDS) || !defined(FEAT_EVAL)) \
774 && defined(FEAT_NETBEANS_INTG)
775 # undef FEAT_NETBEANS_INTG
776***************
777*** 1139,1150 ****
778 * Currently only for Athena and Motif.
779 */
780 #if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \
781! || defined(FEAT_GUI_GTK)) \
782! && ( (defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_GTK)) \
783 || defined(FEAT_SUN_WORKSHOP) \
784 || defined(FEAT_NETBEANS_INTG))
785 # define FEAT_BEVAL
786! # if !defined(FEAT_XFONTSET) && !defined(FEAT_GUI_GTK)
787 # define FEAT_XFONTSET
788 # endif
789 #endif
790--- 1139,1152 ----
791 * Currently only for Athena and Motif.
792 */
793 #if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \
794! || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)) \
795! && ( (defined(FEAT_TOOLBAR) \
796! && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)) \
797 || defined(FEAT_SUN_WORKSHOP) \
798 || defined(FEAT_NETBEANS_INTG))
799 # define FEAT_BEVAL
800! # if !defined(FEAT_XFONTSET) && !defined(FEAT_GUI_GTK) \
801! && !defined(FEAT_GUI_W32)
802 # define FEAT_XFONTSET
803 # endif
804 #endif
805*** ../vim-6.2.106/src/gui_beval.c Sat May 31 22:30:51 2003
806--- src/gui_beval.c Fri Sep 12 22:17:52 2003
807***************
808*** 12,17 ****
809--- 12,20 ----
810
811 #if defined(FEAT_BEVAL) || defined(PROTO)
812
813+ /* on Win32 only gui_mch_get_beval_info is required */
814+ #if !defined(FEAT_GUI_W32) || defined(PROTO)
815+
816 #ifdef FEAT_GUI_GTK
817 # include <gdk/gdkkeysyms.h>
818 # include <gtk/gtk.h>
819***************
820*** 194,199 ****
821--- 197,203 ----
822 return current_beval;
823 }
824 #endif
825+ #endif /* !FEAT_GUI_W32 */
826
827 #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) || defined(PROTO)
828 /*
829***************
830*** 256,265 ****
831 if (VIsual_active
832 && wp->w_buffer == curwin->w_buffer
833 && (lnum == spos->lnum
834! ? col >= spos->col
835 : lnum > spos->lnum)
836 && (lnum == epos->lnum
837! ? col <= epos->col
838 : lnum < epos->lnum))
839 {
840 /* Visual mode and pointing to the line with the
841--- 260,269 ----
842 if (VIsual_active
843 && wp->w_buffer == curwin->w_buffer
844 && (lnum == spos->lnum
845! ? col >= (int)spos->col
846 : lnum > spos->lnum)
847 && (lnum == epos->lnum
848! ? col <= (int)epos->col
849 : lnum < epos->lnum))
850 {
851 /* Visual mode and pointing to the line with the
852***************
853*** 300,305 ****
854--- 304,311 ----
855 return FAIL;
856 }
857
858+ # if !defined(FEAT_GUI_W32) || defined(PROTO)
859+
860 /*
861 * Show a balloon with "mesg".
862 */
863***************
864*** 314,321 ****
865 else
866 undrawBalloon(beval);
867 }
868! #endif
869
870 #if defined(FEAT_BEVAL_TIP) || defined(PROTO)
871 /*
872 * Hide the given balloon.
873--- 320,329 ----
874 else
875 undrawBalloon(beval);
876 }
877! # endif /* FEAT_GUI_W32 */
878! #endif /* FEAT_SUN_WORKSHOP || FEAT_NETBEANS_INTG || PROTO */
879
880+ #if !defined(FEAT_GUI_W32) || defined(PROTO)
881 #if defined(FEAT_BEVAL_TIP) || defined(PROTO)
882 /*
883 * Hide the given balloon.
884***************
885*** 1255,1259 ****
886--- 1263,1268 ----
887 }
888
889 #endif /* !FEAT_GUI_GTK */
890+ #endif /* !FEAT_GUI_W32 */
891
892 #endif /* FEAT_BEVAL */
893*** ../vim-6.2.106/src/gui_beval.h Sat Apr 19 16:06:43 2003
894--- src/gui_beval.h Mon Sep 29 09:56:44 2003
895***************
896*** 13,19 ****
897 #ifdef FEAT_GUI_GTK
898 # include <gtk/gtkwidget.h>
899 #else
900! # include <X11/Intrinsic.h>
901 #endif
902
903 typedef enum
904--- 13,21 ----
905 #ifdef FEAT_GUI_GTK
906 # include <gtk/gtkwidget.h>
907 #else
908! # if defined(FEAT_GUI_X11)
909! # include <X11/Intrinsic.h>
910! # endif
911 #endif
912
913 typedef enum
914***************
915*** 36,41 ****
916--- 38,44 ----
917 int y;
918 unsigned int state; /* Button/Modifier key state */
919 #else
920+ # if !defined(FEAT_GUI_W32)
921 Widget target; /* widget we are monitoring */
922 Widget balloonShell;
923 Widget balloonLabel;
924***************
925*** 47,58 ****
926 Position x_root;
927 Position y_root;
928 int state; /* Button/Modifier key state */
929 #endif
930 int ts; /* tabstop setting for this buffer */
931 char_u *msg;
932 void (*msgCB)();
933 void *clientData; /* For callback */
934! #ifndef FEAT_GUI_GTK
935 Dimension screen_width; /* screen width in pixels */
936 Dimension screen_height; /* screen height in pixels */
937 #endif
938--- 50,68 ----
939 Position x_root;
940 Position y_root;
941 int state; /* Button/Modifier key state */
942+ # else
943+ HWND target;
944+ HWND balloon;
945+ int x;
946+ int y;
947+ BeState showState; /* tells us whats currently going on */
948+ # endif
949 #endif
950 int ts; /* tabstop setting for this buffer */
951 char_u *msg;
952 void (*msgCB)();
953 void *clientData; /* For callback */
954! #if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
955 Dimension screen_width; /* screen width in pixels */
956 Dimension screen_height; /* screen height in pixels */
957 #endif
958*** ../vim-6.2.106/src/gui_w32.c Fri Jul 25 22:43:59 2003
959--- src/gui_w32.c Mon Sep 29 11:29:15 2003
960***************
961*** 44,49 ****
962--- 44,52 ----
963 */
964 #include "gui_w48.c"
965
966+ #ifdef FEAT_XPM_W32
967+ # include "xpm_w32.h"
968+ #endif
969
970 #ifdef __MINGW32__
971 /*
972***************
973*** 170,175 ****
974--- 173,192 ----
975 #endif
976
977
978+ #ifdef FEAT_BEVAL
979+ # define ID_BEVAL_TOOLTIP 200
980+ # define BEVAL_TEXT_LEN MAXPATHL
981+
982+ static void make_tooltip __ARGS((BalloonEval *beval, char *text, POINT pt));
983+ static void delete_tooltip __ARGS((BalloonEval *beval));
984+ static VOID CALLBACK BevalTimerProc __ARGS((HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime));
985+ void TrackUserActivity __ARGS((UINT uMsg));
986+
987+ static BalloonEval *cur_beval = NULL;
988+ static UINT BevalTimerId = 0;
989+ static DWORD LastActivity = 0;
990+ #endif
991+
992 /* Local variables: */
993
994 #ifdef FEAT_MENU
995***************
996*** 182,188 ****
997 # define USE_SYSMENU_FONT
998 #endif
999
1000-
1001 #define VIM_NAME "vim"
1002 #define VIM_CLASS "Vim"
1003
1004--- 199,204 ----
1005***************
1006*** 287,293 ****
1007 static TMonitorFromWindow pMonitorFromWindow = NULL;
1008 static TGetMonitorInfo pGetMonitorInfo = NULL;
1009 static HANDLE user32_lib = NULL;
1010!
1011 /*
1012 * Return TRUE when running under Windows NT 3.x or Win32s, both of which have
1013 * less fancy GUI APIs.
1014--- 303,311 ----
1015 static TMonitorFromWindow pMonitorFromWindow = NULL;
1016 static TGetMonitorInfo pGetMonitorInfo = NULL;
1017 static HANDLE user32_lib = NULL;
1018! #ifdef FEAT_NETBEANS_INTG
1019! int WSInitialized = FALSE; /* WinSock is initialized */
1020! #endif
1021 /*
1022 * Return TRUE when running under Windows NT 3.x or Win32s, both of which have
1023 * less fancy GUI APIs.
1024***************
1025*** 512,517 ****
1026--- 530,557 ----
1027 }
1028 #endif
1029
1030+ #ifdef FEAT_NETBEANS_INTG
1031+ static void
1032+ _OnWindowPosChanged(
1033+ HWND hwnd,
1034+ const LPWINDOWPOS lpwpos)
1035+ {
1036+ static int x = 0, y = 0, cx = 0, cy = 0;
1037+
1038+ if (WSInitialized && (lpwpos->x != x || lpwpos->y != y
1039+ || lpwpos->cx != cx || lpwpos->cy != cy))
1040+ {
1041+ x = lpwpos->x;
1042+ y = lpwpos->y;
1043+ cx = lpwpos->cx;
1044+ cy = lpwpos->cy;
1045+ netbeans_frame_moved(x, y);
1046+ }
1047+ /* Allow to send WM_SIZE and WM_MOVE */
1048+ FORWARD_WM_WINDOWPOSCHANGED(hwnd, lpwpos, DefWindowProc);
1049+ }
1050+ #endif
1051+
1052 static int
1053 _DuringSizing(
1054 HWND hwnd,
1055***************
1056*** 588,593 ****
1057--- 628,636 ----
1058 HANDLE_MSG(hwnd, WM_VSCROLL, _OnScroll);
1059 // HANDLE_MSG(hwnd, WM_WINDOWPOSCHANGING, _OnWindowPosChanging);
1060 HANDLE_MSG(hwnd, WM_ACTIVATEAPP, _OnActivateApp);
1061+ #ifdef FEAT_NETBEANS_INTG
1062+ HANDLE_MSG(hwnd, WM_WINDOWPOSCHANGED, _OnWindowPosChanged);
1063+ #endif
1064
1065 case WM_QUERYENDSESSION: /* System wants to go down. */
1066 gui_shell_closed(); /* Will exit when no changed buffers. */
1067***************
1068*** 838,843 ****
1069--- 881,914 ----
1070 }
1071 #endif
1072
1073+ #ifdef FEAT_NETBEANS_INTG
1074+ {
1075+ /* stolen from gui_x11.x */
1076+ int arg;
1077+
1078+ for (arg = 1; arg < *argc; arg++)
1079+ if (strncmp("-nb", argv[arg], 3) == 0)
1080+ {
1081+ usingNetbeans++;
1082+ netbeansArg = argv[arg];
1083+ mch_memmove(&argv[arg], &argv[arg + 1],
1084+ (--*argc - arg) * sizeof(char *));
1085+ break; /* enough? */
1086+ }
1087+
1088+ if (usingNetbeans)
1089+ {
1090+ WSADATA wsaData;
1091+ int wsaerr;
1092+
1093+ /* Init WinSock */
1094+ wsaerr = WSAStartup(MAKEWORD(2, 2), &wsaData);
1095+ if (wsaerr == 0)
1096+ WSInitialized = TRUE;
1097+ }
1098+ }
1099+ #endif
1100+
1101 /* get the OS version info */
1102 os_version.dwOSVersionInfoSize = sizeof(os_version);
1103 GetVersionEx(&os_version); /* this call works on Win32s, Win95 and WinNT */
1104***************
1105*** 1034,1039 ****
1106--- 1105,1114 ----
1107 s_findrep_struct.wFindWhatLen = MSWIN_FR_BUFSIZE;
1108 s_findrep_struct.wReplaceWithLen = MSWIN_FR_BUFSIZE;
1109 #endif
1110+ #ifdef FEAT_NETBEANS_INTG
1111+ if (usingNetbeans)
1112+ netbeans_w32_connect();
1113+ #endif
1114
1115 return OK;
1116 }
1117***************
1118*** 3359,3368 ****
1119--- 3434,3451 ----
1120 #endif
1121
1122 #if defined(FEAT_SIGN_ICONS) || defined(PROTO)
1123+
1124+ # ifdef FEAT_XPM_W32
1125+ # define IMAGE_XPM 100
1126+ # endif
1127+
1128 typedef struct _signicon_t
1129 {
1130 HANDLE hImage;
1131 UINT uType;
1132+ #ifdef FEAT_XPM_W32
1133+ HANDLE hShape; /* Mask bitmap handle */
1134+ #endif
1135 } signicon_t;
1136
1137 void
1138***************
1139*** 3399,3404 ****
1140--- 3482,3506 ----
1141 case IMAGE_CURSOR:
1142 DrawIconEx(s_hdc, x, y, (HICON)sign->hImage, w, h, 0, NULL, DI_NORMAL);
1143 break;
1144+ #ifdef FEAT_XPM_W32
1145+ case IMAGE_XPM:
1146+ {
1147+ HDC hdcMem;
1148+ HBITMAP hbmpOld;
1149+
1150+ hdcMem = CreateCompatibleDC(s_hdc);
1151+ hbmpOld = (HBITMAP)SelectObject(hdcMem, sign->hShape);
1152+ /* Make hole */
1153+ BitBlt(s_hdc, x, y, w, h, hdcMem, 0, 0, SRCAND);
1154+
1155+ SelectObject(hdcMem, sign->hImage);
1156+ /* Paint sign */
1157+ BitBlt(s_hdc, x, y, w, h, hdcMem, 0, 0, SRCPAINT);
1158+ SelectObject(hdcMem, hbmpOld);
1159+ DeleteDC(hdcMem);
1160+ }
1161+ break;
1162+ #endif
1163 }
1164 }
1165
1166***************
1167*** 3417,3422 ****
1168--- 3519,3530 ----
1169 case IMAGE_ICON:
1170 DestroyIcon((HICON)sign->hImage);
1171 break;
1172+ #ifdef FEAT_XPM_W32
1173+ case IMAGE_XPM:
1174+ DeleteObject((HBITMAP)sign->hImage);
1175+ DeleteObject((HBITMAP)sign->hShape);
1176+ break;
1177+ #endif
1178 }
1179 }
1180
1181***************
1182*** 3452,3457 ****
1183--- 3560,3572 ----
1184 sign.hImage = (HANDLE)LoadImage(NULL, signfile, sign.uType,
1185 gui.char_width * 2, gui.char_height,
1186 LR_LOADFROMFILE | LR_CREATEDIBSECTION);
1187+ #ifdef FEAT_XPM_W32
1188+ if (!STRICMP(ext, ".xpm"))
1189+ {
1190+ sign.uType = IMAGE_XPM;
1191+ LoadXpmImage(signfile, (HBITMAP *)&sign.hImage, (HBITMAP *)&sign.hShape);
1192+ }
1193+ #endif
1194 }
1195
1196 psign = NULL;
1197***************
1198*** 3479,3482 ****
1199--- 3594,3864 ----
1200 vim_free(sign);
1201 }
1202 }
1203+
1204+ #if defined(FEAT_BEVAL) || defined(PROTO)
1205+
1206+ /* BALLOON-EVAL IMPLEMENTATION FOR WINDOWS.
1207+ * Added by Sergey Khorev
1208+ *
1209+ * The only reused thing is gui_beval.h and gui_mch_get_beval_info()
1210+ * from gui_beval.c (note it uses x and y of the BalloonEval struct
1211+ * to get current mouse position).
1212+ *
1213+ * Trying to use as more Windows services as possible, and as less
1214+ * IE version as possible :)).
1215+ *
1216+ * 1) Don't create ToolTip in gui_mch_create_beval_area, only initialize
1217+ * BalloonEval struct.
1218+ * 2) Enable/Disable simply create/kill BalloonEval Timer
1219+ * 3) When there was enough inactivity, timer procedure posts
1220+ * async request to debugger
1221+ * 4) gui_mch_post_balloon (invoked from netbeans.c) creates tooltip control
1222+ * and performs some actions to show it ASAP
1223+ * 5) WM_NOTOFY:TTN_POP destroys created tooltip
1224+ */
1225+
1226+ static void
1227+ make_tooltip(beval, text, pt)
1228+ BalloonEval *beval;
1229+ char *text;
1230+ POINT pt;
1231+ {
1232+ TOOLINFO ti;
1233+
1234+ beval->balloon = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS,
1235+ NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
1236+ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
1237+ beval->target, NULL, s_hinst, NULL);
1238+
1239+ SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0,
1240+ SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
1241+
1242+ ti.cbSize = sizeof(TOOLINFO);
1243+ ti.uFlags = TTF_SUBCLASS;
1244+ ti.hwnd = beval->target;
1245+ ti.hinst = 0; /* Don't use string resources */
1246+ ti.uId = ID_BEVAL_TOOLTIP;
1247+ ti.lpszText = text;
1248+
1249+ /* Limit ballooneval bounding rect to CursorPos neighbourhood */
1250+ ti.rect.left = pt.x - 3;
1251+ ti.rect.top = pt.y - 3;
1252+ ti.rect.right = pt.x + 3;
1253+ ti.rect.bottom = pt.y + 3;
1254+
1255+ SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)&ti);
1256+ /* Make tooltip appear sooner */
1257+ SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
1258+ /*
1259+ * HACK: force tooltip to appear, because it'll not appear until
1260+ * first mouse move. D*mn M$
1261+ */
1262+ mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
1263+ mouse_event(MOUSEEVENTF_MOVE, -1, -1, 0, 0);
1264+ }
1265+
1266+ static void
1267+ delete_tooltip(beval)
1268+ BalloonEval *beval;
1269+ {
1270+ DestroyWindow(beval->balloon);
1271+ }
1272+
1273+ static VOID CALLBACK
1274+ BevalTimerProc(hwnd, uMsg, idEvent, dwTime)
1275+ HWND hwnd;
1276+ UINT uMsg;
1277+ UINT idEvent;
1278+ DWORD dwTime;
1279+ {
1280+ POINT pt;
1281+ RECT rect;
1282+
1283+ if (cur_beval == NULL || cur_beval->showState == ShS_SHOWING || !p_beval)
1284+ return;
1285+
1286+ GetCursorPos(&pt);
1287+ if (WindowFromPoint(pt) != s_textArea)
1288+ return;
1289+
1290+ ScreenToClient(s_textArea, &pt);
1291+ GetClientRect(s_textArea, &rect);
1292+ if (!PtInRect(&rect, pt))
1293+ return;
1294+
1295+ if (LastActivity > 0
1296+ && (dwTime - LastActivity) >= (DWORD)p_bdlay
1297+ && (cur_beval->showState != ShS_PENDING
1298+ || abs(cur_beval->x - pt.x) > 3
1299+ || abs(cur_beval->y - pt.y) > 3))
1300+ {
1301+ /* Pointer resting in one place long enough, it's time to show
1302+ * the tooltip. */
1303+ cur_beval->showState = ShS_PENDING;
1304+ cur_beval->x = pt.x;
1305+ cur_beval->y = pt.y;
1306+
1307+ TRACE0("BevalTimerProc: sending request");
1308+
1309+ if (cur_beval->msgCB != NULL)
1310+ (*cur_beval->msgCB)(cur_beval, 0);
1311+ }
1312+ }
1313+
1314+ void
1315+ gui_mch_disable_beval_area(beval)
1316+ BalloonEval *beval;
1317+ {
1318+ TRACE0("gui_mch_disable_beval_area {{{");
1319+ KillTimer(s_textArea, BevalTimerId);
1320+ TRACE0("gui_mch_disable_beval_area }}}");
1321+ }
1322+
1323+ void
1324+ gui_mch_enable_beval_area(beval)
1325+ BalloonEval *beval;
1326+ {
1327+ TRACE0("gui_mch_enable_beval_area |||");
1328+ if (beval == NULL)
1329+ return;
1330+ TRACE0("gui_mch_enable_beval_area {{{");
1331+ BevalTimerId = SetTimer(s_textArea, 0, p_bdlay / 2, (TIMERPROC)BevalTimerProc);
1332+ TRACE0("gui_mch_enable_beval_area }}}");
1333+ }
1334+
1335+ void
1336+ gui_mch_post_balloon(beval, mesg)
1337+ BalloonEval *beval;
1338+ char_u *mesg;
1339+ {
1340+ POINT pt;
1341+ TRACE0("gui_mch_post_balloon {{{");
1342+ if (beval->showState == ShS_SHOWING)
1343+ return;
1344+ GetCursorPos(&pt);
1345+ ScreenToClient(s_textArea, &pt);
1346+
1347+ if (abs(beval->x - pt.x) < 3 && abs(beval->y - pt.y) < 3)
1348+ /* cursor is still here */
1349+ {
1350+ gui_mch_disable_beval_area(cur_beval);
1351+ beval->showState = ShS_SHOWING;
1352+ make_tooltip(beval, mesg, pt);
1353+ }
1354+ TRACE0("gui_mch_post_balloon }}}");
1355+ }
1356+
1357+ BalloonEval *
1358+ gui_mch_create_beval_area(target, mesg, mesgCB, clientData)
1359+ void *target; /* ignored, always use s_textArea */
1360+ char_u *mesg;
1361+ void (*mesgCB)__ARGS((BalloonEval *, int));
1362+ void *clientData;
1363+ {
1364+ /* partially stolen from gui_beval.c */
1365+ BalloonEval *beval;
1366+
1367+ if (mesg != NULL && mesgCB != NULL)
1368+ {
1369+ EMSG(_("E232: Cannot create BalloonEval with both message and callback"));
1370+ return NULL;
1371+ }
1372+
1373+ beval = (BalloonEval *)alloc(sizeof(BalloonEval));
1374+ if (beval != NULL)
1375+ {
1376+ beval->target = s_textArea;
1377+ beval->balloon = NULL;
1378+
1379+ beval->showState = ShS_NEUTRAL;
1380+ beval->x = 0;
1381+ beval->y = 0;
1382+ beval->msg = mesg;
1383+ beval->msgCB = mesgCB;
1384+ beval->clientData = clientData;
1385+
1386+ InitCommonControls();
1387+
1388+ cur_beval = beval;
1389+
1390+ if (p_beval)
1391+ gui_mch_enable_beval_area(beval);
1392+
1393+ }
1394+ return beval;
1395+ }
1396+
1397+ void
1398+ Handle_WM_Notify(hwnd, pnmh)
1399+ HWND hwnd;
1400+ LPNMHDR pnmh;
1401+ {
1402+ if (pnmh->idFrom != ID_BEVAL_TOOLTIP) /* it is not our tooltip */
1403+ return;
1404+
1405+ if (cur_beval != NULL)
1406+ {
1407+ if (pnmh->code == TTN_SHOW)
1408+ {
1409+ TRACE0("TTN_SHOW {{{");
1410+ TRACE0("TTN_SHOW }}}");
1411+ }
1412+ else if (pnmh->code == TTN_POP) /* Before tooltip disappear */
1413+ {
1414+ TRACE0("TTN_POP {{{");
1415+ delete_tooltip(cur_beval);
1416+ gui_mch_enable_beval_area(cur_beval);
1417+ TRACE0("TTN_POP }}}");
1418+
1419+ cur_beval->showState = ShS_NEUTRAL;
1420+ }
1421+ }
1422+ }
1423+
1424+ void TrackUserActivity (uMsg)
1425+ UINT uMsg;
1426+ {
1427+ if ((uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST) ||
1428+ (uMsg >= WM_KEYFIRST && uMsg <= WM_KEYLAST))
1429+ {
1430+ LastActivity = GetTickCount();
1431+ }
1432+ }
1433+
1434+ void
1435+ gui_mch_destroy_beval_area(beval)
1436+ BalloonEval *beval;
1437+ {
1438+ vim_free(beval);
1439+ }
1440+ #endif /* FEAT_BEVAL */
1441+
1442+ #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
1443+ /*
1444+ * We have multiple signs to draw at the same location. Draw the
1445+ * multi-sign indicator (down-arrow) instead. This is the Win32 version.
1446+ */
1447+ void
1448+ netbeans_draw_multisign_indicator(int row)
1449+ {
1450+ int i;
1451+ int y;
1452+ int x;
1453+
1454+ x = 0;
1455+ y = TEXT_Y(row);
1456+
1457+ for (i = 0; i < gui.char_height - 3; i++)
1458+ SetPixel(s_hdc, x+2, y++, gui.currFgColor);
1459+
1460+ SetPixel(s_hdc, x+0, y, gui.currFgColor);
1461+ SetPixel(s_hdc, x+2, y, gui.currFgColor);
1462+ SetPixel(s_hdc, x+4, y++, gui.currFgColor);
1463+ SetPixel(s_hdc, x+1, y, gui.currFgColor);
1464+ SetPixel(s_hdc, x+2, y, gui.currFgColor);
1465+ SetPixel(s_hdc, x+3, y++, gui.currFgColor);
1466+ SetPixel(s_hdc, x+2, y, gui.currFgColor);
1467+ }
1468+ #endif
1469+
1470 #endif
1471*** ../vim-6.2.106/src/gui_w48.c Sat Sep 27 19:40:03 2003
1472--- src/gui_w48.c Fri Oct 3 15:13:55 2003
1473***************
1474*** 28,34 ****
1475 #ifndef __MINGW32__
1476 # include <shellapi.h>
1477 #endif
1478! #ifdef FEAT_TOOLBAR
1479 # include <commctrl.h>
1480 #endif
1481 #ifdef WIN16
1482--- 28,34 ----
1483 #ifndef __MINGW32__
1484 # include <shellapi.h>
1485 #endif
1486! #if defined(FEAT_TOOLBAR) || defined(FEAT_BEVAL)
1487 # include <commctrl.h>
1488 #endif
1489 #ifdef WIN16
1490***************
1491*** 113,123 ****
1492 typedef int UINT;
1493 typedef int WORD;
1494 typedef int WPARAM;
1495! typedef void * HINSTANCE;
1496! typedef void * HMENU;
1497! typedef void * HWND;
1498 typedef void *HDC;
1499 typedef void VOID;
1500 #endif
1501
1502 #ifndef GET_X_LPARAM
1503--- 113,125 ----
1504 typedef int UINT;
1505 typedef int WORD;
1506 typedef int WPARAM;
1507! typedef void *HINSTANCE;
1508! typedef void *HMENU;
1509! typedef void *HWND;
1510 typedef void *HDC;
1511 typedef void VOID;
1512+ typedef int LPNMHDR;
1513+ typedef int LONG;
1514 #endif
1515
1516 #ifndef GET_X_LPARAM
1517***************
1518*** 228,233 ****
1519--- 230,238 ----
1520 {VK_F20, 'F', 'A'},
1521
1522 {VK_F21, 'F', 'B'},
1523+ #ifdef FEAT_NETBEANS_INTG
1524+ {VK_PAUSE, 'F', 'B'}, /* Pause == F21 (see gui_gtk_x11.c) */
1525+ #endif
1526 {VK_F22, 'F', 'C'},
1527 {VK_F23, 'F', 'D'},
1528 {VK_F24, 'F', 'E'}, /* winuser.h defines up to F24 */
1529***************
1530*** 279,284 ****
1531--- 284,295 ----
1532 static int s_timed_out = FALSE;
1533 static int dead_key = 0; /* 0 - no dead key, 1 - dead key pressed */
1534
1535+ #ifdef FEAT_BEVAL
1536+ /* balloon-eval WM_NOTIFY_HANDLER */
1537+ void Handle_WM_Notify __ARGS((HWND hwnd, LPNMHDR pnmh));
1538+ void TrackUserActivity __ARGS((UINT uMsg));
1539+ #endif
1540+
1541 /*
1542 * For control IME.
1543 */
1544***************
1545*** 900,905 ****
1546--- 911,920 ----
1547 s_wParam = wParam;
1548 s_lParam = lParam;
1549
1550+ #ifdef FEAT_BEVAL
1551+ TrackUserActivity(uMsg);
1552+ #endif
1553+
1554 switch (uMsg)
1555 {
1556 HANDLE_MSG(hwnd, WM_LBUTTONDBLCLK,_OnMouseButtonDown);
1557***************
1558*** 919,924 ****
1559--- 934,944 ----
1560 HANDLE_MSG(hwnd, WM_XBUTTONUP, _OnMouseMoveOrRelease);
1561 #endif
1562
1563+ #ifdef FEAT_BEVAL
1564+ case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
1565+ return TRUE;
1566+ #endif
1567+
1568 default:
1569 return DefWindowProc(hwnd, uMsg, wParam, lParam);
1570 }
1571***************
1572*** 1472,1477 ****
1573--- 1492,1505 ----
1574 }
1575 #endif
1576
1577+ #ifdef FEAT_NETBEANS_INTG
1578+ if (msg.message == WM_NETBEANS)
1579+ {
1580+ messageFromNetbeansW32();
1581+ return;
1582+ }
1583+ #endif
1584+
1585 #ifdef FEAT_SNIFF
1586 if (sniff_request_waiting && want_sniff_request)
1587 {
1588*** ../vim-6.2.106/src/menu.c Fri Sep 12 20:13:48 2003
1589--- src/menu.c Fri Sep 12 21:30:03 2003
1590***************
1591*** 764,770 ****
1592 menu->silent[i] = menuarg->silent[0];
1593 }
1594 }
1595! #if defined(FEAT_TOOLBAR) && (defined(FEAT_BEVAL) || defined(FEAT_GUI_GTK))
1596 /* Need to update the menu tip. */
1597 if (modes & MENU_TIP_MODE)
1598 gui_mch_menu_set_tip(menu);
1599--- 764,771 ----
1600 menu->silent[i] = menuarg->silent[0];
1601 }
1602 }
1603! #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) \
1604! && (defined(FEAT_BEVAL) || defined(FEAT_GUI_GTK))
1605 /* Need to update the menu tip. */
1606 if (modes & MENU_TIP_MODE)
1607 gui_mch_menu_set_tip(menu);
1608***************
1609*** 942,948 ****
1610 if (modes & MENU_TIP_MODE)
1611 {
1612 free_menu_string(menu, MENU_INDEX_TIP);
1613! #if defined(FEAT_TOOLBAR) && (defined(FEAT_BEVAL) || defined(FEAT_GUI_GTK))
1614 /* Need to update the menu tip. */
1615 if (gui.in_use)
1616 gui_mch_menu_set_tip(menu);
1617--- 943,950 ----
1618 if (modes & MENU_TIP_MODE)
1619 {
1620 free_menu_string(menu, MENU_INDEX_TIP);
1621! #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) \
1622! && (defined(FEAT_BEVAL) || defined(FEAT_GUI_GTK))
1623 /* Need to update the menu tip. */
1624 if (gui.in_use)
1625 gui_mch_menu_set_tip(menu);
1626*** ../vim-6.2.106/src/nbdebug.c Thu Feb 13 16:41:13 2003
1627--- src/nbdebug.c Tue Sep 16 11:42:48 2003
1628***************
1629*** 38,45 ****
1630 void nbtrace(char *, ...);
1631
1632 static int lookup(char *);
1633 static int errorHandler(Display *, XErrorEvent *);
1634!
1635
1636 /*
1637 * nbdebug_wait - This function can be used to delay or stop execution of vim.
1638--- 38,46 ----
1639 void nbtrace(char *, ...);
1640
1641 static int lookup(char *);
1642+ #ifndef FEAT_GUI_W32
1643 static int errorHandler(Display *, XErrorEvent *);
1644! #endif
1645
1646 /*
1647 * nbdebug_wait - This function can be used to delay or stop execution of vim.
1648***************
1649*** 83,93 ****
1650 char *cp; /* nb_dlevel pointer */
1651
1652 if (log_var && (file = getenv(log_var)) != NULL) {
1653! char buf[BUFSIZ];
1654
1655! sprintf(buf, "date > %s", file);
1656! system(buf);
1657! nb_debug = fopen(file, "a");
1658 if (level_var && (cp = getenv(level_var)) != NULL) {
1659 nb_dlevel = strtoul(cp, NULL, 0);
1660 } else {
1661--- 84,94 ----
1662 char *cp; /* nb_dlevel pointer */
1663
1664 if (log_var && (file = getenv(log_var)) != NULL) {
1665! time_t now;
1666
1667! nb_debug = fopen(file, "w");
1668! time(&now);
1669! fprintf(nb_debug, "%s", asctime(localtime(&now)));
1670 if (level_var && (cp = getenv(level_var)) != NULL) {
1671 nb_dlevel = strtoul(cp, NULL, 0);
1672 } else {
1673***************
1674*** 142,151 ****
1675 char buf[BUFSIZ];
1676
1677 expand_env((char_u *) file, (char_u *) buf, BUFSIZ);
1678! return (access(buf, F_OK) == 0);
1679
1680 } /* end lookup */
1681
1682 static int
1683 errorHandler(
1684 Display *dpy,
1685--- 143,158 ----
1686 char buf[BUFSIZ];
1687
1688 expand_env((char_u *) file, (char_u *) buf, BUFSIZ);
1689! return
1690! #ifndef FEAT_GUI_W32
1691! (access(buf, F_OK) == 0);
1692! #else
1693! (access(buf, 0) == 0);
1694! #endif
1695
1696 } /* end lookup */
1697
1698+ #ifndef FEAT_GUI_W32
1699 static int
1700 errorHandler(
1701 Display *dpy,
1702***************
1703*** 169,175 ****
1704
1705 return 0;
1706 }
1707!
1708
1709
1710 #endif /* NBDEBUG */
1711--- 176,182 ----
1712
1713 return 0;
1714 }
1715! #endif
1716
1717
1718 #endif /* NBDEBUG */
1719*** ../vim-6.2.106/src/nbdebug.h Thu Feb 13 16:41:13 2003
1720--- src/nbdebug.h Fri Sep 12 21:30:03 2003
1721***************
1722*** 45,50 ****
1723--- 45,52 ----
1724 void nbdbg(char *, ...);
1725 void nbtrace(char *, ...);
1726
1727+ void nbdebug_wait __ARGS((u_int wait_flags, char *wait_var, u_int wait_secs));
1728+ void nbdebug_log_init __ARGS((char *log_var, char *level_var));
1729
1730 extern FILE *nb_debug;
1731 extern u_int nb_dlevel; /* nb_debug verbosity level */
1732*** ../vim-6.2.106/src/netbeans.c Sun Aug 10 22:43:27 2003
1733--- src/netbeans.c Mon Sep 15 14:27:09 2003
1734***************
1735*** 2,7 ****
1736--- 2,8 ----
1737 *
1738 * VIM - Vi IMproved by Bram Moolenaar
1739 * Netbeans integration by David Weatherford
1740+ * Adopted for Win32 by Sergey Khorev
1741 *
1742 * Do ":help uganda" in Vim to read copying and usage conditions.
1743 * Do ":help credits" in Vim to see a list of people who contributed.
1744***************
1745*** 20,32 ****
1746 #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
1747
1748 /* Note: when making changes here also adjust configure.in. */
1749! #include <stdarg.h>
1750! #include <fcntl.h>
1751! #include <netdb.h>
1752! #include <netinet/in.h>
1753! #include <sys/socket.h>
1754! #ifdef HAVE_LIBGEN_H
1755! # include <libgen.h>
1756 #endif
1757
1758 #include "version.h"
1759--- 21,54 ----
1760 #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
1761
1762 /* Note: when making changes here also adjust configure.in. */
1763! # include <stdarg.h>
1764! # include <fcntl.h>
1765! #ifdef WIN32
1766! # ifdef DEBUG
1767! # include <tchar.h> /* for _T definition for TRACEn macros */
1768! # endif
1769! # include <io.h>
1770! # include <winsock2.h>
1771! /* WinSock API is separated from C API
1772! * So we can't use read, write, errno...
1773! */
1774! # define sock_errno WSAGetLastError()
1775! # define ECONNREFUSED WSAECONNREFUSED
1776! # define sock_write(sd, buf, len) send(sd, buf, len, 0)
1777! # define sock_read(sd, buf, len) recv(sd, buf, len, 0)
1778! # define sock_close(sd) closesocket(sd)
1779! # define sleep(t) Sleep(t*1000) /* WinAPI Sleep() accepts milliseconds */
1780! #else
1781! # include <netdb.h>
1782! # include <netinet/in.h>
1783! # include <sys/socket.h>
1784! # ifdef HAVE_LIBGEN_H
1785! # include <libgen.h>
1786! # endif
1787! # define sock_errno errno
1788! # define sock_write(sd, buf, len) write(sd, buf, len)
1789! # define sock_read(sd, buf, len) read(sd, buf, len)
1790! # define sock_close(sd) close(sd)
1791 #endif
1792
1793 #include "version.h"
1794***************
1795*** 69,74 ****
1796--- 91,100 ----
1797 #ifdef FEAT_GUI_GTK
1798 static gint inputHandler; /* Cookie for input */
1799 #endif
1800+ #ifdef FEAT_GUI_W32
1801+ static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */
1802+ extern HWND s_hwnd; /* Gvim's Window handle */
1803+ #endif
1804 static int cmdno; /* current command number for reply */
1805 static int haveConnection = FALSE; /* socket is connected and
1806 initialization is done */
1807***************
1808*** 160,172 ****
1809--- 186,234 ----
1810 }
1811 #endif /* FEAT_GUI_GTK */
1812
1813+ #if defined(FEAT_GUI_W32) || defined(PROTO)
1814+ void
1815+ netbeans_w32_connect(void)
1816+ {
1817+ netbeans_connect();
1818+ if (sd > 0)
1819+ {
1820+ /*
1821+ * Tell Windows we are interested in receiving message when there
1822+ * is input on the editor connection socket
1823+ */
1824+ inputHandler = WSAAsyncSelect(sd, s_hwnd, WM_NETBEANS, FD_READ);
1825+ }
1826+ }
1827+
1828+ static void
1829+ netbeans_disconnect(void)
1830+ {
1831+ if (inputHandler == 0)
1832+ {
1833+ WSAAsyncSelect(sd, s_hwnd, 0, 0);
1834+ inputHandler = -1;
1835+ }
1836+ sd = -1;
1837+ haveConnection = FALSE;
1838+
1839+ /* It seems that Motif and GTK versions also need this: */
1840+ gui_mch_destroy_beval_area(balloonEval);
1841+ balloonEval = NULL;
1842+ }
1843+ #endif /* FEAT_GUI_W32 */
1844+
1845 static void
1846 netbeans_connect(void)
1847 {
1848 #ifdef INET_SOCKETS
1849 struct sockaddr_in server;
1850 struct hostent * host;
1851+ # ifdef FEAT_GUI_W32
1852+ u_short port;
1853+ # else
1854 int port;
1855+ #endif
1856 #else
1857 struct sockaddr_un server;
1858 #endif
1859***************
1860*** 243,252 ****
1861 /* Connect to server */
1862 if (connect(sd, (struct sockaddr *)&server, sizeof(server)))
1863 {
1864! nbdebug(("netbeans_connect: Connect failed with errno %d\n", errno));
1865! if (errno == ECONNREFUSED)
1866 {
1867! close(sd);
1868 #ifdef INET_SOCKETS
1869 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
1870 {
1871--- 305,314 ----
1872 /* Connect to server */
1873 if (connect(sd, (struct sockaddr *)&server, sizeof(server)))
1874 {
1875! nbdebug(("netbeans_connect: Connect failed with errno %d\n", sock_errno));
1876! if (sock_errno == ECONNREFUSED)
1877 {
1878! sock_close(sd);
1879 #ifdef INET_SOCKETS
1880 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
1881 {
1882***************
1883*** 265,271 ****
1884 int retries = 36;
1885 int success = FALSE;
1886 while (retries--
1887! && ((errno == ECONNREFUSED) || (errno == EINTR)))
1888 {
1889 nbdebug(("retrying...\n"));
1890 sleep(5);
1891--- 327,333 ----
1892 int retries = 36;
1893 int success = FALSE;
1894 while (retries--
1895! && ((sock_errno == ECONNREFUSED) || (sock_errno == EINTR)))
1896 {
1897 nbdebug(("retrying...\n"));
1898 sleep(5);
1899***************
1900*** 509,522 ****
1901 * Read and process a command from netbeans.
1902 */
1903 /*ARGSUSED*/
1904! #ifdef FEAT_GUI_MOTIF
1905 static void
1906 messageFromNetbeans(XtPointer clientData, int *unused1, XtInputId *unused2)
1907! #endif
1908! #ifdef FEAT_GUI_GTK
1909 static void
1910 messageFromNetbeans(gpointer clientData, gint unused1,
1911 GdkInputCondition unused2)
1912 #endif
1913 {
1914 static char_u *buf = NULL;
1915--- 571,590 ----
1916 * Read and process a command from netbeans.
1917 */
1918 /*ARGSUSED*/
1919! #if defined(FEAT_GUI_W32) || defined(PROTO)
1920! /* Use this one when generating prototypes, the others are static. */
1921! void
1922! messageFromNetbeansW32()
1923! #else
1924! # ifdef FEAT_GUI_MOTIF
1925 static void
1926 messageFromNetbeans(XtPointer clientData, int *unused1, XtInputId *unused2)
1927! # endif
1928! # ifdef FEAT_GUI_GTK
1929 static void
1930 messageFromNetbeans(gpointer clientData, gint unused1,
1931 GdkInputCondition unused2)
1932+ # endif
1933 #endif
1934 {
1935 static char_u *buf = NULL;
1936***************
1937*** 543,556 ****
1938 /* Keep on reading for as long as there is something to read. */
1939 for (;;)
1940 {
1941! len = read(sd, buf, MAXMSGSIZE);
1942 if (len <= 0)
1943 break; /* error or nothing more to read */
1944
1945 /* Store the read message in the queue. */
1946 save(buf, len);
1947 readlen += len;
1948-
1949 if (len < MAXMSGSIZE)
1950 break; /* did read everything that's available */
1951 }
1952--- 611,623 ----
1953 /* Keep on reading for as long as there is something to read. */
1954 for (;;)
1955 {
1956! len = sock_read(sd, buf, MAXMSGSIZE);
1957 if (len <= 0)
1958 break; /* error or nothing more to read */
1959
1960 /* Store the read message in the queue. */
1961 save(buf, len);
1962 readlen += len;
1963 if (len < MAXMSGSIZE)
1964 break; /* did read everything that's available */
1965 }
1966***************
1967*** 600,606 ****
1968 {
1969 /* We assume the server knows that we can safely exit! */
1970 if (sd >= 0)
1971! close(sd);
1972 /* Disconnect before exiting, Motif hangs in a Select error
1973 * message otherwise. */
1974 netbeans_disconnect();
1975--- 667,673 ----
1976 {
1977 /* We assume the server knows that we can safely exit! */
1978 if (sd >= 0)
1979! sock_close(sd);
1980 /* Disconnect before exiting, Motif hangs in a Select error
1981 * message otherwise. */
1982 netbeans_disconnect();
1983***************
1984*** 612,618 ****
1985 {
1986 /* The IDE is breaking the connection. */
1987 if (sd >= 0)
1988! close(sd);
1989 netbeans_disconnect();
1990 return;
1991 }
1992--- 679,685 ----
1993 {
1994 /* The IDE is breaking the connection. */
1995 if (sd >= 0)
1996! sock_close(sd);
1997 netbeans_disconnect();
1998 return;
1999 }
2000***************
2001*** 660,680 ****
2002 struct nbbuf_struct
2003 {
2004 buf_T *bufp;
2005- #if 0 /* never used */
2006- unsigned int netbeansOwns:1;
2007- unsigned int fireCaret:1;
2008- #endif
2009 unsigned int fireChanges:1;
2010 unsigned int initDone:1;
2011 unsigned int modified:1;
2012- #if 0 /* never used */
2013- char *internalname;
2014- #endif
2015 char *displayname;
2016 char_u *partial_line;
2017 int *signmap;
2018! ushort signmaplen;
2019! ushort signmapused;
2020 };
2021
2022 typedef struct nbbuf_struct nbbuf_T;
2023--- 727,740 ----
2024 struct nbbuf_struct
2025 {
2026 buf_T *bufp;
2027 unsigned int fireChanges:1;
2028 unsigned int initDone:1;
2029 unsigned int modified:1;
2030 char *displayname;
2031 char_u *partial_line;
2032 int *signmap;
2033! short_u signmaplen;
2034! short_u signmapused;
2035 };
2036
2037 typedef struct nbbuf_struct nbbuf_T;
2038***************
2039*** 796,802 ****
2040 nbdebug(("EVT: %s", buf));
2041 /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */
2042 if (sd >= 0)
2043! write(sd, buf, STRLEN(buf)); /* ignore errors */
2044 }
2045
2046 /* Give NetBeans a chance to write some clean-up cmds to the socket before
2047--- 856,862 ----
2048 nbdebug(("EVT: %s", buf));
2049 /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */
2050 if (sd >= 0)
2051! sock_write(sd, buf, STRLEN(buf)); /* ignore errors */
2052 }
2053
2054 /* Give NetBeans a chance to write some clean-up cmds to the socket before
2055***************
2056*** 811,820 ****
2057 static void
2058 nb_send(char *buf, char *fun)
2059 {
2060 if (sd < 0)
2061! EMSG2("E630: %s(): write while not connected", fun);
2062! else if (write(sd, buf, STRLEN(buf)) != STRLEN(buf))
2063! EMSG2("E631: %s(): write failed", fun);
2064 }
2065
2066 /*
2067--- 871,894 ----
2068 static void
2069 nb_send(char *buf, char *fun)
2070 {
2071+ /* Avoid giving pages full of error messages when the other side has
2072+ * exited, only mention the first error until the connection works again. */
2073+ static int did_error = FALSE;
2074+
2075 if (sd < 0)
2076! {
2077! if (!did_error)
2078! EMSG2("E630: %s(): write while not connected", fun);
2079! did_error = TRUE;
2080! }
2081! else if (sock_write(sd, buf, STRLEN(buf)) != (int)STRLEN(buf))
2082! {
2083! if (!did_error)
2084! EMSG2("E631: %s(): write failed", fun);
2085! did_error = TRUE;
2086! }
2087! else
2088! did_error = FALSE;
2089 }
2090
2091 /*
2092***************
2093*** 888,893 ****
2094--- 962,969 ----
2095 char_u *p = txt;
2096 char_u *q = buf;
2097
2098+ if (buf == NULL)
2099+ return NULL;
2100 for (; *p; p++)
2101 {
2102 switch (*p)
2103***************
2104*** 1244,1249 ****
2105--- 1320,1331 ----
2106 }
2107 else if (args != NULL)
2108 {
2109+ /* We need to detect EOL style
2110+ * because addAnno passes char-offset
2111+ */
2112+ int ff_detected = EOL_UNKNOWN;
2113+ int buf_was_empty = (buf->bufp->b_ml.ml_flags & ML_EMPTY);
2114+
2115 oldFire = netbeansFireChanges;
2116 netbeansFireChanges = 0;
2117
2118***************
2119*** 1295,1308 ****
2120--- 1377,1413 ----
2121 nbdebug((" PARTIAL[%d]: %s\n", lnum, args));
2122 break;
2123 }
2124+ /* EOL detecting.
2125+ * Not sure how to deal with '\n' on Mac
2126+ * it will fail already in nl = ... above
2127+ */
2128+ if (buf_was_empty && /* There is need to detect EOLs */
2129+ /* AND: string is empty */
2130+ (args == nl
2131+ /* OR hasn't '\r' at the end */
2132+ || *(nl - 1) != '\r'))
2133+ ff_detected = EOL_UNIX;
2134+
2135 *nl = '\0';
2136 nbdebug((" INSERT[%d]: %s\n", lnum, args));
2137 ml_append((linenr_T)(lnum++ - 1), args,
2138 STRLEN(args) + 1, FALSE);
2139 args = nl + 1;
2140 }
2141+
2142 appended_lines_mark(pos->lnum - 1, lnum - pos->lnum);
2143
2144+ /* We can change initial ff without consequences
2145+ * Isn't it a kind of hacking?
2146+ */
2147+ if (buf_was_empty)
2148+ {
2149+ if (ff_detected == EOL_UNKNOWN)
2150+ ff_detected = EOL_DOS;
2151+ set_fileformat(ff_detected, OPT_LOCAL);
2152+ buf->bufp->b_start_ffc = *buf->bufp->b_p_ff;
2153+ }
2154+
2155 if (*args)
2156 {
2157 /*
2158***************
2159*** 1596,1601 ****
2160--- 1701,1709 ----
2161 {
2162 curwin->w_cursor = *pos;
2163 check_cursor();
2164+ #ifdef FEAT_FOLDING
2165+ foldOpenCursor();
2166+ #endif
2167 }
2168 else
2169 nbdebug((" BAD POSITION in setDot: %s\n", s));
2170***************
2171*** 1661,1666 ****
2172--- 1769,1775 ----
2173 int typeNum;
2174 char_u *typeName;
2175 char_u *tooltip;
2176+ char_u *p;
2177 char_u *glyphFile;
2178 int use_fg = 0;
2179 int use_bg = 0;
2180***************
2181*** 1679,1685 ****
2182 args = skipwhite(args + 1);
2183 tooltip = (char_u *)nb_unquote(args, &args);
2184 args = skipwhite(args + 1);
2185! glyphFile = (char_u *)nb_unquote(args, &args);
2186 args = skipwhite(args + 1);
2187 if (STRNCMP(args, "none", 4) == 0)
2188 args += 5;
2189--- 1788,1798 ----
2190 args = skipwhite(args + 1);
2191 tooltip = (char_u *)nb_unquote(args, &args);
2192 args = skipwhite(args + 1);
2193!
2194! p = (char_u *)nb_unquote(args, &args);
2195! glyphFile = vim_strsave_escaped(p, escape_chars);
2196! vim_free(p);
2197!
2198 args = skipwhite(args + 1);
2199 if (STRNCMP(args, "none", 4) == 0)
2200 args += 5;
2201***************
2202*** 2049,2055 ****
2203 char_u *text;
2204 int line;
2205 int col;
2206! char buf[MAXPATHLEN * 2 + 25];
2207 char_u *p;
2208
2209 /* Don't do anything when 'ballooneval' is off, messages scrolled the
2210--- 2192,2198 ----
2211 char_u *text;
2212 int line;
2213 int col;
2214! char buf[MAXPATHL * 2 + 25];
2215 char_u *p;
2216
2217 /* Don't do anything when 'ballooneval' is off, messages scrolled the
2218***************
2219*** 2061,2067 ****
2220 {
2221 /* Send debugger request. Only when the text is of reasonable
2222 * length. */
2223! if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHLEN)
2224 {
2225 p = nb_quote(text);
2226 if (p != NULL)
2227--- 2204,2210 ----
2228 {
2229 /* Send debugger request. Only when the text is of reasonable
2230 * length. */
2231! if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
2232 {
2233 p = nb_quote(text);
2234 if (p != NULL)
2235***************
2236*** 2089,2095 ****
2237 nbdebug(("EVT: %s", cmd));
2238 nb_send(cmd, "netbeans_startup_done");
2239
2240! # if defined(FEAT_BEVAL) && defined(FEAT_GUI_MOTIF)
2241 if (gui.in_use)
2242 {
2243 /*
2244--- 2232,2239 ----
2245 nbdebug(("EVT: %s", cmd));
2246 nb_send(cmd, "netbeans_startup_done");
2247
2248! #ifdef FEAT_BEVAL
2249! # ifdef FEAT_GUI_MOTIF
2250 if (gui.in_use)
2251 {
2252 /*
2253***************
2254*** 2102,2111 ****
2255 if (!p_beval)
2256 gui_mch_disable_beval_area(balloonEval);
2257 }
2258 # endif
2259 }
2260
2261! #if defined(FEAT_GUI_MOTIF) || defined(PROTO)
2262 /*
2263 * Tell netbeans that the window was moved or resized.
2264 */
2265--- 2246,2263 ----
2266 if (!p_beval)
2267 gui_mch_disable_beval_area(balloonEval);
2268 }
2269+ # else
2270+ # if defined(FEAT_GUI_W32) && defined(FEAT_BEVAL)
2271+ balloonEval = gui_mch_create_beval_area(NULL, NULL,
2272+ &netbeans_beval_cb, NULL);
2273+ if (!p_beval)
2274+ gui_mch_disable_beval_area(balloonEval);
2275+ # endif
2276 # endif
2277+ #endif
2278 }
2279
2280! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
2281 /*
2282 * Tell netbeans that the window was moved or resized.
2283 */
2284***************
2285*** 2130,2146 ****
2286 void
2287 netbeans_file_opened(char *filename)
2288 {
2289! char buffer[2*MAXPATHLEN];
2290
2291 if (!haveConnection)
2292 return;
2293
2294 sprintf(buffer, "0:fileOpened=%d \"%s\" %s %s\n",
2295 0,
2296! nb_quote((char_u *)filename),
2297 "F", /* open in NetBeans */
2298 "F"); /* modified */
2299
2300 nbdebug(("EVT: %s", buffer));
2301
2302 nb_send(buffer, "netbeans_file_opened");
2303--- 2282,2303 ----
2304 void
2305 netbeans_file_opened(char *filename)
2306 {
2307! char buffer[2*MAXPATHL];
2308! char_u *q;
2309
2310 if (!haveConnection)
2311 return;
2312
2313+ q = nb_quote((char_u *)filename);
2314+ if (q == NULL)
2315+ return;
2316 sprintf(buffer, "0:fileOpened=%d \"%s\" %s %s\n",
2317 0,
2318! (char *)q,
2319 "F", /* open in NetBeans */
2320 "F"); /* modified */
2321
2322+ vim_free(q);
2323 nbdebug(("EVT: %s", buffer));
2324
2325 nb_send(buffer, "netbeans_file_opened");
2326***************
2327*** 2156,2162 ****
2328 {
2329 int bufno = nb_getbufno(bufp);
2330 nbbuf_T *nbbuf = nb_get_buf(bufno);
2331! char buffer[2*MAXPATHLEN];
2332
2333 if (!haveConnection)
2334 return;
2335--- 2313,2319 ----
2336 {
2337 int bufno = nb_getbufno(bufp);
2338 nbbuf_T *nbbuf = nb_get_buf(bufno);
2339! char buffer[2*MAXPATHL];
2340
2341 if (!haveConnection)
2342 return;
2343***************
2344*** 2265,2275 ****
2345 newtxt[newlen] = '\0';
2346 p = nb_quote(newtxt);
2347 if (p != NULL)
2348 sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", bufno, cmdno, off, p);
2349 vim_free(p);
2350 vim_free(newtxt);
2351- nbdebug(("EVT: %s", buf));
2352- nb_send((char *)buf, "netbeans_inserted");
2353 vim_free(buf);
2354 }
2355
2356--- 2422,2434 ----
2357 newtxt[newlen] = '\0';
2358 p = nb_quote(newtxt);
2359 if (p != NULL)
2360+ {
2361 sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", bufno, cmdno, off, p);
2362+ nbdebug(("EVT: %s", buf));
2363+ nb_send((char *)buf, "netbeans_inserted");
2364+ }
2365 vim_free(p);
2366 vim_free(newtxt);
2367 vim_free(buf);
2368 }
2369
2370***************
2371*** 2339,2348 ****
2372 void
2373 netbeans_keycommand(int key)
2374 {
2375! char buf[2*MAXPATHLEN];
2376 int bufno;
2377 char keyName[60];
2378 long off;
2379
2380 if (!haveConnection)
2381 return;
2382--- 2498,2508 ----
2383 void
2384 netbeans_keycommand(int key)
2385 {
2386! char buf[2*MAXPATHL];
2387 int bufno;
2388 char keyName[60];
2389 long off;
2390+ char_u *q;
2391
2392 if (!haveConnection)
2393 return;
2394***************
2395*** 2355,2365 ****
2396 if (bufno == -1)
2397 {
2398 nbdebug(("got keycommand for non-NetBeans buffer, opening...\n"));
2399 sprintf(buf, "0:fileOpened=%d \"%s\" %s %s\n", 0,
2400! curbuf->b_ffname == NULL ? (char_u *)""
2401! : nb_quote(curbuf->b_ffname),
2402 "T", /* open in NetBeans */
2403 "F"); /* modified */
2404 nbdebug(("EVT: %s", buf));
2405 nb_send(buf, "netbeans_keycommand");
2406
2407--- 2515,2530 ----
2408 if (bufno == -1)
2409 {
2410 nbdebug(("got keycommand for non-NetBeans buffer, opening...\n"));
2411+ q = curbuf->b_ffname == NULL ? (char_u *)""
2412+ : nb_quote(curbuf->b_ffname);
2413+ if (q == NULL)
2414+ return;
2415 sprintf(buf, "0:fileOpened=%d \"%s\" %s %s\n", 0,
2416! q,
2417 "T", /* open in NetBeans */
2418 "F"); /* modified */
2419+ if (curbuf->b_ffname != NULL)
2420+ vim_free(q);
2421 nbdebug(("EVT: %s", buf));
2422 nb_send(buf, "netbeans_keycommand");
2423
2424***************
2425*** 2372,2377 ****
2426--- 2537,2547 ----
2427 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off);
2428 nbdebug(("EVT: %s", buf));
2429 nb_send(buf, "netbeans_keycommand");
2430+
2431+ /* To work on Win32 you must apply patch to ExtEditor module
2432+ * from ExtEdCaret.java.diff - make EVT_newDotAndMark handler
2433+ * more synchronous
2434+ */
2435
2436 /* now send keyCommand event */
2437 sprintf(buf, "%d:keyCommand=%d \"%s\"\n", bufno, cmdno, keyName);
2438*** ../vim-6.2.106/src/os_mswin.c Mon Aug 4 22:04:43 2003
2439--- src/os_mswin.c Fri Sep 12 21:30:03 2003
2440***************
2441*** 163,168 ****
2442--- 163,169 ----
2443 # endif
2444 #endif
2445
2446+ extern int WSInitialized;
2447
2448 /* Don't generate prototypes here, because some systems do have these
2449 * functions. */
2450***************
2451*** 229,234 ****
2452--- 230,242 ----
2453
2454 # ifdef FEAT_OLE
2455 UninitOLE();
2456+ # endif
2457+ # ifdef FEAT_NETBEANS_INTG
2458+ if (WSInitialized)
2459+ {
2460+ WSInitialized = FALSE;
2461+ WSACleanup();
2462+ }
2463 # endif
2464 #ifdef DYNAMIC_GETTEXT
2465 dyn_libintl_end();
2466*** ../vim-6.2.106/src/os_win32.h Wed May 7 22:53:05 2003
2467--- src/os_win32.h Fri Sep 12 21:30:03 2003
2468***************
2469*** 140,145 ****
2470--- 140,146 ----
2471 # define TRACE1(sz, p1) Trace(_T(sz), p1)
2472 # define TRACE2(sz, p1, p2) Trace(_T(sz), p1, p2)
2473 # define TRACE3(sz, p1, p2, p3) Trace(_T(sz), p1, p2, p3)
2474+ # define TRACE4(sz, p1, p2, p3, p4) Trace(_T(sz), p1, p2, p3, p4)
2475
2476 /* In debug version, writes trace messages to debug stream */
2477 void __cdecl
2478***************
2479*** 156,161 ****
2480--- 157,163 ----
2481 # define TRACE1(sz, p1)
2482 # define TRACE2(sz, p1, p2)
2483 # define TRACE3(sz, p1, p2, p3)
2484+ # define TRACE4(sz, p1, p2, p3, p4)
2485
2486 #endif /* !_DEBUG */
2487
2488*** ../vim-6.2.106/src/proto/gui_w32.pro Sun Jun 1 12:26:27 2003
2489--- src/proto/gui_w32.pro Sat Sep 13 21:28:07 2003
2490***************
2491*** 78,81 ****
2492--- 78,88 ----
2493 void gui_mch_drawsign __ARGS((int row, int col, int typenr));
2494 void *gui_mch_register_sign __ARGS((char_u *signfile));
2495 void gui_mch_destroy_sign __ARGS((void *sign));
2496+ void gui_mch_disable_beval_area __ARGS((BalloonEval *beval));
2497+ void gui_mch_enable_beval_area __ARGS((BalloonEval *beval));
2498+ void gui_mch_post_balloon __ARGS((BalloonEval *beval, char_u *mesg));
2499+ BalloonEval *gui_mch_create_beval_area __ARGS((void *target, char_u *mesg, void (*mesgCB)(BalloonEval *, int), void *clientData));
2500+ void Handle_WM_Notify __ARGS((HWND hwnd, LPNMHDR pnmh));
2501+ void gui_mch_destroy_beval_area __ARGS((BalloonEval *beval));
2502+ void netbeans_draw_multisign_indicator __ARGS((int row));
2503 /* vim: set ft=c : */
2504*** ../vim-6.2.106/src/proto/netbeans.pro Sun Jul 27 14:16:53 2003
2505--- src/proto/netbeans.pro Sat Sep 13 21:27:52 2003
2506***************
2507*** 1,6 ****
2508--- 1,8 ----
2509 /* netbeans.c */
2510 void netbeans_Xt_connect __ARGS((void *context));
2511 void netbeans_gtk_connect __ARGS((void));
2512+ void netbeans_w32_connect __ARGS((void));
2513+ void messageFromNetbeansW32 __ARGS((void));
2514 void netbeans_end __ARGS((void));
2515 void netbeans_startup_done __ARGS((void));
2516 void netbeans_frame_moved __ARGS((int new_x, int new_y));
2517***************
2518*** 13,18 ****
2519--- 15,21 ----
2520 void netbeans_saved __ARGS((buf_T *bufp));
2521 void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
2522 int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
2523+ void netbeans_draw_multisign_indicator __ARGS((int row));
2524 void netbeans_draw_multisign_indicator __ARGS((int row));
2525 void netbeans_gutter_click __ARGS((linenr_T lnum));
2526 /* vim: set ft=c : */
2527*** ../vim-6.2.106/src/proto.h Sat May 24 17:27:36 2003
2528--- src/proto.h Tue Sep 30 20:57:53 2003
2529***************
2530*** 172,177 ****
2531--- 172,182 ----
2532 # ifdef FEAT_GUI_W16
2533 # include "gui_w16.pro"
2534 # endif
2535+ /* Ugly solution for "BalloonEval" not being defined while it's used in
2536+ * the prototypes. */
2537+ # ifndef FEAT_BEVAL
2538+ # define BalloonEval int
2539+ # endif
2540 # ifdef FEAT_GUI_W32
2541 # include "gui_w32.pro"
2542 # endif
2543*** ../vim-6.2.106/src/vim.h Thu Sep 11 21:25:44 2003
2544--- src/vim.h Wed Sep 17 22:15:42 2003
2545***************
2546*** 17,23 ****
2547 defined(FEAT_TCL) || \
2548 defined(DYNAMIC_GETTEXT) || \
2549 defined(DYNAMIC_ICONV) || \
2550! defined(DYNAMIC_IME)
2551 # pragma option -pc
2552 # else
2553 # pragma option -pr
2554--- 17,24 ----
2555 defined(FEAT_TCL) || \
2556 defined(DYNAMIC_GETTEXT) || \
2557 defined(DYNAMIC_ICONV) || \
2558! defined(DYNAMIC_IME) || \
2559! defined(XPM)
2560 # pragma option -pc
2561 # else
2562 # pragma option -pr
2563***************
2564*** 1463,1468 ****
2565--- 1470,1479 ----
2566 # ifdef FEAT_GUI_W32
2567 # ifdef FEAT_OLE
2568 # define WM_OLE (WM_APP+0)
2569+ # endif
2570+ # ifdef FEAT_NETBEANS_INTG
2571+ /* message for Netbeans socket event */
2572+ # define WM_NETBEANS (WM_APP+1)
2573 # endif
2574 # endif
2575
2576*** ../vim-6.2.106/src/xpm_w32.c Sun Sep 14 16:09:21 2003
2577--- src/xpm_w32.c Fri Sep 12 21:49:22 2003
2578***************
2579*** 0 ****
2580--- 1,60 ----
2581+ /*
2582+ * Load XPM image.
2583+ *
2584+ * This function is placed in separate file because Xpm headers conflict with
2585+ * Vim ones :(
2586+ *
2587+ * Written by Sergey Khorev.
2588+ * http://iamphet.nm.ru/vim/index.html
2589+ */
2590+
2591+ #ifndef WIN32_LEAN_AND_MEAN
2592+ # define WIN32_LEAN_AND_MEAN
2593+ #endif
2594+ #include <windows.h>
2595+
2596+ /* reduced def from Vim.h */
2597+ #ifndef __ARGS
2598+ # if defined(__STDC__) || defined(__GNUC__) || defined(WIN3264)
2599+ # define __ARGS(x) x
2600+ # else
2601+ # define __ARGS(x) ()
2602+ # endif
2603+ #endif
2604+
2605+ #include "xpm_w32.h"
2606+
2607+ /* Engage Windows support in libXpm */
2608+ #define FOR_MSW
2609+
2610+ #include "xpm.h"
2611+
2612+ /*
2613+ * Tries to load Xpm image from file 'filename'.
2614+ * If fails return -1.
2615+ * success - 0 and image and mask BITMAPS
2616+ */
2617+ int
2618+ LoadXpmImage(filename, hImage, hShape)
2619+ char *filename;
2620+ HBITMAP *hImage;
2621+ HBITMAP *hShape;
2622+ {
2623+ XImage *img; /* loaded image */
2624+ XImage *shp; /* shapeimage */
2625+ XpmAttributes attr;
2626+ int res;
2627+ HDC hdc = CreateCompatibleDC(NULL);
2628+
2629+ attr.valuemask = 0;
2630+ res = XpmReadFileToImage(&hdc, filename, &img, &shp, &attr);
2631+ DeleteDC(hdc);
2632+ if (res < 0)
2633+ return -1;
2634+ else
2635+ {
2636+ *hImage = img->bitmap;
2637+ *hShape = shp->bitmap;
2638+ return 0;
2639+ }
2640+ }
2641*** ../vim-6.2.106/src/xpm_w32.h Sun Sep 14 16:09:21 2003
2642--- src/xpm_w32.h Fri Sep 12 21:49:01 2003
2643***************
2644*** 0 ****
2645--- 1,7 ----
2646+ /*
2647+ * Header file for xpm_w32.c
2648+ */
2649+
2650+ #ifndef XPM_W32__H
2651+ int LoadXpmImage __ARGS((char *filename, HBITMAP *hImage, HBITMAP *hShape));
2652+ #endif
2653*** ../vim-6.2.106/src/version.c Sat Sep 27 20:18:38 2003
2654--- src/version.c Sun Oct 12 16:27:29 2003
2655***************
2656*** 626,629 ****
2657--- 626,636 ----
2658 "-xterm_save",
2659 #endif
2660+ #ifdef WIN3264
2661+ # ifdef FEAT_XPM_W32
2662+ "+xpm_w32",
2663+ # else
2664+ "-xpm_w32",
2665+ # endif
2666+ #endif
2667 NULL
2668 };
2669***************
2670*** 632,633 ****
2671--- 638,641 ----
2672 { /* Add new patch number below this line */
2673+ /**/
2674+ 107,
2675 /**/
2676
2677--
2678If Microsoft would build a car...
2679... Occasionally, executing a maneuver such as a left turn
2680would cause your car to shut down and refuse to restart, in
2681which case you would have to reinstall the engine.
2682
2683 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
2684/// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
2685\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
2686 \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
This page took 0.341282 seconds and 4 git commands to generate.