Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

This commit was manufactured by cvs2svn to create tag

'BEFORE_REMOVING_GC_STEP2'.
  • Loading branch information...
commit 6ec8b2957da5abc6c455cb1af3f6b5d6d671e8b5 1 parent 5f62c34
SVN Migration authored

Showing 565 changed files with 0 additions and 39,794 deletions. Show diff stats Hide diff stats

  1. +0 11 BUGS
  2. +0 624 CHANGES
  3. +0 149 CODING_STANDARDS
  4. +0 339 COPYING
  5. +0 176 CREDITS
  6. +0 860 ChangeLog
  7. +0 86 ChangeLog.TODO
  8. +0 54 EXTENSION_STATUS
  9. +0 538 FUNCTION_LIST.txt
  10. +0 159 INSTALL
  11. +0 64 LICENSE
  12. +0 231 Makefile.in
  13. +0 57 README.QNX
  14. +0 59 README.WIN32
  15. +0 100 TODO
  16. +0 4 TSRM/Makefile.am
  17. +0 392 TSRM/TSRM.c
  18. +0 100 TSRM/TSRM.dsp
  19. +0 97 TSRM/TSRM.h
  20. +0 7 TSRM/acconfig.h
  21. +0 24 TSRM/buildconf
  22. +0 24 TSRM/configure.in
  23. +0 17 WISHLIST
  24. +0 55 WISHLIST-3.1
  25. +0 121 acconfig.h.in
  26. +0 152 acinclude.m4
  27. +0 4 apMakefile.libdir
  28. +0 77 apMakefile.tmpl
  29. +0 276 apidoc-zend.txt
  30. +0 492 apidoc.txt
  31. +0 92 build-defs.h.in
  32. +0 31 buildconf
  33. +0 244 calendar.mak
  34. +0 458 cgi_main.c
  35. +0 743 config.guess
  36. +0 939 config.sub
  37. +0 978 configure.in.in
  38. +0 204 crypt.mak
  39. +0 62 cvsusers
  40. +0 234 dbase.mak
  41. +0 201 dbm.mak
  42. +0 9 ext/Makefile.am
  43. +0 6 ext/apache/Makefile.am
  44. +0 404 ext/apache/apache.c
  45. +0 5 ext/apache/config.m4
  46. +0 6 ext/aspell/Makefile.am
  47. +0 218 ext/aspell/aspell.c
  48. +0 3  ext/aspell/config.h.stub
  49. +0 27 ext/aspell/config.m4
  50. +0 50 ext/aspell/php3_aspell.h
  51. +0 5 ext/bcmath/Makefile.am
  52. +0 445 ext/bcmath/bcmath.c
  53. +0 2  ext/bcmath/config.h.stub
  54. +0 19 ext/bcmath/config.m4
  55. +0 1,626 ext/bcmath/number.c
  56. +0 118 ext/bcmath/number.h
  57. +0 64 ext/bcmath/php3_bcmath.h
  58. +0 6 ext/bcmath/setup.stub
  59. +0 24 ext/com/php3_COM.h
  60. +0 6 ext/dav/Makefile.am
  61. +0 2  ext/dav/config.h.stub
  62. +0 29 ext/dav/config.m4
  63. +0 300 ext/dav/dav.c
  64. +0 66 ext/dav/php3_dav.h
  65. +0 2  ext/dav/setup.stub
  66. +0 6 ext/db/Makefile.am
  67. +0 5 ext/db/config.h.stub
  68. +0 53 ext/db/config.m4
  69. +0 1,172 ext/db/db.c
  70. +0 94 ext/db/php3_db.h
  71. +0 5 ext/dbase/Makefile.am
  72. +0 3  ext/dbase/config.h.stub
  73. +0 21 ext/dbase/config.m4
  74. +0 762 ext/dbase/dbase.c
  75. +0 94 ext/dbase/dbf.h
  76. +0 261 ext/dbase/dbf_head.c
  77. +0 9 ext/dbase/dbf_head.h
  78. +0 168 ext/dbase/dbf_misc.c
  79. +0 13 ext/dbase/dbf_misc.h
  80. +0 183 ext/dbase/dbf_ndx.c
  81. +0 98 ext/dbase/dbf_ndx.h
  82. +0 182 ext/dbase/dbf_rec.c
  83. +0 10 ext/dbase/dbf_rec.h
  84. +0 55 ext/dbase/php_dbase.h
  85. +0 4 ext/dbase/setup.stub
  86. +0 661 ext/ereg/ereg.c
  87. +0 71 ext/ereg/php_ereg.h
  88. +0 14 ext/ereg/php_regex.h
  89. +0 20 ext/ereg/regex/COPYRIGHT
  90. +0 141 ext/ereg/regex/Makefile.in
  91. +0 32 ext/ereg/regex/README
  92. +0 92 ext/ereg/regex/WHATSNEW
  93. +0 31 ext/ereg/regex/cclass.h
  94. +0 102 ext/ereg/regex/cname.h
  95. +0 242 ext/ereg/regex/debug.c
  96. +0 14 ext/ereg/regex/debug.ih
  97. +0 1,019 ext/ereg/regex/engine.c
  98. +0 35 ext/ereg/regex/engine.ih
  99. +0 510 ext/ereg/regex/main.c
  100. +0 19 ext/ereg/regex/main.ih
  101. +0 76 ext/ereg/regex/mkh
  102. +0 1,546 ext/ereg/regex/regcomp.c
  103. +0 48 ext/ereg/regex/regcomp.ih
  104. +0 124 ext/ereg/regex/regerror.c
  105. +0 12 ext/ereg/regex/regerror.ih
  106. +0 502 ext/ereg/regex/regex.3
  107. +0 233 ext/ereg/regex/regex.7
  108. +0 106 ext/ereg/regex/regex.dsp
  109. +0 29 ext/ereg/regex/regex.dsw
  110. +0 79 ext/ereg/regex/regex.h
  111. +0 304 ext/ereg/regex/regex.mak
  112. +0 138 ext/ereg/regex/regex2.h
  113. +0 140 ext/ereg/regex/regexec.c
  114. +0 37 ext/ereg/regex/regfree.c
  115. +0 316 ext/ereg/regex/split.c
  116. +0 475 ext/ereg/regex/tests
  117. +0 22 ext/ereg/regex/utils.h
  118. +0 73 ext/ext_skel
  119. +0 6 ext/fdf/Makefile.am
  120. +0 2  ext/fdf/config.h.stub
  121. +0 39 ext/fdf/config.m4
  122. +0 531 ext/fdf/fdf.c
  123. +0 63 ext/fdf/php3_fdf.h
  124. +0 7 ext/fdf/setup.stub
  125. +0 6 ext/filepro/Makefile.am
  126. +0 2  ext/filepro/config.h.stub
  127. +0 17 ext/filepro/config.m4
  128. +0 550 ext/filepro/filepro.c
  129. +0 57 ext/filepro/php_filepro.h
  130. +0 5 ext/filepro/setup.stub
  131. +0 4 ext/gd/Makefile.am
  132. +0 6 ext/gd/config.h.stub
  133. +0 54 ext/gd/config.m4
  134. +0 1,785 ext/gd/gd.c
  135. +0 201 ext/gd/gdcache.c
  136. +0 87 ext/gd/gdcache.h
  137. +0 862 ext/gd/gdttf.c
  138. +0 16 ext/gd/gdttf.h
  139. +0 102 ext/gd/php3_gd.h
  140. +0 6 ext/gd/setup.stub
  141. +0 6 ext/gettext/Makefile.am
  142. +0 3  ext/gettext/config.h.stub
  143. +0 45 ext/gettext/config.m4
  144. +0 169 ext/gettext/gettext.c
  145. +0 56 ext/gettext/php3_gettext.h
  146. +0 6 ext/gettext/setup.stub
  147. +0 128 ext/hyperwave/DList.h
  148. +0 6 ext/hyperwave/Makefile.am
  149. +0 2  ext/hyperwave/config.h.stub
  150. +0 18 ext/hyperwave/config.m4
  151. +0 194 ext/hyperwave/debug.h
  152. +0 413 ext/hyperwave/dlist.c
  153. +0 4,703 ext/hyperwave/hg_comm.c
  154. +0 196 ext/hyperwave/hg_comm.h
  155. +0 3,016 ext/hyperwave/hw.c
  156. +0 122 ext/hyperwave/hw.h
  157. +0 117 ext/hyperwave/hw_error.h
  158. +0 6 ext/hyperwave/setup.stub
  159. +0 6 ext/imap/Makefile.am
  160. +0 2  ext/imap/config.h.stub
  161. +0 69 ext/imap/config.m4
  162. +0 2,665 ext/imap/imap.c
Sorry, we could not display the entire diff because too many files (565) changed.
11 BUGS
... ... @@ -1,11 +0,0 @@
1   -If you think you've found a bug in PHP3, you can report it on the bug
2   -reporting page at:
3   - http://www.php.net/
4   -
5   -Current Known Bugs:
6   -
7   -* split() function doesn't return regex errors nicely
8   -* Preprocessed scripts don't work with require() and define()
9   -* unset() doesn't actually erase the variables it just marks them as uninitialized
10   -* Some parts in the language core prevent more than 256 arguments in function
11   - calls from being possible
624 CHANGES
... ... @@ -1,624 +0,0 @@
1   -Noticeable Changes between PHP/FI 2.0 and PHP 3.0
2   -=================================================
3   -
4   -This file was designed to be viewed with a tab size of 4 characters.
5   -
6   -This file is divided into 4 sections:
7   -1. Downwards incompatible language changes. This section includes all of
8   - the changes in the core language which may require people to modify
9   - their scripts before using them with PHP 3.0. It does NOT list
10   - changes made in the behavior of specific functions.
11   -2. New language features. This section includes all of the new additions
12   - to the core language, that may be used to enhance scripts designed for
13   - PHP 3.0. Likewise, it does not include a listing of new functions.
14   -3. Structural changes not directly effecting the end user. The core
15   - of PHP 3.0 is a complete rewrite. As such, many issues effecting
16   - PHP/FI 2.0 were addressed and vastly improved in this version,
17   - resulting in a much more stable and efficient implementation. This
18   - section lists these changes in design.
19   -4. Other changes that don't fit in any of the above categories.
20   -
21   -Please remember that PHP 3.0's core is a complete rewrite, and thus,
22   -there may be other undocumented incompatibilities we haven't thought
23   -of ourselves. If you think you've found a incompatibility (or a new
24   -feature) which is not listed here, please mail us at
25   -php-dev@php.iquest.net.
26   -
27   -
28   -
29   - - Zeev
30   -
31   -------------------------------------------------------------------------------
32   -
33   -Downwards incompatible language changes
34   -=======================================
35   -
36   -[1] The close-PHP tag has changed from > to ?>
37   -
38   - This means that instead of writing:
39   -
40   - <?echo $title;>
41   -
42   - You should write:
43   -
44   - <?echo $title;?>
45   -
46   - PHP3 also includes support for a longer-form start tag that is
47   - XML-compliant:
48   -
49   - <?php echo $title;?>
50   -
51   - The ability to use the short start tag ('<?') can be turned on and
52   - off using the short_tags() function. Whether it is enabled or not by
53   - default is a compile-time option (normally set to enabled by default).
54   -
55   -
56   -[2] Semicolons in if/elseif/else must be replaced with colons.
57   -
58   - For example, the equivalent of:
59   -
60   - if (expr);
61   - statements
62   - ...
63   - elseif (expr);
64   - statements
65   - ...
66   - else;
67   - statements
68   - endif;
69   -
70   - in PHP 3.0 would be:
71   -
72   - if (expr):
73   - statements
74   - ...
75   - elseif (expr):
76   - statements
77   - ...
78   - else:
79   - statements
80   - endif;
81   -
82   - Note that the endif is followed by a semicolon and not a colon even in
83   - PHP 3.0, which marks the end of the entire IF sentence.
84   -
85   - Also note that the implementation of the colon-mode and curly-braces
86   - mode in PHP 3.0 is identical, one isn't buggier than the other (note
87   - that I'm not saying they're not buggy, though :)
88   -
89   -
90   -[3] Semicolons in while loops must also be replaced with colons.
91   -
92   - For example, the equivalent of:
93   -
94   - while (expr);
95   - statements
96   - ...
97   - endwhile;
98   -
99   - in PHP 3.0 would be:
100   -
101   - while (expr):
102   - statements
103   - ...
104   - endwhile;
105   -
106   - Note that the endwhile is followed by a semicolon and not a colon even
107   - in PHP 3.0, which marks the end of the WHILE sentence. As with the IF
108   - statement, the implementation of the colon-mode and curly-braces mode
109   - in PHP 3.0 is identical, one isn't buggier than the other.
110   -
111   - Also note that failing to change the semicolon to a colon can result in
112   - scripts that get stuck in the while loop because the loop-condition never
113   - changes.
114   -
115   -
116   -[4] $foo[0] is no longer identical to $foo.
117   -
118   - In PHP/FI 2.0, a side-effect of the implementation caused $foo[0] to be
119   - identical to $foo. This is not the case in PHP 3.0.
120   -
121   -
122   -[5] Expressions determine their types differently.
123   -
124   - The way expressions are evaluated has changed radically in PHP 3.0.
125   - Expressions are no longer given the type of the left argument, but are
126   - assigned types taking both types into account, and regardless of which
127   - is on the left side and which is on the right side. On simple scripts
128   - that should probably not effect you, but if you've relied on this fact
129   - (even without realizing you do) it may change the way your scripts work.
130   - Consider the next example:
131   -
132   - $a[0]=5;
133   - $a[1]=7;
134   -
135   - $key = key($a);
136   - while ("" != $key) {
137   - echo "$key\n";
138   - next($a);
139   - }
140   -
141   -
142   - In PHP/FI 2.0, this would display both of $a's indices. In PHP 3.0, it
143   - wouldn't display anything. The reason is that in PHP/FI 2.0, because the
144   - left argument's type was string, a string comparison was made, and indeed
145   - "" does not equal "0", and the loop went through. In PHP 3.0, when a
146   - string is compared with an integer, an integer comparison is made (the
147   - string is converted to an integer). This results in comparing atoi("")
148   - which is 0, and $key which is also 0, and since 0==0, the loop doesn't
149   - go through even once. The fix for this is simple, by replacing the
150   - while statement with:
151   -
152   - while ("" != stringval($key)) {
153   -
154   - This would first convert the integer 0 to a string "0", and then
155   - compare "" and "0", which are not equal, and the loop would go through
156   - as expected. As mentioned later, casting operators are supported in
157   - PHP 3.0 for a quicker and more readable way of changing variables'
158   - types. For example, you could use:
159   -
160   - while ("" != (string)$key) {
161   -
162   -
163   -[6] The structure of error messages has changed.
164   -
165   - Although the error messages are usually more accurate, you won't be shown
166   - the actual line of text and actual place in which the error occured.
167   - You'll be supplied with the line number in which the error has occured,
168   - though.
169   -
170   -
171   -[7] The format string argument to echo is no longer supported.
172   -
173   - Use printf(format,arg1,arg2,arg3,...) instead (unlimited arguments).
174   -
175   -
176   -[8] The use of read-mode $array[] is no longer supported.
177   -
178   - That is, you cannot traverse an array by having a loop that does $data =
179   - $array[]. Use current() and next() instead. Also, $array1[] = $array2
180   - does not append the values of $array2 to $array1, but appends $array2
181   - as the last entry of $array1 (see the multidimensional array support).
182   -
183   -
184   -[9] Apache versions older than 1.2 are not supported anymore.
185   -
186   - The apache module requires apache 1.2 or later (1.3-beta is supported).
187   -
188   -
189   -[10] Indirect references inside quoted strings
190   -
191   - PHP2-style indirect reference inside quoted strings is no longer
192   - supported. That is, if $foo="bar", and $bar="abc", in PHP2,
193   - "$$foo" would print out "abc". In PHP3, this would print
194   - "$bar" (the contents of $foo is replaced with "bar").
195   - To use indirect reference in PHP3 inside quoted strings, you should use
196   - the new notation: "${$foo}". The standard $$foo notation will work
197   - outside of the quoted string.
198   -
199   -[11]
200   - Some functions have changed names, are missing, or have been deprecated
201   - by other functions
202   -
203   - As a whole new rewrite, written by many more people and supporting many
204   - more APIs than it's predecessor, there's a good chance some of the functions
205   - you're used to from PHP/FI 2 aren't available in release 3, or have changed
206   - names. Many functions that do exist behave a bit differently, mainly
207   - because they return different values for errors (false) but also for other
208   - reasons. We can't list all of these functions here, simply because drawing
209   - a full comparison between the function sets of the two versions is way too
210   - much work. If a converted PHP/FI 2 script doesn't work for you, nothing
211   - can replace the good old human eye going over the code, doublechecking
212   - with the online manual that each function still does what you expected it
213   - to do.
214   -
215   -[12] Other incompatibilities.
216   -
217   - It's not too unlikely that other documented behavior of PHP2 has changed
218   - in this release. If you think you've found an example, please mail
219   - us at php-dev@php.iquest.net. Even if you've found an undocumented
220   - feature of PHP2 that stopped working in PHP3, we'd like to know about it
221   - (although it's more than likely that it will not be supported).
222   -
223   -
224   -
225   -------------------------------------------------------------------------------
226   -
227   -
228   -New Language Features
229   -=====================
230   -
231   -[1] Expressions
232   -
233   - PHP 3.0 includes a rich implementation of expressions, much more advanced
234   - than this of 2.0. Just about any complex C-like or perl-like expression
235   - would work. Support was added for assignment operators (+=, -=, *= etc),
236   - pre and post increment/decerement (e.g. $i++, ++$i) and the questionmark
237   - operator ( (expr?expr:expr) ). Every assignment is now an expression
238   - with a value, which means stuff like $a = $b = $c = $d = 0; would work.
239   - It is difficult to describe the power of expressions within a few lines
240   - of text, but if you're familiar with them, you probably get the picture.
241   -
242   -
243   -[2] for loops are now supported.
244   -
245   - for loops were fairly difficult to implement (in fact, we didn't find
246   - any parallel interpreter that supports for loops anywhere (no, perl is
247   - not an interpreter)). The bottom line is that for loops work, and are
248   - around 5% slower than comparable while loops (that may vary), but often
249   - they're much nicer.
250   -
251   - The syntax is identical to the one of C:
252   -
253   - for (expr; expr; expr) statement;
254   -
255   - or
256   -
257   - for (expr; expr; expr) { statements ... }
258   -
259   - The first expression is executed the first time the loop is encountered,
260   - the loop is run as long as the second expression is evaluated as TRUE,
261   - and after each iteration, the 3rd expression is evaluated.
262   -
263   - Colon-mode FOR loops are also supported:
264   - for (expr; expr; expr):
265   - statements
266   - ...
267   - endfor;
268   -
269   -
270   -[3] do..while(expr) loops are now supported.
271   -
272   - Like with its C parallel, the statements inside a do..while loop are
273   - run once the first time the loop is encountered, and then as long as
274   - the expression evaluates as true.
275   -
276   - For example:
277   -
278   - do {
279   - statements;
280   - } while ($i++ < $max);
281   -
282   -
283   -[4] break and continue statements are now supported inside loops.
284   -
285   - You can break out of loops, or continue to the next iteration of the
286   - loop using these statements. A special feature of PHP is the ability
287   - to specify an expression argument to break or continue, which specifies
288   - how many loops you want to break out from or continue to. For example:
289   -
290   - for ($i=0; $i<10; $i++) {
291   - for ($j=0; $j<10; $j++) {
292   - if ($j>5)
293   - break;
294   - if ($i>5)
295   - break 2;
296   - }
297   - }
298   -
299   - The first break statement would end the inner loop every time $j is
300   - greater than 5. The second break statement would end both the inner
301   - and outer loop when $i is greater than 5.
302   -
303   - Note: For this matter, switch statements are considered as loops. So
304   - if you write "break 2;" inside a switch statement, you would be asking
305   - to break out of the switch, and the innermost loop in which is nested.
306   -
307   -
308   -[5] Switched to C-style declaration of functions.
309   -
310   - Here's a pretty useless function which makes a good example:
311   -
312   - function concat($str1,$str2)
313   - {
314   - return $str1.$str2;
315   - }
316   -
317   - NOTE: The old style function definition is still supported, to
318   - allow easier upgrading from PHP/FI 2.0 scripts. Simply
319   - change 'function' to 'old_function' for these functions.
320   -
321   -
322   -[6] OOP support
323   -
324   - Classes and inheritance are supported to a limited extent in PHP 3.0.
325   - Here's how to declare a simple class:
326   -
327   - class simple_class {
328   - var $property1,$property2;
329   - var $property3=5;
330   -
331   - function display() {
332   - printf("p1=%d, p2=%d, p3=%d\n",
333   - $this->property1,
334   - $this->property2,
335   - $this->property3);
336   - }
337   - function init($p1,$p2) {
338   - $this->property1 = $p1;
339   - $this->property2 = $p2;
340   - }
341   - };
342   -
343   - Here's how to create an object of that class:
344   -
345   - $obj = new simple_class;
346   -
347   - At this point, $obj is an object with 2 uninitialized variables, 1
348   - initialized variable, and 2 member functions. No protection is made on
349   - the internals of the object, and using its properties is simple:
350   -
351   - $obj->property1 = 7;
352   -
353   - would assign 7 to $property1 inside $obj. Calling member functions is
354   - also simple:
355   -
356   - $obj->display()
357   -
358   - would run the display() member function of $obj. Note that the
359   - implementation of display() uses the special variable $this, which is
360   - replaced with the object the function is called on.
361   -
362   - Inheritance is pretty simple too:
363   -
364   - class complex_class extends simple_class {
365   - var $property4="test";
366   -
367   - function display() {
368   - printf("p1=%d, p2=%d, p3=%d, p4=%d\n",
369   - $this->property1,
370   - $this->property2,
371   - $this->property3,
372   - $this->property4);
373   - }
374   - }
375   -
376   - Basically, the class complex_class inherits everything from its parent,
377   - simple_class, except properties or member functions which override the
378   - ones in the parent. In this example, since we supply an alternative
379   - display() function, it would be used with complex_class objects instead
380   - of the display() function that was declared in simple_class. On the other
381   - hand, since we don't supply an alternative init() function, complex_class
382   - objects would have the same init() function as simple_class objects do.
383   -
384   - As with expressions, it's impossible to teach OOP in a few lines, and
385   - personally I'm unclear as to how useful this would be in day to day
386   - scripting. If you like this, play with this until you figure it out :)
387   -
388   - Objects can reside in arrays, and can contain arrays. However,
389   - a limitation of the current implementation doesn't allow an object
390   - to contain an array of objects (actually, this is allowed, but
391   - there's no way to address the properties of such an object directly,
392   - but only indirectly). For example, assuming $a[3] is an object,
393   - $a[3]->b[2] is an object as well, you can't address the properties
394   - of $a[3]->b[2] (i.e. you can't write $a[3]->b[2]->foo = "bar", for
395   - instance).
396   -
397   -
398   -[7] Function pointers are now supported.
399   -
400   - A simple illustrative example:
401   -
402   - $func_ptr = "time";
403   - $current_time = $func_ptr();
404   -
405   - is identical to
406   -
407   - $current_time = time();
408   -
409   -
410   -[8] Indirect references are much more powerful.
411   -
412   - For example, one can use the dollar operator an infinite amount of times:
413   -
414   - $a = "b";
415   - $b = "c";
416   - $c = "d";
417   - $d = "e";
418   - $e = "Testing\n";
419   -
420   - echo $$$$$a;
421   -
422   - Would display $e's content, which is "Testing\n".
423   -
424   - In addition, one can use complex expressions to generate variable names
425   - using a perl-like notation:
426   -
427   - $i="123";
428   - ${"test".$i} = 5;
429   -
430   - would assign 5 to $test123.
431   -
432   -[9] A string concatenation operator was added, '+' no longer concatenates strings.
433   -
434   - A perl-like string concatenation operator was added, the '.' operator.
435   - It converts both of its arguments to strings, and concatenates them.
436   - For example:
437   -
438   - $result = "abcd".5;
439   -
440   - assigns "abcd5" to result. Note that under PHP 3.0, the '+' operator
441   - no longer performs concatenation if its arguments are strings. Use
442   - the '.' operator instead.
443   -
444   -[10] Supports passing function arguments by references instead of by value.
445   -
446   - Support for passing function arguments by reference instead of by value
447   - has been added. This doesn't result in having to change the function
448   - implementations in any way, but, when calling the function, you can
449   - decide on whether the variable you supply would actually be changed by
450   - the function, or a copy of it.
451   -
452   - Example:
453   -
454   - function inc($arg)
455   - {
456   - $arg++;
457   - }
458   -
459   - $i=0;
460   - inc($i); # here $i in the outer scope wouldn't change, and remain 0
461   - inc(&$i); # here $i is passed by reference, and would change to 1
462   -
463   -
464   -[11] Support for multidimensional arrays.
465   -
466   - (Or as Andi calls them, 'hyperdimensional variables'.)
467   -
468   - The easiest way to define this support of PHP 3.0 is inductive -
469   - arrays can contain any type of variables, including other arrays.
470   - A simple example:
471   -
472   - $a[0]=5;
473   - $a[1]["testing"]=17;
474   - $b["foo"]=$a;
475   -
476   - Ok, so it may be not so simple. Play with it, it's pretty powerful.
477   -
478   -
479   -[12] Array initialization is now supported.
480   -
481   - For example, let's say you want to initialize a lookup table to convert
482   - number to month names:
483   -
484   - $months = array("January", "February", "March",
485   - "April", "May", "June", "July", "August",
486   - "September", "October", "November", "December");
487   -
488   - would assign $months[0] to be January, $months[1] to be February, etc.
489   - Alternately, you may want the count to start at '1' instead of 0.
490   - You can do so easily:
491   -
492   - $months = array(1=>"January", "February", "March",
493   - "April", "May", "June", "July", "August",
494   - "September", "October", "November", "December");
495   -
496   - Also, you can specify an index for every entry, not just the first one:
497   -
498   - $first_names = array("Doe"=>"John", "Gates"=>"William",
499   - "Clinton"=>"Bill" });
500   -
501   - would assign $first_names["Doe"]="John", etc.
502   -
503   -
504   -[13] Perl style lists now supported.
505   -
506   - Multiple values from arrays may now be assigned into several
507   - variables using one assignment. For example:
508   -
509   - $str = "johndoe:x:555:555:Doe, John:/home/johndoe:/bin/tcsh";
510   -
511   - list($username,$passwd,$uid,$gid,$realname,$homedir,$shell) =
512   - explode(":",$str);
513   -
514   - Would assign 'johndoe' into $username, 'x' into $passwd, etc.
515   -
516   -
517   -[14] Colons are supported in 'case' and 'default' statements.
518   -
519   - For example:
520   -
521   - switch($value) {
522   - case 'A':
523   - statement;
524   - break;
525   - case 'B':
526   - statement;
527   - break;
528   - case 'C':
529   - statement;
530   - /* fall-through */
531   - default:
532   - statement;
533   - }
534   -
535   - Semicolons are still supported, but when writing new scripts, they
536   - should be phased out in favour of colons.
537   -
538   -
539   -------------------------------------------------------------------------------
540   -
541   -
542   -Non Language Related New Features
543   -=================================
544   -
545   -[1] Persistent resource lists.
546   -
547   - In plain english this means that there's now an easy way of writing the
548   - SQL drivers so that they don't open and close the SQL link every time,
549   - but instead open it the first time it's required, and then use it on
550   - every later hit. As of PHP 3.0a1, only the MySQL, mSQL and PostgresSQL
551   - drivers have been changed (rewritten) to take advantage of this option.
552   - To use it, use mysql_pconnect() instead of mysql_connect() (or the
553   - equivalents for the two other databases).
554   -
555   -
556   -[2] Configuration file.
557   -
558   - PHP now has its own configuration file, and many compile-time options
559   - of PHP2 are now configurable at runtime.
560   -
561   -
562   -[3] Syntax Highlighting.
563   -
564   - A syntax highlighter has been built into PHP 3.0, which means PHP 3.0 can
565   - display your code, syntax highlighted, instead of executing it.
566   - There are currently two ways to use the syntax highlighter. One is to
567   - use the show_source() statement. This statement is identical to the
568   - include() statement, except instead of executing the file, it displays
569   - its source syntax highlighted.
570   - The second way is possible only when running as an apache module, and is
571   - to define a special extension for PHP 3.0 source files (e.g. .php3s)
572   - and instruct apache to automatically syntax highlight them.
573   -
574   -
575   -[4] Loadable modules.
576   -
577   - This would have a huge impact on the Windows version, and would probably
578   - be used in the UNIX environment as well. One can now add PHP internal
579   - functions in runtime by loading a dynamic module. This is known to work
580   - under Solaris, Linux and Win32 at this time, but would be ported to any
581   - other capable platform if an incompatability is found.
582   -
583   -
584   -------------------------------------------------------------------------------
585   -
586   -
587   -Other Interesting Issues
588   -========================
589   -
590   -
591   -[1] Improved performance.
592   -
593   - The performance of PHP 3.0 is much better than the one of PHP/FI 2.0.
594   - Memory consumption has been dramatically reduced in many cases, due
595   - to the use of an internal memory manager, instead of apache's pools.
596   - Speedwise, PHP 3.0 is somewhere between 2 and 3 times faster than
597   - PHP/FI 2.0.
598   -
599   -
600   -[2] More reliable parser.
601   -
602   - After PHP 3.0 is well tested, it'll be pretty safe to say that it's
603   - more reliable than PHP/FI 2.0 is. While PHP/FI 2.0 performed well on
604   - simple, and fairly complex scripts, a fundamental design difference
605   - from PHP 3.0 makes it more prone to errors. In PHP 3.0, obscure parser
606   - problems are much less likely.
607   -
608   -
609   -[3] Improved C API.
610   -
611   - If you're a C coder, adding functionality to PHP was never easier.
612   - A pretty well documented API is available (apidoc.txt), and you no longer
613   - have to touch the parser or scanner code when adding your function.
614   - Also, it's more complicated to 'go wrong' when implementing a PHP3
615   - function than it was in PHP2 (no stack to maintain) - but of course,
616   - you can mess up here too :)
617   -
618   -
619   -[4] Name change.
620   -
621   - PHP/FI 2.0 was renamed to PHP 3.0, and the meaning has changed from
622   - 'Personal Home Pages / Forms Interpreter' to 'PHP: Hypertext Preprocessor'.
623   - 'Personal' home pages was an understatement for PHP/FI 2.0, and is
624   - definitely an understatement for PHP 3.0.
149 CODING_STANDARDS
... ... @@ -1,149 +0,0 @@
1   -PHP Coding Standards
2   -====================
3   -
4   -
5   -This file lists several standards that any programmer, adding or changing
6   -code in PHP, should follow. Since this file was added at a very late
7   -stage of the development of PHP v3.0, the code base does not (yet) fully
8   -follow it, but it's going in that general direction.
9   -This is an initial version - it'll most probably grow as time passes.
10   -
11   -
12   -Code Implementation
13   --------------------
14   -
15   -[1] Functions that are given pointers to resources should not free them
16   -
17   -For instance, function int mail(char *to, char *from) should NOT free
18   -to and/or from.
19   -Exceptions:
20   -
21   - - The function's designated behavior is freeing that resource. E.g. efree()
22   - - The function is given a boolean argument, that controls whether or not
23   - the function may free its arguments (if true - the function must free its
24   - arguments, if false - it must not)
25   - - Low-level parser routines, that are tightly integrated with the token
26   - cache and the bison code for minimum memory copying overhead.
27   -
28   -[2] Functions that are tightly integrated with other functions within the
29   - same module, and rely on each other non-trivial behavior, should be
30   - documented as such and declared 'static'. They should be avoided if
31   - possible.
32   -
33   -[3] Use definitions and macros whenever possible, so that constants have
34   - meaningful names and can be easily manipulated. The only exceptions
35   - to this rule are 0 and 1, when used as false and true (respectively).
36   - Any other use of a numeric constant to specify different behavior
37   - or actions should be done through a #define.
38   -
39   -[4] When writing functions that deal with strings, be sure to remember
40   - that PHP holds the length property of each string, and that it
41   - shouldn't be calculated with strlen(). Write your functions in a such
42   - a way so that they'll take advantage of the length property, both
43   - for efficiency and in order for them to be binary-safe.
44   - Functions that change strings and obtain their new lengths while
45   - doing so, should return that new length, so it doesn't have to be
46   - recalculated with strlen() (e.g. _php3_addslashes())
47   -
48   -[5] Use php3_error() to report any errors/warnings during code execution.
49   - Use descriptive error messages, and try to avoid using identical
50   - error strings for different stages of an error. For example,
51   - if in order to obtain a URL you have to parse the URL, connect,
52   - and retreive the text, assuming something can go wrong at each
53   - of these stages, don't report an error "Unable to get URL"
54   - on all of them, but instead, write something like "Unable
55   - to parse URL", "Unable to connect to URL server" and "Unable
56   - to fetch URL text", respectively.
57   -
58   -[6] NEVER USE strncat(). If you're absolutely sure you know what you're doing,
59   - check its man page again, and only then, consider using it, and even then,
60   - try avoiding it.
61   -
62   -
63   -Naming Conventions
64   -------------------
65   -
66   -[1] Function names for user functions implementation should be prefixed with
67   - "php3_", and followed by a word or an underscore-delimited list of words,
68   - in lowercase letters, that describes the function.
69   -
70   -[2] Function names used by user functions implementations should be prefixed
71   - with "_php3_", and followed by a word or an underscore-delimited list of
72   - words, in lowercase letters, that describes the function. If applicable,
73   - they should be declared 'static'.
74   -
75   -[3] Variable names must be meaningful. One letter variable names must be
76   - avoided, except for places where the variable has no real meaning or
77   - a trivial meaning (e.g. for (i=0; i<100; i++) ...).
78   -
79   -[4] Variable names should be in lowercase; Use underscores to seperate
80   - between words.
81   -
82   -
83   -
84   -Syntax and indentation
85   -----------------------
86   -
87   -[1] Never use C++ style comments (i.e. // comment). Always use C-style
88   - comments instead. PHP is written in C, and is aimed at compiling
89   - under any ANSI-C compliant compiler. Even though many compilers
90   - accept C++-style comments in C code, you have to ensure that your
91   - code would compile with other compilers as well.
92   - The only exception to this rule is code that is Win32-specific,
93   - because the Win32 port is MS-Visual C++ specific, and this compiler
94   - is known to accept C++-style comments in C code.
95   -
96   -[2] Use K&R-style. Of course, we can't and don't want to
97   - force anybody to use a style she's not used to, but
98   - at the very least, when you write code that goes into the core
99   - of PHP or one of its standard modules, please maintain the K&R
100   - style. This applies to just about everything, starting with
101   - indentation and comment styles and up to function decleration
102   - syntax.
103   -
104   -[3] Be generous with whitespace and braces. Always prefer
105   - if (foo) {
106   - bar;
107   - }
108   - to
109   - if(foo)bar;
110   -
111   - Keep one empty line between the variable decleration section and
112   - the statements in a block, as well as between logical statement
113   - groups in a block. Maintain at least one empty line between
114   - two functions, preferably two.
115   -
116   -Documentation and Folding Hooks
117   --------------------------------
118   -
119   -In order to make sure that the online documentation stays in line with
120   -the code, each user-level function should have its user-level function
121   -prototype before it along with a brief one-line description of what the
122   -function does. It would look like this:
123   -
124   -/* {{{ proto int abs(int number)
125   - Return the absolute value of the number */
126   -void php3_abs(INTERNAL_FUNCTION_PARAMETERS) {
127   - ...
128   -}
129   -/* }}} */
130   -
131   -The {{{ symbols are the default folding symbols for the folding mode in
132   -Emacs. vim will soon have support for folding as well. Folding is very
133   -useful when dealing with large files because you can scroll through the
134   -file quickly and just unfold the function you wish to work on. The }}}
135   -at the end of each function marks the end of the fold, and should be on
136   -a separate line.
137   -
138   -The "proto" keyword there is just a helper for the doc/genfuncsummary script
139   -which generates a full function summary. Having this keyword in front of the
140   -function prototypes allows us to put folds elsewhere in the code without
141   -messing up the function summary.
142   -
143   -Optional arguments are written like this:
144   -
145   -/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
146   -
147   -And yes, please keep everything on a single line, even if that line is massive.
148   -
149   -
339 COPYING
... ... @@ -1,339 +0,0 @@
1   - GNU GENERAL PUBLIC LICENSE
2   - Version 2, June 1991
3   -
4   - Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5   - 675 Mass Ave, Cambridge, MA 02139, USA
6   - Everyone is permitted to copy and distribute verbatim copies
7   - of this license document, but changing it is not allowed.
8   -
9   - Preamble
10   -
11   - The licenses for most software are designed to take away your
12   -freedom to share and change it. By contrast, the GNU General Public
13   -License is intended to guarantee your freedom to share and change free
14   -software--to make sure the software is free for all its users. This
15   -General Public License applies to most of the Free Software
16   -Foundation's software and to any other program whose authors commit to
17   -using it. (Some other Free Software Foundation software is covered by
18   -the GNU Library General Public License instead.) You can apply it to
19   -your programs, too.
20   -
21   - When we speak of free software, we are referring to freedom, not
22   -price. Our General Public Licenses are designed to make sure that you
23   -have the freedom to distribute copies of free software (and charge for
24   -this service if you wish), that you receive source code or can get it
25   -if you want it, that you can change the software or use pieces of it
26   -in new free programs; and that you know you can do these things.
27   -
28   - To protect your rights, we need to make restrictions that forbid
29   -anyone to deny you these rights or to ask you to surrender the rights.
30   -These restrictions translate to certain responsibilities for you if you
31   -distribute copies of the software, or if you modify it.
32   -
33   - For example, if you distribute copies of such a program, whether
34   -gratis or for a fee, you must give the recipients all the rights that
35   -you have. You must make sure that they, too, receive or can get the
36   -source code. And you must show them these terms so they know their
37   -rights.
38   -
39   - We protect your rights with two steps: (1) copyright the software, and
40   -(2) offer you this license which gives you legal permission to copy,
41   -distribute and/or modify the software.
42   -
43   - Also, for each author's protection and ours, we want to make certain
44   -that everyone understands that there is no warranty for this free
45   -software. If the software is modified by someone else and passed on, we
46   -want its recipients to know that what they have is not the original, so
47   -that any problems introduced by others will not reflect on the original
48   -authors' reputations.
49   -
50   - Finally, any free program is threatened constantly by software
51   -patents. We wish to avoid the danger that redistributors of a free
52   -program will individually obtain patent licenses, in effect making the
53   -program proprietary. To prevent this, we have made it clear that any
54   -patent must be licensed for everyone's free use or not licensed at all.
55   -
56   - The precise terms and conditions for copying, distribution and
57   -modification follow.
58   -
59   - GNU GENERAL PUBLIC LICENSE
60   - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61   -
62   - 0. This License applies to any program or other work which contains
63   -a notice placed by the copyright holder saying it may be distributed
64   -under the terms of this General Public License. The "Program", below,
65   -refers to any such program or work, and a "work based on the Program"
66   -means either the Program or any derivative work under copyright law:
67   -that is to say, a work containing the Program or a portion of it,
68   -either verbatim or with modifications and/or translated into another
69   -language. (Hereinafter, translation is included without limitation in
70   -the term "modification".) Each licensee is addressed as "you".
71   -
72   -Activities other than copying, distribution and modification are not
73   -covered by this License; they are outside its scope. The act of
74   -running the Program is not restricted, and the output from the Program
75   -is covered only if its contents constitute a work based on the
76   -Program (independent of having been made by running the Program).
77   -Whether that is true depends on what the Program does.
78   -
79   - 1. You may copy and distribute verbatim copies of the Program's
80   -source code as you receive it, in any medium, provided that you
81   -conspicuously and appropriately publish on each copy an appropriate
82   -copyright notice and disclaimer of warranty; keep intact all the
83   -notices that refer to this License and to the absence of any warranty;
84   -and give any other recipients of the Program a copy of this License
85   -along with the Program.
86   -
87   -You may charge a fee for the physical act of transferring a copy, and
88   -you may at your option offer warranty protection in exchange for a fee.
89   -
90   - 2. You may modify your copy or copies of the Program or any portion
91   -of it, thus forming a work based on the Program, and copy and
92   -distribute such modifications or work under the terms of Section 1
93   -above, provided that you also meet all of these conditions:
94   -
95   - a) You must cause the modified files to carry prominent notices
96   - stating that you changed the files and the date of any change.
97   -
98   - b) You must cause any work that you distribute or publish, that in
99   - whole or in part contains or is derived from the Program or any
100   - part thereof, to be licensed as a whole at no charge to all third
101   - parties under the terms of this License.
102   -
103   - c) If the modified program normally reads commands interactively
104   - when run, you must cause it, when started running for such
105   - interactive use in the most ordinary way, to print or display an
106   - announcement including an appropriate copyright notice and a
107   - notice that there is no warranty (or else, saying that you provide
108   - a warranty) and that users may redistribute the program under
109   - these conditions, and telling the user how to view a copy of this
110   - License. (Exception: if the Program itself is interactive but
111   - does not normally print such an announcement, your work based on
112   - the Program is not required to print an announcement.)
113   -
114   -These requirements apply to the modified work as a whole. If
115   -identifiable sections of that work are not derived from the Program,
116   -and can be reasonably considered independent and separate works in
117   -themselves, then this License, and its terms, do not apply to those
118   -sections when you distribute them as separate works. But when you
119   -distribute the same sections as part of a whole which is a work based
120   -on the Program, the distribution of the whole must be on the terms of
121   -this License, whose permissions for other licensees extend to the
122   -entire whole, and thus to each and every part regardless of who wrote it.
123   -
124   -Thus, it is not the intent of this section to claim rights or contest
125   -your rights to work written entirely by you; rather, the intent is to
126   -exercise the right to control the distribution of derivative or
127   -collective works based on the Program.
128   -
129   -In addition, mere aggregation of another work not based on the Program
130   -with the Program (or with a work based on the Program) on a volume of
131   -a storage or distribution medium does not bring the other work under
132   -the scope of this License.
133   -
134   - 3. You may copy and distribute the Program (or a work based on it,
135   -under Section 2) in object code or executable form under the terms of
136   -Sections 1 and 2 above provided that you also do one of the following:
137   -
138   - a) Accompany it with the complete corresponding machine-readable
139   - source code, which must be distributed under the terms of Sections
140   - 1 and 2 above on a medium customarily used for software interchange; or,
141   -
142   - b) Accompany it with a written offer, valid for at least three
143   - years, to give any third party, for a charge no more than your
144   - cost of physically performing source distribution, a complete
145   - machine-readable copy of the corresponding source code, to be
146   - distributed under the terms of Sections 1 and 2 above on a medium
147   - customarily used for software interchange; or,
148   -
149   - c) Accompany it with the information you received as to the offer
150   - to distribute corresponding source code. (This alternative is
151   - allowed only for noncommercial distribution and only if you
152   - received the program in object code or executable form with such
153   - an offer, in accord with Subsection b above.)
154   -
155   -The source code for a work means the preferred form of the work for
156   -making modifications to it. For an executable work, complete source
157   -code means all the source code for all modules it contains, plus any
158   -associated interface definition files, plus the scripts used to
159   -control compilation and installation of the executable. However, as a
160   -special exception, the source code distributed need not include
161   -anything that is normally distributed (in either source or binary
162   -form) with the major components (compiler, kernel, and so on) of the
163   -operating system on which the executable runs, unless that component
164   -itself accompanies the executable.
165   -
166   -If distribution of executable or object code is made by offering
167   -access to copy from a designated place, then offering equivalent
168   -access to copy the source code from the same place counts as
169   -distribution of the source code, even though third parties are not
170   -compelled to copy the source along with the object code.
171   -
172   - 4. You may not copy, modify, sublicense, or distribute the Program
173   -except as expressly provided under this License. Any attempt
174   -otherwise to copy, modify, sublicense or distribute the Program is
175   -void, and will automatically terminate your rights under this License.
176   -However, parties who have received copies, or rights, from you under
177   -this License will not have their licenses terminated so long as such
178   -parties remain in full compliance.
179   -
180   - 5. You are not required to accept this License, since you have not
181   -signed it. However, nothing else grants you permission to modify or
182   -distribute the Program or its derivative works. These actions are
183   -prohibited by law if you do not accept this License. Therefore, by
184   -modifying or distributing the Program (or any work based on the
185   -Program), you indicate your acceptance of this License to do so, and
186   -all its terms and conditions for copying, distributing or modifying
187   -the Program or works based on it.
188   -
189   - 6. Each time you redistribute the Program (or any work based on the
190   -Program), the recipient automatically receives a license from the
191   -original licensor to copy, distribute or modify the Program subject to
192   -these terms and conditions. You may not impose any further
193   -restrictions on the recipients' exercise of the rights granted herein.
194   -You are not responsible for enforcing compliance by third parties to
195   -this License.
196   -
197   - 7. If, as a consequence of a court judgment or allegation of patent
198   -infringement or for any other reason (not limited to patent issues),
199   -conditions are imposed on you (whether by court order, agreement or
200   -otherwise) that contradict the conditions of this License, they do not
201   -excuse you from the conditions of this License. If you cannot
202   -distribute so as to satisfy simultaneously your obligations under this
203   -License and any other pertinent obligations, then as a consequence you
204   -may not distribute the Program at all. For example, if a patent
205   -license would not permit royalty-free redistribution of the Program by
206   -all those who receive copies directly or indirectly through you, then
207   -the only way you could satisfy both it and this License would be to
208   -refrain entirely from distribution of the Program.
209   -
210   -If any portion of this section is held invalid or unenforceable under
211   -any particular circumstance, the balance of the section is intended to
212   -apply and the section as a whole is intended to apply in other
213   -circumstances.
214   -
215   -It is not the purpose of this section to induce you to infringe any
216   -patents or other property right claims or to contest validity of any
217   -such claims; this section has the sole purpose of protecting the
218   -integrity of the free software distribution system, which is
219   -implemented by public license practices. Many people have made
220   -generous contributions to the wide range of software distributed
221   -through that system in reliance on consistent application of that
222   -system; it is up to the author/donor to decide if he or she is willing
223   -to distribute software through any other system and a licensee cannot
224   -impose that choice.
225   -
226   -This section is intended to make thoroughly clear what is believed to
227   -be a consequence of the rest of this License.
228   -
229   - 8. If the distribution and/or use of the Program is restricted in
230   -certain countries either by patents or by copyrighted interfaces, the
231   -original copyright holder who places the Program under this License
232   -may add an explicit geographical distribution limitation excluding
233   -those countries, so that distribution is permitted only in or among
234   -countries not thus excluded. In such case, this License incorporates
235   -the limitation as if written in the body of this License.
236   -
237   - 9. The Free Software Foundation may publish revised and/or new versions
238   -of the General Public License from time to time. Such new versions will
239   -be similar in spirit to the present version, but may differ in detail to
240   -address new problems or concerns.
241   -
242   -Each version is given a distinguishing version number. If the Program
243   -specifies a version number of this License which applies to it and "any
244   -later version", you have the option of following the terms and conditions
245   -either of that version or of any later version published by the Free
246   -Software Foundation. If the Program does not specify a version number of
247   -this License, you may choose any version ever published by the Free Software
248   -Foundation.
249   -
250   - 10. If you wish to incorporate parts of the Program into other free
251   -programs whose distribution conditions are different, write to the author
252   -to ask for permission. For software which is copyrighted by the Free
253   -Software Foundation, write to the Free Software Foundation; we sometimes
254   -make exceptions for this. Our decision will be guided by the two goals
255   -of preserving the free status of all derivatives of our free software and
256   -of promoting the sharing and reuse of software generally.
257   -
258   - NO WARRANTY
259   -
260   - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261   -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262   -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263   -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264   -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265   -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266   -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267   -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268   -REPAIR OR CORRECTION.
269   -
270   - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271   -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272   -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273   -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274   -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275   -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276   -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277   -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278   -POSSIBILITY OF SUCH DAMAGES.
279   -
280   - END OF TERMS AND CONDITIONS
281   -
282   - Appendix: How to Apply These Terms to Your New Programs
283   -
284   - If you develop a new program, and you want it to be of the greatest
285   -possible use to the public, the best way to achieve this is to make it
286   -free software which everyone can redistribute and change under these terms.
287   -
288   - To do so, attach the following notices to the program. It is safest
289   -to attach them to the start of each source file to most effectively
290   -convey the exclusion of warranty; and each file should have at least
291   -the "copyright" line and a pointer to where the full notice is found.
292   -
293   - <one line to give the program's name and a brief idea of what it does.>
294   - Copyright (C) 19yy <name of author>
295   -
296   - This program is free software; you can redistribute it and/or modify
297   - it under the terms of the GNU General Public License as published by
298   - the Free Software Foundation; either version 2 of the License, or
299   - (at your option) any later version.
300   -
301   - This program is distributed in the hope that it will be useful,
302   - but WITHOUT ANY WARRANTY; without even the implied warranty of
303   - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304   - GNU General Public License for more details.
305   -
306   - You should have received a copy of the GNU General Public License
307   - along with this program; if not, write to the Free Software
308   - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
309   -
310   -Also add information on how to contact you by electronic and paper mail.
311   -
312   -If the program is interactive, make it output a short notice like this
313   -when it starts in an interactive mode:
314   -
315   - Gnomovision version 69, Copyright (C) 19yy name of author
316   - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317   - This is free software, and you are welcome to redistribute it
318   - under certain conditions; type `show c' for details.
319   -
320   -The hypothetical commands `show w' and `show c' should show the appropriate
321   -parts of the General Public License. Of course, the commands you use may
322   -be called something other than `show w' and `show c'; they could even be
323   -mouse-clicks or menu items--whatever suits your program.
324   -
325   -You should also get your employer (if you work as a programmer) or your
326   -school, if any, to sign a "copyright disclaimer" for the program, if
327   -necessary. Here is a sample; alter the names:
328   -
329   - Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330   - `Gnomovision' (which makes passes at compilers) written by James Hacker.
331   -
332   - <signature of Ty Coon>, 1 April 1989
333   - Ty Coon, President of Vice
334   -
335   -This General Public License does not permit incorporating your program into
336   -proprietary programs. If your program is a subroutine library, you may
337   -consider it more useful to permit linking proprietary applications with the
338   -library. If this is what you want to do, use the GNU Library General
339   -Public License instead of this License.
176 CREDITS
... ... @@ -1,176 +0,0 @@
1   -PHP Version 3.0 Development Team
2   -