PHP7 compatibility fixes.
[fa-stable.git] / reporting / includes / fpdi / pdf_context.php
1 <?php
2 //
3 //  FPDI - Version 1.2.1
4 //
5 //    Copyright 2004-2008 Setasign - Jan Slabon
6 //
7 //  Licensed under the Apache License, Version 2.0 (the "License");
8 //  you may not use this file except in compliance with the License.
9 //  You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 //  Unless required by applicable law or agreed to in writing, software
14 //  distributed under the License is distributed on an "AS IS" BASIS,
15 //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 //  See the License for the specific language governing permissions and
17 //  limitations under the License.
18 //
19
20 class pdf_context {
21
22         var $file;
23         var $buffer;
24         var $offset;
25         var $length;
26
27         var $stack;
28
29         // Constructor
30
31         function __construct($f) {
32                 $this->file = $f;
33                 $this->reset();
34         }
35
36         // Optionally move the file
37         // pointer to a new location
38         // and reset the buffered data
39
40         function reset($pos = null, $l = 100) {
41                 if (!is_null ($pos)) {
42                         fseek ($this->file, $pos);
43                 }
44
45                 $this->buffer = $l > 0 ? fread($this->file, $l) : '';
46                 $this->length = strlen($this->buffer);
47                 if ($this->length < $l)
48             $this->increase_length($l - $this->length);
49                 $this->offset = 0;
50                 $this->stack = array();
51         }
52
53         // Make sure that there is at least one
54         // character beyond the current offset in
55         // the buffer to prevent the tokenizer
56         // from attempting to access data that does
57         // not exist
58
59         function ensure_content() {
60                 if ($this->offset >= $this->length - 1) {
61                         return $this->increase_length();
62                 } else {
63                         return true;
64                 }
65         }
66
67         // Forcefully read more data into the buffer
68
69         function increase_length($l=100) {
70                 if (feof($this->file)) {
71                         return false;
72                 } else {
73                         $totalLength = $this->length + $l;
74                     do {
75                 $this->buffer .= fread($this->file, $totalLength-$this->length);
76             } while ((($this->length = strlen($this->buffer)) != $totalLength) && !feof($this->file));
77                         
78                         return true;
79                 }
80         }
81
82 }