eperl
view release on metacpan or search on metacpan
eperl_main.c view on Meta::CPAN
printf("Content-Type: image/gif\n\n");
fwrite(ePerl_POWERED_data, ePerl_POWERED_size, 1, stdout);
}
void give_usage(char *name)
{
fprintf(stderr, "Usage: %s [options] [scriptfile]\n", name);
fprintf(stderr, "\n");
fprintf(stderr, "Input Options:\n");
fprintf(stderr, " -d, --define=NAME=VALUE define global Perl variable ($main::name)\n");
fprintf(stderr, " -D, --setenv=NAME=VALUE define environment variable ($ENV{'name'})\n");
fprintf(stderr, " -I, --includedir=PATH add @INC/#include directory\n");
fprintf(stderr, " -B, --block-begin=STR set begin block delimiter\n");
fprintf(stderr, " -E, --block-end=STR set end block delimiter\n");
fprintf(stderr, " -n, --nocase force block delimiters to be case insensitive\n");
fprintf(stderr, " -k, --keepcwd force keeping of current working directory\n");
fprintf(stderr, " -P, --preprocess enable ePerl Preprocessor\n");
fprintf(stderr, " -C, --convert-entity enable HTML entity conversion for ePerl blocks\n");
fprintf(stderr, " -L, --line-continue enable line continuation via backslashes\n");
fprintf(stderr, "\n");
fprintf(stderr, "Output Options:\n");
eperl_main.c view on Meta::CPAN
dmalloc_shutdown();
#endif
#endif
/* die gracefully */
exit(rc);
}
struct option options[] = {
{ "define", 1, NULL, 'd' },
{ "setenv", 1, NULL, 'D' },
{ "includedir", 1, NULL, 'I' },
{ "block-begin", 1, NULL, 'B' },
{ "block-end", 1, NULL, 'E' },
{ "nocase", 0, NULL, 'n' },
{ "keepcwd", 0, NULL, 'k' },
{ "preprocess", 0, NULL, 'P' },
{ "convert-entity", 0, NULL, 'C' },
{ "line-continue", 0, NULL, 'L' },
{ "tainting", 0, NULL, 'T' },
{ "warnings", 0, NULL, 'w' },
eperl_main.c view on Meta::CPAN
for (cpScript = cpBuf;
*cpScript != '\n' && (cpScript-cpBuf < nBuf);
cpScript++)
;
cpScript++;
}
else
cpScript = cpBuf;
/* now set the additional env vars */
env = mysetenv(env, "SCRIPT_SRC_PATH", "%s", abspath(source));
env = mysetenv(env, "SCRIPT_SRC_PATH_FILE", "%s", filename(source));
env = mysetenv(env, "SCRIPT_SRC_PATH_DIR", "%s", abspath(dirname(source)));
if ((cpPath = getenv("PATH_INFO")) != NULL) {
if ((cpHost = getenv("SERVER_NAME")) == NULL)
cpHost = "localhost";
cpPort = getenv("SERVER_PORT");
if (strcmp(cpPort, "80") == 0)
cpPort = NULL;
sprintf(ca, "http://%s%s%s%s",
cpHost, cpPort != NULL ? ":" : "", cpPort != NULL ? cpPort : "", cpPath);
env = mysetenv(env, "SCRIPT_SRC_URL", "%s", ca);
env = mysetenv(env, "SCRIPT_SRC_URL_FILE", "%s", filename(ca));
env = mysetenv(env, "SCRIPT_SRC_URL_DIR", "%s", dirname(ca));
}
else {
env = mysetenv(env, "SCRIPT_SRC_URL", "file://%s", abspath(source));
env = mysetenv(env, "SCRIPT_SRC_URL_FILE", "%s", filename(source));
env = mysetenv(env, "SCRIPT_SRC_URL_DIR", "file://%s", abspath(source));
}
env = mysetenv(env, "SCRIPT_SRC_SIZE", "%d", nBuf);
stat(source, &st);
env = mysetenv(env, "SCRIPT_SRC_MODIFIED", "%d", st.st_mtime);
cp = ctime(&(st.st_mtime));
cp[strlen(cp)-1] = NUL;
env = mysetenv(env, "SCRIPT_SRC_MODIFIED_CTIME", "%s", cp);
env = mysetenv(env, "SCRIPT_SRC_MODIFIED_ISOTIME", "%s", isotime(&(st.st_mtime)));
if ((pw = getpwuid(st.st_uid)) != NULL)
env = mysetenv(env, "SCRIPT_SRC_OWNER", "%s", pw->pw_name);
else
env = mysetenv(env, "SCRIPT_SRC_OWNER", "unknown-uid-%d", st.st_uid);
env = mysetenv(env, "VERSION_INTERPRETER", "%s", ePerl_WebID);
env = mysetenv(env, "VERSION_LANGUAGE", "Perl/%s", AC_perl_vers);
/* optionally run the ePerl preprocessor */
if (fPP) {
/* switch to directory where script stays */
getcwd(cwd, MAXPATHLEN);
strcpy(sourcedir, source);
for (cp = sourcedir+strlen(sourcedir); cp > sourcedir && *cp != '/'; cp--)
;
*cp = NUL;
chdir(sourcedir);
eperl_perl5.c view on Meta::CPAN
**
*/
char **Perl5_SetEnvVar(char **env, char *str)
{
char ca[1024];
char *cp;
strcpy(ca, str);
cp = strchr(ca, '=');
*cp++ = '\0';
return mysetenv(env, ca, cp);
}
/*
**
** sets a Perl scalar variable
**
*/
void Perl5_SetScalar(char *pname, char *vname, char *vvalue)
{
ENTER;
eperl_proto.h view on Meta::CPAN
extern char *strndup(char *buf, int n);
extern char *ePerl_Bristled2Plain(char *cpBuf);
/* eperl_pp.c */
extern void ePerl_PP_SetError(char *str, ...);
extern char *ePerl_PP_GetError(void);
extern char *ePerl_PP_Process(char *cpInput, char **cppINC, int mode);
extern char *ePerl_PP(char *cpBuf, char **cppINC);
/* eperl_sys.c */
extern char **mysetenv(char **env, char *var, char *str, ...);
extern void IO_redirect_stdin(FILE *fp);
extern void IO_redirect_stdout(FILE *fp);
extern void IO_redirect_stderr(FILE *fp);
extern int IO_is_stdin_redirected(void);
extern int IO_is_stdout_redirected(void);
extern int IO_is_stderr_redirected(void);
extern void IO_restore_stdin(void);
extern void IO_restore_stdout(void);
extern void IO_restore_stderr(void);
extern char *mytmpfile(char *id);
eperl_sys.c view on Meta::CPAN
** eperl_sys.c -- ePerl system functions
*/
#include "eperl_config.h"
#include "eperl_global.h"
#include "eperl_proto.h"
/*
**
** own setenv() function which works with Perl
**
*/
char **mysetenv(char **env, char *var, char *str, ...)
{
va_list ap;
char ca[1024];
char ca2[1024];
char *cp;
int i;
char **envN;
extern char **environ;
static int stillcalled = FALSE;
int replaced = FALSE;
( run in 0.425 second using v1.01-cache-2.11-cpan-a1d94b6210f )