Skip to content
Newer
Older
100644 318 lines (224 sloc) 7.03 KB
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
1 /*
2 +----------------------------------------------------------------------+
3 | Zend Engine |
4 +----------------------------------------------------------------------+
d1dded8 @sebastianbergmann MFH: Bump copyright year, 2 of 2.
sebastianbergmann authored Dec 31, 2007
5 | Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
6 +----------------------------------------------------------------------+
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
7 | This source file is subject to version 2.00 of the Zend license, |
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
8 | that is bundled with this package in the file LICENSE, and is |
f68c7ff updating license information in the headers.
James Cox authored Jun 10, 2003
9 | available through the world-wide-web at the following url: |
d863d52 @sebastianbergmann Update headers.
sebastianbergmann authored Dec 11, 2001
10 | http://www.zend.com/license/2_00.txt. |
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
11 | If you did not receive a copy of the Zend license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@zend.com so we can mail you a copy immediately. |
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@zend.com> |
16 | Zeev Suraski <zeev@zend.com> |
17 +----------------------------------------------------------------------+
18 */
19
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
20 /* $Id$ */
b5b1117 @zsuraski License update
zsuraski authored Jul 16, 1999
21
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
22 #ifndef ZEND_GLOBALS_H
23 #define ZEND_GLOBALS_H
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
24
99947a2 @andigutmans - Shift around header files.
andigutmans authored Sep 5, 1999
25
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
26 #include <setjmp.h>
27
99947a2 @andigutmans - Shift around header files.
andigutmans authored Sep 5, 1999
28 #include "zend_globals_macros.h"
29
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
30 #include "zend_stack.h"
31 #include "zend_ptr_stack.h"
32 #include "zend_hash.h"
33 #include "zend_llist.h"
6608f07 @smalyshev Mega-commit: Enter the new object model
smalyshev authored Feb 7, 2002
34 #include "zend_objects.h"
f75f3cf @smalyshev Generalize object storage and reference bookkeeping
smalyshev authored May 31, 2002
35 #include "zend_objects_API.h"
5230321 - Fix Reflection class names
Marcus Boerger authored Mar 30, 2004
36 #include "zend_modules.h"
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
37
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
38 #ifdef ZEND_MULTIBYTE
39 #include "zend_multibyte.h"
40 #endif /* ZEND_MULTIBYTE */
41
7a87fcb @zsuraski Thread safety patch. We're still not quite there but it compiles agai…
zsuraski authored Apr 21, 1999
42 /* Define ZTS if you want a thread-safe Zend */
52fcaa4 @zsuraski Thread-safe project
zsuraski authored Apr 21, 1999
43 /*#undef ZTS*/
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
44
45 #ifdef ZTS
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
46
47 BEGIN_EXTERN_C()
e06a1ed @zsuraski Thread safety fixes
zsuraski authored Apr 24, 1999
48 ZEND_API extern int compiler_globals_id;
49 ZEND_API extern int executor_globals_id;
1aa2c5c @zsuraski Ok, call me crazy, because I probably am.
zsuraski authored Apr 23, 1999
50 END_EXTERN_C()
51
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
52 #endif
53
54 #define SYMTABLE_CACHE_SIZE 32
55
56
57 #include "zend_compile.h"
58
b510a6d More portability stuff
Sascha Schumann authored Oct 5, 1999
59 /* excpt.h on Digital Unix 4.0 defines function_table */
60 #undef function_table
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
61
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
62 #define ZEND_EARLY_BINDING_COMPILE_TIME 0
63 #define ZEND_EARLY_BINDING_DELAYED 1
64 #define ZEND_EARLY_BINDING_DELAYED_ALL 2
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
65
66 typedef struct _zend_declarables {
67 zval ticks;
68 } zend_declarables;
69
0b68251 Changed EG(argument_stack) implementation.
Dmitry Stogov authored Jan 24, 2008
70 typedef struct _zend_vm_stack *zend_vm_stack;
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
71
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
72 struct _zend_compiler_globals {
73 zend_stack bp_stack;
74 zend_stack switch_cond_stack;
22f066e @andigutmans - Add foreach() freeing code.
andigutmans authored Sep 9, 1999
75 zend_stack foreach_copy_stack;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
76 zend_stack object_stack;
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
77 zend_stack declare_stack;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
78
26578c3 @andigutmans - Initial support for nested class definitions
andigutmans authored Oct 29, 2001
79 zend_class_entry *active_class_entry;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
80
81 /* variables for list() compilation */
82 zend_llist list_llist;
83 zend_llist dimension_llist;
43ebb86 @zsuraski Fix bug #10287 - avoid crashing under a bogus usage of list()
zsuraski authored Jul 16, 2001
84 zend_stack list_stack;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
85
86 zend_stack function_call_stack;
87
88 char *compiled_filename;
89
90 int zend_lineno;
6f20cea Fixes to heredoc and cleanup of new re2c scanner. (Patch by Matt Wilmas)
Scott MacVicar authored Apr 9, 2008
91
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
92 char *heredoc;
93 int heredoc_len;
94
95 zend_op_array *active_op_array;
96
97 HashTable *function_table; /* function symbol table */
98 HashTable *class_table; /* class table */
99
c34f41b @zsuraski Eliminate run-time leak with eval()'s
zsuraski authored Aug 19, 2000
100 HashTable filenames_table;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
101
9d11db1 @andigutmans - Merge new $_GET, $_POST etc. patch from Engine 1 tree
andigutmans authored Aug 8, 2001
102 HashTable *auto_globals;
103
b6197bc @zsuraski Maintain a state of whether we're compiling and/or executing
zsuraski authored Feb 4, 2000
104 zend_bool in_compilation;
9ece796 @zsuraski define zend_bool
zsuraski authored Jul 2, 1999
105 zend_bool short_tags;
106 zend_bool asp_tags;
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
107 zend_bool allow_call_time_pass_reference;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
108
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
109 zend_declarables declarables;
110
9ece796 @zsuraski define zend_bool
zsuraski authored Jul 2, 1999
111 zend_bool unclean_shutdown;
87ba08d @zsuraski Avoid leaking fd's in case of failures
zsuraski authored May 22, 1999
112
9596255 @zsuraski Final touches on the INI parser
zsuraski authored Oct 30, 2000
113 zend_bool ini_parser_unbuffered_errors;
114
87ba08d @zsuraski Avoid leaking fd's in case of failures
zsuraski authored May 22, 1999
115 zend_llist open_files;
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
116
f1e8815 @andigutmans - Change exception handling to use the Java-like catch(MyException $e…
andigutmans authored Jan 13, 2002
117 long catch_begin;
29f5dbe @andigutmans - Initial support for exceptions.
andigutmans authored Aug 30, 2001
118
609d58a @zsuraski Merge from branch - move to standard C scanners in thread safe mode
zsuraski authored Aug 6, 2001
119 struct _zend_ini_parser_param *ini_parser_param;
120
85b4df5 @zsuraski Improved interactive mode - it is now available in all builds, withou…
zsuraski authored Jul 15, 2001
121 int interactive;
7ade3b3 @zsuraski Fix an off by one lineno issue, in case of an implicit ;
zsuraski authored Aug 6, 2001
122
cf05f34 @zsuraski MFZE1 - lineno fix
zsuraski authored Jan 5, 2003
123 zend_uint start_lineno;
7ade3b3 @zsuraski Fix an off by one lineno issue, in case of an implicit ;
zsuraski authored Aug 6, 2001
124 zend_bool increment_lineno;
b90d80b @andigutmans - Initial patch to support importing from class scopes (for Stig).
andigutmans authored Mar 2, 2002
125
26dd849 @zsuraski Add support for interfaces
zsuraski authored Mar 5, 2003
126 znode implementing_class;
e062dff @zsuraski - Implement public/protected/private methods.
zsuraski authored Dec 6, 2002
127
471947b @zsuraski Reimplement PPP properties
zsuraski authored Feb 4, 2003
128 zend_uint access_type;
bdd3b60 Implement a different way to catch documentation comments.
Andrei Zmievski authored Apr 2, 2003
129
130 char *doc_comment;
131 zend_uint doc_comment_len;
ab9dcec @fujimoto - added script encoding support to Zend Engine 2.
fujimoto authored Aug 11, 2003
132
8c885b8 Implemented concept of "delayed early binding" that allows opcode cac…
Dmitry Stogov authored Mar 18, 2008
133 zend_uint compiler_options; /* set of ZEND_COMPILE_* constants */
134
f32ffe9 Namespaces
Dmitry Stogov authored Sep 28, 2007
135 zval *current_namespace;
136 HashTable *current_import;
137
f66f55e @felipensp MFH: Implemented "jump label" operator (limited "goto")
felipensp authored Mar 28, 2008
138 HashTable *labels;
139 zend_stack labels_stack;
140
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
141 #ifdef ZEND_MULTIBYTE
142 zend_encoding **script_encoding_list;
4f42ed3 - Revived zend multibyte
Moriyoshi Koizumi authored Jul 24, 2008
143 size_t script_encoding_list_size;
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
144 zend_bool detect_unicode;
4f42ed3 - Revived zend multibyte
Moriyoshi Koizumi authored Jul 24, 2008
145 zend_bool encoding_declared;
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
146
147 zend_encoding *internal_encoding;
148
149 /* multibyte utility functions */
150 zend_encoding_detector encoding_detector;
151 zend_encoding_converter encoding_converter;
152 zend_encoding_oddlen encoding_oddlen;
153 #endif /* ZEND_MULTIBYTE */
154
8768ab9 Fixed bug #34729 (Crash in ZTS mode under Apache)
Dmitry Stogov authored Dec 1, 2005
155 #ifdef ZTS
156 HashTable **static_members;
157 int last_static_member;
158 #endif
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
159 };
160
161
162 struct _zend_executor_globals {
ced9cee @zsuraski - Implement return by reference:
zsuraski authored Dec 15, 1999
163 zval **return_value_ptr_ptr;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
164
165 zval uninitialized_zval;
166 zval *uninitialized_zval_ptr;
167
168 zval error_zval;
169 zval *error_zval_ptr;
170
171 zend_ptr_stack arg_types_stack;
223c674 @zsuraski - Made things work again (Thies, everybody - please check the latest …
zsuraski authored Dec 19, 1999
172
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
173 /* symbol table cache */
174 HashTable *symtable_cache[SYMTABLE_CACHE_SIZE];
175 HashTable **symtable_cache_limit;
176 HashTable **symtable_cache_ptr;
177
178 zend_op **opline_ptr;
179
180 HashTable *active_symbol_table;
181 HashTable symbol_table; /* main symbol table */
182
5951b16 @andigutmans - Quick way of supporting include_once().
andigutmans authored Mar 10, 2000
183 HashTable included_files; /* files already included */
5463dd5 @andigutmans - Add use support (behaves like require, but will not use the same fi…
andigutmans authored Nov 30, 1999
184
10afe5d @rlerdorf Make the sigsetjmp change more robust. On systems that don't have
rlerdorf authored Mar 18, 2008
185 JMP_BUF *bailout;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
186
187 int error_reporting;
fde2e61 @zsuraski error_reporting fix
zsuraski authored Jun 30, 2000
188 int orig_error_reporting;
2ef6b68 Pass on the exit status
Sascha Schumann authored Nov 22, 2000
189 int exit_status;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
190
191 zend_op_array *active_op_array;
192
193 HashTable *function_table; /* function symbol table */
194 HashTable *class_table; /* class table */
195 HashTable *zend_constants; /* constants table */
196
90bd453 @andigutmans - Remove use of C++ reserved words namespace/this
andigutmans authored Mar 1, 2002
197 zend_class_entry *scope;
166266d Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
Dmitry Stogov authored Sep 29, 2007
198 zend_class_entry *called_scope; /* Scope of the calling class */
4248619 @andigutmans - Initial work on changing namespace scope. Only methods & variables
andigutmans authored Dec 6, 2001
199
90bd453 @andigutmans - Remove use of C++ reserved words namespace/this
andigutmans authored Mar 1, 2002
200 zval *This;
a4248dd @andigutmans - Significantly improve the performance of method calls and $this->me…
andigutmans authored Jan 5, 2002
201
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
202 long precision;
203
fafbf6d @zsuraski - Implement declare() with declarables framework
zsuraski authored Jan 24, 2000
204 int ticks_count;
205
b6197bc @zsuraski Maintain a state of whether we're compiling and/or executing
zsuraski authored Feb 4, 2000
206 zend_bool in_execution;
55cf45a New autoload protection schema was implemented (Using HashTable inste…
Dmitry Stogov authored Mar 24, 2004
207 HashTable *in_autoload;
b7a8297 - Boost up __autoload() calls by caching the lookup
Marcus Boerger authored Aug 23, 2004
208 zend_function *autoload_func;
aecd5b8 @zsuraski MFZE1
zsuraski authored Oct 23, 2001
209 zend_bool full_tables_cleanup;
b6197bc @zsuraski Maintain a state of whether we're compiling and/or executing
zsuraski authored Feb 4, 2000
210
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
211 /* for extended information support */
741ca16 @andigutmans - Fixed various inheritance problems & Andrey's leak
andigutmans authored Jul 28, 1999
212 zend_bool no_extensions;
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
213
84eb48f @zsuraski Ok, this time here's some real Win32 system programming :)
zsuraski authored Jun 16, 2000
214 #ifdef ZEND_WIN32
215 zend_bool timed_out;
216 #endif
217
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
218 HashTable regular_list;
219 HashTable persistent_list;
220
0b68251 Changed EG(argument_stack) implementation.
Dmitry Stogov authored Jan 24, 2008
221 zend_vm_stack argument_stack;
1c0f136 @andigutmans - Hooray. This might actually work. (I hope)
andigutmans authored Oct 3, 1999
222
a72c1ab @zsuraski Added error mask to set_error_handler()
zsuraski authored Jan 10, 2004
223 int user_error_handler_error_reporting;
67f6974 @zsuraski Initial support for trapping errors (not complete and disabled; will …
zsuraski authored Apr 19, 2000
224 zval *user_error_handler;
04788f9 @- Added set_exception_handler() function for registering a global,
Stig Bakken authored Aug 16, 2002
225 zval *user_exception_handler;
a72c1ab @zsuraski Added error mask to set_error_handler()
zsuraski authored Jan 10, 2004
226 zend_stack user_error_handlers_error_reporting;
34c2b0a @zsuraski - Add restore_error_handler()
zsuraski authored Jun 17, 2000
227 zend_ptr_stack user_error_handlers;
04788f9 @- Added set_exception_handler() function for registering a global,
Stig Bakken authored Aug 16, 2002
228 zend_ptr_stack user_exception_handlers;
67f6974 @zsuraski Initial support for trapping errors (not complete and disabled; will …
zsuraski authored Apr 19, 2000
229
fd0d44f @felipensp User error handlers no longer catch supressed errors (patch by Etienn…
felipensp authored Mar 8, 2008
230 zend_error_handling_t error_handling;
231 zend_class_entry *exception_class;
232
ef0bd3d @zsuraski - Move timeout code to Zend
zsuraski authored Jun 16, 2000
233 /* timeout support */
234 int timeout_seconds;
235
0b7a9ce @zsuraski - Fix Win32 compilation (Use winsock2.h from now on)
zsuraski authored Jun 3, 2000
236 int lambda_count;
237
8831b9c @andigutmans - MFZE1.
andigutmans authored Sep 23, 2002
238 HashTable *ini_directives;
14cad8f Optimized shutdown sequence to iterate only over modified ini directives
Dmitry Stogov authored May 15, 2006
239 HashTable *modified_ini_directives;
240
f75f3cf @smalyshev Generalize object storage and reference bookkeeping
smalyshev authored May 31, 2002
241 zend_objects_store objects_store;
32f9d0e - MFH Improve exception linking
Marcus Boerger authored Aug 14, 2008
242 zval *exception, *prev_exception;
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
243 zend_op *opline_before_exception;
fa47e90 Changed exception handling. Now each op_array doesn't contain ZEND_HA…
Dmitry Stogov authored Jan 21, 2008
244 zend_op exception_op[3];
54d5305 @zsuraski Make the INI mechanism thread safe (or at least thread safer :)
zsuraski authored Dec 27, 2000
245
7e5ec2d @andigutmans Initial support for built-in backtracing.
andigutmans authored May 2, 2002
246 struct _zend_execute_data *current_execute_data;
247
5230321 - Fix Reflection class names
Marcus Boerger authored Mar 30, 2004
248 struct _zend_module_entry *current_module;
9e60cb5 @zsuraski Rewrote exception support. Fixes a few limitations and bugs in the old
zsuraski authored Feb 3, 2004
249
fce275e @zsuraski Improve PPP handling of properties
zsuraski authored Feb 7, 2003
250 zend_property_info std_property_info;
251
d6ee9d4 @tony2001 MFH: fix #38779 (engine crashes when require()'ing file with syntax e…
tony2001 authored Sep 11, 2006
252 zend_bool active;
253
b5f5e9a @andigutmans - Optimize the execute stack a bit.
andigutmans authored Aug 15, 1999
254 void *reserved[ZEND_MAX_RESERVED_RESOURCES];
573b460 @andigutmans Zend Library
andigutmans authored Apr 7, 1999
255 };
256
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
257 struct _zend_ini_scanner_globals {
e52aac9 @wez Implement simple stream support in the ZE scanners.
wez authored Feb 18, 2003
258 zend_file_handle *yy_in;
259 zend_file_handle *yy_out;
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
260
4f42ed3 - Revived zend multibyte
Moriyoshi Koizumi authored Jul 24, 2008
261 unsigned int yy_leng;
262 unsigned char *yy_start;
263 unsigned char *yy_text;
264 unsigned char *yy_cursor;
265 unsigned char *yy_marker;
266 unsigned char *yy_limit;
267 int yy_state;
268 zend_stack state_stack;
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
269
270 char *filename;
fac8eaf MFZE1
Ilia Alshanetsky authored Oct 14, 2002
271 int lineno;
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
272
273 /* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW */
09b6f37 MFH:
Jani Taskinen authored Sep 28, 2007
274 int scanner_mode;
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
275 };
276
277 struct _zend_php_scanner_globals {
278 zend_file_handle *yy_in;
279 zend_file_handle *yy_out;
09b6f37 MFH:
Jani Taskinen authored Sep 28, 2007
280
af31602 - Rewrite scanner to be based on re2c instead of flex
Marcus Boerger authored Mar 16, 2008
281 unsigned int yy_leng;
282 unsigned char *yy_start;
283 unsigned char *yy_text;
284 unsigned char *yy_cursor;
285 unsigned char *yy_marker;
286 unsigned char *yy_limit;
287 int yy_state;
288 zend_stack state_stack;
289
290 zend_llist used_state_stacks;
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
291
292 #ifdef ZEND_MULTIBYTE
293 /* original (unfiltered) script */
4f42ed3 - Revived zend multibyte
Moriyoshi Koizumi authored Jul 24, 2008
294 unsigned char *script_org;
295 size_t script_org_size;
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
296
297 /* filtered script */
4f42ed3 - Revived zend multibyte
Moriyoshi Koizumi authored Jul 24, 2008
298 unsigned char *script_filtered;
299 size_t script_filtered_size;
c3286f3 implemented again zend-multibyte for PHP 5.3
Rui Hirokawa authored Jun 29, 2008
300
301 /* input/ouput filters */
302 zend_encoding_filter input_filter;
303 zend_encoding_filter output_filter;
304 zend_encoding *script_encoding;
305 zend_encoding *internal_encoding;
306 #endif /* ZEND_MULTIBYTE */
609d58a @zsuraski Merge from branch - move to standard C scanners in thread safe mode
zsuraski authored Aug 6, 2001
307 };
308
a617217 Replace macros which begin with an underscore through an appropiately
Sascha Schumann authored Jul 3, 2000
309 #endif /* ZEND_GLOBALS_H */
333406b - Added some missing CVS $Id$ tags, headers and footers.
foobar authored Feb 1, 2003
310
311 /*
312 * Local variables:
313 * tab-width: 4
314 * c-basic-offset: 4
315 * indent-tabs-mode: t
316 * End:
317 */
Something went wrong with that request. Please try again.