GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — develop (#1959)
by
unknown
13:47
created
libs/PEAR.1.9/PEAR5.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -5,29 +5,29 @@
 block discarded – undo
5 5
  */
6 6
 class PEAR5
7 7
 {
8
-    /**
9
-    * If you have a class that's mostly/entirely static, and you need static
10
-    * properties, you can use this method to simulate them. Eg. in your method(s)
11
-    * do this: $myVar = &PEAR5::getStaticProperty('myclass', 'myVar');
12
-    * You MUST use a reference, or they will not persist!
13
-    *
14
-    * @access public
15
-    * @param  string $class  The calling classname, to prevent clashes
16
-    * @param  string $var    The variable to retrieve.
17
-    * @return mixed   A reference to the variable. If not set it will be
18
-    *                 auto initialised to NULL.
19
-    */
20
-    static function &getStaticProperty($class, $var)
21
-    {
22
-        static $properties;
23
-        if (!isset($properties[$class])) {
24
-            $properties[$class] = array();
25
-        }
8
+	/**
9
+	 * If you have a class that's mostly/entirely static, and you need static
10
+	 * properties, you can use this method to simulate them. Eg. in your method(s)
11
+	 * do this: $myVar = &PEAR5::getStaticProperty('myclass', 'myVar');
12
+	 * You MUST use a reference, or they will not persist!
13
+	 *
14
+	 * @access public
15
+	 * @param  string $class  The calling classname, to prevent clashes
16
+	 * @param  string $var    The variable to retrieve.
17
+	 * @return mixed   A reference to the variable. If not set it will be
18
+	 *                 auto initialised to NULL.
19
+	 */
20
+	static function &getStaticProperty($class, $var)
21
+	{
22
+		static $properties;
23
+		if (!isset($properties[$class])) {
24
+			$properties[$class] = array();
25
+		}
26 26
 
27
-        if (!array_key_exists($var, $properties[$class])) {
28
-            $properties[$class][$var] = null;
29
-        }
27
+		if (!array_key_exists($var, $properties[$class])) {
28
+			$properties[$class][$var] = null;
29
+		}
30 30
 
31
-        return $properties[$class][$var];
32
-    }
31
+		return $properties[$class][$var];
32
+	}
33 33
 }
34 34
\ No newline at end of file
Please login to merge, or discard this patch.
libs/PEAR/Net/Socket.php 2 patches
Indentation   +490 added lines, -490 removed lines patch added patch discarded remove patch
@@ -34,495 +34,495 @@
 block discarded – undo
34 34
  */
35 35
 class Net_Socket extends PEAR {
36 36
 
37
-    /**
38
-     * Socket file pointer.
39
-     * @var resource $fp
40
-     */
41
-    var $fp = null;
42
-
43
-    /**
44
-     * Whether the socket is blocking. Defaults to true.
45
-     * @var boolean $blocking
46
-     */
47
-    var $blocking = true;
48
-
49
-    /**
50
-     * Whether the socket is persistent. Defaults to false.
51
-     * @var boolean $persistent
52
-     */
53
-    var $persistent = false;
54
-
55
-    /**
56
-     * The IP address to connect to.
57
-     * @var string $addr
58
-     */
59
-    var $addr = '';
60
-
61
-    /**
62
-     * The port number to connect to.
63
-     * @var integer $port
64
-     */
65
-    var $port = 0;
66
-
67
-    /**
68
-     * Number of seconds to wait on socket connections before assuming
69
-     * there's no more data. Defaults to no timeout.
70
-     * @var integer $timeout
71
-     */
72
-    var $timeout = false;
73
-
74
-    /**
75
-     * Number of bytes to read at a time in readLine() and
76
-     * readAll(). Defaults to 2048.
77
-     * @var integer $lineLength
78
-     */
79
-    var $lineLength = 2048;
80
-
81
-    /**
82
-     * Connect to the specified port. If called when the socket is
83
-     * already connected, it disconnects and connects again.
84
-     *
85
-     * @param string  $addr        IP address or host name.
86
-     * @param integer $port        TCP port number.
87
-     * @param boolean $persistent  (optional) Whether the connection is
88
-     *                             persistent (kept open between requests
89
-     *                             by the web server).
90
-     * @param integer $timeout     (optional) How long to wait for data.
91
-     * @param array   $options     See options for stream_context_create.
92
-     *
93
-     * @access public
94
-     *
95
-     * @return boolean | PEAR_Error  True on success or a PEAR_Error on failure.
96
-     */
97
-    function connect($addr, $port = 0, $persistent = null, $timeout = null, $options = null)
98
-    {
99
-        if (is_resource($this->fp)) {
100
-            @fclose($this->fp);
101
-            $this->fp = null;
102
-        }
103
-
104
-        if (!$addr) {
105
-            return $this->raiseError('$addr cannot be empty');
106
-        } elseif (strspn($addr, '.0123456789') == strlen($addr) ||
107
-                  strstr($addr, '/') !== false) {
108
-            $this->addr = $addr;
109
-        } else {
110
-            $this->addr = @gethostbyname($addr);
111
-        }
112
-
113
-        $this->port = $port % 65536;
114
-
115
-        if ($persistent !== null) {
116
-            $this->persistent = $persistent;
117
-        }
118
-
119
-        if ($timeout !== null) {
120
-            $this->timeout = $timeout;
121
-        }
122
-
123
-        $openfunc = $this->persistent ? 'pfsockopen' : 'fsockopen';
124
-        $errno = 0;
125
-        $errstr = '';
126
-        if ($options && function_exists('stream_context_create')) {
127
-            if ($this->timeout) {
128
-                $timeout = $this->timeout;
129
-            } else {
130
-                $timeout = 0;
131
-            }
132
-            $context = stream_context_create($options);
133
-            $fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $timeout, $context);
134
-        } else {
135
-            if ($this->timeout) {
136
-                $fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $this->timeout);
137
-            } else {
138
-                $fp = @$openfunc($this->addr, $this->port, $errno, $errstr);
139
-            }
140
-        }
141
-
142
-        if (!$fp) {
143
-            return $this->raiseError($errstr, $errno);
144
-        }
145
-
146
-        $this->fp = $fp;
147
-
148
-        return $this->setBlocking($this->blocking);
149
-    }
150
-
151
-    /**
152
-     * Disconnects from the peer, closes the socket.
153
-     *
154
-     * @access public
155
-     * @return mixed true on success or an error object otherwise
156
-     */
157
-    function disconnect()
158
-    {
159
-        if (!is_resource($this->fp)) {
160
-            return $this->raiseError('not connected');
161
-        }
162
-
163
-        @fclose($this->fp);
164
-        $this->fp = null;
165
-        return true;
166
-    }
167
-
168
-    /**
169
-     * Find out if the socket is in blocking mode.
170
-     *
171
-     * @access public
172
-     * @return boolean  The current blocking mode.
173
-     */
174
-    function isBlocking()
175
-    {
176
-        return $this->blocking;
177
-    }
178
-
179
-    /**
180
-     * Sets whether the socket connection should be blocking or
181
-     * not. A read call to a non-blocking socket will return immediately
182
-     * if there is no data available, whereas it will block until there
183
-     * is data for blocking sockets.
184
-     *
185
-     * @param boolean $mode  True for blocking sockets, false for nonblocking.
186
-     * @access public
187
-     * @return mixed true on success or an error object otherwise
188
-     */
189
-    function setBlocking($mode)
190
-    {
191
-        if (!is_resource($this->fp)) {
192
-            return $this->raiseError('not connected');
193
-        }
194
-
195
-        $this->blocking = $mode;
196
-        socket_set_blocking($this->fp, $this->blocking);
197
-        return true;
198
-    }
199
-
200
-    /**
201
-     * Sets the timeout value on socket descriptor,
202
-     * expressed in the sum of seconds and microseconds
203
-     *
204
-     * @param integer $seconds  Seconds.
205
-     * @param integer $microseconds  Microseconds.
206
-     * @access public
207
-     * @return mixed true on success or an error object otherwise
208
-     */
209
-    function setTimeout($seconds, $microseconds)
210
-    {
211
-        if (!is_resource($this->fp)) {
212
-            return $this->raiseError('not connected');
213
-        }
214
-
215
-        return socket_set_timeout($this->fp, $seconds, $microseconds);
216
-    }
217
-
218
-    /**
219
-     * Returns information about an existing socket resource.
220
-     * Currently returns four entries in the result array:
221
-     *
222
-     * <p>
223
-     * timed_out (bool) - The socket timed out waiting for data<br>
224
-     * blocked (bool) - The socket was blocked<br>
225
-     * eof (bool) - Indicates EOF event<br>
226
-     * unread_bytes (int) - Number of bytes left in the socket buffer<br>
227
-     * </p>
228
-     *
229
-     * @access public
230
-     * @return mixed Array containing information about existing socket resource or an error object otherwise
231
-     */
232
-    function getStatus()
233
-    {
234
-        if (!is_resource($this->fp)) {
235
-            return $this->raiseError('not connected');
236
-        }
237
-
238
-        return socket_get_status($this->fp);
239
-    }
240
-
241
-    /**
242
-     * Get a specified line of data
243
-     *
244
-     * @access public
245
-     * @return $size bytes of data from the socket, or a PEAR_Error if
246
-     *         not connected.
247
-     */
248
-    function gets($size)
249
-    {
250
-        if (!is_resource($this->fp)) {
251
-            return $this->raiseError('not connected');
252
-        }
253
-
254
-        return @fgets($this->fp, $size);
255
-    }
256
-
257
-    /**
258
-     * Read a specified amount of data. This is guaranteed to return,
259
-     * and has the added benefit of getting everything in one fread()
260
-     * chunk; if you know the size of the data you're getting
261
-     * beforehand, this is definitely the way to go.
262
-     *
263
-     * @param integer $size  The number of bytes to read from the socket.
264
-     * @access public
265
-     * @return $size bytes of data from the socket, or a PEAR_Error if
266
-     *         not connected.
267
-     */
268
-    function read($size)
269
-    {
270
-        if (!is_resource($this->fp)) {
271
-            return $this->raiseError('not connected');
272
-        }
273
-
274
-        return @fread($this->fp, $size);
275
-    }
276
-
277
-    /**
278
-     * Write a specified amount of data.
279
-     *
280
-     * @param string  $data       Data to write.
281
-     * @param integer $blocksize  Amount of data to write at once.
282
-     *                            NULL means all at once.
283
-     *
284
-     * @access public
285
-     * @return mixed true on success or an error object otherwise
286
-     */
287
-    function write($data, $blocksize = null)
288
-    {
289
-        if (!is_resource($this->fp)) {
290
-            return $this->raiseError('not connected');
291
-        }
292
-
293
-        if (is_null($blocksize) && !OS_WINDOWS) {
294
-            return fwrite($this->fp, $data);
295
-        } else {
296
-            if (is_null($blocksize)) {
297
-                $blocksize = 1024;
298
-            }
299
-
300
-            $pos = 0;
301
-            $size = strlen($data);
302
-            while ($pos < $size) {
303
-                $written = @fwrite($this->fp, substr($data, $pos, $blocksize));
304
-                if ($written === false) {
305
-                    return false;
306
-                }
307
-                $pos += $written;
308
-            }
309
-
310
-            return $pos;
311
-        }
312
-    }
313
-
314
-    /**
315
-     * Write a line of data to the socket, followed by a trailing "\r\n".
316
-     *
317
-     * @access public
318
-     * @return mixed fputs result, or an error
319
-     */
320
-    function writeLine($data)
321
-    {
322
-        if (!is_resource($this->fp)) {
323
-            return $this->raiseError('not connected');
324
-        }
325
-
326
-        return fwrite($this->fp, $data . "\r\n");
327
-    }
328
-
329
-    /**
330
-     * Tests for end-of-file on a socket descriptor.
331
-     *
332
-     * @access public
333
-     * @return bool
334
-     */
335
-    function eof()
336
-    {
337
-        return (is_resource($this->fp) && feof($this->fp));
338
-    }
339
-
340
-    /**
341
-     * Reads a byte of data
342
-     *
343
-     * @access public
344
-     * @return 1 byte of data from the socket, or a PEAR_Error if
345
-     *         not connected.
346
-     */
347
-    function readByte()
348
-    {
349
-        if (!is_resource($this->fp)) {
350
-            return $this->raiseError('not connected');
351
-        }
352
-
353
-        return ord(@fread($this->fp, 1));
354
-    }
355
-
356
-    /**
357
-     * Reads a word of data
358
-     *
359
-     * @access public
360
-     * @return 1 word of data from the socket, or a PEAR_Error if
361
-     *         not connected.
362
-     */
363
-    function readWord()
364
-    {
365
-        if (!is_resource($this->fp)) {
366
-            return $this->raiseError('not connected');
367
-        }
368
-
369
-        $buf = @fread($this->fp, 2);
370
-        return (ord($buf[0]) + (ord($buf[1]) << 8));
371
-    }
372
-
373
-    /**
374
-     * Reads an int of data
375
-     *
376
-     * @access public
377
-     * @return integer  1 int of data from the socket, or a PEAR_Error if
378
-     *                  not connected.
379
-     */
380
-    function readInt()
381
-    {
382
-        if (!is_resource($this->fp)) {
383
-            return $this->raiseError('not connected');
384
-        }
385
-
386
-        $buf = @fread($this->fp, 4);
387
-        return (ord($buf[0]) + (ord($buf[1]) << 8) +
388
-                (ord($buf[2]) << 16) + (ord($buf[3]) << 24));
389
-    }
390
-
391
-    /**
392
-     * Reads a zero-terminated string of data
393
-     *
394
-     * @access public
395
-     * @return string, or a PEAR_Error if
396
-     *         not connected.
397
-     */
398
-    function readString()
399
-    {
400
-        if (!is_resource($this->fp)) {
401
-            return $this->raiseError('not connected');
402
-        }
403
-
404
-        $string = '';
405
-        while (($char = @fread($this->fp, 1)) != "\x00")  {
406
-            $string .= $char;
407
-        }
408
-        return $string;
409
-    }
410
-
411
-    /**
412
-     * Reads an IP Address and returns it in a dot formated string
413
-     *
414
-     * @access public
415
-     * @return Dot formated string, or a PEAR_Error if
416
-     *         not connected.
417
-     */
418
-    function readIPAddress()
419
-    {
420
-        if (!is_resource($this->fp)) {
421
-            return $this->raiseError('not connected');
422
-        }
423
-
424
-        $buf = @fread($this->fp, 4);
425
-        return sprintf("%s.%s.%s.%s", ord($buf[0]), ord($buf[1]),
426
-                       ord($buf[2]), ord($buf[3]));
427
-    }
428
-
429
-    /**
430
-     * Read until either the end of the socket or a newline, whichever
431
-     * comes first. Strips the trailing newline from the returned data.
432
-     *
433
-     * @access public
434
-     * @return All available data up to a newline, without that
435
-     *         newline, or until the end of the socket, or a PEAR_Error if
436
-     *         not connected.
437
-     */
438
-    function readLine()
439
-    {
440
-        if (!is_resource($this->fp)) {
441
-            return $this->raiseError('not connected');
442
-        }
443
-
444
-        $line = '';
445
-        $timeout = time() + $this->timeout;
446
-        while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) {
447
-            $line .= @fgets($this->fp, $this->lineLength);
448
-            if (substr($line, -1) == "\n") {
449
-                return rtrim($line, "\r\n");
450
-            }
451
-        }
452
-        return $line;
453
-    }
454
-
455
-    /**
456
-     * Read until the socket closes, or until there is no more data in
457
-     * the inner PHP buffer. If the inner buffer is empty, in blocking
458
-     * mode we wait for at least 1 byte of data. Therefore, in
459
-     * blocking mode, if there is no data at all to be read, this
460
-     * function will never exit (unless the socket is closed on the
461
-     * remote end).
462
-     *
463
-     * @access public
464
-     *
465
-     * @return string  All data until the socket closes, or a PEAR_Error if
466
-     *                 not connected.
467
-     */
468
-    function readAll()
469
-    {
470
-        if (!is_resource($this->fp)) {
471
-            return $this->raiseError('not connected');
472
-        }
473
-
474
-        $data = '';
475
-        while (!feof($this->fp)) {
476
-            $data .= @fread($this->fp, $this->lineLength);
477
-        }
478
-        return $data;
479
-    }
480
-
481
-    /**
482
-     * Runs the equivalent of the select() system call on the socket
483
-     * with a timeout specified by tv_sec and tv_usec.
484
-     *
485
-     * @param integer $state    Which of read/write/error to check for.
486
-     * @param integer $tv_sec   Number of seconds for timeout.
487
-     * @param integer $tv_usec  Number of microseconds for timeout.
488
-     *
489
-     * @access public
490
-     * @return False if select fails, integer describing which of read/write/error
491
-     *         are ready, or PEAR_Error if not connected.
492
-     */
493
-    function select($state, $tv_sec, $tv_usec = 0)
494
-    {
495
-        if (!is_resource($this->fp)) {
496
-            return $this->raiseError('not connected');
497
-        }
498
-
499
-        $read = null;
500
-        $write = null;
501
-        $except = null;
502
-        if ($state & NET_SOCKET_READ) {
503
-            $read[] = $this->fp;
504
-        }
505
-        if ($state & NET_SOCKET_WRITE) {
506
-            $write[] = $this->fp;
507
-        }
508
-        if ($state & NET_SOCKET_ERROR) {
509
-            $except[] = $this->fp;
510
-        }
511
-        if (false === ($sr = stream_select($read, $write, $except, $tv_sec, $tv_usec))) {
512
-            return false;
513
-        }
514
-
515
-        $result = 0;
516
-        if (count($read)) {
517
-            $result |= NET_SOCKET_READ;
518
-        }
519
-        if (count($write)) {
520
-            $result |= NET_SOCKET_WRITE;
521
-        }
522
-        if (count($except)) {
523
-            $result |= NET_SOCKET_ERROR;
524
-        }
525
-        return $result;
526
-    }
37
+	/**
38
+	 * Socket file pointer.
39
+	 * @var resource $fp
40
+	 */
41
+	var $fp = null;
42
+
43
+	/**
44
+	 * Whether the socket is blocking. Defaults to true.
45
+	 * @var boolean $blocking
46
+	 */
47
+	var $blocking = true;
48
+
49
+	/**
50
+	 * Whether the socket is persistent. Defaults to false.
51
+	 * @var boolean $persistent
52
+	 */
53
+	var $persistent = false;
54
+
55
+	/**
56
+	 * The IP address to connect to.
57
+	 * @var string $addr
58
+	 */
59
+	var $addr = '';
60
+
61
+	/**
62
+	 * The port number to connect to.
63
+	 * @var integer $port
64
+	 */
65
+	var $port = 0;
66
+
67
+	/**
68
+	 * Number of seconds to wait on socket connections before assuming
69
+	 * there's no more data. Defaults to no timeout.
70
+	 * @var integer $timeout
71
+	 */
72
+	var $timeout = false;
73
+
74
+	/**
75
+	 * Number of bytes to read at a time in readLine() and
76
+	 * readAll(). Defaults to 2048.
77
+	 * @var integer $lineLength
78
+	 */
79
+	var $lineLength = 2048;
80
+
81
+	/**
82
+	 * Connect to the specified port. If called when the socket is
83
+	 * already connected, it disconnects and connects again.
84
+	 *
85
+	 * @param string  $addr        IP address or host name.
86
+	 * @param integer $port        TCP port number.
87
+	 * @param boolean $persistent  (optional) Whether the connection is
88
+	 *                             persistent (kept open between requests
89
+	 *                             by the web server).
90
+	 * @param integer $timeout     (optional) How long to wait for data.
91
+	 * @param array   $options     See options for stream_context_create.
92
+	 *
93
+	 * @access public
94
+	 *
95
+	 * @return boolean | PEAR_Error  True on success or a PEAR_Error on failure.
96
+	 */
97
+	function connect($addr, $port = 0, $persistent = null, $timeout = null, $options = null)
98
+	{
99
+		if (is_resource($this->fp)) {
100
+			@fclose($this->fp);
101
+			$this->fp = null;
102
+		}
103
+
104
+		if (!$addr) {
105
+			return $this->raiseError('$addr cannot be empty');
106
+		} elseif (strspn($addr, '.0123456789') == strlen($addr) ||
107
+				  strstr($addr, '/') !== false) {
108
+			$this->addr = $addr;
109
+		} else {
110
+			$this->addr = @gethostbyname($addr);
111
+		}
112
+
113
+		$this->port = $port % 65536;
114
+
115
+		if ($persistent !== null) {
116
+			$this->persistent = $persistent;
117
+		}
118
+
119
+		if ($timeout !== null) {
120
+			$this->timeout = $timeout;
121
+		}
122
+
123
+		$openfunc = $this->persistent ? 'pfsockopen' : 'fsockopen';
124
+		$errno = 0;
125
+		$errstr = '';
126
+		if ($options && function_exists('stream_context_create')) {
127
+			if ($this->timeout) {
128
+				$timeout = $this->timeout;
129
+			} else {
130
+				$timeout = 0;
131
+			}
132
+			$context = stream_context_create($options);
133
+			$fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $timeout, $context);
134
+		} else {
135
+			if ($this->timeout) {
136
+				$fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $this->timeout);
137
+			} else {
138
+				$fp = @$openfunc($this->addr, $this->port, $errno, $errstr);
139
+			}
140
+		}
141
+
142
+		if (!$fp) {
143
+			return $this->raiseError($errstr, $errno);
144
+		}
145
+
146
+		$this->fp = $fp;
147
+
148
+		return $this->setBlocking($this->blocking);
149
+	}
150
+
151
+	/**
152
+	 * Disconnects from the peer, closes the socket.
153
+	 *
154
+	 * @access public
155
+	 * @return mixed true on success or an error object otherwise
156
+	 */
157
+	function disconnect()
158
+	{
159
+		if (!is_resource($this->fp)) {
160
+			return $this->raiseError('not connected');
161
+		}
162
+
163
+		@fclose($this->fp);
164
+		$this->fp = null;
165
+		return true;
166
+	}
167
+
168
+	/**
169
+	 * Find out if the socket is in blocking mode.
170
+	 *
171
+	 * @access public
172
+	 * @return boolean  The current blocking mode.
173
+	 */
174
+	function isBlocking()
175
+	{
176
+		return $this->blocking;
177
+	}
178
+
179
+	/**
180
+	 * Sets whether the socket connection should be blocking or
181
+	 * not. A read call to a non-blocking socket will return immediately
182
+	 * if there is no data available, whereas it will block until there
183
+	 * is data for blocking sockets.
184
+	 *
185
+	 * @param boolean $mode  True for blocking sockets, false for nonblocking.
186
+	 * @access public
187
+	 * @return mixed true on success or an error object otherwise
188
+	 */
189
+	function setBlocking($mode)
190
+	{
191
+		if (!is_resource($this->fp)) {
192
+			return $this->raiseError('not connected');
193
+		}
194
+
195
+		$this->blocking = $mode;
196
+		socket_set_blocking($this->fp, $this->blocking);
197
+		return true;
198
+	}
199
+
200
+	/**
201
+	 * Sets the timeout value on socket descriptor,
202
+	 * expressed in the sum of seconds and microseconds
203
+	 *
204
+	 * @param integer $seconds  Seconds.
205
+	 * @param integer $microseconds  Microseconds.
206
+	 * @access public
207
+	 * @return mixed true on success or an error object otherwise
208
+	 */
209
+	function setTimeout($seconds, $microseconds)
210
+	{
211
+		if (!is_resource($this->fp)) {
212
+			return $this->raiseError('not connected');
213
+		}
214
+
215
+		return socket_set_timeout($this->fp, $seconds, $microseconds);
216
+	}
217
+
218
+	/**
219
+	 * Returns information about an existing socket resource.
220
+	 * Currently returns four entries in the result array:
221
+	 *
222
+	 * <p>
223
+	 * timed_out (bool) - The socket timed out waiting for data<br>
224
+	 * blocked (bool) - The socket was blocked<br>
225
+	 * eof (bool) - Indicates EOF event<br>
226
+	 * unread_bytes (int) - Number of bytes left in the socket buffer<br>
227
+	 * </p>
228
+	 *
229
+	 * @access public
230
+	 * @return mixed Array containing information about existing socket resource or an error object otherwise
231
+	 */
232
+	function getStatus()
233
+	{
234
+		if (!is_resource($this->fp)) {
235
+			return $this->raiseError('not connected');
236
+		}
237
+
238
+		return socket_get_status($this->fp);
239
+	}
240
+
241
+	/**
242
+	 * Get a specified line of data
243
+	 *
244
+	 * @access public
245
+	 * @return $size bytes of data from the socket, or a PEAR_Error if
246
+	 *         not connected.
247
+	 */
248
+	function gets($size)
249
+	{
250
+		if (!is_resource($this->fp)) {
251
+			return $this->raiseError('not connected');
252
+		}
253
+
254
+		return @fgets($this->fp, $size);
255
+	}
256
+
257
+	/**
258
+	 * Read a specified amount of data. This is guaranteed to return,
259
+	 * and has the added benefit of getting everything in one fread()
260
+	 * chunk; if you know the size of the data you're getting
261
+	 * beforehand, this is definitely the way to go.
262
+	 *
263
+	 * @param integer $size  The number of bytes to read from the socket.
264
+	 * @access public
265
+	 * @return $size bytes of data from the socket, or a PEAR_Error if
266
+	 *         not connected.
267
+	 */
268
+	function read($size)
269
+	{
270
+		if (!is_resource($this->fp)) {
271
+			return $this->raiseError('not connected');
272
+		}
273
+
274
+		return @fread($this->fp, $size);
275
+	}
276
+
277
+	/**
278
+	 * Write a specified amount of data.
279
+	 *
280
+	 * @param string  $data       Data to write.
281
+	 * @param integer $blocksize  Amount of data to write at once.
282
+	 *                            NULL means all at once.
283
+	 *
284
+	 * @access public
285
+	 * @return mixed true on success or an error object otherwise
286
+	 */
287
+	function write($data, $blocksize = null)
288
+	{
289
+		if (!is_resource($this->fp)) {
290
+			return $this->raiseError('not connected');
291
+		}
292
+
293
+		if (is_null($blocksize) && !OS_WINDOWS) {
294
+			return fwrite($this->fp, $data);
295
+		} else {
296
+			if (is_null($blocksize)) {
297
+				$blocksize = 1024;
298
+			}
299
+
300
+			$pos = 0;
301
+			$size = strlen($data);
302
+			while ($pos < $size) {
303
+				$written = @fwrite($this->fp, substr($data, $pos, $blocksize));
304
+				if ($written === false) {
305
+					return false;
306
+				}
307
+				$pos += $written;
308
+			}
309
+
310
+			return $pos;
311
+		}
312
+	}
313
+
314
+	/**
315
+	 * Write a line of data to the socket, followed by a trailing "\r\n".
316
+	 *
317
+	 * @access public
318
+	 * @return mixed fputs result, or an error
319
+	 */
320
+	function writeLine($data)
321
+	{
322
+		if (!is_resource($this->fp)) {
323
+			return $this->raiseError('not connected');
324
+		}
325
+
326
+		return fwrite($this->fp, $data . "\r\n");
327
+	}
328
+
329
+	/**
330
+	 * Tests for end-of-file on a socket descriptor.
331
+	 *
332
+	 * @access public
333
+	 * @return bool
334
+	 */
335
+	function eof()
336
+	{
337
+		return (is_resource($this->fp) && feof($this->fp));
338
+	}
339
+
340
+	/**
341
+	 * Reads a byte of data
342
+	 *
343
+	 * @access public
344
+	 * @return 1 byte of data from the socket, or a PEAR_Error if
345
+	 *         not connected.
346
+	 */
347
+	function readByte()
348
+	{
349
+		if (!is_resource($this->fp)) {
350
+			return $this->raiseError('not connected');
351
+		}
352
+
353
+		return ord(@fread($this->fp, 1));
354
+	}
355
+
356
+	/**
357
+	 * Reads a word of data
358
+	 *
359
+	 * @access public
360
+	 * @return 1 word of data from the socket, or a PEAR_Error if
361
+	 *         not connected.
362
+	 */
363
+	function readWord()
364
+	{
365
+		if (!is_resource($this->fp)) {
366
+			return $this->raiseError('not connected');
367
+		}
368
+
369
+		$buf = @fread($this->fp, 2);
370
+		return (ord($buf[0]) + (ord($buf[1]) << 8));
371
+	}
372
+
373
+	/**
374
+	 * Reads an int of data
375
+	 *
376
+	 * @access public
377
+	 * @return integer  1 int of data from the socket, or a PEAR_Error if
378
+	 *                  not connected.
379
+	 */
380
+	function readInt()
381
+	{
382
+		if (!is_resource($this->fp)) {
383
+			return $this->raiseError('not connected');
384
+		}
385
+
386
+		$buf = @fread($this->fp, 4);
387
+		return (ord($buf[0]) + (ord($buf[1]) << 8) +
388
+				(ord($buf[2]) << 16) + (ord($buf[3]) << 24));
389
+	}
390
+
391
+	/**
392
+	 * Reads a zero-terminated string of data
393
+	 *
394
+	 * @access public
395
+	 * @return string, or a PEAR_Error if
396
+	 *         not connected.
397
+	 */
398
+	function readString()
399
+	{
400
+		if (!is_resource($this->fp)) {
401
+			return $this->raiseError('not connected');
402
+		}
403
+
404
+		$string = '';
405
+		while (($char = @fread($this->fp, 1)) != "\x00")  {
406
+			$string .= $char;
407
+		}
408
+		return $string;
409
+	}
410
+
411
+	/**
412
+	 * Reads an IP Address and returns it in a dot formated string
413
+	 *
414
+	 * @access public
415
+	 * @return Dot formated string, or a PEAR_Error if
416
+	 *         not connected.
417
+	 */
418
+	function readIPAddress()
419
+	{
420
+		if (!is_resource($this->fp)) {
421
+			return $this->raiseError('not connected');
422
+		}
423
+
424
+		$buf = @fread($this->fp, 4);
425
+		return sprintf("%s.%s.%s.%s", ord($buf[0]), ord($buf[1]),
426
+					   ord($buf[2]), ord($buf[3]));
427
+	}
428
+
429
+	/**
430
+	 * Read until either the end of the socket or a newline, whichever
431
+	 * comes first. Strips the trailing newline from the returned data.
432
+	 *
433
+	 * @access public
434
+	 * @return All available data up to a newline, without that
435
+	 *         newline, or until the end of the socket, or a PEAR_Error if
436
+	 *         not connected.
437
+	 */
438
+	function readLine()
439
+	{
440
+		if (!is_resource($this->fp)) {
441
+			return $this->raiseError('not connected');
442
+		}
443
+
444
+		$line = '';
445
+		$timeout = time() + $this->timeout;
446
+		while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) {
447
+			$line .= @fgets($this->fp, $this->lineLength);
448
+			if (substr($line, -1) == "\n") {
449
+				return rtrim($line, "\r\n");
450
+			}
451
+		}
452
+		return $line;
453
+	}
454
+
455
+	/**
456
+	 * Read until the socket closes, or until there is no more data in
457
+	 * the inner PHP buffer. If the inner buffer is empty, in blocking
458
+	 * mode we wait for at least 1 byte of data. Therefore, in
459
+	 * blocking mode, if there is no data at all to be read, this
460
+	 * function will never exit (unless the socket is closed on the
461
+	 * remote end).
462
+	 *
463
+	 * @access public
464
+	 *
465
+	 * @return string  All data until the socket closes, or a PEAR_Error if
466
+	 *                 not connected.
467
+	 */
468
+	function readAll()
469
+	{
470
+		if (!is_resource($this->fp)) {
471
+			return $this->raiseError('not connected');
472
+		}
473
+
474
+		$data = '';
475
+		while (!feof($this->fp)) {
476
+			$data .= @fread($this->fp, $this->lineLength);
477
+		}
478
+		return $data;
479
+	}
480
+
481
+	/**
482
+	 * Runs the equivalent of the select() system call on the socket
483
+	 * with a timeout specified by tv_sec and tv_usec.
484
+	 *
485
+	 * @param integer $state    Which of read/write/error to check for.
486
+	 * @param integer $tv_sec   Number of seconds for timeout.
487
+	 * @param integer $tv_usec  Number of microseconds for timeout.
488
+	 *
489
+	 * @access public
490
+	 * @return False if select fails, integer describing which of read/write/error
491
+	 *         are ready, or PEAR_Error if not connected.
492
+	 */
493
+	function select($state, $tv_sec, $tv_usec = 0)
494
+	{
495
+		if (!is_resource($this->fp)) {
496
+			return $this->raiseError('not connected');
497
+		}
498
+
499
+		$read = null;
500
+		$write = null;
501
+		$except = null;
502
+		if ($state & NET_SOCKET_READ) {
503
+			$read[] = $this->fp;
504
+		}
505
+		if ($state & NET_SOCKET_WRITE) {
506
+			$write[] = $this->fp;
507
+		}
508
+		if ($state & NET_SOCKET_ERROR) {
509
+			$except[] = $this->fp;
510
+		}
511
+		if (false === ($sr = stream_select($read, $write, $except, $tv_sec, $tv_usec))) {
512
+			return false;
513
+		}
514
+
515
+		$result = 0;
516
+		if (count($read)) {
517
+			$result |= NET_SOCKET_READ;
518
+		}
519
+		if (count($write)) {
520
+			$result |= NET_SOCKET_WRITE;
521
+		}
522
+		if (count($except)) {
523
+			$result |= NET_SOCKET_ERROR;
524
+		}
525
+		return $result;
526
+	}
527 527
 
528 528
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
 
22 22
 require_once 'PEAR.php';
23 23
 
24
-define('NET_SOCKET_READ',  1);
24
+define('NET_SOCKET_READ', 1);
25 25
 define('NET_SOCKET_WRITE', 2);
26 26
 define('NET_SOCKET_ERROR', 3);
27 27
 
@@ -323,7 +323,7 @@  discard block
 block discarded – undo
323 323
             return $this->raiseError('not connected');
324 324
         }
325 325
 
326
-        return fwrite($this->fp, $data . "\r\n");
326
+        return fwrite($this->fp, $data."\r\n");
327 327
     }
328 328
 
329 329
     /**
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
         }
403 403
 
404 404
         $string = '';
405
-        while (($char = @fread($this->fp, 1)) != "\x00")  {
405
+        while (($char = @fread($this->fp, 1)) != "\x00") {
406 406
             $string .= $char;
407 407
         }
408 408
         return $string;
Please login to merge, or discard this patch.
libs/PEAR/PEAR.php 2 patches
Indentation   +979 added lines, -979 removed lines patch added patch discarded remove patch
@@ -40,25 +40,25 @@  discard block
 block discarded – undo
40 40
 define('PEAR_ERROR_EXCEPTION', 32);
41 41
 /**#@-*/
42 42
 define('PEAR_ZE2', (function_exists('version_compare') &&
43
-                    version_compare(zend_version(), "2-dev", "ge")));
43
+					version_compare(zend_version(), "2-dev", "ge")));
44 44
 
45 45
 if (substr(PHP_OS, 0, 3) == 'WIN') {
46
-    define('OS_WINDOWS', true);
47
-    define('OS_UNIX',    false);
48
-    define('PEAR_OS',    'Windows');
46
+	define('OS_WINDOWS', true);
47
+	define('OS_UNIX',    false);
48
+	define('PEAR_OS',    'Windows');
49 49
 } else {
50
-    define('OS_WINDOWS', false);
51
-    define('OS_UNIX',    true);
52
-    define('PEAR_OS',    'Unix'); // blatant assumption
50
+	define('OS_WINDOWS', false);
51
+	define('OS_UNIX',    true);
52
+	define('PEAR_OS',    'Unix'); // blatant assumption
53 53
 }
54 54
 
55 55
 // instant backwards compatibility
56 56
 if (!defined('PATH_SEPARATOR')) {
57
-    if (OS_WINDOWS) {
58
-        define('PATH_SEPARATOR', ';');
59
-    } else {
60
-        define('PATH_SEPARATOR', ':');
61
-    }
57
+	if (OS_WINDOWS) {
58
+		define('PATH_SEPARATOR', ';');
59
+	} else {
60
+		define('PATH_SEPARATOR', ':');
61
+	}
62 62
 }
63 63
 
64 64
 $GLOBALS['_PEAR_default_error_mode']     = PEAR_ERROR_RETURN;
@@ -101,704 +101,704 @@  discard block
 block discarded – undo
101 101
  */
102 102
 class PEAR
103 103
 {
104
-    // {{{ properties
105
-
106
-    /**
107
-     * Whether to enable internal debug messages.
108
-     *
109
-     * @var     bool
110
-     * @access  private
111
-     */
112
-    var $_debug = false;
113
-
114
-    /**
115
-     * Default error mode for this object.
116
-     *
117
-     * @var     int
118
-     * @access  private
119
-     */
120
-    var $_default_error_mode = null;
121
-
122
-    /**
123
-     * Default error options used for this object when error mode
124
-     * is PEAR_ERROR_TRIGGER.
125
-     *
126
-     * @var     int
127
-     * @access  private
128
-     */
129
-    var $_default_error_options = null;
130
-
131
-    /**
132
-     * Default error handler (callback) for this object, if error mode is
133
-     * PEAR_ERROR_CALLBACK.
134
-     *
135
-     * @var     string
136
-     * @access  private
137
-     */
138
-    var $_default_error_handler = '';
139
-
140
-    /**
141
-     * Which class to use for error objects.
142
-     *
143
-     * @var     string
144
-     * @access  private
145
-     */
146
-    var $_error_class = 'PEAR_Error';
147
-
148
-    /**
149
-     * An array of expected errors.
150
-     *
151
-     * @var     array
152
-     * @access  private
153
-     */
154
-    var $_expected_errors = array();
155
-
156
-    // }}}
157
-
158
-    // {{{ constructor
159
-
160
-    /**
161
-     * Constructor.  Registers this object in
162
-     * $_PEAR_destructor_object_list for destructor emulation if a
163
-     * destructor object exists.
164
-     *
165
-     * @param string $error_class  (optional) which class to use for
166
-     *        error objects, defaults to PEAR_Error.
167
-     * @access public
168
-     * @return void
169
-     */
170
-    function PEAR($error_class = null)
171
-    {
172
-        $classname = strtolower(get_class($this));
173
-        if ($this->_debug) {
174
-            print "PEAR constructor called, class=$classname\n";
175
-        }
176
-        if ($error_class !== null) {
177
-            $this->_error_class = $error_class;
178
-        }
179
-        while ($classname && strcasecmp($classname, "pear")) {
180
-            $destructor = "_$classname";
181
-            if (method_exists($this, $destructor)) {
182
-                global $_PEAR_destructor_object_list;
183
-                $_PEAR_destructor_object_list[] = &$this;
184
-                if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
185
-                    register_shutdown_function("_PEAR_call_destructors");
186
-                    $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
187
-                }
188
-                break;
189
-            } else {
190
-                $classname = get_parent_class($classname);
191
-            }
192
-        }
193
-    }
194
-
195
-    // }}}
196
-    // {{{ destructor
197
-
198
-    /**
199
-     * Destructor (the emulated type of...).  Does nothing right now,
200
-     * but is included for forward compatibility, so subclass
201
-     * destructors should always call it.
202
-     *
203
-     * See the note in the class desciption about output from
204
-     * destructors.
205
-     *
206
-     * @access public
207
-     * @return void
208
-     */
209
-    function _PEAR() {
210
-        if ($this->_debug) {
211
-            printf("PEAR destructor called, class=%s\n", strtolower(get_class($this)));
212
-        }
213
-    }
214
-
215
-    // }}}
216
-    // {{{ getStaticProperty()
217
-
218
-    /**
219
-    * If you have a class that's mostly/entirely static, and you need static
220
-    * properties, you can use this method to simulate them. Eg. in your method(s)
221
-    * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar');
222
-    * You MUST use a reference, or they will not persist!
223
-    *
224
-    * @access public
225
-    * @param  string $class  The calling classname, to prevent clashes
226
-    * @param  string $var    The variable to retrieve.
227
-    * @return mixed   A reference to the variable. If not set it will be
228
-    *                 auto initialised to NULL.
229
-    */
230
-    function &getStaticProperty($class, $var)
231
-    {
232
-        static $properties;
233
-        if (!isset($properties[$class])) {
234
-            $properties[$class] = array();
235
-        }
236
-        if (!array_key_exists($var, $properties[$class])) {
237
-            $properties[$class][$var] = null;
238
-        }
239
-        return $properties[$class][$var];
240
-    }
241
-
242
-    // }}}
243
-    // {{{ registerShutdownFunc()
244
-
245
-    /**
246
-    * Use this function to register a shutdown method for static
247
-    * classes.
248
-    *
249
-    * @access public
250
-    * @param  mixed $func  The function name (or array of class/method) to call
251
-    * @param  mixed $args  The arguments to pass to the function
252
-    * @return void
253
-    */
254
-    function registerShutdownFunc($func, $args = array())
255
-    {
256
-        // if we are called statically, there is a potential
257
-        // that no shutdown func is registered.  Bug #6445
258
-        if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
259
-            register_shutdown_function("_PEAR_call_destructors");
260
-            $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
261
-        }
262
-        $GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args);
263
-    }
264
-
265
-    // }}}
266
-    // {{{ isError()
267
-
268
-    /**
269
-     * Tell whether a value is a PEAR error.
270
-     *
271
-     * @param   mixed $data   the value to test
272
-     * @param   int   $code   if $data is an error object, return true
273
-     *                        only if $code is a string and
274
-     *                        $obj->getMessage() == $code or
275
-     *                        $code is an integer and $obj->getCode() == $code
276
-     * @access  public
277
-     * @return  bool    true if parameter is an error
278
-     */
279
-    function isError($data, $code = null)
280
-    {
281
-        if (is_a($data, 'PEAR_Error')) {
282
-            if (is_null($code)) {
283
-                return true;
284
-            } elseif (is_string($code)) {
285
-                return $data->getMessage() == $code;
286
-            } else {
287
-                return $data->getCode() == $code;
288
-            }
289
-        }
290
-        return false;
291
-    }
292
-
293
-    // }}}
294
-    // {{{ setErrorHandling()
295
-
296
-    /**
297
-     * Sets how errors generated by this object should be handled.
298
-     * Can be invoked both in objects and statically.  If called
299
-     * statically, setErrorHandling sets the default behaviour for all
300
-     * PEAR objects.  If called in an object, setErrorHandling sets
301
-     * the default behaviour for that object.
302
-     *
303
-     * @param int $mode
304
-     *        One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
305
-     *        PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
306
-     *        PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION.
307
-     *
308
-     * @param mixed $options
309
-     *        When $mode is PEAR_ERROR_TRIGGER, this is the error level (one
310
-     *        of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
311
-     *
312
-     *        When $mode is PEAR_ERROR_CALLBACK, this parameter is expected
313
-     *        to be the callback function or method.  A callback
314
-     *        function is a string with the name of the function, a
315
-     *        callback method is an array of two elements: the element
316
-     *        at index 0 is the object, and the element at index 1 is
317
-     *        the name of the method to call in the object.
318
-     *
319
-     *        When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is
320
-     *        a printf format string used when printing the error
321
-     *        message.
322
-     *
323
-     * @access public
324
-     * @return void
325
-     * @see PEAR_ERROR_RETURN
326
-     * @see PEAR_ERROR_PRINT
327
-     * @see PEAR_ERROR_TRIGGER
328
-     * @see PEAR_ERROR_DIE
329
-     * @see PEAR_ERROR_CALLBACK
330
-     * @see PEAR_ERROR_EXCEPTION
331
-     *
332
-     * @since PHP 4.0.5
333
-     */
334
-
335
-    function setErrorHandling($mode = null, $options = null)
336
-    {
337
-        if (isset($this) && is_a($this, 'PEAR')) {
338
-            $setmode     = &$this->_default_error_mode;
339
-            $setoptions  = &$this->_default_error_options;
340
-        } else {
341
-            $setmode     = &$GLOBALS['_PEAR_default_error_mode'];
342
-            $setoptions  = &$GLOBALS['_PEAR_default_error_options'];
343
-        }
344
-
345
-        switch ($mode) {
346
-            case PEAR_ERROR_EXCEPTION:
347
-            case PEAR_ERROR_RETURN:
348
-            case PEAR_ERROR_PRINT:
349
-            case PEAR_ERROR_TRIGGER:
350
-            case PEAR_ERROR_DIE:
351
-            case null:
352
-                $setmode = $mode;
353
-                $setoptions = $options;
354
-                break;
355
-
356
-            case PEAR_ERROR_CALLBACK:
357
-                $setmode = $mode;
358
-                // class/object method callback
359
-                if (is_callable($options)) {
360
-                    $setoptions = $options;
361
-                } else {
362
-                    trigger_error("invalid error callback", E_USER_WARNING);
363
-                }
364
-                break;
365
-
366
-            default:
367
-                trigger_error("invalid error mode", E_USER_WARNING);
368
-                break;
369
-        }
370
-    }
371
-
372
-    // }}}
373
-    // {{{ expectError()
374
-
375
-    /**
376
-     * This method is used to tell which errors you expect to get.
377
-     * Expected errors are always returned with error mode
378
-     * PEAR_ERROR_RETURN.  Expected error codes are stored in a stack,
379
-     * and this method pushes a new element onto it.  The list of
380
-     * expected errors are in effect until they are popped off the
381
-     * stack with the popExpect() method.
382
-     *
383
-     * Note that this method can not be called statically
384
-     *
385
-     * @param mixed $code a single error code or an array of error codes to expect
386
-     *
387
-     * @return int     the new depth of the "expected errors" stack
388
-     * @access public
389
-     */
390
-    function expectError($code = '*')
391
-    {
392
-        if (is_array($code)) {
393
-            array_push($this->_expected_errors, $code);
394
-        } else {
395
-            array_push($this->_expected_errors, array($code));
396
-        }
397
-        return sizeof($this->_expected_errors);
398
-    }
399
-
400
-    // }}}
401
-    // {{{ popExpect()
402
-
403
-    /**
404
-     * This method pops one element off the expected error codes
405
-     * stack.
406
-     *
407
-     * @return array   the list of error codes that were popped
408
-     */
409
-    function popExpect()
410
-    {
411
-        return array_pop($this->_expected_errors);
412
-    }
413
-
414
-    // }}}
415
-    // {{{ _checkDelExpect()
416
-
417
-    /**
418
-     * This method checks unsets an error code if available
419
-     *
420
-     * @param mixed error code
421
-     * @return bool true if the error code was unset, false otherwise
422
-     * @access private
423
-     * @since PHP 4.3.0
424
-     */
425
-    function _checkDelExpect($error_code)
426
-    {
427
-        $deleted = false;
428
-
429
-        foreach ($this->_expected_errors AS $key => $error_array) {
430
-            if (in_array($error_code, $error_array)) {
431
-                unset($this->_expected_errors[$key][array_search($error_code, $error_array)]);
432
-                $deleted = true;
433
-            }
434
-
435
-            // clean up empty arrays
436
-            if (0 == count($this->_expected_errors[$key])) {
437
-                unset($this->_expected_errors[$key]);
438
-            }
439
-        }
440
-        return $deleted;
441
-    }
442
-
443
-    // }}}
444
-    // {{{ delExpect()
445
-
446
-    /**
447
-     * This method deletes all occurences of the specified element from
448
-     * the expected error codes stack.
449
-     *
450
-     * @param  mixed $error_code error code that should be deleted
451
-     * @return mixed list of error codes that were deleted or error
452
-     * @access public
453
-     * @since PHP 4.3.0
454
-     */
455
-    function delExpect($error_code)
456
-    {
457
-        $deleted = false;
458
-
459
-        if ((is_array($error_code) && (0 != count($error_code)))) {
460
-            // $error_code is a non-empty array here;
461
-            // we walk through it trying to unset all
462
-            // values
463
-            foreach($error_code as $key => $error) {
464
-                if ($this->_checkDelExpect($error)) {
465
-                    $deleted =  true;
466
-                } else {
467
-                    $deleted = false;
468
-                }
469
-            }
470
-            return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
471
-        } elseif (!empty($error_code)) {
472
-            // $error_code comes alone, trying to unset it
473
-            if ($this->_checkDelExpect($error_code)) {
474
-                return true;
475
-            } else {
476
-                return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
477
-            }
478
-        } else {
479
-            // $error_code is empty
480
-            return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME
481
-        }
482
-    }
483
-
484
-    // }}}
485
-    // {{{ raiseError()
486
-
487
-    /**
488
-     * This method is a wrapper that returns an instance of the
489
-     * configured error class with this object's default error
490
-     * handling applied.  If the $mode and $options parameters are not
491
-     * specified, the object's defaults are used.
492
-     *
493
-     * @param mixed $message a text error message or a PEAR error object
494
-     *
495
-     * @param int $code      a numeric error code (it is up to your class
496
-     *                  to define these if you want to use codes)
497
-     *
498
-     * @param int $mode      One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
499
-     *                  PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
500
-     *                  PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION.
501
-     *
502
-     * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter
503
-     *                  specifies the PHP-internal error level (one of
504
-     *                  E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
505
-     *                  If $mode is PEAR_ERROR_CALLBACK, this
506
-     *                  parameter specifies the callback function or
507
-     *                  method.  In other error modes this parameter
508
-     *                  is ignored.
509
-     *
510
-     * @param string $userinfo If you need to pass along for example debug
511
-     *                  information, this parameter is meant for that.
512
-     *
513
-     * @param string $error_class The returned error object will be
514
-     *                  instantiated from this class, if specified.
515
-     *
516
-     * @param bool $skipmsg If true, raiseError will only pass error codes,
517
-     *                  the error message parameter will be dropped.
518
-     *
519
-     * @access public
520
-     * @return object   a PEAR error object
521
-     * @see PEAR::setErrorHandling
522
-     * @since PHP 4.0.5
523
-     */
524
-    function &raiseError($message = null,
525
-                         $code = null,
526
-                         $mode = null,
527
-                         $options = null,
528
-                         $userinfo = null,
529
-                         $error_class = null,
530
-                         $skipmsg = false)
531
-    {
532
-        // The error is yet a PEAR error object
533
-        if (is_object($message)) {
534
-            $code        = $message->getCode();
535
-            $userinfo    = $message->getUserInfo();
536
-            $error_class = $message->getType();
537
-            $message->error_message_prefix = '';
538
-            $message     = $message->getMessage();
539
-        }
540
-
541
-        if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) {
542
-            if ($exp[0] == "*" ||
543
-                (is_int(reset($exp)) && in_array($code, $exp)) ||
544
-                (is_string(reset($exp)) && in_array($message, $exp))) {
545
-                $mode = PEAR_ERROR_RETURN;
546
-            }
547
-        }
548
-        // No mode given, try global ones
549
-        if ($mode === null) {
550
-            // Class error handler
551
-            if (isset($this) && isset($this->_default_error_mode)) {
552
-                $mode    = $this->_default_error_mode;
553
-                $options = $this->_default_error_options;
554
-            // Global error handler
555
-            } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) {
556
-                $mode    = $GLOBALS['_PEAR_default_error_mode'];
557
-                $options = $GLOBALS['_PEAR_default_error_options'];
558
-            }
559
-        }
560
-
561
-        if ($error_class !== null) {
562
-            $ec = $error_class;
563
-        } elseif (isset($this) && isset($this->_error_class)) {
564
-            $ec = $this->_error_class;
565
-        } else {
566
-            $ec = 'PEAR_Error';
567
-        }
568
-        if ($skipmsg) {
569
-            $a = &new $ec($code, $mode, $options, $userinfo);
570
-            return $a;
571
-        } else {
572
-            $a = &new $ec($message, $code, $mode, $options, $userinfo);
573
-            return $a;
574
-        }
575
-    }
576
-
577
-    // }}}
578
-    // {{{ throwError()
579
-
580
-    /**
581
-     * Simpler form of raiseError with fewer options.  In most cases
582
-     * message, code and userinfo are enough.
583
-     *
584
-     * @param string $message
585
-     *
586
-     */
587
-    function &throwError($message = null,
588
-                         $code = null,
589
-                         $userinfo = null)
590
-    {
591
-        if (isset($this) && is_a($this, 'PEAR')) {
592
-            $a = &$this->raiseError($message, $code, null, null, $userinfo);
593
-            return $a;
594
-        } else {
595
-            $a = &PEAR::raiseError($message, $code, null, null, $userinfo);
596
-            return $a;
597
-        }
598
-    }
599
-
600
-    // }}}
601
-    function staticPushErrorHandling($mode, $options = null)
602
-    {
603
-        $stack = &$GLOBALS['_PEAR_error_handler_stack'];
604
-        $def_mode    = &$GLOBALS['_PEAR_default_error_mode'];
605
-        $def_options = &$GLOBALS['_PEAR_default_error_options'];
606
-        $stack[] = array($def_mode, $def_options);
607
-        switch ($mode) {
608
-            case PEAR_ERROR_EXCEPTION:
609
-            case PEAR_ERROR_RETURN:
610
-            case PEAR_ERROR_PRINT:
611
-            case PEAR_ERROR_TRIGGER:
612
-            case PEAR_ERROR_DIE:
613
-            case null:
614
-                $def_mode = $mode;
615
-                $def_options = $options;
616
-                break;
617
-
618
-            case PEAR_ERROR_CALLBACK:
619
-                $def_mode = $mode;
620
-                // class/object method callback
621
-                if (is_callable($options)) {
622
-                    $def_options = $options;
623
-                } else {
624
-                    trigger_error("invalid error callback", E_USER_WARNING);
625
-                }
626
-                break;
627
-
628
-            default:
629
-                trigger_error("invalid error mode", E_USER_WARNING);
630
-                break;
631
-        }
632
-        $stack[] = array($mode, $options);
633
-        return true;
634
-    }
635
-
636
-    function staticPopErrorHandling()
637
-    {
638
-        $stack = &$GLOBALS['_PEAR_error_handler_stack'];
639
-        $setmode     = &$GLOBALS['_PEAR_default_error_mode'];
640
-        $setoptions  = &$GLOBALS['_PEAR_default_error_options'];
641
-        array_pop($stack);
642
-        list($mode, $options) = $stack[sizeof($stack) - 1];
643
-        array_pop($stack);
644
-        switch ($mode) {
645
-            case PEAR_ERROR_EXCEPTION:
646
-            case PEAR_ERROR_RETURN:
647
-            case PEAR_ERROR_PRINT:
648
-            case PEAR_ERROR_TRIGGER:
649
-            case PEAR_ERROR_DIE:
650
-            case null:
651
-                $setmode = $mode;
652
-                $setoptions = $options;
653
-                break;
654
-
655
-            case PEAR_ERROR_CALLBACK:
656
-                $setmode = $mode;
657
-                // class/object method callback
658
-                if (is_callable($options)) {
659
-                    $setoptions = $options;
660
-                } else {
661
-                    trigger_error("invalid error callback", E_USER_WARNING);
662
-                }
663
-                break;
664
-
665
-            default:
666
-                trigger_error("invalid error mode", E_USER_WARNING);
667
-                break;
668
-        }
669
-        return true;
670
-    }
671
-
672
-    // {{{ pushErrorHandling()
673
-
674
-    /**
675
-     * Push a new error handler on top of the error handler options stack. With this
676
-     * you can easily override the actual error handler for some code and restore
677
-     * it later with popErrorHandling.
678
-     *
679
-     * @param mixed $mode (same as setErrorHandling)
680
-     * @param mixed $options (same as setErrorHandling)
681
-     *
682
-     * @return bool Always true
683
-     *
684
-     * @see PEAR::setErrorHandling
685
-     */
686
-    function pushErrorHandling($mode, $options = null)
687
-    {
688
-        $stack = &$GLOBALS['_PEAR_error_handler_stack'];
689
-        if (isset($this) && is_a($this, 'PEAR')) {
690
-            $def_mode    = &$this->_default_error_mode;
691
-            $def_options = &$this->_default_error_options;
692
-        } else {
693
-            $def_mode    = &$GLOBALS['_PEAR_default_error_mode'];
694
-            $def_options = &$GLOBALS['_PEAR_default_error_options'];
695
-        }
696
-        $stack[] = array($def_mode, $def_options);
697
-
698
-        if (isset($this) && is_a($this, 'PEAR')) {
699
-            $this->setErrorHandling($mode, $options);
700
-        } else {
701
-            PEAR::setErrorHandling($mode, $options);
702
-        }
703
-        $stack[] = array($mode, $options);
704
-        return true;
705
-    }
706
-
707
-    // }}}
708
-    // {{{ popErrorHandling()
709
-
710
-    /**
711
-    * Pop the last error handler used
712
-    *
713
-    * @return bool Always true
714
-    *
715
-    * @see PEAR::pushErrorHandling
716
-    */
717
-    function popErrorHandling()
718
-    {
719
-        $stack = &$GLOBALS['_PEAR_error_handler_stack'];
720
-        array_pop($stack);
721
-        list($mode, $options) = $stack[sizeof($stack) - 1];
722
-        array_pop($stack);
723
-        if (isset($this) && is_a($this, 'PEAR')) {
724
-            $this->setErrorHandling($mode, $options);
725
-        } else {
726
-            PEAR::setErrorHandling($mode, $options);
727
-        }
728
-        return true;
729
-    }
730
-
731
-    // }}}
732
-    // {{{ loadExtension()
733
-
734
-    /**
735
-    * OS independant PHP extension load. Remember to take care
736
-    * on the correct extension name for case sensitive OSes.
737
-    *
738
-    * @param string $ext The extension name
739
-    * @return bool Success or not on the dl() call
740
-    */
741
-    function loadExtension($ext)
742
-    {
743
-        if (!extension_loaded($ext)) {
744
-            // if either returns true dl() will produce a FATAL error, stop that
745
-            if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) {
746
-                return false;
747
-            }
748
-            if (OS_WINDOWS) {
749
-                $suffix = '.dll';
750
-            } elseif (PHP_OS == 'HP-UX') {
751
-                $suffix = '.sl';
752
-            } elseif (PHP_OS == 'AIX') {
753
-                $suffix = '.a';
754
-            } elseif (PHP_OS == 'OSX') {
755
-                $suffix = '.bundle';
756
-            } else {
757
-                $suffix = '.so';
758
-            }
759
-            return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix);
760
-        }
761
-        return true;
762
-    }
763
-
764
-    // }}}
104
+	// {{{ properties
105
+
106
+	/**
107
+	 * Whether to enable internal debug messages.
108
+	 *
109
+	 * @var     bool
110
+	 * @access  private
111
+	 */
112
+	var $_debug = false;
113
+
114
+	/**
115
+	 * Default error mode for this object.
116
+	 *
117
+	 * @var     int
118
+	 * @access  private
119
+	 */
120
+	var $_default_error_mode = null;
121
+
122
+	/**
123
+	 * Default error options used for this object when error mode
124
+	 * is PEAR_ERROR_TRIGGER.
125
+	 *
126
+	 * @var     int
127
+	 * @access  private
128
+	 */
129
+	var $_default_error_options = null;
130
+
131
+	/**
132
+	 * Default error handler (callback) for this object, if error mode is
133
+	 * PEAR_ERROR_CALLBACK.
134
+	 *
135
+	 * @var     string
136
+	 * @access  private
137
+	 */
138
+	var $_default_error_handler = '';
139
+
140
+	/**
141
+	 * Which class to use for error objects.
142
+	 *
143
+	 * @var     string
144
+	 * @access  private
145
+	 */
146
+	var $_error_class = 'PEAR_Error';
147
+
148
+	/**
149
+	 * An array of expected errors.
150
+	 *
151
+	 * @var     array
152
+	 * @access  private
153
+	 */
154
+	var $_expected_errors = array();
155
+
156
+	// }}}
157
+
158
+	// {{{ constructor
159
+
160
+	/**
161
+	 * Constructor.  Registers this object in
162
+	 * $_PEAR_destructor_object_list for destructor emulation if a
163
+	 * destructor object exists.
164
+	 *
165
+	 * @param string $error_class  (optional) which class to use for
166
+	 *        error objects, defaults to PEAR_Error.
167
+	 * @access public
168
+	 * @return void
169
+	 */
170
+	function PEAR($error_class = null)
171
+	{
172
+		$classname = strtolower(get_class($this));
173
+		if ($this->_debug) {
174
+			print "PEAR constructor called, class=$classname\n";
175
+		}
176
+		if ($error_class !== null) {
177
+			$this->_error_class = $error_class;
178
+		}
179
+		while ($classname && strcasecmp($classname, "pear")) {
180
+			$destructor = "_$classname";
181
+			if (method_exists($this, $destructor)) {
182
+				global $_PEAR_destructor_object_list;
183
+				$_PEAR_destructor_object_list[] = &$this;
184
+				if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
185
+					register_shutdown_function("_PEAR_call_destructors");
186
+					$GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
187
+				}
188
+				break;
189
+			} else {
190
+				$classname = get_parent_class($classname);
191
+			}
192
+		}
193
+	}
194
+
195
+	// }}}
196
+	// {{{ destructor
197
+
198
+	/**
199
+	 * Destructor (the emulated type of...).  Does nothing right now,
200
+	 * but is included for forward compatibility, so subclass
201
+	 * destructors should always call it.
202
+	 *
203
+	 * See the note in the class desciption about output from
204
+	 * destructors.
205
+	 *
206
+	 * @access public
207
+	 * @return void
208
+	 */
209
+	function _PEAR() {
210
+		if ($this->_debug) {
211
+			printf("PEAR destructor called, class=%s\n", strtolower(get_class($this)));
212
+		}
213
+	}
214
+
215
+	// }}}
216
+	// {{{ getStaticProperty()
217
+
218
+	/**
219
+	 * If you have a class that's mostly/entirely static, and you need static
220
+	 * properties, you can use this method to simulate them. Eg. in your method(s)
221
+	 * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar');
222
+	 * You MUST use a reference, or they will not persist!
223
+	 *
224
+	 * @access public
225
+	 * @param  string $class  The calling classname, to prevent clashes
226
+	 * @param  string $var    The variable to retrieve.
227
+	 * @return mixed   A reference to the variable. If not set it will be
228
+	 *                 auto initialised to NULL.
229
+	 */
230
+	function &getStaticProperty($class, $var)
231
+	{
232
+		static $properties;
233
+		if (!isset($properties[$class])) {
234
+			$properties[$class] = array();
235
+		}
236
+		if (!array_key_exists($var, $properties[$class])) {
237
+			$properties[$class][$var] = null;
238
+		}
239
+		return $properties[$class][$var];
240
+	}
241
+
242
+	// }}}
243
+	// {{{ registerShutdownFunc()
244
+
245
+	/**
246
+	 * Use this function to register a shutdown method for static
247
+	 * classes.
248
+	 *
249
+	 * @access public
250
+	 * @param  mixed $func  The function name (or array of class/method) to call
251
+	 * @param  mixed $args  The arguments to pass to the function
252
+	 * @return void
253
+	 */
254
+	function registerShutdownFunc($func, $args = array())
255
+	{
256
+		// if we are called statically, there is a potential
257
+		// that no shutdown func is registered.  Bug #6445
258
+		if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
259
+			register_shutdown_function("_PEAR_call_destructors");
260
+			$GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
261
+		}
262
+		$GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args);
263
+	}
264
+
265
+	// }}}
266
+	// {{{ isError()
267
+
268
+	/**
269
+	 * Tell whether a value is a PEAR error.
270
+	 *
271
+	 * @param   mixed $data   the value to test
272
+	 * @param   int   $code   if $data is an error object, return true
273
+	 *                        only if $code is a string and
274
+	 *                        $obj->getMessage() == $code or
275
+	 *                        $code is an integer and $obj->getCode() == $code
276
+	 * @access  public
277
+	 * @return  bool    true if parameter is an error
278
+	 */
279
+	function isError($data, $code = null)
280
+	{
281
+		if (is_a($data, 'PEAR_Error')) {
282
+			if (is_null($code)) {
283
+				return true;
284
+			} elseif (is_string($code)) {
285
+				return $data->getMessage() == $code;
286
+			} else {
287
+				return $data->getCode() == $code;
288
+			}
289
+		}
290
+		return false;
291
+	}
292
+
293
+	// }}}
294
+	// {{{ setErrorHandling()
295
+
296
+	/**
297
+	 * Sets how errors generated by this object should be handled.
298
+	 * Can be invoked both in objects and statically.  If called
299
+	 * statically, setErrorHandling sets the default behaviour for all
300
+	 * PEAR objects.  If called in an object, setErrorHandling sets
301
+	 * the default behaviour for that object.
302
+	 *
303
+	 * @param int $mode
304
+	 *        One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
305
+	 *        PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
306
+	 *        PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION.
307
+	 *
308
+	 * @param mixed $options
309
+	 *        When $mode is PEAR_ERROR_TRIGGER, this is the error level (one
310
+	 *        of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
311
+	 *
312
+	 *        When $mode is PEAR_ERROR_CALLBACK, this parameter is expected
313
+	 *        to be the callback function or method.  A callback
314
+	 *        function is a string with the name of the function, a
315
+	 *        callback method is an array of two elements: the element
316
+	 *        at index 0 is the object, and the element at index 1 is
317
+	 *        the name of the method to call in the object.
318
+	 *
319
+	 *        When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is
320
+	 *        a printf format string used when printing the error
321
+	 *        message.
322
+	 *
323
+	 * @access public
324
+	 * @return void
325
+	 * @see PEAR_ERROR_RETURN
326
+	 * @see PEAR_ERROR_PRINT
327
+	 * @see PEAR_ERROR_TRIGGER
328
+	 * @see PEAR_ERROR_DIE
329
+	 * @see PEAR_ERROR_CALLBACK
330
+	 * @see PEAR_ERROR_EXCEPTION
331
+	 *
332
+	 * @since PHP 4.0.5
333
+	 */
334
+
335
+	function setErrorHandling($mode = null, $options = null)
336
+	{
337
+		if (isset($this) && is_a($this, 'PEAR')) {
338
+			$setmode     = &$this->_default_error_mode;
339
+			$setoptions  = &$this->_default_error_options;
340
+		} else {
341
+			$setmode     = &$GLOBALS['_PEAR_default_error_mode'];
342
+			$setoptions  = &$GLOBALS['_PEAR_default_error_options'];
343
+		}
344
+
345
+		switch ($mode) {
346
+			case PEAR_ERROR_EXCEPTION:
347
+			case PEAR_ERROR_RETURN:
348
+			case PEAR_ERROR_PRINT:
349
+			case PEAR_ERROR_TRIGGER:
350
+			case PEAR_ERROR_DIE:
351
+			case null:
352
+				$setmode = $mode;
353
+				$setoptions = $options;
354
+				break;
355
+
356
+			case PEAR_ERROR_CALLBACK:
357
+				$setmode = $mode;
358
+				// class/object method callback
359
+				if (is_callable($options)) {
360
+					$setoptions = $options;
361
+				} else {
362
+					trigger_error("invalid error callback", E_USER_WARNING);
363
+				}
364
+				break;
365
+
366
+			default:
367
+				trigger_error("invalid error mode", E_USER_WARNING);
368
+				break;
369
+		}
370
+	}
371
+
372
+	// }}}
373
+	// {{{ expectError()
374
+
375
+	/**
376
+	 * This method is used to tell which errors you expect to get.
377
+	 * Expected errors are always returned with error mode
378
+	 * PEAR_ERROR_RETURN.  Expected error codes are stored in a stack,
379
+	 * and this method pushes a new element onto it.  The list of
380
+	 * expected errors are in effect until they are popped off the
381
+	 * stack with the popExpect() method.
382
+	 *
383
+	 * Note that this method can not be called statically
384
+	 *
385
+	 * @param mixed $code a single error code or an array of error codes to expect
386
+	 *
387
+	 * @return int     the new depth of the "expected errors" stack
388
+	 * @access public
389
+	 */
390
+	function expectError($code = '*')
391
+	{
392
+		if (is_array($code)) {
393
+			array_push($this->_expected_errors, $code);
394
+		} else {
395
+			array_push($this->_expected_errors, array($code));
396
+		}
397
+		return sizeof($this->_expected_errors);
398
+	}
399
+
400
+	// }}}
401
+	// {{{ popExpect()
402
+
403
+	/**
404
+	 * This method pops one element off the expected error codes
405
+	 * stack.
406
+	 *
407
+	 * @return array   the list of error codes that were popped
408
+	 */
409
+	function popExpect()
410
+	{
411
+		return array_pop($this->_expected_errors);
412
+	}
413
+
414
+	// }}}
415
+	// {{{ _checkDelExpect()
416
+
417
+	/**
418
+	 * This method checks unsets an error code if available
419
+	 *
420
+	 * @param mixed error code
421
+	 * @return bool true if the error code was unset, false otherwise
422
+	 * @access private
423
+	 * @since PHP 4.3.0
424
+	 */
425
+	function _checkDelExpect($error_code)
426
+	{
427
+		$deleted = false;
428
+
429
+		foreach ($this->_expected_errors AS $key => $error_array) {
430
+			if (in_array($error_code, $error_array)) {
431
+				unset($this->_expected_errors[$key][array_search($error_code, $error_array)]);
432
+				$deleted = true;
433
+			}
434
+
435
+			// clean up empty arrays
436
+			if (0 == count($this->_expected_errors[$key])) {
437
+				unset($this->_expected_errors[$key]);
438
+			}
439
+		}
440
+		return $deleted;
441
+	}
442
+
443
+	// }}}
444
+	// {{{ delExpect()
445
+
446
+	/**
447
+	 * This method deletes all occurences of the specified element from
448
+	 * the expected error codes stack.
449
+	 *
450
+	 * @param  mixed $error_code error code that should be deleted
451
+	 * @return mixed list of error codes that were deleted or error
452
+	 * @access public
453
+	 * @since PHP 4.3.0
454
+	 */
455
+	function delExpect($error_code)
456
+	{
457
+		$deleted = false;
458
+
459
+		if ((is_array($error_code) && (0 != count($error_code)))) {
460
+			// $error_code is a non-empty array here;
461
+			// we walk through it trying to unset all
462
+			// values
463
+			foreach($error_code as $key => $error) {
464
+				if ($this->_checkDelExpect($error)) {
465
+					$deleted =  true;
466
+				} else {
467
+					$deleted = false;
468
+				}
469
+			}
470
+			return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
471
+		} elseif (!empty($error_code)) {
472
+			// $error_code comes alone, trying to unset it
473
+			if ($this->_checkDelExpect($error_code)) {
474
+				return true;
475
+			} else {
476
+				return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
477
+			}
478
+		} else {
479
+			// $error_code is empty
480
+			return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME
481
+		}
482
+	}
483
+
484
+	// }}}
485
+	// {{{ raiseError()
486
+
487
+	/**
488
+	 * This method is a wrapper that returns an instance of the
489
+	 * configured error class with this object's default error
490
+	 * handling applied.  If the $mode and $options parameters are not
491
+	 * specified, the object's defaults are used.
492
+	 *
493
+	 * @param mixed $message a text error message or a PEAR error object
494
+	 *
495
+	 * @param int $code      a numeric error code (it is up to your class
496
+	 *                  to define these if you want to use codes)
497
+	 *
498
+	 * @param int $mode      One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
499
+	 *                  PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
500
+	 *                  PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION.
501
+	 *
502
+	 * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter
503
+	 *                  specifies the PHP-internal error level (one of
504
+	 *                  E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
505
+	 *                  If $mode is PEAR_ERROR_CALLBACK, this
506
+	 *                  parameter specifies the callback function or
507
+	 *                  method.  In other error modes this parameter
508
+	 *                  is ignored.
509
+	 *
510
+	 * @param string $userinfo If you need to pass along for example debug
511
+	 *                  information, this parameter is meant for that.
512
+	 *
513
+	 * @param string $error_class The returned error object will be
514
+	 *                  instantiated from this class, if specified.
515
+	 *
516
+	 * @param bool $skipmsg If true, raiseError will only pass error codes,
517
+	 *                  the error message parameter will be dropped.
518
+	 *
519
+	 * @access public
520
+	 * @return object   a PEAR error object
521
+	 * @see PEAR::setErrorHandling
522
+	 * @since PHP 4.0.5
523
+	 */
524
+	function &raiseError($message = null,
525
+						 $code = null,
526
+						 $mode = null,
527
+						 $options = null,
528
+						 $userinfo = null,
529
+						 $error_class = null,
530
+						 $skipmsg = false)
531
+	{
532
+		// The error is yet a PEAR error object
533
+		if (is_object($message)) {
534
+			$code        = $message->getCode();
535
+			$userinfo    = $message->getUserInfo();
536
+			$error_class = $message->getType();
537
+			$message->error_message_prefix = '';
538
+			$message     = $message->getMessage();
539
+		}
540
+
541
+		if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) {
542
+			if ($exp[0] == "*" ||
543
+				(is_int(reset($exp)) && in_array($code, $exp)) ||
544
+				(is_string(reset($exp)) && in_array($message, $exp))) {
545
+				$mode = PEAR_ERROR_RETURN;
546
+			}
547
+		}
548
+		// No mode given, try global ones
549
+		if ($mode === null) {
550
+			// Class error handler
551
+			if (isset($this) && isset($this->_default_error_mode)) {
552
+				$mode    = $this->_default_error_mode;
553
+				$options = $this->_default_error_options;
554
+			// Global error handler
555
+			} elseif (isset($GLOBALS['_PEAR_default_error_mode'])) {
556
+				$mode    = $GLOBALS['_PEAR_default_error_mode'];
557
+				$options = $GLOBALS['_PEAR_default_error_options'];
558
+			}
559
+		}
560
+
561
+		if ($error_class !== null) {
562
+			$ec = $error_class;
563
+		} elseif (isset($this) && isset($this->_error_class)) {
564
+			$ec = $this->_error_class;
565
+		} else {
566
+			$ec = 'PEAR_Error';
567
+		}
568
+		if ($skipmsg) {
569
+			$a = &new $ec($code, $mode, $options, $userinfo);
570
+			return $a;
571
+		} else {
572
+			$a = &new $ec($message, $code, $mode, $options, $userinfo);
573
+			return $a;
574
+		}
575
+	}
576
+
577
+	// }}}
578
+	// {{{ throwError()
579
+
580
+	/**
581
+	 * Simpler form of raiseError with fewer options.  In most cases
582
+	 * message, code and userinfo are enough.
583
+	 *
584
+	 * @param string $message
585
+	 *
586
+	 */
587
+	function &throwError($message = null,
588
+						 $code = null,
589
+						 $userinfo = null)
590
+	{
591
+		if (isset($this) && is_a($this, 'PEAR')) {
592
+			$a = &$this->raiseError($message, $code, null, null, $userinfo);
593
+			return $a;
594
+		} else {
595
+			$a = &PEAR::raiseError($message, $code, null, null, $userinfo);
596
+			return $a;
597
+		}
598
+	}
599
+
600
+	// }}}
601
+	function staticPushErrorHandling($mode, $options = null)
602
+	{
603
+		$stack = &$GLOBALS['_PEAR_error_handler_stack'];
604
+		$def_mode    = &$GLOBALS['_PEAR_default_error_mode'];
605
+		$def_options = &$GLOBALS['_PEAR_default_error_options'];
606
+		$stack[] = array($def_mode, $def_options);
607
+		switch ($mode) {
608
+			case PEAR_ERROR_EXCEPTION:
609
+			case PEAR_ERROR_RETURN:
610
+			case PEAR_ERROR_PRINT:
611
+			case PEAR_ERROR_TRIGGER:
612
+			case PEAR_ERROR_DIE:
613
+			case null:
614
+				$def_mode = $mode;
615
+				$def_options = $options;
616
+				break;
617
+
618
+			case PEAR_ERROR_CALLBACK:
619
+				$def_mode = $mode;
620
+				// class/object method callback
621
+				if (is_callable($options)) {
622
+					$def_options = $options;
623
+				} else {
624
+					trigger_error("invalid error callback", E_USER_WARNING);
625
+				}
626
+				break;
627
+
628
+			default:
629
+				trigger_error("invalid error mode", E_USER_WARNING);
630
+				break;
631
+		}
632
+		$stack[] = array($mode, $options);
633
+		return true;
634
+	}
635
+
636
+	function staticPopErrorHandling()
637
+	{
638
+		$stack = &$GLOBALS['_PEAR_error_handler_stack'];
639
+		$setmode     = &$GLOBALS['_PEAR_default_error_mode'];
640
+		$setoptions  = &$GLOBALS['_PEAR_default_error_options'];
641
+		array_pop($stack);
642
+		list($mode, $options) = $stack[sizeof($stack) - 1];
643
+		array_pop($stack);
644
+		switch ($mode) {
645
+			case PEAR_ERROR_EXCEPTION:
646
+			case PEAR_ERROR_RETURN:
647
+			case PEAR_ERROR_PRINT:
648
+			case PEAR_ERROR_TRIGGER:
649
+			case PEAR_ERROR_DIE:
650
+			case null:
651
+				$setmode = $mode;
652
+				$setoptions = $options;
653
+				break;
654
+
655
+			case PEAR_ERROR_CALLBACK:
656
+				$setmode = $mode;
657
+				// class/object method callback
658
+				if (is_callable($options)) {
659
+					$setoptions = $options;
660
+				} else {
661
+					trigger_error("invalid error callback", E_USER_WARNING);
662
+				}
663
+				break;
664
+
665
+			default:
666
+				trigger_error("invalid error mode", E_USER_WARNING);
667
+				break;
668
+		}
669
+		return true;
670
+	}
671
+
672
+	// {{{ pushErrorHandling()
673
+
674
+	/**
675
+	 * Push a new error handler on top of the error handler options stack. With this
676
+	 * you can easily override the actual error handler for some code and restore
677
+	 * it later with popErrorHandling.
678
+	 *
679
+	 * @param mixed $mode (same as setErrorHandling)
680
+	 * @param mixed $options (same as setErrorHandling)
681
+	 *
682
+	 * @return bool Always true
683
+	 *
684
+	 * @see PEAR::setErrorHandling
685
+	 */
686
+	function pushErrorHandling($mode, $options = null)
687
+	{
688
+		$stack = &$GLOBALS['_PEAR_error_handler_stack'];
689
+		if (isset($this) && is_a($this, 'PEAR')) {
690
+			$def_mode    = &$this->_default_error_mode;
691
+			$def_options = &$this->_default_error_options;
692
+		} else {
693
+			$def_mode    = &$GLOBALS['_PEAR_default_error_mode'];
694
+			$def_options = &$GLOBALS['_PEAR_default_error_options'];
695
+		}
696
+		$stack[] = array($def_mode, $def_options);
697
+
698
+		if (isset($this) && is_a($this, 'PEAR')) {
699
+			$this->setErrorHandling($mode, $options);
700
+		} else {
701
+			PEAR::setErrorHandling($mode, $options);
702
+		}
703
+		$stack[] = array($mode, $options);
704
+		return true;
705
+	}
706
+
707
+	// }}}
708
+	// {{{ popErrorHandling()
709
+
710
+	/**
711
+	 * Pop the last error handler used
712
+	 *
713
+	 * @return bool Always true
714
+	 *
715
+	 * @see PEAR::pushErrorHandling
716
+	 */
717
+	function popErrorHandling()
718
+	{
719
+		$stack = &$GLOBALS['_PEAR_error_handler_stack'];
720
+		array_pop($stack);
721
+		list($mode, $options) = $stack[sizeof($stack) - 1];
722
+		array_pop($stack);
723
+		if (isset($this) && is_a($this, 'PEAR')) {
724
+			$this->setErrorHandling($mode, $options);
725
+		} else {
726
+			PEAR::setErrorHandling($mode, $options);
727
+		}
728
+		return true;
729
+	}
730
+
731
+	// }}}
732
+	// {{{ loadExtension()
733
+
734
+	/**
735
+	 * OS independant PHP extension load. Remember to take care
736
+	 * on the correct extension name for case sensitive OSes.
737
+	 *
738
+	 * @param string $ext The extension name
739
+	 * @return bool Success or not on the dl() call
740
+	 */
741
+	function loadExtension($ext)
742
+	{
743
+		if (!extension_loaded($ext)) {
744
+			// if either returns true dl() will produce a FATAL error, stop that
745
+			if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) {
746
+				return false;
747
+			}
748
+			if (OS_WINDOWS) {
749
+				$suffix = '.dll';
750
+			} elseif (PHP_OS == 'HP-UX') {
751
+				$suffix = '.sl';
752
+			} elseif (PHP_OS == 'AIX') {
753
+				$suffix = '.a';
754
+			} elseif (PHP_OS == 'OSX') {
755
+				$suffix = '.bundle';
756
+			} else {
757
+				$suffix = '.so';
758
+			}
759
+			return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix);
760
+		}
761
+		return true;
762
+	}
763
+
764
+	// }}}
765 765
 }
766 766
 
767 767
 // {{{ _PEAR_call_destructors()
768 768
 
769 769
 function _PEAR_call_destructors()
770 770
 {
771
-    global $_PEAR_destructor_object_list;
772
-    if (is_array($_PEAR_destructor_object_list) &&
773
-        sizeof($_PEAR_destructor_object_list))
774
-    {
775
-        reset($_PEAR_destructor_object_list);
776
-        if (PEAR::getStaticProperty('PEAR', 'destructlifo')) {
777
-            $_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list);
778
-        }
779
-        while (list($k, $objref) = each($_PEAR_destructor_object_list)) {
780
-            $classname = get_class($objref);
781
-            while ($classname) {
782
-                $destructor = "_$classname";
783
-                if (method_exists($objref, $destructor)) {
784
-                    $objref->$destructor();
785
-                    break;
786
-                } else {
787
-                    $classname = get_parent_class($classname);
788
-                }
789
-            }
790
-        }
791
-        // Empty the object list to ensure that destructors are
792
-        // not called more than once.
793
-        $_PEAR_destructor_object_list = array();
794
-    }
795
-
796
-    // Now call the shutdown functions
797
-    if (is_array($GLOBALS['_PEAR_shutdown_funcs']) AND !empty($GLOBALS['_PEAR_shutdown_funcs'])) {
798
-        foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) {
799
-            call_user_func_array($value[0], $value[1]);
800
-        }
801
-    }
771
+	global $_PEAR_destructor_object_list;
772
+	if (is_array($_PEAR_destructor_object_list) &&
773
+		sizeof($_PEAR_destructor_object_list))
774
+	{
775
+		reset($_PEAR_destructor_object_list);
776
+		if (PEAR::getStaticProperty('PEAR', 'destructlifo')) {
777
+			$_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list);
778
+		}
779
+		while (list($k, $objref) = each($_PEAR_destructor_object_list)) {
780
+			$classname = get_class($objref);
781
+			while ($classname) {
782
+				$destructor = "_$classname";
783
+				if (method_exists($objref, $destructor)) {
784
+					$objref->$destructor();
785
+					break;
786
+				} else {
787
+					$classname = get_parent_class($classname);
788
+				}
789
+			}
790
+		}
791
+		// Empty the object list to ensure that destructors are
792
+		// not called more than once.
793
+		$_PEAR_destructor_object_list = array();
794
+	}
795
+
796
+	// Now call the shutdown functions
797
+	if (is_array($GLOBALS['_PEAR_shutdown_funcs']) AND !empty($GLOBALS['_PEAR_shutdown_funcs'])) {
798
+		foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) {
799
+			call_user_func_array($value[0], $value[1]);
800
+		}
801
+	}
802 802
 }
803 803
 
804 804
 // }}}
@@ -821,281 +821,281 @@  discard block
 block discarded – undo
821 821
  */
822 822
 class PEAR_Error
823 823
 {
824
-    // {{{ properties
825
-
826
-    var $error_message_prefix = '';
827
-    var $mode                 = PEAR_ERROR_RETURN;
828
-    var $level                = E_USER_NOTICE;
829
-    var $code                 = -1;
830
-    var $message              = '';
831
-    var $userinfo             = '';
832
-    var $backtrace            = null;
833
-
834
-    // }}}
835
-    // {{{ constructor
836
-
837
-    /**
838
-     * PEAR_Error constructor
839
-     *
840
-     * @param string $message  message
841
-     *
842
-     * @param int $code     (optional) error code
843
-     *
844
-     * @param int $mode     (optional) error mode, one of: PEAR_ERROR_RETURN,
845
-     * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER,
846
-     * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION
847
-     *
848
-     * @param mixed $options   (optional) error level, _OR_ in the case of
849
-     * PEAR_ERROR_CALLBACK, the callback function or object/method
850
-     * tuple.
851
-     *
852
-     * @param string $userinfo (optional) additional user/debug info
853
-     *
854
-     * @access public
855
-     *
856
-     */
857
-    function PEAR_Error($message = 'unknown error', $code = null,
858
-                        $mode = null, $options = null, $userinfo = null)
859
-    {
860
-        if ($mode === null) {
861
-            $mode = PEAR_ERROR_RETURN;
862
-        }
863
-        $this->message   = $message;
864
-        $this->code      = $code;
865
-        $this->mode      = $mode;
866
-        $this->userinfo  = $userinfo;
867
-        if (!PEAR::getStaticProperty('PEAR_Error', 'skiptrace')) {
868
-            $this->backtrace = debug_backtrace();
869
-            if (isset($this->backtrace[0]) && isset($this->backtrace[0]['object'])) {
870
-                unset($this->backtrace[0]['object']);
871
-            }
872
-        }
873
-        if ($mode & PEAR_ERROR_CALLBACK) {
874
-            $this->level = E_USER_NOTICE;
875
-            $this->callback = $options;
876
-        } else {
877
-            if ($options === null) {
878
-                $options = E_USER_NOTICE;
879
-            }
880
-            $this->level = $options;
881
-            $this->callback = null;
882
-        }
883
-        if ($this->mode & PEAR_ERROR_PRINT) {
884
-            if (is_null($options) || is_int($options)) {
885
-                $format = "%s";
886
-            } else {
887
-                $format = $options;
888
-            }
889
-            printf($format, $this->getMessage());
890
-        }
891
-        if ($this->mode & PEAR_ERROR_TRIGGER) {
892
-            trigger_error($this->getMessage(), $this->level);
893
-        }
894
-        if ($this->mode & PEAR_ERROR_DIE) {
895
-            $msg = $this->getMessage();
896
-            if (is_null($options) || is_int($options)) {
897
-                $format = "%s";
898
-                if (substr($msg, -1) != "\n") {
899
-                    $msg .= "\n";
900
-                }
901
-            } else {
902
-                $format = $options;
903
-            }
904
-            die(sprintf($format, $msg));
905
-        }
906
-        if ($this->mode & PEAR_ERROR_CALLBACK) {
907
-            if (is_callable($this->callback)) {
908
-                call_user_func($this->callback, $this);
909
-            }
910
-        }
911
-        if ($this->mode & PEAR_ERROR_EXCEPTION) {
912
-            trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING);
913
-            eval('$e = new Exception($this->message, $this->code);throw($e);');
914
-        }
915
-    }
916
-
917
-    // }}}
918
-    // {{{ getMode()
919
-
920
-    /**
921
-     * Get the error mode from an error object.
922
-     *
923
-     * @return int error mode
924
-     * @access public
925
-     */
926
-    function getMode() {
927
-        return $this->mode;
928
-    }
929
-
930
-    // }}}
931
-    // {{{ getCallback()
932
-
933
-    /**
934
-     * Get the callback function/method from an error object.
935
-     *
936
-     * @return mixed callback function or object/method array
937
-     * @access public
938
-     */
939
-    function getCallback() {
940
-        return $this->callback;
941
-    }
942
-
943
-    // }}}
944
-    // {{{ getMessage()
945
-
946
-
947
-    /**
948
-     * Get the error message from an error object.
949
-     *
950
-     * @return  string  full error message
951
-     * @access public
952
-     */
953
-    function getMessage()
954
-    {
955
-        return ($this->error_message_prefix . $this->message);
956
-    }
957
-
958
-
959
-    // }}}
960
-    // {{{ getCode()
961
-
962
-    /**
963
-     * Get error code from an error object
964
-     *
965
-     * @return int error code
966
-     * @access public
967
-     */
968
-     function getCode()
969
-     {
970
-        return $this->code;
971
-     }
972
-
973
-    // }}}
974
-    // {{{ getType()
975
-
976
-    /**
977
-     * Get the name of this error/exception.
978
-     *
979
-     * @return string error/exception name (type)
980
-     * @access public
981
-     */
982
-    function getType()
983
-    {
984
-        return get_class($this);
985
-    }
986
-
987
-    // }}}
988
-    // {{{ getUserInfo()
989
-
990
-    /**
991
-     * Get additional user-supplied information.
992
-     *
993
-     * @return string user-supplied information
994
-     * @access public
995
-     */
996
-    function getUserInfo()
997
-    {
998
-        return $this->userinfo;
999
-    }
1000
-
1001
-    // }}}
1002
-    // {{{ getDebugInfo()
1003
-
1004
-    /**
1005
-     * Get additional debug information supplied by the application.
1006
-     *
1007
-     * @return string debug information
1008
-     * @access public
1009
-     */
1010
-    function getDebugInfo()
1011
-    {
1012
-        return $this->getUserInfo();
1013
-    }
1014
-
1015
-    // }}}
1016
-    // {{{ getBacktrace()
1017
-
1018
-    /**
1019
-     * Get the call backtrace from where the error was generated.
1020
-     * Supported with PHP 4.3.0 or newer.
1021
-     *
1022
-     * @param int $frame (optional) what frame to fetch
1023
-     * @return array Backtrace, or NULL if not available.
1024
-     * @access public
1025
-     */
1026
-    function getBacktrace($frame = null)
1027
-    {
1028
-        if (defined('PEAR_IGNORE_BACKTRACE')) {
1029
-            return null;
1030
-        }
1031
-        if ($frame === null) {
1032
-            return $this->backtrace;
1033
-        }
1034
-        return $this->backtrace[$frame];
1035
-    }
1036
-
1037
-    // }}}
1038
-    // {{{ addUserInfo()
1039
-
1040
-    function addUserInfo($info)
1041
-    {
1042
-        if (empty($this->userinfo)) {
1043
-            $this->userinfo = $info;
1044
-        } else {
1045
-            $this->userinfo .= " ** $info";
1046
-        }
1047
-    }
1048
-
1049
-    // }}}
1050
-    // {{{ toString()
1051
-
1052
-    /**
1053
-     * Make a string representation of this object.
1054
-     *
1055
-     * @return string a string with an object summary
1056
-     * @access public
1057
-     */
1058
-    function toString() {
1059
-        $modes = array();
1060
-        $levels = array(E_USER_NOTICE  => 'notice',
1061
-                        E_USER_WARNING => 'warning',
1062
-                        E_USER_ERROR   => 'error');
1063
-        if ($this->mode & PEAR_ERROR_CALLBACK) {
1064
-            if (is_array($this->callback)) {
1065
-                $callback = (is_object($this->callback[0]) ?
1066
-                    strtolower(get_class($this->callback[0])) :
1067
-                    $this->callback[0]) . '::' .
1068
-                    $this->callback[1];
1069
-            } else {
1070
-                $callback = $this->callback;
1071
-            }
1072
-            return sprintf('[%s: message="%s" code=%d mode=callback '.
1073
-                           'callback=%s prefix="%s" info="%s"]',
1074
-                           strtolower(get_class($this)), $this->message, $this->code,
1075
-                           $callback, $this->error_message_prefix,
1076
-                           $this->userinfo);
1077
-        }
1078
-        if ($this->mode & PEAR_ERROR_PRINT) {
1079
-            $modes[] = 'print';
1080
-        }
1081
-        if ($this->mode & PEAR_ERROR_TRIGGER) {
1082
-            $modes[] = 'trigger';
1083
-        }
1084
-        if ($this->mode & PEAR_ERROR_DIE) {
1085
-            $modes[] = 'die';
1086
-        }
1087
-        if ($this->mode & PEAR_ERROR_RETURN) {
1088
-            $modes[] = 'return';
1089
-        }
1090
-        return sprintf('[%s: message="%s" code=%d mode=%s level=%s '.
1091
-                       'prefix="%s" info="%s"]',
1092
-                       strtolower(get_class($this)), $this->message, $this->code,
1093
-                       implode("|", $modes), $levels[$this->level],
1094
-                       $this->error_message_prefix,
1095
-                       $this->userinfo);
1096
-    }
1097
-
1098
-    // }}}
824
+	// {{{ properties
825
+
826
+	var $error_message_prefix = '';
827
+	var $mode                 = PEAR_ERROR_RETURN;
828
+	var $level                = E_USER_NOTICE;
829
+	var $code                 = -1;
830
+	var $message              = '';
831
+	var $userinfo             = '';
832
+	var $backtrace            = null;
833
+
834
+	// }}}
835
+	// {{{ constructor
836
+
837
+	/**
838
+	 * PEAR_Error constructor
839
+	 *
840
+	 * @param string $message  message
841
+	 *
842
+	 * @param int $code     (optional) error code
843
+	 *
844
+	 * @param int $mode     (optional) error mode, one of: PEAR_ERROR_RETURN,
845
+	 * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER,
846
+	 * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION
847
+	 *
848
+	 * @param mixed $options   (optional) error level, _OR_ in the case of
849
+	 * PEAR_ERROR_CALLBACK, the callback function or object/method
850
+	 * tuple.
851
+	 *
852
+	 * @param string $userinfo (optional) additional user/debug info
853
+	 *
854
+	 * @access public
855
+	 *
856
+	 */
857
+	function PEAR_Error($message = 'unknown error', $code = null,
858
+						$mode = null, $options = null, $userinfo = null)
859
+	{
860
+		if ($mode === null) {
861
+			$mode = PEAR_ERROR_RETURN;
862
+		}
863
+		$this->message   = $message;
864
+		$this->code      = $code;
865
+		$this->mode      = $mode;
866
+		$this->userinfo  = $userinfo;
867
+		if (!PEAR::getStaticProperty('PEAR_Error', 'skiptrace')) {
868
+			$this->backtrace = debug_backtrace();
869
+			if (isset($this->backtrace[0]) && isset($this->backtrace[0]['object'])) {
870
+				unset($this->backtrace[0]['object']);
871
+			}
872
+		}
873
+		if ($mode & PEAR_ERROR_CALLBACK) {
874
+			$this->level = E_USER_NOTICE;
875
+			$this->callback = $options;
876
+		} else {
877
+			if ($options === null) {
878
+				$options = E_USER_NOTICE;
879
+			}
880
+			$this->level = $options;
881
+			$this->callback = null;
882
+		}
883
+		if ($this->mode & PEAR_ERROR_PRINT) {
884
+			if (is_null($options) || is_int($options)) {
885
+				$format = "%s";
886
+			} else {
887
+				$format = $options;
888
+			}
889
+			printf($format, $this->getMessage());
890
+		}
891
+		if ($this->mode & PEAR_ERROR_TRIGGER) {
892
+			trigger_error($this->getMessage(), $this->level);
893
+		}
894
+		if ($this->mode & PEAR_ERROR_DIE) {
895
+			$msg = $this->getMessage();
896
+			if (is_null($options) || is_int($options)) {
897
+				$format = "%s";
898
+				if (substr($msg, -1) != "\n") {
899
+					$msg .= "\n";
900
+				}
901
+			} else {
902
+				$format = $options;
903
+			}
904
+			die(sprintf($format, $msg));
905
+		}
906
+		if ($this->mode & PEAR_ERROR_CALLBACK) {
907
+			if (is_callable($this->callback)) {
908
+				call_user_func($this->callback, $this);
909
+			}
910
+		}
911
+		if ($this->mode & PEAR_ERROR_EXCEPTION) {
912
+			trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING);
913
+			eval('$e = new Exception($this->message, $this->code);throw($e);');
914
+		}
915
+	}
916
+
917
+	// }}}
918
+	// {{{ getMode()
919
+
920
+	/**
921
+	 * Get the error mode from an error object.
922
+	 *
923
+	 * @return int error mode
924
+	 * @access public
925
+	 */
926
+	function getMode() {
927
+		return $this->mode;
928
+	}
929
+
930
+	// }}}
931
+	// {{{ getCallback()
932
+
933
+	/**
934
+	 * Get the callback function/method from an error object.
935
+	 *
936
+	 * @return mixed callback function or object/method array
937
+	 * @access public
938
+	 */
939
+	function getCallback() {
940
+		return $this->callback;
941
+	}
942
+
943
+	// }}}
944
+	// {{{ getMessage()
945
+
946
+
947
+	/**
948
+	 * Get the error message from an error object.
949
+	 *
950
+	 * @return  string  full error message
951
+	 * @access public
952
+	 */
953
+	function getMessage()
954
+	{
955
+		return ($this->error_message_prefix . $this->message);
956
+	}
957
+
958
+
959
+	// }}}
960
+	// {{{ getCode()
961
+
962
+	/**
963
+	 * Get error code from an error object
964
+	 *
965
+	 * @return int error code
966
+	 * @access public
967
+	 */
968
+	 function getCode()
969
+	 {
970
+		return $this->code;
971
+	 }
972
+
973
+	// }}}
974
+	// {{{ getType()
975
+
976
+	/**
977
+	 * Get the name of this error/exception.
978
+	 *
979
+	 * @return string error/exception name (type)
980
+	 * @access public
981
+	 */
982
+	function getType()
983
+	{
984
+		return get_class($this);
985
+	}
986
+
987
+	// }}}
988
+	// {{{ getUserInfo()
989
+
990
+	/**
991
+	 * Get additional user-supplied information.
992
+	 *
993
+	 * @return string user-supplied information
994
+	 * @access public
995
+	 */
996
+	function getUserInfo()
997
+	{
998
+		return $this->userinfo;
999
+	}
1000
+
1001
+	// }}}
1002
+	// {{{ getDebugInfo()
1003
+
1004
+	/**
1005
+	 * Get additional debug information supplied by the application.
1006
+	 *
1007
+	 * @return string debug information
1008
+	 * @access public
1009
+	 */
1010
+	function getDebugInfo()
1011
+	{
1012
+		return $this->getUserInfo();
1013
+	}
1014
+
1015
+	// }}}
1016
+	// {{{ getBacktrace()
1017
+
1018
+	/**
1019
+	 * Get the call backtrace from where the error was generated.
1020
+	 * Supported with PHP 4.3.0 or newer.
1021
+	 *
1022
+	 * @param int $frame (optional) what frame to fetch
1023
+	 * @return array Backtrace, or NULL if not available.
1024
+	 * @access public
1025
+	 */
1026
+	function getBacktrace($frame = null)
1027
+	{
1028
+		if (defined('PEAR_IGNORE_BACKTRACE')) {
1029
+			return null;
1030
+		}
1031
+		if ($frame === null) {
1032
+			return $this->backtrace;
1033
+		}
1034
+		return $this->backtrace[$frame];
1035
+	}
1036
+
1037
+	// }}}
1038
+	// {{{ addUserInfo()
1039
+
1040
+	function addUserInfo($info)
1041
+	{
1042
+		if (empty($this->userinfo)) {
1043
+			$this->userinfo = $info;
1044
+		} else {
1045
+			$this->userinfo .= " ** $info";
1046
+		}
1047
+	}
1048
+
1049
+	// }}}
1050
+	// {{{ toString()
1051
+
1052
+	/**
1053
+	 * Make a string representation of this object.
1054
+	 *
1055
+	 * @return string a string with an object summary
1056
+	 * @access public
1057
+	 */
1058
+	function toString() {
1059
+		$modes = array();
1060
+		$levels = array(E_USER_NOTICE  => 'notice',
1061
+						E_USER_WARNING => 'warning',
1062
+						E_USER_ERROR   => 'error');
1063
+		if ($this->mode & PEAR_ERROR_CALLBACK) {
1064
+			if (is_array($this->callback)) {
1065
+				$callback = (is_object($this->callback[0]) ?
1066
+					strtolower(get_class($this->callback[0])) :
1067
+					$this->callback[0]) . '::' .
1068
+					$this->callback[1];
1069
+			} else {
1070
+				$callback = $this->callback;
1071
+			}
1072
+			return sprintf('[%s: message="%s" code=%d mode=callback '.
1073
+						   'callback=%s prefix="%s" info="%s"]',
1074
+						   strtolower(get_class($this)), $this->message, $this->code,
1075
+						   $callback, $this->error_message_prefix,
1076
+						   $this->userinfo);
1077
+		}
1078
+		if ($this->mode & PEAR_ERROR_PRINT) {
1079
+			$modes[] = 'print';
1080
+		}
1081
+		if ($this->mode & PEAR_ERROR_TRIGGER) {
1082
+			$modes[] = 'trigger';
1083
+		}
1084
+		if ($this->mode & PEAR_ERROR_DIE) {
1085
+			$modes[] = 'die';
1086
+		}
1087
+		if ($this->mode & PEAR_ERROR_RETURN) {
1088
+			$modes[] = 'return';
1089
+		}
1090
+		return sprintf('[%s: message="%s" code=%d mode=%s level=%s '.
1091
+					   'prefix="%s" info="%s"]',
1092
+					   strtolower(get_class($this)), $this->message, $this->code,
1093
+					   implode("|", $modes), $levels[$this->level],
1094
+					   $this->error_message_prefix,
1095
+					   $this->userinfo);
1096
+	}
1097
+
1098
+	// }}}
1099 1099
 }
1100 1100
 
1101 1101
 /*
Please login to merge, or discard this patch.
Spacing   +13 added lines, -14 removed lines patch added patch discarded remove patch
@@ -22,11 +22,11 @@  discard block
 block discarded – undo
22 22
 /**#@+
23 23
  * ERROR constants
24 24
  */
25
-define('PEAR_ERROR_RETURN',     1);
26
-define('PEAR_ERROR_PRINT',      2);
27
-define('PEAR_ERROR_TRIGGER',    4);
28
-define('PEAR_ERROR_DIE',        8);
29
-define('PEAR_ERROR_CALLBACK',  16);
25
+define('PEAR_ERROR_RETURN', 1);
26
+define('PEAR_ERROR_PRINT', 2);
27
+define('PEAR_ERROR_TRIGGER', 4);
28
+define('PEAR_ERROR_DIE', 8);
29
+define('PEAR_ERROR_CALLBACK', 16);
30 30
 /**
31 31
  * WARNING: obsolete
32 32
  * @deprecated
@@ -38,12 +38,12 @@  discard block
 block discarded – undo
38 38
 
39 39
 if (substr(PHP_OS, 0, 3) == 'WIN') {
40 40
     define('OS_WINDOWS', true);
41
-    define('OS_UNIX',    false);
42
-    define('PEAR_OS',    'Windows');
41
+    define('OS_UNIX', false);
42
+    define('PEAR_OS', 'Windows');
43 43
 } else {
44 44
     define('OS_WINDOWS', false);
45
-    define('OS_UNIX',    true);
46
-    define('PEAR_OS',    'Unix'); // blatant assumption
45
+    define('OS_UNIX', true);
46
+    define('PEAR_OS', 'Unix'); // blatant assumption
47 47
 }
48 48
 
49 49
 $GLOBALS['_PEAR_default_error_mode']     = PEAR_ERROR_RETURN;
@@ -447,9 +447,9 @@  discard block
 block discarded – undo
447 447
             // $error_code is a non-empty array here;
448 448
             // we walk through it trying to unset all
449 449
             // values
450
-            foreach($error_code as $key => $error) {
450
+            foreach ($error_code as $key => $error) {
451 451
                 if ($this->_checkDelExpect($error)) {
452
-                    $deleted =  true;
452
+                    $deleted = true;
453 453
                 } else {
454 454
                     $deleted = false;
455 455
                 }
@@ -976,7 +976,7 @@  discard block
 block discarded – undo
976 976
      */
977 977
     function getMessage()
978 978
     {
979
-        return ($this->error_message_prefix . $this->message);
979
+        return ($this->error_message_prefix.$this->message);
980 980
     }
981 981
 
982 982
 
@@ -1093,8 +1093,7 @@  discard block
 block discarded – undo
1093 1093
         if ($this->mode & PEAR_ERROR_CALLBACK) {
1094 1094
             if (is_array($this->callback)) {
1095 1095
                 $callback = (is_object($this->callback[0]) ?
1096
-                    strtolower(get_class($this->callback[0])) :
1097
-                    $this->callback[0]) . '::' .
1096
+                    strtolower(get_class($this->callback[0])) : $this->callback[0]).'::'.
1098 1097
                     $this->callback[1];
1099 1098
             } else {
1100 1099
                 $callback = $this->callback;
Please login to merge, or discard this patch.
libs/idna_convert/example.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -8,24 +8,24 @@
 block discarded – undo
8 8
 
9 9
 $version_select = '<select size="1" name="idn_version"><option value="2003">IDNA 2003</option><option value="2008"';
10 10
 if ($idn_version == 2008) {
11
-    $version_select .= ' selected="selected"';
11
+	$version_select .= ' selected="selected"';
12 12
 }
13 13
 $version_select .= '>IDNA 2008</option></select>';
14 14
 
15 15
 if (isset($_REQUEST['encode'])) {
16
-    $decoded = isset($_REQUEST['decoded']) ? stripslashes($_REQUEST['decoded']) : '';
17
-    $encoded = $IDN->encode($decoded);
16
+	$decoded = isset($_REQUEST['decoded']) ? stripslashes($_REQUEST['decoded']) : '';
17
+	$encoded = $IDN->encode($decoded);
18 18
 }
19 19
 if (isset($_REQUEST['decode'])) {
20
-    $encoded = isset($_REQUEST['encoded']) ? stripslashes($_REQUEST['encoded']) : '';
21
-    $decoded = $IDN->decode($encoded);
20
+	$encoded = isset($_REQUEST['encoded']) ? stripslashes($_REQUEST['encoded']) : '';
21
+	$decoded = $IDN->decode($encoded);
22 22
 }
23 23
 $lang = 'en';
24 24
 if (isset($_REQUEST['lang'])) {
25
-    if ('de' == $_REQUEST['lang'] || 'en' == $_REQUEST['lang']) {
26
-        $lang = $_REQUEST['lang'];
27
-        $add .= '<input type="hidden" name="lang" value="'.$lang.'" />'."\n";
28
-    }
25
+	if ('de' == $_REQUEST['lang'] || 'en' == $_REQUEST['lang']) {
26
+		$lang = $_REQUEST['lang'];
27
+		$add .= '<input type="hidden" name="lang" value="'.$lang.'" />'."\n";
28
+	}
29 29
 }
30 30
 ?>
31 31
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Please login to merge, or discard this patch.
libs/idna_convert/transcode_wrapper.php 2 patches
Braces   +27 added lines, -9 removed lines patch added patch discarded remove patch
@@ -30,15 +30,21 @@  discard block
 block discarded – undo
30 30
     }
31 31
     if (function_exists('mb_convert_encoding')) {
32 32
         $conv = @mb_convert_encoding($string, 'UTF-8', strtoupper($encoding));
33
-        if ($conv) return $conv;
33
+        if ($conv) {
34
+        	return $conv;
35
+        }
34 36
     }
35 37
     if (function_exists('iconv')) {
36 38
         $conv = @iconv(strtoupper($encoding), 'UTF-8', $string);
37
-        if ($conv) return $conv;
39
+        if ($conv) {
40
+        	return $conv;
41
+        }
38 42
     }
39 43
     if (function_exists('libiconv')) {
40 44
         $conv = @libiconv(strtoupper($encoding), 'UTF-8', $string);
41
-        if ($conv) return $conv;
45
+        if ($conv) {
46
+        	return $conv;
47
+        }
42 48
     }
43 49
     return $safe;
44 50
 }
@@ -55,7 +61,9 @@  discard block
 block discarded – undo
55 61
 function decode_utf8($string = '', $encoding = 'iso-8859-1', $safe_mode = false)
56 62
 {
57 63
     $safe = ($safe_mode) ? $string : false;
58
-    if (!$encoding) $encoding = 'ISO-8859-1';
64
+    if (!$encoding) {
65
+    	$encoding = 'ISO-8859-1';
66
+    }
59 67
     if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
60 68
         return $string;
61 69
     } elseif (strtoupper($encoding) == 'ISO-8859-1') {
@@ -67,15 +75,21 @@  discard block
 block discarded – undo
67 75
     }
68 76
     if (function_exists('mb_convert_encoding')) {
69 77
         $conv = @mb_convert_encoding($string, strtoupper($encoding), 'UTF-8');
70
-        if ($conv) return $conv;
78
+        if ($conv) {
79
+        	return $conv;
80
+        }
71 81
     }
72 82
     if (function_exists('iconv')) {
73 83
         $conv = @iconv('UTF-8', strtoupper($encoding), $string);
74
-        if ($conv) return $conv;
84
+        if ($conv) {
85
+        	return $conv;
86
+        }
75 87
     }
76 88
     if (function_exists('libiconv')) {
77 89
         $conv = @libiconv('UTF-8', strtoupper($encoding), $string);
78
-        if ($conv) return $conv;
90
+        if ($conv) {
91
+        	return $conv;
92
+        }
79 93
     }
80 94
     return $safe;
81 95
 }
@@ -89,7 +103,9 @@  discard block
 block discarded – undo
89 103
  */
90 104
 function map_w1252_iso8859_1($string = '')
91 105
 {
92
-    if ($string == '') return '';
106
+    if ($string == '') {
107
+    	return '';
108
+    }
93 109
     $return = '';
94 110
     for ($i = 0; $i < strlen($string); ++$i) {
95 111
         $c = ord($string{$i});
@@ -116,7 +132,9 @@  discard block
 block discarded – undo
116 132
  */
117 133
 function map_iso8859_1_w1252($string = '')
118 134
 {
119
-    if ($string == '') return '';
135
+    if ($string == '') {
136
+    	return '';
137
+    }
120 138
     $return = '';
121 139
     for ($i = 0; $i < strlen($string); ++$i) {
122 140
         $c = ord($string{$i});
Please login to merge, or discard this patch.
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -18,29 +18,29 @@  discard block
 block discarded – undo
18 18
  */
19 19
 function encode_utf8($string = '', $encoding = 'iso-8859-1', $safe_mode = false)
20 20
 {
21
-    $safe = ($safe_mode) ? $string : false;
22
-    if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
23
-        return $string;
24
-    } elseif (strtoupper($encoding) == 'ISO-8859-1') {
25
-        return utf8_encode($string);
26
-    } elseif (strtoupper($encoding) == 'WINDOWS-1252') {
27
-        return utf8_encode(map_w1252_iso8859_1($string));
28
-    } elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
29
-        $encoding = 'utf-7';
30
-    }
31
-    if (function_exists('mb_convert_encoding')) {
32
-        $conv = @mb_convert_encoding($string, 'UTF-8', strtoupper($encoding));
33
-        if ($conv) return $conv;
34
-    }
35
-    if (function_exists('iconv')) {
36
-        $conv = @iconv(strtoupper($encoding), 'UTF-8', $string);
37
-        if ($conv) return $conv;
38
-    }
39
-    if (function_exists('libiconv')) {
40
-        $conv = @libiconv(strtoupper($encoding), 'UTF-8', $string);
41
-        if ($conv) return $conv;
42
-    }
43
-    return $safe;
21
+	$safe = ($safe_mode) ? $string : false;
22
+	if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
23
+		return $string;
24
+	} elseif (strtoupper($encoding) == 'ISO-8859-1') {
25
+		return utf8_encode($string);
26
+	} elseif (strtoupper($encoding) == 'WINDOWS-1252') {
27
+		return utf8_encode(map_w1252_iso8859_1($string));
28
+	} elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
29
+		$encoding = 'utf-7';
30
+	}
31
+	if (function_exists('mb_convert_encoding')) {
32
+		$conv = @mb_convert_encoding($string, 'UTF-8', strtoupper($encoding));
33
+		if ($conv) return $conv;
34
+	}
35
+	if (function_exists('iconv')) {
36
+		$conv = @iconv(strtoupper($encoding), 'UTF-8', $string);
37
+		if ($conv) return $conv;
38
+	}
39
+	if (function_exists('libiconv')) {
40
+		$conv = @libiconv(strtoupper($encoding), 'UTF-8', $string);
41
+		if ($conv) return $conv;
42
+	}
43
+	return $safe;
44 44
 }
45 45
 
46 46
 /**
@@ -54,30 +54,30 @@  discard block
 block discarded – undo
54 54
  */
55 55
 function decode_utf8($string = '', $encoding = 'iso-8859-1', $safe_mode = false)
56 56
 {
57
-    $safe = ($safe_mode) ? $string : false;
58
-    if (!$encoding) $encoding = 'ISO-8859-1';
59
-    if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
60
-        return $string;
61
-    } elseif (strtoupper($encoding) == 'ISO-8859-1') {
62
-        return utf8_decode($string);
63
-    } elseif (strtoupper($encoding) == 'WINDOWS-1252') {
64
-        return map_iso8859_1_w1252(utf8_decode($string));
65
-    } elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
66
-        $encoding = 'utf-7';
67
-    }
68
-    if (function_exists('mb_convert_encoding')) {
69
-        $conv = @mb_convert_encoding($string, strtoupper($encoding), 'UTF-8');
70
-        if ($conv) return $conv;
71
-    }
72
-    if (function_exists('iconv')) {
73
-        $conv = @iconv('UTF-8', strtoupper($encoding), $string);
74
-        if ($conv) return $conv;
75
-    }
76
-    if (function_exists('libiconv')) {
77
-        $conv = @libiconv('UTF-8', strtoupper($encoding), $string);
78
-        if ($conv) return $conv;
79
-    }
80
-    return $safe;
57
+	$safe = ($safe_mode) ? $string : false;
58
+	if (!$encoding) $encoding = 'ISO-8859-1';
59
+	if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
60
+		return $string;
61
+	} elseif (strtoupper($encoding) == 'ISO-8859-1') {
62
+		return utf8_decode($string);
63
+	} elseif (strtoupper($encoding) == 'WINDOWS-1252') {
64
+		return map_iso8859_1_w1252(utf8_decode($string));
65
+	} elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
66
+		$encoding = 'utf-7';
67
+	}
68
+	if (function_exists('mb_convert_encoding')) {
69
+		$conv = @mb_convert_encoding($string, strtoupper($encoding), 'UTF-8');
70
+		if ($conv) return $conv;
71
+	}
72
+	if (function_exists('iconv')) {
73
+		$conv = @iconv('UTF-8', strtoupper($encoding), $string);
74
+		if ($conv) return $conv;
75
+	}
76
+	if (function_exists('libiconv')) {
77
+		$conv = @libiconv('UTF-8', strtoupper($encoding), $string);
78
+		if ($conv) return $conv;
79
+	}
80
+	return $safe;
81 81
 }
82 82
 
83 83
 /**
@@ -89,22 +89,22 @@  discard block
 block discarded – undo
89 89
  */
90 90
 function map_w1252_iso8859_1($string = '')
91 91
 {
92
-    if ($string == '') return '';
93
-    $return = '';
94
-    for ($i = 0; $i < strlen($string); ++$i) {
95
-        $c = ord($string{$i});
96
-        switch ($c) {
97
-            case 129: $return .= chr(252); break;
98
-            case 132: $return .= chr(228); break;
99
-            case 142: $return .= chr(196); break;
100
-            case 148: $return .= chr(246); break;
101
-            case 153: $return .= chr(214); break;
102
-            case 154: $return .= chr(220); break;
103
-            case 225: $return .= chr(223); break;
104
-            default: $return .= chr($c); break;
105
-        }
106
-    }
107
-    return $return;
92
+	if ($string == '') return '';
93
+	$return = '';
94
+	for ($i = 0; $i < strlen($string); ++$i) {
95
+		$c = ord($string{$i});
96
+		switch ($c) {
97
+			case 129: $return .= chr(252); break;
98
+			case 132: $return .= chr(228); break;
99
+			case 142: $return .= chr(196); break;
100
+			case 148: $return .= chr(246); break;
101
+			case 153: $return .= chr(214); break;
102
+			case 154: $return .= chr(220); break;
103
+			case 225: $return .= chr(223); break;
104
+			default: $return .= chr($c); break;
105
+		}
106
+	}
107
+	return $return;
108 108
 }
109 109
 
110 110
 /**
@@ -116,22 +116,22 @@  discard block
 block discarded – undo
116 116
  */
117 117
 function map_iso8859_1_w1252($string = '')
118 118
 {
119
-    if ($string == '') return '';
120
-    $return = '';
121
-    for ($i = 0; $i < strlen($string); ++$i) {
122
-        $c = ord($string{$i});
123
-        switch ($c) {
124
-            case 196: $return .= chr(142); break;
125
-            case 214: $return .= chr(153); break;
126
-            case 220: $return .= chr(154); break;
127
-            case 223: $return .= chr(225); break;
128
-            case 228: $return .= chr(132); break;
129
-            case 246: $return .= chr(148); break;
130
-            case 252: $return .= chr(129); break;
131
-            default: $return .= chr($c); break;
132
-        }
133
-    }
134
-    return $return;
119
+	if ($string == '') return '';
120
+	$return = '';
121
+	for ($i = 0; $i < strlen($string); ++$i) {
122
+		$c = ord($string{$i});
123
+		switch ($c) {
124
+			case 196: $return .= chr(142); break;
125
+			case 214: $return .= chr(153); break;
126
+			case 220: $return .= chr(154); break;
127
+			case 223: $return .= chr(225); break;
128
+			case 228: $return .= chr(132); break;
129
+			case 246: $return .= chr(148); break;
130
+			case 252: $return .= chr(129); break;
131
+			default: $return .= chr($c); break;
132
+		}
133
+	}
134
+	return $return;
135 135
 }
136 136
 
137 137
 ?>
138 138
\ No newline at end of file
Please login to merge, or discard this patch.
libs/idna_convert/uctc.php 3 patches
Indentation   +266 added lines, -266 removed lines patch added patch discarded remove patch
@@ -16,285 +16,285 @@
 block discarded – undo
16 16
  * @version 0.0.6 2009-05-10
17 17
  */
18 18
 class uctc {
19
-    private static $mechs = array('ucs4', /*'ucs4le', 'ucs4be', */'ucs4array', /*'utf16', 'utf16le', 'utf16be', */'utf8', 'utf7', 'utf7imap');
20
-    private static $allow_overlong = false;
21
-    private static $safe_mode;
22
-    private static $safe_char;
19
+	private static $mechs = array('ucs4', /*'ucs4le', 'ucs4be', */'ucs4array', /*'utf16', 'utf16le', 'utf16be', */'utf8', 'utf7', 'utf7imap');
20
+	private static $allow_overlong = false;
21
+	private static $safe_mode;
22
+	private static $safe_char;
23 23
 
24
-    /**
25
-     * The actual conversion routine
26
-     *
27
-     * @param mixed $data  The data to convert, usually a string, array when converting from UCS-4 array
28
-     * @param string $from  Original encoding of the data
29
-     * @param string $to  Target encoding of the data
30
-     * @param bool $safe_mode  SafeMode tries to correct invalid codepoints
31
-     * @return mixed  False on failure, String or array on success, depending on target encoding
32
-     * @access public
33
-     * @since 0.0.1
34
-     */
35
-    public static function convert($data, $from, $to, $safe_mode = false, $safe_char = 0xFFFC)
36
-    {
37
-        self::$safe_mode = ($safe_mode) ? true : false;
38
-        self::$safe_char = ($safe_char) ? $safe_char : 0xFFFC;
39
-        if (self::$safe_mode) self::$allow_overlong = true;
40
-        if (!in_array($from, self::$mechs)) throw new Exception('Invalid input format specified');
41
-        if (!in_array($to, self::$mechs)) throw new Exception('Invalid output format specified');
42
-        if ($from != 'ucs4array') eval('$data = self::'.$from.'_ucs4array($data);');
43
-        if ($to != 'ucs4array') eval('$data = self::ucs4array_'.$to.'($data);');
44
-        return $data;
45
-    }
24
+	/**
25
+	 * The actual conversion routine
26
+	 *
27
+	 * @param mixed $data  The data to convert, usually a string, array when converting from UCS-4 array
28
+	 * @param string $from  Original encoding of the data
29
+	 * @param string $to  Target encoding of the data
30
+	 * @param bool $safe_mode  SafeMode tries to correct invalid codepoints
31
+	 * @return mixed  False on failure, String or array on success, depending on target encoding
32
+	 * @access public
33
+	 * @since 0.0.1
34
+	 */
35
+	public static function convert($data, $from, $to, $safe_mode = false, $safe_char = 0xFFFC)
36
+	{
37
+		self::$safe_mode = ($safe_mode) ? true : false;
38
+		self::$safe_char = ($safe_char) ? $safe_char : 0xFFFC;
39
+		if (self::$safe_mode) self::$allow_overlong = true;
40
+		if (!in_array($from, self::$mechs)) throw new Exception('Invalid input format specified');
41
+		if (!in_array($to, self::$mechs)) throw new Exception('Invalid output format specified');
42
+		if ($from != 'ucs4array') eval('$data = self::'.$from.'_ucs4array($data);');
43
+		if ($to != 'ucs4array') eval('$data = self::ucs4array_'.$to.'($data);');
44
+		return $data;
45
+	}
46 46
 
47
-    /**
48
-     * This converts an UTF-8 encoded string to its UCS-4 representation
49
-     *
50
-     * @param string $input  The UTF-8 string to convert
51
-     * @return array  Array of 32bit values representing each codepoint
52
-     * @access private
53
-     */
54
-    private static function utf8_ucs4array($input)
55
-    {
56
-        $output = array();
57
-        $out_len = 0;
58
-        $inp_len = strlen($input);
59
-        $mode = 'next';
60
-        $test = 'none';
61
-        for ($k = 0; $k < $inp_len; ++$k) {
62
-            $v = ord($input{$k}); // Extract byte from input string
47
+	/**
48
+	 * This converts an UTF-8 encoded string to its UCS-4 representation
49
+	 *
50
+	 * @param string $input  The UTF-8 string to convert
51
+	 * @return array  Array of 32bit values representing each codepoint
52
+	 * @access private
53
+	 */
54
+	private static function utf8_ucs4array($input)
55
+	{
56
+		$output = array();
57
+		$out_len = 0;
58
+		$inp_len = strlen($input);
59
+		$mode = 'next';
60
+		$test = 'none';
61
+		for ($k = 0; $k < $inp_len; ++$k) {
62
+			$v = ord($input{$k}); // Extract byte from input string
63 63
 
64
-            if ($v < 128) { // We found an ASCII char - put into stirng as is
65
-                $output[$out_len] = $v;
66
-                ++$out_len;
67
-                if ('add' == $mode) {
68
-                    if (self::$safe_mode) {
69
-                        $output[$out_len-2] = self::$safe_char;
70
-                        $mode = 'next';
71
-                    } else {
72
-                        throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
73
-                    }
74
-                }
75
-                continue;
76
-            }
77
-            if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
78
-                $start_byte = $v;
79
-                $mode = 'add';
80
-                $test = 'range';
81
-                if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
82
-                    $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
83
-                    $v = ($v - 192) << 6;
84
-                } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
85
-                    $next_byte = 1;
86
-                    $v = ($v - 224) << 12;
87
-                } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
88
-                    $next_byte = 2;
89
-                    $v = ($v - 240) << 18;
90
-                } elseif (self::$safe_mode) {
91
-                    $mode = 'next';
92
-                    $output[$out_len] = self::$safe_char;
93
-                    ++$out_len;
94
-                    continue;
95
-                } else {
96
-                    throw new Exception('This might be UTF-8, but I don\'t understand it at byte '.$k);
97
-                }
98
-                if ($inp_len-$k-$next_byte < 2) {
99
-                    $output[$out_len] = self::$safe_char;
100
-                    $mode = 'no';
101
-                    continue;
102
-                }
64
+			if ($v < 128) { // We found an ASCII char - put into stirng as is
65
+				$output[$out_len] = $v;
66
+				++$out_len;
67
+				if ('add' == $mode) {
68
+					if (self::$safe_mode) {
69
+						$output[$out_len-2] = self::$safe_char;
70
+						$mode = 'next';
71
+					} else {
72
+						throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
73
+					}
74
+				}
75
+				continue;
76
+			}
77
+			if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
78
+				$start_byte = $v;
79
+				$mode = 'add';
80
+				$test = 'range';
81
+				if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
82
+					$next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
83
+					$v = ($v - 192) << 6;
84
+				} elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
85
+					$next_byte = 1;
86
+					$v = ($v - 224) << 12;
87
+				} elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
88
+					$next_byte = 2;
89
+					$v = ($v - 240) << 18;
90
+				} elseif (self::$safe_mode) {
91
+					$mode = 'next';
92
+					$output[$out_len] = self::$safe_char;
93
+					++$out_len;
94
+					continue;
95
+				} else {
96
+					throw new Exception('This might be UTF-8, but I don\'t understand it at byte '.$k);
97
+				}
98
+				if ($inp_len-$k-$next_byte < 2) {
99
+					$output[$out_len] = self::$safe_char;
100
+					$mode = 'no';
101
+					continue;
102
+				}
103 103
 
104
-                if ('add' == $mode) {
105
-                    $output[$out_len] = (int) $v;
106
-                    ++$out_len;
107
-                    continue;
108
-                }
109
-            }
110
-            if ('add' == $mode) {
111
-                if (!self::$allow_overlong && $test == 'range') {
112
-                    $test = 'none';
113
-                    if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
114
-                        throw new Exception('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
115
-                    }
116
-                }
117
-                if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
118
-                    $v = ($v-128) << ($next_byte*6);
119
-                    $output[($out_len-1)] += $v;
120
-                    --$next_byte;
121
-                } else {
122
-                    if (self::$safe_mode) {
123
-                        $output[$out_len-1] = ord(self::$safe_char);
124
-                        $k--;
125
-                        $mode = 'next';
126
-                        continue;
127
-                    } else {
128
-                        throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
129
-                    }
130
-                }
131
-                if ($next_byte < 0) {
132
-                    $mode = 'next';
133
-                }
134
-            }
135
-        } // for
136
-        return $output;
137
-    }
104
+				if ('add' == $mode) {
105
+					$output[$out_len] = (int) $v;
106
+					++$out_len;
107
+					continue;
108
+				}
109
+			}
110
+			if ('add' == $mode) {
111
+				if (!self::$allow_overlong && $test == 'range') {
112
+					$test = 'none';
113
+					if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
114
+						throw new Exception('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
115
+					}
116
+				}
117
+				if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
118
+					$v = ($v-128) << ($next_byte*6);
119
+					$output[($out_len-1)] += $v;
120
+					--$next_byte;
121
+				} else {
122
+					if (self::$safe_mode) {
123
+						$output[$out_len-1] = ord(self::$safe_char);
124
+						$k--;
125
+						$mode = 'next';
126
+						continue;
127
+					} else {
128
+						throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
129
+					}
130
+				}
131
+				if ($next_byte < 0) {
132
+					$mode = 'next';
133
+				}
134
+			}
135
+		} // for
136
+		return $output;
137
+	}
138 138
 
139
-    /**
140
-     * Convert UCS-4 string into UTF-8 string
141
-     * See utf8_ucs4array() for details
142
-     * @access   private
143
-     */
144
-    private static function ucs4array_utf8($input)
145
-    {
146
-        $output = '';
147
-        foreach ($input as $v) {
148
-            if ($v < 128) { // 7bit are transferred literally
149
-                $output .= chr($v);
150
-            } elseif ($v < (1 << 11)) { // 2 bytes
151
-                $output .= chr(192+($v >> 6)).chr(128+($v & 63));
152
-            } elseif ($v < (1 << 16)) { // 3 bytes
153
-                $output .= chr(224+($v >> 12)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
154
-            } elseif ($v < (1 << 21)) { // 4 bytes
155
-                $output .= chr(240+($v >> 18)).chr(128+(($v >> 12) & 63)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
156
-            } elseif (self::$safe_mode) {
157
-                $output .= self::$safe_char;
158
-            } else {
159
-                throw new Exception('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
160
-            }
161
-        }
162
-        return $output;
163
-    }
139
+	/**
140
+	 * Convert UCS-4 string into UTF-8 string
141
+	 * See utf8_ucs4array() for details
142
+	 * @access   private
143
+	 */
144
+	private static function ucs4array_utf8($input)
145
+	{
146
+		$output = '';
147
+		foreach ($input as $v) {
148
+			if ($v < 128) { // 7bit are transferred literally
149
+				$output .= chr($v);
150
+			} elseif ($v < (1 << 11)) { // 2 bytes
151
+				$output .= chr(192+($v >> 6)).chr(128+($v & 63));
152
+			} elseif ($v < (1 << 16)) { // 3 bytes
153
+				$output .= chr(224+($v >> 12)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
154
+			} elseif ($v < (1 << 21)) { // 4 bytes
155
+				$output .= chr(240+($v >> 18)).chr(128+(($v >> 12) & 63)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
156
+			} elseif (self::$safe_mode) {
157
+				$output .= self::$safe_char;
158
+			} else {
159
+				throw new Exception('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
160
+			}
161
+		}
162
+		return $output;
163
+	}
164 164
 
165
-    private static function utf7imap_ucs4array($input)
166
-    {
167
-        return self::utf7_ucs4array(str_replace(',', '/', $input), '&');
168
-    }
165
+	private static function utf7imap_ucs4array($input)
166
+	{
167
+		return self::utf7_ucs4array(str_replace(',', '/', $input), '&');
168
+	}
169 169
 
170
-    private static function utf7_ucs4array($input, $sc = '+')
171
-    {
172
-        $output  = array();
173
-        $out_len = 0;
174
-        $inp_len = strlen($input);
175
-        $mode    = 'd';
176
-        $b64     = '';
170
+	private static function utf7_ucs4array($input, $sc = '+')
171
+	{
172
+		$output  = array();
173
+		$out_len = 0;
174
+		$inp_len = strlen($input);
175
+		$mode    = 'd';
176
+		$b64     = '';
177 177
 
178
-        for ($k = 0; $k < $inp_len; ++$k) {
179
-            $c = $input{$k};
180
-            if (0 == ord($c)) continue; // Ignore zero bytes
181
-            if ('b' == $mode) {
182
-                // Sequence got terminated
183
-                if (!preg_match('![A-Za-z0-9/'.preg_quote($sc, '!').']!', $c)) {
184
-                    if ('-' == $c) {
185
-                        if ($b64 == '') {
186
-                            $output[$out_len] = ord($sc);
187
-                            $out_len++;
188
-                            $mode = 'd';
189
-                            continue;
190
-                        }
191
-                    }
192
-                    $tmp = base64_decode($b64);
193
-                    $tmp = substr($tmp, -1 * (strlen($tmp) % 2));
194
-                    for ($i = 0; $i < strlen($tmp); $i++) {
195
-                        if ($i % 2) {
196
-                            $output[$out_len] += ord($tmp{$i});
197
-                            $out_len++;
198
-                        } else {
199
-                            $output[$out_len] = ord($tmp{$i}) << 8;
200
-                        }
201
-                    }
202
-                    $mode = 'd';
203
-                    $b64 = '';
204
-                    continue;
205
-                } else {
206
-                    $b64 .= $c;
207
-                }
208
-            }
209
-            if ('d' == $mode) {
210
-                if ($sc == $c) {
211
-                    $mode = 'b';
212
-                    continue;
213
-                }
214
-                $output[$out_len] = ord($c);
215
-                $out_len++;
216
-            }
217
-        }
218
-        return $output;
219
-    }
178
+		for ($k = 0; $k < $inp_len; ++$k) {
179
+			$c = $input{$k};
180
+			if (0 == ord($c)) continue; // Ignore zero bytes
181
+			if ('b' == $mode) {
182
+				// Sequence got terminated
183
+				if (!preg_match('![A-Za-z0-9/'.preg_quote($sc, '!').']!', $c)) {
184
+					if ('-' == $c) {
185
+						if ($b64 == '') {
186
+							$output[$out_len] = ord($sc);
187
+							$out_len++;
188
+							$mode = 'd';
189
+							continue;
190
+						}
191
+					}
192
+					$tmp = base64_decode($b64);
193
+					$tmp = substr($tmp, -1 * (strlen($tmp) % 2));
194
+					for ($i = 0; $i < strlen($tmp); $i++) {
195
+						if ($i % 2) {
196
+							$output[$out_len] += ord($tmp{$i});
197
+							$out_len++;
198
+						} else {
199
+							$output[$out_len] = ord($tmp{$i}) << 8;
200
+						}
201
+					}
202
+					$mode = 'd';
203
+					$b64 = '';
204
+					continue;
205
+				} else {
206
+					$b64 .= $c;
207
+				}
208
+			}
209
+			if ('d' == $mode) {
210
+				if ($sc == $c) {
211
+					$mode = 'b';
212
+					continue;
213
+				}
214
+				$output[$out_len] = ord($c);
215
+				$out_len++;
216
+			}
217
+		}
218
+		return $output;
219
+	}
220 220
 
221
-    private static function ucs4array_utf7imap($input)
222
-    {
223
-        return str_replace('/', ',', self::ucs4array_utf7($input, '&'));
224
-    }
221
+	private static function ucs4array_utf7imap($input)
222
+	{
223
+		return str_replace('/', ',', self::ucs4array_utf7($input, '&'));
224
+	}
225 225
 
226
-    private static function ucs4array_utf7($input, $sc = '+')
227
-    {
228
-        $output = '';
229
-        $mode = 'd';
230
-        $b64 = '';
231
-        while (true) {
232
-            $v = (!empty($input)) ? array_shift($input) : false;
233
-            $is_direct = (false !== $v) ? (0x20 <= $v && $v <= 0x7e && $v != ord($sc)) : true;
234
-            if ($mode == 'b') {
235
-                if ($is_direct) {
236
-                    if ($b64 == chr(0).$sc) {
237
-                        $output .= $sc.'-';
238
-                        $b64 = '';
239
-                    } elseif ($b64) {
240
-                        $output .= $sc.str_replace('=', '', base64_encode($b64)).'-';
241
-                        $b64 = '';
242
-                    }
243
-                    $mode = 'd';
244
-                } elseif (false !== $v) {
245
-                    $b64 .= chr(($v >> 8) & 255). chr($v & 255);
246
-                }
247
-            }
248
-            if ($mode == 'd' && false !== $v) {
249
-                if ($is_direct) {
250
-                    $output .= chr($v);
251
-                } else {
252
-                    $b64 = chr(($v >> 8) & 255). chr($v & 255);
253
-                    $mode = 'b';
254
-                }
255
-            }
256
-            if (false === $v && $b64 == '') break;
257
-        }
258
-        return $output;
259
-    }
226
+	private static function ucs4array_utf7($input, $sc = '+')
227
+	{
228
+		$output = '';
229
+		$mode = 'd';
230
+		$b64 = '';
231
+		while (true) {
232
+			$v = (!empty($input)) ? array_shift($input) : false;
233
+			$is_direct = (false !== $v) ? (0x20 <= $v && $v <= 0x7e && $v != ord($sc)) : true;
234
+			if ($mode == 'b') {
235
+				if ($is_direct) {
236
+					if ($b64 == chr(0).$sc) {
237
+						$output .= $sc.'-';
238
+						$b64 = '';
239
+					} elseif ($b64) {
240
+						$output .= $sc.str_replace('=', '', base64_encode($b64)).'-';
241
+						$b64 = '';
242
+					}
243
+					$mode = 'd';
244
+				} elseif (false !== $v) {
245
+					$b64 .= chr(($v >> 8) & 255). chr($v & 255);
246
+				}
247
+			}
248
+			if ($mode == 'd' && false !== $v) {
249
+				if ($is_direct) {
250
+					$output .= chr($v);
251
+				} else {
252
+					$b64 = chr(($v >> 8) & 255). chr($v & 255);
253
+					$mode = 'b';
254
+				}
255
+			}
256
+			if (false === $v && $b64 == '') break;
257
+		}
258
+		return $output;
259
+	}
260 260
 
261
-    /**
262
-     * Convert UCS-4 array into UCS-4 string (Little Endian at the moment)
263
-     * @access   private
264
-     */
265
-    private static function ucs4array_ucs4($input)
266
-    {
267
-        $output = '';
268
-        foreach ($input as $v) {
269
-            $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
270
-        }
271
-        return $output;
272
-    }
261
+	/**
262
+	 * Convert UCS-4 array into UCS-4 string (Little Endian at the moment)
263
+	 * @access   private
264
+	 */
265
+	private static function ucs4array_ucs4($input)
266
+	{
267
+		$output = '';
268
+		foreach ($input as $v) {
269
+			$output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
270
+		}
271
+		return $output;
272
+	}
273 273
 
274
-    /**
275
-     * Convert UCS-4 string (LE in the moment) into UCS-4 garray
276
-     * @access   private
277
-     */
278
-    private static function ucs4_ucs4array($input)
279
-    {
280
-        $output = array();
274
+	/**
275
+	 * Convert UCS-4 string (LE in the moment) into UCS-4 garray
276
+	 * @access   private
277
+	 */
278
+	private static function ucs4_ucs4array($input)
279
+	{
280
+		$output = array();
281 281
 
282
-        $inp_len = strlen($input);
283
-        // Input length must be dividable by 4
284
-        if ($inp_len % 4) {
285
-            throw new Exception('Input UCS4 string is broken');
286
-        }
287
-        // Empty input - return empty output
288
-        if (!$inp_len) return $output;
282
+		$inp_len = strlen($input);
283
+		// Input length must be dividable by 4
284
+		if ($inp_len % 4) {
285
+			throw new Exception('Input UCS4 string is broken');
286
+		}
287
+		// Empty input - return empty output
288
+		if (!$inp_len) return $output;
289 289
 
290
-        for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
291
-            if (!($i % 4)) { // Increment output position every 4 input bytes
292
-                $out_len++;
293
-                $output[$out_len] = 0;
294
-            }
295
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
296
-        }
297
-        return $output;
298
-    }
290
+		for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
291
+			if (!($i % 4)) { // Increment output position every 4 input bytes
292
+				$out_len++;
293
+				$output[$out_len] = 0;
294
+			}
295
+			$output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
296
+		}
297
+		return $output;
298
+	}
299 299
 }
300 300
 ?>
301 301
\ No newline at end of file
Please login to merge, or discard this patch.
Braces   +25 added lines, -8 removed lines patch added patch discarded remove patch
@@ -36,11 +36,21 @@  discard block
 block discarded – undo
36 36
     {
37 37
         self::$safe_mode = ($safe_mode) ? true : false;
38 38
         self::$safe_char = ($safe_char) ? $safe_char : 0xFFFC;
39
-        if (self::$safe_mode) self::$allow_overlong = true;
40
-        if (!in_array($from, self::$mechs)) throw new Exception('Invalid input format specified');
41
-        if (!in_array($to, self::$mechs)) throw new Exception('Invalid output format specified');
42
-        if ($from != 'ucs4array') eval('$data = self::'.$from.'_ucs4array($data);');
43
-        if ($to != 'ucs4array') eval('$data = self::ucs4array_'.$to.'($data);');
39
+        if (self::$safe_mode) {
40
+        	self::$allow_overlong = true;
41
+        }
42
+        if (!in_array($from, self::$mechs)) {
43
+        	throw new Exception('Invalid input format specified');
44
+        }
45
+        if (!in_array($to, self::$mechs)) {
46
+        	throw new Exception('Invalid output format specified');
47
+        }
48
+        if ($from != 'ucs4array') {
49
+        	eval('$data = self::'.$from.'_ucs4array($data);');
50
+        }
51
+        if ($to != 'ucs4array') {
52
+        	eval('$data = self::ucs4array_'.$to.'($data);');
53
+        }
44 54
         return $data;
45 55
     }
46 56
 
@@ -177,7 +187,10 @@  discard block
 block discarded – undo
177 187
 
178 188
         for ($k = 0; $k < $inp_len; ++$k) {
179 189
             $c = $input{$k};
180
-            if (0 == ord($c)) continue; // Ignore zero bytes
190
+            if (0 == ord($c)) {
191
+            	continue;
192
+            }
193
+            // Ignore zero bytes
181 194
             if ('b' == $mode) {
182 195
                 // Sequence got terminated
183 196
                 if (!preg_match('![A-Za-z0-9/'.preg_quote($sc, '!').']!', $c)) {
@@ -253,7 +266,9 @@  discard block
 block discarded – undo
253 266
                     $mode = 'b';
254 267
                 }
255 268
             }
256
-            if (false === $v && $b64 == '') break;
269
+            if (false === $v && $b64 == '') {
270
+            	break;
271
+            }
257 272
         }
258 273
         return $output;
259 274
     }
@@ -285,7 +300,9 @@  discard block
 block discarded – undo
285 300
             throw new Exception('Input UCS4 string is broken');
286 301
         }
287 302
         // Empty input - return empty output
288
-        if (!$inp_len) return $output;
303
+        if (!$inp_len) {
304
+        	return $output;
305
+        }
289 306
 
290 307
         for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
291 308
             if (!($i % 4)) { // Increment output position every 4 input bytes
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
                 ++$out_len;
67 67
                 if ('add' == $mode) {
68 68
                     if (self::$safe_mode) {
69
-                        $output[$out_len-2] = self::$safe_char;
69
+                        $output[$out_len - 2] = self::$safe_char;
70 70
                         $mode = 'next';
71 71
                     } else {
72 72
                         throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
                 } else {
96 96
                     throw new Exception('This might be UTF-8, but I don\'t understand it at byte '.$k);
97 97
                 }
98
-                if ($inp_len-$k-$next_byte < 2) {
98
+                if ($inp_len - $k - $next_byte < 2) {
99 99
                     $output[$out_len] = self::$safe_char;
100 100
                     $mode = 'no';
101 101
                     continue;
@@ -115,12 +115,12 @@  discard block
 block discarded – undo
115 115
                     }
116 116
                 }
117 117
                 if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
118
-                    $v = ($v-128) << ($next_byte*6);
119
-                    $output[($out_len-1)] += $v;
118
+                    $v = ($v - 128) << ($next_byte * 6);
119
+                    $output[($out_len - 1)] += $v;
120 120
                     --$next_byte;
121 121
                 } else {
122 122
                     if (self::$safe_mode) {
123
-                        $output[$out_len-1] = ord(self::$safe_char);
123
+                        $output[$out_len - 1] = ord(self::$safe_char);
124 124
                         $k--;
125 125
                         $mode = 'next';
126 126
                         continue;
@@ -148,11 +148,11 @@  discard block
 block discarded – undo
148 148
             if ($v < 128) { // 7bit are transferred literally
149 149
                 $output .= chr($v);
150 150
             } elseif ($v < (1 << 11)) { // 2 bytes
151
-                $output .= chr(192+($v >> 6)).chr(128+($v & 63));
151
+                $output .= chr(192 + ($v >> 6)).chr(128 + ($v & 63));
152 152
             } elseif ($v < (1 << 16)) { // 3 bytes
153
-                $output .= chr(224+($v >> 12)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
153
+                $output .= chr(224 + ($v >> 12)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
154 154
             } elseif ($v < (1 << 21)) { // 4 bytes
155
-                $output .= chr(240+($v >> 18)).chr(128+(($v >> 12) & 63)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
155
+                $output .= chr(240 + ($v >> 18)).chr(128 + (($v >> 12) & 63)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
156 156
             } elseif (self::$safe_mode) {
157 157
                 $output .= self::$safe_char;
158 158
             } else {
@@ -242,14 +242,14 @@  discard block
 block discarded – undo
242 242
                     }
243 243
                     $mode = 'd';
244 244
                 } elseif (false !== $v) {
245
-                    $b64 .= chr(($v >> 8) & 255). chr($v & 255);
245
+                    $b64 .= chr(($v >> 8) & 255).chr($v & 255);
246 246
                 }
247 247
             }
248 248
             if ($mode == 'd' && false !== $v) {
249 249
                 if ($is_direct) {
250 250
                     $output .= chr($v);
251 251
                 } else {
252
-                    $b64 = chr(($v >> 8) & 255). chr($v & 255);
252
+                    $b64 = chr(($v >> 8) & 255).chr($v & 255);
253 253
                     $mode = 'b';
254 254
                 }
255 255
             }
@@ -292,7 +292,7 @@  discard block
 block discarded – undo
292 292
                 $out_len++;
293 293
                 $output[$out_len] = 0;
294 294
             }
295
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
295
+            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4)));
296 296
         }
297 297
         return $output;
298 298
     }
Please login to merge, or discard this patch.
modules/addon/addon.admin.controller.php 2 patches
Braces   +7 added lines, -14 removed lines patch added patch discarded remove patch
@@ -36,8 +36,7 @@  discard block
 block discarded – undo
36 36
 		if($site_module_info->site_srl)
37 37
 		{
38 38
 			$site_srl = $site_module_info->site_srl;
39
-		}
40
-		else
39
+		} else
41 40
 		{
42 41
 			$site_srl = 0;
43 42
 		}
@@ -103,8 +102,7 @@  discard block
 block discarded – undo
103 102
 			if(in_array($targetAddon, $pcOnList))
104 103
 			{
105 104
 				$args->is_used = 'Y';
106
-			}
107
-			else
105
+			} else
108 106
 			{
109 107
 				$args->is_used = 'N';
110 108
 			}
@@ -112,8 +110,7 @@  discard block
 block discarded – undo
112 110
 			if(in_array($targetAddon, $mobileOnList))
113 111
 			{
114 112
 				$args->is_used_m = 'Y';
115
-			}
116
-			else
113
+			} else
117 114
 			{
118 115
 				$args->is_used_m = 'N';
119 116
 			}
@@ -121,8 +118,7 @@  discard block
 block discarded – undo
121 118
 			if(in_array($targetAddon, $fixed))
122 119
 			{
123 120
 				$args->fixed = 'Y';
124
-			}
125
-			else
121
+			} else
126 122
 			{
127 123
 				$args->fixed = 'N';
128 124
 			}
@@ -147,8 +143,7 @@  discard block
 block discarded – undo
147 143
 		if(Context::get('success_return_url'))
148 144
 		{
149 145
 			$this->setRedirectUrl(Context::get('success_return_url'));
150
-		}
151
-		else
146
+		} else
152 147
 		{
153 148
 			$this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAddonAdminIndex'));
154 149
 		}
@@ -256,8 +251,7 @@  discard block
 block discarded – undo
256 251
 		if($type == "pc")
257 252
 		{
258 253
 			$args->is_used = 'Y';
259
-		}
260
-		else
254
+		} else
261 255
 		{
262 256
 			$args->is_used_m = "Y";
263 257
 		}
@@ -284,8 +278,7 @@  discard block
 block discarded – undo
284 278
 		if($type == "pc")
285 279
 		{
286 280
 			$args->is_used = 'N';
287
-		}
288
-		else
281
+		} else
289 282
 		{
290 283
 			$args->is_used_m = 'N';
291 284
 		}
Please login to merge, or discard this patch.
Spacing   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 3
 
4
-require_once(_XE_PATH_ . 'modules/addon/addon.controller.php');
4
+require_once(_XE_PATH_.'modules/addon/addon.controller.php');
5 5
 
6 6
 /**
7 7
  * Admin controller class of addon modules
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
 
34 34
 		$site_module_info = Context::get('site_module_info');
35 35
 
36
-		if($site_module_info->site_srl)
36
+		if ($site_module_info->site_srl)
37 37
 		{
38 38
 			$site_srl = $site_module_info->site_srl;
39 39
 		}
@@ -42,28 +42,28 @@  discard block
 block discarded – undo
42 42
 			$site_srl = 0;
43 43
 		}
44 44
 
45
-		if(!$pcOnList)
45
+		if (!$pcOnList)
46 46
 		{
47 47
 			$pcOnList = array();
48 48
 		}
49
-		if(!$mobileOnList)
49
+		if (!$mobileOnList)
50 50
 		{
51 51
 			$mobileOnList = array();
52 52
 		}
53
-		if(!$fixed)
53
+		if (!$fixed)
54 54
 		{
55 55
 			$fixed = array();
56 56
 		}
57 57
 
58
-		if(!is_array($pcOnList))
58
+		if (!is_array($pcOnList))
59 59
 		{
60 60
 			$pcOnList = array($pcOnList);
61 61
 		}
62
-		if(!is_array($mobileOnList))
62
+		if (!is_array($mobileOnList))
63 63
 		{
64 64
 			$pcOnList = array($mobileOnList);
65 65
 		}
66
-		if(!is_array($fixed))
66
+		if (!is_array($fixed))
67 67
 		{
68 68
 			$pcOnList = array($fixed);
69 69
 		}
@@ -74,21 +74,21 @@  discard block
 block discarded – undo
74 74
 
75 75
 		// get need update addon list
76 76
 		$updateList = array();
77
-		foreach($currentAddonList as $addon)
77
+		foreach ($currentAddonList as $addon)
78 78
 		{
79
-			if($addon->activated !== in_array($addon->addon_name, $pcOnList))
79
+			if ($addon->activated !== in_array($addon->addon_name, $pcOnList))
80 80
 			{
81 81
 				$updateList[] = $addon->addon_name;
82 82
 				continue;
83 83
 			}
84 84
 
85
-			if($addon->mactivated !== in_array($addon->addon_name, $mobileOnList))
85
+			if ($addon->mactivated !== in_array($addon->addon_name, $mobileOnList))
86 86
 			{
87 87
 				$updateList[] = $addon->addon_name;
88 88
 				continue;
89 89
 			}
90 90
 
91
-			if($addon->fixed !== in_array($addon->addon_name, $fixed))
91
+			if ($addon->fixed !== in_array($addon->addon_name, $fixed))
92 92
 			{
93 93
 				$updateList[] = $addon->addon_name;
94 94
 				continue;
@@ -96,11 +96,11 @@  discard block
 block discarded – undo
96 96
 		}
97 97
 
98 98
 		// update
99
-		foreach($updateList as $targetAddon)
99
+		foreach ($updateList as $targetAddon)
100 100
 		{
101 101
 			$args = new stdClass();
102 102
 
103
-			if(in_array($targetAddon, $pcOnList))
103
+			if (in_array($targetAddon, $pcOnList))
104 104
 			{
105 105
 				$args->is_used = 'Y';
106 106
 			}
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
 				$args->is_used = 'N';
110 110
 			}
111 111
 
112
-			if(in_array($targetAddon, $mobileOnList))
112
+			if (in_array($targetAddon, $mobileOnList))
113 113
 			{
114 114
 				$args->is_used_m = 'Y';
115 115
 			}
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
 				$args->is_used_m = 'N';
119 119
 			}
120 120
 
121
-			if(in_array($targetAddon, $fixed))
121
+			if (in_array($targetAddon, $fixed))
122 122
 			{
123 123
 				$args->fixed = 'Y';
124 124
 			}
@@ -131,20 +131,20 @@  discard block
 block discarded – undo
131 131
 			$args->site_srl = $site_srl;
132 132
 
133 133
 			$output = executeQuery('addon.updateSiteAddon', $args);
134
-			if(!$output->toBool())
134
+			if (!$output->toBool())
135 135
 			{
136 136
 				return $output;
137 137
 			}
138 138
 		}
139 139
 
140
-		if(count($updateList))
140
+		if (count($updateList))
141 141
 		{
142 142
 			$this->makeCacheFile($site_srl, 'pc', 'site');
143 143
 			$this->makeCacheFile($site_srl, 'mobile', 'site');
144 144
 		}
145 145
 
146 146
 		$this->setMessage('success_updated', 'info');
147
-		if(Context::get('success_return_url'))
147
+		if (Context::get('success_return_url'))
148 148
 		{
149 149
 			$this->setRedirectUrl(Context::get('success_return_url'));
150 150
 		}
@@ -167,14 +167,14 @@  discard block
 block discarded – undo
167 167
 		// batahom addon values
168 168
 		$addon = Context::get('addon');
169 169
 		$type = Context::get('type');
170
-		if(!$type)
170
+		if (!$type)
171 171
 		{
172 172
 			$type = "pc";
173 173
 		}
174
-		if($addon)
174
+		if ($addon)
175 175
 		{
176 176
 			// If enabled Disables
177
-			if($oAddonModel->isActivatedAddon($addon, $site_module_info->site_srl, $type))
177
+			if ($oAddonModel->isActivatedAddon($addon, $site_module_info->site_srl, $type))
178 178
 			{
179 179
 				$this->doDeactivate($addon, $site_module_info->site_srl, $type);
180 180
 			}
@@ -207,7 +207,7 @@  discard block
 block discarded – undo
207 207
 		$site_module_info = Context::get('site_module_info');
208 208
 
209 209
 		$output = $this->doSetup($addon_name, $args, $site_module_info->site_srl, 'site');
210
-		if(!$output->toBool())
210
+		if (!$output->toBool())
211 211
 		{
212 212
 			return $output;
213 213
 		}
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
 		$args = new stdClass;
233 233
 		$args->addon = $addon;
234 234
 		$args->is_used = $isUsed;
235
-		if($gtype == 'global')
235
+		if ($gtype == 'global')
236 236
 		{
237 237
 			return executeQuery('addon.insertAddon', $args);
238 238
 		}
@@ -253,7 +253,7 @@  discard block
 block discarded – undo
253 253
 	{
254 254
 		$args = new stdClass();
255 255
 		$args->addon = $addon;
256
-		if($type == "pc")
256
+		if ($type == "pc")
257 257
 		{
258 258
 			$args->is_used = 'Y';
259 259
 		}
@@ -261,7 +261,7 @@  discard block
 block discarded – undo
261 261
 		{
262 262
 			$args->is_used_m = "Y";
263 263
 		}
264
-		if($gtype == 'global')
264
+		if ($gtype == 'global')
265 265
 		{
266 266
 			return executeQuery('addon.updateAddon', $args);
267 267
 		}
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 	{
282 282
 		$args = new stdClass();
283 283
 		$args->addon = $addon;
284
-		if($type == "pc")
284
+		if ($type == "pc")
285 285
 		{
286 286
 			$args->is_used = 'N';
287 287
 		}
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
 		{
290 290
 			$args->is_used_m = 'N';
291 291
 		}
292
-		if($gtype == 'global')
292
+		if ($gtype == 'global')
293 293
 		{
294 294
 			return executeQuery('addon.updateAddon', $args);
295 295
 		}
Please login to merge, or discard this patch.
modules/addon/addon.class.php 1 patch
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -38,17 +38,17 @@  discard block
 block discarded – undo
38 38
 	function checkUpdate()
39 39
 	{
40 40
 		$oDB = DB::getInstance();
41
-		if(!$oDB->isColumnExists("addons", "is_used_m"))
41
+		if (!$oDB->isColumnExists("addons", "is_used_m"))
42 42
 		{
43 43
 			return TRUE;
44 44
 		}
45
-		if(!$oDB->isColumnExists("addons_site", "is_used_m"))
45
+		if (!$oDB->isColumnExists("addons_site", "is_used_m"))
46 46
 		{
47 47
 			return TRUE;
48 48
 		}
49 49
 
50 50
 		// 2011. 7. 29. add is_fixed column
51
-		if(!$oDB->isColumnExists('addons', 'is_fixed'))
51
+		if (!$oDB->isColumnExists('addons', 'is_fixed'))
52 52
 		{
53 53
 			return TRUE;
54 54
 		}
@@ -64,25 +64,25 @@  discard block
 block discarded – undo
64 64
 	function moduleUpdate()
65 65
 	{
66 66
 		$oDB = DB::getInstance();
67
-		if(!$oDB->isColumnExists("addons", "is_used_m"))
67
+		if (!$oDB->isColumnExists("addons", "is_used_m"))
68 68
 		{
69 69
 			$oDB->addColumn("addons", "is_used_m", "char", 1, "N", TRUE);
70 70
 		}
71
-		if(!$oDB->isColumnExists("addons_site", "is_used_m"))
71
+		if (!$oDB->isColumnExists("addons_site", "is_used_m"))
72 72
 		{
73 73
 			$oDB->addColumn("addons_site", "is_used_m", "char", 1, "N", TRUE);
74 74
 		}
75 75
 
76 76
 		// 2011. 7. 29. add is_fixed column
77
-		if(!$oDB->isColumnExists('addons', 'is_fixed'))
77
+		if (!$oDB->isColumnExists('addons', 'is_fixed'))
78 78
 		{
79 79
 			$oDB->addColumn('addons', 'is_fixed', 'char', 1, 'N', TRUE);
80 80
 
81 81
 			// move addon info to addon_site table
82 82
 			$output = executeQueryArray('addon.getAddons');
83
-			if($output->data)
83
+			if ($output->data)
84 84
 			{
85
-				foreach($output->data as $row)
85
+				foreach ($output->data as $row)
86 86
 				{
87 87
 					$args = new stdClass();
88 88
 					$args->site_srl = 0;
Please login to merge, or discard this patch.
modules/admin/admin.admin.view.php 4 patches
Braces   +20 added lines, -12 removed lines patch added patch discarded remove patch
@@ -31,8 +31,7 @@  discard block
 block discarded – undo
31 31
 		if(strpos($db_info->default_url, 'xn--') !== FALSE)
32 32
 		{
33 33
 			$xe_default_url = Context::decodeIdna($db_info->default_url);
34
-		}
35
-		else
34
+		} else
36 35
 		{
37 36
 			$xe_default_url = $db_info->default_url;
38 37
 		}
@@ -434,9 +433,15 @@  discard block
 block discarded – undo
434 433
 
435 434
 		// site lock
436 435
 		Context::set('IP', $_SERVER['REMOTE_ADDR']);
437
-		if(!$db_info->sitelock_title) $db_info->sitelock_title = 'Maintenance in progress...';
438
-		if(!in_array('127.0.0.1', $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = '127.0.0.1';
439
-		if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR'];
436
+		if(!$db_info->sitelock_title) {
437
+			$db_info->sitelock_title = 'Maintenance in progress...';
438
+		}
439
+		if(!in_array('127.0.0.1', $db_info->sitelock_whitelist)) {
440
+			$db_info->sitelock_whitelist[] = '127.0.0.1';
441
+		}
442
+		if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) {
443
+			$db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR'];
444
+		}
440 445
 		$db_info->sitelock_whitelist = array_unique($db_info->sitelock_whitelist);
441 446
 		Context::set('remote_addr', $_SERVER['REMOTE_ADDR']);
442 447
 		Context::set('use_sitelock', $db_info->use_sitelock);
@@ -447,8 +452,11 @@  discard block
 block discarded – undo
447 452
 		Context::set('sitelock_whitelist', $whitelist);
448 453
 
449 454
 
450
-		if($db_info->admin_ip_list) $admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
451
-		else $admin_ip_list = '';
455
+		if($db_info->admin_ip_list) {
456
+			$admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
457
+		} else {
458
+			$admin_ip_list = '';
459
+		}
452 460
 		Context::set('admin_ip_list', $admin_ip_list);
453 461
 
454 462
 		Context::set('lang_selected', Context::loadLangSelected());
@@ -547,8 +555,7 @@  discard block
 block discarded – undo
547 555
 			Context::addHtmlFooter($img);
548 556
 
549 557
 			FileHandler::writeFile($path . $mainVersion, '1');
550
-		}
551
-		else if(isset($_SESSION['enviroment_gather']) && !file_exists(FileHandler::getRealPath($path . $mainVersion)))
558
+		} else if(isset($_SESSION['enviroment_gather']) && !file_exists(FileHandler::getRealPath($path . $mainVersion)))
552 559
 		{
553 560
 			if($_SESSION['enviroment_gather'] == 'Y')
554 561
 			{
@@ -580,7 +587,7 @@  discard block
 block discarded – undo
580 587
 			$arr = explode("=", $value);
581 588
 			if($arr[0]=="type") {
582 589
 				continue;
583
-			}elseif($arr[0]=="phpext" ) {
590
+			} elseif($arr[0]=="phpext" ) {
584 591
 				$str = urldecode($arr[1]);
585 592
 				$xe_check_env[$arr[0]]= str_replace("|", ", ", $str);
586 593
 			} elseif($arr[0]=="module" ) {
@@ -655,8 +662,9 @@  discard block
 block discarded – undo
655 662
 				$str_info .= "{$key} : {$value}\n";
656 663
 			} else {
657 664
 				//$str_info .= "\n{$key} \n";
658
-				foreach( $value as $key2=>$value2 )
659
-					$str_info .= "{$key2} : {$value2}\n";
665
+				foreach( $value as $key2=>$value2 ) {
666
+									$str_info .= "{$key2} : {$value2}\n";
667
+				}
660 668
 			}
661 669
 		}
662 670
 
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -14,7 +14,7 @@
 block discarded – undo
14 14
 
15 15
 	/**
16 16
 	 * Initialization
17
-	 * @return void
17
+	 * @return ModuleObject|null
18 18
 	 */
19 19
 	function init()
20 20
 	{
Please login to merge, or discard this patch.
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1284,7 +1284,7 @@
 block discarded – undo
1284 1284
 	/**
1285 1285
 	 * Delete cached group data
1286 1286
 	 * @return void
1287
-	*/
1287
+	 */
1288 1288
 	function _deleteMemberGroupCache($site_srl = 0)
1289 1289
 	{
1290 1290
 		//remove from cache
Please login to merge, or discard this patch.
Spacing   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 	{
29 29
 		$db_info = Context::getDBInfo();
30 30
 
31
-		if(strpos($db_info->default_url, 'xn--') !== FALSE)
31
+		if (strpos($db_info->default_url, 'xn--') !== FALSE)
32 32
 		{
33 33
 			$xe_default_url = Context::decodeIdna($db_info->default_url);
34 34
 		}
@@ -48,13 +48,13 @@  discard block
 block discarded – undo
48 48
 		// forbit access if the user is not an administrator
49 49
 		$oMemberModel = getModel('member');
50 50
 		$logged_info = $oMemberModel->getLoggedInfo();
51
-		if($logged_info->is_admin != 'Y')
51
+		if ($logged_info->is_admin != 'Y')
52 52
 		{
53 53
 			return $this->stop("msg_is_not_administrator");
54 54
 		}
55 55
 
56 56
 		// change into administration layout
57
-		$this->setTemplatePath($this->module_path . 'tpl');
57
+		$this->setTemplatePath($this->module_path.'tpl');
58 58
 		$this->setLayoutPath($this->getTemplatePath());
59 59
 		$this->setLayoutFile('layout.html');
60 60
 
@@ -74,11 +74,11 @@  discard block
 block discarded – undo
74 74
 		Context::set('use_db_session', $db_info->use_db_session == 'N' ? 'N' : 'Y');
75 75
 		Context::set('use_mobile_view', $db_info->use_mobile_view == 'Y' ? 'Y' : 'N');
76 76
 		Context::set('use_ssl', $db_info->use_ssl ? $db_info->use_ssl : "none");
77
-		if($db_info->http_port)
77
+		if ($db_info->http_port)
78 78
 		{
79 79
 			Context::set('http_port', $db_info->http_port);
80 80
 		}
81
-		if($db_info->https_port)
81
+		if ($db_info->https_port)
82 82
 		{
83 83
 			Context::set('https_port', $db_info->https_port);
84 84
 		}
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
 	function checkEasyinstall()
95 95
 	{
96 96
 		$lastTime = (int) FileHandler::readFile($this->easyinstallCheckFile);
97
-		if($lastTime > $_SERVER['REQUEST_TIME'] - 60 * 60 * 24 * 30)
97
+		if ($lastTime > $_SERVER['REQUEST_TIME'] - 60 * 60 * 24 * 30)
98 98
 		{
99 99
 			return;
100 100
 		}
@@ -108,14 +108,14 @@  discard block
 block discarded – undo
108 108
 		$lUpdateDoc = $xml_lUpdate->parse($buff);
109 109
 		$updateDate = $lUpdateDoc->response->updatedate->body;
110 110
 
111
-		if(!$updateDate)
111
+		if (!$updateDate)
112 112
 		{
113 113
 			$this->_markingCheckEasyinstall();
114 114
 			return;
115 115
 		}
116 116
 
117 117
 		$item = $oAutoinstallModel->getLatestPackage();
118
-		if(!$item || $item->updatedate < $updateDate)
118
+		if (!$item || $item->updatedate < $updateDate)
119 119
 		{
120 120
 			$oController = getAdminController('autoinstall');
121 121
 			$oController->_updateinfo();
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 
145 145
 		// Check is_shortcut column
146 146
 		$oDB = DB::getInstance();
147
-		if(!$oDB->isColumnExists('menu_item', 'is_shortcut'))
147
+		if (!$oDB->isColumnExists('menu_item', 'is_shortcut'))
148 148
 		{
149 149
 			return;
150 150
 		}
@@ -162,9 +162,9 @@  discard block
 block discarded – undo
162 162
 		$currentAct = Context::get('act');
163 163
 		$subMenuTitle = '';
164 164
 
165
-		foreach((array) $moduleActionInfo->menu as $key => $value)
165
+		foreach ((array) $moduleActionInfo->menu as $key => $value)
166 166
 		{
167
-			if(isset($value->acts) && is_array($value->acts) && in_array($currentAct, $value->acts))
167
+			if (isset($value->acts) && is_array($value->acts) && in_array($currentAct, $value->acts))
168 168
 			{
169 169
 				$subMenuTitle = $value->title;
170 170
 				break;
@@ -173,21 +173,21 @@  discard block
 block discarded – undo
173 173
 		// get current menu's srl(=parentSrl)
174 174
 		$parentSrl = 0;
175 175
 		$oMenuAdminConroller = getAdminController('menu');
176
-		foreach((array) $menu->list as $parentKey => $parentMenu)
176
+		foreach ((array) $menu->list as $parentKey => $parentMenu)
177 177
 		{
178
-			if(!is_array($parentMenu['list']) || !count($parentMenu['list']))
178
+			if (!is_array($parentMenu['list']) || !count($parentMenu['list']))
179 179
 			{
180 180
 				continue;
181 181
 			}
182
-			if($parentMenu['href'] == '#' && count($parentMenu['list']))
182
+			if ($parentMenu['href'] == '#' && count($parentMenu['list']))
183 183
 			{
184 184
 				$firstChild = current($parentMenu['list']);
185 185
 				$menu->list[$parentKey]['href'] = $firstChild['href'];
186 186
 			}
187 187
 
188
-			foreach($parentMenu['list'] as $childKey => $childMenu)
188
+			foreach ($parentMenu['list'] as $childKey => $childMenu)
189 189
 			{
190
-				if($subMenuTitle == $childMenu['text'] && $parentSrl == 0)
190
+				if ($subMenuTitle == $childMenu['text'] && $parentSrl == 0)
191 191
 				{
192 192
 					$parentSrl = $childMenu['parent_srl'];
193 193
 				}
@@ -200,7 +200,7 @@  discard block
 block discarded – undo
200 200
 		$gnbTitleInfo->adminTitle = $objConfig->adminTitle ? $objConfig->adminTitle : 'XE Admin';
201 201
 		$gnbTitleInfo->adminLogo = $objConfig->adminLogo ? $objConfig->adminLogo : 'modules/admin/tpl/img/xe.h1.png';
202 202
 
203
-		$browserTitle = ($subMenuTitle ? $subMenuTitle : 'Dashboard') . ' - ' . $gnbTitleInfo->adminTitle;
203
+		$browserTitle = ($subMenuTitle ? $subMenuTitle : 'Dashboard').' - '.$gnbTitleInfo->adminTitle;
204 204
 
205 205
 		// Get list of favorite
206 206
 		$oAdminAdminModel = getAdminModel('admin');
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
 		// move from index method, because use in admin footer
212 212
 		$newest_news_url = sprintf("http://news.xpressengine.com/%s/news.php?version=%s&package=%s", _XE_LOCATION_, __XE_VERSION__, _XE_PACKAGE_);
213 213
 		$cache_file = sprintf("%sfiles/cache/newest_news.%s.cache.php", _XE_PATH_, _XE_LOCATION_);
214
-		if(!file_exists($cache_file) || filemtime($cache_file) + 60 * 60 < $_SERVER['REQUEST_TIME'])
214
+		if (!file_exists($cache_file) || filemtime($cache_file) + 60 * 60 < $_SERVER['REQUEST_TIME'])
215 215
 		{
216 216
 			// Considering if data cannot be retrieved due to network problem, modify filemtime to prevent trying to reload again when refreshing administration page
217 217
 			// Ensure to access the administration page even though news cannot be displayed
@@ -219,20 +219,20 @@  discard block
 block discarded – undo
219 219
 			FileHandler::getRemoteFile($newest_news_url, $cache_file, null, 1, 'GET', 'text/html', array('REQUESTURL' => getFullUrl('')));
220 220
 		}
221 221
 
222
-		if(file_exists($cache_file))
222
+		if (file_exists($cache_file))
223 223
 		{
224 224
 			$oXml = new XmlParser();
225 225
 			$buff = $oXml->parse(FileHandler::readFile($cache_file));
226 226
 
227 227
 			$item = $buff->zbxe_news->item;
228
-			if($item)
228
+			if ($item)
229 229
 			{
230
-				if(!is_array($item))
230
+				if (!is_array($item))
231 231
 				{
232 232
 					$item = array($item);
233 233
 				}
234 234
 
235
-				foreach($item as $key => $val)
235
+				foreach ($item as $key => $val)
236 236
 				{
237 237
 					$obj = new stdClass();
238 238
 					$obj->title = $val->body;
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
 					$news[] = $obj;
242 242
 				}
243 243
 				Context::set('news', $news);
244
-				if(isset($news) && is_array($news))
244
+				if (isset($news) && is_array($news))
245 245
 				{
246 246
 					Context::set('latestVersion', array_shift($news));
247 247
 				}
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
 	function dispAdminIndex()
265 265
 	{
266 266
 		$db_info = Context::getDBInfo();
267
-		Context::set('db_info',$db_info);
267
+		Context::set('db_info', $db_info);
268 268
 
269 269
 		// Get statistics
270 270
 		$args = new stdClass();
@@ -301,9 +301,9 @@  discard block
 block discarded – undo
301 301
 		$args = new stdClass();
302 302
 		$args->list_count = 5;
303 303
 		$output = $oCommentModel->getNewestCommentList($args, $columnList);
304
-		if(is_array($output))
304
+		if (is_array($output))
305 305
 		{
306
-			foreach($output AS $key => $value)
306
+			foreach ($output AS $key => $value)
307 307
 			{
308 308
 				$value->content = strip_tags($value->content);
309 309
 			}
@@ -314,17 +314,17 @@  discard block
 block discarded – undo
314 314
 		// Get list of modules
315 315
 		$oModuleModel = getModel('module');
316 316
 		$module_list = $oModuleModel->getModuleList();
317
-		if(is_array($module_list))
317
+		if (is_array($module_list))
318 318
 		{
319 319
 			$needUpdate = FALSE;
320 320
 			$addTables = FALSE;
321
-			foreach($module_list AS $key => $value)
321
+			foreach ($module_list AS $key => $value)
322 322
 			{
323
-				if($value->need_install)
323
+				if ($value->need_install)
324 324
 				{
325 325
 					$addTables = TRUE;
326 326
 				}
327
-				if($value->need_update)
327
+				if ($value->need_update)
328 328
 				{
329 329
 					$needUpdate = TRUE;
330 330
 				}
@@ -335,12 +335,12 @@  discard block
 block discarded – undo
335 335
 		$oAutoinstallAdminModel = getAdminModel('autoinstall');
336 336
 		$needUpdateList = $oAutoinstallAdminModel->getNeedUpdateList();
337 337
 
338
-		if(is_array($needUpdateList))
338
+		if (is_array($needUpdateList))
339 339
 		{
340
-			foreach($needUpdateList AS $key => $value)
340
+			foreach ($needUpdateList AS $key => $value)
341 341
 			{
342 342
 				$helpUrl = './admin/help/index.html#';
343
-				switch($value->type)
343
+				switch ($value->type)
344 344
 				{
345 345
 					case 'addon':
346 346
 						$helpUrl .= 'UMAN_terminology_addon';
@@ -367,8 +367,8 @@  discard block
 block discarded – undo
367 367
 
368 368
 		$site_module_info = Context::get('site_module_info');
369 369
 		$oAddonAdminModel = getAdminModel('addon');
370
-		$counterAddonActivated = $oAddonAdminModel->isActivatedAddon('counter', $site_module_info->site_srl );
371
-		if(!$counterAddonActivated)
370
+		$counterAddonActivated = $oAddonAdminModel->isActivatedAddon('counter', $site_module_info->site_srl);
371
+		if (!$counterAddonActivated)
372 372
 		{
373 373
 			$columnList = array('member_srl', 'nick_name', 'user_name', 'user_id', 'email_address');
374 374
 			$args = new stdClass;
@@ -391,9 +391,9 @@  discard block
 block discarded – undo
391 391
 
392 392
 		// gathering enviroment check
393 393
 		$mainVersion = join('.', array_slice(explode('.', __XE_VERSION__), 0, 2));
394
-		$path = FileHandler::getRealPath('./files/env/' . $mainVersion);
394
+		$path = FileHandler::getRealPath('./files/env/'.$mainVersion);
395 395
 		$isEnviromentGatheringAgreement = FALSE;
396
-		if(file_exists($path))
396
+		if (file_exists($path))
397 397
 		{
398 398
 			$isEnviromentGatheringAgreement = TRUE;
399 399
 		}
@@ -403,7 +403,7 @@  discard block
 block discarded – undo
403 403
 		$isLicenseAgreement = FALSE;
404 404
 		$path = FileHandler::getRealPath('./files/env/license_agreement');
405 405
 		$isLicenseAgreement = FALSE;
406
-		if(file_exists($path))
406
+		if (file_exists($path))
407 407
 		{
408 408
 			$isLicenseAgreement = TRUE;
409 409
 		}
@@ -425,7 +425,7 @@  discard block
 block discarded – undo
425 425
 
426 426
 		Context::set('selected_lang', $db_info->lang_type);
427 427
 
428
-		if(strpos($db_info->default_url, 'xn--') !== FALSE)
428
+		if (strpos($db_info->default_url, 'xn--') !== FALSE)
429 429
 		{
430 430
 			$db_info->default_url = Context::decodeIdna($db_info->default_url);
431 431
 		}
@@ -434,9 +434,9 @@  discard block
 block discarded – undo
434 434
 
435 435
 		// site lock
436 436
 		Context::set('IP', $_SERVER['REMOTE_ADDR']);
437
-		if(!$db_info->sitelock_title) $db_info->sitelock_title = 'Maintenance in progress...';
438
-		if(!in_array('127.0.0.1', $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = '127.0.0.1';
439
-		if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR'];
437
+		if (!$db_info->sitelock_title) $db_info->sitelock_title = 'Maintenance in progress...';
438
+		if (!in_array('127.0.0.1', $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = '127.0.0.1';
439
+		if (!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR'];
440 440
 		$db_info->sitelock_whitelist = array_unique($db_info->sitelock_whitelist);
441 441
 		Context::set('remote_addr', $_SERVER['REMOTE_ADDR']);
442 442
 		Context::set('use_sitelock', $db_info->use_sitelock);
@@ -447,7 +447,7 @@  discard block
 block discarded – undo
447 447
 		Context::set('sitelock_whitelist', $whitelist);
448 448
 
449 449
 
450
-		if($db_info->admin_ip_list) $admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
450
+		if ($db_info->admin_ip_list) $admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
451 451
 		else $admin_ip_list = '';
452 452
 		Context::set('admin_ip_list', $admin_ip_list);
453 453
 
@@ -470,7 +470,7 @@  discard block
 block discarded – undo
470 470
 		Context::set('htmlFooter', htmlspecialchars($config->htmlFooter));
471 471
 
472 472
 		// embed filter
473
-		require_once(_XE_PATH_ . 'classes/security/EmbedFilter.class.php');
473
+		require_once(_XE_PATH_.'classes/security/EmbedFilter.class.php');
474 474
 		$oEmbedFilter = EmbedFilter::getInstance();
475 475
 		context::set('embed_white_object', implode(PHP_EOL, $oEmbedFilter->whiteUrlList));
476 476
 		context::set('embed_white_iframe', implode(PHP_EOL, $oEmbedFilter->whiteIframeUrlList));
@@ -529,36 +529,36 @@  discard block
 block discarded – undo
529 529
 	 */
530 530
 	function showSendEnv()
531 531
 	{
532
-		if(Context::getResponseMethod() != 'HTML')
532
+		if (Context::getResponseMethod() != 'HTML')
533 533
 		{
534 534
 			return;
535 535
 		}
536 536
 
537 537
 		$server = 'http://collect.xpressengine.com/env/img.php?';
538 538
 		$path = './files/env/';
539
-		$install_env = $path . 'install';
539
+		$install_env = $path.'install';
540 540
 		$mainVersion = join('.', array_slice(explode('.', __XE_VERSION__), 0, 2));
541 541
 
542
-		if(file_exists(FileHandler::getRealPath($install_env)))
542
+		if (file_exists(FileHandler::getRealPath($install_env)))
543 543
 		{
544 544
 			$oAdminAdminModel = getAdminModel('admin');
545 545
 			$params = $oAdminAdminModel->getEnv('INSTALL');
546
-			$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server . $params);
546
+			$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server.$params);
547 547
 			Context::addHtmlFooter($img);
548 548
 
549
-			FileHandler::writeFile($path . $mainVersion, '1');
549
+			FileHandler::writeFile($path.$mainVersion, '1');
550 550
 		}
551
-		else if(isset($_SESSION['enviroment_gather']) && !file_exists(FileHandler::getRealPath($path . $mainVersion)))
551
+		else if (isset($_SESSION['enviroment_gather']) && !file_exists(FileHandler::getRealPath($path.$mainVersion)))
552 552
 		{
553
-			if($_SESSION['enviroment_gather'] == 'Y')
553
+			if ($_SESSION['enviroment_gather'] == 'Y')
554 554
 			{
555 555
 				$oAdminAdminModel = getAdminModel('admin');
556 556
 				$params = $oAdminAdminModel->getEnv();
557
-				$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server . $params);
557
+				$img = sprintf('<img src="%s" alt="" style="height:0px;width:0px" />', $server.$params);
558 558
 				Context::addHtmlFooter($img);
559 559
 			}
560 560
 
561
-			FileHandler::writeFile($path . $mainVersion, '1');
561
+			FileHandler::writeFile($path.$mainVersion, '1');
562 562
 			unset($_SESSION['enviroment_gather']);
563 563
 		}
564 564
 	}
@@ -576,64 +576,64 @@  discard block
 block discarded – undo
576 576
 		$tmp = explode("&", $envInfo);
577 577
 		$arrInfo = array();
578 578
 		$xe_check_env = array();
579
-		foreach($tmp as $value) {
579
+		foreach ($tmp as $value) {
580 580
 			$arr = explode("=", $value);
581
-			if($arr[0]=="type") {
581
+			if ($arr[0] == "type") {
582 582
 				continue;
583
-			}elseif($arr[0]=="phpext" ) {
583
+			}elseif ($arr[0] == "phpext") {
584 584
 				$str = urldecode($arr[1]);
585
-				$xe_check_env[$arr[0]]= str_replace("|", ", ", $str);
586
-			} elseif($arr[0]=="module" ) {
585
+				$xe_check_env[$arr[0]] = str_replace("|", ", ", $str);
586
+			} elseif ($arr[0] == "module") {
587 587
 				$str = urldecode($arr[1]);
588 588
 				$arrModuleName = explode("|", $str);
589 589
 				$oModuleModel = getModel("module");
590 590
 				$mInfo = array();
591
-				foreach($arrModuleName as $moduleName) {
591
+				foreach ($arrModuleName as $moduleName) {
592 592
 					$moduleInfo = $oModuleModel->getModuleInfoXml($moduleName);
593 593
 					$mInfo[] = "{$moduleName}({$moduleInfo->version})";
594 594
 				}
595
-				$xe_check_env[$arr[0]]= join(", ", $mInfo);
596
-			} elseif($arr[0]=="addon") {
595
+				$xe_check_env[$arr[0]] = join(", ", $mInfo);
596
+			} elseif ($arr[0] == "addon") {
597 597
 				$str = urldecode($arr[1]);
598 598
 				$arrAddonName = explode("|", $str);
599 599
 				$oAddonModel = getAdminModel("addon");
600 600
 				$mInfo = array();
601
-				foreach($arrAddonName as $addonName) {
601
+				foreach ($arrAddonName as $addonName) {
602 602
 					$addonInfo = $oAddonModel->getAddonInfoXml($addonName);
603 603
 					$mInfo[] = "{$addonName}({$addonInfo->version})";
604 604
 				}
605
-				$xe_check_env[$arr[0]]= join(", ", $mInfo);
606
-			} elseif($arr[0]=="widget") {
605
+				$xe_check_env[$arr[0]] = join(", ", $mInfo);
606
+			} elseif ($arr[0] == "widget") {
607 607
 				$str = urldecode($arr[1]);
608 608
 				$arrWidgetName = explode("|", $str);
609 609
 				$oWidgetModel = getModel("widget");
610 610
 				$mInfo = array();
611
-				foreach($arrWidgetName as $widgetName) {
611
+				foreach ($arrWidgetName as $widgetName) {
612 612
 					$widgetInfo = $oWidgetModel->getWidgetInfo($widgetName);
613 613
 					$mInfo[] = "{$widgetName}({$widgetInfo->version})";
614 614
 				}
615
-				$xe_check_env[$arr[0]]= join(", ", $mInfo);
616
-			} elseif($arr[0]=="widgetstyle") {
615
+				$xe_check_env[$arr[0]] = join(", ", $mInfo);
616
+			} elseif ($arr[0] == "widgetstyle") {
617 617
 				$str = urldecode($arr[1]);
618 618
 				$arrWidgetstyleName = explode("|", $str);
619 619
 				$oWidgetModel = getModel("widget");
620 620
 				$mInfo = array();
621
-				foreach($arrWidgetstyleName as $widgetstyleName) {
621
+				foreach ($arrWidgetstyleName as $widgetstyleName) {
622 622
 					$widgetstyleInfo = $oWidgetModel->getWidgetStyleInfo($widgetstyleName);
623 623
 					$mInfo[] = "{$widgetstyleName}({$widgetstyleInfo->version})";
624 624
 				}
625
-				$xe_check_env[$arr[0]]= join(", ", $mInfo);
625
+				$xe_check_env[$arr[0]] = join(", ", $mInfo);
626 626
 
627
-			} elseif($arr[0]=="layout") {
627
+			} elseif ($arr[0] == "layout") {
628 628
 				$str = urldecode($arr[1]);
629 629
 				$arrLayoutName = explode("|", $str);
630 630
 				$oLayoutModel = getModel("layout");
631 631
 				$mInfo = array();
632
-				foreach($arrLayoutName as $layoutName) {
632
+				foreach ($arrLayoutName as $layoutName) {
633 633
 					$layoutInfo = $oLayoutModel->getLayoutInfo($layoutName);
634 634
 					$mInfo[] = "{$layoutName}({$layoutInfo->version})";
635 635
 				}
636
-				$xe_check_env[$arr[0]]= join(", ", $mInfo);
636
+				$xe_check_env[$arr[0]] = join(", ", $mInfo);
637 637
 			} else {
638 638
 				$xe_check_env[$arr[0]] = urldecode($arr[1]);
639 639
 			}
@@ -647,15 +647,15 @@  discard block
 block discarded – undo
647 647
 		$php_core['memory_limit'] = "{$ini_info['memory_limit']['local_value']}";
648 648
 		$info['PHP_Core'] = $php_core;
649 649
 
650
-		$str_info = "[XE Server Environment " . date("Y-m-d") . "]\n\n";
650
+		$str_info = "[XE Server Environment ".date("Y-m-d")."]\n\n";
651 651
 		$str_info .= "realpath : ".realpath('./')."\n";
652
-		foreach( $info as $key=>$value )
652
+		foreach ($info as $key=>$value)
653 653
 		{
654
-			if( is_array( $value ) == false ) {
654
+			if (is_array($value) == false) {
655 655
 				$str_info .= "{$key} : {$value}\n";
656 656
 			} else {
657 657
 				//$str_info .= "\n{$key} \n";
658
-				foreach( $value as $key2=>$value2 )
658
+				foreach ($value as $key2=>$value2)
659 659
 					$str_info .= "{$key2} : {$value2}\n";
660 660
 			}
661 661
 		}
Please login to merge, or discard this patch.