Index: Makefile =================================================================== RCS file: /home/cvs/ringlet/c/contrib/net/autorespond/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 3 Apr 2003 13:58:32 -0000 1.1.1.1 +++ Makefile 3 Apr 2003 14:51:10 -0000 1.2 @@ -2,20 +2,29 @@ # bdameron@tscnet.com # -CC = gcc BIN = autorespond -DEFS = -Wall -LINKDEFS = -LIBS = -OBJS = autorespond.o -INSTALL_DIR = /usr/local/bin +INSTALL_DIR = `head -1 conf-home`/bin INSTALL_BIN = autorespond INSTALL_UID = root INSTALL_GID = root -all: - $(CC) $(DEFS) -o autorespond autorespond.c +all: $(BIN) + +autorespond: load autorespond.o strcasestr.o + ./load autorespond strcasestr.o + +autorespond.o: compile autorespond.c strcasestr.h + ./compile autorespond.c + +strcasestr.o: compile strcasestr.c strcasestr.h + ./compile strcasestr.c + +strcasestr.h: choose compile trystrcase.c strcasestr_ar.h strcasestr_sys.h + ./choose cl trystrcase strcasestr_ar.h strcasestr_sys.h > strcasestr.h + +strcasestr.c: choose compile trystrcase.c strcasestr_ar.c strcasestr_sys.c + ./choose cl trystrcase strcasestr_ar.c strcasestr_sys.c > strcasestr.c install: all @echo "Installing..." @@ -25,5 +34,28 @@ clean: @echo -n "Cleaning up..." - @rm -rf *.core core $(BIN) + @rm -rf *.core core `cat TARGETS` @echo "done." + +choose: \ +warn-auto.sh choose.sh conf-home + cat warn-auto.sh choose.sh \ + | sed s}HOME}"`head -1 conf-home`"}g \ + > choose + chmod 755 choose + +compile: \ +warn-auto.sh conf-cc + ( cat warn-auto.sh; \ + echo exec "`head -1 conf-cc`" '-c $${1+"$$@"}' \ + ) > compile + chmod 755 compile + +load: \ +warn-auto.sh conf-ld + ( cat warn-auto.sh; \ + echo 'main="$$1"; shift'; \ + echo exec "`head -1 conf-ld`" \ + '-o "$$main" "$$main".o $${1+"$$@"}' \ + ) > load + chmod 755 load Index: TARGETS =================================================================== RCS file: TARGETS diff -N TARGETS --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ TARGETS 3 Apr 2003 14:51:10 -0000 1.4 @@ -0,0 +1,7 @@ +load +compile +choose +autorespond.o +autorespond +strcasestr.c +strcasestr.h Index: autorespond.c =================================================================== RCS file: /home/cvs/ringlet/c/contrib/net/autorespond/autorespond.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- autorespond.c 3 Apr 2003 13:58:32 -0000 1.1.1.1 +++ autorespond.c 3 Apr 2003 14:51:10 -0000 1.2 @@ -80,6 +80,8 @@ #include #include +#include "strcasestr.h" + #define DEFAULT_MH 1 /* default value for message_handling flag */ #define DEFAULT_FROM "$" /* default "from" for the autorespond */ @@ -374,32 +376,6 @@ -/********************************************************* -** find string in string - ignore case **/ - -char *strcasestr_ar( char *_s1, char *_s2 ) -{ - char *s1; - char *s2; - char *ptr; - - s1 = strdup(_s1); - s2 = strdup(_s2); - - for ( ptr = s1; *ptr != '\0'; ptr++ ) - *ptr = tolower( *ptr ); - - for ( ptr = s2; *ptr != '\0'; ptr++ ) - *ptr = tolower( *ptr ); - - ptr = strstr( s1, s2 ); - - if ( ptr == (char *)NULL ) - return (char *)NULL; - else - return _s1 + (ptr - s1); -} - @@ -420,7 +396,7 @@ if ( ss == (char *)NULL ) return act_header->content; - if ( strcasestr_ar( act_header->content, ss ) != (char *)NULL ) + if ( strcasestr( act_header->content, ss ) != (char *)NULL ) return act_header->content; return (char *)NULL; @@ -441,7 +417,7 @@ if ( (s = inspect_headers( "Content-Type", (char *)NULL )) == (char *)NULL) return (char *)NULL; - if ( (r = strcasestr_ar( s, "boundary=" )) == (char *)NULL) + if ( (r = strcasestr( s, "boundary=" )) == (char *)NULL) return (char *)NULL; *(r+strlen(r)-2) = '\0'; /* delete quote at the end */ Index: choose.sh =================================================================== RCS file: choose.sh diff -N choose.sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ choose.sh 3 Apr 2003 14:05:19 -0000 1.1.1.1 @@ -0,0 +1,18 @@ + +result="$4" + +case "$1" in + *c*) ./compile $2.c >/dev/null 2>&1 || result="$3" ;; +esac + +case "$1" in + *l*) ./load $2 >/dev/null 2>&1 || result="$3" ;; +esac + +case "$1" in + *r*) ./$2 >/dev/null 2>&1 || result="$3" ;; +esac + +rm -f $2.o $2 + +exec cat "$result" Index: conf-cc =================================================================== RCS file: conf-cc diff -N conf-cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf-cc 3 Apr 2003 14:51:10 -0000 1.2 @@ -0,0 +1,5 @@ +cc -Wall -D_GNU_SOURCE + +This will be used to compile .c files. +The _GNU_SOURCE define is needed with some glibc versions to +enable some GNU extensions, including the strcasestr(3) function. Index: conf-home =================================================================== RCS file: conf-home diff -N conf-home --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf-home 3 Apr 2003 14:05:19 -0000 1.1.1.1 @@ -0,0 +1,4 @@ +/usr/local + +This is the dnscache home directory. Programs will be installed in +.../bin. Index: conf-ld =================================================================== RCS file: conf-ld diff -N conf-ld --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ conf-ld 3 Apr 2003 14:51:10 -0000 1.2 @@ -0,0 +1,3 @@ +cc -s + +This will be used to link .o files into an executable. Index: strcasestr_ar.c =================================================================== RCS file: strcasestr_ar.c diff -N strcasestr_ar.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ strcasestr_ar.c 3 Apr 2003 14:51:10 -0000 1.1 @@ -0,0 +1,31 @@ +#include +#include + +#include "strcasestr.h" + +/********************************************************* +** find string in string - ignore case **/ + +char *strcasestr( const char *_s1, const char *_s2 ) +{ + char *s1; + char *s2; + char *ptr; + + s1 = strdup(_s1); + s2 = strdup(_s2); + + for ( ptr = s1; *ptr != '\0'; ptr++ ) + *ptr = tolower( *ptr ); + + for ( ptr = s2; *ptr != '\0'; ptr++ ) + *ptr = tolower( *ptr ); + + ptr = strstr( s1, s2 ); + + if ( ptr == (char *)NULL ) + return (char *)NULL; + else + return _s1 + (ptr - s1); +} + Index: strcasestr_ar.h =================================================================== RCS file: strcasestr_ar.h diff -N strcasestr_ar.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ strcasestr_ar.h 3 Apr 2003 14:51:10 -0000 1.1 @@ -0,0 +1,6 @@ +#ifndef _INCLUDED_STRCASESTR_AR +#define _INCLUDED_STRCASESTR_AR + +char *strcasestr( const char *_s1, const char *_s2 ); + +#endif /* _INCLUDED */ Index: strcasestr_sys.c =================================================================== RCS file: strcasestr_sys.c diff -N strcasestr_sys.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ strcasestr_sys.c 3 Apr 2003 14:51:10 -0000 1.1 @@ -0,0 +1 @@ +/* dummy */ Index: strcasestr_sys.h =================================================================== RCS file: strcasestr_sys.h diff -N strcasestr_sys.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ strcasestr_sys.h 3 Apr 2003 14:51:10 -0000 1.1 @@ -0,0 +1 @@ +#include Index: trystrcase.c =================================================================== RCS file: trystrcase.c diff -N trystrcase.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ trystrcase.c 3 Apr 2003 14:51:10 -0000 1.1 @@ -0,0 +1,6 @@ +#include + +int main(void) +{ + return (strcasestr("a", "aa")); +} Index: warn-auto.sh =================================================================== RCS file: warn-auto.sh diff -N warn-auto.sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ warn-auto.sh 3 Apr 2003 14:05:19 -0000 1.1.1.1 @@ -0,0 +1,2 @@ +#!/bin/sh +# WARNING: This file was auto-generated. Do not edit!