diff --git a/Makefile.in b/Makefile.in index d64efbe..2d3a033 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29,6 +29,7 @@ CFLAGS = @CFLAGS@ $(perl_optimize) $(perl_ccflags) -I$(perl_archlib)/CORE -I. DLCFLAGS = @CFLAGS@ $(perl_optimize) $(perl_cccdlflags) $(perl_ccflags) -I$(perl_archlib)/CORE -I. LDFLAGS = @LDFLAGS@ $(perl_ccdlflags) $(perl_ldflags) -L$(perl_archlib)/CORE LDLIBS = $(perl_dla) -lperl $(perl_libs) +EXEEXT = @EXEEXT@ AR = @AR@ RANLIB = @RANLIB@ SIZE = @SIZE@ @@ -95,7 +96,7 @@ _UPDATEVERS = \ # THE DEFAULT TARGET # ------------------------------------------------ -all: eperl eperl.1 +all: eperl$(EXEEXT) eperl.1 # ------------------------------------------------ @@ -212,9 +213,9 @@ OBJS = \ eperl_logo.o \ eperl_powered.o -eperl: $(OBJS) - $(CC) $(LDFLAGS) -o eperl $(OBJS) $(LDLIBS) $(dmalloc) - @[ "x$(debug)" = xon ] || strip eperl +eperl$(EXEEXT): $(OBJS) + $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) $(dmalloc) + @[ "x$(debug)" = xon ] || strip $@ eperl_main.o: eperl_main.c $(CC) $(CFLAGS) -c eperl_main.c @@ -357,7 +358,8 @@ install: all clean: -rm -f $(OBJS) - -rm -f eperl + -rm -f eperl$(EXEEXT) + -rm -f eperl.1 -rm -f $(SOBJS) -rm -f libeperl.a -rm -f core *.core diff --git a/eperl_main.c b/eperl_main.c index e998607..b3dc878 100644 --- a/eperl_main.c +++ b/eperl_main.c @@ -1102,6 +1102,10 @@ int main(int argc, char **argv, char **env) HTTP_StripResponseHeaders(&cpOut, &nOut); } + /* now when the request was not a HEAD request we create the output */ + cp = getenv("REQUEST_METHOD"); + if (! ((mode == MODE_CGI || mode == MODE_NPHCGI) && + cp != NULL && stringEQ(cp, "HEAD"))) { if (outputfile != NULL && stringNE(outputfile, "-")) { /* if we remembered current working dir, restore it now */ if (mode == MODE_FILTER && cwd[0] != NUL) @@ -1120,6 +1124,7 @@ int main(int argc, char **argv, char **env) /* make sure that the data is out before we exit */ fflush(stdout); } + } CUS: /* the Clean Up Sequence */ diff --git a/eperl_parse.c b/eperl_parse.c index 6e3cb7e..1969de1 100644 --- a/eperl_parse.c +++ b/eperl_parse.c @@ -381,7 +381,7 @@ char *ePerl_Cfnwrite(char *cpBuf, int nBuf, int cNum, char *cpOut, int *cpOutLen ** */ -char *strnchr(char *buf, char chr, int n) +char *ep_strnchr(char *buf, char chr, int n) { char *cp; char *cpe; @@ -393,7 +393,7 @@ char *strnchr(char *buf, char chr, int n) return NULL; } -char *strnstr(char *buf, char *str, int n) +char *ep_strnstr(char *buf, char *str, int n) { char *cp; char *cpe; @@ -407,7 +407,7 @@ char *strnstr(char *buf, char *str, int n) return NULL; } -char *strncasestr(char *buf, char *str, int n) +char *ep_strncasestr(char *buf, char *str, int n) { char *cp; char *cpe; @@ -466,9 +466,9 @@ char *ePerl_Bristled2Plain(char *cpBuf) while (cps < cpEND) { if (ePerl_case_sensitive_delimiters) - cpe = strnstr(cps, ePerl_begin_delimiter, cpEND-cps); + cpe = ep_strnstr(cps, ePerl_begin_delimiter, cpEND-cps); else - cpe = strncasestr(cps, ePerl_begin_delimiter, cpEND-cps); + cpe = ep_strncasestr(cps, ePerl_begin_delimiter, cpEND-cps); if (cpe == NULL) { /* there are no more ePerl blocks, so @@ -478,7 +478,7 @@ char *ePerl_Bristled2Plain(char *cpBuf) if (cps < cpEND) { cps2 = cps; /* first, do all complete lines */ - while (cps2 < cpEND && (cpe2 = strnchr(cps2, '\n', cpEND-cps2)) != NULL) { + while (cps2 < cpEND && (cpe2 = ep_strnchr(cps2, '\n', cpEND-cps2)) != NULL) { if (ePerl_line_continuation && cps < cpe2 && *(cpe2-1) == '\\') { if (cpe2-1-cps2 > 0) { cpOut = ePerl_fnprintf(cpOut, &cpOutLen, "print \""); @@ -513,7 +513,7 @@ char *ePerl_Bristled2Plain(char *cpBuf) up to the begin of the ePerl block as print statements */ if (cps < cpe) { cps2 = cps; - while ((cpe2 = strnchr(cps2, '\n', cpe-cps2)) != NULL) { + while ((cpe2 = ep_strnchr(cps2, '\n', cpe-cps2)) != NULL) { if (ePerl_line_continuation && cps < cpe2 && *(cpe2-1) == '\\') { if (cpe2-1-cps2 > 0) { cpOut = ePerl_fnprintf(cpOut, &cpOutLen, "print \""); @@ -564,9 +564,9 @@ char *ePerl_Bristled2Plain(char *cpBuf) /* move forward to end of ePerl block. */ if (ePerl_case_sensitive_delimiters) - cpe = strnstr(cpe, ePerl_end_delimiter, cpEND-cpe); + cpe = ep_strnstr(cpe, ePerl_end_delimiter, cpEND-cpe); else - cpe = strncasestr(cpe, ePerl_end_delimiter, cpEND-cpe); + cpe = ep_strncasestr(cpe, ePerl_end_delimiter, cpEND-cpe); if (cpe == NULL) { ePerl_SetError("Missing end delimiter"); CU(NULL); diff --git a/eperl_perl5_sm.pl b/eperl_perl5_sm.pl index 0a881f9..763a7bf 100644 --- a/eperl_perl5_sm.pl +++ b/eperl_perl5_sm.pl @@ -53,7 +53,9 @@ EOT sub static_ext { unless (scalar @Extensions) { - @Extensions = sort split /\s+/, $Config{static_ext}; + # my $static_ext = $Config{static_ext}; + # $static_ext =~ s{^\s+}{}; + # @Extensions = sort split /\s+/, $static_ext; unshift @Extensions, qw(DynaLoader); } return @Extensions; diff --git a/eperl_pp.c b/eperl_pp.c index 27091e9..97242bf 100644 --- a/eperl_pp.c +++ b/eperl_pp.c @@ -170,13 +170,13 @@ char *ePerl_PP_Process(char *cpInput, char **cppINC, int mode) if ((strncmp(cps, "#endif", 6) == 0) && (cp == NULL)) cp = cps; if ((strncmp(cps, "#c", 2) == 0) && (cp == NULL)) cp = cps; } - if (((cpT = strnstr(cps, "\n#include", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#sinclude", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#if", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#elsif", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#else", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#endif", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; - if (((cpT = strnstr(cps, "\n#c", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#include", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#sinclude", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#if", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#elsif", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#else", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#endif", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; + if (((cpT = ep_strnstr(cps, "\n#c", cpEND-cps)) != NULL) && ((cpT < cp) || (cp == NULL))) cp = cpT+1; if (cp != NULL && (cp == cpBuf || (cp > cpBuf && *(cp-1) == '\n'))) { /* diff --git a/eperl_proto.h b/eperl_proto.h index d2aef9c..f1f9d0a 100644 --- a/eperl_proto.h +++ b/eperl_proto.h @@ -53,7 +53,6 @@ extern void RememberINC(char *str); extern void mysighandler(int rc); extern void myinit(void); extern void myexit(int rc); -extern int main(int argc, char **argv, char **env); /* eperl_parse.c */ extern char *ePerl_begin_delimiter; @@ -71,9 +70,9 @@ extern char *ePerl_Efwrite(char *cpBuf, int nBuf, int cNum, char *cpOut); extern char *ePerl_Efnwrite(char *cpBuf, int nBuf, int cNum, char *cpOut, int *n); extern char *ePerl_Cfwrite(char *cpBuf, int nBuf, int cNum, char *cpOut); extern char *ePerl_Cfnwrite(char *cpBuf, int nBuf, int cNum, char *cpOut, int *cpOutLen); -extern char *strnchr(char *buf, char chr, int n); -extern char *strnstr(char *buf, char *str, int n); -extern char *strncasestr(char *buf, char *str, int n); +extern char *ep_strnchr(char *buf, char chr, int n); +extern char *ep_strnstr(char *buf, char *str, int n); +extern char *ep_strncasestr(char *buf, char *str, int n); extern char *ePerl_Bristled2Plain(char *cpBuf); /* eperl_perl5.c */ diff --git a/etc/mkproto b/etc/mkproto index 8c4fc1c..b191418 100755 --- a/etc/mkproto +++ b/etc/mkproto @@ -1,6 +1,10 @@ : eval 'exec perl -S $0 ${1+"$@"}' if $running_under_some_shell; +## +## mkproto -- generate prototype header +## Copyright (c) Ralf S. Engelschall, All Rights Reserved. +## $header = $ARGV[0]; shift @ARGV;