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