1 /* 2 ** ____ _ 3 ** ___| _ \ ___ _ __| | 4 ** / _ \ |_) / _ \ '__| | 5 ** | __/ __/ __/ | | | 6 ** \___|_| \___|_| |_| 7 ** 8 ** ePerl -- Embedded Perl 5 Language 9 ** 10 ** ePerl interprets an ASCII file bristled with Perl 5 program statements 11 ** by evaluating the Perl 5 code while passing through the plain ASCII 12 ** data. It can operate both as a standard Unix filter for general file 13 ** generation tasks and as a powerful Webserver scripting language for 14 ** dynamic HTML page programming. 15 ** 16 ** ====================================================================== 17 ** 18 ** Copyright (c) 1996,1997,1998 Ralf S. Engelschall <rse@engelschall.com> 19 ** 20 ** This program is free software; it may be redistributed and/or modified 21 ** only under the terms of either the Artistic License or the GNU General 22 ** Public License, which may be found in the ePerl source distribution. 23 ** Look at the files ARTISTIC and COPYING or run ``eperl -l'' to receive 24 ** a built-in copy of both license files. 25 ** 26 ** This program is distributed in the hope that it will be useful, but 27 ** WITHOUT ANY WARRANTY; without even the implied warranty of 28 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the 29 ** Artistic License or the GNU General Public License for more details. 30 ** 31 ** ====================================================================== 32 ** 33 ** eperl_proto.h -- ePerl ANSI C prototypes 34 */ 35 #ifndef EPERL_PROTO_H 36 #define EPERL_PROTO_H 1 37 38 /*_BEGIN_PROTO_*/ 39 #include "eperl_getopt.h" 40 41 /* eperl_main.c */ 42 extern int mode; 43 extern char *allowed_file_ext[]; 44 extern char *allowed_caller_uid[]; 45 extern void PrintError(int mode, char *scripturl, char *scriptfile, char *logfile, char *str, ...); 46 extern void give_version(void); 47 extern void give_version_extended(void); 48 extern void give_readme(void); 49 extern void give_license(void); 50 extern void give_img_logo(void); 51 extern void give_img_powered(void); 52 extern void give_usage(char *name); 53 extern char *RememberedINC[1024]; 54 extern void RememberINC(char *str); 55 extern void mysighandler(int rc); 56 extern void myinit(void); 57 extern void myexit(int rc); 58 extern struct option options[]; 59 extern int main(int argc, char **argv, char **env); 60 61 /* eperl_perl5.c */ 62 extern void Perl5_XSInit(void); 63 extern void Perl5_ForceUnbufferedStdout(void); 64 extern char **Perl5_SetEnvVar(char **env, char *str); 65 extern void Perl5_SetScalar(char *pname, char *vname, char *vvalue); 66 extern char *Perl5_RememberedScalars[1024]; 67 extern void Perl5_RememberScalar(char *str); 68 extern void Perl5_SetRememberedScalars(void); 69 70 /* eperl_parse.c */ 71 extern char *ePerl_begin_delimiter; 72 extern char *ePerl_end_delimiter; 73 extern int ePerl_case_sensitive_delimiters; 74 extern int ePerl_convert_entities; 75 extern int ePerl_line_continuation; 76 extern void ePerl_SetError(char *str, ...); 77 extern char *ePerl_GetError(void); 78 extern char *ePerl_fprintf(char *cpOut, char *str, ...); 79 extern char *ePerl_fwrite(char *cpBuf, int nBuf, int cNum, char *cpOut); 80 extern char *ePerl_Efwrite(char *cpBuf, int nBuf, int cNum, char *cpOut); 81 extern char *ePerl_Cfwrite(char *cpBuf, int nBuf, int cNum, char *cpOut); 82 extern char *strnchr(char *buf, char chr, int n); 83 /*extern char *strnstr(char *buf, char *str, int n);*/ 84 extern char *strncasestr(char *buf, char *str, int n); 85 #if defined(__FreeBSD__) 86 #include <osreldate.h> 87 #if __FreeBSD_version <= 800057 && __FreeBSD_version > 800000 || __FreeBSD_version <= 701100 88 extern char *strndup(char *buf, int n); 89 #endif 90 #endif 91 extern char *ePerl_Bristled2Plain(char *cpBuf); 92 93 /* eperl_pp.c */ 94 extern void ePerl_PP_SetError(char *str, ...); 95 extern char *ePerl_PP_GetError(void); 96 extern char *ePerl_PP_Process(char *cpInput, char **cppINC, int mode); 97 extern char *ePerl_PP(char *cpBuf, char **cppINC); 98 99 /* eperl_sys.c */ 100 extern char **mysetenv(char **env, char *var, char *str, ...); 101 extern void IO_redirect_stdin(FILE *fp); 102 extern void IO_redirect_stdout(FILE *fp); 103 extern void IO_redirect_stderr(FILE *fp); 104 extern int IO_is_stdin_redirected(void); 105 extern int IO_is_stdout_redirected(void); 106 extern int IO_is_stderr_redirected(void); 107 extern void IO_restore_stdin(void); 108 extern void IO_restore_stdout(void); 109 extern void IO_restore_stderr(void); 110 extern char *mytmpfile(char *id); 111 extern void remove_mytmpfiles(void); 112 extern char *isotime(time_t *t); 113 extern char *ePerl_ReadSourceFile(char *filename, char **cpBufC, int *nBufC); 114 extern char *ePerl_ReadErrorFile(char *filename, char *scriptfile, char *scripturl); 115 extern char *filename(char *path); 116 extern char *dirname(char *path); 117 extern char *abspath(char *path); 118 119 /* eperl_http.c */ 120 extern void HTTP_PrintResponseHeaders(char *cpBuf); 121 extern void HTTP_StripResponseHeaders(char **cpBuf, int *nBuf); 122 extern int HTTP_IsHeaderLine(char *cp1, char *cp2); 123 extern int HTTP_HeadersExists(char *cpBuf); 124 extern int HTTP_HeaderLineExists(char *cpBuf, char *name); 125 extern char *WebTime(void); 126 extern FILE *HTTP_openURLasFP(char *url); 127 128 /* eperl_debug.c */ 129 extern int fDebug; 130 extern char *cpDebugFile; 131 extern void Debug(char *str, ...); 132 133 /* eperl_config.c */ 134 135 /* eperl_version.c */ 136 extern char ePerl_Version[]; 137 extern char ePerl_Hello[]; 138 extern char ePerl_GNUVersion[]; 139 extern char ePerl_WhatID[]; 140 extern char ePerl_RCSIdentID[]; 141 extern char ePerl_WebID[]; 142 extern char ePerl_PlainID[]; 143 144 /* eperl_readme.c */ 145 extern char *ePerl_README; 146 147 /* eperl_license.c */ 148 extern char *ePerl_LICENSE; 149 150 /* eperl_logo.c */ 151 extern int ePerl_LOGO_size; 152 extern char ePerl_LOGO_data[]; 153 154 /* eperl_powered.c */ 155 extern int ePerl_POWERED_size; 156 extern char ePerl_POWERED_data[]; 157 /*_END_PROTO_*/ 158 159 #endif /* EPERL_PROTO_H */ 160 /*EOF*/ 161