From 325b7a2fb5b970b77f7b9ec28ba15eb794f6edf8 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 5 Jul 2004 15:58:32 +0000 Subject: updated for version 7.0006 --- src/Make_ming.mak | 37 +- src/Make_mvc.mak | 26 +- src/Makefile | 45 +- src/auto/configure | 1235 +++++++++++++++----------- src/buffer.c | 3 + src/config.h.in | 3 + src/config.mk.in | 6 + src/configure.in | 178 +++- src/eval.c | 5 + src/ex_cmds.c | 13 +- src/ex_cmds.h | 8 +- src/ex_cmds2.c | 7 +- src/ex_docmd.c | 21 +- src/feature.h | 1 + src/if_mzsch.c | 2244 ++++++++++++++++++++++++++++++++++++++++++++++++ src/if_mzsch.h | 45 + src/main.c | 3 + src/misc1.c | 34 +- src/option.c | 13 +- src/option.h | 3 + src/os_unix.c | 82 +- src/os_win32.c | 40 +- src/proto.h | 4 + src/proto/if_mzsch.pro | 19 + src/search.c | 95 +- src/structs.h | 11 +- src/version.c | 5 + src/vim.h | 1 + src/window.c | 4 + 29 files changed, 3621 insertions(+), 570 deletions(-) create mode 100644 src/if_mzsch.c create mode 100644 src/if_mzsch.h create mode 100644 src/proto/if_mzsch.pro (limited to 'src') diff --git a/src/Make_ming.mak b/src/Make_ming.mak index 31cd92c26..e292817c0 100644 --- a/src/Make_ming.mak +++ b/src/Make_ming.mak @@ -106,6 +106,21 @@ PERLLIB=$(PERL)/lib PERLLIBS=$(PERLLIB)/Core endif +# uncomment 'MZSCHEME' if you want a MzScheme-enabled version +#MZSCHEME=d:/plt +ifdef MZSCHEME +ifndef MZSCHEME_VER +MZSCHEME_VER=205_000 +endif +# the modern MinGW can dynamically link to dlls directly +# point MZSCHEME_LIBDIR to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll +# c:/windows/system32 isn't a good idea, use some other dir; +# to build you can put them in temp dir) +ifndef MZSCHEME_LIBDIR +MZSCHEME_LIBDIR=$(MZSCHEME) +endif +endif + # Python support -- works with the ActiveState python 2.0 release (and others # too, probably) # @@ -252,6 +267,10 @@ CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" endif endif +ifdef MZSCHEME +CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\" +endif + ifdef RUBY CFLAGS += -DFEAT_RUBY $(RUBYINC) ifeq (yes, $(DYNAMIC_RUBY)) @@ -372,6 +391,10 @@ OBJ = \ ifdef PERL OBJ += $(OUTDIR)/if_perl.o endif +ifdef MZSCHEME +OBJ += $(OUTDIR)/if_mzsch.o +MZSCHEME_INCL = if_mzsch.h +endif ifdef PYTHON OBJ += $(OUTDIR)/if_python.o endif @@ -401,15 +424,19 @@ endif endif +ifdef MZSCHEME +MZSCHEME_SUFFIX = Z +endif + ifeq ($(GUI),yes) TARGET := gvim$(DEBUG_SUFFIX).exe DEFINES += $(DEF_GUI) OBJ += $(GUIOBJ) LFLAGS += -mwindows -OUTDIR = gobj$(DEBUG_SUFFIX) +OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX) else TARGET := vim$(DEBUG_SUFFIX).exe -OUTDIR = obj$(DEBUG_SUFFIX) +OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX) endif ifdef GETTEXT @@ -432,6 +459,10 @@ LIB += -lperl$(PERL_VER) endif endif +ifdef MZSCHEME +MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) +endif + ifdef TCL LIB += -L$(TCL)/lib ifeq (yes, $(DYNAMIC_TCL)) @@ -479,7 +510,7 @@ uninstal.exe: uninstal.c $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) $(TARGET): $(OUTDIR) $(OBJ) - $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(PYTHONLIB) $(RUBYLIB) + $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid -L $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(RUBYLIB) upx: exes upx gvim.exe diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak index d4b74a41f..23e69975c 100644 --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -19,6 +19,7 @@ # DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default # is yes) # Global IME support: GIME=yes (requires GUI=yes) +# MzScheme interface: MZSCHEME=[Path to MzScheme directory], MZSCHEME_VER=[version, 205_000, ...] # Perl interface: # PERL=[Path to Perl directory] # DYNAMIC_PERL=yes (to load the Perl DLL dynamically) @@ -116,6 +117,9 @@ OBJDIR = .\ObjC !if "$(OLE)" == "yes" OBJDIR = $(OBJDIR)O !endif +!ifdef MZSCHEME +OBJDIR = $(OBJDIR)Z +!endif !if "$(DEBUG)" == "yes" OBJDIR = $(OBJDIR)d !endif @@ -487,6 +491,17 @@ PYTHON_LIB = $(PYTHON)\libs\python$(PYTHON_VER).lib !endif !endif +# MzScheme interface +!ifdef MZSCHEME +!message MzScheme requested - root dir is "$(MZSCHEME)" +!ifndef MZSCHEME_VER +MZSCHEME_VER = 205_000 +!endif +CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include +MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj +MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib +!endif + # Perl interface !ifdef PERL !ifndef PERL_VER @@ -607,15 +622,15 @@ conflags = $(conflags) /map /mapinfo:lines LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ - $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) $(TCL_LIB) \ + $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) $(TCL_LIB) \ $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) all: $(VIM) vimrun.exe install.exe uninstal.exe xxd/xxd.exe GvimExt/gvimext.dll -$(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 +$(VIM): $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) version.c version.h $(CC) $(CFLAGS) version.c /Fo$(OUTDIR)/version.obj $(PDB) $(link) $(LINKARGS1) -out:$*.exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \ - $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \ + $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \ $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) \ $(OUTDIR)\version.obj $(LINKARGS2) @@ -747,6 +762,9 @@ $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL) $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL) $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c /Fo$(OUTDIR)/if_perlsfio.obj $(PDB) +$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) + $(CC) $(CFLAGS) $(PERL_INC) if_mzsch.c /Fo$(OUTDIR)/if_mzsch.obj $(PDB) -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" + $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c $(INCL) $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c /Fo$(OUTDIR)/if_python.obj $(PDB) @@ -840,7 +858,7 @@ auto/pathdef.c: auto @echo #include "vim.h" >> auto\pathdef.c @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> auto\pathdef.c @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> auto\pathdef.c - @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS)"; >> auto\pathdef.c + @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS:\=\\)"; >> auto\pathdef.c @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> auto\pathdef.c @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> auto\pathdef.c @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> auto\pathdef.c diff --git a/src/Makefile b/src/Makefile index e5d9d89a5..f7ab802da 100644 --- a/src/Makefile +++ b/src/Makefile @@ -354,7 +354,7 @@ CClink = $(CC) # Darwin. None of the Mac specific options or files will be used. #CONF_OPT_DARWIN = --disable-darwin -# PERL - For creating Vim with Perl interface +# PERL # Uncomment this when you want to include the Perl interface. # The Perl option sometimes causes problems, because it adds extra flags # to the command line. If you see strange flags during compilation, check in @@ -365,19 +365,27 @@ CClink = $(CC) # This requires at least "small" features, "tiny" doesn't work. #CONF_OPT_PERL = --enable-perlinterp -# PYTHON - For creating Vim with Python interface +# PYTHON # Uncomment this when you want to include the Python interface. #CONF_OPT_PYTHON = --enable-pythoninterp -# TCL - For creating Vim with Tcl interface +# TCL # Uncomment this when you want to include the Tcl interface. #CONF_OPT_TCL = --enable-tclinterp -# RUBY - For creating Vim with Ruby interface +# RUBY # Uncomment this when you want to include the Ruby interface. #CONF_OPT_RUBY = --enable-rubyinterp -# CSCOPE - For creating Vim with Cscope interface +# MZSCHEME +# Uncomment this when you want to include the MzScheme interface. +#CONF_OPT_MZSCHEME = --enable-mzschemeinterp +# PLT/mrscheme/drscheme Home dir; the PLTHOME environment variable also works +#CONF_OPT_PLTHOME = --with-plthome=/usr/local/plt +#CONF_OPT_PLTHOME = --with-plthome=/usr/local/drscheme +#CONF_OPT_PLTHOME = --with-plthome=/home/me/mz + +# CSCOPE # Uncomment this when you want to include the Cscope interface. #CONF_OPT_CSCOPE = --enable-cscope @@ -1047,7 +1055,7 @@ KDE_DIR = $(KDE_PREFIX) KDE_INCL = gui.h KDE_SRC = gui.c pty.c gui_kde.cc gui_kde_x11.cc gui_kde_widget.cc gui_kde_widget_moc.cc kvim_iface_skel.cc KDE_OBJ = objects/gui.o objects/pty.o objects/gui_kde.o objects/gui_kde_x11.o \ - objects/gui_kde_widget.o objects/gui_kde_widget_moc.o \ + objects/gui_kde_widget.o objects/gui_kde_widget_moc.o \ objects/kvim_iface_skel.o KDE_DEFS = -DFEAT_GUI_KDE $(NARROW_PROTO) KDE_IPATH = $(GUI_INC_LOC) @@ -1245,7 +1253,7 @@ SHELL = /bin/sh .SUFFIXES: .cc .c .o .pro PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS) -POST_DEFS = $(X_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS) +POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS) ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS) @@ -1256,7 +1264,7 @@ DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS) PFLAGS = $(PROTO_FLAGS) -DPROTO $(LINT_CFLAGS) ALL_LIB_DIRS = $(GUI_LIBS_DIR) $(X_LIBS_DIR) -ALL_LIBS = $(GUI_LIBS1) $(GUI_X_LIBS) $(GUI_LIBS2) $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS) $(EXTRA_LIBS) $(PERL_LIBS) $(PYTHON_LIBS) $(TCL_LIBS) $(RUBY_LIBS) $(PROFILE_LIBS) +ALL_LIBS = $(GUI_LIBS1) $(GUI_X_LIBS) $(GUI_LIBS2) $(X_PRE_LIBS) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS) $(EXTRA_LIBS) $(MZSCHEME_LIBS) $(PERL_LIBS) $(PYTHON_LIBS) $(TCL_LIBS) $(RUBY_LIBS) $(PROFILE_LIBS) # abbreviations DEST_BIN = $(DESTDIR)$(BINDIR) @@ -1334,14 +1342,15 @@ BASIC_SRC = \ window.c \ $(OS_EXTRA_SRC) -SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) $(PERL_SRC) $(PYTHON_SRC) \ - $(TCL_SRC) $(RUBY_SRC) $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) +SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) $(MZSCHEME_SRC) \ + $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(RUBY_SRC) \ + $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) TAGS_SRC = *.c *.cpp *.cc if_perl.xs -EXTRA_SRC = hangulin.c auto/if_perl.c if_perlsfio.c if_python.c if_tcl.c \ - if_ruby.c if_sniff.c gui_beval.c \ - workshop.c wsdebug.c integration.c netbeans.c +EXTRA_SRC = hangulin.c if_mzsch.c auto/if_perl.c if_perlsfio.c \ + if_python.c if_tcl.c if_ruby.c if_sniff.c gui_beval.c \ + workshop.c wsdebug.c integration.c netbeans.c # All sources, also the ones that are not configured ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC) @@ -1399,6 +1408,7 @@ OBJ = \ objects/undo.o \ objects/window.o \ $(GUI_OBJ) \ + $(MZSCHEME_OBJ) \ $(PERL_OBJ) \ $(PYTHON_OBJ) \ $(TCL_OBJ) \ @@ -1488,7 +1498,7 @@ config auto/config.mk: auto/configure config.mk.in config.h.in $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \ $(CONF_OPT_SNIFF) $(CONF_OPT_FEAT) $(CONF_TERM_LIB) \ $(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \ - $(CONF_ARGS) + $(CONF_ARGS) $(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) # Use "make reconfig" to rerun configure without cached values. # When config.h changes, most things will be recompiled automatically. @@ -2281,6 +2291,9 @@ objects/if_cscope.o: if_cscope.c objects/if_xcmdsrv.o: if_xcmdsrv.c $(CCC) -o $@ if_xcmdsrv.c +objects/if_mzsch.o: if_mzsch.c + $(CCC) -o $@ if_mzsch.c + objects/if_perl.o: auto/if_perl.c $(CCC) -o $@ auto/if_perl.c @@ -2757,6 +2770,10 @@ objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \ auto/osdef.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 +objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \ + auto/osdef.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 objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \ auto/osdef.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/auto/configure b/src/auto/configure index 62171f2c7..402689ea9 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -31,6 +31,10 @@ ac_help="$ac_help --disable-xsmp Disable XSMP session management" ac_help="$ac_help --disable-xsmp-interact Disable XSMP interaction" +ac_help="$ac_help + --enable-mzschemeinterp Include MzScheme interpreter." +ac_help="$ac_help + --with-plthome=PLTHOME Use PLTHOME." ac_help="$ac_help --enable-perlinterp Include Perl interpreter." ac_help="$ac_help @@ -636,7 +640,7 @@ cat >> confdefs.h <<\EOF EOF echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:640: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:644: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -666,7 +670,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:670: checking for $ac_word" >&5 +echo "configure:674: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -696,7 +700,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:700: checking for $ac_word" >&5 +echo "configure:704: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -747,7 +751,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:751: checking for $ac_word" >&5 +echo "configure:755: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -779,7 +783,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:783: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:787: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -790,12 +794,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 794 "configure" +#line 798 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -821,12 +825,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:825: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:829: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:830: checking whether we are using GNU C" >&5 +echo "configure:834: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -835,7 +839,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -854,7 +858,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:858: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:862: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -885,7 +889,7 @@ else fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:889: checking how to run the C preprocessor" >&5 +echo "configure:893: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -900,13 +904,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:910: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:914: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -917,13 +921,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:931: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -934,13 +938,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:948: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -964,7 +968,7 @@ else fi echo "$ac_t""$CPP" 1>&6 cat > conftest.$ac_ext <&5 | fi rm -f conftest* echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:978: checking for POSIXized ISC" >&5 +echo "configure:982: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -998,7 +1002,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1002: checking for $ac_word" >&5 +echo "configure:1006: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1030,7 +1034,7 @@ done # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1034: checking for $ac_word" >&5 +echo "configure:1038: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1059,12 +1063,12 @@ fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:1063: checking for Cygwin environment" >&5 +echo "configure:1067: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -1092,19 +1096,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:1096: checking for mingw32 environment" >&5 +echo "configure:1100: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -1123,7 +1127,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1127: checking for executable suffix" >&5 +echo "configure:1131: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1133,7 +1137,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -1180,14 +1184,14 @@ test "$GCC" = yes && CPP_MM=M; if test -f ./toolcheck; then echo "checking for buggy tools" 1>&6 -echo "configure:1184: checking for buggy tools" >&5 +echo "configure:1188: checking for buggy tools" >&5 sh ./toolcheck 1>&6 fi OS_EXTRA_SRC=""; OS_EXTRA_OBJ="" echo $ac_n "checking for BeOS""... $ac_c" 1>&6 -echo "configure:1191: checking for BeOS" >&5 +echo "configure:1195: checking for BeOS" >&5 case `uname` in BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o BEOS=yes; echo "$ac_t""yes" 1>&6;; @@ -1195,7 +1199,7 @@ case `uname` in esac echo $ac_n "checking for QNX""... $ac_c" 1>&6 -echo "configure:1199: checking for QNX" >&5 +echo "configure:1203: checking for QNX" >&5 case `uname` in QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o test -z "$with_x" && with_x=no @@ -1205,12 +1209,12 @@ esac DEFAULT_VIMNAME=vim echo $ac_n "checking for Darwin (Mac OS X)""... $ac_c" 1>&6 -echo "configure:1209: checking for Darwin (Mac OS X)" >&5 +echo "configure:1213: checking for Darwin (Mac OS X)" >&5 if test "`(uname) 2>/dev/null`" = Darwin; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking --disable-darwin argument""... $ac_c" 1>&6 -echo "configure:1214: checking --disable-darwin argument" >&5 +echo "configure:1218: checking --disable-darwin argument" >&5 # Check whether --enable-darwin or --disable-darwin was given. if test "${enable_darwin+set}" = set; then enableval="$enable_darwin" @@ -1222,7 +1226,7 @@ fi if test "$enable_darwin" = "yes"; then echo "$ac_t""no" 1>&6 echo $ac_n "checking if Darwin files are there""... $ac_c" 1>&6 -echo "configure:1226: checking if Darwin files are there" >&5 +echo "configure:1230: checking if Darwin files are there" >&5 if test -f os_macosx.c; then echo "$ac_t""yes" 1>&6 else @@ -1241,17 +1245,17 @@ echo "configure:1226: checking if Darwin files are there" >&5 ac_safe=`echo "Carbon/Carbon.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Carbon/Carbon.h""... $ac_c" 1>&6 -echo "configure:1245: checking for Carbon/Carbon.h" >&5 +echo "configure:1249: checking for Carbon/Carbon.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1308,7 +1312,7 @@ if test -z "$have_local_include" -a -d /usr/local/include; then fi echo $ac_n "checking --with-vim-name argument""... $ac_c" 1>&6 -echo "configure:1312: checking --with-vim-name argument" >&5 +echo "configure:1316: checking --with-vim-name argument" >&5 # Check whether --with-vim-name or --without-vim-name was given. if test "${with_vim_name+set}" = set; then withval="$with_vim_name" @@ -1319,7 +1323,7 @@ fi echo $ac_n "checking --with-ex-name argument""... $ac_c" 1>&6 -echo "configure:1323: checking --with-ex-name argument" >&5 +echo "configure:1327: checking --with-ex-name argument" >&5 # Check whether --with-ex-name or --without-ex-name was given. if test "${with_ex_name+set}" = set; then withval="$with_ex_name" @@ -1330,7 +1334,7 @@ fi echo $ac_n "checking --with-view-name argument""... $ac_c" 1>&6 -echo "configure:1334: checking --with-view-name argument" >&5 +echo "configure:1338: checking --with-view-name argument" >&5 # Check whether --with-view-name or --without-view-name was given. if test "${with_view_name+set}" = set; then withval="$with_view_name" @@ -1342,7 +1346,7 @@ fi echo $ac_n "checking --with-global-runtime argument""... $ac_c" 1>&6 -echo "configure:1346: checking --with-global-runtime argument" >&5 +echo "configure:1350: checking --with-global-runtime argument" >&5 # Check whether --with-global-runtime or --without-global-runtime was given. if test "${with_global_runtime+set}" = set; then withval="$with_global_runtime" @@ -1356,7 +1360,7 @@ fi echo $ac_n "checking --with-modified-by argument""... $ac_c" 1>&6 -echo "configure:1360: checking --with-modified-by argument" >&5 +echo "configure:1364: checking --with-modified-by argument" >&5 # Check whether --with-modified-by or --without-modified-by was given. if test "${with_modified_by+set}" = set; then withval="$with_modified_by" @@ -1370,9 +1374,9 @@ fi echo $ac_n "checking if character set is EBCDIC""... $ac_c" 1>&6 -echo "configure:1374: checking if character set is EBCDIC" >&5 +echo "configure:1378: checking if character set is EBCDIC" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # TryCompile action if true cf_cv_ebcdic=yes @@ -1413,7 +1417,7 @@ esac if test "$cf_cv_ebcdic" = "yes"; then echo $ac_n "checking for OS/390 Unix""... $ac_c" 1>&6 -echo "configure:1417: checking for OS/390 Unix" >&5 +echo "configure:1421: checking for OS/390 Unix" >&5 case `uname` in OS/390) OS390Unix="yes"; if test "$CC" = "cc"; then @@ -1450,7 +1454,7 @@ fi echo $ac_n "checking --with-features argument""... $ac_c" 1>&6 -echo "configure:1454: checking --with-features argument" >&5 +echo "configure:1458: checking --with-features argument" >&5 # Check whether --with-features or --without-features was given. if test "${with_features+set}" = set; then withval="$with_features" @@ -1493,7 +1497,7 @@ esac echo $ac_n "checking --with-compiledby argument""... $ac_c" 1>&6 -echo "configure:1497: checking --with-compiledby argument" >&5 +echo "configure:1501: checking --with-compiledby argument" >&5 # Check whether --with-compiledby or --without-compiledby was given. if test "${with_compiledby+set}" = set; then withval="$with_compiledby" @@ -1505,7 +1509,7 @@ fi echo $ac_n "checking --disable-xsmp argument""... $ac_c" 1>&6 -echo "configure:1509: checking --disable-xsmp argument" >&5 +echo "configure:1513: checking --disable-xsmp argument" >&5 # Check whether --enable-xsmp or --disable-xsmp was given. if test "${enable_xsmp+set}" = set; then enableval="$enable_xsmp" @@ -1518,7 +1522,7 @@ fi if test "$enable_xsmp" = "yes"; then echo "$ac_t""no" 1>&6 echo $ac_n "checking --disable-xsmp-interact argument""... $ac_c" 1>&6 -echo "configure:1522: checking --disable-xsmp-interact argument" >&5 +echo "configure:1526: checking --disable-xsmp-interact argument" >&5 # Check whether --enable-xsmp-interact or --disable-xsmp-interact was given. if test "${enable_xsmp_interact+set}" = set; then enableval="$enable_xsmp_interact" @@ -1540,8 +1544,142 @@ else echo "$ac_t""yes" 1>&6 fi +echo $ac_n "checking --enable-mzschemeinterp argument""... $ac_c" 1>&6 +echo "configure:1549: checking --enable-mzschemeinterp argument" >&5 +# Check whether --enable-mzschemeinterp or --disable-mzschemeinterp was given. +if test "${enable_mzschemeinterp+set}" = set; then + enableval="$enable_mzschemeinterp" + : +else + enable_mzschemeinterp="no" +fi + +echo "$ac_t""$enable_mzschemeinterp" 1>&6 + +if test "$enable_mzschemeinterp" = "yes"; then + + + echo $ac_n "checking --with-plthome argument""... $ac_c" 1>&6 +echo "configure:1564: checking --with-plthome argument" >&5 + # Check whether --with-plthome or --without-plthome was given. +if test "${with_plthome+set}" = set; then + withval="$with_plthome" + with_plthome="$withval"; echo "$ac_t""$with_plthome" 1>&6 +else + with_plthome="";echo "$ac_t"""no"" 1>&6 +fi + + + if test "X$with_plthome" != "X"; then + vi_cv_path_mzscheme_pfx="$with_plthome" + else + echo $ac_n "checking PLTHOME environment var""... $ac_c" 1>&6 +echo "configure:1578: checking PLTHOME environment var" >&5 + if test "X$PLTHOME" != "X"; then + echo "$ac_t"""$PLTHOME"" 1>&6 + vi_cv_path_mzscheme_pfx="$PLTHOME" + else + echo "$ac_t"""not set"" 1>&6 + # Extract the first word of "mzscheme", so it can be a program name with args. +set dummy mzscheme; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1587: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_mzscheme'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$vi_cv_path_mzscheme" in + /*) + ac_cv_path_vi_cv_path_mzscheme="$vi_cv_path_mzscheme" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_vi_cv_path_mzscheme="$vi_cv_path_mzscheme" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_vi_cv_path_mzscheme="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +vi_cv_path_mzscheme="$ac_cv_path_vi_cv_path_mzscheme" +if test -n "$vi_cv_path_mzscheme"; then + echo "$ac_t""$vi_cv_path_mzscheme" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + if test "X$vi_cv_path_mzscheme" != "X"; then + lsout=`ls -l $vi_cv_path_mzscheme` + if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then + vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'` + fi + fi + + if test "X$vi_cv_path_mzscheme" != "X"; then + echo $ac_n "checking MzScheme install prefix""... $ac_c" 1>&6 +echo "configure:1629: checking MzScheme install prefix" >&5 +if eval "test \"`echo '$''{'vi_cv_path_mzscheme_pfx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + vi_cv_path_mzscheme_pfx=` + ${vi_cv_path_mzscheme} -evm \ + "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ + (lambda (base name must-be-dir?) base)) (quote up))))"` +fi + +echo "$ac_t""$vi_cv_path_mzscheme_pfx" 1>&6 + vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'` + fi + fi + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + echo $ac_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include""... $ac_c" 1>&6 +echo "configure:1649: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include" >&5 + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then + echo "$ac_t"""yes"" 1>&6 + else + echo "$ac_t"""no"" 1>&6 + vi_cv_path_mzscheme_pfx= + fi + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a ${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzgc -lmzscheme" + fi + MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" + cat >> confdefs.h <<\EOF +#define FEAT_MZSCHEME 1 +EOF + + fi + + + + + +fi + + echo $ac_n "checking --enable-perlinterp argument""... $ac_c" 1>&6 -echo "configure:1545: checking --enable-perlinterp argument" >&5 +echo "configure:1683: checking --enable-perlinterp argument" >&5 # Check whether --enable-perlinterp or --disable-perlinterp was given. if test "${enable_perlinterp+set}" = set; then enableval="$enable_perlinterp" @@ -1556,7 +1694,7 @@ if test "$enable_perlinterp" = "yes"; then # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1560: checking for $ac_word" >&5 +echo "configure:1698: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_perl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1590,7 +1728,7 @@ fi if test "X$vi_cv_path_perl" != "X"; then echo $ac_n "checking Perl version""... $ac_c" 1>&6 -echo "configure:1594: checking Perl version" >&5 +echo "configure:1732: checking Perl version" >&5 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then eval `$vi_cv_path_perl -V:usethreads` if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then @@ -1626,7 +1764,7 @@ echo "configure:1594: checking Perl version" >&5 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'` echo $ac_n "checking if compile and link flags for Perl are sane""... $ac_c" 1>&6 -echo "configure:1630: checking if compile and link flags for Perl are sane" >&5 +echo "configure:1768: checking if compile and link flags for Perl are sane" >&5 cflags_save=$CFLAGS libs_save=$LIBS ldflags_save=$LDFLAGS @@ -1634,14 +1772,14 @@ echo "configure:1630: checking if compile and link flags for Perl are sane" >&5 LIBS="$LIBS $perllibs" LDFLAGS="$perlldflags $LDFLAGS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; perl_ok=yes else @@ -1704,7 +1842,7 @@ fi echo $ac_n "checking --enable-pythoninterp argument""... $ac_c" 1>&6 -echo "configure:1708: checking --enable-pythoninterp argument" >&5 +echo "configure:1846: checking --enable-pythoninterp argument" >&5 # Check whether --enable-pythoninterp or --disable-pythoninterp was given. if test "${enable_pythoninterp+set}" = set; then enableval="$enable_pythoninterp" @@ -1718,7 +1856,7 @@ if test "$enable_pythoninterp" = "yes"; then # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1722: checking for $ac_word" >&5 +echo "configure:1860: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_python'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1753,7 +1891,7 @@ fi if test "X$vi_cv_path_python" != "X"; then echo $ac_n "checking Python version""... $ac_c" 1>&6 -echo "configure:1757: checking Python version" >&5 +echo "configure:1895: checking Python version" >&5 if eval "test \"`echo '$''{'vi_cv_var_python_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1765,14 +1903,14 @@ fi echo "$ac_t""$vi_cv_var_python_version" 1>&6 echo $ac_n "checking Python is 1.4 or better""... $ac_c" 1>&6 -echo "configure:1769: checking Python is 1.4 or better" >&5 +echo "configure:1907: checking Python is 1.4 or better" >&5 if ${vi_cv_path_python} -c \ "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)" then echo "$ac_t""yep" 1>&6 echo $ac_n "checking Python's install prefix""... $ac_c" 1>&6 -echo "configure:1776: checking Python's install prefix" >&5 +echo "configure:1914: checking Python's install prefix" >&5 if eval "test \"`echo '$''{'vi_cv_path_python_pfx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1784,7 +1922,7 @@ fi echo "$ac_t""$vi_cv_path_python_pfx" 1>&6 echo $ac_n "checking Python's execution prefix""... $ac_c" 1>&6 -echo "configure:1788: checking Python's execution prefix" >&5 +echo "configure:1926: checking Python's execution prefix" >&5 if eval "test \"`echo '$''{'vi_cv_path_python_epfx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1815,7 +1953,7 @@ fi echo $ac_n "checking Python's configuration directory""... $ac_c" 1>&6 -echo "configure:1819: checking Python's configuration directory" >&5 +echo "configure:1957: checking Python's configuration directory" >&5 if eval "test \"`echo '$''{'vi_cv_path_python_conf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1888,7 +2026,7 @@ fi PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'" echo $ac_n "checking if -pthread should be used""... $ac_c" 1>&6 -echo "configure:1892: checking if -pthread should be used" >&5 +echo "configure:2030: checking if -pthread should be used" >&5 threadsafe_flag= thread_lib= if test "x$MACOSX" != "xyes"; then @@ -1904,14 +2042,14 @@ echo "configure:1892: checking if -pthread should be used" >&5 CFLAGS="$CFLAGS $threadsafe_flag" LIBS="$LIBS $thread_lib" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag" else @@ -1928,20 +2066,20 @@ rm -f conftest* fi echo $ac_n "checking if compile and link flags for Python are sane""... $ac_c" 1>&6 -echo "configure:1932: checking if compile and link flags for Python are sane" >&5 +echo "configure:2070: checking if compile and link flags for Python are sane" >&5 cflags_save=$CFLAGS libs_save=$LIBS CFLAGS="$CFLAGS $PYTHON_CFLAGS" LIBS="$LIBS $PYTHON_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; python_ok=yes else @@ -1980,7 +2118,7 @@ fi echo $ac_n "checking --enable-tclinterp argument""... $ac_c" 1>&6 -echo "configure:1984: checking --enable-tclinterp argument" >&5 +echo "configure:2122: checking --enable-tclinterp argument" >&5 # Check whether --enable-tclinterp or --disable-tclinterp was given. if test "${enable_tclinterp+set}" = set; then enableval="$enable_tclinterp" @@ -1994,7 +2132,7 @@ echo "$ac_t""$enable_tclinterp" 1>&6 if test "$enable_tclinterp" = "yes"; then echo $ac_n "checking --with-tclsh argument""... $ac_c" 1>&6 -echo "configure:1998: checking --with-tclsh argument" >&5 +echo "configure:2136: checking --with-tclsh argument" >&5 # Check whether --with-tclsh or --without-tclsh was given. if test "${with_tclsh+set}" = set; then withval="$with_tclsh" @@ -2006,7 +2144,7 @@ fi # Extract the first word of "$tclsh_name", so it can be a program name with args. set dummy $tclsh_name; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2010: checking for $ac_word" >&5 +echo "configure:2148: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2045,7 +2183,7 @@ fi # Extract the first word of "$tclsh_name", so it can be a program name with args. set dummy $tclsh_name; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2049: checking for $ac_word" >&5 +echo "configure:2187: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2083,7 +2221,7 @@ fi # Extract the first word of "$tclsh_name", so it can be a program name with args. set dummy $tclsh_name; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2087: checking for $ac_word" >&5 +echo "configure:2225: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2118,14 +2256,14 @@ fi fi if test "X$vi_cv_path_tcl" != "X"; then echo $ac_n "checking Tcl version""... $ac_c" 1>&6 -echo "configure:2122: checking Tcl version" >&5 +echo "configure:2260: checking Tcl version" >&5 if echo 'exit [expr [info tclversion] < 8.0]' | $vi_cv_path_tcl - ; then tclver=`echo 'puts [info tclversion]' | $vi_cv_path_tcl -` echo "$ac_t""$tclver - OK" 1>&6; tclloc=`echo 'set l [info library];set i [string last lib $l];incr i -2;puts [string range $l 0 $i]' | $vi_cv_path_tcl -` echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6 -echo "configure:2129: checking for location of Tcl include" >&5 +echo "configure:2267: checking for location of Tcl include" >&5 if test "x$MACOSX" != "xyes"; then tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include" else @@ -2144,7 +2282,7 @@ echo "configure:2129: checking for location of Tcl include" >&5 fi if test -z "$SKIP_TCL"; then echo $ac_n "checking for location of tclConfig.sh script""... $ac_c" 1>&6 -echo "configure:2148: checking for location of tclConfig.sh script" >&5 +echo "configure:2286: checking for location of tclConfig.sh script" >&5 if test "x$MACOSX" != "xyes"; then tclcnf=`echo $tclinc | sed s/include/lib/g` else @@ -2162,7 +2300,7 @@ echo "configure:2148: checking for location of tclConfig.sh script" >&5 if test -z "$TCL_LIBS"; then echo "$ac_t""" 1>&6 echo $ac_n "checking for Tcl library by myself""... $ac_c" 1>&6 -echo "configure:2166: checking for Tcl library by myself" >&5 +echo "configure:2304: checking for Tcl library by myself" >&5 tcllib=`echo $tclinc | sed s/include/lib/g` for ext in .so .a ; do for ver in "" $tclver ; do @@ -2208,7 +2346,7 @@ fi echo $ac_n "checking --enable-rubyinterp argument""... $ac_c" 1>&6 -echo "configure:2212: checking --enable-rubyinterp argument" >&5 +echo "configure:2350: checking --enable-rubyinterp argument" >&5 # Check whether --enable-rubyinterp or --disable-rubyinterp was given. if test "${enable_rubyinterp+set}" = set; then enableval="$enable_rubyinterp" @@ -2223,7 +2361,7 @@ if test "$enable_rubyinterp" = "yes"; then # Extract the first word of "ruby", so it can be a program name with args. set dummy ruby; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2227: checking for $ac_word" >&5 +echo "configure:2365: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_ruby'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2257,11 +2395,11 @@ fi if test "X$vi_cv_path_ruby" != "X"; then echo $ac_n "checking Ruby version""... $ac_c" 1>&6 -echo "configure:2261: checking Ruby version" >&5 +echo "configure:2399: checking Ruby version" >&5 if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then echo "$ac_t""OK" 1>&6 echo $ac_n "checking Ruby header files""... $ac_c" 1>&6 -echo "configure:2265: checking Ruby header files" >&5 +echo "configure:2403: checking Ruby header files" >&5 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir' 2>/dev/null` if test "X$rubyhdrdir" != "X"; then echo "$ac_t""$rubyhdrdir" 1>&6 @@ -2313,7 +2451,7 @@ fi echo $ac_n "checking --enable-cscope argument""... $ac_c" 1>&6 -echo "configure:2317: checking --enable-cscope argument" >&5 +echo "configure:2455: checking --enable-cscope argument" >&5 # Check whether --enable-cscope or --disable-cscope was given. if test "${enable_cscope+set}" = set; then enableval="$enable_cscope" @@ -2331,7 +2469,7 @@ EOF fi echo $ac_n "checking --enable-workshop argument""... $ac_c" 1>&6 -echo "configure:2335: checking --enable-workshop argument" >&5 +echo "configure:2473: checking --enable-workshop argument" >&5 # Check whether --enable-workshop or --disable-workshop was given. if test "${enable_workshop+set}" = set; then enableval="$enable_workshop" @@ -2356,7 +2494,7 @@ EOF fi echo $ac_n "checking --disable-netbeans argument""... $ac_c" 1>&6 -echo "configure:2360: checking --disable-netbeans argument" >&5 +echo "configure:2498: checking --disable-netbeans argument" >&5 # Check whether --enable-netbeans or --disable-netbeans was given. if test "${enable_netbeans+set}" = set; then enableval="$enable_netbeans" @@ -2368,7 +2506,7 @@ fi if test "$enable_netbeans" = "yes"; then echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:2372: checking for socket in -lsocket" >&5 +echo "configure:2510: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2376,7 +2514,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2415,7 +2553,7 @@ else fi echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:2419: checking for gethostbyname in -lnsl" >&5 +echo "configure:2557: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2423,7 +2561,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2462,9 +2600,9 @@ else fi echo $ac_n "checking whether compiling netbeans integration is possible""... $ac_c" 1>&6 -echo "configure:2466: checking whether compiling netbeans integration is possible" >&5 +echo "configure:2604: checking whether compiling netbeans integration is possible" >&5 cat > conftest.$ac_ext < @@ -2494,7 +2632,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -2519,7 +2657,7 @@ EOF fi echo $ac_n "checking --enable-sniff argument""... $ac_c" 1>&6 -echo "configure:2523: checking --enable-sniff argument" >&5 +echo "configure:2661: checking --enable-sniff argument" >&5 # Check whether --enable-sniff or --disable-sniff was given. if test "${enable_sniff+set}" = set; then enableval="$enable_sniff" @@ -2541,7 +2679,7 @@ EOF fi echo $ac_n "checking --enable-multibyte argument""... $ac_c" 1>&6 -echo "configure:2545: checking --enable-multibyte argument" >&5 +echo "configure:2683: checking --enable-multibyte argument" >&5 # Check whether --enable-multibyte or --disable-multibyte was given. if test "${enable_multibyte+set}" = set; then enableval="$enable_multibyte" @@ -2559,7 +2697,7 @@ EOF fi echo $ac_n "checking --enable-hangulinput argument""... $ac_c" 1>&6 -echo "configure:2563: checking --enable-hangulinput argument" >&5 +echo "configure:2701: checking --enable-hangulinput argument" >&5 # Check whether --enable-hangulinput or --disable-hangulinput was given. if test "${enable_hangulinput+set}" = set; then enableval="$enable_hangulinput" @@ -2571,7 +2709,7 @@ fi echo "$ac_t""$enable_hangulinput" 1>&6 echo $ac_n "checking --enable-xim argument""... $ac_c" 1>&6 -echo "configure:2575: checking --enable-xim argument" >&5 +echo "configure:2713: checking --enable-xim argument" >&5 # Check whether --enable-xim or --disable-xim was given. if test "${enable_xim+set}" = set; then enableval="$enable_xim" @@ -2582,7 +2720,7 @@ fi echo $ac_n "checking --enable-fontset argument""... $ac_c" 1>&6 -echo "configure:2586: checking --enable-fontset argument" >&5 +echo "configure:2724: checking --enable-fontset argument" >&5 # Check whether --enable-fontset or --disable-fontset was given. if test "${enable_fontset+set}" = set; then enableval="$enable_fontset" @@ -2602,7 +2740,7 @@ else # Extract the first word of "xmkmf", so it can be a program name with args. set dummy xmkmf; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2606: checking for $ac_word" >&5 +echo "configure:2744: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_xmkmfpath'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2640,7 +2778,7 @@ fi # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:2644: checking for X" >&5 +echo "configure:2782: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -2702,12 +2840,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2849: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2776,14 +2914,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -2889,17 +3027,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:2893: checking whether -R must be followed by a space" >&5 +echo "configure:3031: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -2915,14 +3053,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -2954,7 +3092,7 @@ rm -f conftest* # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:2958: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:3096: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2962,7 +3100,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2995,7 +3133,7 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:2999: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:3137: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3003,7 +3141,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3043,12 +3181,12 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:3047: checking for gethostbyname" >&5 +echo "configure:3185: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -3092,7 +3230,7 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:3096: checking for gethostbyname in -lnsl" >&5 +echo "configure:3234: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3100,7 +3238,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3141,12 +3279,12 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:3145: checking for connect" >&5 +echo "configure:3283: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -3190,7 +3328,7 @@ fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:3194: checking for connect in -lsocket" >&5 +echo "configure:3332: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3198,7 +3336,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3233,12 +3371,12 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:3237: checking for remove" >&5 +echo "configure:3375: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -3282,7 +3420,7 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:3286: checking for remove in -lposix" >&5 +echo "configure:3424: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3290,7 +3428,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3325,12 +3463,12 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:3329: checking for shmat" >&5 +echo "configure:3467: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -3374,7 +3512,7 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:3378: checking for shmat in -lipc" >&5 +echo "configure:3516: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3382,7 +3520,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3426,7 +3564,7 @@ fi # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:3430: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:3568: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3434,7 +3572,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3499,18 +3637,18 @@ fi echo $ac_n "checking if X11 header files can be found""... $ac_c" 1>&6 -echo "configure:3503: checking if X11 header files can be found" >&5 +echo "configure:3641: checking if X11 header files can be found" >&5 cflags_save=$CFLAGS CFLAGS="$CFLAGS $X_CFLAGS" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:3514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3536,7 +3674,7 @@ EOF LDFLAGS="-L$x_libraries $LDFLAGS" echo $ac_n "checking for _XdmcpAuthDoIt in -lXdmcp""... $ac_c" 1>&6 -echo "configure:3540: checking for _XdmcpAuthDoIt in -lXdmcp" >&5 +echo "configure:3678: checking for _XdmcpAuthDoIt in -lXdmcp" >&5 ac_lib_var=`echo Xdmcp'_'_XdmcpAuthDoIt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3544,7 +3682,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXdmcp -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3577,7 +3715,7 @@ fi echo $ac_n "checking for IceOpenConnection in -lICE""... $ac_c" 1>&6 -echo "configure:3581: checking for IceOpenConnection in -lICE" >&5 +echo "configure:3719: checking for IceOpenConnection in -lICE" >&5 ac_lib_var=`echo ICE'_'IceOpenConnection | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3585,7 +3723,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3619,7 +3757,7 @@ fi LDFLAGS="$X_LIBS $ac_save_LDFLAGS" echo $ac_n "checking for XpmCreatePixmapFromData in -lXpm""... $ac_c" 1>&6 -echo "configure:3623: checking for XpmCreatePixmapFromData in -lXpm" >&5 +echo "configure:3761: checking for XpmCreatePixmapFromData in -lXpm" >&5 ac_lib_var=`echo Xpm'_'XpmCreatePixmapFromData | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3627,7 +3765,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXpm -lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3660,18 +3798,18 @@ fi echo $ac_n "checking if X11 header files implicitly declare return values""... $ac_c" 1>&6 -echo "configure:3664: checking if X11 header files implicitly declare return values" >&5 +echo "configure:3802: checking if X11 header files implicitly declare return values" >&5 cflags_save=$CFLAGS CFLAGS="$CFLAGS $X_CFLAGS -Werror" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:3675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else @@ -3680,14 +3818,14 @@ else rm -rf conftest* CFLAGS="$CFLAGS -Wno-implicit-int" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:3691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cflags_save="$cflags_save -Wno-implicit-int" else @@ -3711,7 +3849,7 @@ fi test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no echo $ac_n "checking --enable-gui argument""... $ac_c" 1>&6 -echo "configure:3715: checking --enable-gui argument" >&5 +echo "configure:3853: checking --enable-gui argument" >&5 # Check whether --enable-gui or --disable-gui was given. if test "${enable_gui+set}" = set; then enableval="$enable_gui" @@ -3811,7 +3949,7 @@ fi if test "x$SKIP_KDE" != "xYES" -a "$enable_gui_canon" != "kde"; then echo $ac_n "checking whether or not to look for KDE""... $ac_c" 1>&6 -echo "configure:3815: checking whether or not to look for KDE" >&5 +echo "configure:3953: checking whether or not to look for KDE" >&5 # Check whether --enable-kde-check or --disable-kde-check was given. if test "${enable_kde_check+set}" = set; then enableval="$enable_kde_check" @@ -3828,7 +3966,7 @@ fi if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then echo $ac_n "checking whether or not to look for GTK""... $ac_c" 1>&6 -echo "configure:3832: checking whether or not to look for GTK" >&5 +echo "configure:3970: checking whether or not to look for GTK" >&5 # Check whether --enable-gtk-check or --disable-gtk-check was given. if test "${enable_gtk_check+set}" = set; then enableval="$enable_gtk_check" @@ -3847,7 +3985,7 @@ fi if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \ -a "$enable_gui_canon" != "gnome2"; then echo $ac_n "checking whether or not to look for GTK+ 2""... $ac_c" 1>&6 -echo "configure:3851: checking whether or not to look for GTK+ 2" >&5 +echo "configure:3989: checking whether or not to look for GTK+ 2" >&5 # Check whether --enable-gtk2-check or --disable-gtk2-check was given. if test "${enable_gtk2_check+set}" = set; then enableval="$enable_gtk2_check" @@ -3865,7 +4003,7 @@ fi if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \ -a "$enable_gui_canon" != "gnome2"; then echo $ac_n "checking whether or not to look for GNOME""... $ac_c" 1>&6 -echo "configure:3869: checking whether or not to look for GNOME" >&5 +echo "configure:4007: checking whether or not to look for GNOME" >&5 # Check whether --enable-gnome-check or --disable-gnome-check was given. if test "${enable_gnome_check+set}" = set; then enableval="$enable_gnome_check" @@ -3882,7 +4020,7 @@ fi if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then echo $ac_n "checking whether or not to look for Motif""... $ac_c" 1>&6 -echo "configure:3886: checking whether or not to look for Motif" >&5 +echo "configure:4024: checking whether or not to look for Motif" >&5 # Check whether --enable-motif-check or --disable-motif-check was given. if test "${enable_motif_check+set}" = set; then enableval="$enable_motif_check" @@ -3899,7 +4037,7 @@ fi if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then echo $ac_n "checking whether or not to look for Athena""... $ac_c" 1>&6 -echo "configure:3903: checking whether or not to look for Athena" >&5 +echo "configure:4041: checking whether or not to look for Athena" >&5 # Check whether --enable-athena-check or --disable-athena-check was given. if test "${enable_athena_check+set}" = set; then enableval="$enable_athena_check" @@ -3916,7 +4054,7 @@ fi if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then echo $ac_n "checking whether or not to look for neXtaw""... $ac_c" 1>&6 -echo "configure:3920: checking whether or not to look for neXtaw" >&5 +echo "configure:4058: checking whether or not to look for neXtaw" >&5 # Check whether --enable-nextaw-check or --disable-nextaw-check was given. if test "${enable_nextaw_check+set}" = set; then enableval="$enable_nextaw_check" @@ -3933,7 +4071,7 @@ fi if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then echo $ac_n "checking whether or not to look for Carbon""... $ac_c" 1>&6 -echo "configure:3937: checking whether or not to look for Carbon" >&5 +echo "configure:4075: checking whether or not to look for Carbon" >&5 # Check whether --enable-carbon-check or --disable-carbon-check was given. if test "${enable_carbon_check+set}" = set; then enableval="$enable_carbon_check" @@ -3963,11 +4101,11 @@ fi if test "x$ROOTQT" = "x"; then - if test -z "$QTDIR"; then - # Extract the first word of "moc", so it can be a program name with args. + if test -z "$QTDIR"; then + # Extract the first word of "moc", so it can be a program name with args. set dummy moc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3971: checking for $ac_word" >&5 +echo "configure:4109: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MOC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4000,14 +4138,14 @@ else echo "$ac_t""no" 1>&6 fi - if text"x$MOC" = "x"; then - { echo "configure: error: could not find Qt directory" 1>&2; exit 1; } - else - ROOTQT=`echo $MOC | sed 's+/bin/moc++'` - fi - else - ROOTQT="$QTDIR" - fi + if test "x$MOC" = "xno"; then + { echo "configure: error: could not find Qt directory" 1>&2; exit 1; } + else + ROOTQT=`echo $MOC | sed 's+/bin/moc++'` + fi + else + ROOTQT="$QTDIR" + fi fi MOC="$ROOTQT"/bin/moc QT_INCLUDES="$ROOTQT"/include @@ -4037,7 +4175,7 @@ if test "x$QT_INCLUDES" = "x" ; then fi echo $ac_n "checking whether or not to use a KDE Toolbar in KVim""... $ac_c" 1>&6 -echo "configure:4041: checking whether or not to use a KDE Toolbar in KVim" >&5 +echo "configure:4179: checking whether or not to use a KDE Toolbar in KVim" >&5 # Check whether --enable-kde-toolbar or --disable-kde-toolbar was given. if test "${enable_kde_toolbar+set}" = set; then enableval="$enable_kde_toolbar" @@ -4059,8 +4197,10 @@ fi if test -z "$SKIP_KDE"; then + + echo $ac_n "checking --disable-rpath argument""... $ac_c" 1>&6 -echo "configure:4064: checking --disable-rpath argument" >&5 +echo "configure:4204: checking --disable-rpath argument" >&5 # Check whether --enable-rpath or --disable-rpath was given. if test "${enable_rpath+set}" = set; then enableval="$enable_rpath" @@ -4076,7 +4216,7 @@ else fi echo $ac_n "checking --with-kde-prefix argument""... $ac_c" 1>&6 -echo "configure:4080: checking --with-kde-prefix argument" >&5 +echo "configure:4220: checking --with-kde-prefix argument" >&5 # Check whether --with-kde-prefix or --without-kde-prefix was given. if test "${with_kde_prefix+set}" = set; then withval="$with_kde_prefix" @@ -4104,7 +4244,7 @@ fi echo $ac_n "checking --disable-kdetest argument""... $ac_c" 1>&6 -echo "configure:4108: checking --disable-kdetest argument" >&5 +echo "configure:4248: checking --disable-kdetest argument" >&5 # Check whether --enable-kdetest or --disable-kdetest was given. if test "${enable_kdetest+set}" = set; then enableval="$enable_kdetest" @@ -4119,7 +4259,6 @@ else fi if test "x$kde_config_prefix" != "x" ; then - kde_config_args="" KDE_CONFIG=$kde_config_prefix/bin/kde-config fi @@ -4127,7 +4266,7 @@ if test "X$KDE_CONFIG" = "X"; then # Extract the first word of "kde-config", so it can be a program name with args. set dummy kde-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4131: checking for $ac_word" >&5 +echo "configure:4270: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_KDE_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4169,12 +4308,12 @@ if test "X$KDE_CONFIG" != "X" ; then if test "X$KDE_CONFIG" != "X"; then min_kde_version=2.0.0 echo $ac_n "checking for KDE version >= $min_kde_version""... $ac_c" 1>&6 -echo "configure:4173: checking for KDE version >= $min_kde_version" >&5 +echo "configure:4312: checking for KDE version >= $min_kde_version" >&5 no_kde="" if test "$KDE_CONFIG" = "no" ; then no_kde=yes else - KDE_PREFIX=`$KDE_CONFIG $kde_config_args --prefix` + KDE_PREFIX=`$KDE_CONFIG --prefix` if test "x$KDE_LIBS" = "x"; then KDE_LIBS="$KDE_PREFIX/lib" fi @@ -4188,12 +4327,12 @@ echo "configure:4173: checking for KDE version >= $min_kde_version" >&5 sed 's/KDE:\ //' | sed 's/\([0-9]*\).\([0-9]*.*\)/\1/'` kde_minor_version=`$KDE_CONFIG --version | grep KDE | \ sed 's/KDE:\ //' | sed 's/\([0-9]*\).\([0-9]*.*\)/\2/'` - + qt_major_version=`$KDE_CONFIG --version | grep Qt | sed -e \ 's/Qt:\ //' | sed 's/\([0-9]*\).\([0-9]*.*\)/\1/'` qt_minor_version=`$KDE_CONFIG --version | grep Qt | sed -e \ 's/Qt:\ //' | sed 's/\([0-9]*\).\([0-9]*.*\)/\2/'` - + if test "x$enable-kdetest" = "xyes" ; then ac_save_LIBS="$LIBS" LIBS="$LIBS $KDE_LIBS" @@ -4202,7 +4341,7 @@ sed 's/KDE:\ //' | sed 's/\([0-9]*\).\([0-9]*.*\)/\2/'` echo $ac_n "cross compiling KDE ? ? how can i remove that ? :)" else cat > conftest.$ac_ext < @@ -4211,7 +4350,7 @@ main() { return 0; } EOF -if { (eval echo configure:4215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4245,9 +4384,10 @@ fi + if test "x$KDE_PREFIX" != "x"; then echo $ac_n "checking for QT version $qt_major_version.x""... $ac_c" 1>&6 -echo "configure:4251: checking for QT version $qt_major_version.x" >&5 +echo "configure:4391: checking for QT version $qt_major_version.x" >&5 if test "x$ROOTQT" != "x" ; then GUI_INC_LOC="-I$QT_INCLUDES $GUI_INC_LOC" if test $qt_major_version -lt 2; then @@ -4279,6 +4419,117 @@ echo "configure:4251: checking for QT version $qt_major_version.x" >&5 GUI_INC_LOC="`echo $GUI_INC_LOC\ | sed 's%-I/usr/include %%'`" echo "$ac_t""found $qt_major_version.$qt_minor_version in $ROOTQT" 1>&6 + + + qt_incdir=NO + for i in $QT_INCLUDES; + do + for j in qstyle.h; + do + echo "configure: 4430: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + qt_incdir=$i + break 2 + fi + done + done + + if test "x$qt_incdir" = "xNO"; then + { echo "configure: error: Could not find Qt headers in $QT_INCLUDES" 1>&2; exit 1; } + fi + + kde_incdir=NO + for i in $KDE_INCLUDES; + do + for j in kapplication.h; + do + echo "configure: 4448: $i/$j" >&5 + if test -r "$i/$j"; then + echo "taking that" >&5 + kde_incdir=$i + break 2 + fi + done + done + + if test "x$kde_incdir" = "xNO"; then + { echo "configure: error: Could not find KDE headers in $KDE_INCLUDES" 1>&2; exit 1; } + fi + + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + ac_save_LIBS="$LIBS" + LIBS="$GUI_LIB_LOC" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $GUI_INC_LOC" + echo $ac_n "checking whether Qt libraries are usable""... $ac_c" 1>&6 +echo "configure:4474: checking whether Qt libraries are usable" >&5 + cat > conftest.$ac_ext < +int main() { + + int argc; + char** argv; + QApplication app(argc, argv); + +; return 0; } +EOF +if { (eval echo configure:4487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6;{ echo "configure: error: Qt fails to link a simple application" 1>&2; exit 1; } +fi +rm -f conftest* + + echo $ac_n "checking whether KDE libraries are usable""... $ac_c" 1>&6 +echo "configure:4499: checking whether KDE libraries are usable" >&5 + cat > conftest.$ac_ext < +int main() { + + int argc; + char** argv; + KApplication app(argc, argv); + +; return 0; } +EOF +if { (eval echo configure:4512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6;{ echo "configure: error: KDE fails to link a simple application" 1>&2; exit 1; } +fi +rm -f conftest* + + LIBS="$ac_save_LIBS" + CXXFLAGS="$ac_save_CXXFLAGS" + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + + SKIP_GTK=YES SKIP_ATHENA=YES SKIP_MOTIF=YES @@ -4303,7 +4554,7 @@ fi if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then echo $ac_n "checking for Carbon GUI""... $ac_c" 1>&6 -echo "configure:4307: checking for Carbon GUI" >&5 +echo "configure:4558: checking for Carbon GUI" >&5 echo "$ac_t""yes" 1>&6; GUITYPE=CARBONGUI SKIP_GTK=YES; @@ -4328,7 +4579,7 @@ fi if test -z "$SKIP_GTK"; then echo $ac_n "checking --with-gtk-prefix argument""... $ac_c" 1>&6 -echo "configure:4332: checking --with-gtk-prefix argument" >&5 +echo "configure:4583: checking --with-gtk-prefix argument" >&5 # Check whether --with-gtk-prefix or --without-gtk-prefix was given. if test "${with_gtk_prefix+set}" = set; then withval="$with_gtk_prefix" @@ -4339,7 +4590,7 @@ fi echo $ac_n "checking --with-gtk-exec-prefix argument""... $ac_c" 1>&6 -echo "configure:4343: checking --with-gtk-exec-prefix argument" >&5 +echo "configure:4594: checking --with-gtk-exec-prefix argument" >&5 # Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given. if test "${with_gtk_exec_prefix+set}" = set; then withval="$with_gtk_exec_prefix" @@ -4350,7 +4601,7 @@ fi echo $ac_n "checking --disable-gtktest argument""... $ac_c" 1>&6 -echo "configure:4354: checking --disable-gtktest argument" >&5 +echo "configure:4605: checking --disable-gtktest argument" >&5 # Check whether --enable-gtktest or --disable-gtktest was given. if test "${enable_gtktest+set}" = set; then enableval="$enable_gtktest" @@ -4377,7 +4628,7 @@ fi # Extract the first word of "gtk-config", so it can be a program name with args. set dummy gtk-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4381: checking for $ac_word" >&5 +echo "configure:4632: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4414,7 +4665,7 @@ fi # Extract the first word of "gtk12-config", so it can be a program name with args. set dummy gtk12-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4418: checking for $ac_word" >&5 +echo "configure:4669: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GTK12_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4456,7 +4707,7 @@ fi # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4460: checking for $ac_word" >&5 +echo "configure:4711: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4498,7 +4749,7 @@ fi { min_gtk_version=2.2.0 echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 -echo "configure:4502: checking for GTK - version >= $min_gtk_version" >&5 +echo "configure:4753: checking for GTK - version >= $min_gtk_version" >&5 no_gtk="" if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \ && $PKG_CONFIG --exists gtk+-2.0; then @@ -4539,7 +4790,7 @@ echo "configure:4502: checking for GTK - version >= $min_gtk_version" >&5 echo $ac_n "cross compiling; assumed OK... $ac_c" else cat > conftest.$ac_ext < @@ -4571,7 +4822,7 @@ return 1; } EOF -if { (eval echo configure:4575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4629,7 +4880,7 @@ fi { min_gtk_version=1.1.16 echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 -echo "configure:4633: checking for GTK - version >= $min_gtk_version" >&5 +echo "configure:4884: checking for GTK - version >= $min_gtk_version" >&5 no_gtk="" if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \ && $PKG_CONFIG --exists gtk+-2.0; then @@ -4670,7 +4921,7 @@ echo "configure:4633: checking for GTK - version >= $min_gtk_version" >&5 echo $ac_n "cross compiling; assumed OK... $ac_c" else cat > conftest.$ac_ext < @@ -4702,7 +4953,7 @@ return 1; } EOF -if { (eval echo configure:4706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4820,7 +5071,7 @@ fi if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then { echo $ac_n "checking for libgnomeui-2.0""... $ac_c" 1>&6 -echo "configure:4824: checking for libgnomeui-2.0" >&5 +echo "configure:5075: checking for libgnomeui-2.0" >&5 if $PKG_CONFIG --exists libgnomeui-2.0; then echo "$ac_t""yes" 1>&6 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0` @@ -4839,7 +5090,7 @@ echo "configure:4824: checking for libgnomeui-2.0" >&5 # Extract the first word of "gnome-config", so it can be a program name with args. set dummy gnome-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4843: checking for $ac_word" >&5 +echo "configure:5094: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GNOME_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4876,7 +5127,7 @@ fi no_gnome_config="yes" else echo $ac_n "checking if $GNOME_CONFIG works""... $ac_c" 1>&6 -echo "configure:4880: checking if $GNOME_CONFIG works" >&5 +echo "configure:5131: checking if $GNOME_CONFIG works" >&5 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`" @@ -4901,7 +5152,7 @@ echo "configure:4880: checking if $GNOME_CONFIG works" >&5 if test "$no_gnome_config" = "yes"; then echo $ac_n "checking for gnomeConf.sh file in $gnome_prefix""... $ac_c" 1>&6 -echo "configure:4905: checking for gnomeConf.sh file in $gnome_prefix" >&5 +echo "configure:5156: checking for gnomeConf.sh file in $gnome_prefix" >&5 if test -f $gnome_prefix/gnomeConf.sh; then echo "$ac_t""found" 1>&6 echo "loading gnome configuration from" \ @@ -4939,7 +5190,7 @@ if test -z "$SKIP_MOTIF"; then GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`" echo $ac_n "checking for location of Motif GUI includes""... $ac_c" 1>&6 -echo "configure:4943: checking for location of Motif GUI includes" >&5 +echo "configure:5194: checking for location of Motif GUI includes" >&5 gui_includes="`echo $x_includes|sed 's%/^/^/*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC" GUI_INC_LOC= for try in $gui_includes; do @@ -4963,7 +5214,7 @@ fi if test -z "$SKIP_MOTIF"; then echo $ac_n "checking --with-motif-lib argument""... $ac_c" 1>&6 -echo "configure:4967: checking --with-motif-lib argument" >&5 +echo "configure:5218: checking --with-motif-lib argument" >&5 # Check whether --with-motif-lib or --without-motif-lib was given. if test "${with_motif_lib+set}" = set; then withval="$with_motif_lib" @@ -4980,11 +5231,11 @@ fi GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`" echo $ac_n "checking for location of Motif GUI libs""... $ac_c" 1>&6 -echo "configure:4984: checking for location of Motif GUI libs" >&5 +echo "configure:5235: checking for location of Motif GUI libs" >&5 gui_libs="`echo $x_libraries|sed 's%/^/^/*$%%'` `echo "$gui_XXX" | sed s/XXX/lib/g` `echo "$GUI_INC_LOC" | sed s/include/lib/` $GUI_LIB_LOC" GUI_LIB_LOC= for try in $gui_libs; do - for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl; do + for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do if test -f "$libtry"; then GUI_LIB_LOC=$try fi @@ -5023,11 +5274,11 @@ GUI_X_LIBS= if test -z "$SKIP_ATHENA"; then echo $ac_n "checking if Athena header files can be found""... $ac_c" 1>&6 -echo "configure:5027: checking if Athena header files can be found" >&5 +echo "configure:5278: checking if Athena header files can be found" >&5 cflags_save=$CFLAGS CFLAGS="$CFLAGS $X_CFLAGS" cat > conftest.$ac_ext < @@ -5036,7 +5287,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -5055,11 +5306,11 @@ fi if test -z "$SKIP_NEXTAW"; then echo $ac_n "checking if neXtaw header files can be found""... $ac_c" 1>&6 -echo "configure:5059: checking if neXtaw header files can be found" >&5 +echo "configure:5310: checking if neXtaw header files can be found" >&5 cflags_save=$CFLAGS CFLAGS="$CFLAGS $X_CFLAGS" cat > conftest.$ac_ext < @@ -5068,7 +5319,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -5096,7 +5347,7 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then ldflags_save=$LDFLAGS LDFLAGS="$X_LIBS $LDFLAGS" echo $ac_n "checking for XShapeQueryExtension in -lXext""... $ac_c" 1>&6 -echo "configure:5100: checking for XShapeQueryExtension in -lXext" >&5 +echo "configure:5351: checking for XShapeQueryExtension in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeQueryExtension | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5104,7 +5355,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXext -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5136,7 +5387,7 @@ else fi echo $ac_n "checking for wslen in -lw""... $ac_c" 1>&6 -echo "configure:5140: checking for wslen in -lw" >&5 +echo "configure:5391: checking for wslen in -lw" >&5 ac_lib_var=`echo w'_'wslen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5144,7 +5395,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lw $GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5176,7 +5427,7 @@ else fi echo $ac_n "checking for dlsym in -ldl""... $ac_c" 1>&6 -echo "configure:5180: checking for dlsym in -ldl" >&5 +echo "configure:5431: checking for dlsym in -ldl" >&5 ac_lib_var=`echo dl'_'dlsym | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5184,7 +5435,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5216,7 +5467,7 @@ else fi echo $ac_n "checking for XmuCreateStippledPixmap in -lXmu""... $ac_c" 1>&6 -echo "configure:5220: checking for XmuCreateStippledPixmap in -lXmu" >&5 +echo "configure:5471: checking for XmuCreateStippledPixmap in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuCreateStippledPixmap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5224,7 +5475,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXmu $GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5257,7 +5508,7 @@ fi if test -z "$SKIP_MOTIF"; then echo $ac_n "checking for XpEndJob in -lXp""... $ac_c" 1>&6 -echo "configure:5261: checking for XpEndJob in -lXp" >&5 +echo "configure:5512: checking for XpEndJob in -lXp" >&5 ac_lib_var=`echo Xp'_'XpEndJob | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5265,7 +5516,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXp $GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5300,7 +5551,7 @@ fi LDFLAGS=$ldflags_save echo $ac_n "checking for extra X11 defines""... $ac_c" 1>&6 -echo "configure:5304: checking for extra X11 defines" >&5 +echo "configure:5555: checking for extra X11 defines" >&5 NARROW_PROTO= rm -fr conftestdir if mkdir conftestdir; then @@ -5330,17 +5581,17 @@ if test "$enable_xsmp" = "yes"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5334: checking for $ac_hdr" >&5 +echo "configure:5585: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5377,17 +5628,17 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5381: checking for $ac_hdr" >&5 +echo "configure:5632: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5416,9 +5667,9 @@ done if test ! "$enable_xim" = "no"; then echo $ac_n "checking for XIMText in X11/Xlib.h""... $ac_c" 1>&6 -echo "configure:5420: checking for XIMText in X11/Xlib.h" >&5 +echo "configure:5671: checking for XIMText in X11/Xlib.h" >&5 cat > conftest.$ac_ext < EOF @@ -5449,17 +5700,17 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5453: checking for $ac_hdr" >&5 +echo "configure:5704: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5495,17 +5746,17 @@ if test -z "$SKIP_MOTIF"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5499: checking for $ac_hdr" >&5 +echo "configure:5750: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5598,17 +5849,17 @@ fi echo $ac_n "checking quality of toupper""... $ac_c" 1>&6 -echo "configure:5602: checking quality of toupper" >&5 +echo "configure:5853: checking quality of toupper" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); } EOF -if { (eval echo configure:5612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define BROKEN_TOUPPER 1 @@ -5625,16 +5876,16 @@ fi echo $ac_n "checking whether __DATE__ and __TIME__ work""... $ac_c" 1>&6 -echo "configure:5629: checking whether __DATE__ and __TIME__ work" >&5 +echo "configure:5880: checking whether __DATE__ and __TIME__ work" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_DATE_TIME 1 @@ -5650,17 +5901,17 @@ rm -f conftest* ac_safe=`echo "elf.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for elf.h""... $ac_c" 1>&6 -echo "configure:5654: checking for elf.h" >&5 +echo "configure:5905: checking for elf.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5683,7 +5934,7 @@ fi if test "$HAS_ELF" = 1; then echo $ac_n "checking for main in -lelf""... $ac_c" 1>&6 -echo "configure:5687: checking for main in -lelf" >&5 +echo "configure:5938: checking for main in -lelf" >&5 ac_lib_var=`echo elf'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5691,14 +5942,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lelf $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5732,12 +5983,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:5736: checking for $ac_hdr that defines DIR" >&5 +echo "configure:5987: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -5745,7 +5996,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:5749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -5770,7 +6021,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:5774: checking for opendir in -ldir" >&5 +echo "configure:6025: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5778,7 +6029,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5811,7 +6062,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:5815: checking for opendir in -lx" >&5 +echo "configure:6066: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5819,7 +6070,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5854,12 +6105,12 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:5858: checking for ANSI C header files" >&5 +echo "configure:6109: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5867,7 +6118,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5884,7 +6135,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -5902,7 +6153,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -5923,7 +6174,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -5934,7 +6185,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:5938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -5958,12 +6209,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:5962: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:6213: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5979,7 +6230,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:5983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -6002,16 +6253,16 @@ fi if test $ac_cv_header_sys_wait_h = no; then echo $ac_n "checking for sys/wait.h that defines union wait""... $ac_c" 1>&6 -echo "configure:6006: checking for sys/wait.h that defines union wait" >&5 +echo "configure:6257: checking for sys/wait.h that defines union wait" >&5 cat > conftest.$ac_ext < int main() { union wait xx, yy; xx = yy ; return 0; } EOF -if { (eval echo configure:6015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -6042,17 +6293,17 @@ for ac_hdr in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6046: checking for $ac_hdr" >&5 +echo "configure:6297: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6084,17 +6335,17 @@ if test "x$MACOSX" != "xyes"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6088: checking for $ac_hdr" >&5 +echo "configure:6339: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6123,11 +6374,11 @@ done fi echo $ac_n "checking if strings.h can be included after string.h""... $ac_c" 1>&6 -echo "configure:6127: checking if strings.h can be included after string.h" >&5 +echo "configure:6378: checking if strings.h can be included after string.h" >&5 cppflags_save=$CPPFLAGS CPPFLAGS="$CPPFLAGS $X_CFLAGS" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6403: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6166,13 +6417,13 @@ CPPFLAGS=$cppflags_save if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 -echo "configure:6170: checking whether ${CC-cc} needs -traditional" >&5 +echo "configure:6421: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP @@ -6190,7 +6441,7 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA @@ -6212,12 +6463,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6 fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:6216: checking for working const" >&5 +echo "configure:6467: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -6287,12 +6538,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:6291: checking for mode_t" >&5 +echo "configure:6542: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6320,12 +6571,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:6324: checking for off_t" >&5 +echo "configure:6575: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6353,12 +6604,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:6357: checking for pid_t" >&5 +echo "configure:6608: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6386,12 +6637,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:6390: checking for size_t" >&5 +echo "configure:6641: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6419,12 +6670,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:6423: checking for uid_t in sys/types.h" >&5 +echo "configure:6674: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -6453,12 +6704,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:6457: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:6708: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -6467,7 +6718,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:6471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -6488,12 +6739,12 @@ EOF fi echo $ac_n "checking for ino_t""... $ac_c" 1>&6 -echo "configure:6492: checking for ino_t" >&5 +echo "configure:6743: checking for ino_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6521,12 +6772,12 @@ EOF fi echo $ac_n "checking for dev_t""... $ac_c" 1>&6 -echo "configure:6525: checking for dev_t" >&5 +echo "configure:6776: checking for dev_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_dev_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6555,12 +6806,12 @@ fi echo $ac_n "checking for rlim_t""... $ac_c" 1>&6 -echo "configure:6559: checking for rlim_t" >&5 +echo "configure:6810: checking for rlim_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then echo "$ac_t""(cached) $ac_cv_type_rlim_t" 1>&6 else cat > conftest.$ac_ext < @@ -6592,12 +6843,12 @@ EOF fi echo $ac_n "checking for stack_t""... $ac_c" 1>&6 -echo "configure:6596: checking for stack_t" >&5 +echo "configure:6847: checking for stack_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then echo "$ac_t""(cached) $ac_cv_type_stack_t" 1>&6 else cat > conftest.$ac_ext < @@ -6627,9 +6878,9 @@ EOF fi echo $ac_n "checking whether stack_t has an ss_base field""... $ac_c" 1>&6 -echo "configure:6631: checking whether stack_t has an ss_base field" >&5 +echo "configure:6882: checking whether stack_t has an ss_base field" >&5 cat > conftest.$ac_ext < @@ -6644,7 +6895,7 @@ int main() { stack_t sigstk; sigstk.ss_base = 0; ; return 0; } EOF -if { (eval echo configure:6648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SS_BASE 1 @@ -6660,7 +6911,7 @@ rm -f conftest* olibs="$LIBS" echo $ac_n "checking --with-tlib argument""... $ac_c" 1>&6 -echo "configure:6664: checking --with-tlib argument" >&5 +echo "configure:6915: checking --with-tlib argument" >&5 # Check whether --with-tlib or --without-tlib was given. if test "${with_tlib+set}" = set; then withval="$with_tlib" @@ -6678,7 +6929,7 @@ else esac for libname in $tlibs; do echo $ac_n "checking for tgetent in -l${libname}""... $ac_c" 1>&6 -echo "configure:6682: checking for tgetent in -l${libname}" >&5 +echo "configure:6933: checking for tgetent in -l${libname}" >&5 ac_lib_var=`echo ${libname}'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6686,7 +6937,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${libname} $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6729,7 +6980,7 @@ fi res="FAIL" else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then res="OK" else @@ -6759,12 +7010,12 @@ fi fi if test "x$olibs" != "x$LIBS"; then echo $ac_n "checking whether we talk terminfo""... $ac_c" 1>&6 -echo "configure:6763: checking whether we talk terminfo" >&5 +echo "configure:7014: checking whether we talk terminfo" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program." 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""no -- we are in termcap land" 1>&6 else @@ -6794,12 +7045,12 @@ fi if test "x$olibs" != "x$LIBS"; then echo $ac_n "checking what tgetent() returns for an unknown terminal""... $ac_c" 1>&6 -echo "configure:6798: checking what tgetent() returns for an unknown terminal" >&5 +echo "configure:7049: checking what tgetent() returns for an unknown terminal" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program." 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""zero" 1>&6; cat >> confdefs.h <<\EOF #define TGETENT_ZERO_ERR 0 @@ -6826,9 +7077,9 @@ fi fi echo $ac_n "checking whether termcap.h contains ospeed""... $ac_c" 1>&6 -echo "configure:6830: checking whether termcap.h contains ospeed" >&5 +echo "configure:7081: checking whether termcap.h contains ospeed" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_OSPEED 1 @@ -6851,9 +7102,9 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether ospeed can be extern""... $ac_c" 1>&6 -echo "configure:6855: checking whether ospeed can be extern" >&5 +echo "configure:7106: checking whether ospeed can be extern" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define OSPEED_EXTERN 1 @@ -6883,9 +7134,9 @@ fi rm -f conftest* echo $ac_n "checking whether termcap.h contains UP, BC and PC""... $ac_c" 1>&6 -echo "configure:6887: checking whether termcap.h contains UP, BC and PC" >&5 +echo "configure:7138: checking whether termcap.h contains UP, BC and PC" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_UP_BC_PC 1 @@ -6908,9 +7159,9 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking whether UP, BC and PC can be extern""... $ac_c" 1>&6 -echo "configure:6912: checking whether UP, BC and PC can be extern" >&5 +echo "configure:7163: checking whether UP, BC and PC can be extern" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define UP_BC_PC_EXTERN 1 @@ -6940,9 +7191,9 @@ fi rm -f conftest* echo $ac_n "checking whether tputs() uses outfuntype""... $ac_c" 1>&6 -echo "configure:6944: checking whether tputs() uses outfuntype" >&5 +echo "configure:7195: checking whether tputs() uses outfuntype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_OUTFUNTYPE 1 @@ -6968,9 +7219,9 @@ fi rm -f conftest* echo $ac_n "checking whether sys/select.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:6972: checking whether sys/select.h and sys/time.h may both be included" >&5 +echo "configure:7223: checking whether sys/select.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < @@ -6980,7 +7231,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:6984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7235: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -6997,7 +7248,7 @@ rm -f conftest* echo $ac_n "checking for /dev/ptc""... $ac_c" 1>&6 -echo "configure:7001: checking for /dev/ptc" >&5 +echo "configure:7252: checking for /dev/ptc" >&5 if test -r /dev/ptc; then cat >> confdefs.h <<\EOF #define HAVE_DEV_PTC 1 @@ -7009,17 +7260,17 @@ else fi echo $ac_n "checking for SVR4 ptys""... $ac_c" 1>&6 -echo "configure:7013: checking for SVR4 ptys" >&5 +echo "configure:7264: checking for SVR4 ptys" >&5 if test -c /dev/ptmx ; then cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SVR4_PTYS 1 @@ -7037,14 +7288,14 @@ else fi echo $ac_n "checking for ptyranges""... $ac_c" 1>&6 -echo "configure:7041: checking for ptyranges" >&5 +echo "configure:7292: checking for ptyranges" >&5 if test -d /dev/ptym ; then pdir='/dev/ptym' else pdir='/dev' fi cat > conftest.$ac_ext <&6 -echo "configure:7082: checking default tty permissions/group" >&5 +echo "configure:7333: checking default tty permissions/group" >&5 rm -f conftest_grp if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext < @@ -7116,7 +7367,7 @@ main() } EOF -if { (eval echo configure:7120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then if test -f conftest_grp; then @@ -7147,12 +7398,12 @@ rm -f conftest_grp echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:7151: checking return type of signal handlers" >&5 +echo "configure:7402: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -7169,7 +7420,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:7173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -7201,9 +7452,9 @@ EOF fi echo $ac_n "checking for struct sigcontext""... $ac_c" 1>&6 -echo "configure:7205: checking for struct sigcontext" >&5 +echo "configure:7456: checking for struct sigcontext" >&5 cat > conftest.$ac_ext < @@ -7217,7 +7468,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -7233,12 +7484,12 @@ fi rm -f conftest* echo $ac_n "checking getcwd implementation""... $ac_c" 1>&6 -echo "configure:7237: checking getcwd implementation" >&5 +echo "configure:7488: checking getcwd implementation" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""it is usable" 1>&6 else @@ -7275,12 +7526,12 @@ for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \ strnicmp strpbrk strtol tgetent towlower towupper usleep utime utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7279: checking for $ac_func" >&5 +echo "configure:7530: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7329,9 +7580,9 @@ done echo $ac_n "checking for st_blksize""... $ac_c" 1>&6 -echo "configure:7333: checking for st_blksize" >&5 +echo "configure:7584: checking for st_blksize" >&5 cat > conftest.$ac_ext < #include @@ -7343,7 +7594,7 @@ int main() { n = (int)st.st_blksize; ; return 0; } EOF -if { (eval echo configure:7347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_ST_BLKSIZE 1 @@ -7358,18 +7609,18 @@ fi rm -f conftest* echo $ac_n "checking whether stat() ignores a trailing slash""... $ac_c" 1>&6 -echo "configure:7362: checking whether stat() ignores a trailing slash" >&5 +echo "configure:7613: checking whether stat() ignores a trailing slash" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext < #include main() {struct stat st; exit(stat("configure/", &st) != 0); } EOF -if { (eval echo configure:7373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define STAT_IGNORES_SLASH 1 @@ -7386,11 +7637,11 @@ fi echo $ac_n "checking for iconv_open()""... $ac_c" 1>&6 -echo "configure:7390: checking for iconv_open()" >&5 +echo "configure:7641: checking for iconv_open()" >&5 save_LIBS="$LIBS" LIBS="$LIBS -liconv" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes; with -liconv" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_ICONV 1 @@ -7413,7 +7664,7 @@ else rm -rf conftest* LIBS="$save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_ICONV 1 @@ -7442,9 +7693,9 @@ rm -f conftest* echo $ac_n "checking for nl_langinfo(CODESET)""... $ac_c" 1>&6 -echo "configure:7446: checking for nl_langinfo(CODESET)" >&5 +echo "configure:7697: checking for nl_langinfo(CODESET)" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_NL_LANGINFO_CODESET 1 @@ -7470,7 +7721,7 @@ fi rm -f conftest* echo $ac_n "checking --disable-acl argument""... $ac_c" 1>&6 -echo "configure:7474: checking --disable-acl argument" >&5 +echo "configure:7725: checking --disable-acl argument" >&5 # Check whether --enable-acl or --disable-acl was given. if test "${enable_acl+set}" = set; then enableval="$enable_acl" @@ -7482,7 +7733,7 @@ fi if test "$enable_acl" = "yes"; then echo "$ac_t""no" 1>&6 echo $ac_n "checking for acl_get_file in -lposix1e""... $ac_c" 1>&6 -echo "configure:7486: checking for acl_get_file in -lposix1e" >&5 +echo "configure:7737: checking for acl_get_file in -lposix1e" >&5 ac_lib_var=`echo posix1e'_'acl_get_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7490,7 +7741,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix1e $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7520,7 +7771,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for acl_get_file in -lacl""... $ac_c" 1>&6 -echo "configure:7524: checking for acl_get_file in -lacl" >&5 +echo "configure:7775: checking for acl_get_file in -lacl" >&5 ac_lib_var=`echo acl'_'acl_get_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7528,7 +7779,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lacl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7556,7 +7807,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LIBS="$LIBS -lacl" echo $ac_n "checking for fgetxattr in -lattr""... $ac_c" 1>&6 -echo "configure:7560: checking for fgetxattr in -lattr" >&5 +echo "configure:7811: checking for fgetxattr in -lattr" >&5 ac_lib_var=`echo attr'_'fgetxattr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7564,7 +7815,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lattr $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7603,9 +7854,9 @@ fi echo $ac_n "checking for POSIX ACL support""... $ac_c" 1>&6 -echo "configure:7607: checking for POSIX ACL support" >&5 +echo "configure:7858: checking for POSIX ACL support" >&5 cat > conftest.$ac_ext < @@ -7619,7 +7870,7 @@ acl = acl_get_file("foo", ACL_TYPE_ACCESS); acl_free(acl); ; return 0; } EOF -if { (eval echo configure:7623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_POSIX_ACL 1 @@ -7634,9 +7885,9 @@ fi rm -f conftest* echo $ac_n "checking for Solaris ACL support""... $ac_c" 1>&6 -echo "configure:7638: checking for Solaris ACL support" >&5 +echo "configure:7889: checking for Solaris ACL support" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SOLARIS_ACL 1 @@ -7662,9 +7913,9 @@ fi rm -f conftest* echo $ac_n "checking for AIX ACL support""... $ac_c" 1>&6 -echo "configure:7666: checking for AIX ACL support" >&5 +echo "configure:7917: checking for AIX ACL support" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_AIX_ACL 1 @@ -7704,7 +7955,7 @@ else fi echo $ac_n "checking --disable-gpm argument""... $ac_c" 1>&6 -echo "configure:7708: checking --disable-gpm argument" >&5 +echo "configure:7959: checking --disable-gpm argument" >&5 # Check whether --enable-gpm or --disable-gpm was given. if test "${enable_gpm+set}" = set; then enableval="$enable_gpm" @@ -7717,13 +7968,13 @@ fi if test "$enable_gpm" = "yes"; then echo "$ac_t""no" 1>&6 echo $ac_n "checking for gpm""... $ac_c" 1>&6 -echo "configure:7721: checking for gpm" >&5 +echo "configure:7972: checking for gpm" >&5 if eval "test \"`echo '$''{'vi_cv_have_gpm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else olibs="$LIBS" ; LIBS="-lgpm" cat > conftest.$ac_ext < #include @@ -7731,7 +7982,7 @@ int main() { Gpm_GetLibVersion(NULL); ; return 0; } EOF -if { (eval echo configure:7735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* vi_cv_have_gpm=yes else @@ -7758,12 +8009,12 @@ else fi echo $ac_n "checking for vsnprintf()""... $ac_c" 1>&6 -echo "configure:7762: checking for vsnprintf()" >&5 +echo "configure:8013: checking for vsnprintf()" >&5 if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext < @@ -7784,7 +8035,7 @@ else } EOF -if { (eval echo configure:7788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define HAVE_VSNPRINTF 1 @@ -7802,16 +8053,16 @@ fi echo $ac_n "checking for rename""... $ac_c" 1>&6 -echo "configure:7806: checking for rename" >&5 +echo "configure:8057: checking for rename" >&5 cat > conftest.$ac_ext < int main() { rename("this", "that") ; return 0; } EOF -if { (eval echo configure:7815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_RENAME 1 @@ -7826,9 +8077,9 @@ fi rm -f conftest* echo $ac_n "checking for sysctl""... $ac_c" 1>&6 -echo "configure:7830: checking for sysctl" >&5 +echo "configure:8081: checking for sysctl" >&5 cat > conftest.$ac_ext < #include @@ -7843,7 +8094,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SYSCTL 1 @@ -7858,9 +8109,9 @@ fi rm -f conftest* echo $ac_n "checking for sysinfo""... $ac_c" 1>&6 -echo "configure:7862: checking for sysinfo" >&5 +echo "configure:8113: checking for sysinfo" >&5 cat > conftest.$ac_ext < #include @@ -7873,7 +8124,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SYSINFO 1 @@ -7888,9 +8139,9 @@ fi rm -f conftest* echo $ac_n "checking for sysconf""... $ac_c" 1>&6 -echo "configure:7892: checking for sysconf" >&5 +echo "configure:8143: checking for sysconf" >&5 cat > conftest.$ac_ext < int main() { @@ -7899,7 +8150,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_SYSCONF 1 @@ -7915,7 +8166,7 @@ rm -f conftest* echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:7919: checking size of int" >&5 +echo "configure:8170: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7923,7 +8174,7 @@ else { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext < main() @@ -7934,7 +8185,7 @@ else exit(0); } EOF -if { (eval echo configure:7938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -7955,7 +8206,7 @@ EOF echo $ac_n "checking whether memmove/bcopy/memcpy handle overlaps""... $ac_c" 1>&6 -echo "configure:7959: checking whether memmove/bcopy/memcpy handle overlaps" >&5 +echo "configure:8210: checking whether memmove/bcopy/memcpy handle overlaps" >&5 bcopy_test_prog=' main() { char buf[10]; @@ -7975,11 +8226,11 @@ if test "$cross_compiling" = yes; then { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define USEMEMMOVE 1 @@ -7993,11 +8244,11 @@ else { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define USEBCOPY 1 @@ -8011,11 +8262,11 @@ else { echo "configure: error: failed to compile test program" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define USEMEMCPY 1 @@ -8047,19 +8298,19 @@ if test "$enable_multibyte" = "yes"; then CFLAGS="$CFLAGS -I$x_includes" LDFLAGS="$X_LIBS $LDFLAGS -lX11" echo $ac_n "checking whether X_LOCALE needed""... $ac_c" 1>&6 -echo "configure:8051: checking whether X_LOCALE needed" >&5 +echo "configure:8302: checking whether X_LOCALE needed" >&5 cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:8060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -8097,7 +8348,7 @@ rm -f conftest* fi echo $ac_n "checking for _xpg4_setrunelocale in -lxpg4""... $ac_c" 1>&6 -echo "configure:8101: checking for _xpg4_setrunelocale in -lxpg4" >&5 +echo "configure:8352: checking for _xpg4_setrunelocale in -lxpg4" >&5 ac_lib_var=`echo xpg4'_'_xpg4_setrunelocale | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8105,7 +8356,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lxpg4 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8138,7 +8389,7 @@ fi echo $ac_n "checking how to create tags""... $ac_c" 1>&6 -echo "configure:8142: checking how to create tags" >&5 +echo "configure:8393: checking how to create tags" >&5 test -f tags && mv tags tags.save if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then TAGPRG="ctags" @@ -8155,7 +8406,7 @@ test -f tags.save && mv tags.save tags echo "$ac_t""$TAGPRG" 1>&6 echo $ac_n "checking how to run man with a section nr""... $ac_c" 1>&6 -echo "configure:8159: checking how to run man with a section nr" >&5 +echo "configure:8410: checking how to run man with a section nr" >&5 MANDEF="man" (eval man -s 2 read) < /dev/null > /dev/null 2>&5 && MANDEF="man -s" echo "$ac_t""$MANDEF" 1>&6 @@ -8167,7 +8418,7 @@ EOF fi echo $ac_n "checking --disable-nls argument""... $ac_c" 1>&6 -echo "configure:8171: checking --disable-nls argument" >&5 +echo "configure:8422: checking --disable-nls argument" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -8182,7 +8433,7 @@ if test "$enable_nls" = "yes"; then # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:8186: checking for $ac_word" >&5 +echo "configure:8437: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8209,19 +8460,19 @@ else fi echo $ac_n "checking for NLS""... $ac_c" 1>&6 -echo "configure:8213: checking for NLS" >&5 +echo "configure:8464: checking for NLS" >&5 if test -f po/Makefile; then have_gettext="no" if test -n "$MSGFMT"; then cat > conftest.$ac_ext < int main() { gettext("Test"); ; return 0; } EOF -if { (eval echo configure:8225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""gettext() works" 1>&6; have_gettext="yes" else @@ -8231,14 +8482,14 @@ else olibs=$LIBS LIBS="$LIBS -lintl" cat > conftest.$ac_ext < int main() { gettext("Test"); ; return 0; } EOF -if { (eval echo configure:8242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""gettext() works with -lintl" 1>&6; have_gettext="yes" else @@ -8264,12 +8515,12 @@ EOF for ac_func in bind_textdomain_codeset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8268: checking for $ac_func" >&5 +echo "configure:8519: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8317,9 +8568,9 @@ fi done echo $ac_n "checking for _nl_msg_cat_cntr""... $ac_c" 1>&6 -echo "configure:8321: checking for _nl_msg_cat_cntr" >&5 +echo "configure:8572: checking for _nl_msg_cat_cntr" >&5 cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; @@ -8327,7 +8578,7 @@ int main() { ++_nl_msg_cat_cntr; ; return 0; } EOF -if { (eval echo configure:8331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF #define HAVE_NL_MSG_CAT_CNTR 1 @@ -8350,17 +8601,17 @@ fi ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:8354: checking for dlfcn.h" >&5 +echo "configure:8605: checking for dlfcn.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8364: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8615: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8381,17 +8632,17 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "dl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dl.h""... $ac_c" 1>&6 -echo "configure:8385: checking for dl.h" >&5 +echo "configure:8636: checking for dl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8420,9 +8671,9 @@ if test x${DLL} = xdlfcn.h; then EOF echo $ac_n "checking for dlopen()""... $ac_c" 1>&6 -echo "configure:8424: checking for dlopen()" >&5 +echo "configure:8675: checking for dlopen()" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8445,11 +8696,11 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6; echo $ac_n "checking for dlopen() in -ldl""... $ac_c" 1>&6 -echo "configure:8449: checking for dlopen() in -ldl" >&5 +echo "configure:8700: checking for dlopen() in -ldl" >&5 olibs=$LIBS LIBS="$LIBS -ldl" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8477,9 +8728,9 @@ rm -f conftest* fi rm -f conftest* echo $ac_n "checking for dlsym()""... $ac_c" 1>&6 -echo "configure:8481: checking for dlsym()" >&5 +echo "configure:8732: checking for dlsym()" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8502,11 +8753,11 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6; echo $ac_n "checking for dlsym() in -ldl""... $ac_c" 1>&6 -echo "configure:8506: checking for dlsym() in -ldl" >&5 +echo "configure:8757: checking for dlsym() in -ldl" >&5 olibs=$LIBS LIBS="$LIBS -ldl" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8539,9 +8790,9 @@ elif test x${DLL} = xdl.h; then EOF echo $ac_n "checking for shl_load()""... $ac_c" 1>&6 -echo "configure:8543: checking for shl_load()" >&5 +echo "configure:8794: checking for shl_load()" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8564,11 +8815,11 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6; echo $ac_n "checking for shl_load() in -ldld""... $ac_c" 1>&6 -echo "configure:8568: checking for shl_load() in -ldld" >&5 +echo "configure:8819: checking for shl_load() in -ldld" >&5 olibs=$LIBS LIBS="$LIBS -ldld" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF @@ -8600,17 +8851,17 @@ for ac_hdr in setjmp.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8604: checking for $ac_hdr" >&5 +echo "configure:8855: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8647,7 +8898,7 @@ fi if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \ && test "x$GUITYPE" != "xCARBONGUI"; then echo $ac_n "checking whether we need -framework Carbon""... $ac_c" 1>&6 -echo "configure:8651: checking whether we need -framework Carbon" >&5 +echo "configure:8902: checking whether we need -framework Carbon" >&5 if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \ || test "x$features" = "xhuge"; then LIBS="$LIBS -framework Carbon" @@ -8806,6 +9057,12 @@ s%@line_break@%$line_break%g s%@dovimdiff@%$dovimdiff%g s%@dogvimdiff@%$dogvimdiff%g s%@compiledby@%$compiledby%g +s%@vi_cv_path_mzscheme@%$vi_cv_path_mzscheme%g +s%@MZSCHEME_SRC@%$MZSCHEME_SRC%g +s%@MZSCHEME_OBJ@%$MZSCHEME_OBJ%g +s%@MZSCHEME_PRO@%$MZSCHEME_PRO%g +s%@MZSCHEME_LIBS@%$MZSCHEME_LIBS%g +s%@MZSCHEME_CFLAGS@%$MZSCHEME_CFLAGS%g s%@vi_cv_path_perl@%$vi_cv_path_perl%g s%@vi_cv_perllib@%$vi_cv_perllib%g s%@shrpenv@%$shrpenv%g diff --git a/src/buffer.c b/src/buffer.c index 6249005ac..4d07eb63e 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -575,6 +575,9 @@ free_buffer(buf) buf_T *buf; { free_buffer_stuff(buf, TRUE); +#ifdef FEAT_MZSCHEME + mzscheme_buffer_free(buf); +#endif #ifdef FEAT_PERL perl_buf_free(buf); #endif diff --git a/src/config.h.in b/src/config.h.in index 1c888f470..f182f7b67 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -271,6 +271,9 @@ /* Define if you want huge features. */ #undef FEAT_HUGE +/* Define if you want to include the MzScheme interpreter. */ +#undef FEAT_MZSCHEME + /* Define if you want to include the Perl interpreter. */ #undef FEAT_PERL diff --git a/src/config.mk.in b/src/config.mk.in index b5af74b53..ed5f686ff 100644 --- a/src/config.mk.in +++ b/src/config.mk.in @@ -35,6 +35,12 @@ X_PRE_LIBS = @X_PRE_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIB@ +MZSCHEME_LIBS = @MZSCHEME_LIBS@ +MZSCHEME_SRC = @MZSCHEME_SRC@ +MZSCHEME_OBJ = @MZSCHEME_OBJ@ +MZSCHEME_CFLAGS = @MZSCHEME_CFLAGS@ +MZSCHEME_PRO = @MZSCHEME_PRO@ + PERL = @vi_cv_path_perl@ PERLLIB = @vi_cv_perllib@ PERL_LIBS = @PERL_LIBS@ diff --git a/src/configure.in b/src/configure.in index 1050866ca..b6623d5a1 100644 --- a/src/configure.in +++ b/src/configure.in @@ -20,7 +20,7 @@ AC_PROG_AWK dnl required for "make html" in ../doc dnl Don't strip if we don't have it AC_CHECK_PROG(STRIP, strip, strip, :) -dnl Check for extention of executables +dnl Check for extension of executables AC_EXEEXT dnl Set default value for CFLAGS if none is defined or it's empty @@ -292,6 +292,90 @@ else AC_MSG_RESULT(yes) fi +dnl Check for MzScheme feature. +AC_MSG_CHECKING(--enable-mzschemeinterp argument) +AC_ARG_ENABLE(mzschemeinterp, + [ --enable-mzschemeinterp Include MzScheme interpreter.], , + [enable_mzschemeinterp="no"]) +AC_MSG_RESULT($enable_mzschemeinterp) + +if test "$enable_mzschemeinterp" = "yes"; then + dnl -- find the mzscheme executable + AC_SUBST(vi_cv_path_mzscheme) + + AC_MSG_CHECKING(--with-plthome argument) + AC_ARG_WITH(plthome, + [ --with-plthome=PLTHOME Use PLTHOME.], + with_plthome="$withval"; AC_MSG_RESULT($with_plthome), + with_plthome="";AC_MSG_RESULT("no")) + + if test "X$with_plthome" != "X"; then + vi_cv_path_mzscheme_pfx="$with_plthome" + else + AC_MSG_CHECKING(PLTHOME environment var) + if test "X$PLTHOME" != "X"; then + AC_MSG_RESULT("$PLTHOME") + vi_cv_path_mzscheme_pfx="$PLTHOME" + else + AC_MSG_RESULT("not set") + dnl -- try to find MzScheme executable + AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme) + + dnl resolve symbolic link, the executable is often elsewhere and there + dnl are no links for the include files. + if test "X$vi_cv_path_mzscheme" != "X"; then + lsout=`ls -l $vi_cv_path_mzscheme` + if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then + vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'` + fi + fi + + if test "X$vi_cv_path_mzscheme" != "X"; then + dnl -- find where MzScheme thinks it was installed + AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx, + [ vi_cv_path_mzscheme_pfx=` + ${vi_cv_path_mzscheme} -evm \ + "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ + (lambda (base name must-be-dir?) base)) (quote up))))"` ]) + dnl Remove a trailing slash. + vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'` + fi + fi + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include) + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then + AC_MSG_RESULT("yes") + else + AC_MSG_RESULT("no") + vi_cv_path_mzscheme_pfx= + fi + fi + + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a ${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a" + else + MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzgc -lmzscheme" + fi + MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" + MZSCHEME_PRO="if_mzsch.pro" + AC_DEFINE(FEAT_MZSCHEME) + fi + AC_SUBST(MZSCHEME_SRC) + AC_SUBST(MZSCHEME_OBJ) + AC_SUBST(MZSCHEME_PRO) + AC_SUBST(MZSCHEME_LIBS) + AC_SUBST(MZSCHEME_CFLAGS) +fi + + AC_MSG_CHECKING(--enable-perlinterp argument) AC_ARG_ENABLE(perlinterp, [ --enable-perlinterp Include Perl interpreter.], , @@ -1187,18 +1271,18 @@ AC_ARG_WITH(qt-dir, ]) if test "x$ROOTQT" = "x"; then - if test -z "$QTDIR"; then - dnl Find the Qt directory by looking for the "moc" program. - dnl It's better than nothing. - AC_PATH_PROG(MOC, moc, no) - if text"x$MOC" = "x"; then - AC_MSG_ERROR(could not find Qt directory) - else - ROOTQT=`echo $MOC | sed 's+/bin/moc++'` - fi - else - ROOTQT="$QTDIR" - fi + if test -z "$QTDIR"; then + dnl Find the Qt directory by looking for the "moc" program. + dnl It's better than nothing. + AC_PATH_PROG(MOC, moc, no) + if test "x$MOC" = "xno"; then + AC_MSG_ERROR(could not find Qt directory) + else + ROOTQT=`echo $MOC | sed 's+/bin/moc++'` + fi + else + ROOTQT="$QTDIR" + fi fi MOC="$ROOTQT"/bin/moc QT_INCLUDES="$ROOTQT"/include @@ -1238,6 +1322,23 @@ dnl so, first, look up at the kde-config script dnl ------------------ if test -z "$SKIP_KDE"; then +AC_DEFUN([AC_FIND_FILE], +[ + $3=NO + for i in $2; + do + for j in $1; + do + echo "configure: __oline__: $i/$j" >&AC_FD_CC + if test -r "$i/$j"; then + echo "taking that" >&AC_FD_CC + $3=$i + break 2 + fi + done + done +]) + AC_DEFUN(AM_PATH_KDE, [ if test "X$KDE_CONFIG" != "X"; then @@ -1247,7 +1348,7 @@ AC_DEFUN(AM_PATH_KDE, if test "$KDE_CONFIG" = "no" ; then no_kde=yes else - KDE_PREFIX=`$KDE_CONFIG $kde_config_args --prefix` + KDE_PREFIX=`$KDE_CONFIG --prefix` if test "x$KDE_LIBS" = "x"; then KDE_LIBS="$KDE_PREFIX/lib" fi @@ -1261,12 +1362,12 @@ AC_DEFUN(AM_PATH_KDE, sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'` kde_minor_version=`$KDE_CONFIG --version | grep KDE | \ sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'` - + qt_major_version=`$KDE_CONFIG --version | grep Qt | sed -e \ 's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'` qt_minor_version=`$KDE_CONFIG --version | grep Qt | sed -e \ 's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'` - + dnl maybe in a near future we'll get these ones : QT_PREFIX, QT_LIBS, dnl QT_INCLUDES dnl but for now we need configure options to get them ... @@ -1297,6 +1398,7 @@ else KDE_LIBS="" ifelse([$3], , :, [$3]) fi + AC_SUBST(KDE_LIBS) AC_SUBST(KDE_INCLUDES) AC_SUBST(KDE_PREFIX) @@ -1339,7 +1441,6 @@ else fi if test "x$kde_config_prefix" != "x" ; then - kde_config_args="" KDE_CONFIG=$kde_config_prefix/bin/kde-config fi @@ -1391,6 +1492,47 @@ if test "X$KDE_CONFIG" != "X" ; then dnl GUI_LIB_LOC="`echo $GUI_LIB_LOC\ | sed 's% -L/usr/lib%%'`" AC_MSG_RESULT(found $qt_major_version.$qt_minor_version in $ROOTQT) + + dnl now check the results ... + dnl find the Qt's headers ? + AC_FIND_FILE(qstyle.h,$QT_INCLUDES,qt_incdir) + if test "x$qt_incdir" = "xNO"; then + AC_MSG_ERROR(Could not find Qt headers in $QT_INCLUDES) + fi + AC_FIND_FILE(kapplication.h,$KDE_INCLUDES,kde_incdir) + if test "x$kde_incdir" = "xNO"; then + AC_MSG_ERROR(Could not find KDE headers in $KDE_INCLUDES) + fi + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_LIBS="$LIBS" + LIBS="$GUI_LIB_LOC" + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $GUI_INC_LOC" + AC_MSG_CHECKING(whether Qt libraries are usable) + AC_TRY_LINK( + [#include ], + [ + int argc; + char** argv; + QApplication app(argc, argv);] + ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(Qt fails to link a simple application, check your installation and settings)) + + AC_MSG_CHECKING(whether KDE libraries are usable) + AC_TRY_LINK( + [#include ], + [ + int argc; + char** argv; + KApplication app(argc, argv);] + ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(KDE fails to link a simple application, check your installation and settings)) + + LIBS="$ac_save_LIBS" + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE + + SKIP_GTK=YES SKIP_ATHENA=YES SKIP_MOTIF=YES @@ -1816,7 +1958,7 @@ if test -z "$SKIP_MOTIF"; then gui_libs="`echo $x_libraries|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/lib/g` `echo "$GUI_INC_LOC" | sed s/include/lib/` $GUI_LIB_LOC" GUI_LIB_LOC= for try in $gui_libs; do - for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl; do + for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do if test -f "$libtry"; then GUI_LIB_LOC=$try fi diff --git a/src/eval.c b/src/eval.c index 7ef1398d7..faa097229 100644 --- a/src/eval.c +++ b/src/eval.c @@ -4987,6 +4987,9 @@ f_has(argvars, retvar) #ifdef FEAT_MULTI_LANG "multi_lang", #endif +#ifdef FEAT_MZSCHEME + "mzscheme", +#endif #ifdef FEAT_OLE "ole", #endif @@ -9109,6 +9112,8 @@ ex_function(eap) && (!ASCII_ISALPHA(p[2]) || p[2] == 'l')) || (p[0] == 'r' && p[1] == 'u' && p[2] == 'b' && (!ASCII_ISALPHA(p[3]) || p[3] == 'y')) + || (p[0] == 'm' && p[1] == 'z' + && (!ASCII_ISALPHA(p[2]) || p[2] == 's')) )) { /* ":python <<" continues until a dot, like ":append" */ diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 62e489967..4f53f59d6 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -1998,7 +1998,18 @@ ex_file(eap) char_u *fname, *sfname, *xfname; buf_T *buf; - if (*eap->arg != NUL) + /* ":0file" removes the file name. Check for illegal uses ":3file", + * "0file name", etc. */ + if (eap->addr_count > 0 + && (*eap->arg != NUL + || eap->line2 > 0 + || eap->addr_count > 1)) + { + EMSG(_(e_invarg)); + return; + } + + if (*eap->arg != NUL || eap->addr_count == 1) { #ifdef FEAT_AUTOCMD buf = curbuf; diff --git a/src/ex_cmds.h b/src/ex_cmds.h index 8ffeadf01..e275d0247 100644 --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -349,7 +349,7 @@ EX(CMD_execute, "execute", ex_execute, EX(CMD_exit, "exit", ex_exit, RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), EX(CMD_file, "file", ex_file, - BANG|FILE1|TRLBAR), + RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR), EX(CMD_files, "files", buflist_list, BANG|TRLBAR|CMDWIN), EX(CMD_filetype, "filetype", ex_filetype, @@ -512,6 +512,10 @@ EX(CMD_mkview, "mkview", ex_mkrc, BANG|FILE1|TRLBAR), EX(CMD_mode, "mode", ex_mode, WORD1|TRLBAR|CMDWIN), +EX(CMD_mzscheme, "mzscheme", ex_mzscheme, + RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN), +EX(CMD_mzfile, "mzfile", ex_mzfile, + RANGE|FILE1|NEEDARG|CMDWIN), EX(CMD_next, "next", ex_next, RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR), EX(CMD_new, "new", ex_splitview, @@ -736,6 +740,8 @@ EX(CMD_stag, "stag", ex_stag, RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), EX(CMD_startinsert, "startinsert", ex_startinsert, BANG|TRLBAR|CMDWIN), +EX(CMD_startreplace, "startreplace", ex_startinsert, + BANG|TRLBAR|CMDWIN), EX(CMD_stopinsert, "stopinsert", ex_stopinsert, BANG|TRLBAR|CMDWIN), EX(CMD_stjump, "stjump", ex_stag, diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index f9bd48773..ed7e08c00 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -3811,8 +3811,9 @@ struct prt_ps_resource_S * * VIM Prolog * 6.2 1.3 + * 7.0 1.4 */ -#define PRT_PROLOG_VERSION ((char_u *)"1.3") +#define PRT_PROLOG_VERSION ((char_u *)"1.4") /* String versions of PS resource types - indexed by constants above so don't * re-order! @@ -5116,6 +5117,10 @@ mch_print_end(psettings) prt_dsc_noarg("EOF"); + /* Write CTRL-D to close serial communication link if used. + * NOTHING MUST BE WRITTEN AFTER THIS! */ + prt_write_file(IF_EB("\004", "\067")); + if (!prt_file_error && psettings->outfile == NULL && !got_int && !psettings->user_abort) { diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 27f4b9d3a..b2870d061 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -128,7 +128,7 @@ static int getargopt __ARGS((exarg_T *eap)); static int check_more __ARGS((int, int)); static linenr_T get_address __ARGS((char_u **, int skip, int to_other_file)); #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \ - || !defined(FEAT_RUBY) + || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME) static void ex_script_ni __ARGS((exarg_T *eap)); #endif static char_u *invalid_range __ARGS((exarg_T *eap)); @@ -220,6 +220,10 @@ static void ex_popup __ARGS((exarg_T *eap)); #ifndef FEAT_SYN_HL # define ex_syntax ex_ni #endif +#ifndef FEAT_MZSCHEME +# define ex_mzscheme ex_script_ni +# define ex_mzfile ex_ni +#endif #ifndef FEAT_PERL # define ex_perl ex_script_ni # define ex_perldo ex_ni @@ -2389,6 +2393,7 @@ do_one_cmd(cmdlinep, sourcing, case CMD_let: case CMD_lockmarks: case CMD_match: + case CMD_mzscheme: case CMD_perl: case CMD_psearch: case CMD_python: @@ -3807,7 +3812,7 @@ ex_ni(eap) } #if !defined(FEAT_PERL) || !defined(FEAT_PYTHON) || !defined(FEAT_TCL) \ - || !defined(FEAT_RUBY) + || !defined(FEAT_RUBY) || !defined(FEAT_MZSCHEME) /* * Function called for script command which is Not Implemented. NI! * Skips over ":perl <w_curswant = MAXCOL; curwin->w_set_curswant = FALSE; - restart_edit = 'a'; + if (eap->cmdidx == CMD_startinsert) + restart_edit = 'a'; + else + restart_edit = 'R'; } else { - restart_edit = 'i'; + if (eap->cmdidx == CMD_startinsert) + restart_edit = 'i'; + else + restart_edit = 'R'; curwin->w_curswant = 0; /* avoid MAXCOL */ } } diff --git a/src/feature.h b/src/feature.h index f54f0c15c..f2b4fb4a8 100644 --- a/src/feature.h +++ b/src/feature.h @@ -1101,6 +1101,7 @@ /* * These features can only be included by using a configure argument. See the * Makefile for a line to uncomment. + * +mzscheme MzScheme interface: "--enable-mzscheme" * +perl Perl interface: "--enable-perlinterp" * +python Python interface: "--enable-pythoninterp" * +tcl TCL interface: "--enable-tclinterp" diff --git a/src/if_mzsch.c b/src/if_mzsch.c new file mode 100644 index 000000000..377b5f755 --- /dev/null +++ b/src/if_mzsch.c @@ -0,0 +1,2244 @@ +/* vi:set ts=8 sts=4 sw=4: + * + * MzScheme interface by Sergey Khorev + * Original work by Brent Fulgham + * (Based on lots of help from Matthew Flatt) + * + * This consists of six parts: + * 1. MzScheme interpreter main program + * 2. Routines that handle the external interface between MzScheme and + * Vim. + * 3. MzScheme input/output handlers: writes output via [e]msg(). + * 4. Implementation of the Vim Features for MzScheme + * 5. Vim Window-related Manipulation Functions. + * 6. Vim Buffer-related Manipulation Functions + * + * NOTES + * 1. Memory, allocated with scheme_malloc*, need not to be freed explicitly, + * garbage collector will do it self + * 2. Requires at least NORMAL features. I can't imagine why one may want + * to build with SMALL or TINY features but with MzScheme interface. + * 3. I don't use K&R-style functions. Anyway, MzScheme headers are ANSI. + */ + +/* TODO + * way to catch Vim errors (incl. verbose messages) + * libmzscheme.dll dynamic loading + * macros to pass modifiers (e.g. (browse edit)) + * opportunity to use shared mzscheme libraries on Unix + * event on-change-mode + * Scheme-driven coloring + * global exn-handler + * embed Read-Eval-Print-Loop + */ + +#include "vim.h" +#include "if_mzsch.h" + +/* Base data structures */ +#define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type) +#define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type) + +typedef struct +{ + Scheme_Type tag; + Scheme_Env *env; + buf_T *buf; + Scheme_Object *text_objects; +} vim_mz_buffer; + +#define INVALID_BUFFER_VALUE ((buf_T *)(-1)) + +typedef struct +{ + Scheme_Type tag; + struct window *win; +} vim_mz_window; + +#define INVALID_WINDOW_VALUE ((win_T *)(-1)) + +/* + * Prims that form MzScheme Vim interface + */ +typedef struct +{ + Scheme_Closed_Prim *prim; + char *name; + int mina; /* arity information */ + int maxa; +} Vim_Prim; + +typedef struct +{ + char *name; + Scheme_Object *port; +} Port_Info; + +/* info for closed prim */ +/* + * data have different means: + * for do_eval it is char* + * for do_apply is Apply_Onfo* + * for do_load is Port_Info* + */ +typedef struct +{ + void *data; + Scheme_Env *env; +} Cmd_Info; + +/* info for do_apply */ +typedef struct +{ + Scheme_Object *proc; + int argc; + Scheme_Object **argv; +} Apply_Info; + +/* + *======================================================================== + * Vim-Control Commands + *======================================================================== + */ +/* + *======================================================================== + * Utility functions for the vim/mzscheme interface + *======================================================================== + */ +/* Buffer-related commands */ +static Scheme_Object *buffer_new(buf_T *buf); +static Scheme_Object *get_buffer_by_name(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_by_num(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_count(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_line(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_line_list(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_name(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_num(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_size(void *, int, Scheme_Object **); +static Scheme_Object *get_curr_buffer(void *, int, Scheme_Object **); +static Scheme_Object *get_next_buffer(void *, int, Scheme_Object **); +static Scheme_Object *get_prev_buffer(void *, int, Scheme_Object **); +static Scheme_Object *mzscheme_open_buffer(void *, int, Scheme_Object **); +static Scheme_Object *set_buffer_line(void *, int, Scheme_Object **); +static Scheme_Object *set_buffer_line_list(void *, int, Scheme_Object **); +static Scheme_Object *insert_buffer_line_list(void *, int, Scheme_Object **); +static Scheme_Object *get_range_start(void *, int, Scheme_Object **); +static Scheme_Object *get_range_end(void *, int, Scheme_Object **); +static Scheme_Object *get_buffer_namespace(void *, int, Scheme_Object **); +static vim_mz_buffer *get_vim_curr_buffer(void); + +/* Window-related commands */ +static Scheme_Object *window_new(win_T *win); +static Scheme_Object *get_curr_win(void *, int, Scheme_Object **); +static Scheme_Object *get_window_count(void *, int, Scheme_Object **); +static Scheme_Object *get_window_by_num(void *, int, Scheme_Object **); +static Scheme_Object *get_window_num(void *, int, Scheme_Object **); +static Scheme_Object *get_window_buffer(void *, int, Scheme_Object **); +static Scheme_Object *get_window_height(void *, int, Scheme_Object **); +static Scheme_Object *set_window_height(void *, int, Scheme_Object **); +#ifdef FEAT_VERTSPLIT +static Scheme_Object *get_window_width(void *, int, Scheme_Object **); +static Scheme_Object *set_window_width(void *, int, Scheme_Object **); +#endif +static Scheme_Object *get_cursor(void *, int, Scheme_Object **); +static Scheme_Object *set_cursor(void *, int, Scheme_Object **); +static Scheme_Object *get_window_list(void *, int, Scheme_Object **); +static vim_mz_window *get_vim_curr_window(void); + +/* Vim-related commands */ +static Scheme_Object *mzscheme_beep(void *, int, Scheme_Object **); +static Scheme_Object *get_option(void *, int, Scheme_Object **); +static Scheme_Object *set_option(void *, int, Scheme_Object **); +static Scheme_Object *vim_command(void *, int, Scheme_Object **); +static Scheme_Object *vim_eval(void *, int, Scheme_Object **); +static Scheme_Object *vim_bufferp(void *data, int, Scheme_Object **); +static Scheme_Object *vim_windowp(void *data, int, Scheme_Object **); +static Scheme_Object *vim_buffer_validp(void *data, int, Scheme_Object **); +static Scheme_Object *vim_window_validp(void *data, int, Scheme_Object **); + +/* + *======================================================================== + * Internal Function Prototypes + *======================================================================== + */ +static int vim_error_check(void); +static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); +static void startup_mzscheme(void); +static char *string_to_line(Scheme_Object *obj); +static int mzscheme_io_init(void); +static void mzscheme_interface_init(vim_mz_buffer *self); +static void do_output(char *mesg, long len); +static void do_printf(char *format, ...); +static void do_flush(void); +static Scheme_Object *_apply_thunk_catch_exceptions( + Scheme_Object *, Scheme_Object **); +static Scheme_Object *extract_exn_message(Scheme_Object *v); +static Scheme_Object *do_eval(void *, int noargc, Scheme_Object **noargv); +static Scheme_Object *do_load(void *, int noargc, Scheme_Object **noargv); +static Scheme_Object *do_apply(void *, int noargc, Scheme_Object **noargv); +static void register_vim_exn(Scheme_Env *env); +static vim_mz_buffer *get_buffer_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); +static vim_mz_window *get_window_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); +static void add_vim_exn(Scheme_Env *env); +static int line_in_range(linenr_T, buf_T *); +static void check_line_range(linenr_T, buf_T *); +static void mz_fix_cursor(int lo, int hi, int extra); + +static int eval_in_namespace(void *, Scheme_Closed_Prim *, Scheme_Env *, + Scheme_Object **ret); +static void make_modules(Scheme_Env *); + +/* + *======================================================================== + * 1. MzScheme interpreter startup + *======================================================================== + */ + +static Scheme_Type mz_buffer_type; +static Scheme_Type mz_window_type; + +static int initialized = 0; + +/* global environment */ +static Scheme_Env *environment = NULL; +/* output/error handlers */ +static Scheme_Object *curout = NULL; +static Scheme_Object *curerr = NULL; +/* vim:exn exception */ +static Scheme_Object *exn_catching_apply = NULL; +static Scheme_Object *exn_p = NULL; +static Scheme_Object *exn_message = NULL; +static Scheme_Object *vim_exn = NULL; /* Vim Error exception */ + /* values for exn:vim - constructor, predicate, accessors etc */ +static Scheme_Object *vim_exn_names = NULL; +static Scheme_Object *vim_exn_values = NULL; + +static long range_start; +static long range_end; + +/* MzScheme threads scheduling stuff */ +static int mz_threads_allow = 0; +#ifdef FEAT_GUI +static void setup_timer(void); +static void remove_timer(void); +#endif + +#if defined(FEAT_GUI_W32) +static void CALLBACK timer_proc(HWND, UINT, UINT, DWORD); +static UINT timer_id = 0; +#elif defined(FEAT_GUI_GTK) +static gint timer_proc(gpointer); +static guint timer_id = 0; +#elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) +static void timer_proc(XtPointer, XtIntervalId *); +static XtIntervalId timer_id = (XtIntervalId)0; +#elif defined(FEAT_GUI_MAC) +pascal void timer_proc(EventLoopTimerRef, void *); +static EventLoopTimerRef timer_id = NULL; +static EventLoopTimerUPP timerUPP; +#endif + +#ifndef FEAT_GUI_W32 /* Win32 console and Unix */ + void +mzvim_check_threads(void) +{ + /* Last time MzScheme threads were scheduled */ + static time_t mz_last_time = 0; + + if (mz_threads_allow && p_mzq > 0) + { + time_t now = time(NULL); + + if ((now - mz_last_time) * 1000 > p_mzq) + { + mz_last_time = now; + scheme_check_threads(); + } + } +} +#endif + +#ifdef FEAT_GUI +/* timers are presented in GUI only */ +# if defined(FEAT_GUI_W32) + static void CALLBACK +timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) +# elif defined(FEAT_GUI_GTK) +/*ARGSUSED*/ + static gint +timer_proc(gpointer data) +# elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) +/* ARGSUSED */ + static void +timer_proc(XtPointer timed_out, XtIntervalId *interval_id) +# elif defined(FEAT_GUI_MAC) + pascal void +timer_proc(EventLoopTimerRef theTimer, void *userData) +# endif +{ + scheme_check_threads(); +# if defined(FEAT_GUI_GTK) + return TRUE; /* continue receiving notifications */ +# elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + /* renew timeout */ + if (mz_threads_allow && p_mzq > 0) + timer_id = XtAppAddTimeOut(app_context, p_mzq, + timer_proc, NULL); +# endif +} + + static void +setup_timer(void) +{ +# if defined(FEAT_GUI_W32) + timer_id = SetTimer(NULL, 0, p_mzq, timer_proc); +# elif defined(FEAT_GUI_GTK) + timer_id = gtk_timeout_add((guint32)p_mzq, (GtkFunction)timer_proc, NULL); +# elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + timer_id = XtAppAddTimeOut(app_context, p_mzq, timer_proc, NULL); +# elif defined(FEAT_GUI_MAC) + timerUPP = NewEventLoopTimerUPP(timer_proc); + InstallEventLoopTimer(GetMainEventLoop(), p_mzq * kEventDurationMillisecond, + p_mzq * kEventDurationMillisecond, timerUPP, NULL, &timer_id); +# endif +} + + static void +remove_timer(void) +{ +# if defined(FEAT_GUI_W32) + KillTimer(NULL, timer_id); +# elif defined(FEAT_GUI_GTK) + gtk_timeout_remove(timer_id); +# elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + XtRemoveTimeOut(timer_id); +# elif defined(FEAT_GUI_MAC) + RemoveEventLoopTimer(timer_id); + DisposeEventLoopTimerUPP(timerUPP); +# endif + timer_id = 0; +} + + void +mzvim_reset_timer(void) +{ + if (timer_id != 0) + remove_timer(); + if (mz_threads_allow && p_mzq > 0 && gui.in_use) + setup_timer(); +} + +#endif + + static void +notify_multithread(int on) +{ + mz_threads_allow = on; +#ifdef FEAT_GUI + if (on && timer_id == 0 && p_mzq > 0 && gui.in_use) + setup_timer(); + if (!on && timer_id != 0) + remove_timer(); +#endif +} + + int +mzscheme_enabled(int verbose) +{ + return initialized; +} + + void +mzscheme_end(void) +{ +} + + static void +startup_mzscheme(void) +{ + scheme_set_stack_base(NULL, 1); + + MZ_REGISTER_STATIC(environment); + MZ_REGISTER_STATIC(curout); + MZ_REGISTER_STATIC(curerr); + MZ_REGISTER_STATIC(exn_catching_apply); + MZ_REGISTER_STATIC(exn_p); + MZ_REGISTER_STATIC(exn_message); + MZ_REGISTER_STATIC(vim_exn); + MZ_REGISTER_STATIC(vim_exn_names); + MZ_REGISTER_STATIC(vim_exn_values); + + environment = scheme_basic_env(); + + /* redirect output */ + scheme_console_output = do_output; + scheme_console_printf = do_printf; + +#ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, + scheme_make_pair(scheme_make_string(MZSCHEME_COLLECTS), + scheme_null)); +#endif + + /* Create buffer and window types for use in Scheme code */ + mz_buffer_type = scheme_make_type(""); + mz_window_type = scheme_make_type(""); + + register_vim_exn(environment); + make_modules(environment); + + /* + * setup callback to receive notifications + * whether thread scheduling is (or not) required + */ + scheme_notify_multithread = notify_multithread; + initialized = 1; +} + +/* + * This routine is called for each new invocation of MzScheme + * to make sure things are properly initialized. + */ + static int +mzscheme_init(void) +{ + int do_require = FALSE; + + if (!initialized) + { + do_require = TRUE; + startup_mzscheme(); + + if (mzscheme_io_init()) + return -1; + + } + /* recreate ports each call effectivelly clearing these ones */ + curout = scheme_make_string_output_port(); + curerr = scheme_make_string_output_port(); + scheme_set_param(scheme_config, MZCONFIG_OUTPUT_PORT, curout); + scheme_set_param(scheme_config, MZCONFIG_ERROR_PORT, curerr); + + if (do_require) + { + /* auto-instantiate in basic env */ + eval_in_namespace("(require (prefix vimext: vimext))", do_eval, + environment, NULL); + } + + return 0; +} + +/* + * This routine fills the namespace with various important routines that can + * be used within MzScheme. + */ + static void +mzscheme_interface_init(vim_mz_buffer *mzbuff) +{ + Scheme_Object *attach; + + mzbuff->env = (Scheme_Env *)scheme_make_namespace(0, NULL); + + /* + * attach instantiated modules from global namespace + * so they can be easily instantiated in the buffer namespace + */ + attach = scheme_lookup_global( + scheme_intern_symbol("namespace-attach-module"), + environment); + + if (attach != NULL) + { + Scheme_Object *ret; + Scheme_Object *args[2]; + + args[0] = (Scheme_Object *)environment; + args[1] = scheme_intern_symbol("vimext"); + + ret = (Scheme_Object *)mzvim_apply(attach, 2, args); + } + + add_vim_exn(mzbuff->env); +} + +/* + *======================================================================== + * 2. External Interface + *======================================================================== + */ + +/* + * Evaluate command in namespace with exception handling + */ + static int +eval_in_namespace(void *data, Scheme_Closed_Prim *what, Scheme_Env *env, + Scheme_Object **ret) +{ + Scheme_Object *value; + Scheme_Object *exn; + Cmd_Info info; /* closure info */ + + info.data = data; + info.env = env; + + scheme_set_param(scheme_config, MZCONFIG_ENV, + (Scheme_Object *) env); + /* + * ensure all evaluations will be in current buffer namespace, + * the second argument to scheme_eval_string isn't enough! + */ + value = _apply_thunk_catch_exceptions( + scheme_make_closed_prim_w_arity(what, &info, "mzvim", 0, 0), + &exn); + + if (!value) + { + value = extract_exn_message(exn); + /* Got an exn? */ + if (value) + { + scheme_display(value, curerr); /* Send to stderr-vim */ + do_flush(); + } + /* `raise' was called on some arbitrary value */ + return FAIL; + } + + if (ret != NULL) /* if pointer to retval supported give it up */ + *ret = value; + /* Print any result, as long as it's not a void */ + else if (!SCHEME_VOIDP(value)) + scheme_display(value, curout); /* Send to stdout-vim */ + + do_flush(); + return OK; +} + +/* :mzscheme */ + static int +do_mzscheme_command(exarg_T *eap, void *data, Scheme_Closed_Prim *what) +{ + if (mzscheme_init()) + return FAIL; + + range_start = eap->line1; + range_end = eap->line2; + + return eval_in_namespace(data, what, get_vim_curr_buffer()->env, NULL); +} + +/* + * Routine called by VIM when deleting a buffer + */ + void +mzscheme_buffer_free(buf_T *buf) +{ + if (buf->mzscheme_ref) + { + vim_mz_buffer *bp; + bp = buf->mzscheme_ref; + bp->buf = INVALID_BUFFER_VALUE; + buf->mzscheme_ref = NULL; + scheme_gc_ptr_ok(bp); + } +} + +/* + * Routine called by VIM when deleting a Window + */ + void +mzscheme_window_free(win_T *win) +{ + if (win->mzscheme_ref) + { + vim_mz_window *wp; + wp = win->mzscheme_ref; + wp->win = INVALID_WINDOW_VALUE; + win->mzscheme_ref = NULL; + scheme_gc_ptr_ok(wp); + } +} + +/* + * ":mzscheme" (or ":mz") + */ + void +ex_mzscheme(exarg_T *eap) +{ + char_u *script; + + script = script_get(eap, eap->arg); + if (!eap->skip) + { + if (script == NULL) + do_mzscheme_command(eap, eap->arg, do_eval); + else + { + do_mzscheme_command(eap, script, do_eval); + vim_free(script); + } + } +} + +/* eval MzScheme string */ + void * +mzvim_eval_string(char_u *str) +{ + Scheme_Object *ret = NULL; + if (mzscheme_init()) + return FAIL; + + eval_in_namespace(str, do_eval, get_vim_curr_buffer()->env, &ret); + return ret; +} + +/* + * apply MzScheme procedure with arguments, + * handling errors + */ + Scheme_Object * +mzvim_apply(Scheme_Object *proc, int argc, Scheme_Object **argv) +{ + Apply_Info data; + Scheme_Object *ret = NULL; + + if (mzscheme_init()) + return FAIL; + + data.proc = proc; + data.argc = argc; + data.argv = argv; + + eval_in_namespace(&data, do_apply, get_vim_curr_buffer()->env, &ret); + return ret; +} + + static Scheme_Object * +do_load(void *data, int noargc, Scheme_Object **noargv) +{ + Cmd_Info *info = (Cmd_Info *)data; + Scheme_Object *result = scheme_void; + Scheme_Object *expr; + char_u *file = scheme_malloc_fail_ok( + scheme_malloc_atomic, MAXPATHL + 1); + Port_Info *pinfo = (Port_Info *)(info->data); + + /* make Vim expansion */ + expand_env((char_u *)pinfo->name, file, MAXPATHL); + /* scheme_load looks strange working with namespaces and error handling*/ + pinfo->port = scheme_open_input_file(file, "mzfile"); + scheme_count_lines(pinfo->port); /* to get accurate read error location*/ + + /* Like REPL but print only last result */ + while (!SCHEME_EOFP(expr = scheme_read(pinfo->port))) + result = scheme_eval(expr, info->env); + + /* errors will be caught in do_mzscheme_comamnd and ex_mzfile */ + scheme_close_input_port(pinfo->port); + pinfo->port = NULL; + return result; +} + +/* :mzfile */ + void +ex_mzfile(exarg_T *eap) +{ + Port_Info pinfo; + + pinfo.name = (char *)eap->arg; + pinfo.port = NULL; + if (do_mzscheme_command(eap, &pinfo, do_load) != OK + && pinfo.port != NULL) /* looks like port was not closed */ + scheme_close_input_port(pinfo.port); +} + + +/* + *======================================================================== + * Exception handling code -- cribbed form the MzScheme sources and + * Matthew Flatt's "Inside PLT MzScheme" document. + *======================================================================== + */ + static void +init_exn_catching_apply(void) +{ + if (!exn_catching_apply) + { + char *e = + "(lambda (thunk) " + "(with-handlers ([void (lambda (exn) (cons #f exn))]) " + "(cons #t (thunk))))"; + + /* make sure we have a namespace with the standard syntax: */ + Scheme_Env *env = (Scheme_Env *)scheme_make_namespace(0, NULL); + add_vim_exn(env); + + exn_catching_apply = scheme_eval_string(e, env); + exn_p = scheme_lookup_global(scheme_intern_symbol("exn?"), env); + exn_message = scheme_lookup_global( + scheme_intern_symbol("exn-message"), env); + } +} + +/* + * This function applies a thunk, returning the Scheme value if there's + * no exception, otherwise returning NULL and setting *exn to the raised + * value (usually an exn structure). + */ + static Scheme_Object * +_apply_thunk_catch_exceptions(Scheme_Object *f, Scheme_Object **exn) +{ + Scheme_Object *v; + + init_exn_catching_apply(); + + v = _scheme_apply(exn_catching_apply, 1, &f); + /* v is a pair: (cons #t value) or (cons #f exn) */ + + if (SCHEME_TRUEP(SCHEME_CAR(v))) + return SCHEME_CDR(v); + else + { + *exn = SCHEME_CDR(v); + return NULL; + } +} + + static Scheme_Object * +extract_exn_message(Scheme_Object *v) +{ + init_exn_catching_apply(); + + if (SCHEME_TRUEP(_scheme_apply(exn_p, 1, &v))) + return _scheme_apply(exn_message, 1, &v); + else + return NULL; /* Not an exn structure */ +} + + static Scheme_Object * +do_eval(void *s, int noargc, Scheme_Object **noargv) +{ + Cmd_Info *info = (Cmd_Info *)s; + + return scheme_eval_string_all((char *)(info->data), info->env, TRUE); +} + + static Scheme_Object * +do_apply(void *a, int noargc, Scheme_Object **noargv) +{ + Apply_Info *info = (Apply_Info *)(((Cmd_Info *)a)->data); + + return scheme_apply(info->proc, info->argc, info->argv); +} + +/* + *======================================================================== + * 3. MzScheme I/O Handlers + *======================================================================== + */ + static void +do_intrnl_output(char *mesg, long len, int error) +{ + char *p, *prev; + + prev = mesg; + p = strchr(prev, '\n'); + while (p) + { + *p = '\0'; + if (error) + EMSG(prev); + else + MSG(prev); + prev = p + 1; + p = strchr(prev, '\n'); + } + + if (error) + EMSG(prev); + else + MSG(prev); +} + + static void +do_output(char *mesg, long len) +{ + do_intrnl_output(mesg, len, 0); +} + + static void +do_err_output(char *mesg, long len) +{ + do_intrnl_output(mesg, len, 1); +} + + static void +do_printf(char *format, ...) +{ + do_intrnl_output(format, STRLEN(format), 1); +} + + static void +do_flush(void) +{ + char *buff; + long length; + + buff = scheme_get_sized_string_output(curerr, &length); + if (length) + { + do_err_output(buff, length); + return; + } + + buff = scheme_get_sized_string_output(curout, &length); + if (length) + do_output(buff, length); +} + + static int +mzscheme_io_init(void) +{ + /* Nothing needed so far... */ + return 0; +} + +/* + *======================================================================== + * 4. Implementation of the Vim Features for MzScheme + *======================================================================== + */ + +/* (command {command-string}) */ + static Scheme_Object * +vim_command(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + char *cmd = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + /* may be use do_cmdline_cmd? */ + do_cmdline((char_u *)cmd, NULL, NULL, DOCMD_NOWAIT|DOCMD_VERBOSE); + update_screen(VALID); + + raise_if_error(); + return scheme_void; +} + +/* (eval {expr-string}) */ + static Scheme_Object * +vim_eval(void *data, int argc, Scheme_Object **argv) +{ +#ifdef FEAT_EVAL + Vim_Prim *prim = (Vim_Prim *)data; + char *expr; + char *str; + Scheme_Object *result; + + expr = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + str = (char *)eval_to_string((char_u *)expr, NULL); + + if (str == NULL) + raise_vim_exn(_("invalid expression")); + + result = scheme_make_string(str); + + vim_free(str); + + return result; +#else + raise_vim_exn(_("expressions disabled at compile time")); + /* unreachable */ + return scheme_false; +#endif +} + +/* (range-start) */ + static Scheme_Object * +get_range_start(void *data, int argc, Scheme_Object **argv) +{ + return scheme_make_integer(range_start); +} + +/* (range-end) */ + static Scheme_Object * +get_range_end(void *data, int argc, Scheme_Object **argv) +{ + return scheme_make_integer(range_end); +} + +/* (beep) */ + static Scheme_Object * +mzscheme_beep(void *data, int argc, Scheme_Object **argv) +{ + vim_beep(); + return scheme_void; +} + +static Scheme_Object *M_global = NULL; + +/* (get-option {option-name}) [buffer/window] */ + static Scheme_Object * +get_option(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + char_u *name; + long value; + char_u *strval; + int rc; + Scheme_Object *rval; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + + name = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + if (argc > 1) + { + if (M_global == NULL) + { + MZ_REGISTER_STATIC(M_global); + M_global = scheme_intern_symbol("global"); + } + + if (argv[1] == M_global) + opt_flags = OPT_GLOBAL; + else if (SCHEME_VIMBUFFERP(argv[1])) + { + curbuf = get_valid_buffer(argv[1]); + opt_flags = OPT_LOCAL; + } + else if (SCHEME_VIMWINDOWP(argv[1])) + { + win_T *win = get_valid_window(argv[1]); + + curwin = win; + curbuf = win->w_buffer; + opt_flags = OPT_LOCAL; + } + else + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + + rc = get_option_value(name, &value, &strval, opt_flags); + curbuf = save_curb; + curwin = save_curw; + + switch (rc) + { + case 1: + return scheme_make_integer_value(value); + case 0: + rval = scheme_make_string(strval); + vim_free(strval); + return rval; + case -1: + case -2: + raise_vim_exn(_("hidden option")); + case -3: + raise_vim_exn(_("unknown option")); + } + /* unreachable */ + return scheme_void; +} + +/* (set-option {option-changing-string} [buffer/window]) */ + static Scheme_Object * +set_option(void *data, int argc, Scheme_Object **argv) +{ + char_u *cmd; + int opt_flags = 0; + buf_T *save_curb = curbuf; + win_T *save_curw = curwin; + Vim_Prim *prim = (Vim_Prim *)data; + + GUARANTEE_STRING(prim->name, 0); + if (argc > 1) + { + if (M_global == NULL) + { + MZ_REGISTER_STATIC(M_global); + M_global = scheme_intern_symbol("global"); + } + + if (argv[1] == M_global) + opt_flags = OPT_GLOBAL; + else if (SCHEME_VIMBUFFERP(argv[1])) + { + curbuf = get_valid_buffer(argv[1]); + opt_flags = OPT_LOCAL; + } + else if (SCHEME_VIMWINDOWP(argv[1])) + { + win_T *win = get_valid_window(argv[1]); + curwin = win; + curbuf = win->w_buffer; + opt_flags = OPT_LOCAL; + } + else + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + + /* do_set can modify cmd, make copy */ + cmd = vim_strsave((char_u *)SCHEME_STR_VAL(argv[0])); + do_set(cmd, opt_flags); + vim_free(cmd); + update_screen(NOT_VALID); + curbuf = save_curb; + curwin = save_curw; + raise_if_error(); + return scheme_void; +} + +/* + *=========================================================================== + * 5. Vim Window-related Manipulation Functions + *=========================================================================== + */ + +/* (curr-win) */ + static Scheme_Object * +get_curr_win(void *data, int argc, Scheme_Object **argv) +{ + return (Scheme_Object *)get_vim_curr_window(); +} + +/* (win-count) */ + static Scheme_Object * +get_window_count(void *data, int argc, Scheme_Object **argv) +{ + win_T *w; + int n = 0; + + for (w = firstwin; w; w = w->w_next) ++n; + return scheme_make_integer(n); +} + +/* (get-win-list [buffer]) */ + static Scheme_Object * +get_window_list(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *list; + win_T *w; + + buf = get_buffer_arg(prim->name, 0, argc, argv); + list = scheme_null; + + for (w = firstwin; w; w = w->w_next) + if (w->w_buffer == buf->buf) + list = scheme_make_pair(window_new(w), list); + + return list; +} + + static Scheme_Object * +window_new(win_T *win) +{ + vim_mz_window *self; + + /* We need to handle deletion of windows underneath us. + * If we add a "mzscheme_ref" field to the win_T structure, + * then we can get at it in win_free() in vim. + * + * On a win_free() we set the Scheme object's win_T *field + * to an invalid value. We trap all uses of a window + * object, and reject them if the win_T *field is invalid. + */ + if (win->mzscheme_ref) + return win->mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_window)); + + vim_memset(self, 0, sizeof(vim_mz_window)); + scheme_dont_gc_ptr(self); /* because win isn't visible to GC */ + win->mzscheme_ref = self; + self->win = win; + self->tag = mz_window_type; + + return (Scheme_Object *)(self); +} + +/* (get-win-num [window]) */ + static Scheme_Object * +get_window_num(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + win_T *win = get_window_arg(prim->name, 0, argc, argv)->win; + int nr = 1; + win_T *wp; + + for (wp = firstwin; wp != win; wp = wp->w_next) + ++nr; + + return scheme_make_integer(nr); +} + +/* (get-win-by-num {windownum}) */ + static Scheme_Object * +get_window_by_num(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + win_T *win; + int fnum; + + fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + if (fnum < 1) + scheme_signal_error(_("window index is out of range")); + + for (win = firstwin; win; win = win->w_next, --fnum) + if (fnum == 1) /* to be 1-based */ + return window_new(win); + + return scheme_false; +} + +/* (get-win-buffer [window]) */ + static Scheme_Object * +get_window_buffer(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win = get_window_arg(prim->name, 0, argc, argv); + + return buffer_new(win->win->w_buffer); +} + +/* (get-win-height [window]) */ + static Scheme_Object * +get_window_height(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win = get_window_arg(prim->name, 0, argc, argv); + + return scheme_make_integer(win->win->w_height); +} + +/* (set-win-height {height} [window]) */ + static Scheme_Object * +set_window_height(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win; + win_T *savewin; + int height; + + win = get_window_arg(prim->name, 1, argc, argv); + height = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + +#ifdef FEAT_GUI + need_mouse_correct = TRUE; +#endif + + savewin = curwin; + curwin = win->win; + win_setheight(height); + curwin = savewin; + + raise_if_error(); + return scheme_void; +} + +#ifdef FEAT_VERTSPLIT +/* (get-win-width [window]) */ + static Scheme_Object * +get_window_width(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win = get_window_arg(prim->name, 0, argc, argv); + + return scheme_make_integer(W_WIDTH(win->win)); +} + +/* (set-win-width {width} [window]) */ + static Scheme_Object * +set_window_width(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win; + win_T *savewin; + int width = 0; + + win = get_window_arg(prim->name, 1, argc, argv); + width = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + +# ifdef FEAT_GUI + need_mouse_correct = TRUE; +# endif + + savewin = curwin; + curwin = win->win; + win_setwidth(width); + curwin = savewin; + + raise_if_error(); + return scheme_void; +} +#endif + +/* (get-cursor [window]) -> (line . col) */ + static Scheme_Object * +get_cursor(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win; + pos_T pos; + + win = get_window_arg(prim->name, 0, argc, argv); + pos = win->win->w_cursor; + return scheme_make_pair(scheme_make_integer_value((long)pos.lnum), + scheme_make_integer_value((long)pos.col + 1)); +} + +/* (set-cursor (line . col) [window]) */ + static Scheme_Object * +set_cursor(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_window *win; + long lnum = 0; + long col = 0; + + win = get_window_arg(prim->name, 1, argc, argv); + GUARANTEE_PAIR(prim->name, 0); + + if (!SCHEME_INTP(SCHEME_CAR(argv[0])) + || !SCHEME_INTP(SCHEME_CDR(argv[0]))) + scheme_wrong_type(prim->name, "integer pair", 0, argc, argv); + + lnum = SCHEME_INT_VAL(SCHEME_CAR(argv[0])); + col = SCHEME_INT_VAL(SCHEME_CDR(argv[0])) - 1; + + check_line_range(lnum, win->win->w_buffer); + /* don't know how to catch invalid column value */ + + win->win->w_cursor.lnum = lnum; + win->win->w_cursor.col = col; + update_screen(VALID); + + raise_if_error(); + return scheme_void; +} +/* + *=========================================================================== + * 6. Vim Buffer-related Manipulation Functions + * Note that each buffer should have its own private namespace. + *=========================================================================== + */ + +/* (open-buff {filename}) */ + static Scheme_Object * +mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + char *fname; + int num = 0; + Scheme_Object *onum; + + fname = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + /* TODO make open existing file */ + num = buflist_add(fname, BLN_LISTED | BLN_CURBUF); + + if (num == 0) + raise_vim_exn(_("couldn't open buffer")); + + onum = scheme_make_integer(num); + return get_buffer_by_num(data, 1, &onum); +} + +/* (get-buff-by-num {buffernum}) */ + static Scheme_Object * +get_buffer_by_num(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf; + int fnum; + + fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + + for (buf = firstbuf; buf; buf = buf->b_next) + if (buf->b_fnum == fnum) + return buffer_new(buf); + + return scheme_false; +} + +/* (get-buff-by-name {buffername}) */ + static Scheme_Object * +get_buffer_by_name(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf; + char_u *fname; + + fname = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + for (buf = firstbuf; buf; buf = buf->b_next) + if (buf->b_ffname == NULL || buf->b_sfname == NULL) + /* empty string */ + { + if (fname[0] == NUL) + return buffer_new(buf); + } + else if (!fnamecmp(buf->b_ffname, fname) + || !fnamecmp(buf->b_sfname, fname)) + /* either short or long filename matches */ + return buffer_new(buf); + + return scheme_false; +} + +/* (get-next-buff [buffer]) */ + static Scheme_Object * +get_next_buffer(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf = get_buffer_arg(prim->name, 0, argc, argv)->buf; + + if (buf->b_next == NULL) + return scheme_false; + else + return buffer_new(buf->b_next); +} + +/* (get-prev-buff [buffer]) */ + static Scheme_Object * +get_prev_buffer(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + buf_T *buf = get_buffer_arg(prim->name, 0, argc, argv)->buf; + + if (buf->b_prev == NULL) + return scheme_false; + else + return buffer_new(buf->b_prev); +} + +/* (get-buff-num [buffer]) */ + static Scheme_Object * +get_buffer_num(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + + return scheme_make_integer(buf->buf->b_fnum); +} + +/* (buff-count) */ + static Scheme_Object * +get_buffer_count(void *data, int argc, Scheme_Object **argv) +{ + buf_T *b; + int n = 0; + + for (b = firstbuf; b; b = b->b_next) ++n; + return scheme_make_integer(n); +} + +/* (get-buff-name [buffer]) */ + static Scheme_Object * +get_buffer_name(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + + return scheme_make_string(buf->buf->b_ffname); +} + +/* (curr-buff) */ + static Scheme_Object * +get_curr_buffer(void *data, int argc, Scheme_Object **argv) +{ + return (Scheme_Object *)get_vim_curr_buffer(); +} + + static Scheme_Object * +buffer_new(buf_T *buf) +{ + vim_mz_buffer *self; + + /* We need to handle deletion of buffers underneath us. + * If we add a "mzscheme_buf" field to the buf_T structure, + * then we can get at it in buf_freeall() in vim. + */ + if (buf->mzscheme_ref) + return buf->mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_buffer)); + + vim_memset(self, 0, sizeof(vim_mz_buffer)); + scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */ + buf->mzscheme_ref = self; + self->buf = buf; + self->tag = mz_buffer_type; + + mzscheme_interface_init(self); /* Set up namespace */ + + return (Scheme_Object *)(self); +} + +/* + * (get-buff-size [buffer]) + * + * Get the size (number of lines) in the current buffer. + */ + static Scheme_Object * +get_buffer_size(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + + return scheme_make_integer(buf->buf->b_ml.ml_line_count); +} + +/* + * (get-buff-line {linenr} [buffer]) + * + * Get a line from the specified buffer. The line number is + * in Vim format (1-based). The line is returned as a MzScheme + * string object. + */ + static Scheme_Object * +get_buffer_line(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int linenr; + char *line; + + buf = get_buffer_arg(prim->name, 1, argc, argv); + linenr = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE); + + raise_if_error(); + return scheme_make_string(line); +} + + +/* + * (get-buff-line-list {start} {end} [buffer]) + * + * Get a list of lines from the specified buffer. The line numbers + * are in Vim format (1-based). The range is from lo up to, but not + * including, hi. The list is returned as a list of string objects. + */ + static Scheme_Object * +get_buffer_line_list(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int i, hi, lo, n; + Scheme_Object *list; + + buf = get_buffer_arg(prim->name, 2, argc, argv); + list = scheme_null; + hi = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 1)); + lo = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + + /* + * Handle some error conditions + */ + if (lo < 0) + lo = 0; + + if (hi < 0) + hi = 0; + if (hi < lo) + hi = lo; + + n = hi - lo; + + for (i = n; i >= 0; --i) + { + Scheme_Object *str = scheme_make_string( + (char *)ml_get_buf(buf->buf, (linenr_T)(lo+i), FALSE)); + raise_if_error(); + + /* Set the list item */ + list = scheme_make_pair(str, list); + } + + return list; +} + +/* + * (set-buff-line {linenr} {string/#f} [buffer]) + * + * Replace a line in the specified buffer. The line number is + * in Vim format (1-based). The replacement line is given as + * an MzScheme string object. The object is checked for validity + * and correct format. An exception is thrown if the values are not + * the correct format. + * + * It returns a Scheme Object that indicates the length of the + * string changed. + */ + static Scheme_Object * +set_buffer_line(void *data, int argc, Scheme_Object **argv) +{ + /* First of all, we check the the of the supplied MzScheme object. + * There are three cases: + * 1. #f - this is a deletion. + * 2. A string - this is a replacement. + * 3. Anything else - this is an error. + */ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *line; + char *save; + buf_T *savebuf; + int n; + + n = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + if (!SCHEME_STRINGP(argv[1]) && !SCHEME_FALSEP(argv[1])) + scheme_wrong_type(prim->name, "string or #f", 1, argc, argv); + line = argv[1]; + buf = get_buffer_arg(prim->name, 2, argc, argv); + + check_line_range(n, buf->buf); + + if (SCHEME_FALSEP(line)) + { + savebuf = curbuf; + curbuf = buf->buf; + + if (u_savedel((linenr_T)n, 1L) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else if (ml_delete((linenr_T)n, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } + deleted_lines_mark((linenr_T)n, 1L); + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(n, n + 1, -1); + + curbuf = savebuf; + + raise_if_error(); + return scheme_void; + } + + /* Otherwise it's a line */ + save = string_to_line(line); + savebuf = curbuf; + + curbuf = buf->buf; + + if (u_savesub((linenr_T)n) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else if (ml_replace((linenr_T)n, (char_u *)save, TRUE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot replace line")); + } + else + changed_bytes((linenr_T)n, 0); + + curbuf = savebuf; + + raise_if_error(); + return scheme_void; +} + +/* + * (set-buff-line-list {start} {end} {string-list/#f/null} [buffer]) + * + * Replace a range of lines in the specified buffer. The line numbers are in + * Vim format (1-based). The range is from lo up to, but not including, hi. + * The replacement lines are given as a Scheme list of string objects. The + * list is checked for validity and correct format. + * + * Errors are returned as a value of FAIL. The return value is OK on success. + * If OK is returned and len_change is not NULL, *len_change is set to the + * change in the buffer length. + */ + static Scheme_Object * +set_buffer_line_list(void *data, int argc, Scheme_Object **argv) +{ + /* First of all, we check the type of the supplied MzScheme object. + * There are three cases: + * 1. #f - this is a deletion. + * 2. A list - this is a replacement. + * 3. Anything else - this is an error. + */ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *line_list; + Scheme_Object *line; + Scheme_Object *rest; + char **array; + buf_T *savebuf; + int i, old_len, new_len, hi, lo; + long extra; + + lo = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + hi = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 1)); + if (!SCHEME_PAIRP(argv[2]) + && !SCHEME_FALSEP(argv[2]) && !SCHEME_NULLP(argv[2])) + scheme_wrong_type(prim->name, "list or #f", 2, argc, argv); + line_list = argv[2]; + buf = get_buffer_arg(prim->name, 3, argc, argv); + old_len = hi - lo; + if (old_len < 0) /* process inverse values wisely */ + { + i = lo; + lo = hi; + hi = i; + old_len = -old_len; + } + extra = 0; + + check_line_range(lo, buf->buf); /* inclusive */ + check_line_range(hi - 1, buf->buf); /* exclisive */ + + if (SCHEME_FALSEP(line_list) || SCHEME_NULLP(line_list)) + { + savebuf = curbuf; + curbuf = buf->buf; + + if (u_savedel((linenr_T)lo, (long)old_len) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else + { + for (i = 0; i < old_len; i++) + if (ml_delete((linenr_T)lo, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } + deleted_lines_mark((linenr_T)lo, (long)old_len); + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(lo, hi, -old_len); + } + + curbuf = savebuf; + + raise_if_error(); + return scheme_void; + } + + /* List */ + new_len = scheme_proper_list_length(line_list); + if (new_len < 0) /* improper or cyclic list */ + scheme_wrong_type(prim->name, "proper list", + 2, argc, argv); + + /* Using MzScheme allocator, so we don't need to free this and + * can safely keep pointers to GC collected strings + */ + array = (char **)scheme_malloc_fail_ok(scheme_malloc, + (unsigned)(new_len * sizeof(char *))); + + rest = line_list; + for (i = 0; i < new_len; ++i) + { + line = SCHEME_CAR(rest); + rest = SCHEME_CDR(rest); + if (!SCHEME_STRINGP(line)) + scheme_wrong_type(prim->name, "string-list", 2, argc, argv); + array[i] = string_to_line(line); + } + + savebuf = curbuf; + curbuf = buf->buf; + + if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + + /* + * If the size of the range is reducing (ie, new_len < old_len) we + * need to delete some old_len. We do this at the start, by + * repeatedly deleting line "lo". + */ + for (i = 0; i < old_len - new_len; ++i) + { + if (ml_delete((linenr_T)lo, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } + extra--; + } + + /* + * For as long as possible, replace the existing old_len with the + * new old_len. This is a more efficient operation, as it requires + * less memory allocation and freeing. + */ + for (i = 0; i < old_len && i < new_len; i++) + if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], TRUE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot replace line")); + } + + /* + * Now we may need to insert the remaining new_len. We don't need to + * free the string passed back because MzScheme has control of that + * memory. + */ + while (i < new_len) + { + if (ml_append((linenr_T)(lo + i - 1), + (char_u *)array[i], 0, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot insert line")); + } + ++i; + ++extra; + } + + /* + * Adjust marks. Invalidate any which lie in the + * changed range, and move any in the remainder of the buffer. + */ + mark_adjust((linenr_T)lo, (linenr_T)(hi - 1), (long)MAXLNUM, (long)extra); + changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra); + + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(lo, hi, extra); + curbuf = savebuf; + + raise_if_error(); + return scheme_void; +} + +/* + * (insert-buff-line-list {linenr} {string/string-list} [buffer]) + * + * Insert a number of lines into the specified buffer after the specifed line. + * The line number is in Vim format (1-based). The lines to be inserted are + * given as an MzScheme list of string objects or as a single string. The lines + * to be added are checked for validity and correct format. Errors are + * returned as a value of FAIL. The return value is OK on success. + * If OK is returned and len_change is not NULL, *len_change + * is set to the change in the buffer length. + */ + static Scheme_Object * +insert_buffer_line_list(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + Scheme_Object *list; + Scheme_Object *line; + Scheme_Object *rest; + char **array; + char *str; + buf_T *savebuf; + int i, n, size; + + /* + * First of all, we check the type of the supplied MzScheme object. + * It must be a string or a list, or the call is in error. + */ + n = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + list = argv[1]; + + if (!SCHEME_STRINGP(list) && !SCHEME_PAIRP(list)) + scheme_wrong_type(prim->name, "string or list", 1, argc, argv); + buf = get_buffer_arg(prim->name, 2, argc, argv); + + if (n != 0) /* 0 can be used in insert */ + check_line_range(n, buf->buf); + if (SCHEME_STRINGP(list)) + { + str = string_to_line(list); + + savebuf = curbuf; + curbuf = buf->buf; + + if (u_save((linenr_T)n, (linenr_T)(n+1)) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else if (ml_append((linenr_T)n, (char_u *)str, 0, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot insert line")); + } + else + appended_lines_mark((linenr_T)n, 1L); + + curbuf = savebuf; + update_screen(VALID); + + raise_if_error(); + return scheme_void; + } + + /* List */ + size = scheme_proper_list_length(list); + if (size < 0) /* improper or cyclic list */ + scheme_wrong_type(prim->name, "proper list", + 2, argc, argv); + + /* Using MzScheme allocator, so we don't need to free this and + * can safely keep pointers to GC collected strings + */ + array = (char **)scheme_malloc_fail_ok( + scheme_malloc, (unsigned)(size * sizeof(char *))); + + rest = list; + for (i = 0; i < size; ++i) + { + line = SCHEME_CAR(rest); + rest = SCHEME_CDR(rest); + array[i] = string_to_line(line); + } + + savebuf = curbuf; + curbuf = buf->buf; + + if (u_save((linenr_T)n, (linenr_T)(n + 1)) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else + { + for (i = 0; i < size; ++i) + if (ml_append((linenr_T)(n + i), (char_u *)array[i], + 0, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot insert line")); + } + + if (i > 0) + appended_lines_mark((linenr_T)n, (long)i); + } + + curbuf = savebuf; + update_screen(VALID); + + raise_if_error(); + return scheme_void; +} + +/* (get-buff-namespace [buffer]) */ + static Scheme_Object * +get_buffer_namespace(void *data, int argc, Scheme_Object **argv) +{ + Vim_Prim *prim = (Vim_Prim *)data; + + return (Scheme_Object *)get_buffer_arg(prim->name, 0, argc, argv)->env; +} + +/* + * Predicates + */ +/* (buff? obj) */ + static Scheme_Object * +vim_bufferp(void *data, int argc, Scheme_Object **argv) +{ + if (SCHEME_VIMBUFFERP(argv[0])) + return scheme_true; + else + return scheme_false; +} + +/* (win? obj) */ + static Scheme_Object * +vim_windowp(void *data, int argc, Scheme_Object **argv) +{ + if (SCHEME_VIMWINDOWP(argv[0])) + return scheme_true; + else + return scheme_false; +} + +/* (buff-valid? obj) */ + static Scheme_Object * +vim_buffer_validp(void *data, int argc, Scheme_Object **argv) +{ + if (SCHEME_VIMBUFFERP(argv[0]) + && ((vim_mz_buffer *)argv[0])->buf != INVALID_BUFFER_VALUE) + return scheme_true; + else + return scheme_false; +} + +/* (win-valid? obj) */ + static Scheme_Object * +vim_window_validp(void *data, int argc, Scheme_Object **argv) +{ + if (SCHEME_VIMWINDOWP(argv[0]) + && ((vim_mz_window *)argv[0])->win != INVALID_WINDOW_VALUE) + return scheme_true; + else + return scheme_false; +} + +/* + *=========================================================================== + * Utilities + *=========================================================================== + */ + +/* + * Convert an MzScheme string into a Vim line. + * + * The result is in allocated memory. All internal nulls are replaced by + * newline characters. It is an error for the string to contain newline + * characters. + * + */ + static char * +string_to_line(Scheme_Object *obj) +{ + char *str; + long len; + int i; + + str = scheme_display_to_string(obj, &len); + + /* Error checking: String must not contain newlines, as we + * are replacing a single line, and we must replace it with + * a single line. + */ + if (memchr(str, '\n', len)) + scheme_signal_error(_("string cannot contain newlines")); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. + */ + for (i = 0; i < len; ++i) + { + if (str[i] == '\0') + str[i] = '\n'; + } + + str[i] = '\0'; + + return str; +} + +/* + * Check to see whether a Vim error has been reported, or a keyboard + * interrupt (from vim --> got_int) has been detected. + */ + static int +vim_error_check(void) +{ + return (got_int || did_emsg); +} + +/* + * register Scheme exn:vim + */ + static void +register_vim_exn(Scheme_Env *env) +{ + Scheme_Object *exn_name = scheme_intern_symbol("exn:vim"); + + if (vim_exn == NULL) + vim_exn = scheme_make_struct_type(exn_name, + scheme_builtin_value("struct:exn"), NULL, 0, 0, NULL, NULL +#if MZSCHEME_VERSION_MAJOR >= 299 + , NULL +#endif + ); + + if (vim_exn_values == NULL) + { + int nc = 0; + + Scheme_Object **exn_names = scheme_make_struct_names( + exn_name, scheme_null, 0, &nc); + Scheme_Object **exn_values = scheme_make_struct_values( + vim_exn, exn_names, nc, 0); + + vim_exn_names = scheme_make_vector(nc, scheme_false); + vim_exn_values = scheme_make_vector(nc, scheme_false); + /* remember names and values */ + mch_memmove(SCHEME_VEC_ELS(vim_exn_names), exn_names, + nc * sizeof(Scheme_Object *)); + mch_memmove(SCHEME_VEC_ELS(vim_exn_values), exn_values, + nc * sizeof(Scheme_Object *)); + } + + add_vim_exn(env); +} + +/* + * Add stuff of exn:vim to env + */ + static void +add_vim_exn(Scheme_Env *env) +{ + int i; + + for (i = 0; i < SCHEME_VEC_SIZE(vim_exn_values); i++) + scheme_add_global_symbol(SCHEME_VEC_ELS(vim_exn_names)[i], + SCHEME_VEC_ELS(vim_exn_values)[i], env); +} + +/* + * raise exn:vim, may be with additional info string + */ + void +raise_vim_exn(const char *add_info) +{ + Scheme_Object *argv[2]; + char_u *fmt = _("Vim error: ~a"); + + if (add_info != NULL) + { + Scheme_Object *info = scheme_make_string(add_info); + argv[0] = scheme_make_string( + scheme_format(fmt, strlen(fmt), 1, &info, NULL)); + } + else + argv[0] = scheme_make_string(_("Vim error")); + + argv[1] = scheme_current_continuation_marks(); + + scheme_raise(scheme_make_struct_instance(vim_exn, 2, argv)); +} + + void +raise_if_error(void) +{ + if (vim_error_check()) + raise_vim_exn(NULL); +} + +/* get buffer: + * either current + * or passed as argv[argnum] with checks + */ + static vim_mz_buffer * +get_buffer_arg(const char *fname, int argnum, int argc, Scheme_Object **argv) +{ + vim_mz_buffer *b; + + if (argc < argnum + 1) + return get_vim_curr_buffer(); + if (!SCHEME_VIMBUFFERP(argv[argnum])) + scheme_wrong_type(fname, "vim-buffer", argnum, argc, argv); + b = (vim_mz_buffer *)argv[argnum]; + (void)get_valid_buffer(argv[argnum]); + return b; +} + +/* get window: + * either current + * or passed as argv[argnum] with checks + */ + static vim_mz_window * +get_window_arg(const char *fname, int argnum, int argc, Scheme_Object **argv) +{ + vim_mz_window *w; + + if (argc < argnum + 1) + return get_vim_curr_window(); + w = (vim_mz_window *)argv[argnum]; + if (!SCHEME_VIMWINDOWP(argv[argnum])) + scheme_wrong_type(fname, "vim-window", argnum, argc, argv); + (void)get_valid_window(argv[argnum]); + return w; +} + +/* get valid Vim buffer from Scheme_Object* */ +buf_T *get_valid_buffer(void *obj) +{ + buf_T *buf = ((vim_mz_buffer *)obj)->buf; + + if (buf == INVALID_BUFFER_VALUE) + scheme_signal_error(_("buffer is invalid")); + return buf; +} + +/* get valid Vim window from Scheme_Object* */ +win_T *get_valid_window(void *obj) +{ + win_T *win = ((vim_mz_window *)obj)->win; + if (win == INVALID_WINDOW_VALUE) + scheme_signal_error(_("window is invalid")); + return win; +} + +#if 0 + int +mzvim_bufferp(Scheme_Object *obj) +{ + return SCHEME_VIMBUFFERP(obj); +} + + int +mzvim_windowp(Scheme_Object *obj) +{ + return SCHEME_VIMWINDOWP(obj); +} +#endif + + int +mzthreads_allowed(void) +{ + return mz_threads_allow; +} + + static int +line_in_range(linenr_T lnum, buf_T *buf) +{ + return (lnum > 0 && lnum <= buf->b_ml.ml_line_count); +} + + static void +check_line_range(linenr_T lnum, buf_T *buf) +{ + if (!line_in_range(lnum, buf)) + scheme_signal_error(_("linenr out of range")); +} + +/* + * Check if deleting lines made the cursor position invalid + * (or you'll get msg from Vim about invalid linenr). + * Changed the lines from "lo" to "hi" and added "extra" lines (negative if + * deleted). Got from if_python.c + */ + static void +mz_fix_cursor(int lo, int hi, int extra) +{ + if (curwin->w_cursor.lnum >= lo) + { + /* Adjust the cursor position if it's in/after the changed + * lines. */ + if (curwin->w_cursor.lnum >= hi) + { + curwin->w_cursor.lnum += extra; + check_cursor_col(); + } + else if (extra < 0) + { + curwin->w_cursor.lnum = lo; + check_cursor(); + } + changed_cline_bef_curs(); + } + invalidate_botline(); +} + +static Vim_Prim prims[]= +{ + /* + * Buffer-related commands + */ + {get_buffer_line, "get-buff-line", 1, 2}, + {set_buffer_line, "set-buff-line", 2, 3}, + {get_buffer_line_list, "get-buff-line-list", 2, 3}, + {get_buffer_name, "get-buff-name", 0, 1}, + {get_buffer_num, "get-buff-num", 0, 1}, + {get_buffer_size, "get-buff-size", 0, 1}, + {set_buffer_line_list, "set-buff-line-list", 3, 4}, + {insert_buffer_line_list, "insert-buff-line-list", 2, 3}, + {get_curr_buffer, "curr-buff", 0, 0}, + {get_buffer_count, "buff-count", 0, 0}, + {get_next_buffer, "get-next-buff", 0, 1}, + {get_prev_buffer, "get-prev-buff", 0, 1}, + {mzscheme_open_buffer, "open-buff", 1, 1}, + {get_buffer_by_name, "get-buff-by-name", 1, 1}, + {get_buffer_by_num, "get-buff-by-num", 1, 1}, + {get_buffer_namespace, "get-buff-namespace", 0, 1}, + /* + * Window-related commands + */ + {get_curr_win, "curr-win", 0, 0}, + {get_window_count, "win-count", 0, 0}, + {get_window_by_num, "get-win-by-num", 1, 1}, + {get_window_num, "get-win-num", 0, 1}, + {get_window_buffer, "get-win-buffer", 0, 1}, + {get_window_height, "get-win-height", 0, 1}, + {set_window_height, "set-win-height", 1, 2}, +#ifdef FEAT_VERTSPLIT + {get_window_width, "get-win-width", 0, 1}, + {set_window_width, "set-win-width", 1, 2}, +#endif + {get_cursor, "get-cursor", 0, 1}, + {set_cursor, "set-cursor", 1, 2}, + {get_window_list, "get-win-list", 0, 1}, + /* + * Vim-related commands + */ + {vim_command, "command", 1, 1}, + {vim_eval, "eval", 1, 1}, + {get_range_start, "range-start", 0, 0}, + {get_range_end, "range-end", 0, 0}, + {mzscheme_beep, "beep", 0, 0}, + {get_option, "get-option", 1, 2}, + {set_option, "set-option", 1, 2}, + /* + * small utilities + */ + {vim_bufferp, "buff?", 1, 1}, + {vim_windowp, "win?", 1, 1}, + {vim_buffer_validp, "buff-valid?", 1, 1}, + {vim_window_validp, "win-valid?", 1, 1} +}; + +/* return MzScheme wrapper for curbuf */ + static vim_mz_buffer * +get_vim_curr_buffer(void) +{ + if (!curbuf->mzscheme_ref) + return (vim_mz_buffer *)buffer_new(curbuf); + else + return (vim_mz_buffer *)curbuf->mzscheme_ref; +} + +/* return MzScheme wrapper for curwin */ + static vim_mz_window * +get_vim_curr_window(void) +{ + if (!curwin->mzscheme_ref) + return (vim_mz_window *)window_new(curwin); + else + return (vim_mz_window *)curwin->mzscheme_ref; +} + +#if 0 + char * +mzscheme_version(void) +{ + return scheme_version(); +} +#endif + + static void +make_modules(Scheme_Env *env) +{ + int i; + Scheme_Env *mod; + + mod = scheme_primitive_module(scheme_intern_symbol("vimext"), env); + /* all prims made closed so they can access their own names */ + for (i = 0; i < sizeof(prims)/sizeof(prims[0]); i++) + { + Vim_Prim *prim = prims + i; + scheme_add_global(prim->name, + scheme_make_closed_prim_w_arity(prim->prim, prim, prim->name, + prim->mina, prim->maxa), + mod); + } + scheme_add_global("global-namespace", (Scheme_Object *)environment, mod); + scheme_finish_primitive_module(mod); +} diff --git a/src/if_mzsch.h b/src/if_mzsch.h new file mode 100644 index 000000000..88f6a54f9 --- /dev/null +++ b/src/if_mzsch.h @@ -0,0 +1,45 @@ +/* vi:set ts=8 sts=4 sw=4: + * + * MzScheme interface for Vim, wrapper around scheme.h + */ +#ifndef _IF_MZSCH_H_ +#define _IF_MZSCH_H_ +#ifdef __MINGW32__ +/* Hack to engage Cygwin-specific settings */ +# define __CYGWIN32__ +#endif + +#include + +#ifdef __MINGW32__ +# undef __CYGWIN32__ +#endif + +#if MZSCHEME_VERSION_MAJOR >= 299 +/* macros to be compatible with 20x versions */ +# define scheme_config scheme_current_config() +# define scheme_make_string scheme_make_byte_string +# define scheme_make_string_output_port scheme_make_byte_string_output_port +# define scheme_get_sized_string_output scheme_get_sized_byte_string_output +# define scheme_write_string scheme_write_byte_string +# define scheme_make_sized_string scheme_make_sized_byte_string + +# define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj)) +# define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \ + (SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj))) +# define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string") + +# ifdef scheme_format +# undef scheme_format +# endif +# define scheme_format scheme_format_utf8 + +# define GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \ + scheme_char_string_to_byte_string(obj)) +#else +# define GET_BYTE_STRING(obj) (obj) +# define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL +# define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL +#endif + +#endif /* _IF_MZSCH_H_ */ diff --git a/src/main.c b/src/main.c index 5fd83394d..187726ace 100644 --- a/src/main.c +++ b/src/main.c @@ -2277,6 +2277,9 @@ getout(exitval) windgoto((int)Rows - 1, 0); #endif +#ifdef FEAT_MZSCHEME + mzscheme_end(); +#endif #ifdef FEAT_TCL tcl_end(); #endif diff --git a/src/misc1.c b/src/misc1.c index 63301103e..2825c538a 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -7377,11 +7377,13 @@ lisp_match(p) * - it doesn't know about comments starting with a semicolon * - it incorrectly interprets '(' as a character literal * All this messes up get_lisp_indent in some rare cases. + * Update from Sergey Khorev: + * I tried to fix the first two issues. */ int get_lisp_indent() { - pos_T *pos, realpos; + pos_T *pos, realpos, paren; int amount; char_u *that; colnr_T col; @@ -7395,7 +7397,16 @@ get_lisp_indent() realpos = curwin->w_cursor; curwin->w_cursor.col = 0; - if ((pos = findmatch(NULL, '(')) != NULL) + if ((pos = findmatch(NULL, '(')) == NULL) + pos = findmatch(NULL, '['); + else + { + paren = *pos; + pos = findmatch(NULL, '['); + if (pos == NULL || ltp(pos, &paren)) + pos = &paren; + } + if (pos != NULL) { /* Extra trick: Take the indent of the first previous non-white * line that is at the same () level. */ @@ -7426,9 +7437,9 @@ get_lisp_indent() while (*that && (*that != '"' || *(that - 1) == '\\')) ++that; } - if (*that == '(') + if (*that == '(' || *that == '[') ++parencount; - else if (*that == ')') + else if (*that == ')' || *that == ']') --parencount; } if (parencount == 0) @@ -7465,7 +7476,8 @@ get_lisp_indent() * (...)) of (...)) */ - if (!vi_lisp && *that == '(' && lisp_match(that + 1)) + if (!vi_lisp && (*that == '(' || *that == '[') + && lisp_match(that + 1)) amount += 2; else { @@ -7483,7 +7495,7 @@ get_lisp_indent() { /* test *that != '(' to accomodate first let/do * argument if it is more than one line */ - if (!vi_lisp && *that != '(') + if (!vi_lisp && *that != '(' && *that != '[') firsttry++; parencount = 0; @@ -7499,16 +7511,18 @@ get_lisp_indent() && (!vim_iswhite(*that) || quotecount || parencount) - && (!(*that == '(' + && (!((*that == '(' || *that == '[') && !quotecount && !parencount && vi_lisp))) { if (*that == '"') quotecount = !quotecount; - if (*that == '(' && !quotecount) + if ((*that == '(' || *that == '[') + && !quotecount) ++parencount; - if (*that == ')' && !quotecount) + if ((*that == ')' || *that == ']') + && !quotecount) --parencount; if (*that == '\\' && *(that+1) != NUL) amount += lbr_chartabsize_adv(&that, @@ -7530,7 +7544,7 @@ get_lisp_indent() } } else - amount = 0; /* no matching '(' found, use zero indent */ + amount = 0; /* no matching '(' or '[' found, use zero indent */ curwin->w_cursor = realpos; diff --git a/src/option.c b/src/option.c index 7b8953d32..01609c29d 100644 --- a/src/option.c +++ b/src/option.c @@ -1538,6 +1538,13 @@ static struct vimoption {"mousetime", "mouset", P_NUM|P_VI_DEF, (char_u *)&p_mouset, PV_NONE, {(char_u *)500L, (char_u *)0L}}, + {"mzquantum", "mzq", P_NUM, +#ifdef FEAT_MZSCHEME + (char_u *)&p_mzq, PV_NONE, +#else + (char_u *)NULL, PV_NONE, +#endif + {(char_u *)100L, (char_u *)100L}}, {"novice", NULL, P_BOOL|P_VI_DEF, (char_u *)NULL, PV_NONE, {(char_u *)FALSE, (char_u *)0L}}, @@ -6807,6 +6814,10 @@ set_num_option(opt_idx, varp, value, errbuf, opt_flags) if (p_uc && !old_value) ml_open_files(); } +#if defined(FEAT_MZSCHEME) && defined(FEAT_GUI) + else if (pp == &p_mzq) + mzvim_reset_timer(); +#endif /* sync undo before 'undolevels' changes */ else if (pp == &p_ul) @@ -7081,7 +7092,7 @@ findoption(arg) return opt_idx; } -#if defined(FEAT_EVAL) || defined(FEAT_TCL) +#if defined(FEAT_EVAL) || defined(FEAT_TCL) || defined(FEAT_MZSCHEME) /* * Get the value for an option. * diff --git a/src/option.h b/src/option.h index 7e04190d6..0fa83a5eb 100644 --- a/src/option.h +++ b/src/option.h @@ -572,6 +572,9 @@ EXTERN int p_mh; /* 'mousehide' */ EXTERN char_u *p_mousem; /* 'mousemodel' */ EXTERN long p_mouset; /* 'mousetime' */ EXTERN int p_more; /* 'more' */ +#ifdef FEAT_MZSCHEME +EXTERN long p_mzq; /* 'mzquantum */ +#endif EXTERN char_u *p_para; /* 'paragraphs' */ EXTERN int p_paste; /* 'paste' */ EXTERN char_u *p_pt; /* 'pastetoggle' */ diff --git a/src/os_unix.c b/src/os_unix.c index 7b9d328f0..08276456b 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -31,6 +31,10 @@ #include "vim.h" +#ifdef FEAT_MZSCHEME +# include "if_mzsch.h" +#endif + #ifdef HAVE_FCNTL_H # include #endif @@ -260,7 +264,8 @@ static struct signalinfo #ifdef SIGVTALRM {SIGVTALRM, "VTALRM", TRUE}, #endif -#ifdef SIGPROF +#if defined(SIGPROF) && !defined(FEAT_MZSCHEME) + /* MzScheme uses SIGPROF for its own needs */ {SIGPROF, "PROF", TRUE}, #endif #ifdef SIGXCPU @@ -520,6 +525,9 @@ mch_delay(msec, ignoreinput) int ignoreinput; { int old_tmode; +#ifdef FEAT_MZSCHEME + long total = msec; /* remember original value */ +#endif if (ignoreinput) { @@ -534,6 +542,16 @@ mch_delay(msec, ignoreinput) * Prefer nanosleep(), some versions of usleep() can only sleep up to * one second. */ +#ifdef FEAT_MZSCHEME + do + { + /* if total is large enough, wait by portions in p_mzq */ + if (total > p_mzq) + msec = p_mzq; + else + msec = total; + total -= msec; +#endif #ifdef HAVE_NANOSLEEP { struct timespec ts; @@ -572,6 +590,10 @@ mch_delay(msec, ignoreinput) # endif /* HAVE_SELECT */ # endif /* HAVE_NANOSLEEP */ #endif /* HAVE_USLEEP */ +#ifdef FEAT_MZSCHEME + } + while (total > 0); +#endif settmode(old_tmode); } @@ -4066,7 +4088,7 @@ RealWaitForChar(fd, msec, check_for_gpm) int *check_for_gpm; { int ret; -#if defined(FEAT_XCLIPBOARD) || defined(USE_XSMP) +#if defined(FEAT_XCLIPBOARD) || defined(USE_XSMP) || defined(FEAT_MZSCHEME) static int busy = FALSE; /* May retry getting characters after an event was handled. */ @@ -4081,12 +4103,18 @@ RealWaitForChar(fd, msec, check_for_gpm) if (msec > 0 && ( # ifdef FEAT_XCLIPBOARD xterm_Shell != (Widget)0 -# ifdef USE_XSMP +# if defined(USE_XSMP) || defined(FEAT_MZSCHEME) || # endif # endif # ifdef USE_XSMP xsmp_icefd != -1 +# ifdef FEAT_MZSCHEME + || +# endif +# endif +# ifdef FEAT_MZSCHEME + (mzthreads_allowed() && p_mzq > 0) # endif )) gettimeofday(&start_tv, NULL); @@ -4104,6 +4132,9 @@ RealWaitForChar(fd, msec, check_for_gpm) { #ifdef MAY_LOOP int finished = TRUE; /* default is to 'loop' just once */ +# ifdef FEAT_MZSCHEME + int mzquantum_used = FALSE; +# endif #endif #ifndef HAVE_SELECT struct pollfd fds[5]; @@ -4117,7 +4148,16 @@ RealWaitForChar(fd, msec, check_for_gpm) # ifdef USE_XSMP int xsmp_idx = -1; # endif + int towait = (int)msec; +# ifdef FEAT_MZSCHEME + mzvim_check_threads(); + if (mzthreads_allowed() && p_mzq > 0 && (msec < 0 || msec > p_mzq)) + { + towait = (int)p_mzq; /* don't wait longer than 'mzquantum' */ + mzquantum_used = TRUE; + } +# endif fds[0].fd = fd; fds[0].events = POLLIN; nfd = 1; @@ -4159,7 +4199,12 @@ RealWaitForChar(fd, msec, check_for_gpm) } # endif - ret = poll(fds, nfd, (int)msec); + ret = poll(fds, nfd, towait); +# ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) + /* MzThreads scheduling is required and timeout occured */ + finished = FALSE; +# endif # ifdef FEAT_SNIFF if (ret < 0) @@ -4203,8 +4248,7 @@ RealWaitForChar(fd, msec, check_for_gpm) xsmp_close(); } if (--ret == 0) - /* Try again */ - finished = FALSE; + finished = FALSE; /* Try again */ } # endif @@ -4212,9 +4256,19 @@ RealWaitForChar(fd, msec, check_for_gpm) #else /* HAVE_SELECT */ struct timeval tv; + struct timeval *tvp; fd_set rfds, efds; int maxfd; + long towait = msec; +# ifdef FEAT_MZSCHEME + mzvim_check_threads(); + if (mzthreads_allowed() && p_mzq > 0 && (msec < 0 || msec > p_mzq)) + { + towait = p_mzq; /* don't wait longer than 'mzquantum' */ + mzquantum_used = TRUE; + } +# endif # ifdef __EMX__ /* don't check for incoming chars if not in raw mode, because select() * always returns TRUE then (in some version of emx.dll) */ @@ -4222,11 +4276,14 @@ RealWaitForChar(fd, msec, check_for_gpm) return 0; # endif - if (msec >= 0) + if (towait >= 0) { - tv.tv_sec = msec / 1000; - tv.tv_usec = (msec % 1000) * (1000000/1000); + tv.tv_sec = towait / 1000; + tv.tv_usec = (towait % 1000) * (1000000/1000); + tvp = &tv; } + else + tvp = NULL; /* * Select on ready for reading and exceptional condition (end of file). @@ -4281,7 +4338,12 @@ RealWaitForChar(fd, msec, check_for_gpm) * required. Should not be used */ ret = 0; # else - ret = select(maxfd + 1, &rfds, NULL, &efds, (msec >= 0) ? &tv : NULL); + ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); +# endif +# ifdef FEAT_MZSCHEME + if (ret == 0 && mzquantum_used) + /* loop if MzThreads must be scheduled and timeout occured */ + finished = FALSE; # endif # ifdef FEAT_SNIFF diff --git a/src/os_win32.c b/src/os_win32.c index da6fd8dac..1c6868985 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -23,6 +23,10 @@ #include #include "vim.h" +#ifdef FEAT_MZSCHEME +# include "if_mzsch.h" +#endif + #ifdef HAVE_FCNTL_H # include #endif @@ -1097,6 +1101,9 @@ WaitForChar(long msec) */ for (;;) { +#ifdef FEAT_MZSCHEME + mzvim_check_threads(); +#endif #ifdef FEAT_CLIENTSERVER serverProcessPendingMessages(); #endif @@ -1119,14 +1126,20 @@ WaitForChar(long msec) } if (msec != 0) { + DWORD dwWaitTime = dwEndTime - dwNow; + +#ifdef FEAT_MZSCHEME + if (mzthreads_allowed() && p_mzq > 0 + && (msec < 0 || (long)dwWaitTime > p_mzq)) + dwWaitTime = p_mzq; /* don't wait longer than 'mzquantum' */ +#endif #ifdef FEAT_CLIENTSERVER /* Wait for either an event on the console input or a message in * the client-server window. */ if (MsgWaitForMultipleObjects(1, &g_hConIn, FALSE, - dwEndTime - dwNow, QS_SENDMESSAGE) != WAIT_OBJECT_0) + dwWaitTime, QS_SENDMESSAGE) != WAIT_OBJECT_0) #else - if (WaitForSingleObject(g_hConIn, dwEndTime - dwNow) - != WAIT_OBJECT_0) + if (WaitForSingleObject(g_hConIn, dwWaitTime) != WAIT_OBJECT_0) #endif continue; } @@ -4106,9 +4119,26 @@ mch_delay( { #ifdef FEAT_GUI_W32 Sleep((int)msec); /* never wait for input */ -#else +#else /* Console */ if (ignoreinput) - Sleep((int)msec); +# ifdef FEAT_MZSCHEME + if (mzthreads_allowed() && p_mzq > 0 && msec > p_mzq) + { + int towait = p_mzq; + + /* if msec is large enough, wait by portions in p_mzq */ + while (msec > 0) + { + mzvim_check_threads(); + if (msec < towait) + towait = msec; + Sleep(towait); + msec -= towait; + } + } + else +# endif + Sleep((int)msec); else WaitForChar(msec); #endif diff --git a/src/proto.h b/src/proto.h index 2471bb67f..4c52d4bb8 100644 --- a/src/proto.h +++ b/src/proto.h @@ -146,6 +146,10 @@ void qsort __ARGS((void *base, size_t elm_count, size_t elm_size, int (*cmp)(con # include "version.pro" # include "window.pro" +# ifdef FEAT_MZSCHEME +# include "if_mzsch.pro" +# endif + # ifdef FEAT_PYTHON # include "if_python.pro" # endif diff --git a/src/proto/if_mzsch.pro b/src/proto/if_mzsch.pro new file mode 100644 index 000000000..4ef1f5176 --- /dev/null +++ b/src/proto/if_mzsch.pro @@ -0,0 +1,19 @@ +/* if_mzsch.c */ +int mzscheme_enabled __ARGS((int verbose)); +void mzscheme_end __ARGS((void)); +void ex_mzscheme __ARGS((exarg_T *eap)); +void ex_mzfile __ARGS((exarg_T *eap)); +void mzscheme_buffer_free __ARGS((buf_T *buf)); +void mzscheme_window_free __ARGS((win_T *win)); +char *mzscheme_version __ARGS((void)); +void raise_vim_exn(const char *add_info); +void raise_if_error __ARGS((void)); +buf_T *get_valid_buffer __ARGS((void *)); +win_T *get_valid_window __ARGS((void *)); +void mzvim_check_threads __ARGS((void)); +void mzvim_reset_timer __ARGS((void)); +void *mzvim_eval_string __ARGS((char_u *str)); +struct Scheme_Object *mzvim_apply __ARGS((struct Scheme_Object *, int argc, + struct Scheme_Object **)); +int mzthreads_allowed (void); +/* vim: set ft=c : */ diff --git a/src/search.c b/src/search.c index ddf2feb69..227b25468 100644 --- a/src/search.c +++ b/src/search.c @@ -1558,6 +1558,10 @@ findmatchlimit(oap, initc, flags, maxtravel) int match_escaped = 0; /* search for escaped match */ int dir; /* Direction to search */ int comment_col = MAXCOL; /* start of / / comment */ +#ifdef FEAT_LISP + int lispcomm = FALSE; /* inside of Lisp-style comment */ + int lisp = curbuf->b_p_lisp; /* engage Lisp-specific hacks ;) */ +#endif pos = curwin->w_cursor; linep = ml_get(pos.lnum); @@ -1822,8 +1826,16 @@ findmatchlimit(oap, initc, flags, maxtravel) do_quotes = -1; start_in_quotes = MAYBE; /* backward search: Check if this line contains a single-line comment */ - if (backwards && comment_dir) + if ((backwards && comment_dir) +#ifdef FEAT_LISP + || lisp +#endif + ) comment_col = check_linecomment(linep); +#ifdef FEAT_LISP + if (lisp && comment_col != MAXCOL && pos.col > (colnr_T)comment_col) + lispcomm = TRUE; /* find match inside this comment */ +#endif while (!got_int) { /* @@ -1832,6 +1844,11 @@ findmatchlimit(oap, initc, flags, maxtravel) */ if (backwards) { +#ifdef FEAT_LISP + /* char to match is inside of comment, don't search outside */ + if (lispcomm && pos.col < (colnr_T)comment_col) + break; +#endif if (pos.col == 0) /* at start of line, go to prev. one */ { if (pos.lnum == 1) /* start of file */ @@ -1847,8 +1864,17 @@ findmatchlimit(oap, initc, flags, maxtravel) line_breakcheck(); /* Check if this line contains a single-line comment */ - if (comment_dir) + if (comment_dir +#ifdef FEAT_LISP + || lisp +#endif + ) comment_col = check_linecomment(linep); +#ifdef FEAT_LISP + /* skip comment */ + if (lisp && comment_col != MAXCOL) + pos.col = comment_col; +#endif } else { @@ -1861,9 +1887,22 @@ findmatchlimit(oap, initc, flags, maxtravel) } else /* forward search */ { - if (linep[pos.col] == NUL) /* at end of line, go to next one */ + if (linep[pos.col] == NUL + /* at end of line, go to next one */ +#ifdef FEAT_LISP + /* don't search for match in comment */ + || (lisp && comment_col != MAXCOL + && pos.col == (colnr_T)comment_col) +#endif + ) { - if (pos.lnum == curbuf->b_ml.ml_line_count) /* end of file */ + if (pos.lnum == curbuf->b_ml.ml_line_count /* end of file */ +#ifdef FEAT_LISP + /* line is exhausted and comment with it, + * don't search for match in code */ + || lispcomm +#endif + ) break; ++pos.lnum; @@ -1874,6 +1913,10 @@ findmatchlimit(oap, initc, flags, maxtravel) pos.col = 0; do_quotes = -1; line_breakcheck(); +#ifdef FEAT_LISP + if (lisp) /* find comment pos in new line */ + comment_col = check_linecomment(linep); +#endif } else { @@ -2094,11 +2137,15 @@ findmatchlimit(oap, initc, flags, maxtravel) default: #ifdef FEAT_LISP - /* For Lisp skip over backslashed (), {} and []. */ + /* + * For Lisp skip over backslashed (), {} and []. + * (actually, we skip #\( et al) + */ if (curbuf->b_p_lisp && vim_strchr((char_u *)"(){}[]", c) != NULL - && pos.col > 0 - && check_prevcol(linep, pos.col, '\\', NULL)) + && pos.col > 1 + && check_prevcol(linep, pos.col, '\\', NULL) + && check_prevcol(linep, pos.col - 1, '#', NULL)) break; #endif @@ -2151,6 +2198,40 @@ check_linecomment(line) char_u *p; p = line; +#ifdef FEAT_LISP + /* skip Lispish one-line comments */ + if (curbuf->b_p_lisp) + { + if (vim_strchr(p, ';') != NULL) /* there may be comments */ + { + int instr = FALSE; /* inside of string */ + + p = line; /* scan from start */ + while ((p = vim_strpbrk(p, "\";")) != NULL) + { + if (*p == '"') + { + if (instr) + { + if (*(p - 1) != '\\') /* skip escaped quote */ + instr = FALSE; + } + else if (p == line || ((p - line) >= 2 + /* skip #\" form */ + && *(p - 1) != '\\' && *(p - 2) != '#')) + instr = TRUE; + } + else if (!instr && ((p - line) < 2 + || (*(p - 1) != '\\' && *(p - 2) != '#'))) + break; /* found! */ + ++p; + } + } + else + p = NULL; + } + else +#endif while ((p = vim_strchr(p, '/')) != NULL) { if (p[1] == '/') diff --git a/src/structs.h b/src/structs.h index 8e4f49ab9..4f3b11f13 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1209,12 +1209,16 @@ struct file_buffer int b_shortname; /* this file has an 8.3 file name */ #endif +#ifdef FEAT_MZSCHEME + void *mzscheme_ref; /* The MzScheme reference to this buffer */ +#endif + #ifdef FEAT_PERL void *perl_private; #endif #ifdef FEAT_PYTHON - void *python_ref; /* The Python value referring to this buffer */ + void *python_ref; /* The Python reference to this buffer */ #endif #ifdef FEAT_TCL @@ -1591,6 +1595,11 @@ struct window int w_nrwidth_width; /* nr of chars to print line count. */ #endif + +#ifdef FEAT_MZSCHEME + void *mzscheme_ref; /* The MzScheme value referring to this window */ +#endif + #ifdef FEAT_PERL void *perl_private; #endif diff --git a/src/version.c b/src/version.c index a51550fe6..e65631454 100644 --- a/src/version.c +++ b/src/version.c @@ -370,6 +370,11 @@ static char *(features[]) = #else "-multi_lang", #endif +#ifdef FEAT_MZSCHEME + "+mzscheme", +#else + "-mzscheme", +#endif #ifdef FEAT_NETBEANS_INTG "+netbeans_intg", #else diff --git a/src/vim.h b/src/vim.h index a4c9d59e7..eb7d2a7f7 100644 --- a/src/vim.h +++ b/src/vim.h @@ -15,6 +15,7 @@ defined(FEAT_PYTHON) || \ defined(FEAT_RUBY) || \ defined(FEAT_TCL) || \ + defined(FEAT_MZSCHEME) || \ defined(DYNAMIC_GETTEXT) || \ defined(DYNAMIC_ICONV) || \ defined(DYNAMIC_IME) || \ diff --git a/src/window.c b/src/window.c index dc63e09d4..47da663b5 100644 --- a/src/window.c +++ b/src/window.c @@ -3106,6 +3106,10 @@ win_free(wp) { int i; +#ifdef FEAT_MZSCHEME + mzscheme_window_free(wp); +#endif + #ifdef FEAT_PERL perl_win_free(wp); #endif -- cgit v1.2.1