From 4e3c475fa7b990a2a898c051061c5bc253b1d634 Mon Sep 17 00:00:00 2001 From: jestin Date: Fri, 23 Jul 2004 13:25:23 +0000 Subject: now uses USE_PCRE_REGEXP in ivyprobe (xtprobe ... gtkprobe ...) when binding a pattern --- src/Makefile | 17 +++++++++++------ src/ivyprobe.c | 48 +++++++++++++++++++++++++++++++----------------- 2 files changed, 42 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 7932216..5366616 100644 --- a/src/Makefile +++ b/src/Makefile @@ -25,9 +25,11 @@ GTKINC = `gtk-config --cflags` GTKLIB = `gtk-config --libs` GLUTINC = -I/usr/include -I. GLUTLIB = -L. -lglut -lGLU -lGL -lX11 -lXmu -# use these if you want standard Tcl -TCLINCL = -I/usr/include/tcl8.4 -TCLLIB = -ltcl8.4 +# use these if you want standard Tcl ( 8.3 on debian woody ... ) +TCLINCL = -I/usr/include/tcl8.3 +TCLLIB = -ltcl8.3 +#TCLINCL = -I/usr/include/tcl8.4 +#TCLLIB = -ltcl8.4 # use these if you want to use Aqua Tcl on macOSX #TCLINC = -I/Library/Frameworks/Tcl.framework/Headers #TCLLIB = -framework Tcl @@ -92,20 +94,23 @@ ivygtkloop.o: ivygtkloop.c ivygtkloop.h ivyprobe: ivyprobe.o $(CC) $(CFLAGS) -o $@ ivyprobe.o -L. -livy $(PCRELIB) $(EXTRALIB) +ivyprobe.o : ivyprobe.c + $(CC) $(CFLAGS) $(REGEXP) -c ivyprobe.c -o $@ + ivyxtprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -DXTMAINLOOP -c ivyprobe.c -o $@ $(XTINC) + $(CC) $(CFLAGS) $(REGEXP) -DXTMAINLOOP -c ivyprobe.c -o $@ $(XTINC) ivyxtprobe: ivyxtprobe.o libxtivy.a $(CC) -o $@ ivyxtprobe.o -L. $(XTLIB) -lxtivy $(PCRELIB) $(EXTRALIB) ivygtkprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -DGTKMAINLOOP -c ivyprobe.c -o ivygtkprobe.o $(XTINC) + $(CC) $(CFLAGS) $(REGEXP) -DGTKMAINLOOP -c ivyprobe.c -o ivygtkprobe.o $(XTINC) ivygtkprobe: ivygtkprobe.o libgtkivy.a $(CC) -o ivygtkprobe ivygtkprobe.o -L. $(GTKLIB) -lgtkivy $(PCRELIB) $(EXTRALIB) ivyglutprobe.o : ivyprobe.c - $(CC) $(CFLAGS) -DGLUTMAINLOOP -c ivyprobe.c -o ivyglutprobe.o $(GLUTINC) + $(CC) $(CFLAGS) $(REGEXP) -DGLUTMAINLOOP -c ivyprobe.c -o ivyglutprobe.o $(GLUTINC) ivyglutprobe: ivyglutprobe.o libglutivy.a $(CC) -o ivyglutprobe ivyglutprobe.o -L. $(GLUTLIB) -lglutivy $(PCRELIB) $(EXTRALIB) diff --git a/src/ivyprobe.c b/src/ivyprobe.c index 45fe00a..c054be9 100644 --- a/src/ivyprobe.c +++ b/src/ivyprobe.c @@ -45,7 +45,14 @@ extern char *optarg; extern int optind; #endif -#include +#ifndef USE_PCRE_REGEX +#include +#else +#define OVECSIZE 60 /* must be multiple of 3, for regexp return */ +#include +#endif + + #endif #ifdef XTMAINLOOP #include "ivyxtloop.h" @@ -144,22 +151,29 @@ void HandleStdin (Channel channel, HANDLE fd, void *data) } } else if (strcmp(cmd, "bind") == 0) { - arg = strtok (NULL, "'"); - if (arg) { - regex_t reg; - int err; - Chop(arg); - if (err=regcomp(®,arg,REG_ICASE|REG_EXTENDED)!=0) - { - char errbuf[4096]; - regerror (err, ®, errbuf, 4096); - printf("Error compiling '%s', %s, not bound\n", arg, errbuf); - } - else - { - IvyBindMsg (Callback, NULL, Chop(arg)); - } - } + arg = strtok (NULL, "'"); + if (arg) { +#ifndef USE_PCRE_REGEX + regex_t reg; + int err; + Chop(arg); + if (err=regcomp(®,arg,REG_ICASE|REG_EXTENDED)!=0) { + char errbuf[4096]; + regerror (err, ®, errbuf, 4096); + printf("Error compiling '%s', %s, not bound\n", arg, errbuf); +#else + pcre *regexp; + const char *errbuf; + int erroffset; + Chop(arg); + regexp = pcre_compile(arg, 0,&errbuf,&erroffset,NULL); + if (regexp==NULL) { + printf("Error compiling '%s', %s, not bound\n", arg, errbuf); +#endif + } else { + IvyBindMsg (Callback, NULL, Chop(arg)); + } + } } else if (strcmp(cmd, "where") == 0) { arg = strtok (NULL, " \n"); -- cgit v1.1