# HG changeset patch # User Christian Brabandt # Date 1456593307 -3600 # Node ID 74b15ed0a259ddedb2f437f3f0069c8280ea1274 # Parent 65bed5ff0ba642ef76278a9c4cf865871173e71c commit https://github.com/vim/vim/commit/85b11769ab507c7df93f319fd964fa579701b76b Author: Bram Moolenaar Date: Sat Feb 27 18:13:23 2016 +0100 patch 7.4.1433 Problem: The Sniff interface is no longer useful, the tool has not been available for may years. Solution: Delete the Sniff interface and related code. diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt --- a/runtime/doc/if_sniff.txt +++ b/runtime/doc/if_sniff.txt @@ -1,95 +1,11 @@ -*if_sniff.txt* For Vim version 7.4. Last change: 2005 Mar 29 +*if_sniff.txt* For Vim version 7.4. Last change: 2016 Feb 27 VIM REFERENCE MANUAL by Anton Leherbauer (toni@takefive.co.at) -SNiFF+ and Vim *sniff* - -1. Introduction |sniff-intro| -2. Commands |sniff-commands| -3. Compiling Vim with SNiFF+ interface |sniff-compiling| - -{Vi does not have any of these commands} *E275* *E274* *E276* *E278* *E279* - -The SNiFF+ interface only works, when Vim was compiled with the |+sniff| -feature. - -============================================================================== -1. Introduction *sniff-intro* - -The following features for the use with SNiFF+ are available: - - * Vim can be used for all editing requests - * SNiFF+ recognizes and updates all browsers when a file is saved in Vim - * SNiFF+ commands can be issued directly from Vim - -How to use Vim with SNiFF+ - 1. Make sure SNiFF+ is running. - 2. In the Editor view of the Preferences dialog set the Field named - 'External Editor' to 'Emacs/Vim'. - 4. Start Vim - 5. Connect to SNiFF+ (:sniff connect) - -Once a connection is established, SNiFF+ uses Vim for all requests to show or -edit source code. On the other hand, you can send queries to SNiFF+ with the -:sniff command. - -============================================================================== -2. Commands *sniff-commands* - - *:sniff* *:sni* -:sni[ff] request [symbol] Send request to sniff with optional symbol. - {not in Vi} -:sni[ff] Display all possible requests and the connection - status - -Most requests require a symbol (identifier) as parameter. If it is omitted, -Vim will use the current word under the cursor. -The available requests are listed below: - -request mapping description -------------------------------------------------------------------------------- -connect sc Establish connection with SNiFF+. - Make sure SNiFF+ is prepared for this in the - Preferences -disconnect sq Disconnect from SNiFF+. You can reconnect any - time with :sniff connect (or 'sc') -toggle st Toggle between implementation - and definition file -find-symbol sf Load the symbol into a Symbol Browser -browse-class sb Loads the class into a Class Browser -superclass ss Edit superclass of symbol -overridden so Edit overridden method of symbol -retrieve-file srf Retrieve symbol in current file -retrieve-project srp Retrieve symbol in current project -retrieve-all-projects srP Retrieve symbol in all projects -retrieve-next sR Retrieve symbol using current Retriever - settings -goto-symbol sg Goto definition or implementation of symbol -hierarchy sh Load symbol into the Hierarchy Browser -restr-hier sH same as above but show only related classes -xref-to sxt Start a refers-to query on symbol and - load the results into the Cross Referencer -xref-by sxb Start a referred-by query on symbol -xref-has sxh Start a refers-to components query on symbol -xref-used-by sxu Start a referred-by as component query on - symbol -show-docu sd Show documentation of symbol -gen-docu sD Generate documentation of symbol - -The mappings are defined in a file 'sniff.vim', which is part of every SNiFF+ -product ($SNIFF_DIR/config/sniff.vim). This file is sourced whenever Vim -connects to SNiFF+. - -============================================================================== -3. Compiling Vim with SNiFF+ interface *sniff-compiling* - -To compile Vim with SNiFF+ support, you need two source files of the extra -archive: if_sniff.c and if_sniff.h. -On Unix: Edit the Makefile and uncomment the line "--enable-sniff". Or run -configure manually with this argument. -On NT: Specify SNIFF=yes with your make command. +The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out +sync to before that. vim:tw=78:ts=8:ft=help:norl: diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -82,8 +82,6 @@ # TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.3) # You must set TCL_VER_LONG when you set TCL_VER. # -# SNiFF+ interface: SNIFF=yes -# # Cscope support: CSCOPE=yes # # Iconv library support (always dynamically loaded): @@ -269,16 +267,6 @@ WP64CHECK = /Wp64 CTAGS = ctags !endif -!if "$(SNIFF)" == "yes" -# SNIFF - Include support for SNiFF+. -SNIFF_INCL = if_sniff.h -SNIFF_OBJ = $(OBJDIR)/if_sniff.obj -SNIFF_LIB = shell32.lib -SNIFF_DEFS = -DFEAT_SNIFF -# The SNiFF integration needs multithreaded libraries! -MULTITHREADED = yes -!endif - !ifndef CSCOPE CSCOPE = yes !endif @@ -380,7 +368,7 @@ WINVER = 0x0501 #VIMRUNTIMEDIR = somewhere CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \ - $(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \ + $(CSCOPE_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \ $(NBDEBUG_DEFS) $(XPM_DEFS) \ $(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \ /Fo$(OUTDIR)/ @@ -528,7 +516,7 @@ CFLAGS = $(CFLAGS) /Zl /MTd !endif # DEBUG INCL = vim.h os_win32.h ascii.h feature.h globals.h keymap.h macros.h \ - proto.h option.h structs.h term.h $(SNIFF_INCL) $(CSCOPE_INCL) \ + proto.h option.h structs.h term.h $(CSCOPE_INCL) \ $(NBDEBUG_INCL) OBJ = \ @@ -997,7 +985,7 @@ conflags = $(conflags) /map /mapinfo:lin !ENDIF LINKARGS1 = $(linkdebug) $(conflags) -LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ +LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib \ $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \ $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) @@ -1020,12 +1008,12 @@ all: $(VIM).exe \ $(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \ $(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \ - $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \ + $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \ version.c version.h $(CC) $(CFLAGS) version.c $(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \ $(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \ - $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \ + $(TCL_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \ $(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2) if exist $(VIM).exe.manifest mt.exe -nologo -manifest $(VIM).exe.manifest -updateresource:$(VIM).exe;1 @@ -1212,9 +1200,6 @@ lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).l $(OUTDIR)/if_ruby.obj: $(OUTDIR) if_ruby.c $(INCL) $(CC) $(CFLAGS) $(RUBY_INC) if_ruby.c -$(OUTDIR)/if_sniff.obj: $(OUTDIR) if_sniff.c $(INCL) - $(CC) $(CFLAGS) if_sniff.c - $(OUTDIR)/if_tcl.obj: $(OUTDIR) if_tcl.c $(INCL) $(CC) $(CFLAGS) $(TCL_INC) if_tcl.c diff --git a/src/Make_vms.mms b/src/Make_vms.mms --- a/src/Make_vms.mms +++ b/src/Make_vms.mms @@ -2,7 +2,7 @@ # Makefile for Vim on OpenVMS # # Maintainer: Zoltan Arpadffy -# Last change: 2016 Jan 22 +# Last change: 2016 Feb 27 # # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 # with MMS and MMK @@ -66,7 +66,6 @@ CCVER = YES # VIM_PERL = YES # VIM_PYTHON = YES # VIM_RUBY = YES -# VIM_SNIFF = YES # X Input Method. For entering special languages like chinese and # Japanese. Please define just one: VIM_XIM or VIM_HANGULIN @@ -228,15 +227,6 @@ TCL_LIB = ,OS_VMS_TCL.OPT/OPT TCL_INC = ,dka0:[tcl80.generic] .ENDIF -.IFDEF VIM_SNIFF -# SNIFF related setup. -SNIFF_DEF = ,"FEAT_SNIFF" -SNIFF_SRC = if_sniff.c -SNIFF_OBJ = if_sniff.obj -SNIFF_LIB = -SNIFF_INC = -.ENDIF - .IFDEF VIM_RUBY # RUBY related setup. RUBY_DEF = ,"FEAT_RUBY" @@ -293,7 +283,7 @@ VIMHOST = "''F$TRNLNM("SYS$NODE")'''F$TR .SUFFIXES : .obj .c ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - - $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - + $(TCL_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - $(CFLAGS)$(GUI_FLAG) - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) @@ -302,12 +292,12 @@ ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$( # as $(GUI_INC) - replaced with $(GUI_INC_VER) # Otherwise should not be any other difference. ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - - $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - + $(TCL_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - $(CFLAGS)$(GUI_FLAG) - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \ - $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(SNIFF_LIB) $(RUBY_LIB) + $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB) SRC = blowfish.c buffer.c charset.c crypt.c, crypt_zip.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c \ ex_docmd.c ex_eval.c ex_getln.c if_xcmdsrv.c fileio.c fold.c getchar.c \ @@ -315,7 +305,7 @@ SRC = blowfish.c buffer.c charset.c cryp misc2.c move.c normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c sha256.c\ spell.c syntax.c tag.c term.c termlib.c ui.c undo.c version.c screen.c \ window.c os_unix.c os_vms.c pathdef.c \ - $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(SNIFF_SRC) \ + $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) \ $(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) OBJ = blowfish.obj buffer.obj charset.obj crypt.obj, crypt_zip.obj diff.obj digraph.obj edit.obj eval.obj \ @@ -326,7 +316,7 @@ OBJ = blowfish.obj buffer.obj charset.ob regexp.obj search.obj sha256.obj spell.obj syntax.obj tag.obj term.obj termlib.obj \ ui.obj undo.obj screen.obj version.obj window.obj os_unix.obj \ os_vms.obj pathdef.obj if_mzsch.obj\ - $(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \ + $(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) \ $(RUBY_OBJ) $(HANGULIN_OBJ) $(MZSCH_OBJ) # Default target is making the executable @@ -778,10 +768,6 @@ if_ruby.obj : if_ruby.c vim.h [.auto]con ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ globals.h farsi.h arabic.h version.h -if_sniff.obj : if_sniff.c vim.h [.auto]config.h feature.h os_unix.h \ - ascii.h keymap.h term.h macros.h structs.h regexp.h \ - gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h os_unixx.h gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \ ascii.h keymap.h term.h macros.h structs.h regexp.h \ gui.h gui_beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \ diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -466,9 +466,6 @@ CClink = $(CC) # Uncomment this when you do not want inter process communication. #CONF_OPT_CHANNEL = --disable-channel -# SNIFF - Include support for SNiFF+. -#CONF_OPT_SNIFF = --enable-sniff - # MULTIBYTE - To edit multi-byte characters. # Uncomment this when you want to edit a multibyte language. # It's automatically enabled with normal features, GTK or IME support. @@ -1391,7 +1388,7 @@ OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS) LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(TCL_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca -LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)=" +LINT_EXTRA = -DHANGUL_INPUT -D"__attribute__(x)=" DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS) @@ -1532,14 +1529,13 @@ SRC = $(BASIC_SRC) \ $(PYTHON_SRC) $(PYTHON3_SRC) \ $(TCL_SRC) \ $(RUBY_SRC) \ - $(SNIFF_SRC) \ $(WORKSHOP_SRC) \ $(WSDEBUG_SRC) TAGS_SRC = *.c *.cpp if_perl.xs EXTRA_SRC = hangulin.c if_lua.c if_mzsch.c auto/if_perl.c if_perlsfio.c \ - if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \ + if_python.c if_python3.c if_tcl.c if_ruby.c \ gui_beval.c workshop.c wsdebug.c integration.c \ netbeans.c channel.c \ $(GRESOURCE_SRC) @@ -1561,7 +1557,7 @@ ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $( # The perl sources also don't work well with lint. LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) \ $(PYTHON_SRC) $(PYTHON3_SRC) $(TCL_SRC) \ - $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) \ + $(WORKSHOP_SRC) $(WSDEBUG_SRC) \ $(NETBEANS_SRC) $(CHANNEL_SRC) #LINT_SRC = $(SRC) #LINT_SRC = $(ALL_SRC) @@ -1611,7 +1607,6 @@ OBJ_COMMON = \ objects/sha256.o \ objects/spell.o \ objects/syntax.o \ - $(SNIFF_OBJ) \ objects/tag.o \ objects/term.o \ objects/ui.o \ @@ -1750,7 +1745,7 @@ config auto/config.mk: auto/configure co $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \ $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \ $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \ - $(CONF_OPT_SNIFF) $(CONF_OPT_FEAT) $(CONF_TERM_LIB) \ + $(CONF_OPT_FEAT) $(CONF_TERM_LIB) \ $(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \ $(CONF_OPT_CHANNEL) \ $(CONF_ARGS) $(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) \ @@ -2815,9 +2810,6 @@ objects/if_python3.o: if_python3.c if_py objects/if_ruby.o: if_ruby.c $(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c -objects/if_sniff.o: if_sniff.c - $(CCC) -o $@ if_sniff.c - objects/if_tcl.o: if_tcl.c $(CCC) $(TCL_CFLAGS) -o $@ if_tcl.c @@ -3364,10 +3356,6 @@ objects/if_ruby.o: if_ruby.c auto/config ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \ gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \ farsi.h arabic.h version.h -objects/if_sniff.o: if_sniff.c vim.h auto/config.h feature.h os_unix.h \ - auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ - regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \ - globals.h farsi.h arabic.h os_unixx.h objects/gui_beval.o: gui_beval.c vim.h auto/config.h feature.h os_unix.h \ auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \ regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \ diff --git a/src/auto/configure b/src/auto/configure --- a/src/auto/configure +++ b/src/auto/configure @@ -653,8 +653,6 @@ X_PRE_LIBS X_CFLAGS XMKMF xmkmfpath -SNIFF_OBJ -SNIFF_SRC CHANNEL_OBJ CHANNEL_SRC NETBEANS_OBJ @@ -812,7 +810,6 @@ enable_cscope enable_workshop enable_netbeans enable_channel -enable_sniff enable_multibyte enable_hangulinput enable_xim @@ -1477,7 +1474,6 @@ Optional Features: --enable-workshop Include Sun Visual Workshop support. --disable-netbeans Disable NetBeans integration support. --disable-channel Disable process communication support. - --enable-sniff Include Sniff interface. --enable-multibyte Include multibyte editing support. --enable-hangulinput Include Hangul input support. --enable-xim Include XIM input support. @@ -7439,26 +7435,6 @@ if test "$enable_channel" = "yes"; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-sniff argument" >&5 -$as_echo_n "checking --enable-sniff argument... " >&6; } -# Check whether --enable-sniff was given. -if test "${enable_sniff+set}" = set; then : - enableval=$enable_sniff; -else - enable_sniff="no" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_sniff" >&5 -$as_echo "$enable_sniff" >&6; } -if test "$enable_sniff" = "yes"; then - $as_echo "#define FEAT_SNIFF 1" >>confdefs.h - - SNIFF_SRC="if_sniff.c" - - SNIFF_OBJ="objects/if_sniff.o" - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-multibyte argument" >&5 $as_echo_n "checking --enable-multibyte argument... " >&6; } # Check whether --enable-multibyte was given. diff --git a/src/charset.c b/src/charset.c --- a/src/charset.c +++ b/src/charset.c @@ -1761,8 +1761,7 @@ skiptowhite(char_u *p) return p; } -#if defined(FEAT_LISTCMDS) || defined(FEAT_SIGNS) || defined(FEAT_SNIFF) \ - || defined(PROTO) +#if defined(FEAT_LISTCMDS) || defined(FEAT_SIGNS) || defined(PROTO) /* * skiptowhite_esc: Like skiptowhite(), but also skip escaped chars */ diff --git a/src/config.h.in b/src/config.h.in --- a/src/config.h.in +++ b/src/config.h.in @@ -362,9 +362,6 @@ /* Define for linking via dlopen() or LoadLibrary() */ #undef DYNAMIC_TCL -/* Define if you want to include the Sniff interface. */ -#undef FEAT_SNIFF - /* Define if you want to add support for ACL */ #undef HAVE_POSIX_ACL #undef HAVE_SOLARIS_ZFS_ACL diff --git a/src/config.mk.in b/src/config.mk.in --- a/src/config.mk.in +++ b/src/config.mk.in @@ -99,9 +99,6 @@ RUBY_PRO = @RUBY_PRO@ RUBY_CFLAGS = @RUBY_CFLAGS@ RUBY_LIBS = @RUBY_LIBS@ -SNIFF_SRC = @SNIFF_SRC@ -SNIFF_OBJ = @SNIFF_OBJ@ - AWK = @AWK@ STRIP = @STRIP@ diff --git a/src/configure.in b/src/configure.in --- a/src/configure.in +++ b/src/configure.in @@ -2021,19 +2021,6 @@ if test "$enable_channel" = "yes"; then AC_SUBST(CHANNEL_OBJ) fi -AC_MSG_CHECKING(--enable-sniff argument) -AC_ARG_ENABLE(sniff, - [ --enable-sniff Include Sniff interface.], , - [enable_sniff="no"]) -AC_MSG_RESULT($enable_sniff) -if test "$enable_sniff" = "yes"; then - AC_DEFINE(FEAT_SNIFF) - SNIFF_SRC="if_sniff.c" - AC_SUBST(SNIFF_SRC) - SNIFF_OBJ="objects/if_sniff.o" - AC_SUBST(SNIFF_OBJ) -fi - AC_MSG_CHECKING(--enable-multibyte argument) AC_ARG_ENABLE(multibyte, [ --enable-multibyte Include multibyte editing support.], , diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -1052,12 +1052,6 @@ doESCkey: case K_SELECT: /* end of Select mode mapping - ignore */ break; -#ifdef FEAT_SNIFF - case K_SNIFF: /* Sniff command received */ - stuffcharReadbuff(K_SNIFF); - goto doESCkey; -#endif - case K_HELP: /* Help key works like */ case K_F1: case K_XF1: diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -13930,9 +13930,6 @@ f_has(typval_T *argvars, typval_T *rettv #ifdef FEAT_SMARTINDENT "smartindent", #endif -#ifdef FEAT_SNIFF - "sniff", -#endif #ifdef STARTUPTIME "startuptime", #endif diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -1281,9 +1281,6 @@ EX(CMD_smenu, "smenu", ex_menu, EX(CMD_snext, "snext", ex_next, RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR, ADDR_LINES), -EX(CMD_sniff, "sniff", ex_sniff, - EXTRA|TRLBAR, - ADDR_LINES), EX(CMD_snomagic, "snomagic", ex_submagic, RANGE|WHOLEFOLD|EXTRA|CMDWIN, ADDR_LINES), diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -131,9 +131,6 @@ do_debug(char_u *cmd) redir_off = TRUE; /* don't redirect debug commands */ State = NORMAL; -#ifdef FEAT_SNIFF - want_sniff_request = 0; /* No K_SNIFF wanted */ -#endif if (!debug_did_msg) MSG(_("Entering Debug mode. Type \"cont\" to continue.")); @@ -151,9 +148,7 @@ do_debug(char_u *cmd) { msg_scroll = TRUE; need_wait_return = FALSE; -#ifdef FEAT_SNIFF - ProcessSniffRequests(); -#endif + /* Save the current typeahead buffer and replace it with an empty one. * This makes sure we get input from the user here and don't interfere * with the commands being executed. Reset "ex_normal_busy" to avoid diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -296,9 +296,6 @@ static void ex_popup(exarg_T *eap); # define ex_rubydo ex_ni # define ex_rubyfile ex_ni #endif -#ifndef FEAT_SNIFF -# define ex_sniff ex_ni -#endif #ifndef FEAT_KEYMAP # define ex_loadkeymap ex_ni #endif @@ -641,9 +638,6 @@ do_exmode( /* Ignore scrollbar and mouse events in Ex mode */ ++hold_gui_events; #endif -#ifdef FEAT_SNIFF - want_sniff_request = 0; /* No K_SNIFF wanted */ -#endif MSG(_("Entering Ex mode. Type \"visual\" to go to Normal mode.")); while (exmode_active) @@ -661,9 +655,6 @@ do_exmode( changedtick = curbuf->b_changedtick; prev_msg_row = msg_row; prev_line = curwin->w_cursor.lnum; -#ifdef FEAT_SNIFF - ProcessSniffRequests(); -#endif if (improved) { cmdline_row = msg_row; diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -206,9 +206,6 @@ getcmdline( struct cmdline_info save_ccline; #endif -#ifdef FEAT_SNIFF - want_sniff_request = 0; -#endif #ifdef FEAT_EVAL if (firstc == -1) { diff --git a/src/feature.h b/src/feature.h --- a/src/feature.h +++ b/src/feature.h @@ -1221,7 +1221,6 @@ * +perl Perl interface: "--enable-perlinterp" * +python Python interface: "--enable-pythoninterp" * +tcl TCL interface: "--enable-tclinterp" - * +sniff Sniff interface: "--enable-sniff" * +sun_workshop Sun Workshop integration * +netbeans_intg Netbeans integration * +channel Inter process communication diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -6460,22 +6460,6 @@ input_timer_cb(gpointer data) return FALSE; /* don't happen again */ } -#ifdef FEAT_SNIFF -/* - * Callback function, used when data is available on the SNiFF connection. - */ - static void -sniff_request_cb( - gpointer data UNUSED, - gint source_fd UNUSED, - GdkInputCondition condition UNUSED) -{ - static char_u bytes[3] = {CSI, (int)KS_EXTRA, (int)KE_SNIFF}; - - add_to_input_buf(bytes, 3); -} -#endif - /* * GUI input routine called by gui_wait_for_chars(). Waits for a character * from the keyboard. @@ -6491,26 +6475,6 @@ gui_mch_wait_for_chars(long wtime) int focus; guint timer; static int timed_out; -#ifdef FEAT_SNIFF - static int sniff_on = 0; - static gint sniff_input_id = 0; -#endif - -#ifdef FEAT_SNIFF - if (sniff_on && !want_sniff_request) - { - if (sniff_input_id) - gdk_input_remove(sniff_input_id); - sniff_on = 0; - } - else if (!sniff_on && want_sniff_request) - { - /* Add fd_from_sniff to watch for available data in main loop. */ - sniff_input_id = gdk_input_add(fd_from_sniff, - GDK_INPUT_READ, sniff_request_cb, NULL); - sniff_on = 1; - } -#endif timed_out = FALSE; diff --git a/src/gui_w32.c b/src/gui_w32.c --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -326,7 +326,7 @@ static int s_findrep_is_find; /* TRUE f #endif static HINSTANCE s_hinst = NULL; -#if !defined(FEAT_SNIFF) && !defined(FEAT_GUI) +#if !defined(FEAT_GUI) static #endif HWND s_hwnd = NULL; @@ -1927,23 +1927,6 @@ process_message(void) } #endif -#ifdef FEAT_SNIFF - if (sniff_request_waiting && want_sniff_request) - { - static char_u bytes[3] = {CSI, (char_u)KS_EXTRA, (char_u)KE_SNIFF}; - add_to_input_buf(bytes, 3); /* K_SNIFF */ - sniff_request_waiting = 0; - want_sniff_request = 0; - /* request is handled in normal.c */ - } - if (msg.message == WM_USER) - { - MyTranslateMessage(&msg); - pDispatchMessage(&msg); - return; - } -#endif - #ifdef MSWIN_FIND_REPLACE /* Don't process messages used by the dialog */ if (s_findrep_hwnd != NULL && pIsDialogMessage(s_findrep_hwnd, &msg)) diff --git a/src/gui_x11.c b/src/gui_x11.c --- a/src/gui_x11.c +++ b/src/gui_x11.c @@ -145,9 +145,6 @@ static void gui_x11_focus_change_cb(Widg static void gui_x11_enter_cb(Widget w, XtPointer data, XEvent *event, Boolean *dum); static void gui_x11_leave_cb(Widget w, XtPointer data, XEvent *event, Boolean *dum); static void gui_x11_mouse_cb(Widget w, XtPointer data, XEvent *event, Boolean *dum); -#ifdef FEAT_SNIFF -static void gui_x11_sniff_request_cb(XtPointer closure, int *source, XtInputId *id); -#endif static void gui_x11_check_copy_area(void); #ifdef FEAT_CLIENTSERVER static void gui_x11_send_event_handler(Widget, XtPointer, XEvent *, Boolean *); @@ -1163,20 +1160,6 @@ gui_x11_mouse_cb( gui_send_mouse_event(button, x, y, repeated_click, vim_modifiers); } -#ifdef FEAT_SNIFF -/* ARGSUSED */ - static void -gui_x11_sniff_request_cb( - XtPointer closure UNUSED, - int *source UNUSED, - XtInputId *id UNUSED) -{ - static char_u bytes[3] = {CSI, (int)KS_EXTRA, (int)KE_SNIFF}; - - add_to_input_buf(bytes, 3); -} -#endif - /* * End of call-back routines */ @@ -2818,28 +2801,9 @@ gui_mch_wait_for_chars(long wtime) static int timed_out; XtIntervalId timer = (XtIntervalId)0; XtInputMask desired; -#ifdef FEAT_SNIFF - static int sniff_on = 0; - static XtInputId sniff_input_id = 0; -#endif timed_out = FALSE; -#ifdef FEAT_SNIFF - if (sniff_on && !want_sniff_request) - { - if (sniff_input_id) - XtRemoveInput(sniff_input_id); - sniff_on = 0; - } - else if (!sniff_on && want_sniff_request) - { - sniff_input_id = XtAppAddInput(app_context, fd_from_sniff, - (XtPointer)XtInputReadMask, gui_x11_sniff_request_cb, 0); - sniff_on = 1; - } -#endif - if (wtime > 0) timer = XtAppAddTimeOut(app_context, (long_u)wtime, gui_x11_timer_cb, &timed_out); diff --git a/src/if_sniff.c b/src/if_sniff.c deleted file mode 100644 --- a/src/if_sniff.c +++ /dev/null @@ -1,1201 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4: - * - * if_sniff.c Interface between Vim and SNiFF+ - * - * See README.txt for an overview of the Vim source code. - */ - -#include "vim.h" - -#ifdef WIN32 -# include -# include -# include -# include -#else -# ifdef FEAT_GUI_X11 -# include "gui_x11.pro" -# endif -# include "os_unixx.h" -#endif - -static int sniffemacs_pid; - -int fd_from_sniff; -int sniff_connected = 0; -int sniff_request_waiting = 0; -int want_sniff_request = 0; - -#define MAX_REQUEST_LEN 512 - -#define NEED_SYMBOL 2 -#define EMPTY_SYMBOL 4 -#define NEED_FILE 8 -#define SILENT 16 -#define DISCONNECT 32 -#define CONNECT 64 - -#define RQ_NONE 0 -#define RQ_SIMPLE 1 -#define RQ_CONTEXT NEED_FILE + NEED_SYMBOL -#define RQ_SCONTEXT NEED_FILE + NEED_SYMBOL + EMPTY_SYMBOL -#define RQ_NOSYMBOL NEED_FILE -#define RQ_SILENT RQ_NOSYMBOL + SILENT -#define RQ_CONNECT RQ_NONE + CONNECT -#define RQ_DISCONNECT RQ_SIMPLE + DISCONNECT - -struct sn_cmd -{ - char *cmd_name; - char cmd_code; - char *cmd_msg; - int cmd_type; -}; - -struct sn_cmd_list -{ - struct sn_cmd* sniff_cmd; - struct sn_cmd_list* next_cmd; -}; - -static struct sn_cmd sniff_cmds[] = -{ - { "toggle", 'e', N_("Toggle implementation/definition"),RQ_SCONTEXT }, - { "superclass", 's', N_("Show base class of"), RQ_CONTEXT }, - { "overridden", 'm', N_("Show overridden member function"),RQ_SCONTEXT }, - { "retrieve-file", 'r', N_("Retrieve from file"), RQ_CONTEXT }, - { "retrieve-project",'p', N_("Retrieve from project"), RQ_CONTEXT }, - { "retrieve-all-projects", - 'P', N_("Retrieve from all projects"), RQ_CONTEXT }, - { "retrieve-next", 'R', N_("Retrieve"), RQ_CONTEXT }, - { "goto-symbol", 'g', N_("Show source of"), RQ_CONTEXT }, - { "find-symbol", 'f', N_("Find symbol"), RQ_CONTEXT }, - { "browse-class", 'w', N_("Browse class"), RQ_CONTEXT }, - { "hierarchy", 't', N_("Show class in hierarchy"), RQ_CONTEXT }, - { "restr-hier", 'T', N_("Show class in restricted hierarchy"),RQ_CONTEXT }, - { "xref-to", 'x', N_("Xref refers to"), RQ_CONTEXT }, - { "xref-by", 'X', N_("Xref referred by"), RQ_CONTEXT }, - { "xref-has", 'c', N_("Xref has a"), RQ_CONTEXT }, - { "xref-used-by", 'C', N_("Xref used by"), RQ_CONTEXT }, - { "show-docu", 'd', N_("Show docu of"), RQ_CONTEXT }, - { "gen-docu", 'D', N_("Generate docu for"), RQ_CONTEXT }, - { "connect", 'y', NULL, RQ_CONNECT }, - { "disconnect", 'q', NULL, RQ_DISCONNECT }, - { "font-info", 'z', NULL, RQ_SILENT }, - { "update", 'u', NULL, RQ_SILENT }, - { NULL, '\0', NULL, 0} -}; - - -static char *SniffEmacs[2] = {"sniffemacs", (char *)NULL}; /* Yes, Emacs! */ -static int fd_to_sniff; -static int sniff_will_disconnect = 0; -static char msg_sniff_disconnect[] = N_("Cannot connect to SNiFF+. Check environment (sniffemacs must be found in $PATH).\n"); -static char sniff_rq_sep[] = " "; -static struct sn_cmd_list *sniff_cmd_ext = NULL; - -/* Initializing vim commands - * executed each time vim connects to Sniff - */ -static char *init_cmds[]= { - "augroup sniff", - "autocmd BufWritePost * sniff update", - "autocmd BufReadPost * sniff font-info", - "autocmd VimLeave * sniff disconnect", - "augroup END", - - "let g:sniff_connected = 1", - - "if ! exists('g:sniff_mappings_sourced')|" - "if ! exists('g:sniff_mappings')|" - "if exists('$SNIFF_DIR4')|" - "let g:sniff_mappings='$SNIFF_DIR4/config/integrations/vim/sniff.vim'|" - "else|" - "let g:sniff_mappings='$SNIFF_DIR/config/sniff.vim'|" - "endif|" - "endif|" - "let g:sniff_mappings=expand(g:sniff_mappings)|" - "if filereadable(g:sniff_mappings)|" - "execute 'source' g:sniff_mappings|" - "let g:sniff_mappings_sourced=1|" - "endif|" - "endif", - - NULL -}; - -/*-------- Function Prototypes ----------------------------------*/ - -static int ConnectToSniffEmacs(void); -static void sniff_connect(void); -static void HandleSniffRequest(char* buffer); -static int get_request(int fd, char *buf, int maxlen); -static void WriteToSniff(char *str); -static void SendRequest(struct sn_cmd *command, char* symbol); -static void vi_msg(char *); -static void vi_error_msg(char *); -static char *vi_symbol_under_cursor(void); -static void vi_open_file(char *); -static char *vi_buffer_name(void); -static buf_T *vi_find_buffer(char *); -static void vi_exec_cmd(char *); -static void vi_set_cursor_pos(long char_nr); -static long vi_cursor_pos(void); - -/* debug trace */ -#if 0 -static FILE* _tracefile = NULL; -#define SNIFF_TRACE_OPEN(file) if (!_tracefile) _tracefile = fopen(file, "w") -#define SNIFF_TRACE(msg) fprintf(_tracefile, msg); fflush(_tracefile); -#define SNIFF_TRACE1(msg, arg) fprintf(_tracefile, msg,arg); fflush(_tracefile); -#define SNIFF_TRACE_CLOSE fclose(_tracefile); _tracefile=NULL; -#else -#define SNIFF_TRACE_OPEN(file) -#define SNIFF_TRACE(msg) -#define SNIFF_TRACE1(msg, arg) -#define SNIFF_TRACE_CLOSE -#endif - -/*-------- Windows Only Declarations -----------------------------*/ -#ifdef WIN32 - -static int sniff_request_processed=1; -static HANDLE sniffemacs_handle=NULL; -static HANDLE readthread_handle=NULL; -static HANDLE handle_to_sniff=NULL; -static HANDLE handle_from_sniff=NULL; - -struct sniffBufNode -{ - struct sniffBufNode *next; - int bufLen; - char buf[MAX_REQUEST_LEN]; -}; -static struct sniffBufNode *sniffBufStart=NULL; -static struct sniffBufNode *sniffBufEnd=NULL; -static HANDLE hBufferMutex=NULL; - -# ifdef FEAT_GUI_W32 - extern HWND s_hwnd; /* gvim's Window handle */ -# endif -/* - * some helper functions for Windows port only - */ - - static HANDLE -ExecuteDetachedProgram(char *szBinary, char *szCmdLine, - HANDLE hStdInput, HANDLE hStdOutput) -{ - BOOL bResult; - DWORD nError; - PROCESS_INFORMATION aProcessInformation; - PROCESS_INFORMATION *pProcessInformation= &aProcessInformation; - STARTUPINFO aStartupInfo; - STARTUPINFO *pStartupInfo= &aStartupInfo; - DWORD dwCreationFlags= 0; - char szPath[512]; - HINSTANCE hResult; - - hResult = FindExecutable(szBinary, ".", szPath); - if ((int)hResult <= 32) - { - /* can't find the exe file */ - return NULL; - } - - ZeroMemory(pStartupInfo, sizeof(*pStartupInfo)); - pStartupInfo->dwFlags= STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES; - pStartupInfo->hStdInput = hStdInput; - pStartupInfo->hStdOutput = hStdOutput; - pStartupInfo->wShowWindow= SW_HIDE; - pStartupInfo->cb = sizeof(STARTUPINFO); - - bResult= CreateProcess( - szPath, - szCmdLine, - NULL, /* security attr for process */ - NULL, /* security attr for primary thread */ - TRUE, /* DO inherit stdin and stdout */ - dwCreationFlags, /* creation flags */ - NULL, /* environment */ - ".", /* current directory */ - pStartupInfo, /* startup info: NULL crashes */ - pProcessInformation /* process information: NULL crashes */ - ); - nError= GetLastError(); - if (bResult) - { - CloseHandle(pProcessInformation->hThread); - CloseHandle(hStdInput); - CloseHandle(hStdOutput); - return(pProcessInformation->hProcess); - } - else - return(NULL); -} - -/* - * write to the internal Thread / Thread communications buffer. - * Return TRUE if successful, FALSE else. - */ - static BOOL -writeToBuffer(char *msg, int len) -{ - DWORD dwWaitResult; /* Request ownership of mutex. */ - struct sniffBufNode *bn; - int bnSize; - - SNIFF_TRACE1("writeToBuffer %d\n", len); - bnSize = sizeof(struct sniffBufNode) - MAX_REQUEST_LEN + len + 1; - if (bnSize < 128) bnSize = 128; /* minimum length to avoid fragmentation */ - bn = (struct sniffBufNode *)malloc(bnSize); - if (!bn) - return FALSE; - - memcpy(bn->buf, msg, len); - bn->buf[len]='\0'; /* terminate CString for added safety */ - bn->next = NULL; - bn->bufLen = len; - /* now, acquire a Mutex for adding the string to our linked list */ - dwWaitResult = WaitForSingleObject( - hBufferMutex, /* handle of mutex */ - 1000L); /* one-second time-out interval */ - if (dwWaitResult == WAIT_OBJECT_0) - { - /* The thread got mutex ownership. */ - if (sniffBufEnd) - { - sniffBufEnd->next = bn; - sniffBufEnd = bn; - } - else - sniffBufStart = sniffBufEnd = bn; - /* Release ownership of the mutex object. */ - if (! ReleaseMutex(hBufferMutex)) - { - /* Deal with error. */ - } - return TRUE; - } - - /* Cannot get mutex ownership due to time-out or mutex object abandoned. */ - free(bn); - return FALSE; -} - -/* - * read from the internal Thread / Thread communications buffer. - * Return TRUE if successful, FALSE else. - */ - static int -ReadFromBuffer(char *buf, int maxlen) -{ - DWORD dwWaitResult; /* Request ownership of mutex. */ - int theLen; - struct sniffBufNode *bn; - - dwWaitResult = WaitForSingleObject( - hBufferMutex, /* handle of mutex */ - 1000L); /* one-second time-out interval */ - if (dwWaitResult == WAIT_OBJECT_0) - { - if (!sniffBufStart) - { - /* all pending Requests Processed */ - theLen = 0; - } - else - { - bn = sniffBufStart; - theLen = bn->bufLen; - SNIFF_TRACE1("ReadFromBuffer %d\n", theLen); - if (theLen >= maxlen) - { - /* notify the user of buffer overflow? */ - theLen = maxlen-1; - } - memcpy(buf, bn->buf, theLen); - buf[theLen] = '\0'; - if (! (sniffBufStart = bn->next)) - { - sniffBufEnd = NULL; - sniff_request_processed = 1; - } - free(bn); - } - if (! ReleaseMutex(hBufferMutex)) - { - /* Deal with error. */ - } - return theLen; - } - - /* Cannot get mutex ownership due to time-out or mutex object abandoned. */ - return -1; -} - -/* on Win32, a separate Thread reads the input pipe. get_request is not needed here. */ - static void __cdecl -SniffEmacsReadThread(void *dummy) -{ - static char ReadThreadBuffer[MAX_REQUEST_LEN]; - int ReadThreadLen=0; - int result=0; - int msgLen=0; - char *msgStart, *msgCur; - - SNIFF_TRACE("begin thread\n"); - /* Read from the pipe to SniffEmacs */ - while (sniff_connected) - { - if (!ReadFile(handle_from_sniff, - ReadThreadBuffer + ReadThreadLen, /* acknowledge rest in buffer */ - MAX_REQUEST_LEN - ReadThreadLen, - &result, - NULL)) - { - DWORD err = GetLastError(); - result = -1; - } - - if (result < 0) - { - /* probably sniffemacs died... log the Error? */ - sniff_disconnect(1); - } - else if (result > 0) - { - ReadThreadLen += result-1; /* total length of valid chars */ - for(msgCur=msgStart=ReadThreadBuffer; ReadThreadLen > 0; msgCur++, ReadThreadLen--) - { - if (*msgCur == '\0' || *msgCur == '\r' || *msgCur == '\n') - { - msgLen = msgCur-msgStart; /* don't add the CR/LF chars */ - if (msgLen > 0) - writeToBuffer(msgStart, msgLen); - msgStart = msgCur + 1; /* over-read single CR/LF chars */ - } - } - - /* move incomplete message to beginning of buffer */ - ReadThreadLen = msgCur - msgStart; - if (ReadThreadLen > 0) - mch_memmove(ReadThreadBuffer, msgStart, ReadThreadLen); - - if (sniff_request_processed) - { - /* notify others that new data has arrived */ - sniff_request_processed = 0; - sniff_request_waiting = 1; -#ifdef FEAT_GUI_W32 - PostMessage(s_hwnd, WM_USER, (WPARAM)0, (LPARAM)0); -#endif - } - } - } - SNIFF_TRACE("end thread\n"); -} -#endif /* WIN32 */ -/*-------- End of Windows Only Declarations ------------------------*/ - - -/* ProcessSniffRequests - * Function that should be called from outside - * to process the waiting sniff requests - */ - void -ProcessSniffRequests(void) -{ - static char buf[MAX_REQUEST_LEN]; - int len; - - while (sniff_connected) - { -#ifdef WIN32 - len = ReadFromBuffer(buf, sizeof(buf)); -#else - len = get_request(fd_from_sniff, buf, sizeof(buf)); -#endif - if (len < 0) - { - vi_error_msg(_("E274: Sniff: Error during read. Disconnected")); - sniff_disconnect(1); - break; - } - else if (len > 0) - HandleSniffRequest( buf ); - else - break; - } - - if (sniff_will_disconnect) /* Now the last msg has been processed */ - sniff_disconnect(1); -} - - static struct sn_cmd * -find_sniff_cmd(char *cmd) -{ - struct sn_cmd *sniff_cmd = NULL; - int i; - for(i=0; sniff_cmds[i].cmd_name; i++) - { - if (!strcmp(cmd, sniff_cmds[i].cmd_name)) - { - sniff_cmd = &sniff_cmds[i]; - break; - } - } - if (!sniff_cmd) - { - struct sn_cmd_list *list = sniff_cmd_ext; - while (list) - { - if (!strcmp(cmd, list->sniff_cmd->cmd_name)) - { - sniff_cmd = list->sniff_cmd; - break; - } - list = list->next_cmd; - } - } - return sniff_cmd; -} - - static int -add_sniff_cmd(char *cmd, char *def, char *msg) -{ - int rc = 0; - if (def != NULL && def[0] != NUL && find_sniff_cmd(cmd) == NULL) - { - struct sn_cmd_list *list = sniff_cmd_ext; - struct sn_cmd *sniff_cmd = (struct sn_cmd*)malloc(sizeof(struct sn_cmd)); - struct sn_cmd_list *cmd_node = (struct sn_cmd_list*)malloc(sizeof(struct sn_cmd_list)); - int rq_type = 0; - - /* unescape message text */ - char *p = msg; - char *end = p+strlen(msg); - while (*p) - { - if (*p == '\\') - mch_memmove(p,p+1,end-p); - p++; - } - SNIFF_TRACE1("request name = %s\n",cmd); - SNIFF_TRACE1("request def = %s\n",def); - SNIFF_TRACE1("request msg = %s\n",msg); - - while (list && list->next_cmd) - list = list->next_cmd; - if (!list) - sniff_cmd_ext = cmd_node; - else - list->next_cmd = cmd_node; - - sniff_cmd->cmd_name = cmd; - sniff_cmd->cmd_code = def[0]; - sniff_cmd->cmd_msg = msg; - switch(def[1]) - { - case 'f': - rq_type = RQ_NOSYMBOL; - break; - case 's': - rq_type = RQ_CONTEXT; - break; - case 'S': - rq_type = RQ_SCONTEXT; - break; - default: - rq_type = RQ_SIMPLE; - break; - } - sniff_cmd->cmd_type = rq_type; - cmd_node->sniff_cmd = sniff_cmd; - cmd_node->next_cmd = NULL; - rc = 1; - } - return rc; -} - -/* ex_sniff - * Handle ":sniff" command - */ - void -ex_sniff(exarg_T *eap) -{ - char_u *arg = eap->arg; - char_u *symbol = NULL; - char_u *cmd = NULL; - - SNIFF_TRACE_OPEN("if_sniff.log"); - if (ends_excmd(*arg)) /* no request: print available commands */ - { - int i; - msg_start(); - msg_outtrans_attr((char_u *)"-- SNiFF+ commands --", hl_attr(HLF_T)); - for(i=0; sniff_cmds[i].cmd_name; i++) - { - msg_putchar('\n'); - msg_outtrans((char_u *)":sniff "); - msg_outtrans((char_u *)sniff_cmds[i].cmd_name); - } - msg_putchar('\n'); - msg_outtrans((char_u *)_("SNiFF+ is currently ")); - if (!sniff_connected) - msg_outtrans((char_u *)_("not ")); - msg_outtrans((char_u *)_("connected")); - msg_end(); - } - else /* extract command name and symbol if present */ - { - symbol = skiptowhite(arg); - cmd = vim_strnsave(arg, (int)(symbol-arg)); - symbol = skipwhite(symbol); - if (ends_excmd(*symbol)) - symbol = NULL; - if (!strcmp((char *)cmd, "addcmd")) - { - char_u *def = skiptowhite(symbol); - char_u *name = vim_strnsave(symbol, (int)(def-symbol)); - char_u *msg; - def = skipwhite(def); - msg = skiptowhite(def); - def = vim_strnsave(def, (int)(msg-def)); - msg = skipwhite(msg); - if (ends_excmd(*msg)) - msg = vim_strsave(name); - else - msg = vim_strnsave(msg, (int)(skiptowhite_esc(msg)-msg)); - if (!add_sniff_cmd((char*)name, (char*)def, (char*)msg)) - { - vim_free(msg); - vim_free(def); - vim_free(name); - } - } - else - { - struct sn_cmd* sniff_cmd = find_sniff_cmd((char*)cmd); - if (sniff_cmd) - SendRequest(sniff_cmd, (char *)symbol); - else - EMSG2(_("E275: Unknown SNiFF+ request: %s"), cmd); - } - vim_free(cmd); - } -} - - - static void -sniff_connect(void) -{ - if (sniff_connected) - return; - if (ConnectToSniffEmacs()) - vi_error_msg(_("E276: Error connecting to SNiFF+")); - else - { - int i; - - for (i = 0; init_cmds[i]; i++) - vi_exec_cmd(init_cmds[i]); - } -} - - void -sniff_disconnect(int immediately) -{ - if (!sniff_connected) - return; - if (immediately) - { - vi_exec_cmd("augroup sniff"); - vi_exec_cmd("au!"); - vi_exec_cmd("augroup END"); - vi_exec_cmd("unlet g:sniff_connected"); - sniff_connected = 0; - want_sniff_request = 0; - sniff_will_disconnect = 0; -#ifdef FEAT_GUI - if (gui.in_use) - gui_mch_wait_for_chars(0L); -#endif -#ifdef WIN32 - while (sniffBufStart != NULL) - { - struct sniffBufNode *node = sniffBufStart; - sniffBufStart = sniffBufStart->next; - free(node); - } - sniffBufStart = sniffBufEnd = NULL; - sniff_request_processed = 1; - CloseHandle(handle_to_sniff); - CloseHandle(handle_from_sniff); - WaitForSingleObject(sniffemacs_handle, 1000L); - CloseHandle(sniffemacs_handle); - sniffemacs_handle = NULL; - WaitForSingleObject(readthread_handle, 1000L); - readthread_handle = NULL; - CloseHandle(hBufferMutex); - hBufferMutex = NULL; - SNIFF_TRACE_CLOSE; -#else - close(fd_to_sniff); - close(fd_from_sniff); - wait(NULL); -#endif - } - else - { -#ifdef WIN32 -# if (defined(_MSC_VER) && _MSC_VER >= 1400) - Sleep(2); -# else - _sleep(2); -# endif - if (!sniff_request_processed) - ProcessSniffRequests(); -#else - sleep(2); /* Incoming msg could disturb edit */ -#endif - sniff_will_disconnect = 1; /* We expect disconnect msg in 2 secs */ - } -} - - -/* ConnectToSniffEmacs - * Connect to Sniff: returns 1 on error - */ - static int -ConnectToSniffEmacs(void) -{ -#ifdef WIN32 /* Windows Version of the Code */ - HANDLE ToSniffEmacs[2], FromSniffEmacs[2]; - SECURITY_ATTRIBUTES sa; - - sa.nLength = sizeof(sa); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = TRUE; - - if (! CreatePipe(&ToSniffEmacs[0], &ToSniffEmacs[1], &sa, 0)) - return 1; - if (! CreatePipe(&FromSniffEmacs[0], &FromSniffEmacs[1], &sa, 0)) - return 1; - - sniffemacs_handle = ExecuteDetachedProgram(SniffEmacs[0], SniffEmacs[0], - ToSniffEmacs[0], FromSniffEmacs[1]); - - if (sniffemacs_handle) - { - handle_to_sniff = ToSniffEmacs[1]; - handle_from_sniff = FromSniffEmacs[0]; - sniff_connected = 1; - hBufferMutex = CreateMutex( - NULL, /* no security attributes */ - FALSE, /* initially not owned */ - "SniffReadBufferMutex"); /* name of mutex */ - if (hBufferMutex == NULL) - { - /* Check for error. */ - } - readthread_handle = (HANDLE)_beginthread(SniffEmacsReadThread, 0, NULL); - return 0; - } - else - { - /* error in spawn() */ - return 1; - } - -#else /* UNIX Version of the Code */ - int ToSniffEmacs[2], FromSniffEmacs[2]; - - if (pipe(ToSniffEmacs) != 0) - return 1; - if (pipe(FromSniffEmacs) != 0) - return 1; - - /* fork */ - if ((sniffemacs_pid=fork()) == 0) - { - /* child */ - - /* prepare communication pipes */ - close(ToSniffEmacs[1]); - close(FromSniffEmacs[0]); - - dup2(ToSniffEmacs[0],fileno(stdin)); /* write to ToSniffEmacs[1] */ - dup2(FromSniffEmacs[1],fileno(stdout));/* read from FromSniffEmacs[0] */ - - close(ToSniffEmacs[0]); - close(FromSniffEmacs[1]); - - /* start sniffemacs */ - execvp (SniffEmacs[0], SniffEmacs); - { -/* FILE *out = fdopen(FromSniffEmacs[1], "w"); */ - sleep(1); - fputs(_(msg_sniff_disconnect), stdout); - fflush(stdout); - sleep(3); -#ifdef FEAT_GUI - if (gui.in_use) - gui_exit(1); -#endif - exit(1); - } - return 1; - } - else if (sniffemacs_pid > 0) - { - /* parent process */ - close(ToSniffEmacs[0]); - fd_to_sniff = ToSniffEmacs[1]; - close(FromSniffEmacs[1]); - fd_from_sniff = FromSniffEmacs[0]; - sniff_connected = 1; - return 0; - } - else /* error in fork() */ - return 1; -#endif /* UNIX Version of the Code */ -} - - -/* HandleSniffRequest - * Handle one request from SNiFF+ - */ - static void -HandleSniffRequest(char *buffer) -{ - char VICommand[MAX_REQUEST_LEN]; - char command; - char *arguments; - char *token; - char *argv[3]; - int argc = 0; - buf_T *buf; - - const char *SetTab = "set tabstop=%d"; - const char *SelectBuf = "buf %s"; - const char *DeleteBuf = "bd %s"; - const char *UnloadBuf = "bun %s"; - const char *GotoLine = "%d"; - - command = buffer[0]; - arguments = &buffer[1]; - token = strtok(arguments, sniff_rq_sep); - while (argc <3) - { - if (token) - { - argv[argc] = (char*)vim_strsave((char_u *)token); - token = strtok(0, sniff_rq_sep); - } - else - argv[argc] = strdup(""); - argc++; - } - - switch (command) - { - case 'o' : /* visit file at char pos */ - case 'O' : /* visit file at line number */ - { - char *file = argv[0]; - int position = atoi(argv[1]); - - buf = vi_find_buffer(file); - setpcmark(); /* insert current pos in jump list [mark.c]*/ - if (!buf) - vi_open_file(file); - else if (buf!=curbuf) - { - vim_snprintf(VICommand, sizeof(VICommand), - (char *)SelectBuf, file); - vi_exec_cmd(VICommand); - } - if (command == 'o') - vi_set_cursor_pos((long)position); - else - { - vim_snprintf(VICommand, sizeof(VICommand), - (char *)GotoLine, (int)position); - vi_exec_cmd(VICommand); - } - checkpcmark(); /* [mark.c] */ -#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) - if (gui.in_use && !gui.in_focus) /* Raise Vim Window */ - { -# ifdef FEAT_GUI_W32 - SetForegroundWindow(s_hwnd); -# else - extern Widget vimShell; - - XSetInputFocus(gui.dpy, XtWindow(vimShell), RevertToNone, - CurrentTime); - XRaiseWindow(gui.dpy, XtWindow(vimShell)); -# endif - } -#endif - break; - } - case 'p' : /* path of file has changed */ - /* when changing from shared to private WS (checkout) */ - { - char *file = argv[0]; - char *new_path = argv[1]; - - buf = vi_find_buffer(file); - if (buf && !buf->b_changed) /* delete buffer only if not modified */ - { - vim_snprintf(VICommand, sizeof(VICommand), - (char *)DeleteBuf, file); - vi_exec_cmd(VICommand); - } - vi_open_file(new_path); - break; - } - case 'w' : /* writability has changed */ - /* Sniff sends request twice, - * but only the last one is the right one */ - { - char *file = argv[0]; - int writable = atoi(argv[1]); - - buf = vi_find_buffer(file); - if (buf) - { - buf->b_p_ro = !writable; - if (buf != curbuf) - { - buf->b_flags |= BF_CHECK_RO + BF_NEVERLOADED; - if (writable && !buf->b_changed) - { - vim_snprintf(VICommand, sizeof(VICommand), - (char *)UnloadBuf, file); - vi_exec_cmd(VICommand); - } - } - else if (writable && !buf->b_changed) - { - vi_exec_cmd("e"); - } - } - break; - } - case 'h' : /* highlight info */ - break; /* not implemented */ - - case 't' : /* Set tab width */ - { - int tab_width = atoi(argv[1]); - - if (tab_width > 0 && tab_width <= 16) - { - vim_snprintf(VICommand, sizeof(VICommand), - (char *)SetTab, tab_width); - vi_exec_cmd(VICommand); - } - break; - } - case '|': - { - /* change the request separator */ - sniff_rq_sep[0] = arguments[0]; - /* echo the request */ - WriteToSniff(buffer); - break; - } - case 'A' : /* Warning/Info msg */ - vi_msg(arguments); - if (!strncmp(arguments, "Disconnected", 12)) - sniff_disconnect(1); /* unexpected disconnection */ - break; - case 'a' : /* Error msg */ - vi_error_msg(arguments); - if (!strncmp(arguments, "Cannot connect", 14)) - sniff_disconnect(1); - break; - - default : - break; - } - while (argc) - vim_free(argv[--argc]); -} - - -#ifndef WIN32 -/* get_request - * read string from fd up to next newline (excluding the nl), - * returns length of string - * 0 if no data available or no complete line - * <0 on error - */ - static int -get_request(int fd, char *buf, int maxlen) -{ - static char inbuf[1024]; - static int pos = 0, bytes = 0; - int len; -#ifdef HAVE_SELECT - struct timeval tval; - fd_set rfds; - - FD_ZERO(&rfds); - FD_SET(fd, &rfds); - tval.tv_sec = 0; - tval.tv_usec = 0; -#else - struct pollfd fds; - - fds.fd = fd; - fds.events = POLLIN; -#endif - - for (len = 0; len < maxlen; len++) - { - if (pos >= bytes) /* end of buffer reached? */ - { -#ifdef HAVE_SELECT - if (select(fd + 1, &rfds, NULL, NULL, &tval) > 0) -#else - if (poll(&fds, 1, 0) > 0) -#endif - { - pos = 0; - bytes = read(fd, inbuf, sizeof(inbuf)); - if (bytes <= 0) - return bytes; - } - else - { - pos = pos-len; - buf[0] = '\0'; - return 0; - } - } - if ((buf[len] = inbuf[pos++]) =='\n') - break; - } - buf[len] = '\0'; - return len; -} -#endif /* WIN32 */ - - - static void -SendRequest(struct sn_cmd *command, char *symbol) -{ - int cmd_type = command->cmd_type; - static char cmdstr[MAX_REQUEST_LEN]; - static char msgtxt[MAX_REQUEST_LEN]; - char *buffer_name = NULL; - - if (cmd_type == RQ_CONNECT) - { - sniff_connect(); - return; - } - if (!sniff_connected && !(cmd_type & SILENT)) - { - vi_error_msg(_("E278: SNiFF+ not connected")); - return; - } - - if (cmd_type & NEED_FILE) - { - if (!curbuf->b_sniff) - { - if (!(cmd_type & SILENT)) - vi_error_msg(_("E279: Not a SNiFF+ buffer")); - return; - } - buffer_name = vi_buffer_name(); - if (buffer_name == NULL) - return; - if (cmd_type & NEED_SYMBOL) - { - if (cmd_type & EMPTY_SYMBOL) - symbol = " "; - else if (!symbol && !(symbol = vi_symbol_under_cursor())) - return; /* error msg already displayed */ - } - - if (symbol) - vim_snprintf(cmdstr, sizeof(cmdstr), "%c%s%s%ld%s%s\n", - command->cmd_code, - buffer_name, - sniff_rq_sep, - vi_cursor_pos(), - sniff_rq_sep, - symbol - ); - else - vim_snprintf(cmdstr, sizeof(cmdstr), "%c%s\n", - command->cmd_code, buffer_name); - } - else /* simple request */ - { - cmdstr[0] = command->cmd_code; - cmdstr[1] = '\n'; - cmdstr[2] = '\0'; - } - if (command->cmd_msg && !(cmd_type & SILENT)) - { - if ((cmd_type & NEED_SYMBOL) && !(cmd_type & EMPTY_SYMBOL)) - { - vim_snprintf(msgtxt, sizeof(msgtxt), "%s: %s", - _(command->cmd_msg), symbol); - vi_msg(msgtxt); - } - else - vi_msg(_(command->cmd_msg)); - } - WriteToSniff(cmdstr); - if (cmd_type & DISCONNECT) - sniff_disconnect(0); -} - - - - static void -WriteToSniff(char *str) -{ - int bytes; -#ifdef WIN32 - if (! WriteFile(handle_to_sniff, str, strlen(str), &bytes, NULL)) - { - DWORD err=GetLastError(); - bytes = -1; - } -#else - bytes = write(fd_to_sniff, str, strlen(str)); -#endif - if (bytes<0) - { - vi_msg(_("Sniff: Error during write. Disconnected")); - sniff_disconnect(1); - } -} - -/*-------- vim helping functions --------------------------------*/ - - static void -vi_msg(char *str) -{ - if (str != NULL && *str != NUL) - MSG((char_u *)str); -} - - static void -vi_error_msg(char *str) -{ - if (str != NULL && *str != NUL) - EMSG((char_u *)str); -} - - static void -vi_open_file(char *fname) -{ - ++no_wait_return; - do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF, - curwin); - curbuf->b_sniff = TRUE; - --no_wait_return; /* [ex_docmd.c] */ -} - - static buf_T * -vi_find_buffer(char *fname) -{ /* derived from buflist_findname() [buffer.c] */ - buf_T *buf; - - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - if (buf->b_sfname != NULL && fnamecmp(fname, buf->b_sfname) == 0) - return (buf); - return NULL; -} - - - static char * -vi_symbol_under_cursor(void) -{ - int len; - char *symbolp; - char *p; - static char sniff_symbol[256]; - - len = find_ident_under_cursor((char_u **)&symbolp, FIND_IDENT); - /* [normal.c] */ - if (len <= 0) - return NULL; - for (p=sniff_symbol; len; len--) - *p++ = *symbolp++; - *p = '\0'; - return sniff_symbol; -} - - - static char * -vi_buffer_name(void) -{ - return (char *)curbuf->b_sfname; -} - - static void -vi_exec_cmd(char *vicmd) -{ - do_cmdline_cmd((char_u *)vicmd); /* [ex_docmd.c] */ -} - -/* - * Set cursor on character position - * derived from cursor_pos_info() [buffer.c] - */ - static void -vi_set_cursor_pos(long char_pos) -{ - linenr_T lnum; - long char_count = 1; /* first position = 1 */ - int line_size; - int eol_size; - - if (char_pos == 0) - { - char_pos = 1; - } - if (get_fileformat(curbuf) == EOL_DOS) - eol_size = 2; - else - eol_size = 1; - for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum) - { - line_size = STRLEN(ml_get(lnum)) + eol_size; - if (char_count+line_size > char_pos) break; - char_count += line_size; - } - curwin->w_cursor.lnum = lnum; - curwin->w_cursor.col = char_pos - char_count; -} - - static long -vi_cursor_pos(void) -{ - linenr_T lnum; - long char_count=1; /* sniff starts with pos 1 */ - int line_size; - int eol_size; - - if (curbuf->b_p_tx) - eol_size = 2; - else - eol_size = 1; - for (lnum = 1; lnum < curwin->w_cursor.lnum; ++lnum) - { - line_size = STRLEN(ml_get(lnum)) + eol_size; - char_count += line_size; - } - return char_count + curwin->w_cursor.col; -} diff --git a/src/if_sniff.h b/src/if_sniff.h deleted file mode 100644 --- a/src/if_sniff.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * if_sniff.h Interface between Vim and SNiFF+ - */ - -#ifndef __if_sniff_h__ -#define __if_sniff_h__ - -extern int want_sniff_request; -extern int sniff_request_waiting; -extern int sniff_connected; -extern int fd_from_sniff; -extern void sniff_disconnect(int immediately); -extern void ProcessSniffRequests(void); -extern void ex_sniff(exarg_T *eap); - -#endif diff --git a/src/keymap.h b/src/keymap.h --- a/src/keymap.h +++ b/src/keymap.h @@ -211,8 +211,6 @@ enum key_extra , KE_TAB /* unshifted TAB key */ , KE_S_TAB_OLD /* shifted TAB key (no longer used) */ - , KE_SNIFF /* SNiFF+ input waiting */ - , KE_XF1 /* extra vt100 function keys for xterm */ , KE_XF2 , KE_XF3 @@ -449,8 +447,6 @@ enum key_extra #define K_IGNORE TERMCAP2KEY(KS_EXTRA, KE_IGNORE) #define K_NOP TERMCAP2KEY(KS_EXTRA, KE_NOP) -#define K_SNIFF TERMCAP2KEY(KS_EXTRA, KE_SNIFF) - #define K_MOUSEDOWN TERMCAP2KEY(KS_EXTRA, KE_MOUSEDOWN) #define K_MOUSEUP TERMCAP2KEY(KS_EXTRA, KE_MOUSEUP) #define K_MOUSELEFT TERMCAP2KEY(KS_EXTRA, KE_MOUSELEFT) diff --git a/src/normal.c b/src/normal.c --- a/src/normal.c +++ b/src/normal.c @@ -163,9 +163,6 @@ static void nv_halfpage(cmdarg_T *cap); static void nv_join(cmdarg_T *cap); static void nv_put(cmdarg_T *cap); static void nv_open(cmdarg_T *cap); -#ifdef FEAT_SNIFF -static void nv_sniff(cmdarg_T *cap); -#endif #ifdef FEAT_NETBEANS_INTG static void nv_nbcmd(cmdarg_T *cap); #endif @@ -420,9 +417,6 @@ static const struct nv_cmd {K_F8, farsi_fkey, 0, 0}, {K_F9, farsi_fkey, 0, 0}, #endif -#ifdef FEAT_SNIFF - {K_SNIFF, nv_sniff, 0, 0}, -#endif #ifdef FEAT_NETBEANS_INTG {K_F21, nv_nbcmd, NV_NCH_ALW, 0}, #endif @@ -570,10 +564,6 @@ normal_cmd( * remembered in "opcount". */ ca.opcount = opcount; -#ifdef FEAT_SNIFF - want_sniff_request = sniff_connected; -#endif - /* * If there is an operator pending, then the command we take this time * will terminate it. Finish_op tells us to finish the operation before @@ -9388,14 +9378,6 @@ nv_open(cmdarg_T *cap) n_opencmd(cap); } -#ifdef FEAT_SNIFF - static void -nv_sniff(cmdarg_T *cap UNUSED) -{ - ProcessSniffRequests(); -} -#endif - #ifdef FEAT_NETBEANS_INTG static void nv_nbcmd(cmdarg_T *cap) diff --git a/src/os_unix.c b/src/os_unix.c --- a/src/os_unix.c +++ b/src/os_unix.c @@ -5340,7 +5340,6 @@ WaitForChar(long msec) * "msec" == 0 will check for characters once. * "msec" == -1 will block until a character is available. * When a GUI is being used, this will not be used for input -- webb - * Returns also, when a request from Sniff is waiting -- toni. * Or when a Linux GPM mouse event is waiting. * Or when a clientserver message is on the queue. */ @@ -5427,15 +5426,6 @@ RealWaitForChar(int fd, long msec, int * fds[0].events = POLLIN; nfd = 1; -# ifdef FEAT_SNIFF -# define SNIFF_IDX 1 - if (want_sniff_request) - { - fds[SNIFF_IDX].fd = fd_from_sniff; - fds[SNIFF_IDX].events = POLLIN; - nfd++; - } -# endif # ifdef FEAT_XCLIPBOARD may_restore_clipboard(); if (xterm_Shell != (Widget)0) @@ -5478,17 +5468,6 @@ RealWaitForChar(int fd, long msec, int * finished = FALSE; # endif -# ifdef FEAT_SNIFF - if (ret < 0) - sniff_disconnect(1); - else if (want_sniff_request) - { - if (fds[SNIFF_IDX].revents & POLLHUP) - sniff_disconnect(1); - if (fds[SNIFF_IDX].revents & POLLIN) - sniff_request_waiting = 1; - } -# endif # ifdef FEAT_XCLIPBOARD if (xterm_Shell != (Widget)0 && (fds[xterm_idx].revents & POLLIN)) { @@ -5574,15 +5553,6 @@ select_eintr: # endif maxfd = fd; -# ifdef FEAT_SNIFF - if (want_sniff_request) - { - FD_SET(fd_from_sniff, &rfds); - FD_SET(fd_from_sniff, &efds); - if (maxfd < fd_from_sniff) - maxfd = fd_from_sniff; - } -# endif # ifdef FEAT_XCLIPBOARD may_restore_clipboard(); if (xterm_Shell != (Widget)0) @@ -5652,17 +5622,6 @@ select_eintr: finished = FALSE; # endif -# ifdef FEAT_SNIFF - if (ret < 0 ) - sniff_disconnect(1); - else if (ret > 0 && want_sniff_request) - { - if (FD_ISSET(fd_from_sniff, &efds)) - sniff_disconnect(1); - if (FD_ISSET(fd_from_sniff, &rfds)) - sniff_request_waiting = 1; - } -# endif # ifdef FEAT_XCLIPBOARD if (ret > 0 && xterm_Shell != (Widget)0 && FD_ISSET(ConnectionNumber(xterm_dpy), &rfds)) diff --git a/src/os_win32.c b/src/os_win32.c --- a/src/os_win32.c +++ b/src/os_win32.c @@ -1683,27 +1683,6 @@ mch_inchar( if (typeaheadlen > 0) goto theend; -#ifdef FEAT_SNIFF - if (want_sniff_request) - { - if (sniff_request_waiting) - { - /* return K_SNIFF */ - typeahead[typeaheadlen++] = CSI; - typeahead[typeaheadlen++] = (char_u)KS_EXTRA; - typeahead[typeaheadlen++] = (char_u)KE_SNIFF; - sniff_request_waiting = 0; - want_sniff_request = 0; - goto theend; - } - else if (time < 0 || time > 250) - { - /* don't wait too long, a request might be pending */ - time = 250; - } - } -#endif - if (time >= 0) { if (!WaitForChar(time)) /* no character available */ diff --git a/src/structs.h b/src/structs.h --- a/src/structs.h +++ b/src/structs.h @@ -1639,10 +1639,6 @@ struct file_buffer char b_fab_rat; /* Record attribute */ unsigned int b_fab_mrs; /* Max record size */ #endif -#ifdef FEAT_SNIFF - int b_sniff; /* file was loaded through Sniff */ -#endif - int b_fnum; /* buffer number for this file. */ int b_changed; /* 'modified': Set to TRUE if something in the diff --git a/src/term.c b/src/term.c --- a/src/term.c +++ b/src/term.c @@ -1796,16 +1796,6 @@ set_termname(char_u *term) # endif #endif /* FEAT_MOUSE */ -#ifdef FEAT_SNIFF - { - char_u name[2]; - - name[0] = (int)KS_EXTRA; - name[1] = (int)KE_SNIFF; - add_termcode(name, (char_u *)"\233sniff", FALSE); - } -#endif - #ifdef USE_TERM_CONSOLE /* DEFAULT_TERM indicates that it is the machine console. */ if (STRCMP(term, DEFAULT_TERM) != 0) diff --git a/src/ui.c b/src/ui.c --- a/src/ui.c +++ b/src/ui.c @@ -1627,7 +1627,7 @@ set_input_buf(char_u *p) #if defined(FEAT_GUI) \ || defined(FEAT_MOUSE_GPM) || defined(FEAT_SYSMOUSE) \ || defined(FEAT_XCLIPBOARD) || defined(VMS) \ - || defined(FEAT_SNIFF) || defined(FEAT_CLIENTSERVER) \ + || defined(FEAT_CLIENTSERVER) \ || defined(PROTO) /* * Add the given bytes to the input buffer @@ -1772,17 +1772,7 @@ fill_input_buf(int exit_on_error UNUSED) inbufcount = 0; # else -# ifdef FEAT_SNIFF - if (sniff_request_waiting) - { - add_to_input_buf((char_u *)"\233sniff",6); /* results in K_SNIFF */ - sniff_request_waiting = 0; - want_sniff_request = 0; - return; - } -# endif - -# ifdef FEAT_MBYTE +# ifdef FEAT_MBYTE if (rest != NULL) { /* Use remainder of previous call, starts with an invalid character @@ -1806,7 +1796,7 @@ fill_input_buf(int exit_on_error UNUSED) } else unconverted = 0; -#endif +# endif len = 0; /* to avoid gcc warning */ for (try = 0; try < 100; ++try) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -554,11 +554,6 @@ static char *(features[]) = #else "-smartindent", #endif -#ifdef FEAT_SNIFF - "+sniff", -#else - "-sniff", -#endif #ifdef STARTUPTIME "+startuptime", #else @@ -749,6 +744,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1433, +/**/ 1432, /**/ 1431, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -1972,10 +1972,6 @@ typedef int VimClipboard; /* This is req #include "globals.h" /* global variables and messages */ -#ifdef FEAT_SNIFF -# include "if_sniff.h" -#endif - #ifndef FEAT_VIRTUALEDIT # define getvvcol(w, p, s, c, e) getvcol(w, p, s, c, e) # define virtual_active() FALSE